From ed1e6720637a484b70a541eb4158a643415b9334 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 9 Dec 2025 09:11:41 +0000 Subject: [PATCH 01/81] minor improvements all around --- DEVELOPMENT.md | 11 ++++++++++- deps.edn | 12 +++++++++++- dev/intemporal/demo_parallelism.clj | 2 +- dev/intemporal/vthread-recovery.edn | 6 +++++- src/intemporal/macros.cljc | 10 +++++----- src/intemporal/store.cljc | 1 + src/intemporal/workflow.cljc | 2 +- src/intemporal/workflow/internal.cljc | 4 +++- 8 files changed, 37 insertions(+), 11 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index ff6e154..e3d9fb6 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -70,4 +70,13 @@ $ JAVA_OPTS="-DFDB_LIBRARY_PATH_FDB_C=/usr/local/lib/libfdb_c.dylib -DFDB_LIBRAR (.invoke method com.apple.foundationdb.JNIUtil (object-array ["fdb_java"])) (.invoke method com.apple.foundationdb.JNIUtil (object-array ["fdb_c"]))) -``` \ No newline at end of file +``` + +# Telemetry + +# Get the OT javaagent + +```shell +wget --content-disposition https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.21.0/opentelemetry-javaagent.jar +``` +Run with the `dev` profile to activate the java agent. \ No newline at end of file diff --git a/deps.edn b/deps.edn index 471372a..299a077 100644 --- a/deps.edn +++ b/deps.edn @@ -14,7 +14,17 @@ missionary/missionary {:mvn/version "b.46"}} :aliases {:dev {:extra-paths ["dev" "test"] - :jvm-opts ["-Djdk.attach.allowAttachSelf"] + :jvm-opts ["-Djdk.attach.allowAttachSelf" + "-javaagent:./opentelemetry-javaagent.jar" + "-Dotel.instrumentation.common.default-enabled=true" + "-Dotel.javaagent.debug=false" + "-Dotel.exporter.otlp.protocol=grpc" + "-Dotel.exporter.otlp.endpoint=http://localhost:4317" + "-Dotel.instrumentation.netty.enabled=false" + "-Dotel.metrics.exporter=none" + "-Dotel.javaagent.debug=false" + "-Dotel.resource.attributes=service.name=intemporal"] + :extra-deps {exoscale/automata {:mvn/version "0.1.10"} lambdaisland/kaocha {:mvn/version "1.91.1392"} lambdaisland/kaocha-cloverage {:mvn/version "1.1.89"} diff --git a/dev/intemporal/demo_parallelism.clj b/dev/intemporal/demo_parallelism.clj index 9aa30f4..048a1f0 100644 --- a/dev/intemporal/demo_parallelism.clj +++ b/dev/intemporal/demo_parallelism.clj @@ -26,7 +26,7 @@ ;; this code is deterministic up to here @(p/all proms))) -(def mstore (store/make-store)) +(def mstore (store/make-store )) (def stop-worker (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) ;; note that in cljs, this returns a promise diff --git a/dev/intemporal/vthread-recovery.edn b/dev/intemporal/vthread-recovery.edn index 4b41e2d..ebe304d 100644 --- a/dev/intemporal/vthread-recovery.edn +++ b/dev/intemporal/vthread-recovery.edn @@ -7,7 +7,9 @@ :result nil, :id "silly-mcclintock", :order 1, - :lease-end nil}}, + :lease-end nil + :runtime {:timeout-ms 900000, + :telemetry-context {"traceparent" "00-0f17ae74e434659106c06f591ee56a6d-85f973ca22cd0d92-01"}}}}, :history {"silly-mcclintock" [{:ref "silly-mcclintock", :root "silly-mcclintock", :type :intemporal.workflow/invoke, @@ -16,6 +18,8 @@ :error nil, :result nil, :id 17} + cccccbrfjtefettfeikinrkevrueftfcuttfningduuc + #_ {:ref "silly-mcclintock", :root "silly-mcclintock", diff --git a/src/intemporal/macros.cljc b/src/intemporal/macros.cljc index e5cd45f..93865a0 100644 --- a/src/intemporal/macros.cljc +++ b/src/intemporal/macros.cljc @@ -210,14 +210,14 @@ ;(w/enqueue-and-wait i/*env* task#))))))))) (defmacro with-failure - "Runs `fcall`, ensuring that if it fails, compensation will always run. - - if `fcall` fails, `binding` will have the value `intemporal.activity/failure`. - - if `fcall` succeeds, but compensation is invoked later (eg other activity failure), `binding` will have its return value + "Runs `body`, ensuring that if it fails, compensation will always run. + - if `body` fails, `binding` will have the value `intemporal.activity/failure`. + - if `body` succeeds, but compensation is invoked later (eg other activity failure), `binding` will have its return value (with-failure [v (book-hotel stub \"hotel\")] (cancel-hotel stub v n)) " - [[binding fcall] comp-fn] + [[binding body] comp-fn] `(let [val# (atom :intemporal.activity/failure)] (w/add-compensation (fn [] (let [~binding @val#] (do ~comp-fn)))) - (reset! val# (do ~fcall)))) \ No newline at end of file + (reset! val# (do ~body)))) \ No newline at end of file diff --git a/src/intemporal/store.cljc b/src/intemporal/store.cljc index 46bff76..4968761 100644 --- a/src/intemporal/store.cljc +++ b/src/intemporal/store.cljc @@ -288,6 +288,7 @@ (try ;; ensure we only run f once - swap! might run the fn multiple times (assoc task :state :new :owner owner) + ;; TODO log reenqueued task (finally (when-not (contains? @task->run? task) (try diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index 65d1f5c..a9b0b99 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -105,7 +105,7 @@ ;; subsequent workflow traces to have a "parent" span, otherwise ;; they won't show up correctly in jaeger ;; TODO test with eg loki - (trace-async! {:name ::worker-execute-fn :attributes {:task-id (:id task)}} + (trace-async! {:name "worker: worker-execute-fn" :attributes {:task-id (:id task)}} #?(:cljs (internal/resume-task internal-env store protocols task) :clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context runtime)) (internal/resume-task internal-env store protocols task))))))) diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index eddbb8f..1cc7fa2 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -328,7 +328,9 @@ (assert (some? store) "Store should exist") (assert (some? task) "Task should exist") - ;; TODO trace + ;; TODO trace if we pick the task from the db? + ;; the db task should have a telemetry context already no? + ;; (trace! {:name (format "workflow: %s" orig#) :attributes {:task-id id#}} (let [db-task (or (find-task store id) (enqueue-task store task)) From f928d2bb3998ca8ff51d459efacb6c304e67bcb9 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 9 Dec 2025 22:02:12 +0000 Subject: [PATCH 02/81] use poller, fix threading --- dev/intemporal/demo_parallelism.clj | 9 ++++----- docker/fdb.cluster | 2 +- src/intemporal/workflow.cljc | 2 +- src/intemporal/workflow/internal.cljc | 21 ++++++++++++++------- test/intemporal/failures_test.cljc | 8 ++++---- test/intemporal/internal_failures_test.cljc | 8 ++++---- test/intemporal/recovery_failure_test.clj | 6 +++--- test/intemporal/shutdown_restart_test.cljs | 8 ++++---- test/intemporal/vthread_recovery_test.clj | 6 +++--- test/intemporal/vthread_test.cljc | 10 +++++----- test/intemporal/workflow_test.cljc | 10 +++++----- 11 files changed, 48 insertions(+), 42 deletions(-) diff --git a/dev/intemporal/demo_parallelism.clj b/dev/intemporal/demo_parallelism.clj index 048a1f0..296c627 100644 --- a/dev/intemporal/demo_parallelism.clj +++ b/dev/intemporal/demo_parallelism.clj @@ -1,9 +1,8 @@ (ns intemporal.demo-parallelism (:require [intemporal.store :as store] [intemporal.workflow :as w] - [promesa.core :as p]) - (:require [intemporal.macros :refer [stub-protocol defn-workflow vthread]] - [intemporal.workflow])) + [intemporal.macros :refer [stub-protocol defn-workflow vthread]] + [promesa.core :as p])) ;;;; ;; demo @@ -26,8 +25,8 @@ ;; this code is deterministic up to here @(p/all proms))) -(def mstore (store/make-store )) -(def stop-worker (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) +(def mstore (store/make-store)) +(def ex (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) ;; note that in cljs, this returns a promise (def res (w/with-env {:store mstore} diff --git a/docker/fdb.cluster b/docker/fdb.cluster index fc3b14b..1ea4469 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@192.168.107.2:4500 +docker:docker@172.20.0.2:4500 diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index a9b0b99..ab06a62 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -192,4 +192,4 @@ (trace! {:name "compensations" :attributes {:fn-count (count @thunks)}} (doseq [f @thunks] (swap! thunks pop) - (f))))) + (f))))) \ No newline at end of file diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 1cc7fa2..dcb85d9 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -11,7 +11,8 @@ #?(:cljs (:require-macros [net.cgrand.macrovich :as macros] [intemporal.workflow.internal :refer [trace! trace-async!]] - [intemporal.store :refer [bfn]]))) + [intemporal.store :refer [bfn]])) + #?(:clj (:import [java.util.function BiConsumer]))) #?(:clj (set! *warn-on-reflection* true)) @@ -80,11 +81,17 @@ (macros/case ;; cljs: no telemetry :cljs `(do ~@body) - :clj `(let [attrs# (do ~attrs)] - (otspan/async-bound-cf-span attrs# - (with-env-internal (merge *env* {:telemetry-context (->telemetry-context)}) - (let [res# (do ~@body)] - res#)))))) + :clj `(let [attrs# (do ~attrs) + span# (otspan/new-span! attrs#)] + ;(otspan/async-bound-cf-span attrs#) + ;(with-env-internal (merge *env* {:telemetry-context (->telemetry-context)})) + (let [res# (do ~@body)] + (.whenComplete res# + (reify BiConsumer + (accept [_# t# e#] + (when e# (otspan/add-exception! {:context span#} e#)) + (otspan/end-span! {:context span#})))))))) + (defn add-event! ([task ename attrs] @@ -157,7 +164,6 @@ ;;;; ;; task execution/replay - (defn resume-fn-task "Resumes a generic fn call task" [{:keys [vthread? shutdown?] :as env} store protos {:keys [type proto id root sym fvar args] :as task} [invoke success failure]] @@ -292,6 +298,7 @@ (throw (error/internal-error "Transition unexpected" {:got (:type res?) :expected [success failure]})))] (t/log! {:level :debug :data {:sym sym :retval retval}} ["Finished internal execution for task" id]) + ;; if userland called a vthread, retval will be delayed retval)) ;; ensure we terminate the fn call, even if the next event wouldnt be the expected type (catch #?(:clj Exception :cljs js/Error) e diff --git a/test/intemporal/failures_test.cljc b/test/intemporal/failures_test.cljc index 954574b..b0f0e69 100644 --- a/test/intemporal/failures_test.cljc +++ b/test/intemporal/failures_test.cljc @@ -39,9 +39,9 @@ (deftest activity-failure-test (testing "failure: activity throws" - (let [mstore (store/make-store) - stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] + (let [mstore (store/make-store) + ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] (with-result [res (w/with-env {:store mstore} - (my-workflow :nok))] + (my-workflow :nok))] (is (instance? #?(:clj Exception :cljs js/Error) res)) - (stop-worker))))) + (w/shutdown ex 1000))))) diff --git a/test/intemporal/internal_failures_test.cljc b/test/intemporal/internal_failures_test.cljc index b442f1f..ecf6c98 100644 --- a/test/intemporal/internal_failures_test.cljc +++ b/test/intemporal/internal_failures_test.cljc @@ -35,13 +35,13 @@ (deftest store-failure-test (testing "failure: task validation fails" - (let [mstore (store/make-store {:failures {:validation 1.0}}) - stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] + (let [mstore (store/make-store {:failures {:validation 1.0}}) + ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] (with-result [res (w/with-env {:store mstore} - (my-workflow :ok))] + (my-workflow :ok))] (is (instance? #?(:clj Exception :cljs js/Error) res)) (is (= {:intemporal.workflow.internal/type :internal} (ex-data (or (ex-cause res) res)))) - (stop-worker))))) + (w/shutdown ex 1000))))) ;(cljs.test/run-tests *ns*) \ No newline at end of file diff --git a/test/intemporal/recovery_failure_test.clj b/test/intemporal/recovery_failure_test.clj index e9c653c..f882ebf 100644 --- a/test/intemporal/recovery_failure_test.clj +++ b/test/intemporal/recovery_failure_test.clj @@ -41,9 +41,9 @@ (io/copy (io/file "./test/intemporal/recovery_failure.edn") (io/file "/tmp/recovery_failure.edn")) (testing "workflow" - (let [mstore (store/make-store {:file "/tmp/recovery_failure.edn"}) + (let [mstore (store/make-store {:file "/tmp/recovery_failure.edn"}) [task] (store/list-tasks mstore) - stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] + ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})] (try (store/reenqueue-pending-tasks mstore println) @@ -59,7 +59,7 @@ (is (= :intemporal.workflow/failure (:type last-ev))))) (finally (tu/print-tables mstore) - (stop-worker)))))) + (w/shutdown ex 1000)))))) #_:clj-kondo/ignore (comment diff --git a/test/intemporal/shutdown_restart_test.cljs b/test/intemporal/shutdown_restart_test.cljs index 3c5462a..f671c3c 100644 --- a/test/intemporal/shutdown_restart_test.cljs +++ b/test/intemporal/shutdown_restart_test.cljs @@ -31,15 +31,15 @@ ;;;; test proper (def mstore (store/make-store {})) -(def stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms 10})) +(def ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms 10})) (deftest executor-shutdown-test (testing "shutdown of ongoing workflow" (with-result [res (w/with-env {:store mstore} - (my-workflow :ok))] - (stop-worker) + (my-workflow :ok))] + (w/shutdown ex 1000) (is (instance? js/Error res)) (is (error/panic? res)) diff --git a/test/intemporal/vthread_recovery_test.clj b/test/intemporal/vthread_recovery_test.clj index 3c1e7ad..016d352 100644 --- a/test/intemporal/vthread_recovery_test.clj +++ b/test/intemporal/vthread_recovery_test.clj @@ -36,8 +36,8 @@ ;; make a backup of the db to allow replay (io/copy (io/file "./test/intemporal/vthread-recovery.edn") (io/file "/tmp/intemporal-vthread-recovery.edn")) - (let [mstore (store/make-store {:file "/tmp/intemporal-vthread-recovery.edn"}) - stop-worker (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})] + (let [mstore (store/make-store {:file "/tmp/intemporal-vthread-recovery.edn"}) + ex (w/start-poller! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})] (store/reenqueue-pending-tasks mstore println) @@ -54,4 +54,4 @@ (is (= (into [] (range nthreads)) (-> evts last :result))))))) - (stop-worker))) + (w/shutdown ex 1000))) diff --git a/test/intemporal/vthread_test.cljc b/test/intemporal/vthread_test.cljc index d059f52..29125e3 100644 --- a/test/intemporal/vthread_test.cljc +++ b/test/intemporal/vthread_test.cljc @@ -32,10 +32,10 @@ (defn-workflow my-workflow [sleep-time] (let [pr (stub-protocol ThreadActivity {}) - proms (-> (for [i (range 10)] - (vthread - (sleep pr i sleep-time))) - (doall))] + proms (->> (for [i (range 10)] + (vthread + (sleep pr i sleep-time))) + (doall))] #?(:clj (Thread/sleep (long sleep-time))) (p/all proms))) @@ -50,7 +50,7 @@ ;; cljs runtimes return promises ;; clj runtime will run synchronously (with-result [v (w/with-env {:store mstore} - (my-workflow sleep-time))] + (my-workflow sleep-time))] (testing "result" (is (= (range 10) diff --git a/test/intemporal/workflow_test.cljc b/test/intemporal/workflow_test.cljc index 844c0fd..82e754f 100644 --- a/test/intemporal/workflow_test.cljc +++ b/test/intemporal/workflow_test.cljc @@ -27,7 +27,7 @@ :cljs (env-let [f (stub-function nested-fn)] - (f :sub)))) + (f :sub)))) (defprotocol MyActivities (foo [this a])) @@ -56,13 +56,13 @@ (deftest workflow-happy-path-test (testing "workflow" (let [mstore (store/make-store) - stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}}) + ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}}) uuid-store (atom nil) workflow-id (str (random-uuid))] (with-result [v (w/with-env {:store mstore - :id workflow-id} - (my-workflow uuid-store))] + :id workflow-id} + (my-workflow uuid-store))] (testing "workflow result" (is (= [:root [:sub :nested] [:proto :pr]] @@ -112,7 +112,7 @@ (is (every? #(= @uuid-store %) (map :id tasks))) (is (= @uuid-store workflow-id))))) - (stop-worker))))) + (w/shutdown ex 1000))))) #_:clj-kondo/ignore (comment From 0d38aea7535af74ab10b4b8c6fea5b1c00ed5c12 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 10 Dec 2025 16:00:42 +0000 Subject: [PATCH 03/81] bump fdb --- deps.edn | 2 +- docker-compose.yaml | 2 +- docker/fdb.cluster | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deps.edn b/deps.edn index 299a077..62b9873 100644 --- a/deps.edn +++ b/deps.edn @@ -34,7 +34,7 @@ tortue/spy {:mvn/version "2.15.0"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} - :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.1.60"} + :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.3.57"} me.vedang/clj-fdb {:mvn/version "0.3.0"}}} :jdbc {:extra-deps {com.github.seancorfield/next.jdbc {:mvn/version "1.3.1048"} diff --git a/docker-compose.yaml b/docker-compose.yaml index e1a0611..1f385c0 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -26,7 +26,7 @@ services: - jaeger foundation: - image: "foundationdb/foundationdb:7.1.60" + image: "foundationdb/foundationdb:7.3.57" environment: FDB_NETWORKING_MODE: host entrypoint: ["/usr/bin/tini", "-g", "--", "sh", "/fdb-init.bash"] diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 1ea4469..25af3c6 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.20.0.2:4500 +docker:docker@172.21.0.3:4500 From 7772c2a6011e5046b6cc172bbfc94dae99e404bc Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 11 Dec 2025 20:54:21 +0000 Subject: [PATCH 04/81] fix warn --- src/intemporal/workflow/internal.cljc | 5 +++-- test/intemporal/shutdown_restart_test.clj | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index dcb85d9..528a420 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -12,7 +12,8 @@ [net.cgrand.macrovich :as macros] [intemporal.workflow.internal :refer [trace! trace-async!]] [intemporal.store :refer [bfn]])) - #?(:clj (:import [java.util.function BiConsumer]))) + #?(:clj (:import [java.util.function BiConsumer] + [java.util.concurrent CompletableFuture]))) #?(:clj (set! *warn-on-reflection* true)) @@ -86,7 +87,7 @@ ;(otspan/async-bound-cf-span attrs#) ;(with-env-internal (merge *env* {:telemetry-context (->telemetry-context)})) (let [res# (do ~@body)] - (.whenComplete res# + (.whenComplete ^CompletableFuture res# (reify BiConsumer (accept [_# t# e#] (when e# (otspan/add-exception! {:context span#} e#)) diff --git a/test/intemporal/shutdown_restart_test.clj b/test/intemporal/shutdown_restart_test.clj index 3d29555..2662039 100644 --- a/test/intemporal/shutdown_restart_test.clj +++ b/test/intemporal/shutdown_restart_test.clj @@ -19,7 +19,6 @@ MyActivities (foo [this a] (.countDown activity-invoked?) - (Thread/sleep 100) (.await executor-shutdown?) :foo)) From e95d08dd3379a565b3a16463b04c1cd0040e3a5b Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 16 Dec 2025 21:23:17 +0000 Subject: [PATCH 05/81] fix shutdown sequence --- src/intemporal/workflow.cljc | 50 +++++++++---------- src/intemporal/workflow/internal.cljc | 11 ++-- .../stores_release_reenqueue_test.clj | 2 +- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index ab06a62..348f7c6 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -45,27 +45,6 @@ (shutdown [this grace-period-ms] "Shuts down the task executor") (running? [this] "Indicates if the executor is running")) -;; allow expressions like (with-open [executor (w/start-poller .... - -#?(:clj #_:clj-kondo/ignore (extend-protocol ITaskExecutor - AutoCloseable - (close [this] (shutdown this 0)))) - -;; make sure that any given executor service can implement ITaskExecutor -#?(:clj (extend-type ExecutorService - ITaskExecutor - (submit [executor f] - (.submit ^ExecutorService executor ^Runnable f)) - (shutdown [executor grace-period-ms] - ;; todo: release tasks - (.shutdown ^ExecutorService executor) - (t/log! {:level :debug} ["Executor shutdown"]) - (when-not (.awaitTermination ^ExecutorService executor grace-period-ms TimeUnit/MILLISECONDS) - (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) - (.shutdownNow ^ExecutorService executor))) - (running? [executor] - (not (.isShutdown ^ExecutorService executor))))) - (defn make-task-executor "Creates an object that satisfies `ITaskExecutor`." [] @@ -78,12 +57,31 @@ (shutdown [_ grace-period-ms] (t/log! {:level :debug} ["Executor shutdown"]) (reset! run? false)) - (running? [_] @run?)) + (running? [_] + @run?)) :clj - (let [factory (-> (Thread/ofVirtual) - (.name "Task Thread") - (.factory))] - (Executors/newThreadPerTaskExecutor factory))))) ;])))) + (let [factory (-> (Thread/ofVirtual) + (.name "Task Thread") + (.factory)) + exec (Executors/newThreadPerTaskExecutor factory) + running? (atom true)] + (reify + ITaskExecutor + (submit [_ f] + (.submit exec ^Runnable f)) + (shutdown [_ grace-period-ms] + (.shutdown exec) + (t/log! {:level :debug} ["Executor shutdown"]) + (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) + (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) + (.shutdownNow exec)) + (reset! running? false)) + (running? [_] + @running?) + ;; allow expressions like (with-open [executor (w/start-poller .... + AutoCloseable + (close [this] + (shutdown this 0))))))) (defn- worker-execute-fn "Executes a given protocol, activity or workflow `task`" diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 528a420..3cbdbdb 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -88,11 +88,9 @@ ;(with-env-internal (merge *env* {:telemetry-context (->telemetry-context)})) (let [res# (do ~@body)] (.whenComplete ^CompletableFuture res# - (reify BiConsumer - (accept [_# t# e#] - (when e# (otspan/add-exception! {:context span#} e#)) - (otspan/end-span! {:context span#})))))))) - + (fn [t# e#] + (when e# (otspan/add-exception! {:context span#} e#)) + (otspan/end-span! {:context span#}))))))) (defn add-event! ([task ename attrs] @@ -208,12 +206,11 @@ handle-ok (bfn [r] ;; TODO assert r is serializable! ;; we check for shutdown because in js runtime, there is no thread interruption + ;; at this point, if we are shutting down it means we exhausted the grace period (let [panic? (shutting-down?)] (try (if panic? - ;(trace! {:id ::store/task<-panic}) (task<-panic store id (error/panic "Worker shutting down during invocation result handling")) - ;(trace! {:id ::store/task<-event}) (let [new-event (assoc next-event :result r)] #?(:clj (otspan/add-span-data! {:attributes {:replayed false :result r}})) (task<-event store id new-event) diff --git a/test/intemporal/stores_release_reenqueue_test.clj b/test/intemporal/stores_release_reenqueue_test.clj index ddc3765..c6b3cf3 100644 --- a/test/intemporal/stores_release_reenqueue_test.clj +++ b/test/intemporal/stores_release_reenqueue_test.clj @@ -35,7 +35,7 @@ ;;;; test proper -(deftest executor-shutdown-reenqueue-test +(deftest release-reenqueue-test (doseq [[label store] @stores] (store/clear-events store) From 52a7f38dbcb84fd24fb7070ed5b61e8203db5290 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 18 Dec 2025 13:40:17 +0000 Subject: [PATCH 06/81] use separate thread --- src/intemporal/workflow.cljc | 35 +++++---- src/intemporal/workflow/internal.cljc | 2 + .../basic_test.clj} | 2 +- .../release_reenqueue_test.clj} | 2 +- test/intemporal/stores/resilience_test.clj | 71 +++++++++++++++++++ test/intemporal/{ => stores}/saga_test.clj | 2 +- test/intemporal/test_utils.cljc | 38 +++++++++- 7 files changed, 133 insertions(+), 19 deletions(-) rename test/intemporal/{stores_test.clj => stores/basic_test.clj} (99%) rename test/intemporal/{stores_release_reenqueue_test.clj => stores/release_reenqueue_test.clj} (97%) create mode 100644 test/intemporal/stores/resilience_test.clj rename test/intemporal/{ => stores}/saga_test.clj (97%) diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index 348f7c6..7bba675 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -70,12 +70,15 @@ (submit [_ f] (.submit exec ^Runnable f)) (shutdown [_ grace-period-ms] - (.shutdown exec) - (t/log! {:level :debug} ["Executor shutdown"]) - (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) - (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) - (.shutdownNow exec)) - (reset! running? false)) + (try + (.shutdown exec) + (t/log! {:level :debug} ["Executor shutdown"]) + (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) + (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) + (.shutdownNow exec)) + ;; in case we got interrupted exception, make sure to set the flag + (finally + (reset! running? false)))) (running? [_] @running?) ;; allow expressions like (with-open [executor (w/start-poller .... @@ -112,7 +115,6 @@ "Continously polls for task while `task-executor` is active." [store protocols task-executor polling-ms] (let [task-counter (atom 0) - uid (random-uuid) shutting-down? (fn [] (not (running? task-executor)))] #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} @@ -124,12 +126,15 @@ (when-let [task (store/dequeue-task store)] (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) (submit task-executor (fn [] - (worker-execute-fn store protocols task task-counter shutting-down?))))))) + (worker-execute-fn store protocols task task-counter shutting-down?))) + (when (running? task-executor) + (recur)))) + (when (running? task-executor) + (p/recur)))) (p/catch (fn [e] - (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]))) - (p/finally (fn [_ _] - (when (running? task-executor) - (p/recur)))))))) + (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]) + (when (running? task-executor) + (p/recur)))))))) (defn start-poller! "Starts a poller that will submit tasks to the `task-executor`. @@ -141,8 +146,10 @@ (start-poller! store (make-task-executor) opts)) ([store task-executor & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] (assert (satisfies? ITaskExecutor task-executor) "Supplied task executor does not satisfy ITaskExecutor") - (let [polling-fn (fn [] (worker-poll-fn store protocols task-executor polling-ms))] - (submit task-executor polling-fn)) + ;; start poller in a out-of-executor thread so it doesnt prevent the executor from shutting down + ;; the only way to stop the poller is via shutdown + (p/vthread + (worker-poll-fn store protocols task-executor polling-ms)) task-executor)) (defn start-worker! diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 3cbdbdb..f4b079a 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -141,6 +141,8 @@ (store/all-events store id)) (defn- task<-event [store task-id event-descr] + ;; TODO patch this to use a compare-and-swap + ;; must send the expected state as arg (add-event! (:type event-descr) {:task-id task-id}) (store/task<-event store task-id event-descr)) diff --git a/test/intemporal/stores_test.clj b/test/intemporal/stores/basic_test.clj similarity index 99% rename from test/intemporal/stores_test.clj rename to test/intemporal/stores/basic_test.clj index 6516ec0..a9624ec 100644 --- a/test/intemporal/stores_test.clj +++ b/test/intemporal/stores/basic_test.clj @@ -1,4 +1,4 @@ -(ns ^:integration ^:fdb ^:sql intemporal.stores-test +(ns ^:integration ^:fdb ^:sql intemporal.stores.basic-test (:require [clojure.test :refer [deftest is testing use-fixtures]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] diff --git a/test/intemporal/stores_release_reenqueue_test.clj b/test/intemporal/stores/release_reenqueue_test.clj similarity index 97% rename from test/intemporal/stores_release_reenqueue_test.clj rename to test/intemporal/stores/release_reenqueue_test.clj index c6b3cf3..a20cc26 100644 --- a/test/intemporal/stores_release_reenqueue_test.clj +++ b/test/intemporal/stores/release_reenqueue_test.clj @@ -1,4 +1,4 @@ -(ns ^:integration ^:fdb ^:sql intemporal.stores-release-reenqueue-test +(ns ^:integration ^:fdb ^:sql intemporal.stores.release-reenqueue-test (:require [clojure.test :refer [deftest is testing use-fixtures]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] diff --git a/test/intemporal/stores/resilience_test.clj b/test/intemporal/stores/resilience_test.clj new file mode 100644 index 0000000..e705a1e --- /dev/null +++ b/test/intemporal/stores/resilience_test.clj @@ -0,0 +1,71 @@ +(ns ^:integration ^:fdb ^:sql intemporal.stores.resilience-test + (:require [clojure.test :refer [deftest is testing use-fixtures]] + [intemporal.store :as store] + [intemporal.store.foundationdb :as fdb] + [intemporal.store.jdbc :as jdbc] + [intemporal.workflow :as w] + [intemporal.macros :refer [stub-protocol defn-workflow]] + [intemporal.test-utils :as tu :refer [wait]] + [promesa.core :as p]) + (:import (java.util.concurrent CountDownLatch))) + +;(tu/setup-telemere) + +(defprotocol MyActivities + (foo [this a])) + +(defrecord MyActivitiesImpl [] + MyActivities + (foo [this a] + (Thread/sleep (long (rand-int 100))) + [:proto a])) + +(defn-workflow my-workflow [] + (let [pr (stub-protocol MyActivities {}) + prr (foo pr :pr)] + prr)) + +(def stores (delay {:memory (store/make-store) + :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) + :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" + :migration-dir "migrations/postgres"})})) + + +(def iterations 10) +(def latch (CountDownLatch. iterations)) + +(deftest stores-test + (doseq [[label store] @stores] + (testing (format "store: %s" label) + + (testing "clear" + (store/clear-events store) + (store/clear-tasks store)) + + (testing "multiple iterations" + (w/with-env {:store store} + (dotimes [_ iterations] + ;; workflows are blocking, we wrap in a virtual thread + (p/vthread + (my-workflow)))) + + ;; check that all tasks are enqueued + (wait (= iterations (count (store/list-tasks store))) + (let [wflows (store/list-tasks store)] + (testing "workflows are all new" + (is (= iterations (count wflows))) + (is (= #{:new} (set (map :state wflows)))))))) + + (testing "enqueue all jobs" + (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)}})] + ;; lets wait for all pending + (try + (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) + (w/shutdown ex 5000)) + + (testing "workflows are all new" + (let [wflows (store/list-tasks store)] + (is (= iterations (count wflows))) + (is (= #{:success} (set (map :state wflows)))))) + (finally + (w/shutdown ex 0)))))))) diff --git a/test/intemporal/saga_test.clj b/test/intemporal/stores/saga_test.clj similarity index 97% rename from test/intemporal/saga_test.clj rename to test/intemporal/stores/saga_test.clj index 2cf37f4..ae67ed3 100644 --- a/test/intemporal/saga_test.clj +++ b/test/intemporal/stores/saga_test.clj @@ -1,4 +1,4 @@ -(ns ^:integration ^:fdb ^:sql intemporal.saga-test +(ns ^:integration ^:fdb ^:sql intemporal.stores.saga-test (:require [clojure.test :refer [deftest is testing use-fixtures]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index f59c32d..fe35136 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -15,7 +15,7 @@ [net.cgrand.macrovich :as macros] [clojure.pprint :as pprint])) #?(:cljs (:require-macros [net.cgrand.macrovich :as macros] - [intemporal.test-utils :refer [with-result]])) + [intemporal.test-utils :refer [with-result wait]])) #?(:clj (:import [java.util.concurrent TimeoutException]))) ;;;; @@ -86,7 +86,8 @@ ;;;; ;; macros -(def with-result-default-timeout 10000) +(def ^:dynamic with-result-default-timeout 10000) +(def ^:dynamic wait-default-timeout 3000) (defmacro with-result "Promise-aware macro: the result can either be a value or a thrown exception. @@ -125,6 +126,39 @@ (done#))))) 0)))))) +(defmacro wait + "Waits for 3 secs until the result is true, or throws; + In `clj` it polls every 100ms + In `cljs` it continuously loops + ``` + (wait (db/find id) + (is (= 1 1)) + ``` + " + [condition & body] + (macros/case + :clj + `(let [timeout# wait-default-timeout + start# (System/currentTimeMillis)] + (loop [] + (if ~condition + (do ~@body) + (if (> (- (System/currentTimeMillis) start#) timeout#) + (throw (ex-info "Timed out" {:timeout timeout#})) + (do (Thread/sleep 100) + (recur)))))) + + :cljs + `(let [timeout# 3000 + start# (.getTime (js/Date.))] + (loop [] + (if ~condition + (do ~@body) + (if (> (- (.getTime (js/Date.)) start#) timeout#) + (throw (ex-info "Timed out" {:timeout timeout#})) + ;; Note: In CLJS this is a "busy wait" loop + (recur))))))) + (defn setup-telemere [] #?(:clj (clojure.pprint/pprint (telemere/check-interop))) (telemere/set-min-level! :trace) From 6f1627d1261baa5773b9b1bddc7859c0faa9b3c7 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 19 Dec 2025 18:55:16 +0000 Subject: [PATCH 07/81] implement basic update-if for task attrs, fix tests --- docker/fdb.cluster | 2 +- src/intemporal/store.cljc | 13 ++-- src/intemporal/store/foundationdb.clj | 1 + src/intemporal/store/internal.cljc | 19 +++++ src/intemporal/store/jdbc.clj | 11 ++- test/intemporal/shutdown_restart_test.clj | 2 +- test/intemporal/shutdown_restart_test.cljs | 5 +- test/intemporal/stores/basic_test.clj | 89 +++++++++++----------- 8 files changed, 87 insertions(+), 55 deletions(-) diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 25af3c6..32c6f9d 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.21.0.3:4500 +docker:docker@172.20.0.3:4500 diff --git a/src/intemporal/store.cljc b/src/intemporal/store.cljc index 4968761..3548f32 100644 --- a/src/intemporal/store.cljc +++ b/src/intemporal/store.cljc @@ -135,10 +135,11 @@ find-task (fn [this id] (get @tasks id)) - update-task (fn [this id & kvs] + update-task (fn [this id attrs] (when-let [w (find-task this id)] (maybe-fail!) - (->> (apply assoc w kvs) + (si/validate-transition! w attrs) + (->> (merge w attrs) (si/validate-task!) (swap! tasks assoc id))))] @@ -191,7 +192,7 @@ (vals @tasks))) (task<-panic [this task-id error] - (update-task this task-id :result error)) + (update-task this task-id {:result error})) (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] ;; some redundancy between :result in task and event @@ -202,14 +203,14 @@ (let [evt {:ref ref :root root :type type :sym sym :args args :error nil :result nil}] (when-not id (save-event this task-id evt)) - (update-task this task-id :state :pending) + (update-task this task-id {:state :pending}) evt) (some? error) (let [evt {:ref ref :root root :type type :sym sym :args nil :error error :result nil}] (when-not id (save-event this task-id evt)) - (update-task this task-id :state :failure :result error) + (update-task this task-id {:state :failure :result error}) evt) ;;(some? result) ;result can be nil @@ -217,7 +218,7 @@ (let [evt {:ref ref :root root :type type :sym sym :args nil :error nil :result result}] (when-not id (save-event this task-id evt)) - (update-task this task-id :state :success :result result) + (update-task this task-id {:state :success :result result}) evt))) (find-task [this id] diff --git a/src/intemporal/store/foundationdb.clj b/src/intemporal/store/foundationdb.clj index 2e4ebf8..a12dbf0 100644 --- a/src/intemporal/store/foundationdb.clj +++ b/src/intemporal/store/foundationdb.clj @@ -110,6 +110,7 @@ ;; not every invocation will come from a persisted task (when task (si/validate-task! updated-task) + (si/validate-transition! task updated-task) (fc/set tx subspace-owned-tasks task-id (serialize updated-task))) updated-evt))) diff --git a/src/intemporal/store/internal.cljc b/src/intemporal/store/internal.cljc index 130e980..3c302b6 100644 --- a/src/intemporal/store/internal.cljc +++ b/src/intemporal/store/internal.cljc @@ -91,6 +91,24 @@ [:result {:optional true} :any] [:error {:optional true} :any]]) +;; valid task states +(def valid-state-transitions {:new #{:pending} + :pending #{:new :success :failure}}) + +(defn validate-transition! + "Ensures that the task's new `:state`, if any, is allowed. + Useful to implement compare-and-swap semantics" + [{:keys [state id]} attrs] + (let [next-states (get valid-state-transitions state)] + ;; if we are updating state + ;; and the new state is not allowed + ;; error out + (when (and (contains? attrs :state) + (not= (:state attrs) state) + (not (contains? next-states (:state attrs)))) + (throw (ex-info (str "Cannot update task with id " id " from state " state " to " (:state attrs)) {:task-id id + :state state + :next-state (:state attrs)}))))) (def validate-task! "Throws if the task is not valid" (m/coercer Task nil {:registry registry})) @@ -107,6 +125,7 @@ (when-not (serializable? obj) (throw (ex-info msg {:object obj}))))) + (defn success? [{:keys [state] :as task}] (= :success state)) diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 4f661e7..4629e5f 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -123,6 +123,10 @@ ;; and they would expect the event to be present in the history (jdbc/with-transaction [tx db-spec] (let [evt {:ref ref :root root :type type :sym sym :args args} + expected-state (cond + (some? args) :new + (or (some? result) (some? error)) :pending + :else :unknown) updated-task (cond (some? args) {:state (kw->db :pending) :args (serialize args)} (some? error) {:state (kw->db :failure) :result (serialize error)} @@ -136,8 +140,11 @@ (store/save-event this task-id updated-evt)) ;; cant really validate because its a partial task ;(validate-task! updated-task) - (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id} default-opts)) - updated-evt))) + (let [updated (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id :state (name expected-state)} default-opts))] + (when (empty? updated) + (throw (ex-info (format "Cannot update task with id %s, expected state %s did not match" id expected-state {:task-id id + :expected-state expected-state})))) + updated-evt)))) (find-task [this id] (some-> (jdbc/with-transaction [tx db-spec] diff --git a/test/intemporal/shutdown_restart_test.clj b/test/intemporal/shutdown_restart_test.clj index 2662039..6b54200 100644 --- a/test/intemporal/shutdown_restart_test.clj +++ b/test/intemporal/shutdown_restart_test.clj @@ -64,7 +64,7 @@ (testing "workflow resumes" (with-open [_ (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms 500})] + :polling-ms 100})] (store/reenqueue-pending-tasks mstore (constantly nil)) (tu/wait-for-task mstore (:id w1)) (tu/print-tables mstore) diff --git a/test/intemporal/shutdown_restart_test.cljs b/test/intemporal/shutdown_restart_test.cljs index f671c3c..559a400 100644 --- a/test/intemporal/shutdown_restart_test.cljs +++ b/test/intemporal/shutdown_restart_test.cljs @@ -34,6 +34,9 @@ (def ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} :polling-ms 10})) +(defn stop-worker [] + (w/shutdown ex 1000)) + (deftest executor-shutdown-test (testing "shutdown of ongoing workflow" @@ -72,4 +75,4 @@ (stop-worker))))) -;(cljs.test/run-tests *ns*) \ No newline at end of file +(cljs.test/run-tests *ns*) \ No newline at end of file diff --git a/test/intemporal/stores/basic_test.clj b/test/intemporal/stores/basic_test.clj index a9624ec..71dfb36 100644 --- a/test/intemporal/stores/basic_test.clj +++ b/test/intemporal/stores/basic_test.clj @@ -132,50 +132,51 @@ :sym 'clojure.core/+, :result nil, :id string?,} - task)))) - - (testing "ok" - (let [ev-descr {:ref "self" :root "self" :type :intemporal.workflow/success :sym 'clojure.core/+ :result ["result"]} - ev (store/task<-event store (:id db-task) ev-descr) - [task] (store/list-tasks store)] - (is (match? {:ref "self" - :root "self" - :type :intemporal.workflow/success - :sym 'clojure.core/+ - :result ["result"]} - ev)) - (is (match? {:args ["invoke" 333], - :ref "self", - :root "self", - :type :workflow, - :state :success, - :sym 'clojure.core/+, - :result ["result"], - :id string?} - task)))) - - (testing "error" - (let [ex {:some "exception" :data false} - ev-descr {:ref "self" :root "self" :type :intemporal.workflow/failure :sym 'clojure.core/+ :error ex} - ev (store/task<-event store (:id db-task) ev-descr) - [task] (store/list-tasks store)] - - (is (match? {:ref "self" - :root "self" - :type :intemporal.workflow/failure - :sym 'clojure.core/+ - :error ex} - ev)) - - (is (match? {:args ["invoke" 333], - :ref "self", - :root "self", - :type :workflow, - :state :failure, - :sym 'clojure.core/+, - :result ex - :id string?} - task)))))))) + task))) + + (testing "ok" + (let [ev-descr {:ref "self" :root "self" :type :intemporal.workflow/success :sym 'clojure.core/+ :result ["result"]} + ev (store/task<-event store (:id db-task) ev-descr) + [task] (store/list-tasks store)] + (is (match? {:ref "self" + :root "self" + :type :intemporal.workflow/success + :sym 'clojure.core/+ + :result ["result"]} + ev)) + (is (match? {:args ["invoke" 333], + :ref "self", + :root "self", + :type :workflow, + :state :success, + :sym 'clojure.core/+, + :result ["result"], + :id string?} + task))))) + + ;; TODO need to reenqueue another task + #_(testing "error" + (let [ex {:some "exception" :data false} + ev-descr {:ref "self" :root "self" :type :intemporal.workflow/failure :sym 'clojure.core/+ :error ex} + ev (store/task<-event store (:id db-task) ev-descr) + [task] (store/list-tasks store)] + + (is (match? {:ref "self" + :root "self" + :type :intemporal.workflow/failure + :sym 'clojure.core/+ + :error ex} + ev)) + + (is (match? {:args ["invoke" 333], + :ref "self", + :root "self", + :type :workflow, + :state :failure, + :sym 'clojure.core/+, + :result ex + :id string?} + task)))))))) (testing "task await+watch" (let [task (internal/create-workflow-task "self" "self" 'clojure.core/- (var-get #'-) ["invoke" 333] "4") From 5cc6dbf38c93704f25cb953b226b48200aa346c0 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 20 Dec 2025 10:38:16 +0000 Subject: [PATCH 08/81] fix earthly --- Earthfile | 7 +++---- bin/kaocha | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Earthfile b/Earthfile index 1e9e1cb..4ed7ef0 100644 --- a/Earthfile +++ b/Earthfile @@ -25,11 +25,10 @@ deps: CACHE ~/.m2 RUN clj -Stree RUN npm install - #RUN wget https://github.com/apple/foundationdb/releases/download/7.3.63/foundationdb-clients_7.3.63-1_aarch64.deb - #RUN dpkg -i foundationdb-clients_7.3.63-1_aarch64.deb - RUN wget -q https://github.com/apple/foundationdb/releases/download/7.1.31/foundationdb-clients_7.1.31-1_amd64.deb - RUN dpkg -i foundationdb-clients_7.1.31-1_amd64.deb + RUN wget -nv https://github.com/apple/foundationdb/releases/download/7.3.57/foundationdb-clients_7.3.57-1_amd64.deb + RUN dpkg -i foundationdb-clients_7.3.57-1_amd64.deb RUN echo "docker:docker@127.0.0.1:4500" > /etc/foundationdb/fdb.cluster + RUN wget -nv --content-disposition https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar build-base: FROM +deps diff --git a/bin/kaocha b/bin/kaocha index afb5ccd..9e1c63a 100755 --- a/bin/kaocha +++ b/bin/kaocha @@ -2,7 +2,7 @@ [ -d "node_modules/ws" ] || npm install ws -JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Dio.netty.tryUnsafe=false" +JAVA_OPTS="${JAVA_OPTS:--agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Dio.netty.tryUnsafe=false}" if [[ "$OSTYPE" == "darwin"* ]]; then FDB_OPTS="-J-DFDB_LIBRARY_PATH_FDB_C=/usr/local/lib/libfdb_c.dylib -J-DFDB_LIBRARY_PATH_FDB_JAVA=/usr/local/lib/libfdb_java.jnilib" From 91ec50c4325de7bf82405951b226d3c8b6bddfb6 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 20 Dec 2025 11:11:00 +0000 Subject: [PATCH 09/81] fix test --- test/intemporal/shutdown_restart_test.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/intemporal/shutdown_restart_test.cljs b/test/intemporal/shutdown_restart_test.cljs index 559a400..605e50e 100644 --- a/test/intemporal/shutdown_restart_test.cljs +++ b/test/intemporal/shutdown_restart_test.cljs @@ -75,4 +75,4 @@ (stop-worker))))) -(cljs.test/run-tests *ns*) \ No newline at end of file +;(cljs.test/run-tests *ns*) \ No newline at end of file From d556b99bc26475d0c0b2c3eb2d8d55afb4165849 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:00:06 +0000 Subject: [PATCH 10/81] experiment with docker --- build/build.clj | 15 ----- deps.edn | 22 +++---- docker/fdb.cluster | 2 +- .../postgres/20240326161343-initial.up.sql | 4 +- src/intemporal/workflow/internal.cljc | 2 + .../containers/execute_workflow.clj | 42 +++++++++++++ test/intemporal/containers/failures_test.clj | 60 +++++++++++++++++++ test/intemporal/containers/start_runner.clj | 45 ++++++++++++++ test/intemporal/shutdown_restart_test.cljs | 8 +-- ...ce_test.clj => lots_of_workflows_test.clj} | 18 +++--- 10 files changed, 176 insertions(+), 42 deletions(-) create mode 100644 test/intemporal/containers/execute_workflow.clj create mode 100644 test/intemporal/containers/failures_test.clj create mode 100644 test/intemporal/containers/start_runner.clj rename test/intemporal/stores/{resilience_test.clj => lots_of_workflows_test.clj} (84%) diff --git a/build/build.clj b/build/build.clj index 4ee7623..e7f22c8 100644 --- a/build/build.clj +++ b/build/build.clj @@ -1,21 +1,6 @@ (ns build (:require [clojure.tools.build.api :as b] [clojure.pprint :as pprint])) - -(def base-nses ['intemporal.workflow - 'intemporal.store.internal - 'intemporal.store.foundationdb - 'intemporal.store - 'intemporal.macros - 'intemporal.workflow.internal - 'intemporal.store.jdbc]) - -(def dev-nses ['intemporal.demo-parallelism - 'intemporal.demo-recovery - 'intemporal.demo-saga - 'intemporal.demo-vthread-recovery - 'intemporal.demo-workflow]) - ;; clj -T:build compile-main (defn compile-main [opts] (b/delete {:path "target/classes"}) diff --git a/deps.edn b/deps.edn index 62b9873..5107e5d 100644 --- a/deps.edn +++ b/deps.edn @@ -1,20 +1,20 @@ {:paths ["src" "target"] :test-paths ["test"] - :deps {org.clojure/clojure {:mvn/version "1.12.1"} - thheller/shadow-cljs {:mvn/version "2.28.11"} - com.taoensso/telemere {:mvn/version "1.1.0"} - com.taoensso/nippy {:mvn/version "3.6.0"} + :deps {org.clojure/clojure {:mvn/version "1.12.1"} + thheller/shadow-cljs {:mvn/version "2.28.11"} + com.taoensso/telemere {:mvn/version "1.1.0"} + com.taoensso/nippy {:mvn/version "3.6.0"} com.github.steffan-westcott/clj-otel-api {:mvn/version "0.2.10"} ;;stuff - net.cgrand/macrovich {:mvn/version "0.2.2"} - funcool/promesa {:mvn/version "11.0.678"} - metosin/malli {:mvn/version "0.19.1"} - thedavidmeister/cljc-md5 {:mvn/version "0.0.2"} - missionary/missionary {:mvn/version "b.46"}} + net.cgrand/macrovich {:mvn/version "0.2.2"} + funcool/promesa {:mvn/version "11.0.678"} + metosin/malli {:mvn/version "0.19.1"} + thedavidmeister/cljc-md5 {:mvn/version "0.0.2"} + missionary/missionary {:mvn/version "b.46"}} :aliases {:dev {:extra-paths ["dev" "test"] - :jvm-opts ["-Djdk.attach.allowAttachSelf" + :_jvm-opts ["-Djdk.attach.allowAttachSelf" "-javaagent:./opentelemetry-javaagent.jar" "-Dotel.instrumentation.common.default-enabled=true" "-Dotel.javaagent.debug=false" @@ -22,6 +22,7 @@ "-Dotel.exporter.otlp.endpoint=http://localhost:4317" "-Dotel.instrumentation.netty.enabled=false" "-Dotel.metrics.exporter=none" + "-Dotel.logs.exporter=none" "-Dotel.javaagent.debug=false" "-Dotel.resource.attributes=service.name=intemporal"] @@ -32,6 +33,7 @@ com.lambdaisland/kaocha-cljs {:mvn/version "1.5.154"} ch.qos.logback/logback-classic {:mvn/version "1.5.18"} tortue/spy {:mvn/version "2.15.0"} + org.testcontainers/testcontainers {:mvn/version "2.0.2"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.3.57"} diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 32c6f9d..74a077b 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.20.0.3:4500 +docker:docker@172.18.0.2:4500 diff --git a/resources/migrations/postgres/20240326161343-initial.up.sql b/resources/migrations/postgres/20240326161343-initial.up.sql index 052fa25..72fad5b 100644 --- a/resources/migrations/postgres/20240326161343-initial.up.sql +++ b/resources/migrations/postgres/20240326161343-initial.up.sql @@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS tasks ( type varchar(50) NOT NULL, ref varchar(50) NULL, root varchar(50) NULL, - sym varchar(100) NOT NULL, + sym varchar(200) NOT NULL, args bytea NULL, result bytea NULL, state varchar(20) NOT NULL, @@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS events ( type varchar(50) NOT NULL, ref varchar(50) NULL, --NOT NULL, root varchar(50) NOT NULL, - sym varchar(50) NOT NULL, + sym varchar(200) NOT NULL, args bytea NULL, result bytea NULL, --FOREIGN KEY (ref) REFERENCES tasks(id) on delete set null, diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index f4b079a..14964af 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -302,6 +302,8 @@ retval)) ;; ensure we terminate the fn call, even if the next event wouldnt be the expected type (catch #?(:clj Exception :cljs js/Error) e + ;; TODO at this point we should just panic, "userland" exceptions should be handled in the handle-fail + ;; on theory there is no other way for a user exception to bubble out (let [wrapped (ex-info "Internal error while resuming execution" {::type :internal} e)] (task<-event store id {:ref id :root (or root id) :type ::failure :sym sym :error wrapped})) (p/rejected e)))) diff --git a/test/intemporal/containers/execute_workflow.clj b/test/intemporal/containers/execute_workflow.clj new file mode 100644 index 0000000..9564abd --- /dev/null +++ b/test/intemporal/containers/execute_workflow.clj @@ -0,0 +1,42 @@ +(ns ^:integration ^:fdb ^:sql intemporal.containers.execute-workflow + (:gen-class) + (:require [clojure.string :as str] + [clojure.tools.logging :as log] + [intemporal.workflow :as w] + [intemporal.macros :refer [stub-function defn-workflow]] + [intemporal.containers.start-runner :as runner])) + +(defn foo [ a] + (Thread/sleep (long (rand-int 100))) + [:fun a]) + +(defn-workflow test-workflow [] + (let [pr (stub-function foo) + prr (pr :pr)] + prr)) + +;; serves as an entrypoint for a docker container that can be killed +;; some other container will have to execute the poller/runner +(defn -main [& args] + (let [store-type (-> args first keyword) + workflow-sym (or (-> args second) 'my-workflow) + workflow-fn (requiring-resolve (symbol (str/trim workflow-sym))) + store (get runner/stores store-type)] + (prn args) + (when (nil? store) + (throw (ex-info (format "Unknown store type: %s" store-type) {:store-type store-type}))) + + (when (nil? workflow-fn) + (throw (ex-info (format "Unknown worfklow fn : %s" workflow-sym) {:workflow workflow-sym}))) + + + (w/with-env {:store @store} + (try + (let [res (workflow-fn)] + (println "Response: " res)) + (finally + (log/info "Ready")))))) + +(comment + ;; clj -A:dev:jdbc:fdb -m intemporal.containers.execute-workflow postgres intemporal.containers.execute-workflow/test-workflow + (-main "postgres" "intemporal.containers.execute-workflow/test-workflow")) \ No newline at end of file diff --git a/test/intemporal/containers/failures_test.clj b/test/intemporal/containers/failures_test.clj new file mode 100644 index 0000000..2ce3bbf --- /dev/null +++ b/test/intemporal/containers/failures_test.clj @@ -0,0 +1,60 @@ +(ns ^:integration ^:fdb ^:sql intemporal.containers.failures-test + (:require [clojure.string :as str] + [clojure.test :refer [deftest is testing]] + [clojure.tools.logging :as log] + [intemporal.containers.start-runner] + [intemporal.containers.execute-workflow]) + (:import (org.testcontainers.containers BindMode GenericContainer) + (org.testcontainers.containers.startupcheck IndefiniteWaitOneShotStartupCheckStrategy) + (org.testcontainers.containers.wait.strategy Wait))) + +;; assumes docker-compose is running +(def default-network "intemporal_default") + +(defn make-container ^GenericContainer + ^GenericContainer [clj-main {:keys [aliases args env] :or {env {"JDBC_URL" "jdbc:postgresql://postgresql:5432/root?user=root&password=root"} + aliases "dev:jdbc:fdb"}}] + ;; docker run --name workflow --network=intemporal_default -ti --rm + ;; -e JDBC_URL="jdbc:postgresql://postgresql:5432/root?user=root&password=root" + ;; -v "$(pwd)":/tmp clojure:temurin-25-tools-deps-noble clj + ;; -A:dev:jdbc:fdb -m intemporal.containers.execute-workflow postgres intemporal.containers.execute-workflow/test-workflow + (let [cmd (format "clj -A:%s -m %s %s" aliases clj-main (str/join " " args)) + img "clojure:temurin-25-tools-deps-noble" + container (doto (GenericContainer. img) + (.withEnv env) + (.withNetworkMode default-network) + (.withCommand cmd) + ;; will wait until the work is finished, but no exit + (.waitingFor (Wait/forLogMessage ".*Ready.*\n", 1)) + (.withFileSystemBind (System/getProperty "user.dir") "/tmp" BindMode/READ_ONLY))] + (log/infof "Creating container with image %s and command %s" img cmd) + container)) + +(defn container-exit-code [^GenericContainer container] + (-> (.inspectContainerCmd (.getDockerClient container) (.getContainerId container)) + (.exec) + (.getState) + (.getExitCodeLong))) + +(defn var->ns [v] + (:ns (meta v))) + +(defn var->str [v] + (str (symbol v))) + +(deftest postgres-test + (testing "failure via crash" + (let [runner (make-container (var->ns #'intemporal.containers.start-runner/-main) {:args ["postgres"]}) + workflow-fn #'intemporal.containers.execute-workflow/test-workflow + workflow (make-container (var->ns workflow-fn) {:args ["postgres" (var->str workflow-fn)]})] + (try + (.start runner) + (.start workflow) + + (testing "containers eventually exit" + (is (zero? (container-exit-code runner))) + (is (zero? (container-exit-code workflow)))) + + (finally + (.stop runner) + (.stop workflow)))))) diff --git a/test/intemporal/containers/start_runner.clj b/test/intemporal/containers/start_runner.clj new file mode 100644 index 0000000..a9cb097 --- /dev/null +++ b/test/intemporal/containers/start_runner.clj @@ -0,0 +1,45 @@ +(ns ^:integration ^:fdb ^:sql intemporal.containers.start-runner + (:gen-class) + (:require [clojure.tools.logging :as log] + [intemporal.store.foundationdb :as fdb] + [intemporal.store.jdbc :as jdbc] + [intemporal.workflow :as w]) + (:import (sun.misc Signal SignalHandler))) + +(def stores {:fdb (delay (fdb/make-store {:cluster-file-path (or (System/getenv "FDB_CLUSTERFILE") + "docker/fdb.cluster")})) + :postgres (delay (jdbc/make-store {:jdbcUrl (or (System/getenv "JDBC_URL") + "jdbc:postgresql://localhost:5432/root?user=root&password=root") + :migration-dir "migrations/postgres"}))}) + +;; serves as an entrypoint for a docker container that can be killed +;; some other container will have to execute the poller/runner +;; clj -A:dev:jdbc:fdb -m intemporal.containers.start-runner postgres +(defn -main [& args] + (let [store-type (-> args first keyword) + store (get stores store-type)] + (when (nil? store) + (throw (ex-info (format "Unknown store type: %s" store-type) {:store-type store-type}))) + (log/info "Starting poller for store" store-type) + + (let [ex (w/start-poller! @store {})] + (log/info "Ready: poller started for store" store-type) + (doto (Thread. (fn [] + (Signal/handle (Signal. "TERM") + (reify SignalHandler + (handle [this sig] + (log/info "Received SIGTERM, shutting down") + (w/shutdown ex 0)))) + (Signal/handle (Signal. "INT") + (reify SignalHandler + (handle [this sig] + (log/info "Received INT, quitting") + (System/exit 0)))) + (log/info "Waiting for SIGTERM/SIGINT...") + (Thread/sleep Integer/MAX_VALUE))) + + (.setDaemon false) + (.start))))) + +(comment + (-main "postgres")) \ No newline at end of file diff --git a/test/intemporal/shutdown_restart_test.cljs b/test/intemporal/shutdown_restart_test.cljs index 605e50e..0f24a45 100644 --- a/test/intemporal/shutdown_restart_test.cljs +++ b/test/intemporal/shutdown_restart_test.cljs @@ -55,10 +55,10 @@ (is (match? {:type :workflow :sym 'intemporal.shutdown-restart-test/my-workflow- :state :pending} w1)))) (testing "workflow events" - (let [[e1 e2 e3] (store/list-events mstore)] - (is (match? {:type :intemporal.workflow/invoke :sym 'intemporal.shutdown-restart-test/my-workflow-} e1)) - (is (match? {:type :intemporal.protocol/invoke :sym 'intemporal.shutdown-restart-test/foo} e2)) - (is (nil? e3)))))))) + (let [[e1 e2 e3] (store/list-events mstore)] + (is (match? {:type :intemporal.workflow/invoke :sym 'intemporal.shutdown-restart-test/my-workflow-} e1) + (is (match? {:type :intemporal.protocol/invoke :sym 'intemporal.shutdown-restart-test/foo} e2))) + (is (nil? e3)))))))) #_(deftest executor-shutdown-resume-test (testing "workflow resumes" diff --git a/test/intemporal/stores/resilience_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj similarity index 84% rename from test/intemporal/stores/resilience_test.clj rename to test/intemporal/stores/lots_of_workflows_test.clj index e705a1e..36d853e 100644 --- a/test/intemporal/stores/resilience_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -1,5 +1,5 @@ -(ns ^:integration ^:fdb ^:sql intemporal.stores.resilience-test - (:require [clojure.test :refer [deftest is testing use-fixtures]] +(ns ^:integration ^:fdb ^:sql intemporal.stores.lots-of-workflows-test + (:require [clojure.test :refer [deftest is testing]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] [intemporal.store.jdbc :as jdbc] @@ -9,8 +9,6 @@ [promesa.core :as p]) (:import (java.util.concurrent CountDownLatch))) -;(tu/setup-telemere) - (defprotocol MyActivities (foo [this a])) @@ -31,7 +29,7 @@ :migration-dir "migrations/postgres"})})) -(def iterations 10) +(def iterations 100) (def latch (CountDownLatch. iterations)) (deftest stores-test @@ -44,10 +42,10 @@ (testing "multiple iterations" (w/with-env {:store store} - (dotimes [_ iterations] - ;; workflows are blocking, we wrap in a virtual thread - (p/vthread - (my-workflow)))) + (dotimes [_ iterations] + ;; workflows are blocking, we wrap in a virtual thread + (p/vthread + (my-workflow)))) ;; check that all tasks are enqueued (wait (= iterations (count (store/list-tasks store))) @@ -63,7 +61,7 @@ (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) (w/shutdown ex 5000)) - (testing "workflows are all new" + (testing "workflows are all completed" (let [wflows (store/list-tasks store)] (is (= iterations (count wflows))) (is (= #{:success} (set (map :state wflows)))))) From 0c58cb5667dbd1ece157ad7f78a60bfc99fc19df Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:15:00 +0000 Subject: [PATCH 11/81] fixup! experiment with docker --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 295b2a8..3af5e7b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,6 +7,7 @@ concurrency: jobs: earthly: + if: false name: Earthly ci runs-on: ubuntu-latest permissions: write-all @@ -36,7 +37,7 @@ jobs: coverage-file: './coverage/lcov.info' clojure: - if: false + if: true runs-on: ubuntu-latest steps: - name: Checkout From 1f3abab13116cb47b8ce6e3b525dcc68e3fbc01e Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:16:45 +0000 Subject: [PATCH 12/81] fixup! fixup! experiment with docker --- test/intemporal/containers/failures_test.clj | 1 - 1 file changed, 1 deletion(-) diff --git a/test/intemporal/containers/failures_test.clj b/test/intemporal/containers/failures_test.clj index 2ce3bbf..923148a 100644 --- a/test/intemporal/containers/failures_test.clj +++ b/test/intemporal/containers/failures_test.clj @@ -5,7 +5,6 @@ [intemporal.containers.start-runner] [intemporal.containers.execute-workflow]) (:import (org.testcontainers.containers BindMode GenericContainer) - (org.testcontainers.containers.startupcheck IndefiniteWaitOneShotStartupCheckStrategy) (org.testcontainers.containers.wait.strategy Wait))) ;; assumes docker-compose is running From b119947682301f93db9c042a66d50d92973b767b Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:17:51 +0000 Subject: [PATCH 13/81] fixup! fixup! fixup! experiment with docker --- src/intemporal/store/jdbc.clj | 4 ++-- src/intemporal/workflow.cljc | 2 +- src/intemporal/workflow/internal.cljc | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 4629e5f..052af29 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -142,8 +142,8 @@ ;(validate-task! updated-task) (let [updated (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id :state (name expected-state)} default-opts))] (when (empty? updated) - (throw (ex-info (format "Cannot update task with id %s, expected state %s did not match" id expected-state {:task-id id - :expected-state expected-state})))) + (throw (ex-info (format "Cannot update task with id %s, expected state %s did not match" id expected-state) + {:task-id id :expected-state expected-state}))) updated-evt)))) (find-task [this id] diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index 7bba675..20d43a3 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -9,7 +9,7 @@ [intemporal.workflow :refer [with-env]])) #?(:clj (:require [intemporal.workflow.internal :refer [trace! trace-async!]] [steffan-westcott.clj-otel.context :as otctx])) - #?(:clj (:import [java.util.concurrent ExecutorService Executors TimeUnit] + #?(:clj (:import [java.util.concurrent Executors TimeUnit] [java.lang AutoCloseable]))) #?(:clj (set! *warn-on-reflection* true)) diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 14964af..62545ab 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -12,8 +12,7 @@ [net.cgrand.macrovich :as macros] [intemporal.workflow.internal :refer [trace! trace-async!]] [intemporal.store :refer [bfn]])) - #?(:clj (:import [java.util.function BiConsumer] - [java.util.concurrent CompletableFuture]))) + #?(:clj (:import [java.util.concurrent CompletableFuture]))) #?(:clj (set! *warn-on-reflection* true)) From be36d0052046f4b9baeb7ad064e4e31854d3348f Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:32:08 +0000 Subject: [PATCH 14/81] fixup! fixup! fixup! fixup! experiment with docker --- .github/workflows/ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3af5e7b..7487a93 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -74,10 +74,10 @@ jobs: - name: Setup FDB run: - curl -L "https://github.com/apple/foundationdb/releases/download/7.1.31/foundationdb-clients_7.1.31-1_amd64.deb" --output /tmp/foundationdb-clients_7.1.31-1_amd64.deb --fail; - sudo dpkg -i /tmp/foundationdb-clients_7.1.31-1_amd64.deb; - sudo rm -f /tmp/foundationdb-clients_7.1.31-1_amd64.deb; - sudo curl --fail -L "https://github.com/apple/foundationdb/releases/download/7.1.31/libfdb_c.x86_64.so" --output "/usr/lib/libfdb_c.7.1.31.x86_64.so"; + curl -L "https://github.com/apple/foundationdb/releases/download/7.3.57/foundationdb-clients_7.3.57-1_amd64.deb" --output /tmp/foundationdb-clients_7.3.57-1_amd64.deb --fail; + sudo dpkg -i /tmp/foundationdb-clients_7.3.57-1_amd64.deb; + sudo rm -f /tmp/foundationdb-clients_7.3.57-1_amd64.deb; + sudo curl --fail -L "https://github.com/apple/foundationdb/releases/download/7.3.57/libfdb_c.x86_64.so" --output "/usr/lib/libfdb_c.7.3.57.x86_64.so"; - name: Setup docker compose id: compose From 6f3835a36aaea97ffbdf1d8b16a6ada6d70be5f2 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:38:48 +0000 Subject: [PATCH 15/81] fixup! fixup! fixup! fixup! fixup! experiment with docker --- test/intemporal/test_utils.cljc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index fe35136..1dae4e1 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -87,7 +87,7 @@ ;; macros (def ^:dynamic with-result-default-timeout 10000) -(def ^:dynamic wait-default-timeout 3000) +(def ^:dynamic wait-default-timeout 10000) (defmacro with-result "Promise-aware macro: the result can either be a value or a thrown exception. @@ -127,7 +127,7 @@ 0)))))) (defmacro wait - "Waits for 3 secs until the result is true, or throws; + "Waits for 10 secs until the result is true, or throws; In `clj` it polls every 100ms In `cljs` it continuously loops ``` From c2fd0006d140e1b9c3b8caca782b72b3a7bc5c35 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:43:44 +0000 Subject: [PATCH 16/81] fixup! fixup! fixup! fixup! fixup! fixup! experiment with docker --- test/intemporal/stores/lots_of_workflows_test.clj | 11 ++++++----- test/intemporal/test_utils.cljc | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index 36d853e..5402738 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -48,11 +48,12 @@ (my-workflow)))) ;; check that all tasks are enqueued - (wait (= iterations (count (store/list-tasks store))) - (let [wflows (store/list-tasks store)] - (testing "workflows are all new" - (is (= iterations (count wflows))) - (is (= #{:new} (set (map :state wflows)))))))) + (with-redefs [tu/wait-default-timeout 60000] + (wait (= iterations (count (store/list-tasks store))) + (let [wflows (store/list-tasks store)] + (testing "workflows are all new" + (is (= iterations (count wflows))) + (is (= #{:new} (set (map :state wflows))))))))) (testing "enqueue all jobs" (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)}})] diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index 1dae4e1..d2e04fc 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -87,7 +87,7 @@ ;; macros (def ^:dynamic with-result-default-timeout 10000) -(def ^:dynamic wait-default-timeout 10000) +(def ^:dynamic wait-default-timeout 3000) (defmacro with-result "Promise-aware macro: the result can either be a value or a thrown exception. From 7d00a23e37d6087d2fc9aff856d49f33551ba696 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 11:54:33 +0000 Subject: [PATCH 17/81] fixup! fixup! fixup! fixup! fixup! fixup! fixup! experiment with docker --- .../stores/lots_of_workflows_test.clj | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index 5402738..61034bb 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -33,38 +33,39 @@ (def latch (CountDownLatch. iterations)) (deftest stores-test - (doseq [[label store] @stores] - (testing (format "store: %s" label) + (with-redefs [tu/wait-default-timeout 60000] + (doseq [[label store] @stores] + (testing (format "store: %s" label) - (testing "clear" - (store/clear-events store) - (store/clear-tasks store)) + (testing "clear" + (store/clear-events store) + (store/clear-tasks store)) - (testing "multiple iterations" - (w/with-env {:store store} - (dotimes [_ iterations] - ;; workflows are blocking, we wrap in a virtual thread - (p/vthread - (my-workflow)))) + (testing "multiple iterations" + (w/with-env {:store store} + (dotimes [_ iterations] + ;; workflows are blocking, we wrap in a virtual thread + (p/vthread + (my-workflow)))) + + ;; check that all tasks are enqueued - ;; check that all tasks are enqueued - (with-redefs [tu/wait-default-timeout 60000] (wait (= iterations (count (store/list-tasks store))) (let [wflows (store/list-tasks store)] (testing "workflows are all new" (is (= iterations (count wflows))) - (is (= #{:new} (set (map :state wflows))))))))) + (is (= #{:new} (set (map :state wflows)))))))) - (testing "enqueue all jobs" - (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)}})] - ;; lets wait for all pending - (try - (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) - (w/shutdown ex 5000)) + (testing "enqueue all jobs" + (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)}})] + ;; lets wait for all pending + (try + (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) + (w/shutdown ex 5000)) - (testing "workflows are all completed" - (let [wflows (store/list-tasks store)] - (is (= iterations (count wflows))) - (is (= #{:success} (set (map :state wflows)))))) - (finally - (w/shutdown ex 0)))))))) + (testing "workflows are all completed" + (let [wflows (store/list-tasks store)] + (is (= iterations (count wflows))) + (is (= #{:success} (set (map :state wflows)))))) + (finally + (w/shutdown ex 0))))))))) From 13fe52904e6bf3281a93c3c61ec1be38c98d3137 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 12:12:51 +0000 Subject: [PATCH 18/81] start 10 workfows --- test/intemporal/containers/failures_test.clj | 31 +++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/test/intemporal/containers/failures_test.clj b/test/intemporal/containers/failures_test.clj index 923148a..50de5d6 100644 --- a/test/intemporal/containers/failures_test.clj +++ b/test/intemporal/containers/failures_test.clj @@ -4,7 +4,8 @@ [clojure.tools.logging :as log] [intemporal.containers.start-runner] [intemporal.containers.execute-workflow]) - (:import (org.testcontainers.containers BindMode GenericContainer) + (:import (java.util.concurrent CountDownLatch) + (org.testcontainers.containers BindMode GenericContainer) (org.testcontainers.containers.wait.strategy Wait))) ;; assumes docker-compose is running @@ -17,10 +18,11 @@ ;; -e JDBC_URL="jdbc:postgresql://postgresql:5432/root?user=root&password=root" ;; -v "$(pwd)":/tmp clojure:temurin-25-tools-deps-noble clj ;; -A:dev:jdbc:fdb -m intemporal.containers.execute-workflow postgres intemporal.containers.execute-workflow/test-workflow - (let [cmd (format "clj -A:%s -m %s %s" aliases clj-main (str/join " " args)) + (let [cmd (format "clj -A:%s -M -m %s %s" aliases clj-main (str/join " " args)) img "clojure:temurin-25-tools-deps-noble" container (doto (GenericContainer. img) (.withEnv env) + ;; requires docker-compose running foundation and postgres (.withNetworkMode default-network) (.withCommand cmd) ;; will wait until the work is finished, but no exit @@ -43,17 +45,30 @@ (deftest postgres-test (testing "failure via crash" - (let [runner (make-container (var->ns #'intemporal.containers.start-runner/-main) {:args ["postgres"]}) - workflow-fn #'intemporal.containers.execute-workflow/test-workflow - workflow (make-container (var->ns workflow-fn) {:args ["postgres" (var->str workflow-fn)]})] + (let [runner (make-container (var->ns #'intemporal.containers.start-runner/-main) {:args ["postgres"]}) + workflow-fn #'intemporal.containers.execute-workflow/test-workflow + num-workflows 10 + workflows (mapv (fn [_] (make-container (var->ns workflow-fn) {:args ["postgres" (var->str workflow-fn)]})) + (range num-workflows)) + latch (CountDownLatch. num-workflows)] (try (.start runner) - (.start workflow) + ;; start all at same time + (doseq [workflow workflows] + (future + (try (.start workflow) + (finally + (.countDown latch))))) (testing "containers eventually exit" + ;; at this point, runner is ready + (is (zero? (container-exit-code runner))) - (is (zero? (container-exit-code workflow)))) + (.await latch) + (doseq [workflow workflows] + (is (zero? (container-exit-code workflow))))) (finally (.stop runner) - (.stop workflow)))))) + (doseq [workflow workflows] + (.stop workflow))))))) From ab332c030a65ad19f021c1edce3f84d2cae57c44 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 21 Dec 2025 16:45:48 +0000 Subject: [PATCH 19/81] restore earthly --- .github/workflows/ci.yaml | 4 +- deps.edn | 1 - test/intemporal/containers/failures_test.clj | 74 -------------------- 3 files changed, 2 insertions(+), 77 deletions(-) delete mode 100644 test/intemporal/containers/failures_test.clj diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7487a93..84ec9de 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,7 +7,7 @@ concurrency: jobs: earthly: - if: false + if: true name: Earthly ci runs-on: ubuntu-latest permissions: write-all @@ -37,7 +37,7 @@ jobs: coverage-file: './coverage/lcov.info' clojure: - if: true + if: false runs-on: ubuntu-latest steps: - name: Checkout diff --git a/deps.edn b/deps.edn index 5107e5d..ee52428 100644 --- a/deps.edn +++ b/deps.edn @@ -33,7 +33,6 @@ com.lambdaisland/kaocha-cljs {:mvn/version "1.5.154"} ch.qos.logback/logback-classic {:mvn/version "1.5.18"} tortue/spy {:mvn/version "2.15.0"} - org.testcontainers/testcontainers {:mvn/version "2.0.2"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.3.57"} diff --git a/test/intemporal/containers/failures_test.clj b/test/intemporal/containers/failures_test.clj deleted file mode 100644 index 50de5d6..0000000 --- a/test/intemporal/containers/failures_test.clj +++ /dev/null @@ -1,74 +0,0 @@ -(ns ^:integration ^:fdb ^:sql intemporal.containers.failures-test - (:require [clojure.string :as str] - [clojure.test :refer [deftest is testing]] - [clojure.tools.logging :as log] - [intemporal.containers.start-runner] - [intemporal.containers.execute-workflow]) - (:import (java.util.concurrent CountDownLatch) - (org.testcontainers.containers BindMode GenericContainer) - (org.testcontainers.containers.wait.strategy Wait))) - -;; assumes docker-compose is running -(def default-network "intemporal_default") - -(defn make-container ^GenericContainer - ^GenericContainer [clj-main {:keys [aliases args env] :or {env {"JDBC_URL" "jdbc:postgresql://postgresql:5432/root?user=root&password=root"} - aliases "dev:jdbc:fdb"}}] - ;; docker run --name workflow --network=intemporal_default -ti --rm - ;; -e JDBC_URL="jdbc:postgresql://postgresql:5432/root?user=root&password=root" - ;; -v "$(pwd)":/tmp clojure:temurin-25-tools-deps-noble clj - ;; -A:dev:jdbc:fdb -m intemporal.containers.execute-workflow postgres intemporal.containers.execute-workflow/test-workflow - (let [cmd (format "clj -A:%s -M -m %s %s" aliases clj-main (str/join " " args)) - img "clojure:temurin-25-tools-deps-noble" - container (doto (GenericContainer. img) - (.withEnv env) - ;; requires docker-compose running foundation and postgres - (.withNetworkMode default-network) - (.withCommand cmd) - ;; will wait until the work is finished, but no exit - (.waitingFor (Wait/forLogMessage ".*Ready.*\n", 1)) - (.withFileSystemBind (System/getProperty "user.dir") "/tmp" BindMode/READ_ONLY))] - (log/infof "Creating container with image %s and command %s" img cmd) - container)) - -(defn container-exit-code [^GenericContainer container] - (-> (.inspectContainerCmd (.getDockerClient container) (.getContainerId container)) - (.exec) - (.getState) - (.getExitCodeLong))) - -(defn var->ns [v] - (:ns (meta v))) - -(defn var->str [v] - (str (symbol v))) - -(deftest postgres-test - (testing "failure via crash" - (let [runner (make-container (var->ns #'intemporal.containers.start-runner/-main) {:args ["postgres"]}) - workflow-fn #'intemporal.containers.execute-workflow/test-workflow - num-workflows 10 - workflows (mapv (fn [_] (make-container (var->ns workflow-fn) {:args ["postgres" (var->str workflow-fn)]})) - (range num-workflows)) - latch (CountDownLatch. num-workflows)] - (try - (.start runner) - ;; start all at same time - (doseq [workflow workflows] - (future - (try (.start workflow) - (finally - (.countDown latch))))) - - (testing "containers eventually exit" - ;; at this point, runner is ready - - (is (zero? (container-exit-code runner))) - (.await latch) - (doseq [workflow workflows] - (is (zero? (container-exit-code workflow))))) - - (finally - (.stop runner) - (doseq [workflow workflows] - (.stop workflow))))))) From 67cd89b34219507e6e78f11089f4fd49dd5368c6 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 22 Dec 2025 22:19:34 +0000 Subject: [PATCH 20/81] bump fdb to 7.3.62 --- deps.edn | 2 +- docker-compose.yaml | 2 +- docker/fdb.cluster | 2 +- src/intemporal/workflow.cljc | 2 +- src/intemporal/workflow/internal.cljc | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deps.edn b/deps.edn index ee52428..6468ae7 100644 --- a/deps.edn +++ b/deps.edn @@ -35,7 +35,7 @@ tortue/spy {:mvn/version "2.15.0"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} - :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.3.57"} + :fdb {:extra-deps {org.foundationdb/fdb-java {:mvn/version "7.3.62"} me.vedang/clj-fdb {:mvn/version "0.3.0"}}} :jdbc {:extra-deps {com.github.seancorfield/next.jdbc {:mvn/version "1.3.1048"} diff --git a/docker-compose.yaml b/docker-compose.yaml index 1f385c0..e3f5d43 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -26,7 +26,7 @@ services: - jaeger foundation: - image: "foundationdb/foundationdb:7.3.57" + image: "foundationdb/foundationdb:7.3.62" environment: FDB_NETWORKING_MODE: host entrypoint: ["/usr/bin/tini", "-g", "--", "sh", "/fdb-init.bash"] diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 74a077b..5c41e53 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.18.0.2:4500 +docker:docker@192.168.107.3:4500 diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index 20d43a3..08efc8c 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -101,7 +101,7 @@ internal-env (merge internal/default-env base-env runtime)] ;; root task: we only enqueue workflows (with-env internal-env - (t/log! {:level :debug :data {:sym (:sym task) :env internal-env}} ["Resuming task with id" (:id task)]) + (t/log! {:level :debug :data {:sym (:sym task)}} ["Resuming task with id" (:id task)]) ;; this span creation is required in order for ;; subsequent workflow traces to have a "parent" span, otherwise ;; they won't show up correctly in jaeger diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 62545ab..308409e 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -187,9 +187,9 @@ ;; mark invoke/replay (let [next-event {:ref id :root (or root id) :type invoke :sym sym :args args}] (when inv? - (t/log! {:level :debug :data {:task task}} ["Found replay event for task with id" (:id task)])) + (t/log! {:level :debug :data {:sym (:sym task)}} ["Found replay event for task with id" (:id task)])) (when res? - (t/log! {:level :debug :data {:task task}} ["Found result event for task with id" (:id task)])) + (t/log! {:level :debug :data {:sym (:sym task)}} ["Found result event for task with id" (:id task)])) (cond ;; do we have an invocation event? if not, save this one From e29f8bf198d1d5adf066fbb2f40acd3ba763d485 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 22 Dec 2025 11:43:47 +0000 Subject: [PATCH 21/81] use one task per activity due to error recovery --- dev/intemporal/demo_parallelism.clj | 2 +- src/intemporal/macros.cljc | 22 ++-- src/intemporal/workflow.cljc | 106 ++++++++++-------- src/intemporal/workflow/internal.cljc | 8 +- .../containers/execute_workflow.clj | 42 ------- test/intemporal/containers/start_runner.clj | 45 -------- test/intemporal/shutdown_restart_test.clj | 39 ++++--- .../stores/lots_of_workflows_test.clj | 8 +- .../stores/multiple_shutdown_test.clj | 75 +++++++++++++ .../stores/release_reenqueue_test.clj | 2 +- test/intemporal/test_executor.clj | 42 +++++++ test/intemporal/test_utils.cljc | 8 +- test/intemporal/vthread_test.cljc | 7 +- test/intemporal/workflow_test.cljc | 2 +- 14 files changed, 232 insertions(+), 176 deletions(-) delete mode 100644 test/intemporal/containers/execute_workflow.clj delete mode 100644 test/intemporal/containers/start_runner.clj create mode 100644 test/intemporal/stores/multiple_shutdown_test.clj create mode 100644 test/intemporal/test_executor.clj diff --git a/dev/intemporal/demo_parallelism.clj b/dev/intemporal/demo_parallelism.clj index 296c627..9d42081 100644 --- a/dev/intemporal/demo_parallelism.clj +++ b/dev/intemporal/demo_parallelism.clj @@ -26,7 +26,7 @@ @(p/all proms))) (def mstore (store/make-store)) -(def ex (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) +(def stop-worker (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) ;; note that in cljs, this returns a promise (def res (w/with-env {:store mstore} diff --git a/src/intemporal/macros.cljc b/src/intemporal/macros.cljc index 93865a0..a66f574 100644 --- a/src/intemporal/macros.cljc +++ b/src/intemporal/macros.cljc @@ -104,11 +104,11 @@ ;; an embedded workflow engine doesn't need to have a task per invocation (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id " id#]) (trace! {:name (format "activity: %s" (symbol fvar#)) :attributes {:task-id id#}} - (let [res# (i/resume-task i/*env* store# protos# task#)] - (macros/case - :cljs res# - :clj (deref res#)))))))) - ;(w/enqueue-and-wait i/*env* task#))))) + (w/enqueue-and-wait i/*env* task#) + #_(let [res# (i/resume-task i/*env* store# protos# task#)] + (macros/case + :cljs res# + :clj (deref res#)))))))) (defmacro stub-protocol "Stub a protocol definition. Opts are currently unused. @@ -159,8 +159,8 @@ id#)] (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) - (i/resume-task i/*env* store# protos# task#)))))))) - ;(w/enqueue-and-wait i/*env* task#)))))))) + ;(i/resume-task i/*env* store# protos# task#)))))))) + (w/enqueue-and-wait i/*env* task#)))))))) :clj #_{:clj-kondo/ignore [:unresolved-symbol]} @@ -203,11 +203,15 @@ (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) (if (:vthread? i/*env*) + (trace-async! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} @(i/resume-task i/*env* store# protos# task#)) + #_ + (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} + (w/enqueue-and-wait i/*env* task#)) (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} - @(i/resume-task i/*env* store# protos# task#))))))))))) - ;(w/enqueue-and-wait i/*env* task#))))))))) + ;@(i/resume-task i/*env* store# protos# task#))))))))))) + (w/enqueue-and-wait i/*env* task#))))))))))) (defmacro with-failure "Runs `body`, ensuring that if it fails, compensation will always run. diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index 08efc8c..bd1f5c2 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -43,44 +43,52 @@ (defprotocol ITaskExecutor (submit [this f] "Submits the function `f` for execution") (shutdown [this grace-period-ms] "Shuts down the task executor") - (running? [this] "Indicates if the executor is running")) + (terminated? [this] "Indicates if the executor has terminated") + (shutting-down? [this] "Indicates if the executor has entered shutdown state")) (defn make-task-executor "Creates an object that satisfies `ITaskExecutor`." [] - (let [run? (atom true)] + (let [terminated? (atom false) + shutdown? (atom false)] #?(:cljs (reify ITaskExecutor (submit [_ f] - (when @run? + (when (not @terminated?) (p/vthread (f)))) (shutdown [_ grace-period-ms] (t/log! {:level :debug} ["Executor shutdown"]) - (reset! run? false)) - (running? [_] - @run?)) + (reset! terminated? true) + (reset! shutdown? true)) + (terminated? [_] @terminated?) + (shutting-down? [_] @shutdown?)) :clj - (let [factory (-> (Thread/ofVirtual) - (.name "Task Thread") - (.factory)) - exec (Executors/newThreadPerTaskExecutor factory) - running? (atom true)] + (let [factory (-> (Thread/ofVirtual) + (.name "Task Thread") + (.factory)) + exec (Executors/newThreadPerTaskExecutor factory)] (reify ITaskExecutor (submit [_ f] (.submit exec ^Runnable f)) (shutdown [_ grace-period-ms] (try + ;; reject tasks (.shutdown exec) + (reset! shutdown? true) (t/log! {:level :debug} ["Executor shutdown"]) + ;; await ongoing tasks (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) (.shutdownNow exec)) ;; in case we got interrupted exception, make sure to set the flag + ;; so ongoing ops fail (finally - (reset! running? false)))) - (running? [_] - @running?) + (reset! terminated? true)))) + (terminated? [_] + @terminated?) + (shutting-down? [_] + @shutdown?) ;; allow expressions like (with-open [executor (w/start-poller .... AutoCloseable (close [this] @@ -88,16 +96,17 @@ (defn- worker-execute-fn "Executes a given protocol, activity or workflow `task`" - [store protocols {:keys [type id root runtime fvar] :as task} task-counter shutting-down?] + [store protocols {:keys [type id root runtime fvar] :as task} task-counter terminated? shutting-down?] (let [runtime (:runtime task) - base-env {:store store - :type type - :ref id - :id id - :root (or root id) - :protos protocols - :next-id (fn [] (str (or root id) "-" (swap! task-counter inc))) - :shutdown? shutting-down?} + base-env {:store store + :type type + :ref id + :id id + :root (or root id) + :protos protocols + :next-id (fn [] (str (or root id) "-" (swap! task-counter inc))) + :terminated? terminated? + :shutdown? shutting-down?} internal-env (merge internal/default-env base-env runtime)] ;; root task: we only enqueue workflows (with-env internal-env @@ -114,27 +123,27 @@ (defn- worker-poll-fn "Continously polls for task while `task-executor` is active." [store protocols task-executor polling-ms] - (let [task-counter (atom 0) - shutting-down? (fn [] (not (running? task-executor)))] + (let [task-counter (atom 0) + stopped? (fn [] (terminated? task-executor)) + shutdown? (fn [] (shutting-down? task-executor))] #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} - @(p/loop [] - (-> (p/delay polling-ms) - (p/chain (fn [_] - (loop [] - (t/log! {:level :debug} ["Polling for tasks"]) - (when-let [task (store/dequeue-task store)] - (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) - (submit task-executor (fn [] - (worker-execute-fn store protocols task task-counter shutting-down?))) - (when (running? task-executor) - (recur)))) - (when (running? task-executor) - (p/recur)))) - (p/catch (fn [e] - (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]) - (when (running? task-executor) - (p/recur)))))))) + (-> (p/delay polling-ms) + (p/chain (fn [_] + (loop [] + (t/log! {:level :debug} ["Polling for tasks"]) + (when-let [task (store/dequeue-task store)] + (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) + (submit task-executor (fn [] + (worker-execute-fn store protocols task task-counter stopped? shutdown?))) + (when-not (stopped?) + (recur)))) + (when-not (stopped?) + (p/recur)))) + (p/catch (fn [e] + (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]) + (when-not (stopped?) + (p/recur)))))))) (defn start-poller! "Starts a poller that will submit tasks to the `task-executor`. @@ -159,8 +168,7 @@ (start-worker! store {})) ([store & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] (let [run? (atom true) - task-counter (atom 0) - uid (random-uuid)] + task-counter (atom 0)] (internal/libthread "Worker" #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} @(p/loop [] @@ -169,7 +177,9 @@ (when-let [task (store/dequeue-task store)] (t/log! {:level :debug :data {:sym (:sym task)}} ["Dequeued task with id" (:id task)]) (internal/libthread (str "Worker-" (:id task)) - (worker-execute-fn store protocols task task-counter (fn [] (not @run?))))) + (worker-execute-fn store protocols task task-counter + (fn [] (not @run?)) + (fn [] (not @run?))))) (when @run? (p/recur))))))) @@ -195,6 +205,6 @@ [] (let [thunks (-> internal/*env* :compensations)] (trace! {:name "compensations" :attributes {:fn-count (count @thunks)}} - (doseq [f @thunks] - (swap! thunks pop) - (f))))) \ No newline at end of file + (doseq [f @thunks] + (swap! thunks pop) + (f))))) \ No newline at end of file diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 308409e..1d8f9d0 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -166,7 +166,7 @@ (defn resume-fn-task "Resumes a generic fn call task" - [{:keys [vthread? shutdown?] :as env} store protos {:keys [type proto id root sym fvar args] :as task} [invoke success failure]] + [{:keys [vthread? terminated? shutdown?] :as env} store protos {:keys [type proto id root sym fvar args] :as task} [invoke success failure]] (when (and (= :proto-activity type) (nil? (get protos proto))) (throw (ex-info (str "Protocol implementation for " @@ -181,7 +181,7 @@ (t/log! {:level :debug :sym sym} ["Resuming try/catch task with id" id]) (try - (let [shutting-down? (fn [] (and (ifn? shutdown?) (shutdown?))) ;; TODO fix this hack + (let [terminated? (fn [] (and (ifn? terminated?) (terminated?))) [inv? res?] (all-events store id)] ;; mark invoke/replay @@ -208,7 +208,7 @@ ;; TODO assert r is serializable! ;; we check for shutdown because in js runtime, there is no thread interruption ;; at this point, if we are shutting down it means we exhausted the grace period - (let [panic? (shutting-down?)] + (let [panic? (terminated?)] (try (if panic? (task<-panic store id (error/panic "Worker shutting down during invocation result handling")) @@ -221,7 +221,7 @@ (t/log! {:level :debug :data {:sym sym :result r}} ["Shutting down, interrupted result" id]) (t/log! {:level :debug :data {:sym sym :result r}} ["Got actual function result for task" id])))))) handle-fail (bfn [e] - (if (shutting-down?) + (if (terminated?) (do (t/log! {:level :warn :data {:exception e}} ["Exception caught during shutdown, panicking task"]) (task<-panic store id (error/panic "Worker shutting down during invocation failure handling"))) diff --git a/test/intemporal/containers/execute_workflow.clj b/test/intemporal/containers/execute_workflow.clj deleted file mode 100644 index 9564abd..0000000 --- a/test/intemporal/containers/execute_workflow.clj +++ /dev/null @@ -1,42 +0,0 @@ -(ns ^:integration ^:fdb ^:sql intemporal.containers.execute-workflow - (:gen-class) - (:require [clojure.string :as str] - [clojure.tools.logging :as log] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function defn-workflow]] - [intemporal.containers.start-runner :as runner])) - -(defn foo [ a] - (Thread/sleep (long (rand-int 100))) - [:fun a]) - -(defn-workflow test-workflow [] - (let [pr (stub-function foo) - prr (pr :pr)] - prr)) - -;; serves as an entrypoint for a docker container that can be killed -;; some other container will have to execute the poller/runner -(defn -main [& args] - (let [store-type (-> args first keyword) - workflow-sym (or (-> args second) 'my-workflow) - workflow-fn (requiring-resolve (symbol (str/trim workflow-sym))) - store (get runner/stores store-type)] - (prn args) - (when (nil? store) - (throw (ex-info (format "Unknown store type: %s" store-type) {:store-type store-type}))) - - (when (nil? workflow-fn) - (throw (ex-info (format "Unknown worfklow fn : %s" workflow-sym) {:workflow workflow-sym}))) - - - (w/with-env {:store @store} - (try - (let [res (workflow-fn)] - (println "Response: " res)) - (finally - (log/info "Ready")))))) - -(comment - ;; clj -A:dev:jdbc:fdb -m intemporal.containers.execute-workflow postgres intemporal.containers.execute-workflow/test-workflow - (-main "postgres" "intemporal.containers.execute-workflow/test-workflow")) \ No newline at end of file diff --git a/test/intemporal/containers/start_runner.clj b/test/intemporal/containers/start_runner.clj deleted file mode 100644 index a9cb097..0000000 --- a/test/intemporal/containers/start_runner.clj +++ /dev/null @@ -1,45 +0,0 @@ -(ns ^:integration ^:fdb ^:sql intemporal.containers.start-runner - (:gen-class) - (:require [clojure.tools.logging :as log] - [intemporal.store.foundationdb :as fdb] - [intemporal.store.jdbc :as jdbc] - [intemporal.workflow :as w]) - (:import (sun.misc Signal SignalHandler))) - -(def stores {:fdb (delay (fdb/make-store {:cluster-file-path (or (System/getenv "FDB_CLUSTERFILE") - "docker/fdb.cluster")})) - :postgres (delay (jdbc/make-store {:jdbcUrl (or (System/getenv "JDBC_URL") - "jdbc:postgresql://localhost:5432/root?user=root&password=root") - :migration-dir "migrations/postgres"}))}) - -;; serves as an entrypoint for a docker container that can be killed -;; some other container will have to execute the poller/runner -;; clj -A:dev:jdbc:fdb -m intemporal.containers.start-runner postgres -(defn -main [& args] - (let [store-type (-> args first keyword) - store (get stores store-type)] - (when (nil? store) - (throw (ex-info (format "Unknown store type: %s" store-type) {:store-type store-type}))) - (log/info "Starting poller for store" store-type) - - (let [ex (w/start-poller! @store {})] - (log/info "Ready: poller started for store" store-type) - (doto (Thread. (fn [] - (Signal/handle (Signal. "TERM") - (reify SignalHandler - (handle [this sig] - (log/info "Received SIGTERM, shutting down") - (w/shutdown ex 0)))) - (Signal/handle (Signal. "INT") - (reify SignalHandler - (handle [this sig] - (log/info "Received INT, quitting") - (System/exit 0)))) - (log/info "Waiting for SIGTERM/SIGINT...") - (Thread/sleep Integer/MAX_VALUE))) - - (.setDaemon false) - (.start))))) - -(comment - (-main "postgres")) \ No newline at end of file diff --git a/test/intemporal/shutdown_restart_test.clj b/test/intemporal/shutdown_restart_test.clj index 6b54200..825e051 100644 --- a/test/intemporal/shutdown_restart_test.clj +++ b/test/intemporal/shutdown_restart_test.clj @@ -4,7 +4,8 @@ [intemporal.workflow :as w] [matcher-combinators.test :refer [match?]] [intemporal.macros :refer [stub-protocol defn-workflow]] - [intemporal.test-utils :as tu :refer [with-result]]) + [intemporal.test-utils :as tu :refer [with-result]] + [intemporal.test-executor :as te]) (:import (java.util.concurrent CountDownLatch))) ;(t/use-fixtures :once tu/with-trace-logging) @@ -13,39 +14,42 @@ (def executor-shutdown? (CountDownLatch. 1)) (defprotocol MyActivities - (foo [this a])) + (foo [this a]) + (foo2 [this a])) (defrecord MyActivitiesImpl [] MyActivities (foo [this a] (.countDown activity-invoked?) (.await executor-shutdown?) - :foo)) + :foo) + (foo2 [this a] a)) (defn-workflow my-workflow [k] (let [stub (stub-protocol MyActivities {}) - prr (foo stub :pr)] - prr)) + r1 (foo stub :pr) + r2 (foo2 stub :pr)] + [r1 r2])) ;;;; test proper (deftest executor-shutdown-test (testing "failure: task validation fails" - (let [mstore (store/make-store {}) - executor (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms 500})] + (let [mstore (store/make-store {}) + custom-ex (te/make-test-executor (fn [] (.countDown executor-shutdown?)) nil) + executor (w/start-poller! mstore custom-ex {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms 500})] (testing "shutdown of ongoing workflow" (future ;; ensure activity is inflight (.await activity-invoked?) + ;; immediately countdown the latch (w/shutdown executor 0) - ;; proceed activity, it will fail - (.countDown executor-shutdown?) - (is (not (w/running? executor)))) + (is (w/shutting-down? executor))) (with-result [res (w/with-env {:store mstore} - (my-workflow :ok))] + (my-workflow :ok))] (is (instance? Exception res)) @@ -53,14 +57,17 @@ (tu/print-tables mstore) (testing "workflow task" - (let [[w1] (store/list-tasks mstore)] + (let [tasks (store/list-tasks mstore) + [w1] tasks] (is (match? {:type :workflow :sym 'intemporal.shutdown-restart-test/my-workflow- :state :pending} w1)) - (testing "workflow events" - (let [[e1 e2 e3] (store/list-events mstore)] + (testing "workflow events: workflow has not finished" + (let [[e1 e2] (store/list-events mstore)] (is (match? {:type :intemporal.workflow/invoke :sym 'intemporal.shutdown-restart-test/my-workflow-} e1)) (is (match? {:type :intemporal.protocol/invoke :sym 'intemporal.shutdown-restart-test/foo} e2)) - (is (nil? e3)))) + + (let [[w1] (store/list-tasks mstore)] + (is (match? {:type :workflow :sym 'intemporal.shutdown-restart-test/my-workflow- :state :pending} w1))))) (testing "workflow resumes" (with-open [_ (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)} diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index 61034bb..6d5d96b 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -61,11 +61,11 @@ ;; lets wait for all pending (try (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) - (w/shutdown ex 5000)) + (w/shutdown ex 10000)) (testing "workflows are all completed" - (let [wflows (store/list-tasks store)] - (is (= iterations (count wflows))) - (is (= #{:success} (set (map :state wflows)))))) + (let [tasks (store/list-tasks store)] + (is (= (* 2 iterations) (count tasks))) + (is (= #{:success} (set (map :state tasks)))))) (finally (w/shutdown ex 0))))))))) diff --git a/test/intemporal/stores/multiple_shutdown_test.clj b/test/intemporal/stores/multiple_shutdown_test.clj new file mode 100644 index 0000000..449309d --- /dev/null +++ b/test/intemporal/stores/multiple_shutdown_test.clj @@ -0,0 +1,75 @@ +(ns intemporal.stores.multiple-shutdown-test + (:require [clojure.test :as t :refer [deftest is testing]] + [intemporal.store :as store] + [intemporal.store.foundationdb :as fdb] + [intemporal.store.jdbc :as jdbc] + [intemporal.workflow :as w] + [matcher-combinators.test :refer [match?]] + [intemporal.macros :refer [stub-protocol defn-workflow]] + [intemporal.test-utils :as tu :refer [with-result]])) + +(t/use-fixtures :once tu/with-trace-logging) + +(def stores (delay {:memory (store/make-store) + :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) + :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" + :migration-dir "migrations/postgres"})})) + +(defprotocol MyActivities + (sleep [this time])) + +(defrecord MyActivitiesImpl [] + MyActivities + (sleep [this a] + (Thread/sleep (long a)))) + +(defn-workflow my-workflow [steps max-sleep] + (let [stub (stub-protocol MyActivities {})] + (dotimes [_ steps] + (sleep stub (rand-int max-sleep))) + :done)) + +;;;; test proper + +(deftest executor-shutdown-test + (testing "workflow eventually finishes" + (let [store (store/make-store {}) + polling-ms 100 + executor (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms polling-ms}) + steps 3 + max-timeout 500 + max-wait (+ 1000 ;; leeway + (* steps polling-ms) + (* steps max-timeout)) + future-res (future + (w/with-env {:store store} + (my-workflow steps max-timeout)))] + + (testing "shutdown of ongoing workflow" + (let [start (System/currentTimeMillis)] + (loop [ex executor] + (store/reenqueue-pending-tasks store #(println "XXX" %)) + + (cond + (future-done? future-res) + (do + (is (= :done (deref future-res))) + (w/shutdown ex 0) + (tu/print-tables store)) + + (> (- (System/currentTimeMillis) start) max-wait) + (do + (future-cancel future-res) + (w/shutdown ex 0) + (tu/print-tables store) + (throw (ex-info "Timeout done, future not finished" {:timeout max-wait}))) + + :else + (do + ;; give a step a chance to finish + (w/shutdown ex max-wait) + (recur (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms 100})))))))))) + + diff --git a/test/intemporal/stores/release_reenqueue_test.clj b/test/intemporal/stores/release_reenqueue_test.clj index a20cc26..ef2da8f 100644 --- a/test/intemporal/stores/release_reenqueue_test.clj +++ b/test/intemporal/stores/release_reenqueue_test.clj @@ -53,7 +53,7 @@ (w/shutdown executor 0) ;; proceed activity, it will fail (.countDown executor-shutdown?) - (is (not (w/running? executor)))) + (is (w/shutting-down? executor))) (with-result [res (w/with-env {:store store} (my-workflow :ok))] diff --git a/test/intemporal/test_executor.clj b/test/intemporal/test_executor.clj new file mode 100644 index 0000000..31a38c7 --- /dev/null +++ b/test/intemporal/test_executor.clj @@ -0,0 +1,42 @@ +(ns intemporal.test-executor + (:require [intemporal.workflow :as w] + [taoensso.telemere :as t]) + (:import (java.lang AutoCloseable) + (java.util.concurrent Executors TimeUnit))) + +(defn make-test-executor [shutdown-fn? terminated-fn?] + (let [factory (-> (Thread/ofVirtual) + (.name "Task Thread") + (.factory)) + exec (Executors/newThreadPerTaskExecutor factory) + shutdown? (atom false) + terminated? (atom false)] + (reify + w/ITaskExecutor + (submit [_ f] + (.submit exec ^Runnable f)) + (shutdown [_ grace-period-ms] + (try + ;; reject tasks + (.shutdown exec) + (when (ifn? shutdown-fn?) + (shutdown-fn?)) + (reset! shutdown? true) + (t/log! {:level :debug} ["Executor shutdown"]) + ;; await ongoing tasks + (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) + (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) + (.shutdownNow exec)) + ;; in case we got interrupted exception, make sure to set the flag + ;; so ongoing ops fail + (finally + (when (ifn? terminated-fn?) + (terminated-fn?)) + (reset! terminated? true)))) + (terminated? [_] + @terminated?) + (shutting-down? [_] + @shutdown?) + AutoCloseable + (close [this] + (w/shutdown this 0))))) \ No newline at end of file diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index d2e04fc..d672247 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -64,8 +64,12 @@ (let [tasks (store/list-tasks store) events (->> (store/list-events store) (sort-by :id))] - (pprint/print-table tasks) - (pprint/print-table events))) + (locking *out* + (println "==================== TASKS") + (pprint/print-table tasks) + (println "==================== EVENTS") + (pprint/print-table events) + (flush)))) (defn wait-for-task "Waits for the task with given id to reach terminal state" diff --git a/test/intemporal/vthread_test.cljc b/test/intemporal/vthread_test.cljc index 29125e3..7d751c1 100644 --- a/test/intemporal/vthread_test.cljc +++ b/test/intemporal/vthread_test.cljc @@ -40,17 +40,18 @@ (p/all proms))) (deftest workflow-with-vthread-test - (let [sleep-time (+ 3000 (rand-int 500))] + (let [sleep-time (+ 1000 (rand-int 500))] (testing "workflow" (let [mstore (store/make-store) - executor (w/start-poller! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}}) + executor (w/start-poller! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)} + :polling-ms 10}) start (store/now)] ;; cljs runtimes return promises ;; clj runtime will run synchronously (with-result [v (w/with-env {:store mstore} - (my-workflow sleep-time))] + (my-workflow sleep-time))] (testing "result" (is (= (range 10) diff --git a/test/intemporal/workflow_test.cljc b/test/intemporal/workflow_test.cljc index 82e754f..4d64941 100644 --- a/test/intemporal/workflow_test.cljc +++ b/test/intemporal/workflow_test.cljc @@ -109,7 +109,7 @@ (is (match? {:type :workflow :sym 'intemporal.workflow-test/my-workflow- :state :success} w1))) (testing "workflow uuid" - (is (every? #(= @uuid-store %) (map :id tasks))) + (is (some #(= @uuid-store %) (map :id tasks))) (is (= @uuid-store workflow-id))))) (w/shutdown ex 1000))))) From 9cc624e98534a2182586cec2d21a47e16e93b72a Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 23 Dec 2025 12:54:45 +0000 Subject: [PATCH 22/81] fix bad ex state --- src/intemporal/error.cljc | 13 +++- src/intemporal/workflow.cljc | 22 ++++-- src/intemporal/workflow/internal.cljc | 15 +++- .../stores/multiple_shutdown_test.clj | 78 +++++++++---------- 4 files changed, 80 insertions(+), 48 deletions(-) diff --git a/src/intemporal/error.cljc b/src/intemporal/error.cljc index fc51bc7..85ca2a6 100644 --- a/src/intemporal/error.cljc +++ b/src/intemporal/error.cljc @@ -1,4 +1,15 @@ -(ns intemporal.error) +(ns intemporal.error + #?(:clj (:import [java.lang InterruptedException] + [java.util.concurrent RejectedExecutionException]))) + + +(defn interrupted? [e] + #?(:clj (instance? InterruptedException e) + :cljs false)) + +(defn rejected? [e] + #?(:clj (instance? RejectedExecutionException e) + :cljs false)) (defn internal-error? [ex] (when-let [t (-> ex ex-data ::type)] diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc index bd1f5c2..1d05a24 100644 --- a/src/intemporal/workflow.cljc +++ b/src/intemporal/workflow.cljc @@ -1,13 +1,15 @@ (ns intemporal.workflow (:require [intemporal.store :as store] [intemporal.workflow.internal :as internal] + [intemporal.error :as error] [promesa.core :as p] [taoensso.telemere :as t]) #?(:cljs (:require-macros #_:clj-kondo/ignore [intemporal.workflow.internal :refer [with-env-internal trace! trace-async!]] [intemporal.workflow :refer [with-env]])) - #?(:clj (:require [intemporal.workflow.internal :refer [trace! trace-async!]] + #?(:clj (:require [intemporal.error :as error] + [intemporal.workflow.internal :refer [trace! trace-async!]] [steffan-westcott.clj-otel.context :as otctx])) #?(:clj (:import [java.util.concurrent Executors TimeUnit] [java.lang AutoCloseable]))) @@ -131,11 +133,21 @@ (-> (p/delay polling-ms) (p/chain (fn [_] (loop [] - (t/log! {:level :debug} ["Polling for tasks"]) - (when-let [task (store/dequeue-task store)] + ;(t/log! {:level :debug} ["Polling for tasks..."]) + ;; TODO add another check for shutting-down? + (when-let [task (and + (not (shutting-down? task-executor)) + (store/dequeue-task store))] (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) - (submit task-executor (fn [] - (worker-execute-fn store protocols task task-counter stopped? shutdown?))) + (try + (submit task-executor (fn [] + (worker-execute-fn store protocols task task-counter stopped? shutdown?))) + (catch #?(:clj Exception :cljs js/Error) e + ;; dequeued updated the state atomically (so other txs dont do the same) + ;; but if the executor stopped in the meantime we need to revert the task's state + (when (error/rejected? e) + (t/log! {:level :warn} ["Task execution rejected, reverting state to :new"]) + (store/enqueue-task store (assoc task :state :new))))) (when-not (stopped?) (recur)))) (when-not (stopped?) diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 1d8f9d0..2f54631 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -221,14 +221,27 @@ (t/log! {:level :debug :data {:sym sym :result r}} ["Shutting down, interrupted result" id]) (t/log! {:level :debug :data {:sym sym :result r}} ["Got actual function result for task" id])))))) handle-fail (bfn [e] - (if (terminated?) + (cond + ;; if its a java.lang.InterruptedException it means + ;; we killed the executor + ;; - we must leave the task pending (assuming its idempotent) + (error/interrupted? e) + (t/log! {:level :debug :data {:sym sym :exception e}} ["Exception caught during actual function invocation for task" id]) + + ;; executor has terminated, it means we exhausted the graceful shutdown period + ;; panic the task + (terminated?) (do (t/log! {:level :warn :data {:exception e}} ["Exception caught during shutdown, panicking task"]) (task<-panic store id (error/panic "Worker shutting down during invocation failure handling"))) + + ;; regular task failure + :else (do (t/log! {:level :debug :data {:sym sym :exception e}} ["Exception caught during actual function invocation for task" id]) (task<-event store id (cond-> (assoc next-failure :error e) (error/internal-error? e) (assoc :type ::failure))))) + ;; finally, return error (p/rejected e)) retval (cond ;; are we replaying a result? diff --git a/test/intemporal/stores/multiple_shutdown_test.clj b/test/intemporal/stores/multiple_shutdown_test.clj index 449309d..ef304cf 100644 --- a/test/intemporal/stores/multiple_shutdown_test.clj +++ b/test/intemporal/stores/multiple_shutdown_test.clj @@ -4,72 +4,68 @@ [intemporal.store.foundationdb :as fdb] [intemporal.store.jdbc :as jdbc] [intemporal.workflow :as w] - [matcher-combinators.test :refer [match?]] [intemporal.macros :refer [stub-protocol defn-workflow]] - [intemporal.test-utils :as tu :refer [with-result]])) + [intemporal.test-utils :as tu] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) -(t/use-fixtures :once tu/with-trace-logging) +;(t/use-fixtures :once tu/with-trace-logging) (def stores (delay {:memory (store/make-store) :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" :migration-dir "migrations/postgres"})})) +(def activity-counter (atom 0)) + (defprotocol MyActivities (sleep [this time])) (defrecord MyActivitiesImpl [] MyActivities (sleep [this a] + (swap! activity-counter inc) (Thread/sleep (long a)))) (defn-workflow my-workflow [steps max-sleep] (let [stub (stub-protocol MyActivities {})] - (dotimes [_ steps] - (sleep stub (rand-int max-sleep))) + (dotimes [i steps] + (sleep stub max-sleep)) :done)) ;;;; test proper (deftest executor-shutdown-test (testing "workflow eventually finishes" - (let [store (store/make-store {}) - polling-ms 100 - executor (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms polling-ms}) - steps 3 - max-timeout 500 - max-wait (+ 1000 ;; leeway - (* steps polling-ms) - (* steps max-timeout)) - future-res (future - (w/with-env {:store store} - (my-workflow steps max-timeout)))] + (let [store (store/make-store {}) + polling-ms 500 + make-poller (fn [] (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms polling-ms})) + executor (atom (make-poller)) - (testing "shutdown of ongoing workflow" - (let [start (System/currentTimeMillis)] - (loop [ex executor] - (store/reenqueue-pending-tasks store #(println "XXX" %)) + steps 2 + max-timeout 500 - (cond - (future-done? future-res) - (do - (is (= :done (deref future-res))) - (w/shutdown ex 0) - (tu/print-tables store)) - - (> (- (System/currentTimeMillis) start) max-wait) - (do - (future-cancel future-res) - (w/shutdown ex 0) - (tu/print-tables store) - (throw (ex-info "Timeout done, future not finished" {:timeout max-wait}))) - - :else - (do - ;; give a step a chance to finish - (w/shutdown ex max-wait) - (recur (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms 100})))))))))) + workflow-id "f100ded0-0000-4000-a000-000000000000" + future-res (future + (w/with-env {:store store + :id workflow-id} + (my-workflow steps max-timeout))) + reenqueued (atom [])] + (testing "shutdown of ongoing workflow" + (add-watch activity-counter ::watch (fn [_ _ _ v] + (when (and (zero? (mod v 2)) + (empty? @reenqueued)) + (w/shutdown @executor max-timeout) + (store/reenqueue-pending-tasks store #(swap! reenqueued conj %)) + (reset! executor (make-poller))))) + (try + (is (= :done (deref future-res 10000 ::error))) + (finally + (testing "workflow was re-enqueued" + (is (match? (m/embeds [{:type :workflow :sym 'intemporal.stores.multiple-shutdown-test/my-workflow-}]) + @reenqueued))) + (w/shutdown @executor 0) + (tu/print-tables store))))))) From 7dae1b301240f7580fa1be996fa1566c07e6f92c Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 23 Dec 2025 23:07:43 +0000 Subject: [PATCH 23/81] replace with phaser --- src/intemporal/store/jdbc.clj | 3 +- src/intemporal/workflow/internal.cljc | 2 +- test/intemporal/shutdown_restart_test.clj | 2 +- test/intemporal/store_test.cljc | 4 +- test/intemporal/stores/basic_test.clj | 6 +-- .../stores/lots_of_workflows_test.clj | 4 +- .../stores/multiple_shutdown_test.clj | 2 +- .../stores/release_reenqueue_test.clj | 41 ++++++++++--------- test/intemporal/stores/saga_test.clj | 4 +- test/intemporal/test_utils.cljc | 6 +-- test/intemporal/vthread_recovery_test.clj | 4 +- 11 files changed, 41 insertions(+), 37 deletions(-) diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 052af29..06abfd2 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -203,7 +203,8 @@ (reenqueue-pending-tasks [this f] (let [tasks? (jdbc/with-transaction [tx db-spec] (let [tasks (jdbc/execute! tx ["select * from tasks where state='pending' and (owner is null or owner=?)" owner] default-opts)] - (jdbc/execute-one! tx ["update tasks set state='new', owner=? where id = ANY(?)" owner (into-array (mapv :id tasks))]) + (jdbc/execute-one! tx ["update tasks set state='new', owner=? where id = ANY(?)" owner + (into-array String (mapv :id tasks))]) (doseq [row tasks] (f (db->task row))) tasks))] diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc index 2f54631..28f8009 100644 --- a/src/intemporal/workflow/internal.cljc +++ b/src/intemporal/workflow/internal.cljc @@ -226,7 +226,7 @@ ;; we killed the executor ;; - we must leave the task pending (assuming its idempotent) (error/interrupted? e) - (t/log! {:level :debug :data {:sym sym :exception e}} ["Exception caught during actual function invocation for task" id]) + (t/log! {:level :debug :data {:sym sym}} ["InterruptedException caught during actual function invocation for task" id]) ;; executor has terminated, it means we exhausted the graceful shutdown period ;; panic the task diff --git a/test/intemporal/shutdown_restart_test.clj b/test/intemporal/shutdown_restart_test.clj index 825e051..91ab757 100644 --- a/test/intemporal/shutdown_restart_test.clj +++ b/test/intemporal/shutdown_restart_test.clj @@ -33,7 +33,7 @@ ;;;; test proper -(deftest executor-shutdown-test +(deftest shutdown-restart-test (testing "failure: task validation fails" (let [mstore (store/make-store {}) custom-ex (te/make-test-executor (fn [] (.countDown executor-shutdown?)) nil) diff --git a/test/intemporal/store_test.cljc b/test/intemporal/store_test.cljc index c7ab769..a1c3638 100644 --- a/test/intemporal/store_test.cljc +++ b/test/intemporal/store_test.cljc @@ -1,11 +1,11 @@ (ns intemporal.store-test - (:require [clojure.test :as t :refer [deftest is testing use-fixtures]] + (:require [clojure.test :as t :refer [deftest is testing]] [intemporal.test-utils :as tu] [intemporal.store :as s] [matcher-combinators.test :refer [match?]] [promesa.core :as p])) -(use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (defn- is-promise-ok [prom] (-> prom diff --git a/test/intemporal/stores/basic_test.clj b/test/intemporal/stores/basic_test.clj index 71dfb36..5b2ee44 100644 --- a/test/intemporal/stores/basic_test.clj +++ b/test/intemporal/stores/basic_test.clj @@ -1,5 +1,5 @@ (ns ^:integration ^:fdb ^:sql intemporal.stores.basic-test - (:require [clojure.test :refer [deftest is testing use-fixtures]] + (:require [clojure.test :as t :refer [deftest is testing]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] [intemporal.store.jdbc :as jdbc] @@ -8,14 +8,14 @@ [intemporal.matchers :refer [nilable?]] [matcher-combinators.test :refer [match?]])) -(use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (def stores (delay {:memory (store/make-store) :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" :migration-dir "migrations/postgres"})})) -(deftest stores-test +(deftest basic-test (doseq [[label store] @stores] (testing (format "store: %s" label) (let [evt {:ref "some-ref" :root "some-root" diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index 6d5d96b..b256a6d 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -32,7 +32,7 @@ (def iterations 100) (def latch (CountDownLatch. iterations)) -(deftest stores-test +(deftest lots-of-workflows-test (with-redefs [tu/wait-default-timeout 60000] (doseq [[label store] @stores] (testing (format "store: %s" label) @@ -61,7 +61,7 @@ ;; lets wait for all pending (try (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) - (w/shutdown ex 10000)) + (w/shutdown ex 20000)) (testing "workflows are all completed" (let [tasks (store/list-tasks store)] diff --git a/test/intemporal/stores/multiple_shutdown_test.clj b/test/intemporal/stores/multiple_shutdown_test.clj index ef304cf..03144f6 100644 --- a/test/intemporal/stores/multiple_shutdown_test.clj +++ b/test/intemporal/stores/multiple_shutdown_test.clj @@ -9,7 +9,7 @@ [matcher-combinators.test :refer [match?]] [matcher-combinators.matchers :as m])) -;(t/use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (def stores (delay {:memory (store/make-store) :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) diff --git a/test/intemporal/stores/release_reenqueue_test.clj b/test/intemporal/stores/release_reenqueue_test.clj index ef2da8f..a41c32d 100644 --- a/test/intemporal/stores/release_reenqueue_test.clj +++ b/test/intemporal/stores/release_reenqueue_test.clj @@ -1,22 +1,22 @@ (ns ^:integration ^:fdb ^:sql intemporal.stores.release-reenqueue-test - (:require [clojure.test :refer [deftest is testing use-fixtures]] + (:require [clojure.test :as t :refer [deftest is testing]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] [intemporal.store.jdbc :as jdbc] [intemporal.workflow :as w] [intemporal.macros :refer [stub-protocol defn-workflow]] [intemporal.test-utils :as tu :refer [with-result]]) - (:import (java.util.concurrent CountDownLatch))) + (:import (java.util.concurrent Phaser))) -(use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (def stores (delay {:memory (store/make-store) :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" :migration-dir "migrations/postgres"})})) -(def activity-invoked? (CountDownLatch. 1)) -(def executor-shutdown? (CountDownLatch. 1)) +(def activity-invoked? (Phaser. 1)) +(def executor-shutdown? (Phaser. 1)) (defprotocol MyActivities (foo [this a])) @@ -24,8 +24,8 @@ (defrecord MyActivitiesImpl [] MyActivities (foo [this a] - (.countDown activity-invoked?) - (.await executor-shutdown?) + (.arrive activity-invoked?) + (.awaitAdvance executor-shutdown? (.getPhase executor-shutdown?)) :foo)) (defn-workflow my-workflow [k] @@ -43,25 +43,28 @@ (testing (format "store: %s" label) (let [executor (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} - :polling-ms 500})] + :polling-ms 100})] (testing "shutdown of ongoing workflow" ;; give it some time so the poller can pick it up but just once - (future - ;; ensure activity is inflight - (.await activity-invoked?) - (w/shutdown executor 0) - ;; proceed activity, it will fail - (.countDown executor-shutdown?) - (is (w/shutting-down? executor))) + (let [fut (future + ;; ensure activity is inflight + (.awaitAdvance activity-invoked? (.getPhase activity-invoked?)) + (w/shutdown executor 0) + ;; proceed activity, it will fail + (.arrive executor-shutdown?) + :done)] - (with-result [res (w/with-env {:store store} - (my-workflow :ok))] + (with-result [res (w/with-env {:store store} + (my-workflow :ok))] - (is (instance? Exception res)))) + (is (instance? Exception res))) + + (is (= :done (deref fut 1000 ::error))))) (testing "Tasks are pending" (let [[task] (store/list-tasks store)] + (tu/print-tables store) (is (= :pending (:state task))))) (testing "Tasks are released" @@ -70,7 +73,7 @@ (is (nil? (:owner task))))) (testing "Tasks are reenqueued" - (store/reenqueue-pending-tasks store prn) + (store/reenqueue-pending-tasks store (constantly nil)) (let [[task] (store/list-tasks store)] (is (= store/default-owner (:owner task))) (is (= :new (:state task))))))))) diff --git a/test/intemporal/stores/saga_test.clj b/test/intemporal/stores/saga_test.clj index ae67ed3..03b95d0 100644 --- a/test/intemporal/stores/saga_test.clj +++ b/test/intemporal/stores/saga_test.clj @@ -1,5 +1,5 @@ (ns ^:integration ^:fdb ^:sql intemporal.stores.saga-test - (:require [clojure.test :refer [deftest is testing use-fixtures]] + (:require [clojure.test :as t :refer [deftest is testing]] [intemporal.store :as store] [intemporal.store.foundationdb :as fdb] [intemporal.store.jdbc :as jdbc] @@ -9,7 +9,7 @@ [spy.core :as spy] [spy.protocol :as pspy])) -(use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (defprotocol ProtocolActivity (some-io [this val]) diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index d672247..3dfa5e0 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -65,9 +65,9 @@ events (->> (store/list-events store) (sort-by :id))] (locking *out* - (println "==================== TASKS") + (print "==================== TASKS") (pprint/print-table tasks) - (println "==================== EVENTS") + (println "\n==================== EVENTS") (pprint/print-table events) (flush)))) @@ -164,7 +164,7 @@ (recur))))))) (defn setup-telemere [] - #?(:clj (clojure.pprint/pprint (telemere/check-interop))) + ;#?(:clj (clojure.pprint/pprint (telemere/check-interop))) (telemere/set-min-level! :trace) (telemere/remove-handler! ::custom) #?(:clj (telemere/add-handler! :default/open-telemetry (tot/handler:open-telemetry))) diff --git a/test/intemporal/vthread_recovery_test.clj b/test/intemporal/vthread_recovery_test.clj index 016d352..bbb6c23 100644 --- a/test/intemporal/vthread_recovery_test.clj +++ b/test/intemporal/vthread_recovery_test.clj @@ -1,6 +1,6 @@ (ns intemporal.vthread-recovery-test (:require [clojure.java.io :as io] - [clojure.test :refer [deftest is testing use-fixtures]] + [clojure.test :as t :refer [deftest is testing]] [intemporal.store :as store] [intemporal.workflow :as w] [intemporal.macros :refer [stub-protocol vthread defn-workflow]] @@ -10,7 +10,7 @@ ;;;; ;; demo - recovery of a crashed process -(use-fixtures :once tu/with-trace-logging) +(t/use-fixtures :once tu/with-trace-logging) (defprotocol ThreadActivity (with-thread [this id])) From 963f3576eb6ff41696f07a4b649a22bb11a1a0f2 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 24 Dec 2025 14:15:04 +0000 Subject: [PATCH 24/81] add hikari --- deps.edn | 1 + docker/fdb.cluster | 2 +- src/intemporal/store/jdbc.clj | 40 ++++++++++--------- .../stores/lots_of_workflows_test.clj | 40 +++++++++---------- 4 files changed, 43 insertions(+), 40 deletions(-) diff --git a/deps.edn b/deps.edn index 6468ae7..65872da 100644 --- a/deps.edn +++ b/deps.edn @@ -40,6 +40,7 @@ :jdbc {:extra-deps {com.github.seancorfield/next.jdbc {:mvn/version "1.3.1048"} org.postgresql/postgresql {:mvn/version "42.7.7"} + hikari-cp/hikari-cp {:mvn/version "3.3.0"} migratus/migratus {:mvn/version "1.6.4"}}} :doc {:extra-paths ["doc"]} :cljs {:extra-deps {org.clojure/clojurescript {:mvn/version "1.12.42"} diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 5c41e53..e7aea03 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@192.168.107.3:4500 +docker:docker@192.168.97.2:4500 diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 06abfd2..274d9bc 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -1,5 +1,6 @@ (ns intemporal.store.jdbc - (:require [intemporal.store :as store] + (:require [hikari-cp.core :as hikari] + [intemporal.store :as store] [intemporal.workflow.internal :as i] [intemporal.store.internal :as si :refer [serialize deserialize]] [migratus.core :as migratus] @@ -61,9 +62,12 @@ (defn make-store "Creates a new Postgres-based store." - [{:keys [owner migration-dir migrate? watch-polling-ms] + [{:keys [owner migration-dir migrate? watch-polling-ms jdbcUrl] :or {owner store/default-owner migrate? true watch-polling-ms 100} :as opts}] - (let [db-spec (dissoc opts :migration-dir :migrate? :watch-polling-ms) + (let [db-spec (-> opts + (dissoc :migration-dir :migrate? :watch-polling-ms) + (assoc :jdbc-url jdbcUrl)) + datasource (hikari/make-datasource db-spec) config {:store :database :migration-dir migration-dir :db db-spec} @@ -80,7 +84,7 @@ store/HistoryStore (list-events [this] - (->> (jdbc/with-transaction [tx db-spec] + (->> (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["select * from events"] default-opts)) (map db->event))) @@ -91,29 +95,29 @@ (let [args (serialize args) result (serialize result) - res (jdbc/with-transaction [tx db-spec] + res (jdbc/with-transaction [tx datasource] (jdbc/execute-one! tx ["INSERT INTO events(type, ref, root, sym, args, result) values (?,?,?,?,?,?) RETURNING id" (kw->db type) ref root (str sym) args result] default-opts))] (assoc event :id (:id res)))) (all-events [this task-id] - (->> (jdbc/with-transaction [tx db-spec] + (->> (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["select * from events where ref=?" task-id] default-opts)) (map db->event))) (clear-events [this] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["delete from events"]))) store/TaskStore (list-tasks [this] - (->> (jdbc/with-transaction [tx db-spec] + (->> (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["select * from tasks where (owner is null or owner=?)" owner] default-opts)) (map db->task))) (task<-panic [this task-id error] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (let [updated-task {:result (serialize error)}] (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id} default-opts))))) @@ -121,7 +125,7 @@ ;; some redundancy between :result in task and event ;; note that we save the event first, because update-task can trigger some watchers ;; and they would expect the event to be present in the history - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (let [evt {:ref ref :root root :type type :sym sym :args args} expected-state (cond (some? args) :new @@ -147,13 +151,13 @@ updated-evt)))) (find-task [this id] - (some-> (jdbc/with-transaction [tx db-spec] + (some-> (jdbc/with-transaction [tx datasource] (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) (db->task))) (watch-task [this id f] (let [query-state! (fn [] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (jdbc/execute-one! tx ["select state from tasks where id=?" id] default-opts))) state (query-state!) watch? (atom true)] @@ -161,7 +165,7 @@ (while (and @watch? state) (Thread/sleep (long watch-polling-ms)) (when (not= state (query-state!)) - (let [task (some-> (jdbc/with-transaction [tx db-spec] + (let [task (some-> (jdbc/with-transaction [tx datasource] (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) (db->task))] (when (and task (f task)) @@ -197,11 +201,11 @@ (wrap-result resolved))))))))) (release-pending-tasks [this] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (jdbc/execute-one! tx ["update tasks set owner=null where owner=?" owner]))) (reenqueue-pending-tasks [this f] - (let [tasks? (jdbc/with-transaction [tx db-spec] + (let [tasks? (jdbc/with-transaction [tx datasource] (let [tasks (jdbc/execute! tx ["select * from tasks where state='pending' and (owner is null or owner=?)" owner] default-opts)] (jdbc/execute-one! tx ["update tasks set state='new', owner=? where id = ANY(?)" owner (into-array String (mapv :id tasks))]) @@ -225,7 +229,7 @@ args (serialize args) result (serialize result) runtime (serialize runtime)] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["INSERT INTO tasks(id,owner,proto,type,ref,root,sym,args,result,state,lease_end,runtime) values (?,?,?,?,?,?,?,?,?,?,?,?) RETURNING id" id owner proto? (kw->db type) (kw->db ref) (kw->db root) (str sym) args result (kw->db state) lease-end runtime]))) task+owner)) @@ -236,7 +240,7 @@ (dequeue-task [this {:keys [lease-ms]}] ;; TODO check owner (let [query "select * from tasks where (owner=? or owner is null) and (state='new' or lease_end < now()) order by id asc limit 1" - found? (jdbc/with-transaction [tx db-spec] + found? (jdbc/with-transaction [tx datasource] (when-let [task (some-> (jdbc/execute-one! tx [query owner] default-opts) (db->task))] (let [lease-epoch (when lease-ms @@ -254,7 +258,7 @@ found?)) (clear-tasks [this] - (jdbc/with-transaction [tx db-spec] + (jdbc/with-transaction [tx datasource] (jdbc/execute! tx ["delete from tasks"])))))) #_:clj-kondo/ignore diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index b256a6d..de8638e 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -6,8 +6,7 @@ [intemporal.workflow :as w] [intemporal.macros :refer [stub-protocol defn-workflow]] [intemporal.test-utils :as tu :refer [wait]] - [promesa.core :as p]) - (:import (java.util.concurrent CountDownLatch))) + [promesa.core :as p])) (defprotocol MyActivities (foo [this a])) @@ -23,45 +22,44 @@ prr (foo pr :pr)] prr)) +(def iterations 100) + (def stores (delay {:memory (store/make-store) :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" - :migration-dir "migrations/postgres"})})) + :migration-dir "migrations/postgres" + :maximum-pool-size 20})})) -(def iterations 100) -(def latch (CountDownLatch. iterations)) - (deftest lots-of-workflows-test - (with-redefs [tu/wait-default-timeout 60000] + (with-redefs [tu/wait-default-timeout 10000] (doseq [[label store] @stores] (testing (format "store: %s" label) - (testing "clear" - (store/clear-events store) - (store/clear-tasks store)) + (store/clear-events store) + (store/clear-tasks store) (testing "multiple iterations" - (w/with-env {:store store} - (dotimes [_ iterations] - ;; workflows are blocking, we wrap in a virtual thread - (p/vthread + (dotimes [_ iterations] + (p/vthread + (w/with-env {:store store} + ;; workflows are blocking, we wrap in a virtual thread (my-workflow)))) ;; check that all tasks are enqueued - (wait (= iterations (count (store/list-tasks store))) - (let [wflows (store/list-tasks store)] - (testing "workflows are all new" - (is (= iterations (count wflows))) - (is (= #{:new} (set (map :state wflows)))))))) + (let [wflows (store/list-tasks store)] + (testing "workflows are all new" + (is (= iterations (count wflows))) + (is (= #{:new} (set (map :state wflows)))))))) (testing "enqueue all jobs" - (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)}})] + (let [ex (w/start-poller! store {:protocols {`MyActivities (->MyActivitiesImpl)} + :polling-ms 100})] ;; lets wait for all pending (try (wait (not (contains? (into #{} (map :state (store/list-tasks store))) :new)) - (w/shutdown ex 20000)) + (w/shutdown ex 10000)) (testing "workflows are all completed" (let [tasks (store/list-tasks store)] From 4eb386f9f0a3920eb2c01898778ade6873940413 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 24 Dec 2025 15:03:42 +0000 Subject: [PATCH 25/81] log info --- test/intemporal/test_utils.cljc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/intemporal/test_utils.cljc b/test/intemporal/test_utils.cljc index 3dfa5e0..3c6f3c4 100644 --- a/test/intemporal/test_utils.cljc +++ b/test/intemporal/test_utils.cljc @@ -165,7 +165,7 @@ (defn setup-telemere [] ;#?(:clj (clojure.pprint/pprint (telemere/check-interop))) - (telemere/set-min-level! :trace) + (telemere/set-min-level! :info) (telemere/remove-handler! ::custom) #?(:clj (telemere/add-handler! :default/open-telemetry (tot/handler:open-telemetry))) (telemere/add-handler! ::custom From db7f44cca3dfd99b05d3fca8f39ccd0606df94d3 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 24 Dec 2025 15:46:06 +0000 Subject: [PATCH 26/81] add basic test --- docker/fdb.cluster | 2 +- src/intemporal/store/jdbc.clj | 1 + .../intemporal/stores/basic_workflow_test.clj | 47 +++++++++++++++++++ .../stores/lots_of_workflows_test.clj | 4 +- 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 test/intemporal/stores/basic_workflow_test.clj diff --git a/docker/fdb.cluster b/docker/fdb.cluster index e7aea03..5c41e53 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@192.168.97.2:4500 +docker:docker@192.168.107.3:4500 diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 274d9bc..07dc171 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -239,6 +239,7 @@ (dequeue-task [this {:keys [lease-ms]}] ;; TODO check owner + ;; TODO select for update skip locked (let [query "select * from tasks where (owner=? or owner is null) and (state='new' or lease_end < now()) order by id asc limit 1" found? (jdbc/with-transaction [tx datasource] (when-let [task (some-> (jdbc/execute-one! tx [query owner] default-opts) diff --git a/test/intemporal/stores/basic_workflow_test.clj b/test/intemporal/stores/basic_workflow_test.clj new file mode 100644 index 0000000..f5e2615 --- /dev/null +++ b/test/intemporal/stores/basic_workflow_test.clj @@ -0,0 +1,47 @@ +(ns ^:integration ^:fdb ^:sql intemporal.stores.basic-workflow-test + (:require [clojure.test :as t :refer [deftest is testing]] + [intemporal.store :as store] + [intemporal.store.foundationdb :as fdb] + [intemporal.store.jdbc :as jdbc] + [intemporal.workflow :as w] + [intemporal.macros :as macros :refer [stub-protocol defn-workflow]] + [intemporal.test-utils :as tu])) + +(t/use-fixtures :once tu/with-trace-logging) + +(defprotocol ProtocolActivity + (some-io [this val])) + +(def example-impl + (reify + ProtocolActivity + (some-io [_ val] val))) + +;;;; +;; workflow registration + +(defn-workflow run-workflow [] + (let [stub (stub-protocol ProtocolActivity)] + (some-io stub :ok))) + +(def stores (delay {:memory (store/make-store) + :fdb (fdb/make-store {:cluster-file-path "docker/fdb.cluster"}) + :postgres (jdbc/make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" + :migration-dir "migrations/postgres" + :polling-ms 10})})) + +(deftest basic-workflow-test + (doseq [[label store] @stores] + (testing (format "store: %s" label) + + (testing "running a workflow" + (store/clear-events store) + (store/clear-tasks store) + + (let [ex (w/start-poller! store {:protocols {`ProtocolActivity example-impl} + :polling-ms 10})] + (try + (is (= :ok (w/with-env {:store store} + (run-workflow)))) + (finally + (w/shutdown ex 0)))))))) diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test/intemporal/stores/lots_of_workflows_test.clj index de8638e..bb1f98d 100644 --- a/test/intemporal/stores/lots_of_workflows_test.clj +++ b/test/intemporal/stores/lots_of_workflows_test.clj @@ -6,6 +6,7 @@ [intemporal.workflow :as w] [intemporal.macros :refer [stub-protocol defn-workflow]] [intemporal.test-utils :as tu :refer [wait]] + [matcher-combinators.test :refer [match?]] [promesa.core :as p])) (defprotocol MyActivities @@ -64,6 +65,7 @@ (testing "workflows are all completed" (let [tasks (store/list-tasks store)] (is (= (* 2 iterations) (count tasks))) - (is (= #{:success} (set (map :state tasks)))))) + (is (match? {:success (* 2 iterations)} + (frequencies (map :state tasks)))))) (finally (w/shutdown ex 0))))))))) From 2c6e2da1483aa9f8200dd16e5c4f9c8bfc9baa20 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 12 Jan 2026 08:35:25 +0000 Subject: [PATCH 27/81] intemporal next --- src/detflow/activity.clj | 6 + src/detflow/common.clj | 44 ++ src/detflow/core.clj | 315 +++++++++ src/detflow/coregemini.clj | 308 +++++++++ src/detflow/engine.clj | 119 ++++ src/detflow/example.clj | 49 ++ src/detflow/runtime.clj | 67 ++ src/detflow/workflow.clj | 104 +++ src/intemporal2/demo.clj | 143 ++++ src/intemporal3/chatgpt.md | 1318 ++++++++++++++++++++++++++++++++++++ 10 files changed, 2473 insertions(+) create mode 100644 src/detflow/activity.clj create mode 100644 src/detflow/common.clj create mode 100644 src/detflow/core.clj create mode 100644 src/detflow/coregemini.clj create mode 100644 src/detflow/engine.clj create mode 100644 src/detflow/example.clj create mode 100644 src/detflow/runtime.clj create mode 100644 src/detflow/workflow.clj create mode 100644 src/intemporal2/demo.clj create mode 100644 src/intemporal3/chatgpt.md diff --git a/src/detflow/activity.clj b/src/detflow/activity.clj new file mode 100644 index 0000000..49dd1a2 --- /dev/null +++ b/src/detflow/activity.clj @@ -0,0 +1,6 @@ +(ns detflow.activity + (:require [detflow.runtime :as rt])) + +(defmacro defactivity [name args & body] + `(swap! rt/activity-registry assoc ~(keyword (str *ns*) (str name)) + (fn ~args ~@body))) \ No newline at end of file diff --git a/src/detflow/common.clj b/src/detflow/common.clj new file mode 100644 index 0000000..2d7217e --- /dev/null +++ b/src/detflow/common.clj @@ -0,0 +1,44 @@ +(ns detflow.common + (:import (clojure.lang IExceptionInfo))) + +(def ^:private suspend-type ::suspend) + +;; The special exception used to pause execution without blocking threads. +(defn suspend! + "Throws a data-carrying exception to pause the workflow." + [wait-id] + (throw (ex-info "Workflow Suspended" + {:type suspend-type + :wait-id wait-id}))) + +(defn suspend? + "Checks if an exception is a valid workflow suspension." + [e] + (and (instance? clojure.lang.ExceptionInfo e) + (= (:type (ex-data e)) suspend-type))) + +(defn get-suspend-id + "Extracts the wait-id from a suspension exception." + [e] + (:wait-id (ex-data e))) + + +;; A wrapper for internal async task identifiers +(defrecord AsyncHandle [id] + Object + (toString [_] + (str ""))) + +(defn async-handle? [obj] + (instance? AsyncHandle obj)) + +;; Protocol for the storage layer +(defprotocol IHistoryStore + (append-event [this workflow-id event]) + (get-history [this workflow-id])) + +;; Protocol for the activity executor +(defprotocol IActivityExecutor + (execute-activity [this activity-name args])) + + diff --git a/src/detflow/core.clj b/src/detflow/core.clj new file mode 100644 index 0000000..0cbb972 --- /dev/null +++ b/src/detflow/core.clj @@ -0,0 +1,315 @@ +(ns detflow.core + (:import [clojure.lang ExceptionInfo])) + +;; ========================================================= +;; 1. SUSPENSION +;; ========================================================= + +(def ^:private suspend-type ::suspend) + +(defn suspend! [id] + (throw (ex-info "Workflow Suspended" + {:type suspend-type :wait-id id}))) + +(defn suspend? [e] + (and (instance? ExceptionInfo e) + (= (:type (ex-data e)) suspend-type))) + +;; ========================================================= +;; 2. RUNTIME CONTEXT +;; ========================================================= + +(def ^:dynamic *ctx* nil) + +(defn ctx [] + (or *ctx* + (throw (ex-info "No active workflow context" {})))) + +(defn next-id! [] + (swap! (:id-counter (ctx)) inc)) + +(defn record-event! [evt] + (swap! (:events-out (ctx)) conj evt)) + +(defn peek-history [] + (get (:history (ctx)) @(:cursor (ctx)))) + +(defn consume-history! [] + (swap! (:cursor (ctx)) inc)) + +;; ========================================================= +;; 3. UNIFIED EFFECT ABSTRACTION +;; ========================================================= +;; This is the heart of determinism. +;; Every effect: +;; 1. Schedules exactly once +;; 2. Awaits exactly one matching completion +;; 3. Consumes exactly the events it observes + +(defn effect! + [{:keys [schedule complete-type result-xform]}] + + ;; ---- SCHEDULE PHASE (never suspends) ---- + (let [evt (peek-history) + id (if (and evt (= (:type evt) (:type schedule))) + (:id evt) + (let [id (next-id!)] + (record-event! (assoc schedule :id id)) + id))] + + ;; consume schedule if replaying + (when (and evt (= (:type evt) (:type schedule))) + (consume-history!)) + + ;; ---- AWAIT PHASE (may suspend) ---- + (let [evt2 (peek-history)] + (if (and evt2 + (= (:type evt2) complete-type) + (= (:id evt2) id)) + (do + (consume-history!) + ((or result-xform identity) (:result evt2))) + (suspend! id))))) + +;; ========================================================= +;; 4. WORKFLOW API +;; ========================================================= + +(defn activity [name args] + (effect! + {:schedule {:type :activity-scheduled + :name name + :args args} + :complete-type :activity-completed + :result-xform :value})) + +(defn sleep [ms] + (effect! + {:schedule {:type :timer-scheduled + :duration ms} + :complete-type :timer-fired + :result-xform :value})) + +;; ========================================================= +;; 5. ASYNC +;; ========================================================= + +(defrecord AsyncHandle [id]) + +(defn async [f] + (let [evt (peek-history)] + (if (and evt (= (:type evt) :async-started)) + ;; replay + (do + (consume-history!) + (swap! (:tasks (ctx)) assoc (:id evt) f) + (->AsyncHandle (:id evt))) + + ;; first execution + (let [id (next-id!)] + (record-event! {:type :async-started :id id}) + (swap! (:tasks (ctx)) assoc id f) + ;; 🔑 IMPORTANT: block parent until replay aligns + (suspend! id))))) + + +(defn await [^AsyncHandle handle] + (let [evt (peek-history)] + (if (and evt + (= (:type evt) :async-completed) + (= (:id evt) (:id handle))) + (do + (consume-history!) + (:result evt)) + (suspend! (:id handle))))) + +;; ========================================================= +;; 6. ACTIVITY REGISTRY +;; ========================================================= + +(defonce activity-registry (atom {})) + +(defmacro defactivity [aname args & body] + `(swap! activity-registry + assoc ~(keyword (str *ns*) (name aname)) + (fn ~args ~@body))) + +(defmacro defworkflow [name args & body] + `(defn ~name ~args ~@body)) + +;; ========================================================= +;; 7. HISTORY STORE +;; ========================================================= + +(defprotocol IHistoryStore + (append-event [this wf-id evt]) + (get-history [this wf-id])) + +(defrecord InMemoryStore [store] + IHistoryStore + (append-event [_ id evt] + (swap! store update id (fnil conj []) evt)) + (get-history [_ id] + (get @store id []))) + +;; ========================================================= +;; 8. ACTIVITY EXECUTOR +;; ========================================================= + +(defprotocol IActivityExecutor + (execute-activity [this name args])) + +;; ========================================================= +;; 9. INTERPRETER +;; ========================================================= + +(defn run-interpreter-pass [workflow runtime] + (binding [*ctx* runtime] + + ;; register main task + (when (empty? @(:tasks runtime)) + (swap! (:tasks runtime) assoc 0 workflow)) + + (loop [] + (let [progress? (atom false) + initial-task-count (count @(:tasks runtime))] + + (doseq [[tid task] @(:tasks runtime)] + (when-not (contains? @(:results runtime) tid) + (try + (let [res (task)] + (swap! (:results runtime) assoc tid res) + (record-event! {:type :async-completed + :id tid + :result res}) + (reset! progress? true)) + (catch Exception e + (when-not (suspend? e) + (throw e)))))) + + (let [new-task-count (count @(:tasks runtime))] + (cond + (> new-task-count initial-task-count) + (recur) + + @progress? + (recur) + + (contains? @(:results runtime) 0) + {:status :completed + :result (get @(:results runtime) 0)} + + :else + {:status :blocked})))))) + +;; ========================================================= +;; 10. SIDE EFFECT PROCESSING +;; ========================================================= + +(defn process-side-effects [executor events] + (keep + (fn [evt] + (println "> processing side effect" evt) + (case (:type evt) + :activity-scheduled + {:type :activity-completed + :id (:id evt) + :result {:value + (execute-activity executor + (:name evt) + (:args evt))}} + + :timer-scheduled + {:type :timer-fired + :id (:id evt) + :result {:value :time-up}} + + nil)) + events)) + +;; ========================================================= +;; 11. ENGINE +;; ========================================================= + +(defn start-workflow + [{:keys [store executor]} + {:keys [workflow args id]}] + + (when (empty? (get-history store id)) + (append-event store id {:type :workflow-start :args args})) + + (loop [] + (println "xxx workflow loop") + (let [history (get-history store id) + start-idx (if (= (:type (first history)) :workflow-start) 1 0) + max-id (reduce #(max %1 (:id %2 0)) 0 history) + + runtime {:history history + :cursor (atom start-idx) + :events-out (atom []) + :id-counter (atom (inc max-id)) + :tasks (atom {}) + :results (atom {})} + + result (run-interpreter-pass #(apply workflow args) runtime) + + new-events @(:events-out runtime) + commands (filterv #(#{:activity-scheduled + :timer-scheduled} + (:type %)) + new-events) + completions (doall (process-side-effects executor commands))] + + (doseq [e new-events] + (println "TRACE new event" e) + (append-event store id e)) + (doseq [e completions] + (println "TRACE new completion event" e) + (append-event store id e)) + + (cond + (= (:status result) :completed) + (:result result) + + (or (seq new-events) (seq completions)) + (recur) + + :else + (do + (throw (ex-info "Deadlock" + {:history history}))))))) + +;; ========================================================= +;; 12. EXAMPLE +;; ========================================================= + +(defactivity fetch-order [id] + (println ">> Fetch order" id) + {:id id :price 100}) + +(defactivity charge-card [amount] + (println ">> Charge card" amount) + :paid) + +(defworkflow my-flow [id] + (println "Workflow start") + (let [order (activity :detflow.core/fetch-order [id])] + ;task (async #(activity :detflow.core/charge-card [(:price order)]))] + ;(await task) + {:status :shipped + :order order})) + +(defn -main [] + (let [engine {:store (->InMemoryStore (atom {})) + :executor (reify IActivityExecutor + (execute-activity [_ n args] + (let [act (get @activity-registry n)] + (apply act args))))}] + (println "RESULT:" + (start-workflow engine + {:workflow my-flow + :id "wf-1" + :args [123]})))) + +(comment) +(-main) diff --git a/src/detflow/coregemini.clj b/src/detflow/coregemini.clj new file mode 100644 index 0000000..842de11 --- /dev/null +++ b/src/detflow/coregemini.clj @@ -0,0 +1,308 @@ +(ns detflow.coregemini + + (:import [clojure.lang ExceptionInfo])) + +;; --------------------------------------------------------- +;; 1. COMMON & PROTOCOLS +;; --------------------------------------------------------- + +(def ^:private suspend-type ::suspend) + +(defn suspend! [wait-id] + (throw (ex-info "Workflow Suspended" {:type suspend-type :wait-id wait-id}))) + +(defn suspend? [e] + (and (instance? ExceptionInfo e) + (= (:type (ex-data e)) suspend-type))) + +(defrecord AsyncHandle [id] + Object + (toString [_] (str ""))) + +(defprotocol IHistoryStore + (append-event [this wf-id event]) + (get-history [this wf-id])) + +(defprotocol IActivityExecutor + (execute-activity [this name args])) + +;; --------------------------------------------------------- +;; 2. RUNTIME STATE +;; --------------------------------------------------------- + +(def ^:dynamic *ctx* nil) +(defonce activity-registry (atom {})) + +(defn current-ctx [] + (or *ctx* (throw (ex-info "No active workflow context." {})))) + +(defn next-id! [] + (let [{:keys [id-counter]} (current-ctx)] + (swap! id-counter inc))) + +(defn record-event! [event] + (swap! (:events-out (current-ctx)) conj event)) + +(defn register-task! [id f] + (swap! (:tasks (current-ctx)) assoc id f)) + +(defn peek-history-event [] + (let [{:keys [history cursor]} (current-ctx) + idx @cursor] + (get history idx))) + +(defn consume-history-event! [] + (let [{:keys [cursor]} (current-ctx)] + (swap! cursor inc))) + +(defn find-completed-result [target-id type] + (some (fn [evt] + (when (and (= (:id evt) target-id) (= (:type evt) type)) + (:result evt))) + (:history (current-ctx)))) + +(defn get-signal-payload [name] + (some (fn [evt] + (when (and (= (:type evt) :signal-received) (= (:name evt) name)) + (:payload evt))) + (:history (current-ctx)))) + +;; --------------------------------------------------------- +;; 3. WORKFLOW API +;; --------------------------------------------------------- + +;; Skip "result" events (completions) during replay to find the next "command" +(defn- advance-past-results! [] + (loop [] + (let [evt (peek-history-event)] + (when (and evt (#{:activity-completed :timer-fired :async-completed :signal-received} + (:type evt))) + (consume-history-event!) + (recur))))) + +(defn- get-or-create-handle [expected-type create-fn] + ;(advance-past-results!) + (let [evt (peek-history-event)] + (cond + ;; Case A: New Execution + (nil? evt) + (create-fn) + + ;; Case B: Replay + (= (:type evt) expected-type) + (do (consume-history-event!) + {:id (:id evt) :type expected-type}) + + ;; Case C: Non-Determinism Error + :else + (throw (ex-info "Non-Deterministic Workflow!" + {:expected expected-type :found (:type evt) :event evt}))))) + +(defn activity [name args] + (let [act-key (keyword name)] + (get-or-create-handle :activity-scheduled + (fn [] + (let [id (next-id!)] + (record-event! {:type :activity-scheduled :id id :name act-key :args args}) + {:id id :type :activity-scheduled}))))) + +(defn sleep [ms] + (get-or-create-handle :timer-scheduled + (fn [] + (let [id (next-id!)] + (record-event! {:type :timer-scheduled :id id :duration ms}) + {:id id :type :timer-scheduled})))) + +(defn async [f] + (let [handle (get-or-create-handle :async-started + (fn [] + (let [id (next-id!)] + (record-event! {:type :async-started :id id}) + {:id id :type :async-started})))] + (register-task! (:id handle) f) + (->AsyncHandle (:id handle)))) + + +(defn consume-completion! [id type] + (let [evt (peek-history-event)] + (when (and evt (= (:id evt) id) (= (:type evt) type)) + (consume-history-event!)))) + +(defn await [handle] + (if (instance? AsyncHandle handle) + ;; Internal Async Task + (let [{:keys [task-results]} (current-ctx)] + (if-let [[_ res] (find @task-results (:id handle))] + res + (suspend! (:id handle)))) + + ;; External Event + (let [{:keys [id type]} handle + comp-type (case type + (:activity :activity-scheduled) :activity-completed + (:timer :timer-scheduled) :timer-fired + :async-started :async-completed) + res (find-completed-result id comp-type)] + (if res + (do + (consume-completion! id comp-type) + (:value res)) + (suspend! id))))) + +(defmacro defactivity [name args & body] + `(swap! activity-registry assoc ~(keyword (str *ns*) (str name)) (fn ~args ~@body))) + + +;; --------------------------------------------------------- +;; 4. ENGINE +;; --------------------------------------------------------- + +(defn- run-interpreter-pass + "Runs tasks until blocked or complete. Returns status map." + [workflow-fn runtime] + (binding [*ctx* runtime] + (let [{:keys [tasks task-results]} runtime + main-id 0] + + ;; 1. Boot Main + (when (empty? @tasks) + (register-task! main-id workflow-fn)) + + ;; 2. Micro-Task Loop + (loop [] + (let [;; SORTING IS CRITICAL FOR DETERMINISM + active-tasks (sort (keys @tasks)) + made-progress? (atom false)] + + (doseq [tid active-tasks] + (when-not (contains? @task-results tid) + ;; If completed in history (hydration), restore result immediately + (if-let [hist-res (find-completed-result tid :async-completed)] + (swap! task-results assoc tid (:value hist-res)) + + ;; Else run logic + (try + (let [task-fn (get @tasks tid) + res (task-fn)] + (swap! task-results assoc tid res) + (record-event! {:type :async-completed :id tid :result res}) + (reset! made-progress? true)) + (catch Exception e + (when-not (suspend? e) (throw e))))))) + + (let [current-count (count (keys @tasks)) + prev-count (count active-tasks)] + ;; Recur if internal progress made or new tasks forked + (if (or @made-progress? (> current-count prev-count)) + (do + (println "reinterpreting... " @made-progress? (> current-count prev-count) iteration) + (recur)) + ;; Return status + (if (contains? @task-results main-id) + {:status :completed :result (get @task-results main-id)} + {:status :blocked})))))))) + + +(defn- process-side-effects [executor events] + (keep (fn [evt] + (cond + (= (:type evt) :activity-scheduled) + (let [res (execute-activity executor (:name evt) (:args evt))] + {:type :activity-completed :id (:id evt) :result {:value res}}) + + (= (:type evt) :timer-scheduled) + {:type :timer-fired :id (:id evt) :result {:value :time-up}})) + events)) + +(defn start-workflow [{:keys [store executor]} {:keys [workflow args id]}] + (when (empty? (get-history store id)) + (append-event store id {:type :workflow-start :args args})) + + (loop [iteration 0] + (println "(re)starting workflow, loop " iteration) + (let [history (get-history store id) + start-idx (if (= (:type (first history)) :workflow-start) 1 0) + max-id (reduce #(max %1 (:id %2 0)) 0 history) + + runtime {:history history + :cursor (atom start-idx) + :events-out (atom []) + :id-counter (atom (inc max-id)) + :tasks (atom {}) + :task-results (atom {})}] + + (let [result (run-interpreter-pass #(apply workflow args) runtime) + new-events @(:events-out runtime) + + ;; Identify Side Effects + commands (filterv #(#{:activity-scheduled :timer-scheduled} (:type %)) new-events) + + ;; Execute Side Effects IMMEDIATELY + completions (process-side-effects executor commands)] + + (assert (<= @(:cursor runtime) (count (:history runtime))) + "History cursor ran past history length") + + ;; Commit all new state + (doseq [e new-events] + (println "TRACE adding event" e) + (append-event store id e)) + (doseq [e completions] + (println "TRACE adding completion event" e) + (append-event store id e)) + + (cond + ;; Case 1: Workflow Completed + (= (:status result) :completed) + (:result result) + + ;; Case 2: Progress Made (Internal events OR Side effects finished) + (or (not-empty new-events) + (not-empty completions)) + (recur (inc iteration)) + + ;; Case 3: Deadlock (Blocked with no new events generated) + :else + (throw (ex-info "Deadlock: Workflow suspended." + {:history-len (count history)}))))))) + +;; --------------------------------------------------------- +;; 5. EXAMPLE USER CODE +;; --------------------------------------------------------- + +(defrecord InMemoryStore [store] + IHistoryStore + (append-event [_ id evt] (swap! store update id (fnil conj []) evt)) + (get-history [_ id] (get @store id []))) + +(defactivity fetch-order [id] + (println ">> [Activity] Fetching order:" id) + {:id id :price 100}) + +(defactivity charge-card [amount] + (println ">> [Activity] Charging card:" amount) + :paid) + +(defn my-flow [id] + (println "XXXX enter workflow") + (let [order (await (activity `fetch-order [id])) + ;; Fork an async task + payment-task (async (fn [] + (await (activity `charge-card [(:price order)]))))] + ;; Wait for payment + (await payment-task) + {:status :shipped :order order})) + +(defn -main [] + (let [engine {:store (->InMemoryStore (atom {})) + :executor (reify IActivityExecutor + (execute-activity [_ n args] + (apply (get @activity-registry n) args)))}] + + (println "--- STARTING ---") + (let [res (start-workflow engine {:workflow my-flow :id "wf-1" :args [123]})] + (println "--- DONE ---") + (println "Result:" res)))) + +(comment) +(-main) \ No newline at end of file diff --git a/src/detflow/engine.clj b/src/detflow/engine.clj new file mode 100644 index 0000000..21f78e3 --- /dev/null +++ b/src/detflow/engine.clj @@ -0,0 +1,119 @@ +(ns detflow.engine + (:require [detflow.common :as common] + [detflow.runtime :as rt] + [detflow.workflow :as wf])) + +;; --- Storage --- +(defrecord InMemoryStore [store] + common/IHistoryStore + (append-event [_ wf-id event] + (swap! store update wf-id (fnil conj []) event)) + (get-history [_ wf-id] + (get @store wf-id []))) + +(defn in-memory-store [] (->InMemoryStore (atom {}))) + +;; --- Logic --- + +(defn- run-interpreter-step + [workflow-fn runtime] + (binding [rt/*ctx* runtime] + (let [tasks (:tasks runtime) + task-results (:task-results runtime) + main-id 0] + + (when (empty? @tasks) + (rt/register-task! main-id workflow-fn)) + + (loop [made-progress? true] + (if-not made-progress? + :blocked + + (let [snapshot-tasks (keys @tasks) + count-before (count snapshot-tasks) + progress (atom false)] + + (doseq [tid snapshot-tasks] + (when-not (contains? @task-results tid) + (try + (let [res ((get @tasks tid))] + (swap! task-results assoc tid res) + (rt/record-event! {:type :async-completed :id tid :result res}) + (reset! progress true)) + (catch Exception e + (if (common/suspend? e) + nil ;; Task suspended, this is normal + (throw e)))))) + + ;; Check if new tasks were registered (e.g. via wf/async) + (let [count-after (count (keys @tasks)) + new-tasks-added? (> count-after count-before)] + (recur (or @progress new-tasks-added?))))))))) + +(defn- process-side-effects [executor workflow-id events] + (doseq [evt events] + (cond + (= (:type evt) :activity-scheduled) + (let [res (common/execute-activity executor (:name evt) (:args evt))] + {:type :activity-completed :id (:id evt) :result {:value res}}) + + (= (:type evt) :timer-scheduled) + {:type :timer-fired :id (:id evt) :result {:value :time-up}} + + :else nil))) + +(defn create [{:keys [persistence]}] + {:store persistence + :executor (reify common/IActivityExecutor + (execute-activity [_ name args] + (if-let [impl (get @rt/activity-registry name)] + (apply impl args) + (throw (ex-info "Activity not found" {:name name})))))}) + +(defn start-workflow [engine {:keys [workflow id args]}] + (let [store (:store engine) + executor (:executor engine)] + + (when (empty? (common/get-history store id)) + (common/append-event store id {:type :workflow-start :args args})) + + (loop [iteration 0] + (let [history (common/get-history store id) + + ;; 1. Skip :workflow-start + start-cursor (if (= (:type (first history)) :workflow-start) 1 0) + + ;; 2. Initialize ID counter to avoid collisions with history + max-id (reduce (fn [m e] (max m (:id e 0))) 0 history) + + runtime {:history history + :cursor (atom start-cursor) + :events-out (atom []) + :id-counter (atom (inc max-id)) + :tasks (atom {}) + :task-results (atom {})}] + + (let [result (run-interpreter-step #(apply workflow args) runtime)] + (cond + (= (:status result) :completed) + (:result result) + + (= result :blocked) + (let [new-events @(:events-out runtime) + ;; Include async-started as valid progress + commands (filter #(#{:activity-scheduled :timer-scheduled :async-started} (:type %)) new-events)] + + (if (empty? commands) + (throw (ex-info "Deadlock: Workflow suspended but no commands generated." + {:history-len (count history) + :new-events new-events})) + + (let [side-effects (filter #(#{:activity-scheduled :timer-scheduled} (:type %)) commands) + completions (keep #(process-side-effects executor id [%]) side-effects)] + (doseq [evt new-events] (common/append-event store id evt)) + (doseq [evt completions] (common/append-event store id evt)) + (recur (inc iteration))))))))))) + +(defn signal [engine workflow-id signal-name payload] + (common/append-event (:store engine) workflow-id + {:type :signal-received :name signal-name :payload payload})) \ No newline at end of file diff --git a/src/detflow/example.clj b/src/detflow/example.clj new file mode 100644 index 0000000..0b7a940 --- /dev/null +++ b/src/detflow/example.clj @@ -0,0 +1,49 @@ +(ns detflow.example + (:require [detflow.workflow :as wf] + [detflow.activity :as act] + [detflow.engine :as engine])) + +;; --- Define Activities --- + +(act/defactivity fetch-order [id] + (println ">> IO: Fetching order" id) + {:id id :item "Book" :price 100}) + +(act/defactivity charge-card [amount] + (println ">> IO: Charging card" amount) + {:status :paid :tx-id (rand-int 9999)}) + +(act/defactivity send-email [email] + (println ">> IO: Sending email to" email) + :sent) + +;; --- Define Workflow --- + +(wf/defworkflow order-flow [order-id] + (let [order (wf/await (wf/activity `fetch-order [order-id])) + + ;; Async fork example + payment-task (wf/async (fn [] + (wf/await (wf/activity `charge-card [(:price order)])))) + + ;; Do something else while payment processes + _ (wf/await (wf/sleep 100)) + + payment (wf/await `payment-task)] + + (wf/await (wf/activity `send-email "user@example.com")) + + {:order order :payment payment})) + +;; --- Run It --- + +(let [eng (engine/create {:persistence (engine/in-memory-store)})] + + (println "--- Starting Workflow ---") + (let [result (engine/start-workflow + eng + {:workflow order-flow + :id "wf-1" + :args [123]})] + (println "--- Workflow Completed ---") + (println "Result:" result))) \ No newline at end of file diff --git a/src/detflow/runtime.clj b/src/detflow/runtime.clj new file mode 100644 index 0000000..943a716 --- /dev/null +++ b/src/detflow/runtime.clj @@ -0,0 +1,67 @@ +(ns detflow.runtime + (:require [detflow.common :as common])) + +;; Global registry for activity implementations +(defonce activity-registry (atom {})) + +;; The Dynamic Context binding +;; Contains: +;; :history - Full event history [vector] +;; :cursor - Current index in history [atom] +;; :events-out - New events generated during this run [atom] +;; :tasks - Map of {task-id -> task-fn} for async concurrency +;; :task-results - Map of {task-id -> result} +;; :id-counter - Deterministic ID generator [atom] +;; :waiting - Set of IDs currently awaited (for debugging) +(def ^:dynamic *ctx* nil) + +(defn current-ctx [] + (or *ctx* (throw (ex-info "No active workflow context. Are you inside a workflow?" {})))) + +(defn next-id! [] + (let [{:keys [id-counter]} (current-ctx)] + (swap! id-counter inc))) + +(defn record-event! [event] + (let [{:keys [events-out]} (current-ctx)] + (swap! events-out conj event) + event)) + +(defn register-task! [task-id task-fn] + (let [{:keys [tasks]} (current-ctx)] + (swap! tasks assoc task-id task-fn))) + +(defn get-history-event [] + "Reads the next event from history if available (Replay mode)." + (let [{:keys [history cursor]} (current-ctx) + idx @cursor] + (when (< idx (count history)) + (let [evt (nth history idx)] + (swap! cursor inc) + evt)))) + +(defn peek-history-event [] + "Looks at next event without consuming (for checking completion)." + (let [{:keys [history cursor]} (current-ctx) + idx @cursor] + (when (< idx (count history)) + (nth history idx)))) + +(defn find-completed-result + "Scans history for a completion event for a specific ID." + [target-id type] + (let [{:keys [history]} (current-ctx)] + (some (fn [evt] + (when (and (= (:id evt) target-id) + (= (:type evt) type)) + (:result evt))) + history))) + +(defn get-signal-payload [signal-name] + "Scans history for signals." + (let [{:keys [history]} (current-ctx)] + (some (fn [evt] + (when (and (= (:type evt) :signal-received) + (= (:name evt) signal-name)) + (:payload evt))) + history))) \ No newline at end of file diff --git a/src/detflow/workflow.clj b/src/detflow/workflow.clj new file mode 100644 index 0000000..4394728 --- /dev/null +++ b/src/detflow/workflow.clj @@ -0,0 +1,104 @@ +(ns detflow.workflow + (:require [detflow.runtime :as rt] + [detflow.common :as common]) + (:import [detflow.common AsyncHandle])) + +(defmacro defworkflow [name args & body] + `(defn ~name ~args ~@body)) + +;; Events that are NOT commands and should be skipped by the replay cursor +(def ^:private result-event-types + #{:activity-completed + :timer-fired + :async-completed + :signal-received}) + +(defn- advance-past-results! + "Advances the history cursor past any completion/result events." + [] + (loop [] + (let [evt (rt/peek-history-event)] + (when (and evt (contains? result-event-types (:type evt))) + (rt/get-history-event) ;; consume and discard + (recur))))) +(defn- get-or-create-handle + [expected-type create-fn] + ;; 1. Ensure we are looking at a Command, not a Result + (advance-past-results!) + + (let [existing-event (rt/peek-history-event)] + (cond + ;; End of history -> Create new + (nil? existing-event) + (create-fn) + + ;; Match -> Replay + (= (:type existing-event) expected-type) + (do + (rt/get-history-event) ;; consume + {:id (:id existing-event) :type expected-type}) + + ;; Mismatch -> Error + :else + (throw (ex-info "Non-Deterministic Workflow detected!" + {:expected expected-type + :found (:type existing-event) + :event existing-event}))))) + +(defn activity + ([activity-sym args] (activity {} activity-sym args)) + ([opts activity-sym args] + (let [act-name (keyword (str (namespace activity-sym)) (str (name activity-sym)))] + (get-or-create-handle + :activity-scheduled + (fn [] + (let [new-id (rt/next-id!)] + (rt/record-event! {:type :activity-scheduled + :id new-id + :name act-name + :args args}) + {:id new-id :type :activity-scheduled})))))) + +(defn sleep [ms] + (get-or-create-handle + :timer-scheduled + (fn [] + (let [new-id (rt/next-id!)] + (rt/record-event! {:type :timer-scheduled :id new-id :duration ms}) + {:id new-id :type :timer-scheduled})))) + +(defn async [f] + (let [handle (get-or-create-handle + :async-started + (fn [] + (let [new-id (rt/next-id!)] + (rt/record-event! {:type :async-started :id new-id}) + {:id new-id :type :async-started})))] + (rt/register-task! (:id handle) f) + (common/->AsyncHandle (:id handle)))) + +(defn await [handle] + (if (instance? AsyncHandle handle) + (let [{:keys [task-results]} (rt/current-ctx)] + (if-let [[_ res] (find @task-results (:id handle))] + res + (common/suspend! (:id handle)))) + + (let [{:keys [id type]} handle + completion-type (case type + (:activity :activity-scheduled) :activity-completed + (:timer :timer-scheduled) :timer-fired + :async-started :async-completed) + result (rt/find-completed-result id completion-type)] + + (if result + (:value result) + (common/suspend! id))))) + +(defn await-signal [signal-name] + (if-let [payload (rt/get-signal-payload signal-name)] + payload + (common/suspend! (str "signal:" signal-name)))) + +(defn all [& handles] + (doall (map await handles))) \ No newline at end of file diff --git a/src/intemporal2/demo.clj b/src/intemporal2/demo.clj new file mode 100644 index 0000000..148896d --- /dev/null +++ b/src/intemporal2/demo.clj @@ -0,0 +1,143 @@ +(ns intemporal2.demo + (:import [clojure.lang IExceptionInfo])) + +(def ^:dynamic *context* nil) + +;;;; +;; runtime +(defn- make-context [] + (atom {:history {} + :counter (atom 0)})) + +;;;; +;; queries +(defn- context->activity? [task-id] + (contains? (:history @*context*) task-id)) + +(defn- context->activity-result [task-id] + ;; TODO handle exception result by unwrapping + (get (:history @*context*) task-id)) + +(defn- wait-for-activity [task-id] + (case task-id + :step-1 100 + :step-2 {:id 100 :name "Alice"} + :step-3 "Charged Alice")) + +(defn result->context [task-id result] + ;; TODO handle exception result by wrapping + (swap! *context* assoc-in [:history task-id] result)) + +;;;; +;; yielding +(defn yield-error + ([msg data] + (yield-error msg data nil)) + ([msg data cause] + (proxy [Error IExceptionInfo] [msg] + (getData [] data) + (getCause [] cause)))) + +(defn yield! [msg data] + (throw (yield-error msg data))) + +(defn yield-error? [^Error e] + (and (instance? IExceptionInfo e) + (= :yield (:type (ex-data e))))) + +(defn run-activity [task-id f args] + (println (str " [TRACE] Reached activity: " task-id)) + + (if (context->activity? task-id) + ;; CASE A: REPLAY + ;; We found this task in history! Return the recorded result immediately. + ;; We DO NOT run the actual function 'f'. + (do + (println (str " [SKIP] Found in history. Replaying result.")) + (context->activity-result task-id)) + + ;; CASE B: FIRST RUN + ;; Not in history. We must "schedule" it. + ;; In a real system, this sends a msg to a Queue/DB. + ;; Here, we just throw the Yield exception to stop the stack. + (do + ;; TODO queue + (println (str " [STOP] New task. Queuing & Yielding: " task-id)) + (yield! (format "Yielding: waiting for task %s" task-id) {:type :yield :task task-id})))) + + +;;;; +;; execution + +(defn run-attempt [workflow-fn args ctx] + (binding [*context* ctx] + (try + ;; Try to run the whole workflow... + {:status :completed + :result (apply workflow-fn args)} + + ;; Did we hit a Yield signal? + (catch Error e + (if (yield-error? e) + ;; Yes! Return the suspension state. + {:status :suspended + :waiting-for (:task (ex-data e))} + ;; No, it was a real crash. Rethrow. + (throw e)))))) + +(defn run-workflow [workflown-fn & args] + (let [context (make-context)] + (loop [iteration 1] + (println (str "\n--- ITERATION " iteration " ---")) + ;; 1. Run the workflow with current history + ;; TODO try/catch, save + (let [outcome (run-attempt workflown-fn args context)] + + (case (:status outcome) + ;; If Suspended: We act like the "Worker". We do the work, update history, and restart. + :suspended + (let [task-id (:waiting-for outcome) + ;; SIMULATION: Pretend we went to the DB and got a result. + ;; TODO go to the db + mock-result (wait-for-activity task-id)] + + (println (str " [SYSTEM] Executor finished " task-id ". Persisting result: " mock-result)) + + ;; RECUR: We restart the loop with the NEW history. + (do + (with-bindings {#'*context* context} + (result->context task-id mock-result)) + (recur (inc iteration)))) + + ;; todo handle exceptions + + ;; If Completed: We are done. + :completed + (println (str "\n✅ WORKFLOW FINISHED. Final Result: " (:result outcome)))))))) + + +;;;; +;; userland + +(defn my-activity [arg] + (println "") + [:hello arg]) + +(defn my-activity2 [arg] + (println "") + :XXX) + +(defn my-business-workflow [w1] + (println "Workflow starting...") + + ;; Step 1: Get User + (let [v1 (run-activity :step-1 my-activity 1) + v2 (run-activity :step-2 my-activity 3)] + + ;; Step 3: Charge Credit Card (using result from step 2) + [w1 + v1 + v2 + (run-activity :step-3 my-activity2 :xxx)])) + +(run-workflow my-business-workflow :w1) \ No newline at end of file diff --git a/src/intemporal3/chatgpt.md b/src/intemporal3/chatgpt.md new file mode 100644 index 0000000..c4f72b0 --- /dev/null +++ b/src/intemporal3/chatgpt.md @@ -0,0 +1,1318 @@ +# 1. High-level Architecture + +**Date:** 2026-01-10 +**Source:** [chat.openai.com](https://chatgpt.com/share/6961a32a-f1a4-800e-bd76-8ab69b7b5756) + +--- + +### **You** + +Describe the API for s high level clojure library in the style of temporal.io but runs embedded; in particular describe the API and implementation for a deterministic workflow runner, it should work for activities and for async calls too + +--- + +### **ChatGPT** + +Below is a high-level API and implementation design for an embedded, deterministic workflow engine in Clojure, inspired by Temporal.io, but running in-process (no external service). I’ll describe: + +Core design goals + +Public API (what users write) + +Workflow semantics (determinism model) + +Activities + +Async / concurrency model + +Signals, queries, timers + +Implementation architecture + +Deterministic runner internals + +Comparison to Temporal concepts + +I’ll keep it idiomatic Clojure, functional-first, but pragmatic. + +1. Core Design Goals + +Deterministic execution + +Same workflow code + same history ⇒ same behavior + +Embedded + +No server, no RPC, no DB required (but pluggable persistence) + +Replayable + +Execution is driven by a recorded event log + +Workflow ≠ Activities + +Workflows are pure & deterministic + +Activities may be impure, blocking, non-deterministic + +Async-first + +Native support for async workflows (no threads inside workflows) + +Testable + +Full replay and time-skipping in memory + +2. Public API (User-Facing) + Defining a Workflow + +```clojure +(ns example.workflows + (:require [detflow.workflow :as wf])) + +(wf/defworkflow order-workflow + [order-id] + (let [order (wf/await (wf/activity fetch-order order-id)) + payment (wf/await (wf/activity charge-card (:card order))) + _ (wf/await (wf/activity ship-order order))] + {:status :completed + :payment payment})) +``` + +Key properties: + +Workflow code looks synchronous + +wf/await is deterministic suspension + +No direct I/O allowed in workflow bodies + +Defining Activities + +```clojure +(ns example.activities + (:require [detflow.activity :as act])) + +(act/defactivity fetch-order [order-id] + ;; arbitrary IO allowed + (db/get-order order-id)) + +(act/defactivity charge-card [card] + (payments/charge card)) + +(act/defactivity ship-order [order] + (shipping/send order)) +``` + +Activities: + +Run outside deterministic runner + +Can be retried, timed out, or mocked + +Starting a Workflow + +```clojure +(require '[detflow.engine :as engine]) + +(def engine + (engine/create + {:persistence (engine/in-memory-store)})) + +(engine/start-workflow + engine + {:workflow example.workflows/order-workflow + :id "order-123" + :args ["order-123"]}) +``` + +Querying Workflow State + +```clojure +(engine/query engine "order-123" :status) +``` + +Sending Signals + +```clojure +(engine/signal engine "order-123" :cancel) +``` + +3. Workflow Semantics (Determinism Model) + Forbidden inside workflows + +System time + +Randomness + +Threads, futures, core.async go blocks + +I/O + +Atoms, refs, agents (unless mediated by workflow runtime) + +Allowed + +Pure computation + +Deterministic async primitives + +wf/await, wf/all, wf/race + +wf/sleep (virtual time) + +Workflow-local state (managed by runtime) + +4. Activities + Scheduling an Activity + +```clojure +(wf/activity fetch-order order-id) +``` + +Returns a deterministic promise-like handle. +Options: + +```clojure +(wf/activity + {:retry {:max-attempts 3} + :timeout 5000} + fetch-order + order-id) +``` + +Execution model: + +Workflow schedules activity → event recorded + +Runner dispatches activity to executor + +Result recorded as event + +Replay reads event instead of re-running activity + +5. Async & Concurrency Model + Await + +```clojure +(wf/await promise) +``` + +Parallel Execution + +```clojure +(let [[a b c] + (wf/await + (wf/all + (wf/activity a) + (wf/activity b) + (wf/activity c)))] + ...) +``` + +Race + +```clojure +(wf/await + (wf/race + (wf/activity slow) + (wf/sleep 1000))) +``` + +Async Workflow Functions + +```clojure +(wf/defworkflow async-example [] + (let [x (wf/await (wf/async (+ 1 2)))] + x)) +``` + +wf/async: + +Forks a deterministic task + +Not a thread + +Scheduled via workflow interpreter + +6. Signals, Queries, Timers + Signals + +```clojure +(wf/await-signal :cancel) +``` + +or + +```clojure +(wf/on-signal :cancel + (fn [_] (throw (ex-info "Cancelled" {})))) +``` + +Signals: + +Appended to event log + +Delivered deterministically during replay + +Queries + +```clojure +(wf/query-handler :status + (fn [state] (:status state))) +``` + +Queries: + +Read-only + +Do not mutate workflow state + +Not recorded in history + +Timers / Sleep + +```clojure +(wf/sleep 1000) +``` + +Logical time + +Skips instantly during replay/testing + +7. Implementation Architecture + High-Level Components + +``` +powershell┌─────────────────────────┐ +│ Workflow Engine │ +│ │ +│ ┌─────────────────────┐ │ +│ │ Deterministic Runner │ │ +│ └─────────────────────┘ │ +│ │ │ +│ ┌─────────────────────┐ │ +│ │ Event History Store │ │ +│ └─────────────────────┘ │ +│ │ │ +│ ┌─────────────────────┐ │ +│ │ Activity Executor │ │ +│ └─────────────────────┘ │ +└─────────────────────────┘ +``` + +8. Deterministic Runner Internals + Core Idea + Workflow execution is an interpreter over events + Event Types + +```clojure +clojure{:type :workflow-start + :args [...]} + +{:type :activity-scheduled + :id 42} + +{:type :activity-completed + :id 42 + :result ...} + +{:type :timer-fired + :id 17} + +{:type :signal-received + :name :cancel + :payload ...} +``` + +Execution Loop (Simplified) + +```clojure +(defn run-workflow [history workflow-fn] + (binding [*runtime* (make-runtime history)] + (try + (workflow-fn) + (catch Suspend e + :suspended)))) +``` + +Where: + +Suspend is thrown by wf/await + +Runtime records or consumes events + +wf/await Implementation (Conceptual) + +```clojure +(defn await [handle] + (if (completed? handle) + (result handle) + (throw (->Suspend handle)))) +``` + +On replay: + +Handle completion is read from history + +No actual blocking occurs + +Activity Scheduling + +```clojure +(defn activity [fn & args] + (let [event (next-event!)] + (if (:replay? *runtime*) + (lookup-result event) + (schedule-activity fn args)))) +``` + +Deterministic State +Workflow-local state stored in runtime: + +```clojure +clojure{:pc 42 + :futures {...} + :signals [...] + :timers {...}} +``` + +All mutation is mediated and recorded. + +9. Comparison to Temporal + Temporal ConceptThis LibraryTemporal ServerEmbedded runtimeWorkflow HistoryPluggable event storeWorkflow TaskDeterministic interpreterActivity WorkerLocal executorPromisesDeterministic handlesReplayAlways-on + +Summary +This design gives you: + +Temporal-style workflows + +Fully deterministic execution + +Embedded, testable, REPL-friendly + +Native async without threads + +Clean separation between workflow logic and side effects + +If you want, I can: + +Sketch a minimal runnable prototype + +Show a step-by-step replay example + +Compare core.async vs interpreter-based async + +Design the event store / persistence layer + +Just tell me which direction you want next. + +--- + +### **You** + +How do you use the suspended exception to wait? + +--- + +### **ChatGPT** + +Great question — this is the core trick that makes a deterministic workflow runner work without blocking threads. +Below I’ll explain how a “suspended exception” is used to wait, step by step, and why this works. + +The Core Idea (TL;DR) + +Waiting is implemented by throwing, not blocking. + +When a workflow reaches an operation that cannot complete yet (activity result, timer, async task), it: + +Records what it’s waiting for + +Throws a special Suspend exception + +The runner catches it, persists state, and returns control + +When new events arrive, the runner replays the workflow from the beginning + +On replay, the “awaited” value is now available, so execution continues + +No threads are parked. No blocking occurs. + +Why an Exception? +Because Clojure: + +Has no continuations + +Does not allow stack capture / resumption + +But does have cheap, controlled exceptions + +The exception is a control-flow signal, not an error. + +The Suspend Exception + +```clojure +(defrecord Suspend [wait-id]) +``` + +This identifies what the workflow is waiting on (activity, timer, signal, async task). + +wf/await: The Key Primitive + +```clojure +(defn await [handle] + (if (completed? handle) + (result handle) + (throw (->Suspend (:id handle))))) +``` + +Meaning: + +If the value is already known → return it + +Otherwise → abort execution intentionally + +Runner Execution Loop +The workflow runner expects suspension: + +```clojure +(defn run-workflow [runtime workflow-fn] + (try + (workflow-fn) + (catch Suspend s + (record-wait runtime (:wait-id s)) + :suspended))) +``` + +At this point: + +The workflow did not fail + +It simply reached a point where it needs external input + +What Happens After Suspension? +1. Workflow is paused + The runner: + +Persists the current history + +Remembers what the workflow is waiting on + +Returns control to the engine + +No stack is kept. No thread is blocked. + +2. External event arrives + Examples: + +Activity completes + +Timer fires + +Signal is sent + +An event is appended: + +```clojure +clojure{:type :activity-completed + :id 42 + :result {:ok true}} +``` + +3. Workflow is replayed from the beginning + This is the most important part. + +```clojure +(run-workflow runtime workflow-fn) +``` + +But now: + +Runtime is in replay mode + +The activity result is already in the event history + +So when the workflow reaches: + +```clojure +(wf/await activity-handle) +``` + +This time: + +```clojure +(completed? handle) ; => true +(result handle) ; => returns recorded value +``` + +Execution continues past the await. + +Why Replay Works +Because workflows are: +✔ Deterministic +✔ Side-effect-free +✔ Driven entirely by recorded events +So re-running from the top always reconstructs the same logical state. + +Example Timeline +Workflow Code + +```clojure +(let [x (wf/await (wf/activity fetch-order 123))] + (wf/await (wf/activity ship-order x))) +``` + +First Run + +fetch-order scheduled + +wf/await → throws Suspend + +Runner exits + +Activity Completes + +```clojure +clojure{:type :activity-completed + :id 1 + :result {:item "book"}} +``` + +Replay Run + +fetch-order result is replayed + +x is now bound + +ship-order scheduled + +wf/await → throws Suspend again + +Repeat Until Done +Each suspension: + +Is intentional + +Is deterministic + +Advances workflow state + +Why This Is Better Than Blocking +BlockingSuspend + ReplayUses threadsUses noneHard to serializeFully replayableCannot survive crashesCrash-safeTime-based waitsLogical time + +Important Constraints +Because of this model: +❌ You cannot catch Suspend inside workflow code +❌ You must not swallow it +❌ Workflow code must be referentially transparent +The runner owns suspension. + +Mental Model +Think of workflows as: + +Pure functions evaluated incrementally by throwing themselves out of execution until more inputs arrive. + +If You Want Next +I can: + +Show real Clojure code for a minimal runner + +Explain how async tasks work using the same mechanism + +Show how to prevent users from catching Suspend + +Compare this to core.async parking + +Just tell me. + +--- + +### **ChatGPT** + +Async tasks are the same mechanism as activities and timers, just entirely internal to the workflow. The key insight is: + +“Async” does NOT mean threads. +It means multiple logical continuations managed by the deterministic runner. + +Below I’ll explain how async tasks work, starting from the mental model, then the API, then the internals. + +Mental Model +Think of a workflow as: + +A single-threaded, deterministic interpreter that can have multiple logical tasks. + +Each async task is: + +A forked execution branch + +Identified by a task-id + +Scheduled and resumed only via history events + +Never executed concurrently on the CPU + +So concurrency is logical, not physical. + +Public API +Creating an Async Task + +```clojure +(wf/async + (fn [] + (wf/await (wf/activity a)) + (wf/await (wf/activity b)) + :done)) +``` + +Returns a task handle. + +Awaiting a Task + +```clojure +(let [task (wf/async some-work)] + (wf/await task)) +``` + +Parallel Tasks + +```clojure +(let [a (wf/async #(wf/await (wf/activity f1))) + b (wf/async #(wf/await (wf/activity f2)))] + [(wf/await a) (wf/await b)]) +``` + +Unified Abstraction: Awaitable +Internally, everything awaited is an awaitable: + +```clojure +clojure{:id 42 + :type :activity | :timer | :async-task + :state :pending | :completed + :result ...} +``` + +Async tasks fit into this model exactly. + +How wf/async Works +Step 1: Schedule the Task + +```clojure +(defn async [f] + (let [id (next-id!)] + (record-event! + {:type :async-started + :id id}) + (register-task! + {:id id + :fn f + :pc 0}) + (->AsyncHandle id))) +``` + +This does NOT execute f yet. + +Step 2: Runner Executes Tasks Incrementally +The runner maintains a task queue: + +```clojure +clojure{:tasks + {0 {:fn main-workflow} + 1 {:fn async-task-A} + 2 {:fn async-task-B}}} +``` + +Execution loop: + +```clojure +(loop [] + (when-let [task (next-runnable-task)] + (run-task task) + (recur))) +``` + +Only one task runs at a time. + +Step 3: Async Task Suspension +Async tasks suspend exactly like workflows. +Example async task: + +```clojure +(fn [] + (wf/await (wf/activity x)) + (wf/await (wf/activity y))) +``` + +If x isn’t ready: + +wf/await throws Suspend + +Runner catches it + +Task state is persisted + +Control returns to scheduler + +Step 4: Task Completion +When the async task reaches the end: + +```clojure +(record-event! + {:type :async-completed + :id task-id + :result result}) +``` + +Now: + +Awaiters can proceed + +Replay sees the task as completed + +Awaiting an Async Task + +```clojure +(defn await [handle] + (if (completed? handle) + (:result handle) + (throw (->Suspend (:id handle))))) +``` + +Same as activities. +No special logic. + +Replay Behavior +On replay: + +Async-start event is read + +Task function is re-run from the beginning + +Each await: + +Consumes history + +Either returns value or suspends + +When async-completed event is reached: + +Task returns immediately + +Replay reconstructs the exact logical state. + +Determinism Guarantees +To remain deterministic: +✔ Async task creation order must be deterministic +✔ Task scheduling order must be deterministic +✔ No shared mutable state between tasks +✔ All communication via awaitables/events +The runner enforces this. + +Why Not Threads / Futures? +ThreadsDeterministic Async TasksNondeterministic schedulingFully deterministicHard to replayAlways replayableUses blockingNo blockingNot crash-safeCrash-safe + +Relation to Temporal +TemporalThis LibraryWorkflow threadAsync taskPromiseAwaitableCoroutineDeterministic taskEvent historyEmbedded log + +Key Insight + +Async tasks are just nested workflows sharing the same event history. + +They use: + +The same suspension mechanism + +The same replay logic + +The same await semantics + +If You Want More +I can: + +Walk through a full execution trace + +Show a minimal runnable async scheduler + +Explain fairness and starvation + +Show how to implement wf/all and wf/race using async tasks + +Just say the word. + +--- + +### **You** + +What alternative is there to using exceptions? Can I use semaphores, promises or core.async? + +--- + +### **ChatGPT** + +Short answer: yes, there are alternatives—but none give you the same combination of determinism, replayability, and simplicity as the “suspend exception” model. +Long answer below, with concrete trade-offs. + +What the exception is really doing +Before comparing alternatives, it helps to name the role clearly. +The Suspend exception is acting as a delimited continuation escape hatch: + +It aborts execution without committing side effects + +It returns control to the runner immediately + +It does not park a thread + +It allows the workflow to be re-executed from the beginning + +So any alternative must satisfy all four. + +Option 1: Semaphores / Locks ❌ +Why it seems tempting +You could imagine: + +```clojure +(.acquire semaphore) +``` + +and then releasing it when an activity completes. +Why it fails +ProblemExplanationBlocks threadsEven “lightweight” locks block a real threadNot replayableYou can’t serialize “where a thread was blocked”Crash-unsafeA crash loses waiting stateTime leaksReal wall-clock time passes +Verdict +❌ Not viable for deterministic workflows. + +Option 2: Promises / Futures ❌ (by themselves) +The naive idea + +```clojure +(let [p (promise)] + (deliver p 42) + @p) +``` + +Why it fails +ProblemExplanationDeref blocksSame issue as semaphoresFutures spawn threadsNon-deterministic schedulingNot replayableYou cannot rehydrate a promise’s wait pointHidden side effectsThread creation is observable +You can use promises inside the engine, but not inside workflow code. +Verdict +❌ Unsafe inside workflows + +Option 3: core.async ❌ (for workflow code) +This is the most common question. +Why it looks attractive + +Non-blocking + +Parking instead of blocking + +Structured concurrency + +Why it still doesn’t work +1. go blocks are not replayable + +```clojure +(go + ( + +Deterministic scheduler + +```java +javaPromise a = Async.function(this::f1); +Promise b = Async.function(this::f2); +Promise.allOf(a, b).get(); +``` + +Important: + +These are not Java threads + +They’re SDK-managed coroutines + +Embedded Runner + +```clojure +(let [a (wf/async #(wf/await (wf/activity f1))) + b (wf/async #(wf/await (wf/activity f2)))] + [(wf/await a) (wf/await b)]) +``` + +Mechanically: + +Both spawn logical tasks + +Both suspend independently + +Both resume via replay + +6. Determinism Enforcement + Temporal + Temporal SDK: + +Intercepts time + +Intercepts randomness + +Replaces blocking APIs + +Throws NonDeterministicException on mismatch + +Requires: + +Special runtime + +SDK constraints + +Static analysis rules + +Embedded Runner +Determinism is enforced by: + +No I/O allowed in workflows + +All waits go through wf/await + +All side effects become events + +Much simpler, but: + +Less “magic” + +More discipline required + +7. Timers & Time + TemporalEmbeddedTimer APIWorkflow.sleepwf/sleepClockVirtualVirtualReplayServer-drivenLocal history + Identical semantics. + +8. Signals & Queries + FeatureTemporalEmbeddedSignalsAsynchronous eventsEventsQueriesRead-onlyRead-onlyReplay impactSignals replayedSignals replayedMutabilityRestrictedRestricted + +9. Failure & Retry + Temporal + +Activity retries handled by server + +Workflow retries are automatic + +Failures recorded as events + +Embedded + +Activity retries implemented in executor + +Workflow restarts are explicit + +Failures appended to history + +Semantics are the same; implementation surface is smaller. + +10. Why Temporal Doesn’t Use Exceptions (But Effectively Does) + Temporal does use exceptions internally—just not visible to users. + +Workflow thread parking + +Deterministic scheduler yield + +SDK control flow + +These are: + +Runtime exceptions + +Bytecode rewriting + +Fiber state machines + +Your embedded runner: + +Makes this explicit + +Avoids heavy SDK machinery + +11. Trade-offs Summary + Embedded Runner Advantages + ✔ Much smaller codebase + ✔ Easier to reason about + ✔ No bytecode tricks + ✔ REPL-friendly + ✔ Easier testing + Temporal Advantages + ✔ Polished ecosystem + ✔ Multi-language + ✔ Durable server + ✔ Production-hardened + ✔ Transparent blocking API \ No newline at end of file From 71b8ee473a1d00784ad2bc4117f112bc9ca7a53e Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 13 Jan 2026 15:59:24 +0000 Subject: [PATCH 28/81] checkp --- public/js/manifest.edn | 2 +- src/detflow/core.clj | 233 ++--- src/intemporal/macros.cljc | 2 +- src/intemporal2/demo.clj | 143 --- src/intemporal3/chatgpt.md | 1318 --------------------------- src/intemporal3/core.clj | 484 ++++++++++ src/intemporal3/core2.clj | 558 ++++++++++++ src/intemporal3/core3.clj | 1620 +++++++++++++++++++++++++++++++++ src/intemporal3/definition.md | 47 + src/intemporal3/engine.clj | 1 + src/intemporal3/observer.clj | 1 + src/intemporal3/protocol.clj | 1 + 12 files changed, 2811 insertions(+), 1599 deletions(-) delete mode 100644 src/intemporal2/demo.clj delete mode 100644 src/intemporal3/chatgpt.md create mode 100644 src/intemporal3/core.clj create mode 100644 src/intemporal3/core2.clj create mode 100644 src/intemporal3/core3.clj create mode 100644 src/intemporal3/definition.md create mode 100644 src/intemporal3/engine.clj create mode 100644 src/intemporal3/observer.clj create mode 100644 src/intemporal3/protocol.clj diff --git a/public/js/manifest.edn b/public/js/manifest.edn index 33074dd..7108f7b 100644 --- a/public/js/manifest.edn +++ b/public/js/manifest.edn @@ -1 +1 @@ -[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "clojure/edn.cljs" "intemporal/error.cljc" "malli/impl/util.cljc" "malli/impl/regex.cljc" "malli/registry.cljc" "borkdude/dynaload.cljc" "malli/sci.cljc" "malli/core.cljc" "intemporal/store/internal.cljc" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/store.cljc" "intemporal/workflow/internal.cljc" "intemporal/workflow.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file +[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljc.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core.cljc/async/impl/protocols.cljs" "cljs/core.cljc/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core.cljc/async/impl/dispatch.cljs" "cljs/core.cljc/async/impl/channels.cljs" "cljs/core.cljc/async/impl/timers.cljs" "cljs/core.cljc/async/impl/ioc_helpers.cljs" "cljs/core.cljc/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core.cljc/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "clojure/edn.cljs" "intemporal/error.cljc" "malli/impl/util.cljc" "malli/impl/regex.cljc" "malli/registry.cljc" "borkdude/dynaload.cljc" "malli/sci.cljc" "malli/core.cljc.cljc" "intemporal/store/internal.cljc" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/store.cljc" "intemporal/workflow/internal.cljc" "intemporal/workflow.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file diff --git a/src/detflow/core.clj b/src/detflow/core.clj index 0cbb972..752eb63 100644 --- a/src/detflow/core.clj +++ b/src/detflow/core.clj @@ -8,6 +8,7 @@ (def ^:private suspend-type ::suspend) (defn suspend! [id] + (println "XXX =-======= suspending ======") (throw (ex-info "Workflow Suspended" {:type suspend-type :wait-id id}))) @@ -21,22 +22,20 @@ (def ^:dynamic *ctx* nil) -(defn ctx [] - (or *ctx* - (throw (ex-info "No active workflow context" {})))) +(defn ctx [] *ctx*) (defn next-id! [] (swap! (:id-counter (ctx)) inc)) -(defn record-event! [evt] - (swap! (:events-out (ctx)) conj evt)) - (defn peek-history [] (get (:history (ctx)) @(:cursor (ctx)))) (defn consume-history! [] (swap! (:cursor (ctx)) inc)) +(defn record! [evt] + (swap! (:events-out (ctx)) conj evt)) + ;; ========================================================= ;; 3. UNIFIED EFFECT ABSTRACTION ;; ========================================================= @@ -47,21 +46,22 @@ ;; 3. Consumes exactly the events it observes (defn effect! - [{:keys [schedule complete-type result-xform]}] + [{:keys [schedule-type schedule-body complete-type result-xform]}] - ;; ---- SCHEDULE PHASE (never suspends) ---- + ;; scheduling (never suspends) (let [evt (peek-history) - id (if (and evt (= (:type evt) (:type schedule))) + id (if (= (:type evt) schedule-type) (:id evt) (let [id (next-id!)] - (record-event! (assoc schedule :id id)) + (record! (assoc schedule-body + :type schedule-type + :id id)) id))] - ;; consume schedule if replaying - (when (and evt (= (:type evt) (:type schedule))) + (when (= (:type evt) schedule-type) (consume-history!)) - ;; ---- AWAIT PHASE (may suspend) ---- + ;; awaiting (may suspend) (let [evt2 (peek-history)] (if (and evt2 (= (:type evt2) complete-type) @@ -74,14 +74,12 @@ ;; ========================================================= ;; 4. WORKFLOW API ;; ========================================================= - (defn activity [name args] (effect! - {:schedule {:type :activity-scheduled - :name name - :args args} - :complete-type :activity-completed - :result-xform :value})) + {:schedule-type :activity-scheduled + :schedule-body {:name name :args args} + :complete-type :activity-completed + :result-xform :value})) (defn sleep [ms] (effect! @@ -93,35 +91,28 @@ ;; ========================================================= ;; 5. ASYNC ;; ========================================================= +(defrecord TaskHandle [id]) -(defrecord AsyncHandle [id]) - -(defn async [f] +(defn fork [f] (let [evt (peek-history)] - (if (and evt (= (:type evt) :async-started)) - ;; replay + (if (= (:type evt) :task-forked) (do (consume-history!) - (swap! (:tasks (ctx)) assoc (:id evt) f) - (->AsyncHandle (:id evt))) - - ;; first execution + (->TaskHandle (:id evt))) (let [id (next-id!)] - (record-event! {:type :async-started :id id}) + (record! {:type :task-forked :id id}) (swap! (:tasks (ctx)) assoc id f) - ;; 🔑 IMPORTANT: block parent until replay aligns - (suspend! id))))) + (->TaskHandle id))))) - -(defn await [^AsyncHandle handle] +(defn join [^TaskHandle h] (let [evt (peek-history)] (if (and evt - (= (:type evt) :async-completed) - (= (:id evt) (:id handle))) + (= (:type evt) :task-completed) + (= (:id evt) (:id h))) (do (consume-history!) (:result evt)) - (suspend! (:id handle))))) + (suspend! (:id h))))) ;; ========================================================= ;; 6. ACTIVITY REGISTRY @@ -163,121 +154,87 @@ ;; 9. INTERPRETER ;; ========================================================= -(defn run-interpreter-pass [workflow runtime] +(defn run-pass [workflow runtime] (binding [*ctx* runtime] - ;; register main task - (when (empty? @(:tasks runtime)) + ;; register main task once + (when-not (contains? @(:tasks runtime) 0) (swap! (:tasks runtime) assoc 0 workflow)) (loop [] - (let [progress? (atom false) - initial-task-count (count @(:tasks runtime))] + (println "YYY run pass") + (clojure.pprint/pprint (ctx)) + (let [progress? (atom false)] (doseq [[tid task] @(:tasks runtime)] (when-not (contains? @(:results runtime) tid) (try - (let [res (task)] + (let [res (task)] ;; (task) may suspend execution! (swap! (:results runtime) assoc tid res) - (record-event! {:type :async-completed - :id tid - :result res}) + (record! {:type :task-completed + :id tid + :result res}) (reset! progress? true)) (catch Exception e (when-not (suspend? e) (throw e)))))) - (let [new-task-count (count @(:tasks runtime))] - (cond - (> new-task-count initial-task-count) - (recur) - - @progress? - (recur) - - (contains? @(:results runtime) 0) - {:status :completed - :result (get @(:results runtime) 0)} - - :else - {:status :blocked})))))) + (cond + @progress? (recur) + (contains? @(:results runtime) 0) + {:status :done :result (get @(:results runtime) 0)} + :else + {:status :blocked}))))) ;; ========================================================= ;; 10. SIDE EFFECT PROCESSING ;; ========================================================= -(defn process-side-effects [executor events] - (keep - (fn [evt] - (println "> processing side effect" evt) - (case (:type evt) - :activity-scheduled - {:type :activity-completed - :id (:id evt) - :result {:value - (execute-activity executor - (:name evt) - (:args evt))}} - - :timer-scheduled - {:type :timer-fired - :id (:id evt) - :result {:value :time-up}} - - nil)) - events)) +(defn process-activity + "Executes a scheduled activity and returns a completion event. + Pure function from schedule-event → completion-event." + [executor {:keys [id name args]}] + [{:type :activity-completed + :id id + :result {:value (execute-activity executor name args)}}]) ;; ========================================================= ;; 11. ENGINE ;; ========================================================= -(defn start-workflow - [{:keys [store executor]} - {:keys [workflow args id]}] - +(defn start-workflow [store executor workflow args id] (when (empty? (get-history store id)) (append-event store id {:type :workflow-start :args args})) - (loop [] - (println "xxx workflow loop") - (let [history (get-history store id) - start-idx (if (= (:type (first history)) :workflow-start) 1 0) - max-id (reduce #(max %1 (:id %2 0)) 0 history) - - runtime {:history history - :cursor (atom start-idx) - :events-out (atom []) - :id-counter (atom (inc max-id)) - :tasks (atom {}) - :results (atom {})} - - result (run-interpreter-pass #(apply workflow args) runtime) - - new-events @(:events-out runtime) - commands (filterv #(#{:activity-scheduled - :timer-scheduled} - (:type %)) - new-events) - completions (doall (process-side-effects executor commands))] - - (doseq [e new-events] - (println "TRACE new event" e) - (append-event store id e)) - (doseq [e completions] - (println "TRACE new completion event" e) - (append-event store id e)) - - (cond - (= (:status result) :completed) - (:result result) - - (or (seq new-events) (seq completions)) - (recur) - - :else - (do - (throw (ex-info "Deadlock" - {:history history}))))))) + (let [history (atom (get-history store id)) + start-idx (if (= (:type (first @history)) :workflow-start) 1 0) + max-id (reduce #(max %1 (:id %2 0)) 0 @history) + + runtime {:history history + :cursor (atom start-idx) + :events-out (atom []) + :id-counter (atom (inc max-id)) + :tasks (atom {}) + :results (atom {})}] + + (loop [] + (println "XXX run wf") + (reset! (:history runtime) (get-history store id)) + (reset! (:cursor runtime) start-idx) + (reset! (:events-out runtime) []) + + (let [res (run-pass #(apply workflow args) runtime) + evts @(:events-out runtime) + cmds (filterv #(= (:type %) :activity-scheduled) evts) + done (doall (mapcat #(process-activity executor %) cmds))] + + (doseq [e (concat evts done)] + (append-event store id e)) + + (cond + (= (:status res) :done) (:result res) + (or (seq evts) (seq done)) (recur) + :else (throw (ex-info "Deadlock" {:history @history}))))))) ;; ========================================================= ;; 12. EXAMPLE @@ -293,23 +250,27 @@ (defworkflow my-flow [id] (println "Workflow start") - (let [order (activity :detflow.core/fetch-order [id])] - ;task (async #(activity :detflow.core/charge-card [(:price order)]))] - ;(await task) + (let [ + ;order (activity :detflow.core.cljc/fetch-order [id]) + order {:price 1} + act (activity :detflow.core/charge-card [(:price order)]) + task (fork (fn call-activity [] act)) + tres (join task)] + {:status :shipped + :task tres :order order})) (defn -main [] - (let [engine {:store (->InMemoryStore (atom {})) - :executor (reify IActivityExecutor - (execute-activity [_ n args] - (let [act (get @activity-registry n)] - (apply act args))))}] - (println "RESULT:" - (start-workflow engine - {:workflow my-flow - :id "wf-1" - :args [123]})))) + (println "RESULT:" + (start-workflow (->InMemoryStore (atom {})) + (reify IActivityExecutor + (execute-activity [_ actname args] + (let [act (get @activity-registry actname)] + (apply act args)))) + my-flow + [123] + "my-flow"))) (comment) (-main) diff --git a/src/intemporal/macros.cljc b/src/intemporal/macros.cljc index a66f574..3cb4a47 100644 --- a/src/intemporal/macros.cljc +++ b/src/intemporal/macros.cljc @@ -36,7 +36,7 @@ that if the binding value is function stub, its value will be unrapped with the same environment at the callsite. - Uses `(promesa.core/let ...` under the hood so promises are resolved via + Uses `(promesa.core.cljc/let ...` under the hood so promises are resolved via a thunk with the current environment." [bindings & body] (let [env-sym (gensym) diff --git a/src/intemporal2/demo.clj b/src/intemporal2/demo.clj deleted file mode 100644 index 148896d..0000000 --- a/src/intemporal2/demo.clj +++ /dev/null @@ -1,143 +0,0 @@ -(ns intemporal2.demo - (:import [clojure.lang IExceptionInfo])) - -(def ^:dynamic *context* nil) - -;;;; -;; runtime -(defn- make-context [] - (atom {:history {} - :counter (atom 0)})) - -;;;; -;; queries -(defn- context->activity? [task-id] - (contains? (:history @*context*) task-id)) - -(defn- context->activity-result [task-id] - ;; TODO handle exception result by unwrapping - (get (:history @*context*) task-id)) - -(defn- wait-for-activity [task-id] - (case task-id - :step-1 100 - :step-2 {:id 100 :name "Alice"} - :step-3 "Charged Alice")) - -(defn result->context [task-id result] - ;; TODO handle exception result by wrapping - (swap! *context* assoc-in [:history task-id] result)) - -;;;; -;; yielding -(defn yield-error - ([msg data] - (yield-error msg data nil)) - ([msg data cause] - (proxy [Error IExceptionInfo] [msg] - (getData [] data) - (getCause [] cause)))) - -(defn yield! [msg data] - (throw (yield-error msg data))) - -(defn yield-error? [^Error e] - (and (instance? IExceptionInfo e) - (= :yield (:type (ex-data e))))) - -(defn run-activity [task-id f args] - (println (str " [TRACE] Reached activity: " task-id)) - - (if (context->activity? task-id) - ;; CASE A: REPLAY - ;; We found this task in history! Return the recorded result immediately. - ;; We DO NOT run the actual function 'f'. - (do - (println (str " [SKIP] Found in history. Replaying result.")) - (context->activity-result task-id)) - - ;; CASE B: FIRST RUN - ;; Not in history. We must "schedule" it. - ;; In a real system, this sends a msg to a Queue/DB. - ;; Here, we just throw the Yield exception to stop the stack. - (do - ;; TODO queue - (println (str " [STOP] New task. Queuing & Yielding: " task-id)) - (yield! (format "Yielding: waiting for task %s" task-id) {:type :yield :task task-id})))) - - -;;;; -;; execution - -(defn run-attempt [workflow-fn args ctx] - (binding [*context* ctx] - (try - ;; Try to run the whole workflow... - {:status :completed - :result (apply workflow-fn args)} - - ;; Did we hit a Yield signal? - (catch Error e - (if (yield-error? e) - ;; Yes! Return the suspension state. - {:status :suspended - :waiting-for (:task (ex-data e))} - ;; No, it was a real crash. Rethrow. - (throw e)))))) - -(defn run-workflow [workflown-fn & args] - (let [context (make-context)] - (loop [iteration 1] - (println (str "\n--- ITERATION " iteration " ---")) - ;; 1. Run the workflow with current history - ;; TODO try/catch, save - (let [outcome (run-attempt workflown-fn args context)] - - (case (:status outcome) - ;; If Suspended: We act like the "Worker". We do the work, update history, and restart. - :suspended - (let [task-id (:waiting-for outcome) - ;; SIMULATION: Pretend we went to the DB and got a result. - ;; TODO go to the db - mock-result (wait-for-activity task-id)] - - (println (str " [SYSTEM] Executor finished " task-id ". Persisting result: " mock-result)) - - ;; RECUR: We restart the loop with the NEW history. - (do - (with-bindings {#'*context* context} - (result->context task-id mock-result)) - (recur (inc iteration)))) - - ;; todo handle exceptions - - ;; If Completed: We are done. - :completed - (println (str "\n✅ WORKFLOW FINISHED. Final Result: " (:result outcome)))))))) - - -;;;; -;; userland - -(defn my-activity [arg] - (println "") - [:hello arg]) - -(defn my-activity2 [arg] - (println "") - :XXX) - -(defn my-business-workflow [w1] - (println "Workflow starting...") - - ;; Step 1: Get User - (let [v1 (run-activity :step-1 my-activity 1) - v2 (run-activity :step-2 my-activity 3)] - - ;; Step 3: Charge Credit Card (using result from step 2) - [w1 - v1 - v2 - (run-activity :step-3 my-activity2 :xxx)])) - -(run-workflow my-business-workflow :w1) \ No newline at end of file diff --git a/src/intemporal3/chatgpt.md b/src/intemporal3/chatgpt.md deleted file mode 100644 index c4f72b0..0000000 --- a/src/intemporal3/chatgpt.md +++ /dev/null @@ -1,1318 +0,0 @@ -# 1. High-level Architecture - -**Date:** 2026-01-10 -**Source:** [chat.openai.com](https://chatgpt.com/share/6961a32a-f1a4-800e-bd76-8ab69b7b5756) - ---- - -### **You** - -Describe the API for s high level clojure library in the style of temporal.io but runs embedded; in particular describe the API and implementation for a deterministic workflow runner, it should work for activities and for async calls too - ---- - -### **ChatGPT** - -Below is a high-level API and implementation design for an embedded, deterministic workflow engine in Clojure, inspired by Temporal.io, but running in-process (no external service). I’ll describe: - -Core design goals - -Public API (what users write) - -Workflow semantics (determinism model) - -Activities - -Async / concurrency model - -Signals, queries, timers - -Implementation architecture - -Deterministic runner internals - -Comparison to Temporal concepts - -I’ll keep it idiomatic Clojure, functional-first, but pragmatic. - -1. Core Design Goals - -Deterministic execution - -Same workflow code + same history ⇒ same behavior - -Embedded - -No server, no RPC, no DB required (but pluggable persistence) - -Replayable - -Execution is driven by a recorded event log - -Workflow ≠ Activities - -Workflows are pure & deterministic - -Activities may be impure, blocking, non-deterministic - -Async-first - -Native support for async workflows (no threads inside workflows) - -Testable - -Full replay and time-skipping in memory - -2. Public API (User-Facing) - Defining a Workflow - -```clojure -(ns example.workflows - (:require [detflow.workflow :as wf])) - -(wf/defworkflow order-workflow - [order-id] - (let [order (wf/await (wf/activity fetch-order order-id)) - payment (wf/await (wf/activity charge-card (:card order))) - _ (wf/await (wf/activity ship-order order))] - {:status :completed - :payment payment})) -``` - -Key properties: - -Workflow code looks synchronous - -wf/await is deterministic suspension - -No direct I/O allowed in workflow bodies - -Defining Activities - -```clojure -(ns example.activities - (:require [detflow.activity :as act])) - -(act/defactivity fetch-order [order-id] - ;; arbitrary IO allowed - (db/get-order order-id)) - -(act/defactivity charge-card [card] - (payments/charge card)) - -(act/defactivity ship-order [order] - (shipping/send order)) -``` - -Activities: - -Run outside deterministic runner - -Can be retried, timed out, or mocked - -Starting a Workflow - -```clojure -(require '[detflow.engine :as engine]) - -(def engine - (engine/create - {:persistence (engine/in-memory-store)})) - -(engine/start-workflow - engine - {:workflow example.workflows/order-workflow - :id "order-123" - :args ["order-123"]}) -``` - -Querying Workflow State - -```clojure -(engine/query engine "order-123" :status) -``` - -Sending Signals - -```clojure -(engine/signal engine "order-123" :cancel) -``` - -3. Workflow Semantics (Determinism Model) - Forbidden inside workflows - -System time - -Randomness - -Threads, futures, core.async go blocks - -I/O - -Atoms, refs, agents (unless mediated by workflow runtime) - -Allowed - -Pure computation - -Deterministic async primitives - -wf/await, wf/all, wf/race - -wf/sleep (virtual time) - -Workflow-local state (managed by runtime) - -4. Activities - Scheduling an Activity - -```clojure -(wf/activity fetch-order order-id) -``` - -Returns a deterministic promise-like handle. -Options: - -```clojure -(wf/activity - {:retry {:max-attempts 3} - :timeout 5000} - fetch-order - order-id) -``` - -Execution model: - -Workflow schedules activity → event recorded - -Runner dispatches activity to executor - -Result recorded as event - -Replay reads event instead of re-running activity - -5. Async & Concurrency Model - Await - -```clojure -(wf/await promise) -``` - -Parallel Execution - -```clojure -(let [[a b c] - (wf/await - (wf/all - (wf/activity a) - (wf/activity b) - (wf/activity c)))] - ...) -``` - -Race - -```clojure -(wf/await - (wf/race - (wf/activity slow) - (wf/sleep 1000))) -``` - -Async Workflow Functions - -```clojure -(wf/defworkflow async-example [] - (let [x (wf/await (wf/async (+ 1 2)))] - x)) -``` - -wf/async: - -Forks a deterministic task - -Not a thread - -Scheduled via workflow interpreter - -6. Signals, Queries, Timers - Signals - -```clojure -(wf/await-signal :cancel) -``` - -or - -```clojure -(wf/on-signal :cancel - (fn [_] (throw (ex-info "Cancelled" {})))) -``` - -Signals: - -Appended to event log - -Delivered deterministically during replay - -Queries - -```clojure -(wf/query-handler :status - (fn [state] (:status state))) -``` - -Queries: - -Read-only - -Do not mutate workflow state - -Not recorded in history - -Timers / Sleep - -```clojure -(wf/sleep 1000) -``` - -Logical time - -Skips instantly during replay/testing - -7. Implementation Architecture - High-Level Components - -``` -powershell┌─────────────────────────┐ -│ Workflow Engine │ -│ │ -│ ┌─────────────────────┐ │ -│ │ Deterministic Runner │ │ -│ └─────────────────────┘ │ -│ │ │ -│ ┌─────────────────────┐ │ -│ │ Event History Store │ │ -│ └─────────────────────┘ │ -│ │ │ -│ ┌─────────────────────┐ │ -│ │ Activity Executor │ │ -│ └─────────────────────┘ │ -└─────────────────────────┘ -``` - -8. Deterministic Runner Internals - Core Idea - Workflow execution is an interpreter over events - Event Types - -```clojure -clojure{:type :workflow-start - :args [...]} - -{:type :activity-scheduled - :id 42} - -{:type :activity-completed - :id 42 - :result ...} - -{:type :timer-fired - :id 17} - -{:type :signal-received - :name :cancel - :payload ...} -``` - -Execution Loop (Simplified) - -```clojure -(defn run-workflow [history workflow-fn] - (binding [*runtime* (make-runtime history)] - (try - (workflow-fn) - (catch Suspend e - :suspended)))) -``` - -Where: - -Suspend is thrown by wf/await - -Runtime records or consumes events - -wf/await Implementation (Conceptual) - -```clojure -(defn await [handle] - (if (completed? handle) - (result handle) - (throw (->Suspend handle)))) -``` - -On replay: - -Handle completion is read from history - -No actual blocking occurs - -Activity Scheduling - -```clojure -(defn activity [fn & args] - (let [event (next-event!)] - (if (:replay? *runtime*) - (lookup-result event) - (schedule-activity fn args)))) -``` - -Deterministic State -Workflow-local state stored in runtime: - -```clojure -clojure{:pc 42 - :futures {...} - :signals [...] - :timers {...}} -``` - -All mutation is mediated and recorded. - -9. Comparison to Temporal - Temporal ConceptThis LibraryTemporal ServerEmbedded runtimeWorkflow HistoryPluggable event storeWorkflow TaskDeterministic interpreterActivity WorkerLocal executorPromisesDeterministic handlesReplayAlways-on - -Summary -This design gives you: - -Temporal-style workflows - -Fully deterministic execution - -Embedded, testable, REPL-friendly - -Native async without threads - -Clean separation between workflow logic and side effects - -If you want, I can: - -Sketch a minimal runnable prototype - -Show a step-by-step replay example - -Compare core.async vs interpreter-based async - -Design the event store / persistence layer - -Just tell me which direction you want next. - ---- - -### **You** - -How do you use the suspended exception to wait? - ---- - -### **ChatGPT** - -Great question — this is the core trick that makes a deterministic workflow runner work without blocking threads. -Below I’ll explain how a “suspended exception” is used to wait, step by step, and why this works. - -The Core Idea (TL;DR) - -Waiting is implemented by throwing, not blocking. - -When a workflow reaches an operation that cannot complete yet (activity result, timer, async task), it: - -Records what it’s waiting for - -Throws a special Suspend exception - -The runner catches it, persists state, and returns control - -When new events arrive, the runner replays the workflow from the beginning - -On replay, the “awaited” value is now available, so execution continues - -No threads are parked. No blocking occurs. - -Why an Exception? -Because Clojure: - -Has no continuations - -Does not allow stack capture / resumption - -But does have cheap, controlled exceptions - -The exception is a control-flow signal, not an error. - -The Suspend Exception - -```clojure -(defrecord Suspend [wait-id]) -``` - -This identifies what the workflow is waiting on (activity, timer, signal, async task). - -wf/await: The Key Primitive - -```clojure -(defn await [handle] - (if (completed? handle) - (result handle) - (throw (->Suspend (:id handle))))) -``` - -Meaning: - -If the value is already known → return it - -Otherwise → abort execution intentionally - -Runner Execution Loop -The workflow runner expects suspension: - -```clojure -(defn run-workflow [runtime workflow-fn] - (try - (workflow-fn) - (catch Suspend s - (record-wait runtime (:wait-id s)) - :suspended))) -``` - -At this point: - -The workflow did not fail - -It simply reached a point where it needs external input - -What Happens After Suspension? -1. Workflow is paused - The runner: - -Persists the current history - -Remembers what the workflow is waiting on - -Returns control to the engine - -No stack is kept. No thread is blocked. - -2. External event arrives - Examples: - -Activity completes - -Timer fires - -Signal is sent - -An event is appended: - -```clojure -clojure{:type :activity-completed - :id 42 - :result {:ok true}} -``` - -3. Workflow is replayed from the beginning - This is the most important part. - -```clojure -(run-workflow runtime workflow-fn) -``` - -But now: - -Runtime is in replay mode - -The activity result is already in the event history - -So when the workflow reaches: - -```clojure -(wf/await activity-handle) -``` - -This time: - -```clojure -(completed? handle) ; => true -(result handle) ; => returns recorded value -``` - -Execution continues past the await. - -Why Replay Works -Because workflows are: -✔ Deterministic -✔ Side-effect-free -✔ Driven entirely by recorded events -So re-running from the top always reconstructs the same logical state. - -Example Timeline -Workflow Code - -```clojure -(let [x (wf/await (wf/activity fetch-order 123))] - (wf/await (wf/activity ship-order x))) -``` - -First Run - -fetch-order scheduled - -wf/await → throws Suspend - -Runner exits - -Activity Completes - -```clojure -clojure{:type :activity-completed - :id 1 - :result {:item "book"}} -``` - -Replay Run - -fetch-order result is replayed - -x is now bound - -ship-order scheduled - -wf/await → throws Suspend again - -Repeat Until Done -Each suspension: - -Is intentional - -Is deterministic - -Advances workflow state - -Why This Is Better Than Blocking -BlockingSuspend + ReplayUses threadsUses noneHard to serializeFully replayableCannot survive crashesCrash-safeTime-based waitsLogical time - -Important Constraints -Because of this model: -❌ You cannot catch Suspend inside workflow code -❌ You must not swallow it -❌ Workflow code must be referentially transparent -The runner owns suspension. - -Mental Model -Think of workflows as: - -Pure functions evaluated incrementally by throwing themselves out of execution until more inputs arrive. - -If You Want Next -I can: - -Show real Clojure code for a minimal runner - -Explain how async tasks work using the same mechanism - -Show how to prevent users from catching Suspend - -Compare this to core.async parking - -Just tell me. - ---- - -### **ChatGPT** - -Async tasks are the same mechanism as activities and timers, just entirely internal to the workflow. The key insight is: - -“Async” does NOT mean threads. -It means multiple logical continuations managed by the deterministic runner. - -Below I’ll explain how async tasks work, starting from the mental model, then the API, then the internals. - -Mental Model -Think of a workflow as: - -A single-threaded, deterministic interpreter that can have multiple logical tasks. - -Each async task is: - -A forked execution branch - -Identified by a task-id - -Scheduled and resumed only via history events - -Never executed concurrently on the CPU - -So concurrency is logical, not physical. - -Public API -Creating an Async Task - -```clojure -(wf/async - (fn [] - (wf/await (wf/activity a)) - (wf/await (wf/activity b)) - :done)) -``` - -Returns a task handle. - -Awaiting a Task - -```clojure -(let [task (wf/async some-work)] - (wf/await task)) -``` - -Parallel Tasks - -```clojure -(let [a (wf/async #(wf/await (wf/activity f1))) - b (wf/async #(wf/await (wf/activity f2)))] - [(wf/await a) (wf/await b)]) -``` - -Unified Abstraction: Awaitable -Internally, everything awaited is an awaitable: - -```clojure -clojure{:id 42 - :type :activity | :timer | :async-task - :state :pending | :completed - :result ...} -``` - -Async tasks fit into this model exactly. - -How wf/async Works -Step 1: Schedule the Task - -```clojure -(defn async [f] - (let [id (next-id!)] - (record-event! - {:type :async-started - :id id}) - (register-task! - {:id id - :fn f - :pc 0}) - (->AsyncHandle id))) -``` - -This does NOT execute f yet. - -Step 2: Runner Executes Tasks Incrementally -The runner maintains a task queue: - -```clojure -clojure{:tasks - {0 {:fn main-workflow} - 1 {:fn async-task-A} - 2 {:fn async-task-B}}} -``` - -Execution loop: - -```clojure -(loop [] - (when-let [task (next-runnable-task)] - (run-task task) - (recur))) -``` - -Only one task runs at a time. - -Step 3: Async Task Suspension -Async tasks suspend exactly like workflows. -Example async task: - -```clojure -(fn [] - (wf/await (wf/activity x)) - (wf/await (wf/activity y))) -``` - -If x isn’t ready: - -wf/await throws Suspend - -Runner catches it - -Task state is persisted - -Control returns to scheduler - -Step 4: Task Completion -When the async task reaches the end: - -```clojure -(record-event! - {:type :async-completed - :id task-id - :result result}) -``` - -Now: - -Awaiters can proceed - -Replay sees the task as completed - -Awaiting an Async Task - -```clojure -(defn await [handle] - (if (completed? handle) - (:result handle) - (throw (->Suspend (:id handle))))) -``` - -Same as activities. -No special logic. - -Replay Behavior -On replay: - -Async-start event is read - -Task function is re-run from the beginning - -Each await: - -Consumes history - -Either returns value or suspends - -When async-completed event is reached: - -Task returns immediately - -Replay reconstructs the exact logical state. - -Determinism Guarantees -To remain deterministic: -✔ Async task creation order must be deterministic -✔ Task scheduling order must be deterministic -✔ No shared mutable state between tasks -✔ All communication via awaitables/events -The runner enforces this. - -Why Not Threads / Futures? -ThreadsDeterministic Async TasksNondeterministic schedulingFully deterministicHard to replayAlways replayableUses blockingNo blockingNot crash-safeCrash-safe - -Relation to Temporal -TemporalThis LibraryWorkflow threadAsync taskPromiseAwaitableCoroutineDeterministic taskEvent historyEmbedded log - -Key Insight - -Async tasks are just nested workflows sharing the same event history. - -They use: - -The same suspension mechanism - -The same replay logic - -The same await semantics - -If You Want More -I can: - -Walk through a full execution trace - -Show a minimal runnable async scheduler - -Explain fairness and starvation - -Show how to implement wf/all and wf/race using async tasks - -Just say the word. - ---- - -### **You** - -What alternative is there to using exceptions? Can I use semaphores, promises or core.async? - ---- - -### **ChatGPT** - -Short answer: yes, there are alternatives—but none give you the same combination of determinism, replayability, and simplicity as the “suspend exception” model. -Long answer below, with concrete trade-offs. - -What the exception is really doing -Before comparing alternatives, it helps to name the role clearly. -The Suspend exception is acting as a delimited continuation escape hatch: - -It aborts execution without committing side effects - -It returns control to the runner immediately - -It does not park a thread - -It allows the workflow to be re-executed from the beginning - -So any alternative must satisfy all four. - -Option 1: Semaphores / Locks ❌ -Why it seems tempting -You could imagine: - -```clojure -(.acquire semaphore) -``` - -and then releasing it when an activity completes. -Why it fails -ProblemExplanationBlocks threadsEven “lightweight” locks block a real threadNot replayableYou can’t serialize “where a thread was blocked”Crash-unsafeA crash loses waiting stateTime leaksReal wall-clock time passes -Verdict -❌ Not viable for deterministic workflows. - -Option 2: Promises / Futures ❌ (by themselves) -The naive idea - -```clojure -(let [p (promise)] - (deliver p 42) - @p) -``` - -Why it fails -ProblemExplanationDeref blocksSame issue as semaphoresFutures spawn threadsNon-deterministic schedulingNot replayableYou cannot rehydrate a promise’s wait pointHidden side effectsThread creation is observable -You can use promises inside the engine, but not inside workflow code. -Verdict -❌ Unsafe inside workflows - -Option 3: core.async ❌ (for workflow code) -This is the most common question. -Why it looks attractive - -Non-blocking - -Parking instead of blocking - -Structured concurrency - -Why it still doesn’t work -1. go blocks are not replayable - -```clojure -(go - ( - -Deterministic scheduler - -```java -javaPromise a = Async.function(this::f1); -Promise b = Async.function(this::f2); -Promise.allOf(a, b).get(); -``` - -Important: - -These are not Java threads - -They’re SDK-managed coroutines - -Embedded Runner - -```clojure -(let [a (wf/async #(wf/await (wf/activity f1))) - b (wf/async #(wf/await (wf/activity f2)))] - [(wf/await a) (wf/await b)]) -``` - -Mechanically: - -Both spawn logical tasks - -Both suspend independently - -Both resume via replay - -6. Determinism Enforcement - Temporal - Temporal SDK: - -Intercepts time - -Intercepts randomness - -Replaces blocking APIs - -Throws NonDeterministicException on mismatch - -Requires: - -Special runtime - -SDK constraints - -Static analysis rules - -Embedded Runner -Determinism is enforced by: - -No I/O allowed in workflows - -All waits go through wf/await - -All side effects become events - -Much simpler, but: - -Less “magic” - -More discipline required - -7. Timers & Time - TemporalEmbeddedTimer APIWorkflow.sleepwf/sleepClockVirtualVirtualReplayServer-drivenLocal history - Identical semantics. - -8. Signals & Queries - FeatureTemporalEmbeddedSignalsAsynchronous eventsEventsQueriesRead-onlyRead-onlyReplay impactSignals replayedSignals replayedMutabilityRestrictedRestricted - -9. Failure & Retry - Temporal - -Activity retries handled by server - -Workflow retries are automatic - -Failures recorded as events - -Embedded - -Activity retries implemented in executor - -Workflow restarts are explicit - -Failures appended to history - -Semantics are the same; implementation surface is smaller. - -10. Why Temporal Doesn’t Use Exceptions (But Effectively Does) - Temporal does use exceptions internally—just not visible to users. - -Workflow thread parking - -Deterministic scheduler yield - -SDK control flow - -These are: - -Runtime exceptions - -Bytecode rewriting - -Fiber state machines - -Your embedded runner: - -Makes this explicit - -Avoids heavy SDK machinery - -11. Trade-offs Summary - Embedded Runner Advantages - ✔ Much smaller codebase - ✔ Easier to reason about - ✔ No bytecode tricks - ✔ REPL-friendly - ✔ Easier testing - Temporal Advantages - ✔ Polished ecosystem - ✔ Multi-language - ✔ Durable server - ✔ Production-hardened - ✔ Transparent blocking API \ No newline at end of file diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj new file mode 100644 index 0000000..3e1474b --- /dev/null +++ b/src/intemporal3/core.clj @@ -0,0 +1,484 @@ +(ns intemporal3.core) + +;; ============================================================================ +;; Protocols +;; ============================================================================ + +(defprotocol IStore + "Protocol for workflow persistence" + (load-history [store workflow-id] "Load history for a workflow") + (save-event [store workflow-id event] "Append an event to workflow history") + (get-pending-signals [store workflow-id] "Get pending signals for workflow") + (add-signal [store workflow-id signal-name payload] "Add a signal to workflow") + (consume-signal [store workflow-id signal-name] "Consume and remove a signal")) + +(defprotocol IActivityExecutor + "Protocol for executing activities" + (execute-activity [executor activity-name args] "Execute an activity with given args")) + +;; ============================================================================ +;; Suspension Exceptions +;; ============================================================================ + +(defn- make-suspension [type data] + (ex-info "Workflow suspended" {:type type :data data})) + +(defn- suspension? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (= "Workflow suspended" (.getMessage e)))) + +(defn- suspension-type [e] + (-> e ex-data :type)) + +(defn- suspension-data [e] + (-> e ex-data :data)) + +;; ============================================================================ +;; Dynamic Context +;; ============================================================================ + +(def ^:dynamic *workflow-context* nil) + +(defn- current-context [] + (or *workflow-context* + (throw (ex-info "Not in workflow context" {})))) + +(defn- next-seq! [] + (let [ctx (current-context)] + (let [seq @(:seq-counter ctx)] + (swap! (:seq-counter ctx) inc) + seq))) + +(defn- find-event [history event-type seq-num] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first)) + +(defn- add-pending-event! [event] + (let [ctx (current-context)] + (swap! (:pending-events ctx) conj event))) + +;; ============================================================================ +;; In-Memory Store Implementation +;; ============================================================================ + +(defrecord InMemoryStore [state] + IStore + (load-history [_ workflow-id] + (get-in @state [:workflows workflow-id :history] [])) + + (save-event [_ workflow-id event] + (swap! state update-in [:workflows workflow-id :history] + (fnil conj []) event) + event) + + (get-pending-signals [_ workflow-id] + (get-in @state [:workflows workflow-id :signals] {})) + + (add-signal [_ workflow-id signal-name payload] + (swap! state update-in [:workflows workflow-id :signals signal-name] + (fnil conj []) payload)) + + (consume-signal [_ workflow-id signal-name] + (let [signals (get-in @state [:workflows workflow-id :signals signal-name])] + (when (seq signals) + (swap! state update-in [:workflows workflow-id :signals signal-name] + (comp vec rest)) + (first signals))))) + +;; ============================================================================ +;; Activity Registry +;; ============================================================================ + +(defonce activity-registry (atom {})) + +(defn register-activity! [f] + (let [name (str (symbol f))] + (swap! activity-registry assoc name f) + name)) + +(defn- get-activity-name [f] + (let [name (str (symbol f))] + (when-not (contains? @activity-registry name) + (register-activity! f)) + name)) + +;; ============================================================================ +;; Core Workflow Operations +;; ============================================================================ + +(defn stub + "Create a stubbed version of an activity function for use in workflows" + [activity-fn] + (let [activity-name (get-activity-name activity-fn)] + (fn [& args] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :activity-completed seq-num)] + (if existing + ;; Replay: return cached result + (:result existing) + ;; Execute: need to run the activity + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num + :activity-name activity-name + :args (vec args) + :timestamp (System/currentTimeMillis)}] + (add-pending-event! scheduled-event) + (throw (make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args)})))))))) + +;; ============================================================================ +;; Async Support +;; ============================================================================ + +(defrecord AsyncHandle [seq-num]) + +(defn async + "Schedule an async operation (thunk) for later execution" + [thunk] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :async-started seq-num)] + (if existing + ;; Already started, return handle + (->AsyncHandle seq-num) + ;; Need to start + (let [event {:event-type :async-started + :seq seq-num + :timestamp (System/currentTimeMillis)}] + (add-pending-event! event) + ;; Try to execute the thunk to see what activity it wants + (try + (thunk) + (->AsyncHandle seq-num) + (catch Exception e + (if (suspension? e) + ;; The thunk suspended, record its suspension data + (let [suspension-info (suspension-data e)] + (add-pending-event! {:event-type :async-pending + :seq seq-num + :suspension suspension-info + :timestamp (System/currentTimeMillis)}) + (throw (make-suspension :async-pending {:handle-seq seq-num + :inner suspension-info}))) + (throw e)))))))) + +(defn join + "Wait for an async handle to complete" + [handle] + (let [ctx (current-context) + handle-seq (:seq-num handle) + history @(:history ctx) + completed (find-event history :async-completed handle-seq)] + (if completed + (:result completed) + (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) + +;; ============================================================================ +;; Signals +;; ============================================================================ + +(defn wait-for-signal + "Wait for a signal with the given name" + [signal-name] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :signal-received seq-num)] + (if existing + (:payload existing) + (throw (make-suspension :wait-signal {:seq seq-num + :signal-name signal-name}))))) + +;; ============================================================================ +;; Timers +;; ============================================================================ + +(defn sleep + "Sleep for specified milliseconds" + [ms] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :timer-fired seq-num)] + (if existing + nil + (let [fire-at (+ (System/currentTimeMillis) ms)] + (add-pending-event! {:event-type :timer-scheduled + :seq seq-num + :fire-at fire-at + :timestamp (System/currentTimeMillis)}) + (throw (make-suspension :timer {:seq seq-num + :fire-at fire-at})))))) + +;; ============================================================================ +;; Workflow Execution Engine +;; ============================================================================ + +(defn- execute-workflow-fn [workflow-fn args] + (try + {:status :completed + :result (apply workflow-fn args)} + (catch Exception e + (if (suspension? e) + {:status :suspended + :suspension-type (suspension-type e) + :suspension-data (suspension-data e)} + {:status :failed + :error e})))) + +(defn- process-pending-activity [store executor workflow-id suspension-data pending-events] + (let [{:keys [seq activity-name args]} suspension-data + result (execute-activity executor activity-name args) + completed-event {:event-type :activity-completed + :seq seq + :activity-name activity-name + :result result + :timestamp (System/currentTimeMillis)}] + ;; Save all pending events first + (doseq [evt pending-events] + (save-event store workflow-id evt)) + ;; Then save the completion + (save-event store workflow-id completed-event) + :continue)) + +(defn- process-timer [store workflow-id suspension-data pending-events] + (let [{:keys [seq fire-at]} suspension-data + now (System/currentTimeMillis)] + ;; Save pending events + (doseq [evt pending-events] + (save-event store workflow-id evt)) + (if (>= now fire-at) + (do + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + :continue) + ;; Timer not ready - in real impl would schedule wake-up + (do + (Thread/sleep (- fire-at now)) + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn- process-signal [store workflow-id suspension-data pending-events] + (let [{:keys [seq signal-name]} suspension-data] + ;; Save pending events + (doseq [evt pending-events] + (save-event store workflow-id evt)) + (if-let [payload (consume-signal store workflow-id signal-name)] + (do + (save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :payload payload + :timestamp (System/currentTimeMillis)}) + :continue) + :wait-signal))) + +(defn- process-async-pending [store executor workflow-id suspension-data pending-events] + (let [{:keys [handle-seq inner]} suspension-data] + ;; Save pending events + (doseq [evt pending-events] + (save-event store workflow-id evt)) + ;; Process the inner suspension (which is an activity) + (let [{:keys [seq activity-name args]} inner + result (execute-activity executor activity-name args)] + (save-event store workflow-id {:event-type :activity-completed + :seq seq + :result result + :timestamp (System/currentTimeMillis)}) + (save-event store workflow-id {:event-type :async-completed + :seq handle-seq + :result result + :timestamp (System/currentTimeMillis)}) + :continue))) + +(defn- process-join-pending [store workflow-id suspension-data pending-events] + (let [{:keys [handle-seq]} suspension-data + history (load-history store workflow-id) + completed (find-event history :async-completed handle-seq)] + (doseq [evt pending-events] + (save-event store workflow-id evt)) + (if completed + :continue + :wait-async))) + +(defn- run-workflow-loop [store executor workflow-id workflow-fn args max-iterations] + (loop [iteration 0] + (when (>= iteration max-iterations) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id}))) + + (let [history (load-history store workflow-id) + pending-events (atom []) + ctx {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events pending-events} + exec-result (binding [*workflow-context* ctx] + (execute-workflow-fn workflow-fn args))] + + (case (:status exec-result) + :completed + (do + (save-event store workflow-id {:event-type :workflow-completed + :result (:result exec-result) + :timestamp (System/currentTimeMillis)}) + {:status :completed + :result (:result exec-result)}) + + :suspended + (let [action (case (:suspension-type exec-result) + :activity (process-pending-activity store executor workflow-id + (:suspension-data exec-result) + @pending-events) + :timer (process-timer store workflow-id + (:suspension-data exec-result) + @pending-events) + :wait-signal (process-signal store workflow-id + (:suspension-data exec-result) + @pending-events) + :async-pending (process-async-pending store executor workflow-id + (:suspension-data exec-result) + @pending-events) + :join-pending (process-join-pending store workflow-id + (:suspension-data exec-result) + @pending-events))] + (case action + :continue (recur (inc iteration)) + :wait-signal {:status :waiting-signal + :workflow-id workflow-id} + :wait-async {:status :waiting-async + :workflow-id workflow-id})) + + :failed + (do + (save-event store workflow-id {:event-type :workflow-failed + :error (str (:error exec-result)) + :timestamp (System/currentTimeMillis)}) + {:status :failed + :error (:error exec-result)}))))) + +;; ============================================================================ +;; Public API +;; ============================================================================ + +(defn start-workflow + "Start a workflow execution" + ([store executor workflow-fn args] + (start-workflow store executor workflow-fn args (str (random-uuid)))) + ([store executor workflow-fn args workflow-id] + (start-workflow store executor workflow-fn args workflow-id 1000)) + ([store executor workflow-fn args workflow-id max-iterations] + (save-event store workflow-id {:event-type :workflow-started + :workflow-id workflow-id + :args (vec args) + :timestamp (System/currentTimeMillis)}) + (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + +(defn resume-workflow + "Resume a waiting workflow (e.g., after signal delivery)" + ([store executor workflow-id workflow-fn args] + (resume-workflow store executor workflow-id workflow-fn args 1000)) + ([store executor workflow-id workflow-fn args max-iterations] + (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + +(defn send-signal + "Send a signal to a workflow" + [store workflow-id signal-name payload] + (add-signal store workflow-id signal-name payload)) + +(defn get-workflow-history + "Get the history of a workflow" + [store workflow-id] + (load-history store workflow-id)) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println "slow activity running with" x) + (Thread/sleep 100) + (* x 2)) + +;; Define workflow +(defn my-flow [id] + (println "Workflow start with id:" id) + (let [act (stub #'activity-fn) + slow (stub #'slow-activity) + prom (async #(slow 2))] + (println "After async call") + {:status :shipped + :res (act 1) + :prom (join prom) + :id id})) + +;; Workflow with timer +(defn timed-flow [id] + (println "Starting timed flow") + (let [act (stub #'activity-fn)] + (println "Sleeping for 1 second...") + (sleep 1000) + (println "Woke up!") + {:result (act id)})) + +;; Workflow with signal +(defn signal-flow [id] + (println "Waiting for approval signal...") + (let [approval (wait-for-signal "approval") + act (stub #'activity-fn)] + (println "Got approval:" approval) + {:approved approval + :result (act id)})) + +;; Run examples +(let [store (->InMemoryStore (atom {})) + executor (reify IActivityExecutor + (execute-activity [_ actname args] + (println "Executor running:" actname "with" args) + (let [act (get @activity-registry actname)] + (apply act args))))] + + ;; Basic workflow + (println "\n=== Basic Workflow ===") + (println "Result:" (start-workflow store executor my-flow [123] "my-flow")) + + ;; Timed workflow + (println "\n=== Timed Workflow ===") + (println "Result:" (start-workflow store executor timed-flow [456] "timed-flow")) + + ;; Signal workflow + (println "\n=== Signal Workflow ===") + (let [wf-id "signal-flow" + result1 (start-workflow store executor signal-flow [789] wf-id)] + (println "Initial result:" result1) + (when (= :waiting-signal (:status result1)) + (println "Sending signal...") + (send-signal store wf-id "approval" {:approved-by "admin"}) + (println "Resuming...") + (println "Final result:" (resume-workflow store executor wf-id signal-flow [789]))))) + +;; Check history +#_ +(let [store (->InMemoryStore (atom {}))] + (start-workflow store + (reify IActivityExecutor + (execute-activity [_ actname args] + (let [act (get @activity-registry actname)] + (apply act args)))) + my-flow [123] "test-flow") + (println "\nHistory:") + (doseq [event (get-workflow-history store "test-flow")] + (println " " (:event-type event) "-" (dissoc event :event-type :timestamp)))) diff --git a/src/intemporal3/core2.clj b/src/intemporal3/core2.clj new file mode 100644 index 0000000..44af0bb --- /dev/null +++ b/src/intemporal3/core2.clj @@ -0,0 +1,558 @@ +(ns intemporal3.core2 + (:require [clojure.edn :as edn]) + (:import [java.util UUID] + [java.util.concurrent Executors Future])) + +;; ============================================================================ +;; Protocols +;; ============================================================================ + +(defprotocol IStore + "Protocol for workflow persistence" + (load-history [store workflow-id] "Load history for a workflow") + (save-event [store workflow-id event] "Append an event to workflow history") + (save-events [store workflow-id events] "Append multiple events atomically") + (get-pending-signals [store workflow-id] "Get pending signals for workflow") + (add-signal [store workflow-id signal-name payload] "Add a signal to workflow") + (consume-signal [store workflow-id signal-name] "Consume and remove a signal")) + +(defprotocol IActivityExecutor + "Protocol for executing activities" + (execute-activity [executor activity-name args] "Execute an activity with given args") + (execute-activities-parallel [executor activities] "Execute multiple activities in parallel, returns seq of results in same order")) + +;; ============================================================================ +;; Suspension Exceptions +;; ============================================================================ + +(defn- make-suspension [type data] + (ex-info "Workflow suspended" {:type type :data data})) + +(defn- suspension? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (= "Workflow suspended" (.getMessage e)))) + +(defn- suspension-type [e] + (-> e ex-data :type)) + +(defn- suspension-data [e] + (-> e ex-data :data)) + +;; ============================================================================ +;; Dynamic Context +;; ============================================================================ + +(def ^:dynamic *workflow-context* nil) + +(defn- current-context [] + (or *workflow-context* + (throw (ex-info "Not in workflow context" {})))) + +(defn- next-seq! [] + (let [ctx (current-context)] + (let [seq @(:seq-counter ctx)] + (swap! (:seq-counter ctx) inc) + seq))) + +(defn- find-event [history event-type seq-num] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first)) + +(defn- find-events-by-type [history event-type] + (->> history + (filter #(= (:event-type %) event-type)))) + +(defn- add-pending-event! [event] + (let [ctx (current-context)] + (swap! (:pending-events ctx) conj event))) + +(defn- add-pending-async! [async-info] + (let [ctx (current-context)] + (swap! (:pending-asyncs ctx) conj async-info))) + +;; ============================================================================ +;; In-Memory Store Implementation +;; ============================================================================ + +(defrecord InMemoryStore [state] + IStore + (load-history [_ workflow-id] + (get-in @state [:workflows workflow-id :history] [])) + + (save-event [_ workflow-id event] + (swap! state update-in [:workflows workflow-id :history] + (fnil conj []) event) + event) + + (save-events [_ workflow-id events] + (swap! state update-in [:workflows workflow-id :history] + (fnil into []) events) + events) + + (get-pending-signals [_ workflow-id] + (get-in @state [:workflows workflow-id :signals] {})) + + (add-signal [_ workflow-id signal-name payload] + (swap! state update-in [:workflows workflow-id :signals signal-name] + (fnil conj []) payload)) + + (consume-signal [_ workflow-id signal-name] + (let [signals (get-in @state [:workflows workflow-id :signals signal-name])] + (when (seq signals) + (swap! state update-in [:workflows workflow-id :signals signal-name] + (comp vec rest)) + (first signals))))) + +;; ============================================================================ +;; Default Parallel Executor +;; ============================================================================ + +(defn make-parallel-executor + "Create an executor that runs activities in parallel using a thread pool" + [activity-registry-atom & {:keys [threads] :or {threads 4}}] + (let [pool (Executors/newFixedThreadPool threads)] + (reify IActivityExecutor + (execute-activity [_ activity-name args] + (let [act (get @activity-registry-atom activity-name)] + (apply act args))) + + (execute-activities-parallel [this activities] + (if (empty? activities) + [] + (let [futures (mapv (fn [{:keys [activity-name args]}] + (.submit pool ^Callable + (fn [] (execute-activity this activity-name args)))) + activities)] + (mapv (fn [^Future f] (.get f)) futures))))))) + +;; ============================================================================ +;; Activity Registry +;; ============================================================================ + +(defonce activity-registry (atom {})) + +(defn register-activity! [f] + (let [name (if (var? f) + (str (symbol f)) + (str (symbol f)))] + (swap! activity-registry assoc name (if (var? f) @f f)) + name)) + +(defn- get-activity-name [f] + (let [name (if (var? f) + (str (symbol f)) + (str (symbol f)))] + (when-not (contains? @activity-registry name) + (register-activity! f)) + name)) + +;; ============================================================================ +;; Core Workflow Operations +;; ============================================================================ + +(defn stub + "Create a stubbed version of an activity function for use in workflows" + [activity-fn] + (let [activity-name (get-activity-name activity-fn)] + (fn [& args] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :activity-completed seq-num)] + (if existing + ;; Replay: return cached result + (:result existing) + ;; Execute: need to run the activity + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num + :activity-name activity-name + :args (vec args) + :timestamp (System/currentTimeMillis)}] + (add-pending-event! scheduled-event) + (throw (make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args)})))))))) + +;; ============================================================================ +;; Async Support +;; ============================================================================ + +(defrecord AsyncHandle [seq-num]) + +(defn async + "Schedule an async operation (thunk) for later execution" + [thunk] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing-completed (find-event history :async-completed seq-num) + existing-started (find-event history :async-started seq-num)] + (cond + ;; Already completed - just return handle + existing-completed + (->AsyncHandle seq-num) + + ;; Already started but not completed - return handle (will block on join) + existing-started + (->AsyncHandle seq-num) + + ;; Need to start - record and try to capture what activity it needs + :else + (let [start-event {:event-type :async-started + :seq seq-num + :timestamp (System/currentTimeMillis)}] + (add-pending-event! start-event) + ;; Try to execute the thunk to see what activity it wants + (try + (thunk) + ;; If thunk completes synchronously (all replayed), just return handle + (->AsyncHandle seq-num) + (catch Exception e + (if (suspension? e) + ;; The thunk suspended on an activity - capture it for parallel execution + (let [suspension-info (suspension-data e)] + (add-pending-async! {:handle-seq seq-num + :activity-name (:activity-name suspension-info) + :activity-seq (:seq suspension-info) + :args (:args suspension-info)}) + ;; Return handle - we'll batch execute later + (->AsyncHandle seq-num)) + (throw e)))))))) + +(defn join + "Wait for an async handle to complete" + [handle] + (let [ctx (current-context) + handle-seq (:seq-num handle) + history @(:history ctx) + completed (find-event history :async-completed handle-seq)] + (if completed + (:result completed) + ;; Not yet completed - suspend + (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) + +;; ============================================================================ +;; Signals +;; ============================================================================ + +(defn wait-for-signal + "Wait for a signal with the given name" + [signal-name] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :signal-received seq-num)] + (if existing + (:payload existing) + (throw (make-suspension :wait-signal {:seq seq-num + :signal-name signal-name}))))) + +;; ============================================================================ +;; Timers +;; ============================================================================ + +(defn sleep + "Sleep for specified milliseconds" + [ms] + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :timer-fired seq-num)] + (if existing + nil + (let [fire-at (+ (System/currentTimeMillis) ms)] + (add-pending-event! {:event-type :timer-scheduled + :seq seq-num + :fire-at fire-at + :timestamp (System/currentTimeMillis)}) + (throw (make-suspension :timer {:seq seq-num + :fire-at fire-at})))))) + +;; ============================================================================ +;; Workflow Execution Engine +;; ============================================================================ + +(defn- execute-workflow-fn [workflow-fn args] + (try + {:status :completed + :result (apply workflow-fn args) + :pending-asyncs @(:pending-asyncs (current-context))} + (catch Exception e + (if (suspension? e) + {:status :suspended + :suspension-type (suspension-type e) + :suspension-data (suspension-data e) + :pending-asyncs @(:pending-asyncs (current-context))} + {:status :failed + :error e})))) + +(defn- process-pending-activity [store executor workflow-id suspension-data pending-events] + (let [{:keys [seq activity-name args]} suspension-data + result (execute-activity executor activity-name args) + completed-event {:event-type :activity-completed + :seq seq + :activity-name activity-name + :result result + :timestamp (System/currentTimeMillis)}] + ;; Save all pending events first + (save-events store workflow-id pending-events) + ;; Then save the completion + (save-event store workflow-id completed-event) + :continue)) + +(defn- process-pending-asyncs-parallel + "Process all pending async operations in parallel" + [store executor workflow-id pending-asyncs pending-events] + (when (seq pending-asyncs) + ;; Save all pending events first + (save-events store workflow-id pending-events) + + ;; Execute all activities in parallel + (let [activities (mapv (fn [{:keys [activity-name args]}] + {:activity-name activity-name + :args args}) + pending-asyncs) + results (execute-activities-parallel executor activities) + now (System/currentTimeMillis) + + ;; Create completion events for both activities and async handles + completion-events (mapcat (fn [async-info result] + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result result + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :result result + :timestamp now}]) + pending-asyncs results)] + (save-events store workflow-id completion-events))) + :continue) + +(defn- process-timer [store workflow-id suspension-data pending-events] + (let [{:keys [seq fire-at]} suspension-data + now (System/currentTimeMillis)] + ;; Save pending events + (save-events store workflow-id pending-events) + (if (>= now fire-at) + (do + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + :continue) + ;; Timer not ready - in real impl would schedule wake-up + (do + (Thread/sleep (- fire-at now)) + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn- process-signal [store workflow-id suspension-data pending-events] + (let [{:keys [seq signal-name]} suspension-data] + ;; Save pending events + (save-events store workflow-id pending-events) + (if-let [payload (consume-signal store workflow-id signal-name)] + (do + (save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :payload payload + :timestamp (System/currentTimeMillis)}) + :continue) + :wait-signal))) + +(defn- process-join-pending [store executor workflow-id suspension-data pending-events pending-asyncs] + (let [{:keys [handle-seq]} suspension-data + history (load-history store workflow-id) + completed (find-event history :async-completed handle-seq)] + ;; First, process any pending asyncs that haven't been executed yet + (when (seq pending-asyncs) + (process-pending-asyncs-parallel store executor workflow-id pending-asyncs pending-events)) + + (when (and (empty? pending-asyncs) (seq pending-events)) + (save-events store workflow-id pending-events)) + + ;; Check again after processing + (let [history (load-history store workflow-id) + completed (find-event history :async-completed handle-seq)] + (if completed + :continue + :wait-async)))) + +(defn- run-workflow-loop [store executor workflow-id workflow-fn args max-iterations] + (loop [iteration 0] + (when (>= iteration max-iterations) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id}))) + + (let [history (load-history store workflow-id) + pending-events (atom []) + pending-asyncs (atom []) + ctx {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events pending-events + :pending-asyncs pending-asyncs} + exec-result (binding [*workflow-context* ctx] + (execute-workflow-fn workflow-fn args))] + + (case (:status exec-result) + :completed + (do + ;; Process any remaining pending asyncs before completing + (when (seq (:pending-asyncs exec-result)) + (process-pending-asyncs-parallel store executor workflow-id + (:pending-asyncs exec-result) + @pending-events)) + (save-event store workflow-id {:event-type :workflow-completed + :result (:result exec-result) + :timestamp (System/currentTimeMillis)}) + {:status :completed + :result (:result exec-result)}) + + :suspended + (let [pending-asyncs-list (:pending-asyncs exec-result) + action (case (:suspension-type exec-result) + :activity + ;; Check if this is part of async batch or standalone + (if (seq pending-asyncs-list) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list @pending-events) + :continue) + (process-pending-activity store executor workflow-id + (:suspension-data exec-result) + @pending-events)) + + :timer + (process-timer store workflow-id + (:suspension-data exec-result) + @pending-events) + + :wait-signal + (process-signal store workflow-id + (:suspension-data exec-result) + @pending-events) + + :join-pending + (process-join-pending store executor workflow-id + (:suspension-data exec-result) + @pending-events + pending-asyncs-list))] + (case action + :continue (recur (inc iteration)) + :wait-signal {:status :waiting-signal + :workflow-id workflow-id} + :wait-async {:status :waiting-async + :workflow-id workflow-id})) + + :failed + (do + (save-event store workflow-id {:event-type :workflow-failed + :error (str (:error exec-result)) + :timestamp (System/currentTimeMillis)}) + {:status :failed + :error (:error exec-result)}))))) + +;; ============================================================================ +;; Public API +;; ============================================================================ + +(defn start-workflow + "Start a workflow execution" + ([store executor workflow-fn args] + (start-workflow store executor workflow-fn args (str (UUID/randomUUID)))) + ([store executor workflow-fn args workflow-id] + (start-workflow store executor workflow-fn args workflow-id 1000)) + ([store executor workflow-fn args workflow-id max-iterations] + (save-event store workflow-id {:event-type :workflow-started + :workflow-id workflow-id + :args (vec args) + :timestamp (System/currentTimeMillis)}) + (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + +(defn resume-workflow + "Resume a waiting workflow (e.g., after signal delivery)" + ([store executor workflow-id workflow-fn args] + (resume-workflow store executor workflow-id workflow-fn args 1000)) + ([store executor workflow-id workflow-fn args max-iterations] + (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + +(defn send-signal + "Send a signal to a workflow" + [store workflow-id signal-name payload] + (add-signal store workflow-id signal-name payload)) + +(defn get-workflow-history + "Get the history of a workflow" + [store workflow-id] + (load-history store workflow-id)) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +;; Register activities +(register-activity! #'slow-activity) +(register-activity! #'activity-fn) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (stub #'slow-activity) + prom1 (async #(slow 1)) + prom2 (async #(slow 2)) + prom3 (async #(slow 3)) + prom4 (async #(slow 4))] + (println "After async calls - all scheduled") + {:status :shipped + :prom (mapv join [prom1 prom2 prom3 prom4]) + :id id})) + +;; Run parallel example +(let [store (->InMemoryStore (atom {})) + executor (make-parallel-executor activity-registry :threads 4)] + + (println "\n=== Parallel Workflow ===") + (println "Starting at:" (System/currentTimeMillis)) + (time + (let [result (start-workflow store executor my-parallel-flow [123] "parallel-flow")] + (println "Finished at:" (System/currentTimeMillis)) + (println "Result:" result))) + + (println "\nHistory:") + (doseq [event (get-workflow-history store "parallel-flow")] + (println " " (:event-type event) "seq:" (:seq event) + (when (:result event) (str "result:" (:result event)))))) + +;; Basic workflow still works +(defn my-flow [id] + (println "Workflow start with id:" id) + (let [act (stub #'activity-fn) + slow (stub #'slow-activity) + prom (async #(slow 2))] + (println "After async call") + {:status :shipped + :res (act 1) + :prom (join prom) + :id id})) + +(let [store (->InMemoryStore (atom {})) + executor (make-parallel-executor activity-registry)] + (println "\n=== Basic Workflow ===") + (println "Result:" (start-workflow store executor my-flow [123] "basic-flow"))) diff --git a/src/intemporal3/core3.clj b/src/intemporal3/core3.clj new file mode 100644 index 0000000..ae407f1 --- /dev/null +++ b/src/intemporal3/core3.clj @@ -0,0 +1,1620 @@ +(ns intemporal3.core3 + (:import [java.util UUID] + [java.util.concurrent + Executors + ExecutorService + Future + TimeUnit + TimeoutException + ScheduledExecutorService + ScheduledFuture])) + +;; ============================================================================ +;; Protocols +;; ============================================================================ + +(defprotocol IStore + "Protocol for workflow persistence" + (load-history [store workflow-id] "Load history for a workflow") + (save-event [store workflow-id event] "Append an event to workflow history") + (save-events [store workflow-id events] "Append multiple events atomically") + (get-pending-signals [store workflow-id] "Get pending signals for workflow") + (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") + (consume-signal [store workflow-id signal-name] "Consume and remove a signal") + (is-cancelled? [store workflow-id] "Check if workflow is cancelled") + (mark-cancelled [store workflow-id] "Mark workflow as cancelled") + (get-workflow-status [store workflow-id] "Get current workflow status")) + +(defprotocol IActivityExecutor + "Protocol for executing activities" + (execute-activity [executor activity-name args timeout-ms] + "Execute an activity with given args and timeout") + (execute-activities-parallel [executor activities] + "Execute multiple activities in parallel, returns seq of results in same order") + (shutdown-executor [executor] + "Shutdown the executor and release resources")) + +(defprotocol IScheduler + "Protocol for scheduling timers" + (schedule-timer [scheduler workflow-id seq-num fire-at callback] + "Schedule a timer to fire at given time, calls callback when ready") + (cancel-timer [scheduler workflow-id seq-num] + "Cancel a scheduled timer") + (shutdown-scheduler [scheduler] + "Shutdown the scheduler")) + +(defprotocol IWorkflowObserver + "Protocol for observing workflow execution" + (on-workflow-started [observer workflow-id args]) + (on-workflow-suspended [observer workflow-id suspension-type]) + (on-workflow-resumed [observer workflow-id]) + (on-activity-scheduled [observer workflow-id seq-num activity-name args]) + (on-activity-started [observer workflow-id seq-num activity-name]) + (on-activity-completed [observer workflow-id seq-num activity-name result duration-ms]) + (on-activity-failed [observer workflow-id seq-num activity-name error duration-ms]) + (on-async-started [observer workflow-id seq-num]) + (on-async-completed [observer workflow-id seq-num result]) + (on-async-failed [observer workflow-id seq-num error]) + (on-timer-scheduled [observer workflow-id seq-num fire-at]) + (on-timer-fired [observer workflow-id seq-num]) + (on-signal-received [observer workflow-id signal-name payload]) + (on-workflow-completed [observer workflow-id result]) + (on-workflow-failed [observer workflow-id error]) + (on-workflow-cancelled [observer workflow-id])) + +;; ============================================================================ +;; Exceptions and Error Handling +;; ============================================================================ + +(defn- make-suspension [type data] + (ex-info "Workflow suspended" {:type type :data data ::suspension true})) + +(defn- suspension? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (::suspension (ex-data e)))) + +(defn- suspension-type [e] + (-> e ex-data :type)) + +(defn- suspension-data [e] + (-> e ex-data :data)) + +(defn- workflow-cancelled-exception [] + (ex-info "Workflow cancelled" {::cancelled true})) + +(defn- cancelled-exception? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (::cancelled (ex-data e)))) + +(defn- activity-timeout-exception [activity-name timeout-ms] + (ex-info "Activity timed out" + {::activity-timeout true + :activity-name activity-name + :timeout-ms timeout-ms})) + +(defn- activity-failed-exception [activity-name cause] + (ex-info "Activity failed" + {::activity-failed true + :activity-name activity-name} + cause)) + +(defn- async-failed-exception [handle-seq cause] + (ex-info "Async operation failed" + {::async-failed true + :handle-seq handle-seq + :cause cause})) + +(defn throwable->map [^Throwable t] + (when t + {:type (str (type t)) + :message (.getMessage t) + :data (when (instance? clojure.lang.ExceptionInfo t) + (ex-data t)) + :stack-trace (mapv str (.getStackTrace t)) + :cause (throwable->map (.getCause t))})) + +(defn map->exception [m] + (when m + (ex-info (or (:message m) "Restored exception") + (merge {:restored true} (:data m))))) + +;; ============================================================================ +;; Dynamic Context +;; ============================================================================ + +(def ^:dynamic *workflow-context* nil) + +(defn- current-context [] + (or *workflow-context* + (throw (ex-info "Not in workflow context" {})))) + +(defn- check-cancelled! [] + (let [ctx (current-context)] + (when (is-cancelled? (:store ctx) (:workflow-id ctx)) + (throw (workflow-cancelled-exception))))) + +(defn- next-seq! [] + (check-cancelled!) + (let [ctx (current-context)] + (let [seq @(:seq-counter ctx)] + (swap! (:seq-counter ctx) inc) + seq))) + +(defn- find-event [history event-type seq-num] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first)) + +(defn- find-events-by-type [history event-type] + (->> history + (filter #(= (:event-type %) event-type)))) + +(defn- add-pending-event! [event] + (let [ctx (current-context)] + (swap! (:pending-events ctx) conj event))) + +(defn- add-pending-async! [async-info] + (let [ctx (current-context)] + (swap! (:pending-asyncs ctx) conj async-info))) + +(defn- notify-observer [event-fn & args] + (when-let [observer (:observer (current-context))] + (try + (apply event-fn observer args) + (catch Exception e + ;; Don't let observer errors break workflow + (println "Observer error:" (.getMessage e)))))) + +;; ============================================================================ +;; In-Memory Store Implementation +;; ============================================================================ + +(defrecord InMemoryStore [state] + IStore + (load-history [_ workflow-id] + (get-in @state [:workflows workflow-id :history] [])) + + (save-event [_ workflow-id event] + (swap! state update-in [:workflows workflow-id :history] + (fnil conj []) event) + event) + + (save-events [_ workflow-id events] + (when (seq events) + (swap! state update-in [:workflows workflow-id :history] + (fnil into []) events)) + events) + + (get-pending-signals [_ workflow-id] + (get-in @state [:workflows workflow-id :signals] {})) + + (add-signal [_ workflow-id signal-name signal-data] + (swap! state update-in [:workflows workflow-id :signals signal-name] + (fnil conj []) signal-data) + signal-data) + + (consume-signal [_ workflow-id signal-name] + (let [result (atom nil)] + (swap! state + (fn [s] + (let [signals (get-in s [:workflows workflow-id :signals signal-name])] + (if (seq signals) + (do + (reset! result (first signals)) + (update-in s [:workflows workflow-id :signals signal-name] + (comp vec rest))) + s)))) + @result)) + + (is-cancelled? [_ workflow-id] + (get-in @state [:workflows workflow-id :cancelled] false)) + + (mark-cancelled [_ workflow-id] + (swap! state assoc-in [:workflows workflow-id :cancelled] true)) + + (get-workflow-status [_ workflow-id] + (let [wf (get-in @state [:workflows workflow-id])] + (cond + (:cancelled wf) :cancelled + (empty? (:history wf)) :not-found + :else (let [last-event (last (:history wf))] + (case (:event-type last-event) + :workflow-completed :completed + :workflow-failed :failed + :running)))))) + +(defn ->InMemoryStore + "Create a new in-memory store" + ([] (->InMemoryStore (atom {}))) + ([state] (InMemoryStore. state))) + +;; ============================================================================ +;; Default Scheduler Implementation +;; ============================================================================ + +(defrecord DefaultScheduler [^ScheduledExecutorService pool + pending-timers] + IScheduler + (schedule-timer [_ workflow-id seq-num fire-at callback] + (let [delay-ms (max 0 (- fire-at (System/currentTimeMillis))) + timer-key [workflow-id seq-num] + future (.schedule pool + ^Runnable (fn [] + (swap! pending-timers dissoc timer-key) + (callback)) + delay-ms + TimeUnit/MILLISECONDS)] + (swap! pending-timers assoc timer-key future) + timer-key)) + + (cancel-timer [_ workflow-id seq-num] + (let [timer-key [workflow-id seq-num]] + (when-let [^ScheduledFuture future (get @pending-timers timer-key)] + (.cancel future false) + (swap! pending-timers dissoc timer-key)))) + + (shutdown-scheduler [_] + (doseq [[_ ^ScheduledFuture future] @pending-timers] + (.cancel future false)) + (reset! pending-timers {}) + (.shutdown pool))) + +(defn make-scheduler + "Create a new scheduler" + [& {:keys [threads] :or {threads 2}}] + (->DefaultScheduler + (Executors/newScheduledThreadPool threads) + (atom {}))) + +;; ============================================================================ +;; Default Parallel Executor +;; ============================================================================ + +(defrecord ParallelActivityExecutor [^ExecutorService pool + registry-atom + default-timeout-ms] + IActivityExecutor + (execute-activity [_ activity-name args timeout-ms] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (throw (ex-info "Activity not found" {:activity-name activity-name})) + (let [future (.submit pool ^Callable (fn [] (apply (:fn act) args)))] + (try + (if timeout + (.get ^Future future timeout TimeUnit/MILLISECONDS) + (.get ^Future future)) + (catch TimeoutException _ + (.cancel ^Future future true) + (throw (activity-timeout-exception activity-name timeout))) + (catch Exception e + (throw (activity-failed-exception activity-name + (or (.getCause e) e))))))))) + + (execute-activities-parallel [this activities] + (if (empty? activities) + [] + (let [futures (mapv (fn [{:keys [activity-name args timeout-ms]}] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (throw (ex-info "Activity not found" + {:activity-name activity-name})) + {:future (.submit pool ^Callable + (fn [] + (let [start (System/currentTimeMillis)] + {:result (apply (:fn act) args) + :duration (- (System/currentTimeMillis) start)}))) + :timeout timeout + :activity-name activity-name}))) + activities)] + (mapv (fn [{:keys [^Future future timeout activity-name]}] + (try + (let [result (if timeout + (.get future timeout TimeUnit/MILLISECONDS) + (.get future))] + {:status :success + :result (:result result) + :duration (:duration result)}) + (catch TimeoutException _ + (.cancel future true) + {:status :failed + :error (throwable->map + (activity-timeout-exception activity-name timeout))}) + (catch Exception e + {:status :failed + :error (throwable->map (or (.getCause e) e))}))) + futures)))) + + (shutdown-executor [_] + (.shutdown pool) + (.awaitTermination pool 30 TimeUnit/SECONDS))) + +(defn make-parallel-executor + "Create an executor that runs activities in parallel using a thread pool" + [activity-registry-atom & {:keys [threads default-timeout-ms] + :or {threads 4 default-timeout-ms 30000}}] + (->ParallelActivityExecutor + (Executors/newFixedThreadPool threads) + activity-registry-atom + default-timeout-ms)) + +;; ============================================================================ +;; Default Observer (Logging) +;; ============================================================================ + +(defrecord LoggingObserver [log-atom] + IWorkflowObserver + (on-workflow-started [_ workflow-id args] + (swap! log-atom conj {:event :workflow-started + :workflow-id workflow-id + :args args + :timestamp (System/currentTimeMillis)})) + + (on-workflow-suspended [_ workflow-id suspension-type] + (swap! log-atom conj {:event :workflow-suspended + :workflow-id workflow-id + :suspension-type suspension-type + :timestamp (System/currentTimeMillis)})) + + (on-workflow-resumed [_ workflow-id] + (swap! log-atom conj {:event :workflow-resumed + :workflow-id workflow-id + :timestamp (System/currentTimeMillis)})) + + (on-activity-scheduled [_ workflow-id seq-num activity-name args] + (swap! log-atom conj {:event :activity-scheduled + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :args args + :timestamp (System/currentTimeMillis)})) + + (on-activity-started [_ workflow-id seq-num activity-name] + (swap! log-atom conj {:event :activity-started + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :timestamp (System/currentTimeMillis)})) + + (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] + (swap! log-atom conj {:event :activity-completed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :result result + :duration-ms duration-ms + :timestamp (System/currentTimeMillis)})) + + (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] + (swap! log-atom conj {:event :activity-failed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :error error + :duration-ms duration-ms + :timestamp (System/currentTimeMillis)})) + + (on-async-started [_ workflow-id seq-num] + (swap! log-atom conj {:event :async-started + :workflow-id workflow-id + :seq seq-num + :timestamp (System/currentTimeMillis)})) + + (on-async-completed [_ workflow-id seq-num result] + (swap! log-atom conj {:event :async-completed + :workflow-id workflow-id + :seq seq-num + :result result + :timestamp (System/currentTimeMillis)})) + + (on-async-failed [_ workflow-id seq-num error] + (swap! log-atom conj {:event :async-failed + :workflow-id workflow-id + :seq seq-num + :error error + :timestamp (System/currentTimeMillis)})) + + (on-timer-scheduled [_ workflow-id seq-num fire-at] + (swap! log-atom conj {:event :timer-scheduled + :workflow-id workflow-id + :seq seq-num + :fire-at fire-at + :timestamp (System/currentTimeMillis)})) + + (on-timer-fired [_ workflow-id seq-num] + (swap! log-atom conj {:event :timer-fired + :workflow-id workflow-id + :seq seq-num + :timestamp (System/currentTimeMillis)})) + + (on-signal-received [_ workflow-id signal-name payload] + (swap! log-atom conj {:event :signal-received + :workflow-id workflow-id + :signal-name signal-name + :payload payload + :timestamp (System/currentTimeMillis)})) + + (on-workflow-completed [_ workflow-id result] + (swap! log-atom conj {:event :workflow-completed + :workflow-id workflow-id + :result result + :timestamp (System/currentTimeMillis)})) + + (on-workflow-failed [_ workflow-id error] + (swap! log-atom conj {:event :workflow-failed + :workflow-id workflow-id + :error error + :timestamp (System/currentTimeMillis)})) + + (on-workflow-cancelled [_ workflow-id] + (swap! log-atom conj {:event :workflow-cancelled + :workflow-id workflow-id + :timestamp (System/currentTimeMillis)}))) + +(defn make-logging-observer + "Create an observer that logs all events to an atom" + ([] (make-logging-observer (atom []))) + ([log-atom] (->LoggingObserver log-atom))) + +(defn noop-observer + "Create an observer that does nothing" + [] + (reify IWorkflowObserver + (on-workflow-started [_ _ _]) + (on-workflow-suspended [_ _ _]) + (on-workflow-resumed [_ _]) + (on-activity-scheduled [_ _ _ _ _]) + (on-activity-started [_ _ _ _]) + (on-activity-completed [_ _ _ _ _ _]) + (on-activity-failed [_ _ _ _ _ _]) + (on-async-started [_ _ _]) + (on-async-completed [_ _ _ _]) + (on-async-failed [_ _ _ _]) + (on-timer-scheduled [_ _ _ _]) + (on-timer-fired [_ _ _]) + (on-signal-received [_ _ _ _]) + (on-workflow-completed [_ _ _]) + (on-workflow-failed [_ _ _]) + (on-workflow-cancelled [_ _]))) + +;; ============================================================================ +;; Activity Registry +;; ============================================================================ + +(defn make-registry + "Create a new activity registry" + [] + (atom {})) + +(defn register-activity! + "Register an activity function in a registry" + [registry f & {:keys [name timeout-ms retry-policy]}] + (let [activity-name (or name + (if (var? f) + (str (symbol f)) + (str (gensym "activity-")))) + resolved-fn (if (var? f) @f f)] + (swap! registry assoc activity-name + {:fn resolved-fn + :timeout-ms timeout-ms + :retry-policy retry-policy}) + activity-name)) + +(defn- get-activity-info [registry activity-name] + (get @registry activity-name)) + +(defn- get-activity-fn [registry activity-name] + (:fn (get-activity-info registry activity-name))) + +(defn- ensure-registered! [registry f] + (let [activity-name (if (var? f) + (str (symbol f)) + (str (symbol f)))] + (when-not (contains? @registry activity-name) + (register-activity! registry f :name activity-name)) + activity-name)) + +;; ============================================================================ +;; Retry Policy +;; ============================================================================ + +(defrecord RetryPolicy [max-attempts + backoff-ms + max-backoff-ms + backoff-multiplier + retryable-fn]) + +(defn make-retry-policy + "Create a retry policy" + [& {:keys [max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn] + :or {max-attempts 3 + backoff-ms 1000 + max-backoff-ms 60000 + backoff-multiplier 2.0 + retryable-fn (constantly true)}}] + (->RetryPolicy max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn)) + +(defn- calculate-backoff [policy attempt] + (let [base (:backoff-ms policy) + multiplier (:backoff-multiplier policy) + max-backoff (:max-backoff-ms policy) + backoff (* base (Math/pow multiplier (dec attempt)))] + (long (min backoff max-backoff)))) + +(defn- should-retry? [policy error attempt] + (and (< attempt (:max-attempts policy)) + ((:retryable-fn policy) error))) + +;; ============================================================================ +;; Core Workflow Operations +;; ============================================================================ + +(defn stub + "Create a stubbed version of an activity function for use in workflows. + Options: + - :timeout-ms - timeout for this activity (overrides default) + - :retry-policy - retry policy for this activity" + [activity-fn & {:keys [timeout-ms retry-policy]}] + (let [ctx (current-context) + registry (:registry ctx) + activity-name (ensure-registered! registry activity-fn) + activity-info (get-activity-info registry activity-name) + effective-timeout (or timeout-ms (:timeout-ms activity-info)) + effective-retry (or retry-policy (:retry-policy activity-info))] + (fn [& args] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :activity-completed seq-num) + existing-failed (find-event history :activity-failed seq-num)] + (cond + ;; Replay: return cached result + existing + (:result existing) + + ;; Replay: throw cached error + existing-failed + (throw (map->exception (:error existing-failed))) + + ;; Execute: need to run the activity + :else + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy (when effective-retry + {:max-attempts (:max-attempts effective-retry) + :backoff-ms (:backoff-ms effective-retry)}) + :timestamp (System/currentTimeMillis)}] + (add-pending-event! scheduled-event) + (notify-observer on-activity-scheduled + (:workflow-id ctx) seq-num activity-name (vec args)) + (throw (make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy effective-retry})))))))) + +;; ============================================================================ +;; Async Support +;; ============================================================================ + +(defrecord AsyncHandle [seq-num]) + +(defn async + "Schedule an async operation (thunk) for later execution. + The thunk should contain a single activity call." + [thunk] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing-completed (find-event history :async-completed seq-num) + existing-failed (find-event history :async-failed seq-num) + existing-started (find-event history :async-started seq-num)] + (cond + ;; Already completed - just return handle + existing-completed + (->AsyncHandle seq-num) + + ;; Already failed - return handle (will throw on join) + existing-failed + (->AsyncHandle seq-num) + + ;; Already started but not completed - return handle (will block on join) + existing-started + (->AsyncHandle seq-num) + + ;; Need to start - record and try to capture what activity it needs + :else + (let [start-event {:event-type :async-started + :seq seq-num + :timestamp (System/currentTimeMillis)}] + (add-pending-event! start-event) + (notify-observer on-async-started (:workflow-id ctx) seq-num) + ;; Try to execute the thunk to see what activity it wants + (try + (thunk) + ;; If thunk completes synchronously (all replayed), just return handle + (->AsyncHandle seq-num) + (catch Exception e + (if (suspension? e) + ;; The thunk suspended on an activity - capture it for parallel execution + (let [suspension-info (suspension-data e)] + (add-pending-async! {:handle-seq seq-num + :activity-name (:activity-name suspension-info) + :activity-seq (:seq suspension-info) + :args (:args suspension-info) + :timeout-ms (:timeout-ms suspension-info) + :retry-policy (:retry-policy suspension-info)}) + ;; Return handle - we'll batch execute later + (->AsyncHandle seq-num)) + (throw e)))))))) + +(defn join + "Wait for an async handle to complete. + Throws if the async operation failed." + [handle] + (check-cancelled!) + (let [ctx (current-context) + handle-seq (:seq-num handle) + history @(:history ctx) + completed (find-event history :async-completed handle-seq) + failed (find-event history :async-failed handle-seq)] + (cond + completed + (:result completed) + + failed + (throw (async-failed-exception handle-seq (:error failed))) + + :else + (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) + +(defn join-all + "Wait for multiple async handles to complete. + Returns a vector of results in the same order as handles. + Throws if any async operation failed." + [handles] + (mapv join handles)) + +(defn join-any + "Wait for any of the async handles to complete. + Returns {:index idx :result result} for the first completed. + Note: In deterministic replay, this will always return the same result." + [handles] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :join-any-completed seq-num)] + (if existing + {:index (:index existing) + :result (:result existing)} + ;; Check if any are already complete + (let [completed-idx (first + (keep-indexed + (fn [idx handle] + (when (find-event history :async-completed (:seq-num handle)) + idx)) + handles))] + (if completed-idx + (let [result (join (nth handles completed-idx))] + (add-pending-event! {:event-type :join-any-completed + :seq seq-num + :index completed-idx + :result result + :timestamp (System/currentTimeMillis)}) + {:index completed-idx :result result}) + (throw (make-suspension :join-any-pending + {:seq seq-num + :handle-seqs (mapv :seq-num handles)}))))))) + +;; ============================================================================ +;; Signals +;; ============================================================================ + +(defn wait-for-signal + "Wait for a signal with the given name. + Returns the signal payload when received." + [signal-name] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :signal-received seq-num)] + (if existing + (:payload existing) + (throw (make-suspension :wait-signal {:seq seq-num + :signal-name signal-name}))))) + +(defn wait-for-signal-with-timeout + "Wait for a signal with timeout. + Returns {:received true :payload ...} or {:received false} on timeout." + [signal-name timeout-ms] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :signal-wait-completed seq-num)] + (if existing + (if (:received existing) + {:received true :payload (:payload existing)} + {:received false}) + (throw (make-suspension :wait-signal-timeout + {:seq seq-num + :signal-name signal-name + :timeout-ms timeout-ms + :deadline (+ (System/currentTimeMillis) timeout-ms)}))))) + +;; ============================================================================ +;; Timers +;; ============================================================================ + +(defn sleep + "Sleep for specified milliseconds" + [ms] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + existing (find-event history :timer-fired seq-num)] + (if existing + nil + (let [fire-at (+ (System/currentTimeMillis) ms)] + (add-pending-event! {:event-type :timer-scheduled + :seq seq-num + :fire-at fire-at + :duration-ms ms + :timestamp (System/currentTimeMillis)}) + (notify-observer on-timer-scheduled (:workflow-id ctx) seq-num fire-at) + (throw (make-suspension :timer {:seq seq-num + :fire-at fire-at})))))) + +;; ============================================================================ +;; Child Workflows +;; ============================================================================ + +(defn run-child-workflow + "Run another workflow as a child workflow. + The child workflow has its own history but is tracked by the parent." + [child-workflow-fn args & {:keys [child-id]}] + (check-cancelled!) + (let [ctx (current-context) + seq-num (next-seq!) + history @(:history ctx) + child-wf-id (or child-id (str (:workflow-id ctx) "/child-" seq-num)) + existing (find-event history :child-workflow-completed seq-num) + existing-failed (find-event history :child-workflow-failed seq-num)] + (cond + existing + (:result existing) + + existing-failed + (throw (map->exception (:error existing-failed))) + + :else + (let [scheduled-event {:event-type :child-workflow-scheduled + :seq seq-num + :child-workflow-id child-wf-id + :args (vec args) + :timestamp (System/currentTimeMillis)}] + (add-pending-event! scheduled-event) + (throw (make-suspension :child-workflow + {:seq seq-num + :child-workflow-id child-wf-id + :workflow-fn child-workflow-fn + :args args})))))) + +;; ============================================================================ +;; Workflow Execution Engine +;; ============================================================================ + +(defn- execute-workflow-fn [workflow-fn args] + (try + {:status :completed + :result (apply workflow-fn args) + :pending-asyncs @(:pending-asyncs (current-context)) + :pending-events @(:pending-events (current-context))} + (catch Exception e + (cond + (suspension? e) + {:status :suspended + :suspension-type (suspension-type e) + :suspension-data (suspension-data e) + :pending-asyncs @(:pending-asyncs (current-context)) + :pending-events @(:pending-events (current-context))} + + (cancelled-exception? e) + {:status :cancelled + :pending-events @(:pending-events (current-context))} + + :else + {:status :failed + :error e + :pending-events @(:pending-events (current-context))})))) + +(defn- execute-with-retry + "Execute an activity with retry policy" + [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] + (if (nil? retry-policy) + ;; No retry - execute once + (let [start (System/currentTimeMillis)] + (when observer + (on-activity-started observer workflow-id seq-num activity-name)) + (try + (let [result (execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start)] + (when observer + (on-activity-failed observer workflow-id seq-num activity-name + (throwable->map e) duration)) + {:status :failed :error (throwable->map e) :duration duration})))) + ;; With retry + (loop [attempt 1] + (let [start (System/currentTimeMillis) + _ (when observer + (on-activity-started observer workflow-id seq-num activity-name)) + exec-result (try + (let [result (execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration :attempts attempt}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start) + error-map (throwable->map e)] + (when observer + (on-activity-failed observer workflow-id seq-num activity-name error-map duration)) + {:status :retry-or-fail + :error error-map + :exception e + :duration duration})))] + (case (:status exec-result) + :success + exec-result + + :retry-or-fail + (if (should-retry? retry-policy (:exception exec-result) attempt) + (do + (Thread/sleep (calculate-backoff retry-policy attempt)) + (recur (inc attempt))) + {:status :failed + :error (:error exec-result) + :duration (:duration exec-result) + :attempts attempt})))))) + +(defn- process-pending-activity [store executor workflow-id suspension-data pending-events observer] + (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data + exec-result (execute-with-retry executor activity-name args timeout-ms + retry-policy observer workflow-id seq)] + ;; Save all pending events first + (save-events store workflow-id pending-events) + ;; Then save the completion or failure + (if (= :success (:status exec-result)) + (do + (save-event store workflow-id {:event-type :activity-completed + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (save-event store workflow-id {:event-type :activity-failed + :seq seq + :activity-name activity-name + :error (:error exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn- process-pending-asyncs-parallel + "Process all pending async operations in parallel" + [store executor workflow-id pending-asyncs pending-events observer] + (when (seq pending-asyncs) + ;; Save all pending events first + (save-events store workflow-id pending-events) + + ;; Execute all activities in parallel + (let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] + {:activity-name activity-name + :args args + :timeout-ms timeout-ms}) + pending-asyncs) + results (execute-activities-parallel executor activities) + now (System/currentTimeMillis) + + ;; Create completion events for both activities and async handles + completion-events + (mapcat (fn [async-info result] + (when observer + (if (= :success (:status result)) + (on-async-completed observer workflow-id + (:handle-seq async-info) (:result result)) + (on-async-failed observer workflow-id + (:handle-seq async-info) (:error result)))) + (if (= :success (:status result)) + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result (:result result) + :duration-ms (:duration result) + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :result (:result result) + :timestamp now}] + [{:event-type :activity-failed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :error (:error result) + :timestamp now} + {:event-type :async-failed + :seq (:handle-seq async-info) + :error (:error result) + :timestamp now}])) + pending-asyncs results)] + (save-events store workflow-id completion-events))) + :continue) + +(defn- process-timer [store scheduler workflow-id suspension-data pending-events + wake-fn observer] + (let [{:keys [seq fire-at]} suspension-data + now (System/currentTimeMillis)] + ;; Save pending events + (save-events store workflow-id pending-events) + (if (>= now fire-at) + (do + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + (when observer + (on-timer-fired observer workflow-id seq)) + :continue) + ;; Schedule timer and return wait status + (do + (schedule-timer scheduler workflow-id seq fire-at + (fn [] + (save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (System/currentTimeMillis)}) + (when observer + (on-timer-fired observer workflow-id seq)) + (when wake-fn (wake-fn)))) + :wait-timer)))) + +(defn- process-signal [store workflow-id suspension-data pending-events observer] + (let [{:keys [seq signal-name]} suspension-data] + ;; Save pending events + (save-events store workflow-id pending-events) + (if-let [signal-data (consume-signal store workflow-id signal-name)] + (do + (save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (when observer + (on-signal-received observer workflow-id signal-name (:payload signal-data))) + :continue) + :wait-signal))) + +(defn- process-signal-with-timeout [store scheduler workflow-id suspension-data + pending-events wake-fn observer] + (let [{:keys [seq signal-name deadline]} suspension-data + now (System/currentTimeMillis)] + (save-events store workflow-id pending-events) + ;; Check if signal already available + (if-let [signal-data (consume-signal store workflow-id signal-name)] + (do + (save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp now}) + (when observer + (on-signal-received observer workflow-id signal-name (:payload signal-data))) + :continue) + ;; Check if already timed out + (if (>= now deadline) + (do + (save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp now}) + :continue) + ;; Schedule timeout + (do + (schedule-timer scheduler workflow-id seq deadline + (fn [] + ;; Check one more time for signal + (if-let [signal-data (consume-signal store workflow-id signal-name)] + (save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp (System/currentTimeMillis)})) + (when wake-fn (wake-fn)))) + :wait-signal-timeout))))) + +(defn- process-join-pending [store executor workflow-id suspension-data pending-events + pending-asyncs observer] + (let [{:keys [handle-seq]} suspension-data] + ;; First, process any pending asyncs that haven't been executed yet + (if (seq pending-asyncs) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer) + :continue) + ;; else + (do + (when (seq pending-events) + (save-events store workflow-id pending-events)) + ;; Check if the handle is now complete + (let [history (load-history store workflow-id) + completed (find-event history :async-completed handle-seq) + failed (find-event history :async-failed handle-seq)] + (if (or completed failed) + :continue + :wait-async)))))) + +(declare run-workflow-internal) + +(defn- process-child-workflow [store executor scheduler registry workflow-id + suspension-data pending-events observer] + (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] + (save-events store workflow-id pending-events) + ;; Execute child workflow synchronously for now + ;; In a real implementation, this could be async + (try + (let [result (run-workflow-internal store executor scheduler registry + child-workflow-id workflow-fn args + {:observer observer + :max-iterations 1000})] + (if (= :completed (:status result)) + (do + (save-event store workflow-id {:event-type :child-workflow-completed + :seq seq + :child-workflow-id child-workflow-id + :result (:result result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error {:status (:status result)} + :timestamp (System/currentTimeMillis)}) + :continue))) + (catch Exception e + (save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (throwable->map e) + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn- run-workflow-internal + [store executor scheduler registry workflow-id workflow-fn args + {:keys [observer max-iterations wake-fn] + :or {max-iterations 1000}}] + (loop [iteration 0] + (when (>= iteration max-iterations) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id + :iterations iteration}))) + + ;; Check cancellation at start of each iteration + (when (is-cancelled? store workflow-id) + (when observer + (on-workflow-cancelled observer workflow-id)) + (save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) + + (let [history (load-history store workflow-id) + pending-events (atom []) + pending-asyncs (atom []) + ctx {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events pending-events + :pending-asyncs pending-asyncs + :store store + :registry registry + :observer observer} + exec-result (binding [*workflow-context* ctx] + (execute-workflow-fn workflow-fn args))] + + (case (:status exec-result) + :completed + (do + ;; Process any remaining pending asyncs before completing + (when (seq (:pending-asyncs exec-result)) + (process-pending-asyncs-parallel store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + observer)) + (when (and (empty? (:pending-asyncs exec-result)) + (seq (:pending-events exec-result))) + (save-events store workflow-id (:pending-events exec-result))) + (save-event store workflow-id {:event-type :workflow-completed + :result (:result exec-result) + :timestamp (System/currentTimeMillis)}) + (when observer + (on-workflow-completed observer workflow-id (:result exec-result))) + {:status :completed + :result (:result exec-result)}) + + :cancelled + (do + (save-events store workflow-id (:pending-events exec-result)) + (save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (when observer + (on-workflow-cancelled observer workflow-id)) + {:status :cancelled + :workflow-id workflow-id}) + + :suspended + (let [pending-asyncs-list (:pending-asyncs exec-result) + pending-events-list (:pending-events exec-result) + + _ (when observer + (on-workflow-suspended observer workflow-id (:suspension-type exec-result))) + + action (case (:suspension-type exec-result) + :activity + (if (seq pending-asyncs-list) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer) + :continue) + (process-pending-activity store executor workflow-id + (:suspension-data exec-result) + pending-events-list + observer)) + + :timer + (process-timer store scheduler workflow-id + (:suspension-data exec-result) + pending-events-list + wake-fn + observer) + + :wait-signal + (process-signal store workflow-id + (:suspension-data exec-result) + pending-events-list + observer) + + :wait-signal-timeout + (process-signal-with-timeout store scheduler workflow-id + (:suspension-data exec-result) + pending-events-list + wake-fn + observer) + + :join-pending + (process-join-pending store executor workflow-id + (:suspension-data exec-result) + pending-events-list + pending-asyncs-list + observer) + + :join-any-pending + (do + (when (seq pending-asyncs-list) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer)) + :continue) + + :child-workflow + (process-child-workflow store executor scheduler registry + workflow-id + (:suspension-data exec-result) + pending-events-list + observer))] + + (when observer + (when (= action :continue) + (on-workflow-resumed observer workflow-id))) + + (case action + :continue (recur (inc iteration)) + :wait-signal {:status :waiting-signal + :workflow-id workflow-id} + :wait-signal-timeout {:status :waiting-signal-timeout + :workflow-id workflow-id} + :wait-timer {:status :waiting-timer + :workflow-id workflow-id} + :wait-async {:status :waiting-async + :workflow-id workflow-id})) + + :failed + (do + (save-events store workflow-id (:pending-events exec-result)) + (save-event store workflow-id {:event-type :workflow-failed + :error (throwable->map (:error exec-result)) + :timestamp (System/currentTimeMillis)}) + (when observer + (on-workflow-failed observer workflow-id (throwable->map (:error exec-result)))) + {:status :failed + :error (:error exec-result)}))))) + +;; ============================================================================ +;; Public API +;; ============================================================================ + +(defn start-workflow + "Start a workflow execution. + + Arguments: + - store: IStore implementation for persistence + - executor: IActivityExecutor for running activities + - scheduler: IScheduler for timers + - registry: Activity registry atom + - workflow-fn: The workflow function to execute + - args: Arguments to pass to workflow-fn + + Options: + - :workflow-id - Custom workflow ID (default: random UUID) + - :observer - IWorkflowObserver for monitoring + - :max-iterations - Maximum replay iterations (default: 1000)" + [store executor scheduler registry workflow-fn args + & {:keys [workflow-id observer max-iterations] + :or {max-iterations 1000}}] + (let [wf-id (or workflow-id (str (UUID/randomUUID)))] + (save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (System/currentTimeMillis)}) + (when observer + (on-workflow-started observer wf-id args)) + (run-workflow-internal store executor scheduler registry wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations}))) + +(defn resume-workflow + "Resume a waiting workflow (e.g., after signal delivery or timer). + + Arguments: + - store: IStore implementation + - executor: IActivityExecutor + - scheduler: IScheduler + - registry: Activity registry atom + - workflow-id: ID of workflow to resume + - workflow-fn: The workflow function + - args: Original arguments + + Options: + - :observer - IWorkflowObserver + - :max-iterations - Maximum replay iterations" + [store executor scheduler registry workflow-id workflow-fn args + & {:keys [observer max-iterations] + :or {max-iterations 1000}}] + (when observer + (on-workflow-resumed observer workflow-id)) + (run-workflow-internal store executor scheduler registry workflow-id workflow-fn args + {:observer observer + :max-iterations max-iterations})) + +(defn send-signal + "Send a signal to a workflow. + + Arguments: + - store: IStore implementation + - workflow-id: Target workflow ID + - signal-name: Name of the signal + - payload: Signal payload data + + Options: + - :signal-id - Custom signal ID for idempotency" + [store workflow-id signal-name payload & {:keys [signal-id]}] + (let [id (or signal-id (str (UUID/randomUUID)))] + (add-signal store workflow-id signal-name {:id id :payload payload}) + {:signal-id id})) + +(defn cancel-workflow + "Cancel a running workflow. + The workflow will be cancelled at the next suspension point." + [store workflow-id] + (mark-cancelled store workflow-id) + {:cancelled true :workflow-id workflow-id}) + +(defn get-workflow-history + "Get the history of a workflow" + [store workflow-id] + (load-history store workflow-id)) + +(defn get-workflow-result + "Get the final result of a completed workflow, or nil if not completed" + [store workflow-id] + (let [history (load-history store workflow-id) + completed (->> history + (filter #(= (:event-type %) :workflow-completed)) + first)] + (when completed + (:result completed)))) + +;; ============================================================================ +;; Convenience Functions +;; ============================================================================ + +(defn make-workflow-engine + "Create a complete workflow engine with all components. + Returns a map with :store, :executor, :scheduler, :registry, and :observer. + + Options: + - :threads - Number of executor threads (default: 4) + - :scheduler-threads - Number of scheduler threads (default: 2) + - :default-timeout-ms - Default activity timeout (default: 30000) + - :enable-logging - Enable logging observer (default: false)" + [& {:keys [threads scheduler-threads default-timeout-ms enable-logging] + :or {threads 4 + scheduler-threads 2 + default-timeout-ms 30000 + enable-logging false}}] + (let [registry (make-registry) + log-atom (when enable-logging (atom []))] + {:store (->InMemoryStore (atom {})) + :executor (make-parallel-executor registry + :threads threads + :default-timeout-ms default-timeout-ms) + :scheduler (make-scheduler :threads scheduler-threads) + :registry registry + :observer (if enable-logging + (make-logging-observer log-atom) + (noop-observer)) + :log (when enable-logging log-atom)})) + +(defn shutdown-engine + "Shutdown all components of a workflow engine" + [{:keys [executor scheduler]}] + (shutdown-executor executor) + (shutdown-scheduler scheduler)) + +(defmacro with-workflow-engine + "Execute body with a workflow engine, ensuring cleanup. + + Usage: + (with-workflow-engine [engine {:threads 4}] + (start-workflow (:store engine) ...))" + [[binding opts] & body] + `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] + (try + ~@body + (finally + (shutdown-engine ~binding))))) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +(defn flaky-activity [x] + (if true ;(< (rand) 0.7) + (throw (ex-info "Random failure" {:x x})) + (* x 3))) + +(defn failing-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Create engine +(def engine (make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(register-activity! (:registry engine) #'slow-activity) +(register-activity! (:registry engine) #'activity-fn) +(register-activity! (:registry engine) #'flaky-activity + :retry-policy (make-retry-policy :max-attempts 5)) +(register-activity! (:registry engine) #'failing-activity) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (stub #'slow-activity) + prom1 (async #(slow 1)) + prom2 (async #(slow 2)) + prom3 (async #(slow 3)) + prom4 (async #(slow 4))] + (println "After async calls - all scheduled") + {:status :shipped + :slow (slow 0) + :results (join-all [prom1 prom2 prom3 prom4]) + :id id})) + +;; Run parallel example +(println "\n=== Parallel Workflow ===") +(println "Starting at:" (System/currentTimeMillis)) +(let [result (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + my-parallel-flow [123] + :workflow-id "parallel-flow" + :observer (:observer engine))] + (println "Finished at:" (System/currentTimeMillis)) + (println "Result:" result)) + +(comment + + ;; Workflow with error handling + (defn error-handling-flow [id] + (let [flaky (stub #'flaky-activity)] + {:result (flaky id)})) + + (println "\n=== Error Handling Workflow ===") + (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + error-handling-flow [42] + :workflow-id "error-flow" + :observer (:observer engine)) + + ;; Workflow with timer + (defn timed-flow [id] + (println "Starting timed flow") + (let [act (stub #'activity-fn)] + (println "Sleeping for 2 seconds...") + (sleep 2000) + (println "Woke up!") + {:result (act id)})) + + (println "\n=== Timed Workflow ===") + (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + timed-flow [456] + :workflow-id "timed-flow" + :observer (:observer engine)) + + ;; Workflow with signal + (defn signal-flow [id] + (println "Waiting for approval signal...") + (let [approval (wait-for-signal "approval") + act (stub #'activity-fn)] + (println "Got approval:" approval) + {:approved approval + :result (act id)})) + + (println "\n=== Signal Workflow ===") + (let [wf-id "signal-flow" + result1 (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + signal-flow [789] + :workflow-id wf-id + :observer (:observer engine))] + (println "Initial result:" result1) + (when (= :waiting-signal (:status result1)) + (println "Sending signal...") + (send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) + (println "Resuming...") + (println "Final result:" + (resume-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + wf-id signal-flow [789] + :observer (:observer engine))))) + + ;; Workflow with signal timeout + (defn signal-timeout-flow [id] + (println "Waiting for approval with timeout...") + (let [result (wait-for-signal-with-timeout "approval" 3000) + act (stub #'activity-fn)] + (if (:received result) + {:approved (:payload result) + :result (act id)} + {:timed-out true + :result (act (* id -1))}))) + + ;; Child workflow example + (defn child-flow [x] + (let [act (stub #'activity-fn)] + {:child-result (act x)})) + + (defn parent-flow [id] + (println "Parent workflow starting") + (let [act (stub #'activity-fn) + child-result (run-child-workflow child-flow [(* id 10)])] + {:parent-result (act id) + :child child-result})) + + (println "\n=== Parent/Child Workflow ===") + (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + parent-flow [5] + :workflow-id "parent-flow" + :observer (:observer engine)) + + ;; Cancellation example + (defn long-flow [id] + (let [slow (stub #'slow-activity)] + (dotimes [i 10] + (println "Step" i) + (slow i) + (sleep 500)) + {:done true})) + + (println "\n=== Cancellation ===") + (future + (Thread/sleep 2500) + (println "Cancelling workflow...") + (cancel-workflow (:store engine) "cancel-flow")) + + (try + (start-workflow (:store engine) + (:executor engine) + (:scheduler engine) + (:registry engine) + long-flow [1] + :workflow-id "cancel-flow" + :observer (:observer engine)) + (catch Exception e + (println "Workflow cancelled:" (.getMessage e)))) + + ;; View logs + (println "\n=== Event Log ===") + (doseq [event @(:log engine)] + (println (:event event) "-" (dissoc event :event :timestamp))) + + ;; View history + (println "\n=== Workflow History ===") + (doseq [event (get-workflow-history (:store engine) "parallel-flow")] + (println (:event-type event) "seq:" (:seq event))) + + ;; Cleanup + (shutdown-engine engine) + + ;; Using the convenience macro + (with-workflow-engine [eng {:threads 4 :enable-logging true}] + (register-activity! (:registry eng) #'activity-fn) + (register-activity! (:registry eng) #'slow-activity) + (let [result (start-workflow (:store eng) + (:executor eng) + (:scheduler eng) + (:registry eng) + my-parallel-flow [999] + :observer (:observer eng))] + (println "Result:" result)))) diff --git a/src/intemporal3/definition.md b/src/intemporal3/definition.md new file mode 100644 index 0000000..fa7ddbc --- /dev/null +++ b/src/intemporal3/definition.md @@ -0,0 +1,47 @@ +# Definition + +Write a minimal core for a deterministic workflow runner in clojure + +- activities are plain functions +- workflows are plain functions +- inside workflows, activities are stubbed +- the workflow runner shall accept as arguments: a data store (eg memory store), and an activity executor +- both the store and executor should have protocols +- workflows can also run activities asynchronously +- should support signals and timers (sleep) + +To suspend execution, we shall use an exception-based mechanism. + +History should be deterministic and linear. + +When starting a workflow, we shall use a dynamic var to hold all runtime data such as history, etc. + +The code should be in a single namespace, in a single file + +# Example + +```clojure + +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn my-flow [id] + (println "Workflow start") + (let [act (stub activity-fn) + prom (async #(act 2))] + + {:status :shipped + :res (act 1) + :prom (join prom)})) + +;; then, start the workflow +(start-workflow (->InMemoryStore (atom {})) + (reify IActivityExecutor + (execute-activity [_ actname args] + (let [act (get @activity-registry actname)] + (apply act args)))) + my-flow + [123] + "my-flow") +``` \ No newline at end of file diff --git a/src/intemporal3/engine.clj b/src/intemporal3/engine.clj new file mode 100644 index 0000000..487b0a1 --- /dev/null +++ b/src/intemporal3/engine.clj @@ -0,0 +1 @@ +(ns intemporal3.engine) diff --git a/src/intemporal3/observer.clj b/src/intemporal3/observer.clj new file mode 100644 index 0000000..38f049c --- /dev/null +++ b/src/intemporal3/observer.clj @@ -0,0 +1 @@ +(ns intemporal3.observer) diff --git a/src/intemporal3/protocol.clj b/src/intemporal3/protocol.clj new file mode 100644 index 0000000..d6bca3c --- /dev/null +++ b/src/intemporal3/protocol.clj @@ -0,0 +1 @@ +(ns intemporal3.protocol) From 47a98309dd48369eac25ba2395c4ef56264733e4 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 13 Jan 2026 21:31:29 +0000 Subject: [PATCH 29/81] refactor ns --- src/detflow/activity.clj | 6 - src/detflow/common.clj | 44 - src/detflow/core.clj | 276 ----- src/detflow/coregemini.clj | 308 ----- src/detflow/engine.clj | 119 -- src/detflow/example.clj | 49 - src/detflow/runtime.clj | 67 - src/detflow/workflow.clj | 104 -- src/intemporal3/core.clj | 1089 +++++++++++------ src/intemporal3/core2.clj | 558 --------- src/intemporal3/core3.clj | 1620 ------------------------- src/intemporal3/engine.clj | 1 - src/intemporal3/example.clj | 187 +++ src/intemporal3/internal/activity.clj | 69 ++ src/intemporal3/internal/context.clj | 52 + src/intemporal3/internal/engine.clj | 1 + src/intemporal3/internal/error.clj | 58 + src/intemporal3/internal/runtime.clj | 116 ++ src/intemporal3/observer.clj | 142 ++- src/intemporal3/protocol.clj | 54 + src/intemporal3/store.clj | 65 + 21 files changed, 1482 insertions(+), 3503 deletions(-) delete mode 100644 src/detflow/activity.clj delete mode 100644 src/detflow/common.clj delete mode 100644 src/detflow/core.clj delete mode 100644 src/detflow/coregemini.clj delete mode 100644 src/detflow/engine.clj delete mode 100644 src/detflow/example.clj delete mode 100644 src/detflow/runtime.clj delete mode 100644 src/detflow/workflow.clj delete mode 100644 src/intemporal3/core2.clj delete mode 100644 src/intemporal3/core3.clj delete mode 100644 src/intemporal3/engine.clj create mode 100644 src/intemporal3/example.clj create mode 100644 src/intemporal3/internal/activity.clj create mode 100644 src/intemporal3/internal/context.clj create mode 100644 src/intemporal3/internal/engine.clj create mode 100644 src/intemporal3/internal/error.clj create mode 100644 src/intemporal3/internal/runtime.clj create mode 100644 src/intemporal3/store.clj diff --git a/src/detflow/activity.clj b/src/detflow/activity.clj deleted file mode 100644 index 49dd1a2..0000000 --- a/src/detflow/activity.clj +++ /dev/null @@ -1,6 +0,0 @@ -(ns detflow.activity - (:require [detflow.runtime :as rt])) - -(defmacro defactivity [name args & body] - `(swap! rt/activity-registry assoc ~(keyword (str *ns*) (str name)) - (fn ~args ~@body))) \ No newline at end of file diff --git a/src/detflow/common.clj b/src/detflow/common.clj deleted file mode 100644 index 2d7217e..0000000 --- a/src/detflow/common.clj +++ /dev/null @@ -1,44 +0,0 @@ -(ns detflow.common - (:import (clojure.lang IExceptionInfo))) - -(def ^:private suspend-type ::suspend) - -;; The special exception used to pause execution without blocking threads. -(defn suspend! - "Throws a data-carrying exception to pause the workflow." - [wait-id] - (throw (ex-info "Workflow Suspended" - {:type suspend-type - :wait-id wait-id}))) - -(defn suspend? - "Checks if an exception is a valid workflow suspension." - [e] - (and (instance? clojure.lang.ExceptionInfo e) - (= (:type (ex-data e)) suspend-type))) - -(defn get-suspend-id - "Extracts the wait-id from a suspension exception." - [e] - (:wait-id (ex-data e))) - - -;; A wrapper for internal async task identifiers -(defrecord AsyncHandle [id] - Object - (toString [_] - (str ""))) - -(defn async-handle? [obj] - (instance? AsyncHandle obj)) - -;; Protocol for the storage layer -(defprotocol IHistoryStore - (append-event [this workflow-id event]) - (get-history [this workflow-id])) - -;; Protocol for the activity executor -(defprotocol IActivityExecutor - (execute-activity [this activity-name args])) - - diff --git a/src/detflow/core.clj b/src/detflow/core.clj deleted file mode 100644 index 752eb63..0000000 --- a/src/detflow/core.clj +++ /dev/null @@ -1,276 +0,0 @@ -(ns detflow.core - (:import [clojure.lang ExceptionInfo])) - -;; ========================================================= -;; 1. SUSPENSION -;; ========================================================= - -(def ^:private suspend-type ::suspend) - -(defn suspend! [id] - (println "XXX =-======= suspending ======") - (throw (ex-info "Workflow Suspended" - {:type suspend-type :wait-id id}))) - -(defn suspend? [e] - (and (instance? ExceptionInfo e) - (= (:type (ex-data e)) suspend-type))) - -;; ========================================================= -;; 2. RUNTIME CONTEXT -;; ========================================================= - -(def ^:dynamic *ctx* nil) - -(defn ctx [] *ctx*) - -(defn next-id! [] - (swap! (:id-counter (ctx)) inc)) - -(defn peek-history [] - (get (:history (ctx)) @(:cursor (ctx)))) - -(defn consume-history! [] - (swap! (:cursor (ctx)) inc)) - -(defn record! [evt] - (swap! (:events-out (ctx)) conj evt)) - -;; ========================================================= -;; 3. UNIFIED EFFECT ABSTRACTION -;; ========================================================= -;; This is the heart of determinism. -;; Every effect: -;; 1. Schedules exactly once -;; 2. Awaits exactly one matching completion -;; 3. Consumes exactly the events it observes - -(defn effect! - [{:keys [schedule-type schedule-body complete-type result-xform]}] - - ;; scheduling (never suspends) - (let [evt (peek-history) - id (if (= (:type evt) schedule-type) - (:id evt) - (let [id (next-id!)] - (record! (assoc schedule-body - :type schedule-type - :id id)) - id))] - - (when (= (:type evt) schedule-type) - (consume-history!)) - - ;; awaiting (may suspend) - (let [evt2 (peek-history)] - (if (and evt2 - (= (:type evt2) complete-type) - (= (:id evt2) id)) - (do - (consume-history!) - ((or result-xform identity) (:result evt2))) - (suspend! id))))) - -;; ========================================================= -;; 4. WORKFLOW API -;; ========================================================= -(defn activity [name args] - (effect! - {:schedule-type :activity-scheduled - :schedule-body {:name name :args args} - :complete-type :activity-completed - :result-xform :value})) - -(defn sleep [ms] - (effect! - {:schedule {:type :timer-scheduled - :duration ms} - :complete-type :timer-fired - :result-xform :value})) - -;; ========================================================= -;; 5. ASYNC -;; ========================================================= -(defrecord TaskHandle [id]) - -(defn fork [f] - (let [evt (peek-history)] - (if (= (:type evt) :task-forked) - (do - (consume-history!) - (->TaskHandle (:id evt))) - (let [id (next-id!)] - (record! {:type :task-forked :id id}) - (swap! (:tasks (ctx)) assoc id f) - (->TaskHandle id))))) - -(defn join [^TaskHandle h] - (let [evt (peek-history)] - (if (and evt - (= (:type evt) :task-completed) - (= (:id evt) (:id h))) - (do - (consume-history!) - (:result evt)) - (suspend! (:id h))))) - -;; ========================================================= -;; 6. ACTIVITY REGISTRY -;; ========================================================= - -(defonce activity-registry (atom {})) - -(defmacro defactivity [aname args & body] - `(swap! activity-registry - assoc ~(keyword (str *ns*) (name aname)) - (fn ~args ~@body))) - -(defmacro defworkflow [name args & body] - `(defn ~name ~args ~@body)) - -;; ========================================================= -;; 7. HISTORY STORE -;; ========================================================= - -(defprotocol IHistoryStore - (append-event [this wf-id evt]) - (get-history [this wf-id])) - -(defrecord InMemoryStore [store] - IHistoryStore - (append-event [_ id evt] - (swap! store update id (fnil conj []) evt)) - (get-history [_ id] - (get @store id []))) - -;; ========================================================= -;; 8. ACTIVITY EXECUTOR -;; ========================================================= - -(defprotocol IActivityExecutor - (execute-activity [this name args])) - -;; ========================================================= -;; 9. INTERPRETER -;; ========================================================= - -(defn run-pass [workflow runtime] - (binding [*ctx* runtime] - - ;; register main task once - (when-not (contains? @(:tasks runtime) 0) - (swap! (:tasks runtime) assoc 0 workflow)) - - (loop [] - (println "YYY run pass") - (clojure.pprint/pprint (ctx)) - (let [progress? (atom false)] - - (doseq [[tid task] @(:tasks runtime)] - (when-not (contains? @(:results runtime) tid) - (try - (let [res (task)] ;; (task) may suspend execution! - (swap! (:results runtime) assoc tid res) - (record! {:type :task-completed - :id tid - :result res}) - (reset! progress? true)) - (catch Exception e - (when-not (suspend? e) - (throw e)))))) - - (cond - @progress? (recur) - (contains? @(:results runtime) 0) - {:status :done :result (get @(:results runtime) 0)} - :else - {:status :blocked}))))) - -;; ========================================================= -;; 10. SIDE EFFECT PROCESSING -;; ========================================================= - -(defn process-activity - "Executes a scheduled activity and returns a completion event. - Pure function from schedule-event → completion-event." - [executor {:keys [id name args]}] - [{:type :activity-completed - :id id - :result {:value (execute-activity executor name args)}}]) - -;; ========================================================= -;; 11. ENGINE -;; ========================================================= - -(defn start-workflow [store executor workflow args id] - (when (empty? (get-history store id)) - (append-event store id {:type :workflow-start :args args})) - - (let [history (atom (get-history store id)) - start-idx (if (= (:type (first @history)) :workflow-start) 1 0) - max-id (reduce #(max %1 (:id %2 0)) 0 @history) - - runtime {:history history - :cursor (atom start-idx) - :events-out (atom []) - :id-counter (atom (inc max-id)) - :tasks (atom {}) - :results (atom {})}] - - (loop [] - (println "XXX run wf") - (reset! (:history runtime) (get-history store id)) - (reset! (:cursor runtime) start-idx) - (reset! (:events-out runtime) []) - - (let [res (run-pass #(apply workflow args) runtime) - evts @(:events-out runtime) - cmds (filterv #(= (:type %) :activity-scheduled) evts) - done (doall (mapcat #(process-activity executor %) cmds))] - - (doseq [e (concat evts done)] - (append-event store id e)) - - (cond - (= (:status res) :done) (:result res) - (or (seq evts) (seq done)) (recur) - :else (throw (ex-info "Deadlock" {:history @history}))))))) - -;; ========================================================= -;; 12. EXAMPLE -;; ========================================================= - -(defactivity fetch-order [id] - (println ">> Fetch order" id) - {:id id :price 100}) - -(defactivity charge-card [amount] - (println ">> Charge card" amount) - :paid) - -(defworkflow my-flow [id] - (println "Workflow start") - (let [ - ;order (activity :detflow.core.cljc/fetch-order [id]) - order {:price 1} - act (activity :detflow.core/charge-card [(:price order)]) - task (fork (fn call-activity [] act)) - tres (join task)] - - {:status :shipped - :task tres - :order order})) - -(defn -main [] - (println "RESULT:" - (start-workflow (->InMemoryStore (atom {})) - (reify IActivityExecutor - (execute-activity [_ actname args] - (let [act (get @activity-registry actname)] - (apply act args)))) - my-flow - [123] - "my-flow"))) - -(comment) -(-main) diff --git a/src/detflow/coregemini.clj b/src/detflow/coregemini.clj deleted file mode 100644 index 842de11..0000000 --- a/src/detflow/coregemini.clj +++ /dev/null @@ -1,308 +0,0 @@ -(ns detflow.coregemini - - (:import [clojure.lang ExceptionInfo])) - -;; --------------------------------------------------------- -;; 1. COMMON & PROTOCOLS -;; --------------------------------------------------------- - -(def ^:private suspend-type ::suspend) - -(defn suspend! [wait-id] - (throw (ex-info "Workflow Suspended" {:type suspend-type :wait-id wait-id}))) - -(defn suspend? [e] - (and (instance? ExceptionInfo e) - (= (:type (ex-data e)) suspend-type))) - -(defrecord AsyncHandle [id] - Object - (toString [_] (str ""))) - -(defprotocol IHistoryStore - (append-event [this wf-id event]) - (get-history [this wf-id])) - -(defprotocol IActivityExecutor - (execute-activity [this name args])) - -;; --------------------------------------------------------- -;; 2. RUNTIME STATE -;; --------------------------------------------------------- - -(def ^:dynamic *ctx* nil) -(defonce activity-registry (atom {})) - -(defn current-ctx [] - (or *ctx* (throw (ex-info "No active workflow context." {})))) - -(defn next-id! [] - (let [{:keys [id-counter]} (current-ctx)] - (swap! id-counter inc))) - -(defn record-event! [event] - (swap! (:events-out (current-ctx)) conj event)) - -(defn register-task! [id f] - (swap! (:tasks (current-ctx)) assoc id f)) - -(defn peek-history-event [] - (let [{:keys [history cursor]} (current-ctx) - idx @cursor] - (get history idx))) - -(defn consume-history-event! [] - (let [{:keys [cursor]} (current-ctx)] - (swap! cursor inc))) - -(defn find-completed-result [target-id type] - (some (fn [evt] - (when (and (= (:id evt) target-id) (= (:type evt) type)) - (:result evt))) - (:history (current-ctx)))) - -(defn get-signal-payload [name] - (some (fn [evt] - (when (and (= (:type evt) :signal-received) (= (:name evt) name)) - (:payload evt))) - (:history (current-ctx)))) - -;; --------------------------------------------------------- -;; 3. WORKFLOW API -;; --------------------------------------------------------- - -;; Skip "result" events (completions) during replay to find the next "command" -(defn- advance-past-results! [] - (loop [] - (let [evt (peek-history-event)] - (when (and evt (#{:activity-completed :timer-fired :async-completed :signal-received} - (:type evt))) - (consume-history-event!) - (recur))))) - -(defn- get-or-create-handle [expected-type create-fn] - ;(advance-past-results!) - (let [evt (peek-history-event)] - (cond - ;; Case A: New Execution - (nil? evt) - (create-fn) - - ;; Case B: Replay - (= (:type evt) expected-type) - (do (consume-history-event!) - {:id (:id evt) :type expected-type}) - - ;; Case C: Non-Determinism Error - :else - (throw (ex-info "Non-Deterministic Workflow!" - {:expected expected-type :found (:type evt) :event evt}))))) - -(defn activity [name args] - (let [act-key (keyword name)] - (get-or-create-handle :activity-scheduled - (fn [] - (let [id (next-id!)] - (record-event! {:type :activity-scheduled :id id :name act-key :args args}) - {:id id :type :activity-scheduled}))))) - -(defn sleep [ms] - (get-or-create-handle :timer-scheduled - (fn [] - (let [id (next-id!)] - (record-event! {:type :timer-scheduled :id id :duration ms}) - {:id id :type :timer-scheduled})))) - -(defn async [f] - (let [handle (get-or-create-handle :async-started - (fn [] - (let [id (next-id!)] - (record-event! {:type :async-started :id id}) - {:id id :type :async-started})))] - (register-task! (:id handle) f) - (->AsyncHandle (:id handle)))) - - -(defn consume-completion! [id type] - (let [evt (peek-history-event)] - (when (and evt (= (:id evt) id) (= (:type evt) type)) - (consume-history-event!)))) - -(defn await [handle] - (if (instance? AsyncHandle handle) - ;; Internal Async Task - (let [{:keys [task-results]} (current-ctx)] - (if-let [[_ res] (find @task-results (:id handle))] - res - (suspend! (:id handle)))) - - ;; External Event - (let [{:keys [id type]} handle - comp-type (case type - (:activity :activity-scheduled) :activity-completed - (:timer :timer-scheduled) :timer-fired - :async-started :async-completed) - res (find-completed-result id comp-type)] - (if res - (do - (consume-completion! id comp-type) - (:value res)) - (suspend! id))))) - -(defmacro defactivity [name args & body] - `(swap! activity-registry assoc ~(keyword (str *ns*) (str name)) (fn ~args ~@body))) - - -;; --------------------------------------------------------- -;; 4. ENGINE -;; --------------------------------------------------------- - -(defn- run-interpreter-pass - "Runs tasks until blocked or complete. Returns status map." - [workflow-fn runtime] - (binding [*ctx* runtime] - (let [{:keys [tasks task-results]} runtime - main-id 0] - - ;; 1. Boot Main - (when (empty? @tasks) - (register-task! main-id workflow-fn)) - - ;; 2. Micro-Task Loop - (loop [] - (let [;; SORTING IS CRITICAL FOR DETERMINISM - active-tasks (sort (keys @tasks)) - made-progress? (atom false)] - - (doseq [tid active-tasks] - (when-not (contains? @task-results tid) - ;; If completed in history (hydration), restore result immediately - (if-let [hist-res (find-completed-result tid :async-completed)] - (swap! task-results assoc tid (:value hist-res)) - - ;; Else run logic - (try - (let [task-fn (get @tasks tid) - res (task-fn)] - (swap! task-results assoc tid res) - (record-event! {:type :async-completed :id tid :result res}) - (reset! made-progress? true)) - (catch Exception e - (when-not (suspend? e) (throw e))))))) - - (let [current-count (count (keys @tasks)) - prev-count (count active-tasks)] - ;; Recur if internal progress made or new tasks forked - (if (or @made-progress? (> current-count prev-count)) - (do - (println "reinterpreting... " @made-progress? (> current-count prev-count) iteration) - (recur)) - ;; Return status - (if (contains? @task-results main-id) - {:status :completed :result (get @task-results main-id)} - {:status :blocked})))))))) - - -(defn- process-side-effects [executor events] - (keep (fn [evt] - (cond - (= (:type evt) :activity-scheduled) - (let [res (execute-activity executor (:name evt) (:args evt))] - {:type :activity-completed :id (:id evt) :result {:value res}}) - - (= (:type evt) :timer-scheduled) - {:type :timer-fired :id (:id evt) :result {:value :time-up}})) - events)) - -(defn start-workflow [{:keys [store executor]} {:keys [workflow args id]}] - (when (empty? (get-history store id)) - (append-event store id {:type :workflow-start :args args})) - - (loop [iteration 0] - (println "(re)starting workflow, loop " iteration) - (let [history (get-history store id) - start-idx (if (= (:type (first history)) :workflow-start) 1 0) - max-id (reduce #(max %1 (:id %2 0)) 0 history) - - runtime {:history history - :cursor (atom start-idx) - :events-out (atom []) - :id-counter (atom (inc max-id)) - :tasks (atom {}) - :task-results (atom {})}] - - (let [result (run-interpreter-pass #(apply workflow args) runtime) - new-events @(:events-out runtime) - - ;; Identify Side Effects - commands (filterv #(#{:activity-scheduled :timer-scheduled} (:type %)) new-events) - - ;; Execute Side Effects IMMEDIATELY - completions (process-side-effects executor commands)] - - (assert (<= @(:cursor runtime) (count (:history runtime))) - "History cursor ran past history length") - - ;; Commit all new state - (doseq [e new-events] - (println "TRACE adding event" e) - (append-event store id e)) - (doseq [e completions] - (println "TRACE adding completion event" e) - (append-event store id e)) - - (cond - ;; Case 1: Workflow Completed - (= (:status result) :completed) - (:result result) - - ;; Case 2: Progress Made (Internal events OR Side effects finished) - (or (not-empty new-events) - (not-empty completions)) - (recur (inc iteration)) - - ;; Case 3: Deadlock (Blocked with no new events generated) - :else - (throw (ex-info "Deadlock: Workflow suspended." - {:history-len (count history)}))))))) - -;; --------------------------------------------------------- -;; 5. EXAMPLE USER CODE -;; --------------------------------------------------------- - -(defrecord InMemoryStore [store] - IHistoryStore - (append-event [_ id evt] (swap! store update id (fnil conj []) evt)) - (get-history [_ id] (get @store id []))) - -(defactivity fetch-order [id] - (println ">> [Activity] Fetching order:" id) - {:id id :price 100}) - -(defactivity charge-card [amount] - (println ">> [Activity] Charging card:" amount) - :paid) - -(defn my-flow [id] - (println "XXXX enter workflow") - (let [order (await (activity `fetch-order [id])) - ;; Fork an async task - payment-task (async (fn [] - (await (activity `charge-card [(:price order)]))))] - ;; Wait for payment - (await payment-task) - {:status :shipped :order order})) - -(defn -main [] - (let [engine {:store (->InMemoryStore (atom {})) - :executor (reify IActivityExecutor - (execute-activity [_ n args] - (apply (get @activity-registry n) args)))}] - - (println "--- STARTING ---") - (let [res (start-workflow engine {:workflow my-flow :id "wf-1" :args [123]})] - (println "--- DONE ---") - (println "Result:" res)))) - -(comment) -(-main) \ No newline at end of file diff --git a/src/detflow/engine.clj b/src/detflow/engine.clj deleted file mode 100644 index 21f78e3..0000000 --- a/src/detflow/engine.clj +++ /dev/null @@ -1,119 +0,0 @@ -(ns detflow.engine - (:require [detflow.common :as common] - [detflow.runtime :as rt] - [detflow.workflow :as wf])) - -;; --- Storage --- -(defrecord InMemoryStore [store] - common/IHistoryStore - (append-event [_ wf-id event] - (swap! store update wf-id (fnil conj []) event)) - (get-history [_ wf-id] - (get @store wf-id []))) - -(defn in-memory-store [] (->InMemoryStore (atom {}))) - -;; --- Logic --- - -(defn- run-interpreter-step - [workflow-fn runtime] - (binding [rt/*ctx* runtime] - (let [tasks (:tasks runtime) - task-results (:task-results runtime) - main-id 0] - - (when (empty? @tasks) - (rt/register-task! main-id workflow-fn)) - - (loop [made-progress? true] - (if-not made-progress? - :blocked - - (let [snapshot-tasks (keys @tasks) - count-before (count snapshot-tasks) - progress (atom false)] - - (doseq [tid snapshot-tasks] - (when-not (contains? @task-results tid) - (try - (let [res ((get @tasks tid))] - (swap! task-results assoc tid res) - (rt/record-event! {:type :async-completed :id tid :result res}) - (reset! progress true)) - (catch Exception e - (if (common/suspend? e) - nil ;; Task suspended, this is normal - (throw e)))))) - - ;; Check if new tasks were registered (e.g. via wf/async) - (let [count-after (count (keys @tasks)) - new-tasks-added? (> count-after count-before)] - (recur (or @progress new-tasks-added?))))))))) - -(defn- process-side-effects [executor workflow-id events] - (doseq [evt events] - (cond - (= (:type evt) :activity-scheduled) - (let [res (common/execute-activity executor (:name evt) (:args evt))] - {:type :activity-completed :id (:id evt) :result {:value res}}) - - (= (:type evt) :timer-scheduled) - {:type :timer-fired :id (:id evt) :result {:value :time-up}} - - :else nil))) - -(defn create [{:keys [persistence]}] - {:store persistence - :executor (reify common/IActivityExecutor - (execute-activity [_ name args] - (if-let [impl (get @rt/activity-registry name)] - (apply impl args) - (throw (ex-info "Activity not found" {:name name})))))}) - -(defn start-workflow [engine {:keys [workflow id args]}] - (let [store (:store engine) - executor (:executor engine)] - - (when (empty? (common/get-history store id)) - (common/append-event store id {:type :workflow-start :args args})) - - (loop [iteration 0] - (let [history (common/get-history store id) - - ;; 1. Skip :workflow-start - start-cursor (if (= (:type (first history)) :workflow-start) 1 0) - - ;; 2. Initialize ID counter to avoid collisions with history - max-id (reduce (fn [m e] (max m (:id e 0))) 0 history) - - runtime {:history history - :cursor (atom start-cursor) - :events-out (atom []) - :id-counter (atom (inc max-id)) - :tasks (atom {}) - :task-results (atom {})}] - - (let [result (run-interpreter-step #(apply workflow args) runtime)] - (cond - (= (:status result) :completed) - (:result result) - - (= result :blocked) - (let [new-events @(:events-out runtime) - ;; Include async-started as valid progress - commands (filter #(#{:activity-scheduled :timer-scheduled :async-started} (:type %)) new-events)] - - (if (empty? commands) - (throw (ex-info "Deadlock: Workflow suspended but no commands generated." - {:history-len (count history) - :new-events new-events})) - - (let [side-effects (filter #(#{:activity-scheduled :timer-scheduled} (:type %)) commands) - completions (keep #(process-side-effects executor id [%]) side-effects)] - (doseq [evt new-events] (common/append-event store id evt)) - (doseq [evt completions] (common/append-event store id evt)) - (recur (inc iteration))))))))))) - -(defn signal [engine workflow-id signal-name payload] - (common/append-event (:store engine) workflow-id - {:type :signal-received :name signal-name :payload payload})) \ No newline at end of file diff --git a/src/detflow/example.clj b/src/detflow/example.clj deleted file mode 100644 index 0b7a940..0000000 --- a/src/detflow/example.clj +++ /dev/null @@ -1,49 +0,0 @@ -(ns detflow.example - (:require [detflow.workflow :as wf] - [detflow.activity :as act] - [detflow.engine :as engine])) - -;; --- Define Activities --- - -(act/defactivity fetch-order [id] - (println ">> IO: Fetching order" id) - {:id id :item "Book" :price 100}) - -(act/defactivity charge-card [amount] - (println ">> IO: Charging card" amount) - {:status :paid :tx-id (rand-int 9999)}) - -(act/defactivity send-email [email] - (println ">> IO: Sending email to" email) - :sent) - -;; --- Define Workflow --- - -(wf/defworkflow order-flow [order-id] - (let [order (wf/await (wf/activity `fetch-order [order-id])) - - ;; Async fork example - payment-task (wf/async (fn [] - (wf/await (wf/activity `charge-card [(:price order)])))) - - ;; Do something else while payment processes - _ (wf/await (wf/sleep 100)) - - payment (wf/await `payment-task)] - - (wf/await (wf/activity `send-email "user@example.com")) - - {:order order :payment payment})) - -;; --- Run It --- - -(let [eng (engine/create {:persistence (engine/in-memory-store)})] - - (println "--- Starting Workflow ---") - (let [result (engine/start-workflow - eng - {:workflow order-flow - :id "wf-1" - :args [123]})] - (println "--- Workflow Completed ---") - (println "Result:" result))) \ No newline at end of file diff --git a/src/detflow/runtime.clj b/src/detflow/runtime.clj deleted file mode 100644 index 943a716..0000000 --- a/src/detflow/runtime.clj +++ /dev/null @@ -1,67 +0,0 @@ -(ns detflow.runtime - (:require [detflow.common :as common])) - -;; Global registry for activity implementations -(defonce activity-registry (atom {})) - -;; The Dynamic Context binding -;; Contains: -;; :history - Full event history [vector] -;; :cursor - Current index in history [atom] -;; :events-out - New events generated during this run [atom] -;; :tasks - Map of {task-id -> task-fn} for async concurrency -;; :task-results - Map of {task-id -> result} -;; :id-counter - Deterministic ID generator [atom] -;; :waiting - Set of IDs currently awaited (for debugging) -(def ^:dynamic *ctx* nil) - -(defn current-ctx [] - (or *ctx* (throw (ex-info "No active workflow context. Are you inside a workflow?" {})))) - -(defn next-id! [] - (let [{:keys [id-counter]} (current-ctx)] - (swap! id-counter inc))) - -(defn record-event! [event] - (let [{:keys [events-out]} (current-ctx)] - (swap! events-out conj event) - event)) - -(defn register-task! [task-id task-fn] - (let [{:keys [tasks]} (current-ctx)] - (swap! tasks assoc task-id task-fn))) - -(defn get-history-event [] - "Reads the next event from history if available (Replay mode)." - (let [{:keys [history cursor]} (current-ctx) - idx @cursor] - (when (< idx (count history)) - (let [evt (nth history idx)] - (swap! cursor inc) - evt)))) - -(defn peek-history-event [] - "Looks at next event without consuming (for checking completion)." - (let [{:keys [history cursor]} (current-ctx) - idx @cursor] - (when (< idx (count history)) - (nth history idx)))) - -(defn find-completed-result - "Scans history for a completion event for a specific ID." - [target-id type] - (let [{:keys [history]} (current-ctx)] - (some (fn [evt] - (when (and (= (:id evt) target-id) - (= (:type evt) type)) - (:result evt))) - history))) - -(defn get-signal-payload [signal-name] - "Scans history for signals." - (let [{:keys [history]} (current-ctx)] - (some (fn [evt] - (when (and (= (:type evt) :signal-received) - (= (:name evt) signal-name)) - (:payload evt))) - history))) \ No newline at end of file diff --git a/src/detflow/workflow.clj b/src/detflow/workflow.clj deleted file mode 100644 index 4394728..0000000 --- a/src/detflow/workflow.clj +++ /dev/null @@ -1,104 +0,0 @@ -(ns detflow.workflow - (:require [detflow.runtime :as rt] - [detflow.common :as common]) - (:import [detflow.common AsyncHandle])) - -(defmacro defworkflow [name args & body] - `(defn ~name ~args ~@body)) - -;; Events that are NOT commands and should be skipped by the replay cursor -(def ^:private result-event-types - #{:activity-completed - :timer-fired - :async-completed - :signal-received}) - -(defn- advance-past-results! - "Advances the history cursor past any completion/result events." - [] - (loop [] - (let [evt (rt/peek-history-event)] - (when (and evt (contains? result-event-types (:type evt))) - (rt/get-history-event) ;; consume and discard - (recur))))) -(defn- get-or-create-handle - [expected-type create-fn] - ;; 1. Ensure we are looking at a Command, not a Result - (advance-past-results!) - - (let [existing-event (rt/peek-history-event)] - (cond - ;; End of history -> Create new - (nil? existing-event) - (create-fn) - - ;; Match -> Replay - (= (:type existing-event) expected-type) - (do - (rt/get-history-event) ;; consume - {:id (:id existing-event) :type expected-type}) - - ;; Mismatch -> Error - :else - (throw (ex-info "Non-Deterministic Workflow detected!" - {:expected expected-type - :found (:type existing-event) - :event existing-event}))))) - -(defn activity - ([activity-sym args] (activity {} activity-sym args)) - ([opts activity-sym args] - (let [act-name (keyword (str (namespace activity-sym)) (str (name activity-sym)))] - (get-or-create-handle - :activity-scheduled - (fn [] - (let [new-id (rt/next-id!)] - (rt/record-event! {:type :activity-scheduled - :id new-id - :name act-name - :args args}) - {:id new-id :type :activity-scheduled})))))) - -(defn sleep [ms] - (get-or-create-handle - :timer-scheduled - (fn [] - (let [new-id (rt/next-id!)] - (rt/record-event! {:type :timer-scheduled :id new-id :duration ms}) - {:id new-id :type :timer-scheduled})))) - -(defn async [f] - (let [handle (get-or-create-handle - :async-started - (fn [] - (let [new-id (rt/next-id!)] - (rt/record-event! {:type :async-started :id new-id}) - {:id new-id :type :async-started})))] - (rt/register-task! (:id handle) f) - (common/->AsyncHandle (:id handle)))) - -(defn await [handle] - (if (instance? AsyncHandle handle) - (let [{:keys [task-results]} (rt/current-ctx)] - (if-let [[_ res] (find @task-results (:id handle))] - res - (common/suspend! (:id handle)))) - - (let [{:keys [id type]} handle - completion-type (case type - (:activity :activity-scheduled) :activity-completed - (:timer :timer-scheduled) :timer-fired - :async-started :async-completed) - result (rt/find-completed-result id completion-type)] - - (if result - (:value result) - (common/suspend! id))))) - -(defn await-signal [signal-name] - (if-let [payload (rt/get-signal-payload signal-name)] - payload - (common/suspend! (str "signal:" signal-name)))) - -(defn all [& handles] - (doall (map await handles))) \ No newline at end of file diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index 3e1474b..736aedb 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -1,135 +1,63 @@ -(ns intemporal3.core) - -;; ============================================================================ -;; Protocols -;; ============================================================================ - -(defprotocol IStore - "Protocol for workflow persistence" - (load-history [store workflow-id] "Load history for a workflow") - (save-event [store workflow-id event] "Append an event to workflow history") - (get-pending-signals [store workflow-id] "Get pending signals for workflow") - (add-signal [store workflow-id signal-name payload] "Add a signal to workflow") - (consume-signal [store workflow-id signal-name] "Consume and remove a signal")) - -(defprotocol IActivityExecutor - "Protocol for executing activities" - (execute-activity [executor activity-name args] "Execute an activity with given args")) - -;; ============================================================================ -;; Suspension Exceptions -;; ============================================================================ - -(defn- make-suspension [type data] - (ex-info "Workflow suspended" {:type type :data data})) - -(defn- suspension? [e] - (and (instance? clojure.lang.ExceptionInfo e) - (= "Workflow suspended" (.getMessage e)))) - -(defn- suspension-type [e] - (-> e ex-data :type)) - -(defn- suspension-data [e] - (-> e ex-data :data)) - -;; ============================================================================ -;; Dynamic Context -;; ============================================================================ - -(def ^:dynamic *workflow-context* nil) - -(defn- current-context [] - (or *workflow-context* - (throw (ex-info "Not in workflow context" {})))) - -(defn- next-seq! [] - (let [ctx (current-context)] - (let [seq @(:seq-counter ctx)] - (swap! (:seq-counter ctx) inc) - seq))) - -(defn- find-event [history event-type seq-num] - (->> history - (filter #(and (= (:event-type %) event-type) - (= (:seq %) seq-num))) - first)) - -(defn- add-pending-event! [event] - (let [ctx (current-context)] - (swap! (:pending-events ctx) conj event))) - -;; ============================================================================ -;; In-Memory Store Implementation -;; ============================================================================ - -(defrecord InMemoryStore [state] - IStore - (load-history [_ workflow-id] - (get-in @state [:workflows workflow-id :history] [])) - - (save-event [_ workflow-id event] - (swap! state update-in [:workflows workflow-id :history] - (fnil conj []) event) - event) - - (get-pending-signals [_ workflow-id] - (get-in @state [:workflows workflow-id :signals] {})) - - (add-signal [_ workflow-id signal-name payload] - (swap! state update-in [:workflows workflow-id :signals signal-name] - (fnil conj []) payload)) - - (consume-signal [_ workflow-id signal-name] - (let [signals (get-in @state [:workflows workflow-id :signals signal-name])] - (when (seq signals) - (swap! state update-in [:workflows workflow-id :signals signal-name] - (comp vec rest)) - (first signals))))) - -;; ============================================================================ -;; Activity Registry -;; ============================================================================ - -(defonce activity-registry (atom {})) - -(defn register-activity! [f] - (let [name (str (symbol f))] - (swap! activity-registry assoc name f) - name)) - -(defn- get-activity-name [f] - (let [name (str (symbol f))] - (when-not (contains? @activity-registry name) - (register-activity! f)) - name)) +(ns intemporal3.core + (:require [intemporal3.internal.error :as error] + [intemporal3.internal.context :as ctx] + [intemporal3.internal.activity :as a] + [intemporal3.internal.runtime :as runtime] + [intemporal3.protocol :as p] + [intemporal3.store :as store] + [intemporal3.observer :as obs])) ;; ============================================================================ ;; Core Workflow Operations ;; ============================================================================ (defn stub - "Create a stubbed version of an activity function for use in workflows" - [activity-fn] - (let [activity-name (get-activity-name activity-fn)] + "Create a stubbed version of an activity function for use in workflows. + Options: + - :timeout-ms - timeout for this activity (overrides default) + - :retry-policy - retry policy for this activity" + [activity-fn & {:keys [timeout-ms retry-policy]}] + (let [ctx (ctx/current-context) + registry (:registry ctx) + activity-name (a/ensure-registered! registry activity-fn) + activity-info (a/get-activity-info registry activity-name) + effective-timeout (or timeout-ms (:timeout-ms activity-info)) + effective-retry (or retry-policy (:retry-policy activity-info))] (fn [& args] - (let [ctx (current-context) - seq-num (next-seq!) + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) history @(:history ctx) - existing (find-event history :activity-completed seq-num)] - (if existing + existing (ctx/find-event history :activity-completed seq-num) + existing-failed (ctx/find-event history :activity-failed seq-num)] + (cond ;; Replay: return cached result + existing (:result existing) + + ;; Replay: throw cached error + existing-failed + (throw (error/map->exception (:error existing-failed))) + ;; Execute: need to run the activity + :else (let [scheduled-event {:event-type :activity-scheduled :seq seq-num :activity-name activity-name :args (vec args) + :timeout-ms effective-timeout + :retry-policy (when effective-retry + {:max-attempts (:max-attempts effective-retry) + :backoff-ms (:backoff-ms effective-retry)}) :timestamp (System/currentTimeMillis)}] - (add-pending-event! scheduled-event) - (throw (make-suspension :activity {:seq seq-num - :activity-name activity-name - :args (vec args)})))))))) + (ctx/add-pending-event! scheduled-event) + (ctx/notify-observer p/on-activity-scheduled + (:workflow-id ctx) seq-num activity-name (vec args)) + (throw (error/make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy effective-retry})))))))) ;; ============================================================================ ;; Async Support @@ -138,62 +66,150 @@ (defrecord AsyncHandle [seq-num]) (defn async - "Schedule an async operation (thunk) for later execution" + "Schedule an async operation (thunk) for later execution. + The thunk should contain a single activity call." [thunk] - (let [ctx (current-context) - seq-num (next-seq!) + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) history @(:history ctx) - existing (find-event history :async-started seq-num)] - (if existing - ;; Already started, return handle + existing-completed (ctx/find-event history :async-completed seq-num) + existing-failed (ctx/find-event history :async-failed seq-num) + existing-started (ctx/find-event history :async-started seq-num)] + (cond + ;; Already completed - just return handle + existing-completed + (->AsyncHandle seq-num) + + ;; Already failed - return handle (will throw on join) + existing-failed (->AsyncHandle seq-num) - ;; Need to start - (let [event {:event-type :async-started - :seq seq-num - :timestamp (System/currentTimeMillis)}] - (add-pending-event! event) + + ;; Already started but not completed - return handle (will block on join) + existing-started + (->AsyncHandle seq-num) + + ;; Need to start - record and try to capture what activity it needs + :else + (let [start-event {:event-type :async-started + :seq seq-num + :timestamp (System/currentTimeMillis)}] + (ctx/add-pending-event! start-event) + (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) ;; Try to execute the thunk to see what activity it wants (try (thunk) + ;; If thunk completes synchronously (all replayed), just return handle (->AsyncHandle seq-num) (catch Exception e - (if (suspension? e) - ;; The thunk suspended, record its suspension data - (let [suspension-info (suspension-data e)] - (add-pending-event! {:event-type :async-pending - :seq seq-num - :suspension suspension-info - :timestamp (System/currentTimeMillis)}) - (throw (make-suspension :async-pending {:handle-seq seq-num - :inner suspension-info}))) + (if (error/suspension? e) + ;; The thunk suspended on an activity - capture it for parallel execution + (let [suspension-info (error/suspension-data e)] + (ctx/add-pending-async! {:handle-seq seq-num + :activity-name (:activity-name suspension-info) + :activity-seq (:seq suspension-info) + :args (:args suspension-info) + :timeout-ms (:timeout-ms suspension-info) + :retry-policy (:retry-policy suspension-info)}) + ;; Return handle - we'll batch execute later + (->AsyncHandle seq-num)) (throw e)))))))) (defn join - "Wait for an async handle to complete" + "Wait for an async handle to complete. + Throws if the async operation failed." [handle] - (let [ctx (current-context) + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) handle-seq (:seq-num handle) history @(:history ctx) - completed (find-event history :async-completed handle-seq)] - (if completed + completed (ctx/find-event history :async-completed handle-seq) + failed (ctx/find-event history :async-failed handle-seq)] + (cond + completed (:result completed) - (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) + + failed + (throw (error/async-failed-exception handle-seq (:error failed))) + + :else + (throw (error/make-suspension :join-pending {:handle-seq handle-seq}))))) + +(defn join-all + "Wait for multiple async handles to complete. + Returns a vector of results in the same order as handles. + Throws if any async operation failed." + [handles] + (mapv join handles)) + +(defn join-any + "Wait for any of the async handles to complete. + Returns {:index idx :result result} for the first completed. + Note: In deterministic replay, this will always return the same result." + [handles] + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) + history @(:history ctx) + existing (ctx/find-event history :join-any-completed seq-num)] + (if existing + {:index (:index existing) + :result (:result existing)} + ;; Check if any are already complete + (let [completed-idx (first + (keep-indexed + (fn [idx handle] + (when (ctx/find-event history :async-completed (:seq-num handle)) + idx)) + handles))] + (if completed-idx + (let [result (join (nth handles completed-idx))] + (ctx/add-pending-event! {:event-type :join-any-completed + :seq seq-num + :index completed-idx + :result result + :timestamp (System/currentTimeMillis)}) + {:index completed-idx :result result}) + (throw (error/make-suspension :join-any-pending + {:seq seq-num + :handle-seqs (mapv :seq-num handles)}))))))) ;; ============================================================================ ;; Signals ;; ============================================================================ (defn wait-for-signal - "Wait for a signal with the given name" + "Wait for a signal with the given name. + Returns the signal payload when received." [signal-name] - (let [ctx (current-context) - seq-num (next-seq!) + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) history @(:history ctx) - existing (find-event history :signal-received seq-num)] + existing (ctx/find-event history :signal-received seq-num)] (if existing (:payload existing) - (throw (make-suspension :wait-signal {:seq seq-num - :signal-name signal-name}))))) + (throw (error/make-suspension :wait-signal {:seq seq-num + :signal-name signal-name}))))) + +(defn wait-for-signal-with-timeout + "Wait for a signal with timeout. + Returns {:received true :payload ...} or {:received false} on timeout." + [signal-name timeout-ms] + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) + history @(:history ctx) + existing (ctx/find-event history :signal-wait-completed seq-num)] + (if existing + (if (:received existing) + {:received true :payload (:payload existing)} + {:received false}) + (throw (error/make-suspension :wait-signal-timeout + {:seq seq-num + :signal-name signal-name + :timeout-ms timeout-ms + :deadline (+ (System/currentTimeMillis) timeout-ms)}))))) ;; ============================================================================ ;; Timers @@ -202,19 +218,57 @@ (defn sleep "Sleep for specified milliseconds" [ms] - (let [ctx (current-context) - seq-num (next-seq!) + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) history @(:history ctx) - existing (find-event history :timer-fired seq-num)] + existing (ctx/find-event history :timer-fired seq-num)] (if existing nil (let [fire-at (+ (System/currentTimeMillis) ms)] - (add-pending-event! {:event-type :timer-scheduled + (ctx/add-pending-event! {:event-type :timer-scheduled + :seq seq-num + :fire-at fire-at + :duration-ms ms + :timestamp (System/currentTimeMillis)}) + (ctx/notify-observer p/on-timer-scheduled (:workflow-id ctx) seq-num fire-at) + (throw (error/make-suspension :timer {:seq seq-num + :fire-at fire-at})))))) + +;; ============================================================================ +;; Child Workflows +;; ============================================================================ + +(defn run-child-workflow + "Run another workflow as a child workflow. + The child workflow has its own history but is tracked by the parent." + [child-workflow-fn args & {:keys [child-id]}] + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) + history @(:history ctx) + child-wf-id (or child-id (str (:workflow-id ctx) "/child-" seq-num)) + existing (ctx/find-event history :child-workflow-completed seq-num) + existing-failed (ctx/find-event history :child-workflow-failed seq-num)] + (cond + existing + (:result existing) + + existing-failed + (throw (error/map->exception (:error existing-failed))) + + :else + (let [scheduled-event {:event-type :child-workflow-scheduled :seq seq-num - :fire-at fire-at - :timestamp (System/currentTimeMillis)}) - (throw (make-suspension :timer {:seq seq-num - :fire-at fire-at})))))) + :child-workflow-id child-wf-id + :args (vec args) + :timestamp (System/currentTimeMillis)}] + (ctx/add-pending-event! scheduled-event) + (throw (error/make-suspension :child-workflow + {:seq seq-num + :child-workflow-id child-wf-id + :workflow-fn child-workflow-fn + :args args})))))) ;; ============================================================================ ;; Workflow Execution Engine @@ -223,145 +277,451 @@ (defn- execute-workflow-fn [workflow-fn args] (try {:status :completed - :result (apply workflow-fn args)} + :result (apply workflow-fn args) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} (catch Exception e - (if (suspension? e) + (cond + (error/suspension? e) {:status :suspended - :suspension-type (suspension-type e) - :suspension-data (suspension-data e)} + :suspension-type (error/suspension-type e) + :suspension-data (error/suspension-data e) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} + + (error/cancelled-exception? e) + {:status :cancelled + :pending-events @(:pending-events (ctx/current-context))} + + :else {:status :failed - :error e})))) - -(defn- process-pending-activity [store executor workflow-id suspension-data pending-events] - (let [{:keys [seq activity-name args]} suspension-data - result (execute-activity executor activity-name args) - completed-event {:event-type :activity-completed - :seq seq - :activity-name activity-name - :result result - :timestamp (System/currentTimeMillis)}] + :error e + :pending-events @(:pending-events (ctx/current-context))})))) + +(defn- execute-with-retry + "Execute an activity with retry policy" + [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] + (if (nil? retry-policy) + ;; No retry - execute once + (let [start (System/currentTimeMillis)] + (when observer + (p/on-activity-started observer workflow-id seq-num activity-name)) + (try + (let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-failed observer workflow-id seq-num activity-name + (error/throwable->map e) duration)) + {:status :failed :error (error/throwable->map e) :duration duration})))) + ;; With retry + (loop [attempt 1] + (let [start (System/currentTimeMillis) + _ (when observer + (p/on-activity-started observer workflow-id seq-num activity-name)) + exec-result (try + (let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration :attempts attempt}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start) + error-map (error/throwable->map e)] + (when observer + (p/on-activity-failed observer workflow-id seq-num activity-name error-map duration)) + {:status :retry-or-fail + :error error-map + :exception e + :duration duration})))] + (case (:status exec-result) + :success + exec-result + + :retry-or-fail + (if (a/should-retry? retry-policy (:exception exec-result) attempt) + (do + (Thread/sleep (long (a/calculate-backoff retry-policy attempt))) + (recur (inc attempt))) + {:status :failed + :error (:error exec-result) + :duration (:duration exec-result) + :attempts attempt})))))) + +(defn- process-pending-activity [store executor workflow-id suspension-data pending-events observer] + (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data + exec-result (execute-with-retry executor activity-name args timeout-ms + retry-policy observer workflow-id seq)] ;; Save all pending events first - (doseq [evt pending-events] - (save-event store workflow-id evt)) - ;; Then save the completion - (save-event store workflow-id completed-event) - :continue)) + (p/save-events store workflow-id pending-events) + ;; Then save the completion or failure + (if (= :success (:status exec-result)) + (do + (p/save-event store workflow-id {:event-type :activity-completed + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (p/save-event store workflow-id {:event-type :activity-failed + :seq seq + :activity-name activity-name + :error (:error exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue)))) -(defn- process-timer [store workflow-id suspension-data pending-events] +(defn- process-pending-asyncs-parallel + "Process all pending async operations in parallel" + [store executor workflow-id pending-asyncs pending-events observer] + (when (seq pending-asyncs) + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + + ;; Execute all activities in parallel + (let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] + {:activity-name activity-name + :args args + :timeout-ms timeout-ms}) + pending-asyncs) + results (p/execute-activities-parallel executor activities) + now (System/currentTimeMillis) + + ;; Create completion events for both activities and async handles + completion-events + (mapcat (fn [async-info result] + (when observer + (if (= :success (:status result)) + (p/on-async-completed observer workflow-id + (:handle-seq async-info) (:result result)) + (p/on-async-failed observer workflow-id + (:handle-seq async-info) (:error result)))) + (if (= :success (:status result)) + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result (:result result) + :duration-ms (:duration result) + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :result (:result result) + :timestamp now}] + [{:event-type :activity-failed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :error (:error result) + :timestamp now} + {:event-type :async-failed + :seq (:handle-seq async-info) + :error (:error result) + :timestamp now}])) + pending-asyncs results)] + (p/save-events store workflow-id completion-events))) + :continue) + +(defn- process-timer [store scheduler workflow-id suspension-data pending-events + wake-fn observer] (let [{:keys [seq fire-at]} suspension-data now (System/currentTimeMillis)] ;; Save pending events - (doseq [evt pending-events] - (save-event store workflow-id evt)) + (p/save-events store workflow-id pending-events) (if (>= now fire-at) (do - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp now}) + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + (when observer + (p/on-timer-fired observer workflow-id seq)) :continue) - ;; Timer not ready - in real impl would schedule wake-up + ;; Schedule timer and return wait status (do - (Thread/sleep (- fire-at now)) - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- process-signal [store workflow-id suspension-data pending-events] + (p/schedule-timer scheduler workflow-id seq fire-at + (fn [] + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-timer-fired observer workflow-id seq)) + (when wake-fn (wake-fn)))) + :wait-timer)))) + +(defn- process-signal [store workflow-id suspension-data pending-events observer] (let [{:keys [seq signal-name]} suspension-data] ;; Save pending events - (doseq [evt pending-events] - (save-event store workflow-id evt)) - (if-let [payload (consume-signal store workflow-id signal-name)] + (p/save-events store workflow-id pending-events) + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] (do - (save-event store workflow-id {:event-type :signal-received - :seq seq - :signal-name signal-name - :payload payload - :timestamp (System/currentTimeMillis)}) + (p/save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) :continue) :wait-signal))) -(defn- process-async-pending [store executor workflow-id suspension-data pending-events] - (let [{:keys [handle-seq inner]} suspension-data] - ;; Save pending events - (doseq [evt pending-events] - (save-event store workflow-id evt)) - ;; Process the inner suspension (which is an activity) - (let [{:keys [seq activity-name args]} inner - result (execute-activity executor activity-name args)] - (save-event store workflow-id {:event-type :activity-completed - :seq seq - :result result - :timestamp (System/currentTimeMillis)}) - (save-event store workflow-id {:event-type :async-completed - :seq handle-seq - :result result - :timestamp (System/currentTimeMillis)}) - :continue))) - -(defn- process-join-pending [store workflow-id suspension-data pending-events] - (let [{:keys [handle-seq]} suspension-data - history (load-history store workflow-id) - completed (find-event history :async-completed handle-seq)] - (doseq [evt pending-events] - (save-event store workflow-id evt)) - (if completed - :continue - :wait-async))) - -(defn- run-workflow-loop [store executor workflow-id workflow-fn args max-iterations] +(defn- process-signal-with-timeout [store scheduler workflow-id suspension-data + pending-events wake-fn observer] + (let [{:keys [seq signal-name deadline]} suspension-data + now (System/currentTimeMillis)] + (p/save-events store workflow-id pending-events) + ;; Check if signal already available + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp now}) + (when observer + (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + :continue) + ;; Check if already timed out + (if (>= now deadline) + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp now}) + :continue) + ;; Schedule timeout + (do + (p/schedule-timer scheduler workflow-id seq deadline + (fn [] + ;; Check one more time for signal + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp (System/currentTimeMillis)})) + (when wake-fn (wake-fn)))) + :wait-signal-timeout))))) + +(defn- process-join-pending [store executor workflow-id suspension-data pending-events + pending-asyncs observer] + (let [{:keys [handle-seq]} suspension-data] + ;; First, process any pending asyncs that haven't been executed yet + (if (seq pending-asyncs) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer) + :continue) + ;; else + (do + (when (seq pending-events) + (p/save-events store workflow-id pending-events)) + ;; Check if the handle is now complete + (let [history (p/load-history store workflow-id) + completed (ctx/find-event history :async-completed handle-seq) + failed (ctx/find-event history :async-failed handle-seq)] + (if (or completed failed) + :continue + :wait-async)))))) + +(declare run-workflow-internal) + +(defn- process-child-workflow [store executor scheduler registry workflow-id + suspension-data pending-events observer] + (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] + (p/save-events store workflow-id pending-events) + ;; Execute child workflow synchronously for now + ;; In a real implementation, this could be async + (try + (let [result (run-workflow-internal store executor scheduler registry + child-workflow-id workflow-fn args + {:observer observer + :max-iterations 1000})] + (if (= :completed (:status result)) + (do + (p/save-event store workflow-id {:event-type :child-workflow-completed + :seq seq + :child-workflow-id child-workflow-id + :result (:result result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error {:status (:status result)} + :timestamp (System/currentTimeMillis)}) + :continue))) + (catch Exception e + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (error/throwable->map e) + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn- run-workflow-internal + [store executor scheduler registry workflow-id workflow-fn args + {:keys [observer max-iterations wake-fn] + :or {max-iterations 1000}}] (loop [iteration 0] (when (>= iteration max-iterations) - (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id}))) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id + :iterations iteration}))) + + ;; Check cancellation at start of each iteration + (when (p/is-cancelled? store workflow-id) + (when observer + (p/on-workflow-cancelled observer workflow-id)) + (p/save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) - (let [history (load-history store workflow-id) + (let [history (p/load-history store workflow-id) pending-events (atom []) + pending-asyncs (atom []) ctx {:history (atom history) :workflow-id workflow-id :seq-counter (atom 0) - :pending-events pending-events} - exec-result (binding [*workflow-context* ctx] + :pending-events pending-events + :pending-asyncs pending-asyncs + :store store + :registry registry + :observer observer} + exec-result (binding [ctx/*workflow-context* ctx] (execute-workflow-fn workflow-fn args))] (case (:status exec-result) :completed (do - (save-event store workflow-id {:event-type :workflow-completed - :result (:result exec-result) - :timestamp (System/currentTimeMillis)}) + ;; Process any remaining pending asyncs before completing + (when (seq (:pending-asyncs exec-result)) + (process-pending-asyncs-parallel store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + observer)) + (when (and (empty? (:pending-asyncs exec-result)) + (seq (:pending-events exec-result))) + (p/save-events store workflow-id (:pending-events exec-result))) + (p/save-event store workflow-id {:event-type :workflow-completed + :result (:result exec-result) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-completed observer workflow-id (:result exec-result))) {:status :completed :result (:result exec-result)}) + :cancelled + (do + (p/save-events store workflow-id (:pending-events exec-result)) + (p/save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-cancelled observer workflow-id)) + {:status :cancelled + :workflow-id workflow-id}) + :suspended - (let [action (case (:suspension-type exec-result) - :activity (process-pending-activity store executor workflow-id - (:suspension-data exec-result) - @pending-events) - :timer (process-timer store workflow-id - (:suspension-data exec-result) - @pending-events) - :wait-signal (process-signal store workflow-id + (let [pending-asyncs-list (:pending-asyncs exec-result) + pending-events-list (:pending-events exec-result) + + _ (when observer + (p/on-workflow-suspended observer workflow-id (:suspension-type exec-result))) + + action (case (:suspension-type exec-result) + :activity + (if (seq pending-asyncs-list) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer) + :continue) + (process-pending-activity store executor workflow-id + (:suspension-data exec-result) + pending-events-list + observer)) + + :timer + (process-timer store scheduler workflow-id + (:suspension-data exec-result) + pending-events-list + wake-fn + observer) + + :wait-signal + (process-signal store workflow-id + (:suspension-data exec-result) + pending-events-list + observer) + + :wait-signal-timeout + (process-signal-with-timeout store scheduler workflow-id (:suspension-data exec-result) - @pending-events) - :async-pending (process-async-pending store executor workflow-id - (:suspension-data exec-result) - @pending-events) - :join-pending (process-join-pending store workflow-id - (:suspension-data exec-result) - @pending-events))] + pending-events-list + wake-fn + observer) + + :join-pending + (process-join-pending store executor workflow-id + (:suspension-data exec-result) + pending-events-list + pending-asyncs-list + observer) + + :join-any-pending + (do + (when (seq pending-asyncs-list) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer)) + :continue) + + :child-workflow + (process-child-workflow store executor scheduler registry + workflow-id + (:suspension-data exec-result) + pending-events-list + observer))] + + (when observer + (when (= action :continue) + (p/on-workflow-resumed observer workflow-id))) + (case action :continue (recur (inc iteration)) :wait-signal {:status :waiting-signal :workflow-id workflow-id} + :wait-signal-timeout {:status :waiting-signal-timeout + :workflow-id workflow-id} + :wait-timer {:status :waiting-timer + :workflow-id workflow-id} :wait-async {:status :waiting-async :workflow-id workflow-id})) :failed (do - (save-event store workflow-id {:event-type :workflow-failed - :error (str (:error exec-result)) - :timestamp (System/currentTimeMillis)}) + (p/save-events store workflow-id (:pending-events exec-result)) + (p/save-event store workflow-id {:event-type :workflow-failed + :error (error/throwable->map (:error exec-result)) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-failed observer workflow-id (error/throwable->map (:error exec-result)))) {:status :failed :error (:error exec-result)}))))) @@ -370,115 +730,144 @@ ;; ============================================================================ (defn start-workflow - "Start a workflow execution" - ([store executor workflow-fn args] - (start-workflow store executor workflow-fn args (str (random-uuid)))) - ([store executor workflow-fn args workflow-id] - (start-workflow store executor workflow-fn args workflow-id 1000)) - ([store executor workflow-fn args workflow-id max-iterations] - (save-event store workflow-id {:event-type :workflow-started - :workflow-id workflow-id - :args (vec args) - :timestamp (System/currentTimeMillis)}) - (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + "Start a workflow execution. + + Arguments: + - engine: should have: + - store: IStore implementation for persistence + - executor: IActivityExecutor for running activities + - scheduler: IScheduler for timers + - registry: Activity registry atom + - workflow-fn: The workflow function to execute + - args: Arguments to pass to workflow-fn + + Options: + - :workflow-id - Custom workflow ID (default: random UUID) + - :observer - IWorkflowObserver for monitoring + - :max-iterations - Maximum replay iterations (default: 1000)" + [{:keys [store executor scheduler registry]} workflow-fn args + & {:keys [workflow-id observer max-iterations] + :or {max-iterations 1000}}] + (let [wf-id (or workflow-id (str (random-uuid)))] + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-started observer wf-id args)) + (run-workflow-internal store executor scheduler registry wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations}))) (defn resume-workflow - "Resume a waiting workflow (e.g., after signal delivery)" - ([store executor workflow-id workflow-fn args] - (resume-workflow store executor workflow-id workflow-fn args 1000)) - ([store executor workflow-id workflow-fn args max-iterations] - (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) + "Resume a waiting workflow (e.g., after signal delivery or timer). + + Arguments: + - engine: must have: + - store: IStore implementation + - executor: IActivityExecutor + - scheduler: IScheduler + - registry: Activity registry atom + - workflow-id: ID of workflow to resume + - workflow-fn: The workflow function + - args: Original arguments + + Options: + - :observer - IWorkflowObserver + - :max-iterations - Maximum replay iterations" + [{:keys [store executor scheduler registry]} workflow-id workflow-fn args + & {:keys [observer max-iterations] + :or {max-iterations 1000}}] + (when observer + (p/on-workflow-resumed observer workflow-id)) + (run-workflow-internal store executor scheduler registry workflow-id workflow-fn args + {:observer observer + :max-iterations max-iterations})) (defn send-signal - "Send a signal to a workflow" - [store workflow-id signal-name payload] - (add-signal store workflow-id signal-name payload)) + "Send a signal to a workflow. + + Arguments: + - store: IStore implementation + - workflow-id: Target workflow ID + - signal-name: Name of the signal + - payload: Signal payload data + + Options: + - :signal-id - Custom signal ID for idempotency" + [store workflow-id signal-name payload & {:keys [signal-id]}] + (let [id (or signal-id (str (random-uuid)))] + (p/add-signal store workflow-id signal-name {:id id :payload payload}) + {:signal-id id})) + +(defn cancel-workflow + "Cancel a running workflow. + The workflow will be cancelled at the next suspension point." + [store workflow-id] + (p/mark-cancelled store workflow-id) + {:cancelled true :workflow-id workflow-id}) (defn get-workflow-history "Get the history of a workflow" [store workflow-id] - (load-history store workflow-id)) + (p/load-history store workflow-id)) + +(defn get-workflow-result + "Get the final result of a completed workflow, or nil if not completed" + [store workflow-id] + (let [history (p/load-history store workflow-id) + completed (->> history + (filter #(= (:event-type %) :workflow-completed)) + first)] + (when completed + (:result completed)))) ;; ============================================================================ -;; Example Usage +;; Convenience Functions ;; ============================================================================ -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println "slow activity running with" x) - (Thread/sleep 100) - (* x 2)) - -;; Define workflow -(defn my-flow [id] - (println "Workflow start with id:" id) - (let [act (stub #'activity-fn) - slow (stub #'slow-activity) - prom (async #(slow 2))] - (println "After async call") - {:status :shipped - :res (act 1) - :prom (join prom) - :id id})) - -;; Workflow with timer -(defn timed-flow [id] - (println "Starting timed flow") - (let [act (stub #'activity-fn)] - (println "Sleeping for 1 second...") - (sleep 1000) - (println "Woke up!") - {:result (act id)})) - -;; Workflow with signal -(defn signal-flow [id] - (println "Waiting for approval signal...") - (let [approval (wait-for-signal "approval") - act (stub #'activity-fn)] - (println "Got approval:" approval) - {:approved approval - :result (act id)})) - -;; Run examples -(let [store (->InMemoryStore (atom {})) - executor (reify IActivityExecutor - (execute-activity [_ actname args] - (println "Executor running:" actname "with" args) - (let [act (get @activity-registry actname)] - (apply act args))))] - - ;; Basic workflow - (println "\n=== Basic Workflow ===") - (println "Result:" (start-workflow store executor my-flow [123] "my-flow")) - - ;; Timed workflow - (println "\n=== Timed Workflow ===") - (println "Result:" (start-workflow store executor timed-flow [456] "timed-flow")) - - ;; Signal workflow - (println "\n=== Signal Workflow ===") - (let [wf-id "signal-flow" - result1 (start-workflow store executor signal-flow [789] wf-id)] - (println "Initial result:" result1) - (when (= :waiting-signal (:status result1)) - (println "Sending signal...") - (send-signal store wf-id "approval" {:approved-by "admin"}) - (println "Resuming...") - (println "Final result:" (resume-workflow store executor wf-id signal-flow [789]))))) - -;; Check history -#_ -(let [store (->InMemoryStore (atom {}))] - (start-workflow store - (reify IActivityExecutor - (execute-activity [_ actname args] - (let [act (get @activity-registry actname)] - (apply act args)))) - my-flow [123] "test-flow") - (println "\nHistory:") - (doseq [event (get-workflow-history store "test-flow")] - (println " " (:event-type event) "-" (dissoc event :event-type :timestamp)))) +(defn make-workflow-engine + "Create a complete workflow engine with all components. + Returns a map with :store, :executor, :scheduler, :registry, and :observer. + + Options: + - :threads - Number of executor threads (default: 4) + - :scheduler-threads - Number of scheduler threads (default: 2) + - :default-timeout-ms - Default activity timeout (default: 30000) + - :enable-logging - Enable logging observer (default: false)" + [& {:keys [threads scheduler-threads default-timeout-ms enable-logging] + :or {threads 4 + scheduler-threads 2 + default-timeout-ms 30000 + enable-logging false}}] + (let [registry (a/make-registry) + log-atom (when enable-logging (atom []))] + {:store (store/->InMemoryStore (atom {})) + :executor (runtime/make-parallel-executor registry + :threads threads + :default-timeout-ms default-timeout-ms) + :scheduler (runtime/make-scheduler :threads scheduler-threads) + :registry registry + :observer (if enable-logging + (obs/make-logging-observer log-atom) + (obs/noop-observer)) + :log (when enable-logging log-atom)})) + +(defn shutdown-engine + "Shutdown all components of a workflow engine" + [{:keys [executor scheduler]}] + (p/shutdown-executor executor) + (p/shutdown-scheduler scheduler)) + +(defmacro with-workflow-engine + "Execute body with a workflow engine, ensuring cleanup. + + Usage: + (with-workflow-engine [engine {:threads 4}] + (start-workflow (:store engine) ...))" + [[binding opts] & body] + `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] + (try + ~@body + (finally + (shutdown-engine ~binding))))) diff --git a/src/intemporal3/core2.clj b/src/intemporal3/core2.clj deleted file mode 100644 index 44af0bb..0000000 --- a/src/intemporal3/core2.clj +++ /dev/null @@ -1,558 +0,0 @@ -(ns intemporal3.core2 - (:require [clojure.edn :as edn]) - (:import [java.util UUID] - [java.util.concurrent Executors Future])) - -;; ============================================================================ -;; Protocols -;; ============================================================================ - -(defprotocol IStore - "Protocol for workflow persistence" - (load-history [store workflow-id] "Load history for a workflow") - (save-event [store workflow-id event] "Append an event to workflow history") - (save-events [store workflow-id events] "Append multiple events atomically") - (get-pending-signals [store workflow-id] "Get pending signals for workflow") - (add-signal [store workflow-id signal-name payload] "Add a signal to workflow") - (consume-signal [store workflow-id signal-name] "Consume and remove a signal")) - -(defprotocol IActivityExecutor - "Protocol for executing activities" - (execute-activity [executor activity-name args] "Execute an activity with given args") - (execute-activities-parallel [executor activities] "Execute multiple activities in parallel, returns seq of results in same order")) - -;; ============================================================================ -;; Suspension Exceptions -;; ============================================================================ - -(defn- make-suspension [type data] - (ex-info "Workflow suspended" {:type type :data data})) - -(defn- suspension? [e] - (and (instance? clojure.lang.ExceptionInfo e) - (= "Workflow suspended" (.getMessage e)))) - -(defn- suspension-type [e] - (-> e ex-data :type)) - -(defn- suspension-data [e] - (-> e ex-data :data)) - -;; ============================================================================ -;; Dynamic Context -;; ============================================================================ - -(def ^:dynamic *workflow-context* nil) - -(defn- current-context [] - (or *workflow-context* - (throw (ex-info "Not in workflow context" {})))) - -(defn- next-seq! [] - (let [ctx (current-context)] - (let [seq @(:seq-counter ctx)] - (swap! (:seq-counter ctx) inc) - seq))) - -(defn- find-event [history event-type seq-num] - (->> history - (filter #(and (= (:event-type %) event-type) - (= (:seq %) seq-num))) - first)) - -(defn- find-events-by-type [history event-type] - (->> history - (filter #(= (:event-type %) event-type)))) - -(defn- add-pending-event! [event] - (let [ctx (current-context)] - (swap! (:pending-events ctx) conj event))) - -(defn- add-pending-async! [async-info] - (let [ctx (current-context)] - (swap! (:pending-asyncs ctx) conj async-info))) - -;; ============================================================================ -;; In-Memory Store Implementation -;; ============================================================================ - -(defrecord InMemoryStore [state] - IStore - (load-history [_ workflow-id] - (get-in @state [:workflows workflow-id :history] [])) - - (save-event [_ workflow-id event] - (swap! state update-in [:workflows workflow-id :history] - (fnil conj []) event) - event) - - (save-events [_ workflow-id events] - (swap! state update-in [:workflows workflow-id :history] - (fnil into []) events) - events) - - (get-pending-signals [_ workflow-id] - (get-in @state [:workflows workflow-id :signals] {})) - - (add-signal [_ workflow-id signal-name payload] - (swap! state update-in [:workflows workflow-id :signals signal-name] - (fnil conj []) payload)) - - (consume-signal [_ workflow-id signal-name] - (let [signals (get-in @state [:workflows workflow-id :signals signal-name])] - (when (seq signals) - (swap! state update-in [:workflows workflow-id :signals signal-name] - (comp vec rest)) - (first signals))))) - -;; ============================================================================ -;; Default Parallel Executor -;; ============================================================================ - -(defn make-parallel-executor - "Create an executor that runs activities in parallel using a thread pool" - [activity-registry-atom & {:keys [threads] :or {threads 4}}] - (let [pool (Executors/newFixedThreadPool threads)] - (reify IActivityExecutor - (execute-activity [_ activity-name args] - (let [act (get @activity-registry-atom activity-name)] - (apply act args))) - - (execute-activities-parallel [this activities] - (if (empty? activities) - [] - (let [futures (mapv (fn [{:keys [activity-name args]}] - (.submit pool ^Callable - (fn [] (execute-activity this activity-name args)))) - activities)] - (mapv (fn [^Future f] (.get f)) futures))))))) - -;; ============================================================================ -;; Activity Registry -;; ============================================================================ - -(defonce activity-registry (atom {})) - -(defn register-activity! [f] - (let [name (if (var? f) - (str (symbol f)) - (str (symbol f)))] - (swap! activity-registry assoc name (if (var? f) @f f)) - name)) - -(defn- get-activity-name [f] - (let [name (if (var? f) - (str (symbol f)) - (str (symbol f)))] - (when-not (contains? @activity-registry name) - (register-activity! f)) - name)) - -;; ============================================================================ -;; Core Workflow Operations -;; ============================================================================ - -(defn stub - "Create a stubbed version of an activity function for use in workflows" - [activity-fn] - (let [activity-name (get-activity-name activity-fn)] - (fn [& args] - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :activity-completed seq-num)] - (if existing - ;; Replay: return cached result - (:result existing) - ;; Execute: need to run the activity - (let [scheduled-event {:event-type :activity-scheduled - :seq seq-num - :activity-name activity-name - :args (vec args) - :timestamp (System/currentTimeMillis)}] - (add-pending-event! scheduled-event) - (throw (make-suspension :activity {:seq seq-num - :activity-name activity-name - :args (vec args)})))))))) - -;; ============================================================================ -;; Async Support -;; ============================================================================ - -(defrecord AsyncHandle [seq-num]) - -(defn async - "Schedule an async operation (thunk) for later execution" - [thunk] - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing-completed (find-event history :async-completed seq-num) - existing-started (find-event history :async-started seq-num)] - (cond - ;; Already completed - just return handle - existing-completed - (->AsyncHandle seq-num) - - ;; Already started but not completed - return handle (will block on join) - existing-started - (->AsyncHandle seq-num) - - ;; Need to start - record and try to capture what activity it needs - :else - (let [start-event {:event-type :async-started - :seq seq-num - :timestamp (System/currentTimeMillis)}] - (add-pending-event! start-event) - ;; Try to execute the thunk to see what activity it wants - (try - (thunk) - ;; If thunk completes synchronously (all replayed), just return handle - (->AsyncHandle seq-num) - (catch Exception e - (if (suspension? e) - ;; The thunk suspended on an activity - capture it for parallel execution - (let [suspension-info (suspension-data e)] - (add-pending-async! {:handle-seq seq-num - :activity-name (:activity-name suspension-info) - :activity-seq (:seq suspension-info) - :args (:args suspension-info)}) - ;; Return handle - we'll batch execute later - (->AsyncHandle seq-num)) - (throw e)))))))) - -(defn join - "Wait for an async handle to complete" - [handle] - (let [ctx (current-context) - handle-seq (:seq-num handle) - history @(:history ctx) - completed (find-event history :async-completed handle-seq)] - (if completed - (:result completed) - ;; Not yet completed - suspend - (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) - -;; ============================================================================ -;; Signals -;; ============================================================================ - -(defn wait-for-signal - "Wait for a signal with the given name" - [signal-name] - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :signal-received seq-num)] - (if existing - (:payload existing) - (throw (make-suspension :wait-signal {:seq seq-num - :signal-name signal-name}))))) - -;; ============================================================================ -;; Timers -;; ============================================================================ - -(defn sleep - "Sleep for specified milliseconds" - [ms] - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :timer-fired seq-num)] - (if existing - nil - (let [fire-at (+ (System/currentTimeMillis) ms)] - (add-pending-event! {:event-type :timer-scheduled - :seq seq-num - :fire-at fire-at - :timestamp (System/currentTimeMillis)}) - (throw (make-suspension :timer {:seq seq-num - :fire-at fire-at})))))) - -;; ============================================================================ -;; Workflow Execution Engine -;; ============================================================================ - -(defn- execute-workflow-fn [workflow-fn args] - (try - {:status :completed - :result (apply workflow-fn args) - :pending-asyncs @(:pending-asyncs (current-context))} - (catch Exception e - (if (suspension? e) - {:status :suspended - :suspension-type (suspension-type e) - :suspension-data (suspension-data e) - :pending-asyncs @(:pending-asyncs (current-context))} - {:status :failed - :error e})))) - -(defn- process-pending-activity [store executor workflow-id suspension-data pending-events] - (let [{:keys [seq activity-name args]} suspension-data - result (execute-activity executor activity-name args) - completed-event {:event-type :activity-completed - :seq seq - :activity-name activity-name - :result result - :timestamp (System/currentTimeMillis)}] - ;; Save all pending events first - (save-events store workflow-id pending-events) - ;; Then save the completion - (save-event store workflow-id completed-event) - :continue)) - -(defn- process-pending-asyncs-parallel - "Process all pending async operations in parallel" - [store executor workflow-id pending-asyncs pending-events] - (when (seq pending-asyncs) - ;; Save all pending events first - (save-events store workflow-id pending-events) - - ;; Execute all activities in parallel - (let [activities (mapv (fn [{:keys [activity-name args]}] - {:activity-name activity-name - :args args}) - pending-asyncs) - results (execute-activities-parallel executor activities) - now (System/currentTimeMillis) - - ;; Create completion events for both activities and async handles - completion-events (mapcat (fn [async-info result] - [{:event-type :activity-completed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :result result - :timestamp now} - {:event-type :async-completed - :seq (:handle-seq async-info) - :result result - :timestamp now}]) - pending-asyncs results)] - (save-events store workflow-id completion-events))) - :continue) - -(defn- process-timer [store workflow-id suspension-data pending-events] - (let [{:keys [seq fire-at]} suspension-data - now (System/currentTimeMillis)] - ;; Save pending events - (save-events store workflow-id pending-events) - (if (>= now fire-at) - (do - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp now}) - :continue) - ;; Timer not ready - in real impl would schedule wake-up - (do - (Thread/sleep (- fire-at now)) - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- process-signal [store workflow-id suspension-data pending-events] - (let [{:keys [seq signal-name]} suspension-data] - ;; Save pending events - (save-events store workflow-id pending-events) - (if-let [payload (consume-signal store workflow-id signal-name)] - (do - (save-event store workflow-id {:event-type :signal-received - :seq seq - :signal-name signal-name - :payload payload - :timestamp (System/currentTimeMillis)}) - :continue) - :wait-signal))) - -(defn- process-join-pending [store executor workflow-id suspension-data pending-events pending-asyncs] - (let [{:keys [handle-seq]} suspension-data - history (load-history store workflow-id) - completed (find-event history :async-completed handle-seq)] - ;; First, process any pending asyncs that haven't been executed yet - (when (seq pending-asyncs) - (process-pending-asyncs-parallel store executor workflow-id pending-asyncs pending-events)) - - (when (and (empty? pending-asyncs) (seq pending-events)) - (save-events store workflow-id pending-events)) - - ;; Check again after processing - (let [history (load-history store workflow-id) - completed (find-event history :async-completed handle-seq)] - (if completed - :continue - :wait-async)))) - -(defn- run-workflow-loop [store executor workflow-id workflow-fn args max-iterations] - (loop [iteration 0] - (when (>= iteration max-iterations) - (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id}))) - - (let [history (load-history store workflow-id) - pending-events (atom []) - pending-asyncs (atom []) - ctx {:history (atom history) - :workflow-id workflow-id - :seq-counter (atom 0) - :pending-events pending-events - :pending-asyncs pending-asyncs} - exec-result (binding [*workflow-context* ctx] - (execute-workflow-fn workflow-fn args))] - - (case (:status exec-result) - :completed - (do - ;; Process any remaining pending asyncs before completing - (when (seq (:pending-asyncs exec-result)) - (process-pending-asyncs-parallel store executor workflow-id - (:pending-asyncs exec-result) - @pending-events)) - (save-event store workflow-id {:event-type :workflow-completed - :result (:result exec-result) - :timestamp (System/currentTimeMillis)}) - {:status :completed - :result (:result exec-result)}) - - :suspended - (let [pending-asyncs-list (:pending-asyncs exec-result) - action (case (:suspension-type exec-result) - :activity - ;; Check if this is part of async batch or standalone - (if (seq pending-asyncs-list) - (do - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list @pending-events) - :continue) - (process-pending-activity store executor workflow-id - (:suspension-data exec-result) - @pending-events)) - - :timer - (process-timer store workflow-id - (:suspension-data exec-result) - @pending-events) - - :wait-signal - (process-signal store workflow-id - (:suspension-data exec-result) - @pending-events) - - :join-pending - (process-join-pending store executor workflow-id - (:suspension-data exec-result) - @pending-events - pending-asyncs-list))] - (case action - :continue (recur (inc iteration)) - :wait-signal {:status :waiting-signal - :workflow-id workflow-id} - :wait-async {:status :waiting-async - :workflow-id workflow-id})) - - :failed - (do - (save-event store workflow-id {:event-type :workflow-failed - :error (str (:error exec-result)) - :timestamp (System/currentTimeMillis)}) - {:status :failed - :error (:error exec-result)}))))) - -;; ============================================================================ -;; Public API -;; ============================================================================ - -(defn start-workflow - "Start a workflow execution" - ([store executor workflow-fn args] - (start-workflow store executor workflow-fn args (str (UUID/randomUUID)))) - ([store executor workflow-fn args workflow-id] - (start-workflow store executor workflow-fn args workflow-id 1000)) - ([store executor workflow-fn args workflow-id max-iterations] - (save-event store workflow-id {:event-type :workflow-started - :workflow-id workflow-id - :args (vec args) - :timestamp (System/currentTimeMillis)}) - (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) - -(defn resume-workflow - "Resume a waiting workflow (e.g., after signal delivery)" - ([store executor workflow-id workflow-fn args] - (resume-workflow store executor workflow-id workflow-fn args 1000)) - ([store executor workflow-id workflow-fn args max-iterations] - (run-workflow-loop store executor workflow-id workflow-fn args max-iterations))) - -(defn send-signal - "Send a signal to a workflow" - [store workflow-id signal-name payload] - (add-signal store workflow-id signal-name payload)) - -(defn get-workflow-history - "Get the history of a workflow" - [store workflow-id] - (load-history store workflow-id)) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -;; Register activities -(register-activity! #'slow-activity) -(register-activity! #'activity-fn) - -;; Parallel workflow -(defn my-parallel-flow [id] - (println "Workflow start with id:" id) - (let [slow (stub #'slow-activity) - prom1 (async #(slow 1)) - prom2 (async #(slow 2)) - prom3 (async #(slow 3)) - prom4 (async #(slow 4))] - (println "After async calls - all scheduled") - {:status :shipped - :prom (mapv join [prom1 prom2 prom3 prom4]) - :id id})) - -;; Run parallel example -(let [store (->InMemoryStore (atom {})) - executor (make-parallel-executor activity-registry :threads 4)] - - (println "\n=== Parallel Workflow ===") - (println "Starting at:" (System/currentTimeMillis)) - (time - (let [result (start-workflow store executor my-parallel-flow [123] "parallel-flow")] - (println "Finished at:" (System/currentTimeMillis)) - (println "Result:" result))) - - (println "\nHistory:") - (doseq [event (get-workflow-history store "parallel-flow")] - (println " " (:event-type event) "seq:" (:seq event) - (when (:result event) (str "result:" (:result event)))))) - -;; Basic workflow still works -(defn my-flow [id] - (println "Workflow start with id:" id) - (let [act (stub #'activity-fn) - slow (stub #'slow-activity) - prom (async #(slow 2))] - (println "After async call") - {:status :shipped - :res (act 1) - :prom (join prom) - :id id})) - -(let [store (->InMemoryStore (atom {})) - executor (make-parallel-executor activity-registry)] - (println "\n=== Basic Workflow ===") - (println "Result:" (start-workflow store executor my-flow [123] "basic-flow"))) diff --git a/src/intemporal3/core3.clj b/src/intemporal3/core3.clj deleted file mode 100644 index ae407f1..0000000 --- a/src/intemporal3/core3.clj +++ /dev/null @@ -1,1620 +0,0 @@ -(ns intemporal3.core3 - (:import [java.util UUID] - [java.util.concurrent - Executors - ExecutorService - Future - TimeUnit - TimeoutException - ScheduledExecutorService - ScheduledFuture])) - -;; ============================================================================ -;; Protocols -;; ============================================================================ - -(defprotocol IStore - "Protocol for workflow persistence" - (load-history [store workflow-id] "Load history for a workflow") - (save-event [store workflow-id event] "Append an event to workflow history") - (save-events [store workflow-id events] "Append multiple events atomically") - (get-pending-signals [store workflow-id] "Get pending signals for workflow") - (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") - (consume-signal [store workflow-id signal-name] "Consume and remove a signal") - (is-cancelled? [store workflow-id] "Check if workflow is cancelled") - (mark-cancelled [store workflow-id] "Mark workflow as cancelled") - (get-workflow-status [store workflow-id] "Get current workflow status")) - -(defprotocol IActivityExecutor - "Protocol for executing activities" - (execute-activity [executor activity-name args timeout-ms] - "Execute an activity with given args and timeout") - (execute-activities-parallel [executor activities] - "Execute multiple activities in parallel, returns seq of results in same order") - (shutdown-executor [executor] - "Shutdown the executor and release resources")) - -(defprotocol IScheduler - "Protocol for scheduling timers" - (schedule-timer [scheduler workflow-id seq-num fire-at callback] - "Schedule a timer to fire at given time, calls callback when ready") - (cancel-timer [scheduler workflow-id seq-num] - "Cancel a scheduled timer") - (shutdown-scheduler [scheduler] - "Shutdown the scheduler")) - -(defprotocol IWorkflowObserver - "Protocol for observing workflow execution" - (on-workflow-started [observer workflow-id args]) - (on-workflow-suspended [observer workflow-id suspension-type]) - (on-workflow-resumed [observer workflow-id]) - (on-activity-scheduled [observer workflow-id seq-num activity-name args]) - (on-activity-started [observer workflow-id seq-num activity-name]) - (on-activity-completed [observer workflow-id seq-num activity-name result duration-ms]) - (on-activity-failed [observer workflow-id seq-num activity-name error duration-ms]) - (on-async-started [observer workflow-id seq-num]) - (on-async-completed [observer workflow-id seq-num result]) - (on-async-failed [observer workflow-id seq-num error]) - (on-timer-scheduled [observer workflow-id seq-num fire-at]) - (on-timer-fired [observer workflow-id seq-num]) - (on-signal-received [observer workflow-id signal-name payload]) - (on-workflow-completed [observer workflow-id result]) - (on-workflow-failed [observer workflow-id error]) - (on-workflow-cancelled [observer workflow-id])) - -;; ============================================================================ -;; Exceptions and Error Handling -;; ============================================================================ - -(defn- make-suspension [type data] - (ex-info "Workflow suspended" {:type type :data data ::suspension true})) - -(defn- suspension? [e] - (and (instance? clojure.lang.ExceptionInfo e) - (::suspension (ex-data e)))) - -(defn- suspension-type [e] - (-> e ex-data :type)) - -(defn- suspension-data [e] - (-> e ex-data :data)) - -(defn- workflow-cancelled-exception [] - (ex-info "Workflow cancelled" {::cancelled true})) - -(defn- cancelled-exception? [e] - (and (instance? clojure.lang.ExceptionInfo e) - (::cancelled (ex-data e)))) - -(defn- activity-timeout-exception [activity-name timeout-ms] - (ex-info "Activity timed out" - {::activity-timeout true - :activity-name activity-name - :timeout-ms timeout-ms})) - -(defn- activity-failed-exception [activity-name cause] - (ex-info "Activity failed" - {::activity-failed true - :activity-name activity-name} - cause)) - -(defn- async-failed-exception [handle-seq cause] - (ex-info "Async operation failed" - {::async-failed true - :handle-seq handle-seq - :cause cause})) - -(defn throwable->map [^Throwable t] - (when t - {:type (str (type t)) - :message (.getMessage t) - :data (when (instance? clojure.lang.ExceptionInfo t) - (ex-data t)) - :stack-trace (mapv str (.getStackTrace t)) - :cause (throwable->map (.getCause t))})) - -(defn map->exception [m] - (when m - (ex-info (or (:message m) "Restored exception") - (merge {:restored true} (:data m))))) - -;; ============================================================================ -;; Dynamic Context -;; ============================================================================ - -(def ^:dynamic *workflow-context* nil) - -(defn- current-context [] - (or *workflow-context* - (throw (ex-info "Not in workflow context" {})))) - -(defn- check-cancelled! [] - (let [ctx (current-context)] - (when (is-cancelled? (:store ctx) (:workflow-id ctx)) - (throw (workflow-cancelled-exception))))) - -(defn- next-seq! [] - (check-cancelled!) - (let [ctx (current-context)] - (let [seq @(:seq-counter ctx)] - (swap! (:seq-counter ctx) inc) - seq))) - -(defn- find-event [history event-type seq-num] - (->> history - (filter #(and (= (:event-type %) event-type) - (= (:seq %) seq-num))) - first)) - -(defn- find-events-by-type [history event-type] - (->> history - (filter #(= (:event-type %) event-type)))) - -(defn- add-pending-event! [event] - (let [ctx (current-context)] - (swap! (:pending-events ctx) conj event))) - -(defn- add-pending-async! [async-info] - (let [ctx (current-context)] - (swap! (:pending-asyncs ctx) conj async-info))) - -(defn- notify-observer [event-fn & args] - (when-let [observer (:observer (current-context))] - (try - (apply event-fn observer args) - (catch Exception e - ;; Don't let observer errors break workflow - (println "Observer error:" (.getMessage e)))))) - -;; ============================================================================ -;; In-Memory Store Implementation -;; ============================================================================ - -(defrecord InMemoryStore [state] - IStore - (load-history [_ workflow-id] - (get-in @state [:workflows workflow-id :history] [])) - - (save-event [_ workflow-id event] - (swap! state update-in [:workflows workflow-id :history] - (fnil conj []) event) - event) - - (save-events [_ workflow-id events] - (when (seq events) - (swap! state update-in [:workflows workflow-id :history] - (fnil into []) events)) - events) - - (get-pending-signals [_ workflow-id] - (get-in @state [:workflows workflow-id :signals] {})) - - (add-signal [_ workflow-id signal-name signal-data] - (swap! state update-in [:workflows workflow-id :signals signal-name] - (fnil conj []) signal-data) - signal-data) - - (consume-signal [_ workflow-id signal-name] - (let [result (atom nil)] - (swap! state - (fn [s] - (let [signals (get-in s [:workflows workflow-id :signals signal-name])] - (if (seq signals) - (do - (reset! result (first signals)) - (update-in s [:workflows workflow-id :signals signal-name] - (comp vec rest))) - s)))) - @result)) - - (is-cancelled? [_ workflow-id] - (get-in @state [:workflows workflow-id :cancelled] false)) - - (mark-cancelled [_ workflow-id] - (swap! state assoc-in [:workflows workflow-id :cancelled] true)) - - (get-workflow-status [_ workflow-id] - (let [wf (get-in @state [:workflows workflow-id])] - (cond - (:cancelled wf) :cancelled - (empty? (:history wf)) :not-found - :else (let [last-event (last (:history wf))] - (case (:event-type last-event) - :workflow-completed :completed - :workflow-failed :failed - :running)))))) - -(defn ->InMemoryStore - "Create a new in-memory store" - ([] (->InMemoryStore (atom {}))) - ([state] (InMemoryStore. state))) - -;; ============================================================================ -;; Default Scheduler Implementation -;; ============================================================================ - -(defrecord DefaultScheduler [^ScheduledExecutorService pool - pending-timers] - IScheduler - (schedule-timer [_ workflow-id seq-num fire-at callback] - (let [delay-ms (max 0 (- fire-at (System/currentTimeMillis))) - timer-key [workflow-id seq-num] - future (.schedule pool - ^Runnable (fn [] - (swap! pending-timers dissoc timer-key) - (callback)) - delay-ms - TimeUnit/MILLISECONDS)] - (swap! pending-timers assoc timer-key future) - timer-key)) - - (cancel-timer [_ workflow-id seq-num] - (let [timer-key [workflow-id seq-num]] - (when-let [^ScheduledFuture future (get @pending-timers timer-key)] - (.cancel future false) - (swap! pending-timers dissoc timer-key)))) - - (shutdown-scheduler [_] - (doseq [[_ ^ScheduledFuture future] @pending-timers] - (.cancel future false)) - (reset! pending-timers {}) - (.shutdown pool))) - -(defn make-scheduler - "Create a new scheduler" - [& {:keys [threads] :or {threads 2}}] - (->DefaultScheduler - (Executors/newScheduledThreadPool threads) - (atom {}))) - -;; ============================================================================ -;; Default Parallel Executor -;; ============================================================================ - -(defrecord ParallelActivityExecutor [^ExecutorService pool - registry-atom - default-timeout-ms] - IActivityExecutor - (execute-activity [_ activity-name args timeout-ms] - (let [act (get @registry-atom activity-name) - timeout (or timeout-ms default-timeout-ms)] - (if (nil? act) - (throw (ex-info "Activity not found" {:activity-name activity-name})) - (let [future (.submit pool ^Callable (fn [] (apply (:fn act) args)))] - (try - (if timeout - (.get ^Future future timeout TimeUnit/MILLISECONDS) - (.get ^Future future)) - (catch TimeoutException _ - (.cancel ^Future future true) - (throw (activity-timeout-exception activity-name timeout))) - (catch Exception e - (throw (activity-failed-exception activity-name - (or (.getCause e) e))))))))) - - (execute-activities-parallel [this activities] - (if (empty? activities) - [] - (let [futures (mapv (fn [{:keys [activity-name args timeout-ms]}] - (let [act (get @registry-atom activity-name) - timeout (or timeout-ms default-timeout-ms)] - (if (nil? act) - (throw (ex-info "Activity not found" - {:activity-name activity-name})) - {:future (.submit pool ^Callable - (fn [] - (let [start (System/currentTimeMillis)] - {:result (apply (:fn act) args) - :duration (- (System/currentTimeMillis) start)}))) - :timeout timeout - :activity-name activity-name}))) - activities)] - (mapv (fn [{:keys [^Future future timeout activity-name]}] - (try - (let [result (if timeout - (.get future timeout TimeUnit/MILLISECONDS) - (.get future))] - {:status :success - :result (:result result) - :duration (:duration result)}) - (catch TimeoutException _ - (.cancel future true) - {:status :failed - :error (throwable->map - (activity-timeout-exception activity-name timeout))}) - (catch Exception e - {:status :failed - :error (throwable->map (or (.getCause e) e))}))) - futures)))) - - (shutdown-executor [_] - (.shutdown pool) - (.awaitTermination pool 30 TimeUnit/SECONDS))) - -(defn make-parallel-executor - "Create an executor that runs activities in parallel using a thread pool" - [activity-registry-atom & {:keys [threads default-timeout-ms] - :or {threads 4 default-timeout-ms 30000}}] - (->ParallelActivityExecutor - (Executors/newFixedThreadPool threads) - activity-registry-atom - default-timeout-ms)) - -;; ============================================================================ -;; Default Observer (Logging) -;; ============================================================================ - -(defrecord LoggingObserver [log-atom] - IWorkflowObserver - (on-workflow-started [_ workflow-id args] - (swap! log-atom conj {:event :workflow-started - :workflow-id workflow-id - :args args - :timestamp (System/currentTimeMillis)})) - - (on-workflow-suspended [_ workflow-id suspension-type] - (swap! log-atom conj {:event :workflow-suspended - :workflow-id workflow-id - :suspension-type suspension-type - :timestamp (System/currentTimeMillis)})) - - (on-workflow-resumed [_ workflow-id] - (swap! log-atom conj {:event :workflow-resumed - :workflow-id workflow-id - :timestamp (System/currentTimeMillis)})) - - (on-activity-scheduled [_ workflow-id seq-num activity-name args] - (swap! log-atom conj {:event :activity-scheduled - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :args args - :timestamp (System/currentTimeMillis)})) - - (on-activity-started [_ workflow-id seq-num activity-name] - (swap! log-atom conj {:event :activity-started - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :timestamp (System/currentTimeMillis)})) - - (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] - (swap! log-atom conj {:event :activity-completed - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :result result - :duration-ms duration-ms - :timestamp (System/currentTimeMillis)})) - - (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] - (swap! log-atom conj {:event :activity-failed - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :error error - :duration-ms duration-ms - :timestamp (System/currentTimeMillis)})) - - (on-async-started [_ workflow-id seq-num] - (swap! log-atom conj {:event :async-started - :workflow-id workflow-id - :seq seq-num - :timestamp (System/currentTimeMillis)})) - - (on-async-completed [_ workflow-id seq-num result] - (swap! log-atom conj {:event :async-completed - :workflow-id workflow-id - :seq seq-num - :result result - :timestamp (System/currentTimeMillis)})) - - (on-async-failed [_ workflow-id seq-num error] - (swap! log-atom conj {:event :async-failed - :workflow-id workflow-id - :seq seq-num - :error error - :timestamp (System/currentTimeMillis)})) - - (on-timer-scheduled [_ workflow-id seq-num fire-at] - (swap! log-atom conj {:event :timer-scheduled - :workflow-id workflow-id - :seq seq-num - :fire-at fire-at - :timestamp (System/currentTimeMillis)})) - - (on-timer-fired [_ workflow-id seq-num] - (swap! log-atom conj {:event :timer-fired - :workflow-id workflow-id - :seq seq-num - :timestamp (System/currentTimeMillis)})) - - (on-signal-received [_ workflow-id signal-name payload] - (swap! log-atom conj {:event :signal-received - :workflow-id workflow-id - :signal-name signal-name - :payload payload - :timestamp (System/currentTimeMillis)})) - - (on-workflow-completed [_ workflow-id result] - (swap! log-atom conj {:event :workflow-completed - :workflow-id workflow-id - :result result - :timestamp (System/currentTimeMillis)})) - - (on-workflow-failed [_ workflow-id error] - (swap! log-atom conj {:event :workflow-failed - :workflow-id workflow-id - :error error - :timestamp (System/currentTimeMillis)})) - - (on-workflow-cancelled [_ workflow-id] - (swap! log-atom conj {:event :workflow-cancelled - :workflow-id workflow-id - :timestamp (System/currentTimeMillis)}))) - -(defn make-logging-observer - "Create an observer that logs all events to an atom" - ([] (make-logging-observer (atom []))) - ([log-atom] (->LoggingObserver log-atom))) - -(defn noop-observer - "Create an observer that does nothing" - [] - (reify IWorkflowObserver - (on-workflow-started [_ _ _]) - (on-workflow-suspended [_ _ _]) - (on-workflow-resumed [_ _]) - (on-activity-scheduled [_ _ _ _ _]) - (on-activity-started [_ _ _ _]) - (on-activity-completed [_ _ _ _ _ _]) - (on-activity-failed [_ _ _ _ _ _]) - (on-async-started [_ _ _]) - (on-async-completed [_ _ _ _]) - (on-async-failed [_ _ _ _]) - (on-timer-scheduled [_ _ _ _]) - (on-timer-fired [_ _ _]) - (on-signal-received [_ _ _ _]) - (on-workflow-completed [_ _ _]) - (on-workflow-failed [_ _ _]) - (on-workflow-cancelled [_ _]))) - -;; ============================================================================ -;; Activity Registry -;; ============================================================================ - -(defn make-registry - "Create a new activity registry" - [] - (atom {})) - -(defn register-activity! - "Register an activity function in a registry" - [registry f & {:keys [name timeout-ms retry-policy]}] - (let [activity-name (or name - (if (var? f) - (str (symbol f)) - (str (gensym "activity-")))) - resolved-fn (if (var? f) @f f)] - (swap! registry assoc activity-name - {:fn resolved-fn - :timeout-ms timeout-ms - :retry-policy retry-policy}) - activity-name)) - -(defn- get-activity-info [registry activity-name] - (get @registry activity-name)) - -(defn- get-activity-fn [registry activity-name] - (:fn (get-activity-info registry activity-name))) - -(defn- ensure-registered! [registry f] - (let [activity-name (if (var? f) - (str (symbol f)) - (str (symbol f)))] - (when-not (contains? @registry activity-name) - (register-activity! registry f :name activity-name)) - activity-name)) - -;; ============================================================================ -;; Retry Policy -;; ============================================================================ - -(defrecord RetryPolicy [max-attempts - backoff-ms - max-backoff-ms - backoff-multiplier - retryable-fn]) - -(defn make-retry-policy - "Create a retry policy" - [& {:keys [max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn] - :or {max-attempts 3 - backoff-ms 1000 - max-backoff-ms 60000 - backoff-multiplier 2.0 - retryable-fn (constantly true)}}] - (->RetryPolicy max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn)) - -(defn- calculate-backoff [policy attempt] - (let [base (:backoff-ms policy) - multiplier (:backoff-multiplier policy) - max-backoff (:max-backoff-ms policy) - backoff (* base (Math/pow multiplier (dec attempt)))] - (long (min backoff max-backoff)))) - -(defn- should-retry? [policy error attempt] - (and (< attempt (:max-attempts policy)) - ((:retryable-fn policy) error))) - -;; ============================================================================ -;; Core Workflow Operations -;; ============================================================================ - -(defn stub - "Create a stubbed version of an activity function for use in workflows. - Options: - - :timeout-ms - timeout for this activity (overrides default) - - :retry-policy - retry policy for this activity" - [activity-fn & {:keys [timeout-ms retry-policy]}] - (let [ctx (current-context) - registry (:registry ctx) - activity-name (ensure-registered! registry activity-fn) - activity-info (get-activity-info registry activity-name) - effective-timeout (or timeout-ms (:timeout-ms activity-info)) - effective-retry (or retry-policy (:retry-policy activity-info))] - (fn [& args] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :activity-completed seq-num) - existing-failed (find-event history :activity-failed seq-num)] - (cond - ;; Replay: return cached result - existing - (:result existing) - - ;; Replay: throw cached error - existing-failed - (throw (map->exception (:error existing-failed))) - - ;; Execute: need to run the activity - :else - (let [scheduled-event {:event-type :activity-scheduled - :seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy (when effective-retry - {:max-attempts (:max-attempts effective-retry) - :backoff-ms (:backoff-ms effective-retry)}) - :timestamp (System/currentTimeMillis)}] - (add-pending-event! scheduled-event) - (notify-observer on-activity-scheduled - (:workflow-id ctx) seq-num activity-name (vec args)) - (throw (make-suspension :activity {:seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy effective-retry})))))))) - -;; ============================================================================ -;; Async Support -;; ============================================================================ - -(defrecord AsyncHandle [seq-num]) - -(defn async - "Schedule an async operation (thunk) for later execution. - The thunk should contain a single activity call." - [thunk] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing-completed (find-event history :async-completed seq-num) - existing-failed (find-event history :async-failed seq-num) - existing-started (find-event history :async-started seq-num)] - (cond - ;; Already completed - just return handle - existing-completed - (->AsyncHandle seq-num) - - ;; Already failed - return handle (will throw on join) - existing-failed - (->AsyncHandle seq-num) - - ;; Already started but not completed - return handle (will block on join) - existing-started - (->AsyncHandle seq-num) - - ;; Need to start - record and try to capture what activity it needs - :else - (let [start-event {:event-type :async-started - :seq seq-num - :timestamp (System/currentTimeMillis)}] - (add-pending-event! start-event) - (notify-observer on-async-started (:workflow-id ctx) seq-num) - ;; Try to execute the thunk to see what activity it wants - (try - (thunk) - ;; If thunk completes synchronously (all replayed), just return handle - (->AsyncHandle seq-num) - (catch Exception e - (if (suspension? e) - ;; The thunk suspended on an activity - capture it for parallel execution - (let [suspension-info (suspension-data e)] - (add-pending-async! {:handle-seq seq-num - :activity-name (:activity-name suspension-info) - :activity-seq (:seq suspension-info) - :args (:args suspension-info) - :timeout-ms (:timeout-ms suspension-info) - :retry-policy (:retry-policy suspension-info)}) - ;; Return handle - we'll batch execute later - (->AsyncHandle seq-num)) - (throw e)))))))) - -(defn join - "Wait for an async handle to complete. - Throws if the async operation failed." - [handle] - (check-cancelled!) - (let [ctx (current-context) - handle-seq (:seq-num handle) - history @(:history ctx) - completed (find-event history :async-completed handle-seq) - failed (find-event history :async-failed handle-seq)] - (cond - completed - (:result completed) - - failed - (throw (async-failed-exception handle-seq (:error failed))) - - :else - (throw (make-suspension :join-pending {:handle-seq handle-seq}))))) - -(defn join-all - "Wait for multiple async handles to complete. - Returns a vector of results in the same order as handles. - Throws if any async operation failed." - [handles] - (mapv join handles)) - -(defn join-any - "Wait for any of the async handles to complete. - Returns {:index idx :result result} for the first completed. - Note: In deterministic replay, this will always return the same result." - [handles] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :join-any-completed seq-num)] - (if existing - {:index (:index existing) - :result (:result existing)} - ;; Check if any are already complete - (let [completed-idx (first - (keep-indexed - (fn [idx handle] - (when (find-event history :async-completed (:seq-num handle)) - idx)) - handles))] - (if completed-idx - (let [result (join (nth handles completed-idx))] - (add-pending-event! {:event-type :join-any-completed - :seq seq-num - :index completed-idx - :result result - :timestamp (System/currentTimeMillis)}) - {:index completed-idx :result result}) - (throw (make-suspension :join-any-pending - {:seq seq-num - :handle-seqs (mapv :seq-num handles)}))))))) - -;; ============================================================================ -;; Signals -;; ============================================================================ - -(defn wait-for-signal - "Wait for a signal with the given name. - Returns the signal payload when received." - [signal-name] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :signal-received seq-num)] - (if existing - (:payload existing) - (throw (make-suspension :wait-signal {:seq seq-num - :signal-name signal-name}))))) - -(defn wait-for-signal-with-timeout - "Wait for a signal with timeout. - Returns {:received true :payload ...} or {:received false} on timeout." - [signal-name timeout-ms] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :signal-wait-completed seq-num)] - (if existing - (if (:received existing) - {:received true :payload (:payload existing)} - {:received false}) - (throw (make-suspension :wait-signal-timeout - {:seq seq-num - :signal-name signal-name - :timeout-ms timeout-ms - :deadline (+ (System/currentTimeMillis) timeout-ms)}))))) - -;; ============================================================================ -;; Timers -;; ============================================================================ - -(defn sleep - "Sleep for specified milliseconds" - [ms] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - existing (find-event history :timer-fired seq-num)] - (if existing - nil - (let [fire-at (+ (System/currentTimeMillis) ms)] - (add-pending-event! {:event-type :timer-scheduled - :seq seq-num - :fire-at fire-at - :duration-ms ms - :timestamp (System/currentTimeMillis)}) - (notify-observer on-timer-scheduled (:workflow-id ctx) seq-num fire-at) - (throw (make-suspension :timer {:seq seq-num - :fire-at fire-at})))))) - -;; ============================================================================ -;; Child Workflows -;; ============================================================================ - -(defn run-child-workflow - "Run another workflow as a child workflow. - The child workflow has its own history but is tracked by the parent." - [child-workflow-fn args & {:keys [child-id]}] - (check-cancelled!) - (let [ctx (current-context) - seq-num (next-seq!) - history @(:history ctx) - child-wf-id (or child-id (str (:workflow-id ctx) "/child-" seq-num)) - existing (find-event history :child-workflow-completed seq-num) - existing-failed (find-event history :child-workflow-failed seq-num)] - (cond - existing - (:result existing) - - existing-failed - (throw (map->exception (:error existing-failed))) - - :else - (let [scheduled-event {:event-type :child-workflow-scheduled - :seq seq-num - :child-workflow-id child-wf-id - :args (vec args) - :timestamp (System/currentTimeMillis)}] - (add-pending-event! scheduled-event) - (throw (make-suspension :child-workflow - {:seq seq-num - :child-workflow-id child-wf-id - :workflow-fn child-workflow-fn - :args args})))))) - -;; ============================================================================ -;; Workflow Execution Engine -;; ============================================================================ - -(defn- execute-workflow-fn [workflow-fn args] - (try - {:status :completed - :result (apply workflow-fn args) - :pending-asyncs @(:pending-asyncs (current-context)) - :pending-events @(:pending-events (current-context))} - (catch Exception e - (cond - (suspension? e) - {:status :suspended - :suspension-type (suspension-type e) - :suspension-data (suspension-data e) - :pending-asyncs @(:pending-asyncs (current-context)) - :pending-events @(:pending-events (current-context))} - - (cancelled-exception? e) - {:status :cancelled - :pending-events @(:pending-events (current-context))} - - :else - {:status :failed - :error e - :pending-events @(:pending-events (current-context))})))) - -(defn- execute-with-retry - "Execute an activity with retry policy" - [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] - (if (nil? retry-policy) - ;; No retry - execute once - (let [start (System/currentTimeMillis)] - (when observer - (on-activity-started observer workflow-id seq-num activity-name)) - (try - (let [result (execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] - (when observer - (on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration}) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start)] - (when observer - (on-activity-failed observer workflow-id seq-num activity-name - (throwable->map e) duration)) - {:status :failed :error (throwable->map e) :duration duration})))) - ;; With retry - (loop [attempt 1] - (let [start (System/currentTimeMillis) - _ (when observer - (on-activity-started observer workflow-id seq-num activity-name)) - exec-result (try - (let [result (execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] - (when observer - (on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration :attempts attempt}) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start) - error-map (throwable->map e)] - (when observer - (on-activity-failed observer workflow-id seq-num activity-name error-map duration)) - {:status :retry-or-fail - :error error-map - :exception e - :duration duration})))] - (case (:status exec-result) - :success - exec-result - - :retry-or-fail - (if (should-retry? retry-policy (:exception exec-result) attempt) - (do - (Thread/sleep (calculate-backoff retry-policy attempt)) - (recur (inc attempt))) - {:status :failed - :error (:error exec-result) - :duration (:duration exec-result) - :attempts attempt})))))) - -(defn- process-pending-activity [store executor workflow-id suspension-data pending-events observer] - (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data - exec-result (execute-with-retry executor activity-name args timeout-ms - retry-policy observer workflow-id seq)] - ;; Save all pending events first - (save-events store workflow-id pending-events) - ;; Then save the completion or failure - (if (= :success (:status exec-result)) - (do - (save-event store workflow-id {:event-type :activity-completed - :seq seq - :activity-name activity-name - :result (:result exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue) - (do - (save-event store workflow-id {:event-type :activity-failed - :seq seq - :activity-name activity-name - :error (:error exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- process-pending-asyncs-parallel - "Process all pending async operations in parallel" - [store executor workflow-id pending-asyncs pending-events observer] - (when (seq pending-asyncs) - ;; Save all pending events first - (save-events store workflow-id pending-events) - - ;; Execute all activities in parallel - (let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] - {:activity-name activity-name - :args args - :timeout-ms timeout-ms}) - pending-asyncs) - results (execute-activities-parallel executor activities) - now (System/currentTimeMillis) - - ;; Create completion events for both activities and async handles - completion-events - (mapcat (fn [async-info result] - (when observer - (if (= :success (:status result)) - (on-async-completed observer workflow-id - (:handle-seq async-info) (:result result)) - (on-async-failed observer workflow-id - (:handle-seq async-info) (:error result)))) - (if (= :success (:status result)) - [{:event-type :activity-completed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :result (:result result) - :duration-ms (:duration result) - :timestamp now} - {:event-type :async-completed - :seq (:handle-seq async-info) - :result (:result result) - :timestamp now}] - [{:event-type :activity-failed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :error (:error result) - :timestamp now} - {:event-type :async-failed - :seq (:handle-seq async-info) - :error (:error result) - :timestamp now}])) - pending-asyncs results)] - (save-events store workflow-id completion-events))) - :continue) - -(defn- process-timer [store scheduler workflow-id suspension-data pending-events - wake-fn observer] - (let [{:keys [seq fire-at]} suspension-data - now (System/currentTimeMillis)] - ;; Save pending events - (save-events store workflow-id pending-events) - (if (>= now fire-at) - (do - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp now}) - (when observer - (on-timer-fired observer workflow-id seq)) - :continue) - ;; Schedule timer and return wait status - (do - (schedule-timer scheduler workflow-id seq fire-at - (fn [] - (save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp (System/currentTimeMillis)}) - (when observer - (on-timer-fired observer workflow-id seq)) - (when wake-fn (wake-fn)))) - :wait-timer)))) - -(defn- process-signal [store workflow-id suspension-data pending-events observer] - (let [{:keys [seq signal-name]} suspension-data] - ;; Save pending events - (save-events store workflow-id pending-events) - (if-let [signal-data (consume-signal store workflow-id signal-name)] - (do - (save-event store workflow-id {:event-type :signal-received - :seq seq - :signal-name signal-name - :signal-id (:id signal-data) - :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) - (when observer - (on-signal-received observer workflow-id signal-name (:payload signal-data))) - :continue) - :wait-signal))) - -(defn- process-signal-with-timeout [store scheduler workflow-id suspension-data - pending-events wake-fn observer] - (let [{:keys [seq signal-name deadline]} suspension-data - now (System/currentTimeMillis)] - (save-events store workflow-id pending-events) - ;; Check if signal already available - (if-let [signal-data (consume-signal store workflow-id signal-name)] - (do - (save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received true - :signal-name signal-name - :payload (:payload signal-data) - :timestamp now}) - (when observer - (on-signal-received observer workflow-id signal-name (:payload signal-data))) - :continue) - ;; Check if already timed out - (if (>= now deadline) - (do - (save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received false - :signal-name signal-name - :timestamp now}) - :continue) - ;; Schedule timeout - (do - (schedule-timer scheduler workflow-id seq deadline - (fn [] - ;; Check one more time for signal - (if-let [signal-data (consume-signal store workflow-id signal-name)] - (save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received true - :signal-name signal-name - :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) - (save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received false - :signal-name signal-name - :timestamp (System/currentTimeMillis)})) - (when wake-fn (wake-fn)))) - :wait-signal-timeout))))) - -(defn- process-join-pending [store executor workflow-id suspension-data pending-events - pending-asyncs observer] - (let [{:keys [handle-seq]} suspension-data] - ;; First, process any pending asyncs that haven't been executed yet - (if (seq pending-asyncs) - (do - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs pending-events observer) - :continue) - ;; else - (do - (when (seq pending-events) - (save-events store workflow-id pending-events)) - ;; Check if the handle is now complete - (let [history (load-history store workflow-id) - completed (find-event history :async-completed handle-seq) - failed (find-event history :async-failed handle-seq)] - (if (or completed failed) - :continue - :wait-async)))))) - -(declare run-workflow-internal) - -(defn- process-child-workflow [store executor scheduler registry workflow-id - suspension-data pending-events observer] - (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] - (save-events store workflow-id pending-events) - ;; Execute child workflow synchronously for now - ;; In a real implementation, this could be async - (try - (let [result (run-workflow-internal store executor scheduler registry - child-workflow-id workflow-fn args - {:observer observer - :max-iterations 1000})] - (if (= :completed (:status result)) - (do - (save-event store workflow-id {:event-type :child-workflow-completed - :seq seq - :child-workflow-id child-workflow-id - :result (:result result) - :timestamp (System/currentTimeMillis)}) - :continue) - (do - (save-event store workflow-id {:event-type :child-workflow-failed - :seq seq - :child-workflow-id child-workflow-id - :error {:status (:status result)} - :timestamp (System/currentTimeMillis)}) - :continue))) - (catch Exception e - (save-event store workflow-id {:event-type :child-workflow-failed - :seq seq - :child-workflow-id child-workflow-id - :error (throwable->map e) - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- run-workflow-internal - [store executor scheduler registry workflow-id workflow-fn args - {:keys [observer max-iterations wake-fn] - :or {max-iterations 1000}}] - (loop [iteration 0] - (when (>= iteration max-iterations) - (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id - :iterations iteration}))) - - ;; Check cancellation at start of each iteration - (when (is-cancelled? store workflow-id) - (when observer - (on-workflow-cancelled observer workflow-id)) - (save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) - - (let [history (load-history store workflow-id) - pending-events (atom []) - pending-asyncs (atom []) - ctx {:history (atom history) - :workflow-id workflow-id - :seq-counter (atom 0) - :pending-events pending-events - :pending-asyncs pending-asyncs - :store store - :registry registry - :observer observer} - exec-result (binding [*workflow-context* ctx] - (execute-workflow-fn workflow-fn args))] - - (case (:status exec-result) - :completed - (do - ;; Process any remaining pending asyncs before completing - (when (seq (:pending-asyncs exec-result)) - (process-pending-asyncs-parallel store executor workflow-id - (:pending-asyncs exec-result) - (:pending-events exec-result) - observer)) - (when (and (empty? (:pending-asyncs exec-result)) - (seq (:pending-events exec-result))) - (save-events store workflow-id (:pending-events exec-result))) - (save-event store workflow-id {:event-type :workflow-completed - :result (:result exec-result) - :timestamp (System/currentTimeMillis)}) - (when observer - (on-workflow-completed observer workflow-id (:result exec-result))) - {:status :completed - :result (:result exec-result)}) - - :cancelled - (do - (save-events store workflow-id (:pending-events exec-result)) - (save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (when observer - (on-workflow-cancelled observer workflow-id)) - {:status :cancelled - :workflow-id workflow-id}) - - :suspended - (let [pending-asyncs-list (:pending-asyncs exec-result) - pending-events-list (:pending-events exec-result) - - _ (when observer - (on-workflow-suspended observer workflow-id (:suspension-type exec-result))) - - action (case (:suspension-type exec-result) - :activity - (if (seq pending-asyncs-list) - (do - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list - pending-events-list - observer) - :continue) - (process-pending-activity store executor workflow-id - (:suspension-data exec-result) - pending-events-list - observer)) - - :timer - (process-timer store scheduler workflow-id - (:suspension-data exec-result) - pending-events-list - wake-fn - observer) - - :wait-signal - (process-signal store workflow-id - (:suspension-data exec-result) - pending-events-list - observer) - - :wait-signal-timeout - (process-signal-with-timeout store scheduler workflow-id - (:suspension-data exec-result) - pending-events-list - wake-fn - observer) - - :join-pending - (process-join-pending store executor workflow-id - (:suspension-data exec-result) - pending-events-list - pending-asyncs-list - observer) - - :join-any-pending - (do - (when (seq pending-asyncs-list) - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list - pending-events-list - observer)) - :continue) - - :child-workflow - (process-child-workflow store executor scheduler registry - workflow-id - (:suspension-data exec-result) - pending-events-list - observer))] - - (when observer - (when (= action :continue) - (on-workflow-resumed observer workflow-id))) - - (case action - :continue (recur (inc iteration)) - :wait-signal {:status :waiting-signal - :workflow-id workflow-id} - :wait-signal-timeout {:status :waiting-signal-timeout - :workflow-id workflow-id} - :wait-timer {:status :waiting-timer - :workflow-id workflow-id} - :wait-async {:status :waiting-async - :workflow-id workflow-id})) - - :failed - (do - (save-events store workflow-id (:pending-events exec-result)) - (save-event store workflow-id {:event-type :workflow-failed - :error (throwable->map (:error exec-result)) - :timestamp (System/currentTimeMillis)}) - (when observer - (on-workflow-failed observer workflow-id (throwable->map (:error exec-result)))) - {:status :failed - :error (:error exec-result)}))))) - -;; ============================================================================ -;; Public API -;; ============================================================================ - -(defn start-workflow - "Start a workflow execution. - - Arguments: - - store: IStore implementation for persistence - - executor: IActivityExecutor for running activities - - scheduler: IScheduler for timers - - registry: Activity registry atom - - workflow-fn: The workflow function to execute - - args: Arguments to pass to workflow-fn - - Options: - - :workflow-id - Custom workflow ID (default: random UUID) - - :observer - IWorkflowObserver for monitoring - - :max-iterations - Maximum replay iterations (default: 1000)" - [store executor scheduler registry workflow-fn args - & {:keys [workflow-id observer max-iterations] - :or {max-iterations 1000}}] - (let [wf-id (or workflow-id (str (UUID/randomUUID)))] - (save-event store wf-id {:event-type :workflow-started - :workflow-id wf-id - :args (vec args) - :timestamp (System/currentTimeMillis)}) - (when observer - (on-workflow-started observer wf-id args)) - (run-workflow-internal store executor scheduler registry wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations}))) - -(defn resume-workflow - "Resume a waiting workflow (e.g., after signal delivery or timer). - - Arguments: - - store: IStore implementation - - executor: IActivityExecutor - - scheduler: IScheduler - - registry: Activity registry atom - - workflow-id: ID of workflow to resume - - workflow-fn: The workflow function - - args: Original arguments - - Options: - - :observer - IWorkflowObserver - - :max-iterations - Maximum replay iterations" - [store executor scheduler registry workflow-id workflow-fn args - & {:keys [observer max-iterations] - :or {max-iterations 1000}}] - (when observer - (on-workflow-resumed observer workflow-id)) - (run-workflow-internal store executor scheduler registry workflow-id workflow-fn args - {:observer observer - :max-iterations max-iterations})) - -(defn send-signal - "Send a signal to a workflow. - - Arguments: - - store: IStore implementation - - workflow-id: Target workflow ID - - signal-name: Name of the signal - - payload: Signal payload data - - Options: - - :signal-id - Custom signal ID for idempotency" - [store workflow-id signal-name payload & {:keys [signal-id]}] - (let [id (or signal-id (str (UUID/randomUUID)))] - (add-signal store workflow-id signal-name {:id id :payload payload}) - {:signal-id id})) - -(defn cancel-workflow - "Cancel a running workflow. - The workflow will be cancelled at the next suspension point." - [store workflow-id] - (mark-cancelled store workflow-id) - {:cancelled true :workflow-id workflow-id}) - -(defn get-workflow-history - "Get the history of a workflow" - [store workflow-id] - (load-history store workflow-id)) - -(defn get-workflow-result - "Get the final result of a completed workflow, or nil if not completed" - [store workflow-id] - (let [history (load-history store workflow-id) - completed (->> history - (filter #(= (:event-type %) :workflow-completed)) - first)] - (when completed - (:result completed)))) - -;; ============================================================================ -;; Convenience Functions -;; ============================================================================ - -(defn make-workflow-engine - "Create a complete workflow engine with all components. - Returns a map with :store, :executor, :scheduler, :registry, and :observer. - - Options: - - :threads - Number of executor threads (default: 4) - - :scheduler-threads - Number of scheduler threads (default: 2) - - :default-timeout-ms - Default activity timeout (default: 30000) - - :enable-logging - Enable logging observer (default: false)" - [& {:keys [threads scheduler-threads default-timeout-ms enable-logging] - :or {threads 4 - scheduler-threads 2 - default-timeout-ms 30000 - enable-logging false}}] - (let [registry (make-registry) - log-atom (when enable-logging (atom []))] - {:store (->InMemoryStore (atom {})) - :executor (make-parallel-executor registry - :threads threads - :default-timeout-ms default-timeout-ms) - :scheduler (make-scheduler :threads scheduler-threads) - :registry registry - :observer (if enable-logging - (make-logging-observer log-atom) - (noop-observer)) - :log (when enable-logging log-atom)})) - -(defn shutdown-engine - "Shutdown all components of a workflow engine" - [{:keys [executor scheduler]}] - (shutdown-executor executor) - (shutdown-scheduler scheduler)) - -(defmacro with-workflow-engine - "Execute body with a workflow engine, ensuring cleanup. - - Usage: - (with-workflow-engine [engine {:threads 4}] - (start-workflow (:store engine) ...))" - [[binding opts] & body] - `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] - (try - ~@body - (finally - (shutdown-engine ~binding))))) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -(defn flaky-activity [x] - (if true ;(< (rand) 0.7) - (throw (ex-info "Random failure" {:x x})) - (* x 3))) - -(defn failing-activity [x] - (throw (ex-info "Always fails" {:x x}))) - -;; Create engine -(def engine (make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(register-activity! (:registry engine) #'slow-activity) -(register-activity! (:registry engine) #'activity-fn) -(register-activity! (:registry engine) #'flaky-activity - :retry-policy (make-retry-policy :max-attempts 5)) -(register-activity! (:registry engine) #'failing-activity) - -;; Parallel workflow -(defn my-parallel-flow [id] - (println "Workflow start with id:" id) - (let [slow (stub #'slow-activity) - prom1 (async #(slow 1)) - prom2 (async #(slow 2)) - prom3 (async #(slow 3)) - prom4 (async #(slow 4))] - (println "After async calls - all scheduled") - {:status :shipped - :slow (slow 0) - :results (join-all [prom1 prom2 prom3 prom4]) - :id id})) - -;; Run parallel example -(println "\n=== Parallel Workflow ===") -(println "Starting at:" (System/currentTimeMillis)) -(let [result (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - my-parallel-flow [123] - :workflow-id "parallel-flow" - :observer (:observer engine))] - (println "Finished at:" (System/currentTimeMillis)) - (println "Result:" result)) - -(comment - - ;; Workflow with error handling - (defn error-handling-flow [id] - (let [flaky (stub #'flaky-activity)] - {:result (flaky id)})) - - (println "\n=== Error Handling Workflow ===") - (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - error-handling-flow [42] - :workflow-id "error-flow" - :observer (:observer engine)) - - ;; Workflow with timer - (defn timed-flow [id] - (println "Starting timed flow") - (let [act (stub #'activity-fn)] - (println "Sleeping for 2 seconds...") - (sleep 2000) - (println "Woke up!") - {:result (act id)})) - - (println "\n=== Timed Workflow ===") - (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - timed-flow [456] - :workflow-id "timed-flow" - :observer (:observer engine)) - - ;; Workflow with signal - (defn signal-flow [id] - (println "Waiting for approval signal...") - (let [approval (wait-for-signal "approval") - act (stub #'activity-fn)] - (println "Got approval:" approval) - {:approved approval - :result (act id)})) - - (println "\n=== Signal Workflow ===") - (let [wf-id "signal-flow" - result1 (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - signal-flow [789] - :workflow-id wf-id - :observer (:observer engine))] - (println "Initial result:" result1) - (when (= :waiting-signal (:status result1)) - (println "Sending signal...") - (send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) - (println "Resuming...") - (println "Final result:" - (resume-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - wf-id signal-flow [789] - :observer (:observer engine))))) - - ;; Workflow with signal timeout - (defn signal-timeout-flow [id] - (println "Waiting for approval with timeout...") - (let [result (wait-for-signal-with-timeout "approval" 3000) - act (stub #'activity-fn)] - (if (:received result) - {:approved (:payload result) - :result (act id)} - {:timed-out true - :result (act (* id -1))}))) - - ;; Child workflow example - (defn child-flow [x] - (let [act (stub #'activity-fn)] - {:child-result (act x)})) - - (defn parent-flow [id] - (println "Parent workflow starting") - (let [act (stub #'activity-fn) - child-result (run-child-workflow child-flow [(* id 10)])] - {:parent-result (act id) - :child child-result})) - - (println "\n=== Parent/Child Workflow ===") - (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - parent-flow [5] - :workflow-id "parent-flow" - :observer (:observer engine)) - - ;; Cancellation example - (defn long-flow [id] - (let [slow (stub #'slow-activity)] - (dotimes [i 10] - (println "Step" i) - (slow i) - (sleep 500)) - {:done true})) - - (println "\n=== Cancellation ===") - (future - (Thread/sleep 2500) - (println "Cancelling workflow...") - (cancel-workflow (:store engine) "cancel-flow")) - - (try - (start-workflow (:store engine) - (:executor engine) - (:scheduler engine) - (:registry engine) - long-flow [1] - :workflow-id "cancel-flow" - :observer (:observer engine)) - (catch Exception e - (println "Workflow cancelled:" (.getMessage e)))) - - ;; View logs - (println "\n=== Event Log ===") - (doseq [event @(:log engine)] - (println (:event event) "-" (dissoc event :event :timestamp))) - - ;; View history - (println "\n=== Workflow History ===") - (doseq [event (get-workflow-history (:store engine) "parallel-flow")] - (println (:event-type event) "seq:" (:seq event))) - - ;; Cleanup - (shutdown-engine engine) - - ;; Using the convenience macro - (with-workflow-engine [eng {:threads 4 :enable-logging true}] - (register-activity! (:registry eng) #'activity-fn) - (register-activity! (:registry eng) #'slow-activity) - (let [result (start-workflow (:store eng) - (:executor eng) - (:scheduler eng) - (:registry eng) - my-parallel-flow [999] - :observer (:observer eng))] - (println "Result:" result)))) diff --git a/src/intemporal3/engine.clj b/src/intemporal3/engine.clj deleted file mode 100644 index 487b0a1..0000000 --- a/src/intemporal3/engine.clj +++ /dev/null @@ -1 +0,0 @@ -(ns intemporal3.engine) diff --git a/src/intemporal3/example.clj b/src/intemporal3/example.clj new file mode 100644 index 0000000..d213bf1 --- /dev/null +++ b/src/intemporal3/example.clj @@ -0,0 +1,187 @@ +(ns intemporal3.example + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a])) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +(defn flaky-activity [x] + (if true ;(< (rand) 0.7) + (throw (ex-info "Random failure" {:x x})) + (* x 3))) + +(defn failing-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'slow-activity) +(a/register-activity! (:registry engine) #'activity-fn) +(a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy :max-attempts 5)) +(a/register-activity! (:registry engine) #'failing-activity) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + prom1 (intemporal/async #(slow 1)) + prom2 (intemporal/async #(slow 2)) + prom3 (intemporal/async #(slow 3)) + prom4 (intemporal/async #(+ 2 2))] + (println "After async calls - all scheduled") + {:args id + :slow (slow 0) + :prom4 (intemporal/join prom4) + :results (intemporal/join-all [prom1 prom2 prom3 prom4]) + :id id})) + +;; Run parallel example +(println "\n=== Parallel Workflow ===") +(time + (let [result (intemporal/start-workflow engine + my-parallel-flow [123] + :workflow-id (str (random-uuid)) + :observer (:observer engine))] + (println "Result:" result))) + + +;; Workflow with error handling +(defn error-handling-flow [id] + (let [flaky (intemporal/stub #'flaky-activity)] + {:result (flaky id)})) + +(println "\n=== Error Handling Workflow ===") +(intemporal/start-workflow engine + error-handling-flow [42] + :workflow-id "error-flow" + :observer (:observer engine)) + +;; Workflow with timer +(defn timed-flow [id] + (println "Starting timed flow") + (let [act (intemporal/stub #'activity-fn)] + (println "Sleeping for 2 seconds...") + (intemporal/sleep 2000) + (println "Woke up!") + {:result (act id)})) + +(println "\n=== Timed Workflow ===") +(intemporal/start-workflow engine + timed-flow [456] + :workflow-id "timed-flow" + :observer (:observer engine)) + +;; Workflow with signal +(defn signal-flow [id] + (println "Waiting for approval signal...") + (let [approval (intemporal/wait-for-signal "approval") + act (intemporal/stub #'activity-fn)] + (println "Got approval:" approval) + {:approved approval + :result (act id)})) + +(println "\n=== Signal Workflow ===") +(let [wf-id "signal-flow" + result1 (intemporal/start-workflow engine + signal-flow [789] + :workflow-id wf-id + :observer (:observer engine))] + (println "Initial result:" result1) + (when (= :waiting-signal (:status result1)) + (println "Sending signal...") + (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) + (println "Resuming...") + (println "Final result:" + (intemporal/resume-workflow engine + wf-id signal-flow [789] + :observer (:observer engine))))) + +;; Workflow with signal timeout +(defn signal-timeout-flow [id] + (println "Waiting for approval with timeout...") + (let [result (intemporal/wait-for-signal-with-timeout "approval" 3000) + act (intemporal/stub #'activity-fn)] + (if (:received result) + {:approved (:payload result) + :result (act id)} + {:timed-out true + :result (act (* id -1))}))) + +;; Child workflow example +(defn child-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:child-result (act x)})) + +(defn parent-flow [id] + (println "Parent workflow starting") + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-flow [(* id 10)])] + {:parent-result (act id) + :child child-result})) + +(println "\n=== Parent/Child Workflow ===") +(intemporal/start-workflow engine + parent-flow [5] + :workflow-id "parent-flow" + :observer (:observer engine)) + +;; Cancellation example +(defn long-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (dotimes [i 10] + (println "Step" i) + (slow i) + (intemporal/sleep 500)) + {:done true})) + +(println "\n=== Cancellation ===") +(future + (Thread/sleep 2500) + (println "Cancelling workflow...") + (intemporal/cancel-workflow (:store engine) "cancel-flow")) + +(try + (intemporal/start-workflow engine + long-flow [1] + :workflow-id "cancel-flow" + :observer (:observer engine)) + (catch Exception e + (println "Workflow cancelled:" (.getMessage e)))) + +;; View logs +(println "\n=== Event Log ===") +(doseq [event @(:log engine)] + (println (:event event) "-" (dissoc event :event :timestamp))) + +;; View history +(println "\n=== Workflow History ===") +(doseq [event (intemporal/get-workflow-history (:store engine) "parallel-flow")] + (println (:event-type event) "seq:" (:seq event))) + +;; Cleanup +(intemporal/shutdown-engine engine) + +;; Using the convenience macro +(intemporal/with-workflow-engine [eng {:threads 4 :enable-logging true}] + (a/register-activity! (:registry eng) #'activity-fn) + (a/register-activity! (:registry eng) #'slow-activity) + (let [result (intemporal/start-workflow engine + my-parallel-flow [999] + :observer (:observer eng))] + (println "Result:" result))) diff --git a/src/intemporal3/internal/activity.clj b/src/intemporal3/internal/activity.clj new file mode 100644 index 0000000..3e51360 --- /dev/null +++ b/src/intemporal3/internal/activity.clj @@ -0,0 +1,69 @@ +(ns intemporal3.internal.activity) + +;; ============================================================================ +;; Activity Registry +;; ============================================================================ + +(defn make-registry + "Create a new activity registry" + [] + (atom {})) + +(defn register-activity! + "Register an activity function in a registry" + [registry f & {:keys [name timeout-ms retry-policy]}] + (let [activity-name (or name + (if (var? f) + (str (symbol f)) + (str (gensym "activity-")))) + resolved-fn (if (var? f) @f f)] + (swap! registry assoc activity-name + {:fn resolved-fn + :timeout-ms timeout-ms + :retry-policy retry-policy}) + activity-name)) + +(defn get-activity-info [registry activity-name] + (get @registry activity-name)) + +(defn get-activity-fn [registry activity-name] + (:fn (get-activity-info registry activity-name))) + +(defn ensure-registered! [registry f] + (let [activity-name (if (var? f) + (str (symbol f)) + (str (symbol f)))] + (when-not (contains? @registry activity-name) + (register-activity! registry f :name activity-name)) + activity-name)) + +;; ============================================================================ +;; Retry Policy +;; ============================================================================ + +(defrecord RetryPolicy [max-attempts + backoff-ms + max-backoff-ms + backoff-multiplier + retryable-fn]) + +(defn make-retry-policy + "Create a retry policy" + [& {:keys [max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn] + :or {max-attempts 3 + backoff-ms 1000 + max-backoff-ms 60000 + backoff-multiplier 2.0 + retryable-fn (constantly true)}}] + (->RetryPolicy max-attempts backoff-ms max-backoff-ms backoff-multiplier retryable-fn)) + +(defn calculate-backoff [policy attempt] + (let [base (:backoff-ms policy) + multiplier (:backoff-multiplier policy) + max-backoff (:max-backoff-ms policy) + backoff (* base (Math/pow multiplier (dec attempt)))] + (long (min backoff max-backoff)))) + +(defn should-retry? [policy error attempt] + (and (< attempt (:max-attempts policy)) + ((:retryable-fn policy) error))) \ No newline at end of file diff --git a/src/intemporal3/internal/context.clj b/src/intemporal3/internal/context.clj new file mode 100644 index 0000000..2c4aeec --- /dev/null +++ b/src/intemporal3/internal/context.clj @@ -0,0 +1,52 @@ +(ns intemporal3.internal.context + (:require [intemporal3.internal.error :as error] + [intemporal3.protocol :as p])) + + +;; ============================================================================ +;; Dynamic Context +;; ============================================================================ + +(def ^:dynamic *workflow-context* nil) + +(defn current-context [] + (or *workflow-context* + (throw (ex-info "Not in workflow context" {})))) + +(defn check-cancelled! [] + (let [ctx (current-context)] + (when (p/is-cancelled? (:store ctx) (:workflow-id ctx)) + (throw (error/workflow-cancelled-exception))))) + +(defn next-seq! [] + (check-cancelled!) + (let [ctx (current-context)] + (let [seq @(:seq-counter ctx)] + (swap! (:seq-counter ctx) inc) + seq))) + +(defn find-event [history event-type seq-num] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first)) + +(defn find-events-by-type [history event-type] + (->> history + (filter #(= (:event-type %) event-type)))) + +(defn add-pending-event! [event] + (let [ctx (current-context)] + (swap! (:pending-events ctx) conj event))) + +(defn add-pending-async! [async-info] + (let [ctx (current-context)] + (swap! (:pending-asyncs ctx) conj async-info))) + +(defn notify-observer [event-fn & args] + (when-let [observer (:observer (current-context))] + (try + (apply event-fn observer args) + (catch Exception e + ;; Don't let observer errors break workflow + (println "Observer error:" (.getMessage e)))))) diff --git a/src/intemporal3/internal/engine.clj b/src/intemporal3/internal/engine.clj new file mode 100644 index 0000000..0f7e820 --- /dev/null +++ b/src/intemporal3/internal/engine.clj @@ -0,0 +1 @@ +(ns intemporal3.internal.engine) diff --git a/src/intemporal3/internal/error.clj b/src/intemporal3/internal/error.clj new file mode 100644 index 0000000..5c23a2b --- /dev/null +++ b/src/intemporal3/internal/error.clj @@ -0,0 +1,58 @@ +(ns intemporal3.internal.error) + + +;; ============================================================================ +;; Exceptions and Error Handling +;; ============================================================================ + +(defn make-suspension [type data] + (ex-info "Workflow suspended" {:type type :data data ::suspension true})) + +(defn suspension? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (::suspension (ex-data e)))) + +(defn suspension-type [e] + (-> e ex-data :type)) + +(defn suspension-data [e] + (-> e ex-data :data)) + +(defn workflow-cancelled-exception [] + (ex-info "Workflow cancelled" {::cancelled true})) + +(defn cancelled-exception? [e] + (and (instance? clojure.lang.ExceptionInfo e) + (::cancelled (ex-data e)))) + +(defn activity-timeout-exception [activity-name timeout-ms] + (ex-info "Activity timed out" + {::activity-timeout true + :activity-name activity-name + :timeout-ms timeout-ms})) + +(defn activity-failed-exception [activity-name cause] + (ex-info "Activity failed" + {::activity-failed true + :activity-name activity-name} + cause)) + +(defn async-failed-exception [handle-seq cause] + (ex-info "Async operation failed" + {::async-failed true + :handle-seq handle-seq + :cause cause})) + +(defn throwable->map [^Throwable t] + (when t + {:type (str (type t)) + :message (.getMessage t) + :data (when (instance? clojure.lang.ExceptionInfo t) + (ex-data t)) + :stack-trace (mapv str (.getStackTrace t)) + :cause (throwable->map (.getCause t))})) + +(defn map->exception [m] + (when m + (ex-info (or (:message m) "Restored exception") + (merge {:restored true} (:data m))))) \ No newline at end of file diff --git a/src/intemporal3/internal/runtime.clj b/src/intemporal3/internal/runtime.clj new file mode 100644 index 0000000..5178c9e --- /dev/null +++ b/src/intemporal3/internal/runtime.clj @@ -0,0 +1,116 @@ +(ns intemporal3.internal.runtime + (:require [intemporal3.internal.error :as error] + [intemporal3.protocol :as p]) + (:import (java.util.concurrent ExecutorService Executors Future ScheduledExecutorService ScheduledFuture TimeUnit TimeoutException))) + + +;; ============================================================================ +;; Default Scheduler Implementation +;; ============================================================================ + +(defrecord DefaultScheduler [^ScheduledExecutorService pool + pending-timers] + p/IScheduler + (schedule-timer [_ workflow-id seq-num fire-at callback] + (let [delay-ms (max 0 (- fire-at (System/currentTimeMillis))) + timer-key [workflow-id seq-num] + future (.schedule pool + ^Runnable (fn [] + (swap! pending-timers dissoc timer-key) + (callback)) + delay-ms + TimeUnit/MILLISECONDS)] + (swap! pending-timers assoc timer-key future) + timer-key)) + + (cancel-timer [_ workflow-id seq-num] + (let [timer-key [workflow-id seq-num]] + (when-let [^ScheduledFuture future (get @pending-timers timer-key)] + (.cancel future false) + (swap! pending-timers dissoc timer-key)))) + + (shutdown-scheduler [_] + (doseq [[_ ^ScheduledFuture future] @pending-timers] + (.cancel future false)) + (reset! pending-timers {}) + (.shutdown pool))) + +(defn make-scheduler + "Create a new scheduler" + [& {:keys [threads] :or {threads 2}}] + (->DefaultScheduler + (Executors/newScheduledThreadPool threads) + (atom {}))) + +;; ============================================================================ +;; Default Parallel Executor +;; ============================================================================ + +(defrecord ParallelActivityExecutor [^ExecutorService pool + registry-atom + default-timeout-ms] + p/IActivityExecutor + (execute-activity [_ activity-name args timeout-ms] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (throw (ex-info "Activity not found" {:activity-name activity-name})) + (let [future (.submit pool ^Callable (fn [] (apply (:fn act) args)))] + (try + (if timeout + (.get ^Future future timeout TimeUnit/MILLISECONDS) + (.get ^Future future)) + (catch TimeoutException _ + (.cancel ^Future future true) + (throw (error/activity-timeout-exception activity-name timeout))) + (catch Exception e + (throw (error/activity-failed-exception activity-name + (or (.getCause e) e))))))))) + + (execute-activities-parallel [_ activities] + (if (empty? activities) + [] + (let [futures (mapv (fn [{:keys [activity-name args timeout-ms]}] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (throw (ex-info "Activity not found" + {:activity-name activity-name})) + {:future (.submit pool ^Callable + (fn [] + (let [start (System/currentTimeMillis)] + {:result (apply (:fn act) args) + :duration (- (System/currentTimeMillis) start)}))) + :timeout timeout + :activity-name activity-name}))) + activities)] + (mapv (fn [{:keys [^Future future timeout activity-name]}] + (try + (let [result (if timeout + (.get future timeout TimeUnit/MILLISECONDS) + (.get future))] + {:status :success + :result (:result result) + :duration (:duration result)}) + (catch TimeoutException _ + (.cancel future true) + {:status :failed + :error (error/throwable->map + (error/activity-timeout-exception activity-name timeout))}) + (catch Exception e + {:status :failed + :error (error/throwable->map (or (.getCause e) e))}))) + futures)))) + + (shutdown-executor [_] + (.shutdown pool) + (.awaitTermination pool 30 TimeUnit/SECONDS))) + +(defn make-parallel-executor + "Create an executor that runs activities in parallel using a thread pool" + [activity-registry-atom & {:keys [threads default-timeout-ms] + :or {threads 4 default-timeout-ms 30000}}] + (->ParallelActivityExecutor + (Executors/newFixedThreadPool threads) + activity-registry-atom + default-timeout-ms)) diff --git a/src/intemporal3/observer.clj b/src/intemporal3/observer.clj index 38f049c..75b8f12 100644 --- a/src/intemporal3/observer.clj +++ b/src/intemporal3/observer.clj @@ -1 +1,141 @@ -(ns intemporal3.observer) +(ns intemporal3.observer + (:require [intemporal3.protocol :as p])) + +;; ============================================================================ +;; Default Observer (Logging) +;; ============================================================================ + +(defrecord LoggingObserver [log-atom] + p/IWorkflowObserver + (on-workflow-started [_ workflow-id args] + (swap! log-atom conj {:event :workflow-started + :workflow-id workflow-id + :args args + :timestamp (System/currentTimeMillis)})) + + (on-workflow-suspended [_ workflow-id suspension-type] + (swap! log-atom conj {:event :workflow-suspended + :workflow-id workflow-id + :suspension-type suspension-type + :timestamp (System/currentTimeMillis)})) + + (on-workflow-resumed [_ workflow-id] + (swap! log-atom conj {:event :workflow-resumed + :workflow-id workflow-id + :timestamp (System/currentTimeMillis)})) + + (on-activity-scheduled [_ workflow-id seq-num activity-name args] + (swap! log-atom conj {:event :activity-scheduled + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :args args + :timestamp (System/currentTimeMillis)})) + + (on-activity-started [_ workflow-id seq-num activity-name] + (swap! log-atom conj {:event :activity-started + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :timestamp (System/currentTimeMillis)})) + + (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] + (swap! log-atom conj {:event :activity-completed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :result result + :duration-ms duration-ms + :timestamp (System/currentTimeMillis)})) + + (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] + (swap! log-atom conj {:event :activity-failed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :error error + :duration-ms duration-ms + :timestamp (System/currentTimeMillis)})) + + (on-async-started [_ workflow-id seq-num] + (swap! log-atom conj {:event :async-started + :workflow-id workflow-id + :seq seq-num + :timestamp (System/currentTimeMillis)})) + + (on-async-completed [_ workflow-id seq-num result] + (swap! log-atom conj {:event :async-completed + :workflow-id workflow-id + :seq seq-num + :result result + :timestamp (System/currentTimeMillis)})) + + (on-async-failed [_ workflow-id seq-num error] + (swap! log-atom conj {:event :async-failed + :workflow-id workflow-id + :seq seq-num + :error error + :timestamp (System/currentTimeMillis)})) + + (on-timer-scheduled [_ workflow-id seq-num fire-at] + (swap! log-atom conj {:event :timer-scheduled + :workflow-id workflow-id + :seq seq-num + :fire-at fire-at + :timestamp (System/currentTimeMillis)})) + + (on-timer-fired [_ workflow-id seq-num] + (swap! log-atom conj {:event :timer-fired + :workflow-id workflow-id + :seq seq-num + :timestamp (System/currentTimeMillis)})) + + (on-signal-received [_ workflow-id signal-name payload] + (swap! log-atom conj {:event :signal-received + :workflow-id workflow-id + :signal-name signal-name + :payload payload + :timestamp (System/currentTimeMillis)})) + + (on-workflow-completed [_ workflow-id result] + (swap! log-atom conj {:event :workflow-completed + :workflow-id workflow-id + :result result + :timestamp (System/currentTimeMillis)})) + + (on-workflow-failed [_ workflow-id error] + (swap! log-atom conj {:event :workflow-failed + :workflow-id workflow-id + :error error + :timestamp (System/currentTimeMillis)})) + + (on-workflow-cancelled [_ workflow-id] + (swap! log-atom conj {:event :workflow-cancelled + :workflow-id workflow-id + :timestamp (System/currentTimeMillis)}))) + +(defn make-logging-observer + "Create an observer that logs all events to an atom" + ([] (make-logging-observer (atom []))) + ([log-atom] (->LoggingObserver log-atom))) + +(defn noop-observer + "Create an observer that does nothing" + [] + (reify p/IWorkflowObserver + (on-workflow-started [_ _ _]) + (on-workflow-suspended [_ _ _]) + (on-workflow-resumed [_ _]) + (on-activity-scheduled [_ _ _ _ _]) + (on-activity-started [_ _ _ _]) + (on-activity-completed [_ _ _ _ _ _]) + (on-activity-failed [_ _ _ _ _ _]) + (on-async-started [_ _ _]) + (on-async-completed [_ _ _ _]) + (on-async-failed [_ _ _ _]) + (on-timer-scheduled [_ _ _ _]) + (on-timer-fired [_ _ _]) + (on-signal-received [_ _ _ _]) + (on-workflow-completed [_ _ _]) + (on-workflow-failed [_ _ _]) + (on-workflow-cancelled [_ _]))) \ No newline at end of file diff --git a/src/intemporal3/protocol.clj b/src/intemporal3/protocol.clj index d6bca3c..3881ec7 100644 --- a/src/intemporal3/protocol.clj +++ b/src/intemporal3/protocol.clj @@ -1 +1,55 @@ (ns intemporal3.protocol) + + +;; ============================================================================ +;; Protocols +;; ============================================================================ + +(defprotocol IStore + "Protocol for workflow persistence" + (load-history [store workflow-id] "Load history for a workflow") + (save-event [store workflow-id event] "Append an event to workflow history") + (save-events [store workflow-id events] "Append multiple events atomically") + (get-pending-signals [store workflow-id] "Get pending signals for workflow") + (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") + (consume-signal [store workflow-id signal-name] "Consume and remove a signal") + (is-cancelled? [store workflow-id] "Check if workflow is cancelled") + (mark-cancelled [store workflow-id] "Mark workflow as cancelled") + (get-workflow-status [store workflow-id] "Get current workflow status")) + +(defprotocol IActivityExecutor + "Protocol for executing activities" + (execute-activity [executor activity-name args timeout-ms] + "Execute an activity with given args and timeout") + (execute-activities-parallel [executor activities] + "Execute multiple activities in parallel, returns seq of results in same order") + (shutdown-executor [executor] + "Shutdown the executor and release resources")) + +(defprotocol IScheduler + "Protocol for scheduling timers" + (schedule-timer [scheduler workflow-id seq-num fire-at callback] + "Schedule a timer to fire at given time, calls callback when ready") + (cancel-timer [scheduler workflow-id seq-num] + "Cancel a scheduled timer") + (shutdown-scheduler [scheduler] + "Shutdown the scheduler")) + +(defprotocol IWorkflowObserver + "Protocol for observing workflow execution" + (on-workflow-started [observer workflow-id args]) + (on-workflow-suspended [observer workflow-id suspension-type]) + (on-workflow-resumed [observer workflow-id]) + (on-activity-scheduled [observer workflow-id seq-num activity-name args]) + (on-activity-started [observer workflow-id seq-num activity-name]) + (on-activity-completed [observer workflow-id seq-num activity-name result duration-ms]) + (on-activity-failed [observer workflow-id seq-num activity-name error duration-ms]) + (on-async-started [observer workflow-id seq-num]) + (on-async-completed [observer workflow-id seq-num result]) + (on-async-failed [observer workflow-id seq-num error]) + (on-timer-scheduled [observer workflow-id seq-num fire-at]) + (on-timer-fired [observer workflow-id seq-num]) + (on-signal-received [observer workflow-id signal-name payload]) + (on-workflow-completed [observer workflow-id result]) + (on-workflow-failed [observer workflow-id error]) + (on-workflow-cancelled [observer workflow-id])) diff --git a/src/intemporal3/store.clj b/src/intemporal3/store.clj new file mode 100644 index 0000000..fca6855 --- /dev/null +++ b/src/intemporal3/store.clj @@ -0,0 +1,65 @@ +(ns intemporal3.store + (:require [intemporal3.protocol :as p])) + +;; ============================================================================ +;; In-Memory Store Implementation +;; ============================================================================ + +(defrecord InMemoryStore [state] + p/IStore + (load-history [_ workflow-id] + (get-in @state [:workflows workflow-id :history] [])) + + (save-event [_ workflow-id event] + (swap! state update-in [:workflows workflow-id :history] + (fnil conj []) event) + event) + + (save-events [_ workflow-id events] + (when (seq events) + (swap! state update-in [:workflows workflow-id :history] + (fnil into []) events)) + events) + + (get-pending-signals [_ workflow-id] + (get-in @state [:workflows workflow-id :signals] {})) + + (add-signal [_ workflow-id signal-name signal-data] + (swap! state update-in [:workflows workflow-id :signals signal-name] + (fnil conj []) signal-data) + signal-data) + + (consume-signal [_ workflow-id signal-name] + (let [result (atom nil)] + (swap! state + (fn [s] + (let [signals (get-in s [:workflows workflow-id :signals signal-name])] + (if (seq signals) + (do + (reset! result (first signals)) + (update-in s [:workflows workflow-id :signals signal-name] + (comp vec rest))) + s)))) + @result)) + + (is-cancelled? [_ workflow-id] + (get-in @state [:workflows workflow-id :cancelled] false)) + + (mark-cancelled [_ workflow-id] + (swap! state assoc-in [:workflows workflow-id :cancelled] true)) + + (get-workflow-status [_ workflow-id] + (let [wf (get-in @state [:workflows workflow-id])] + (cond + (:cancelled wf) :cancelled + (empty? (:history wf)) :not-found + :else (let [last-event (last (:history wf))] + (case (:event-type last-event) + :workflow-completed :completed + :workflow-failed :failed + :running)))))) + +(defn ->InMemoryStore + "Create a new in-memory store" + ([] (->InMemoryStore (atom {}))) + ([state] (InMemoryStore. state))) From ec9b8e48d216d137b56ba1e2416149c22c6a0c5d Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 14 Jan 2026 22:48:54 +0000 Subject: [PATCH 30/81] split examples --- src/intemporal3/core.clj | 46 ++++-- src/intemporal3/example.clj | 187 ----------------------- src/intemporal3/example/async.clj | 90 +++++++++++ src/intemporal3/example/cancellation.clj | 54 +++++++ src/intemporal3/example/child.clj | 34 +++++ src/intemporal3/example/error.clj | 30 ++++ src/intemporal3/example/signal.clj | 81 ++++++++++ src/intemporal3/example/timer.clj | 35 +++++ src/intemporal3/internal/context.clj | 7 + 9 files changed, 364 insertions(+), 200 deletions(-) delete mode 100644 src/intemporal3/example.clj create mode 100644 src/intemporal3/example/async.clj create mode 100644 src/intemporal3/example/cancellation.clj create mode 100644 src/intemporal3/example/child.clj create mode 100644 src/intemporal3/example/error.clj create mode 100644 src/intemporal3/example/signal.clj create mode 100644 src/intemporal3/example/timer.clj diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index 736aedb..d077b15 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -1,5 +1,6 @@ (ns intemporal3.core - (:require [intemporal3.internal.error :as error] + (:require [clojure.tools.logging :as log] + [intemporal3.internal.error :as error] [intemporal3.internal.context :as ctx] [intemporal3.internal.activity :as a] [intemporal3.internal.runtime :as runtime] @@ -77,15 +78,21 @@ existing-failed (ctx/find-event history :async-failed seq-num) existing-started (ctx/find-event history :async-started seq-num)] (cond - ;; Already completed - just return handle + ;; Already completed - advance seq past consumed numbers during replay existing-completed - (->AsyncHandle seq-num) + (do + ;; Advance seq counter to skip past all seqs consumed by this async + (ctx/update-seq! existing-completed) + (->AsyncHandle seq-num)) - ;; Already failed - return handle (will throw on join) + ;; Already failed - advance seq past consumed numbers during replay existing-failed - (->AsyncHandle seq-num) + (do + (ctx/update-seq! existing-failed) + (->AsyncHandle seq-num)) ;; Already started but not completed - return handle (will block on join) + ;; During replay, don't re-execute the thunk - just wait for completion event existing-started (->AsyncHandle seq-num) @@ -93,26 +100,36 @@ :else (let [start-event {:event-type :async-started :seq seq-num - :timestamp (System/currentTimeMillis)}] + :timestamp (System/currentTimeMillis)} + start-seq seq-num] (ctx/add-pending-event! start-event) (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) ;; Try to execute the thunk to see what activity it wants (try - (thunk) - ;; If thunk completes synchronously (all replayed), just return handle - (->AsyncHandle seq-num) + (let [result (thunk) + ;; Capture the last seq number after thunk execution + end-seq (dec @(:seq-counter (ctx/current-context)))] + ;; If thunk completes synchronously (pure computation - first run only), + ;; save the completion event immediately with the seq range + (ctx/add-pending-event! {:event-type :async-completed + :seq start-seq + :last-seq end-seq + :result result + :timestamp (System/currentTimeMillis)}) + (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) + (->AsyncHandle start-seq)) (catch Exception e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution (let [suspension-info (error/suspension-data e)] - (ctx/add-pending-async! {:handle-seq seq-num + (ctx/add-pending-async! {:handle-seq start-seq :activity-name (:activity-name suspension-info) :activity-seq (:seq suspension-info) :args (:args suspension-info) :timeout-ms (:timeout-ms suspension-info) :retry-policy (:retry-policy suspension-info)}) ;; Return handle - we'll batch execute later - (->AsyncHandle seq-num)) + (->AsyncHandle start-seq)) (throw e)))))))) (defn join @@ -344,8 +361,9 @@ :retry-or-fail (if (a/should-retry? retry-policy (:exception exec-result) attempt) - (do - (Thread/sleep (long (a/calculate-backoff retry-policy attempt))) + (let [backoff (a/calculate-backoff retry-policy attempt)] + (log/infof "attempt %d: sleeping %s before retrying (next attempt: %d)" attempt backoff) + (Thread/sleep (long backoff)) (recur (inc attempt))) {:status :failed :error (:error exec-result) @@ -413,6 +431,7 @@ :timestamp now} {:event-type :async-completed :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) :result (:result result) :timestamp now}] [{:event-type :activity-failed @@ -422,6 +441,7 @@ :timestamp now} {:event-type :async-failed :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) :error (:error result) :timestamp now}])) pending-asyncs results)] diff --git a/src/intemporal3/example.clj b/src/intemporal3/example.clj deleted file mode 100644 index d213bf1..0000000 --- a/src/intemporal3/example.clj +++ /dev/null @@ -1,187 +0,0 @@ -(ns intemporal3.example - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a])) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -(defn flaky-activity [x] - (if true ;(< (rand) 0.7) - (throw (ex-info "Random failure" {:x x})) - (* x 3))) - -(defn failing-activity [x] - (throw (ex-info "Always fails" {:x x}))) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'slow-activity) -(a/register-activity! (:registry engine) #'activity-fn) -(a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy :max-attempts 5)) -(a/register-activity! (:registry engine) #'failing-activity) - -;; Parallel workflow -(defn my-parallel-flow [id] - (println "Workflow start with id:" id) - (let [slow (intemporal/stub #'slow-activity) - prom1 (intemporal/async #(slow 1)) - prom2 (intemporal/async #(slow 2)) - prom3 (intemporal/async #(slow 3)) - prom4 (intemporal/async #(+ 2 2))] - (println "After async calls - all scheduled") - {:args id - :slow (slow 0) - :prom4 (intemporal/join prom4) - :results (intemporal/join-all [prom1 prom2 prom3 prom4]) - :id id})) - -;; Run parallel example -(println "\n=== Parallel Workflow ===") -(time - (let [result (intemporal/start-workflow engine - my-parallel-flow [123] - :workflow-id (str (random-uuid)) - :observer (:observer engine))] - (println "Result:" result))) - - -;; Workflow with error handling -(defn error-handling-flow [id] - (let [flaky (intemporal/stub #'flaky-activity)] - {:result (flaky id)})) - -(println "\n=== Error Handling Workflow ===") -(intemporal/start-workflow engine - error-handling-flow [42] - :workflow-id "error-flow" - :observer (:observer engine)) - -;; Workflow with timer -(defn timed-flow [id] - (println "Starting timed flow") - (let [act (intemporal/stub #'activity-fn)] - (println "Sleeping for 2 seconds...") - (intemporal/sleep 2000) - (println "Woke up!") - {:result (act id)})) - -(println "\n=== Timed Workflow ===") -(intemporal/start-workflow engine - timed-flow [456] - :workflow-id "timed-flow" - :observer (:observer engine)) - -;; Workflow with signal -(defn signal-flow [id] - (println "Waiting for approval signal...") - (let [approval (intemporal/wait-for-signal "approval") - act (intemporal/stub #'activity-fn)] - (println "Got approval:" approval) - {:approved approval - :result (act id)})) - -(println "\n=== Signal Workflow ===") -(let [wf-id "signal-flow" - result1 (intemporal/start-workflow engine - signal-flow [789] - :workflow-id wf-id - :observer (:observer engine))] - (println "Initial result:" result1) - (when (= :waiting-signal (:status result1)) - (println "Sending signal...") - (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) - (println "Resuming...") - (println "Final result:" - (intemporal/resume-workflow engine - wf-id signal-flow [789] - :observer (:observer engine))))) - -;; Workflow with signal timeout -(defn signal-timeout-flow [id] - (println "Waiting for approval with timeout...") - (let [result (intemporal/wait-for-signal-with-timeout "approval" 3000) - act (intemporal/stub #'activity-fn)] - (if (:received result) - {:approved (:payload result) - :result (act id)} - {:timed-out true - :result (act (* id -1))}))) - -;; Child workflow example -(defn child-flow [x] - (let [act (intemporal/stub #'activity-fn)] - {:child-result (act x)})) - -(defn parent-flow [id] - (println "Parent workflow starting") - (let [act (intemporal/stub #'activity-fn) - child-result (intemporal/run-child-workflow child-flow [(* id 10)])] - {:parent-result (act id) - :child child-result})) - -(println "\n=== Parent/Child Workflow ===") -(intemporal/start-workflow engine - parent-flow [5] - :workflow-id "parent-flow" - :observer (:observer engine)) - -;; Cancellation example -(defn long-flow [id] - (let [slow (intemporal/stub #'slow-activity)] - (dotimes [i 10] - (println "Step" i) - (slow i) - (intemporal/sleep 500)) - {:done true})) - -(println "\n=== Cancellation ===") -(future - (Thread/sleep 2500) - (println "Cancelling workflow...") - (intemporal/cancel-workflow (:store engine) "cancel-flow")) - -(try - (intemporal/start-workflow engine - long-flow [1] - :workflow-id "cancel-flow" - :observer (:observer engine)) - (catch Exception e - (println "Workflow cancelled:" (.getMessage e)))) - -;; View logs -(println "\n=== Event Log ===") -(doseq [event @(:log engine)] - (println (:event event) "-" (dissoc event :event :timestamp))) - -;; View history -(println "\n=== Workflow History ===") -(doseq [event (intemporal/get-workflow-history (:store engine) "parallel-flow")] - (println (:event-type event) "seq:" (:seq event))) - -;; Cleanup -(intemporal/shutdown-engine engine) - -;; Using the convenience macro -(intemporal/with-workflow-engine [eng {:threads 4 :enable-logging true}] - (a/register-activity! (:registry eng) #'activity-fn) - (a/register-activity! (:registry eng) #'slow-activity) - (let [result (intemporal/start-workflow engine - my-parallel-flow [999] - :observer (:observer eng))] - (println "Result:" result))) diff --git a/src/intemporal3/example/async.clj b/src/intemporal3/example/async.clj new file mode 100644 index 0000000..b4e119f --- /dev/null +++ b/src/intemporal3/example/async.clj @@ -0,0 +1,90 @@ +(ns intemporal3.example.async + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +(defn flaky-activity [x] + (if true ;(< (rand) 0.7) + (throw (ex-info "Random failure" {:x x})) + (* x 3))) + +(defn failing-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'slow-activity) +(a/register-activity! (:registry engine) #'activity-fn) +(a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy :max-attempts 5)) +(a/register-activity! (:registry engine) #'failing-activity) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + prom1 (intemporal/async #(slow 1)) + prom2 (intemporal/async #(slow 2)) + prom3 (intemporal/async #(slow 3)) + prom4 (intemporal/async #(+ 2 2))] + (println "After async calls - all scheduled") + {:args id + :slow (slow 0) + :prom4 (intemporal/join prom4) + :results (intemporal/join-all [prom1 prom2 prom3 prom4]) + :id id})) + +;; Run parallel example +(println "\n=== Parallel Workflow ===") +(time + (let [wf-id "test-parallel" + result (intemporal/start-workflow engine + my-parallel-flow [123] + :workflow-id wf-id + :observer (:observer engine))] + (println "Result:" result) + (println "\n=== Workflow History ===") + (clojure.pprint/print-table (map (fn [r] + (-> r + (assoc :seq (:seq r)) + (dissoc :timestamp))) + (intemporal/get-workflow-history (:store engine) wf-id))) + #_ + (doseq [event (intemporal/get-workflow-history (:store engine) wf-id)] + (println " " (:event-type event) "seq:" (:seq event) + (when (:result event) (str "result:" (:result event))) + (when (:activity-name event) (str "activity:" (:activity-name event))))))) + + +(comment + + ;; Cleanup + (intemporal/shutdown-engine engine) + + ;; Using the convenience macro + (intemporal/with-workflow-engine [eng {:threads 4 :enable-logging true}] + (a/register-activity! (:registry eng) #'activity-fn) + (a/register-activity! (:registry eng) #'slow-activity) + (let [result (intemporal/start-workflow engine + my-parallel-flow [999] + :observer (:observer eng))] + (println "Result:" result)))) + diff --git a/src/intemporal3/example/cancellation.clj b/src/intemporal3/example/cancellation.clj new file mode 100644 index 0000000..68d4035 --- /dev/null +++ b/src/intemporal3/example/cancellation.clj @@ -0,0 +1,54 @@ +(ns intemporal3.example.cancellation + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'slow-activity) + +;; Cancellation example +(defn long-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (dotimes [i 10] + (println "Step" i) + (slow i) + (intemporal/sleep 500)) + {:done true})) + +(println "\n=== Cancellation ===") +(future + (Thread/sleep 2500) + (println "Cancelling workflow...") + (intemporal/cancel-workflow (:store engine) "cancel-flow")) + +(try + (intemporal/start-workflow engine + long-flow [1] + :workflow-id "cancel-flow" + :observer (:observer engine)) + (catch Exception e + (println "Workflow cancelled:" (.getMessage e)))) + +;; View logs +(println "\n=== Event Log ===") +(doseq [event @(:log engine)] + (println (:event event) "-" (dissoc event :event :timestamp))) + +;; View history +(println "\n=== Workflow History ===") +(doseq [event (intemporal/get-workflow-history (:store engine) "parallel-flow")] + (println (:event-type event) "seq:" (:seq event))) \ No newline at end of file diff --git a/src/intemporal3/example/child.clj b/src/intemporal3/example/child.clj new file mode 100644 index 0000000..faf40cb --- /dev/null +++ b/src/intemporal3/example/child.clj @@ -0,0 +1,34 @@ +(ns intemporal3.example.child + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'activity-fn) + +;; Child workflow example +(defn child-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:child-result (act x)})) + +(defn parent-flow [id] + (println "Parent workflow starting") + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-flow [(* id 10)])] + {:parent-result (act id) + :child child-result})) + +(println "\n=== Parent/Child Workflow ===") +(prn (intemporal/start-workflow engine + parent-flow [5] + :workflow-id "parent-flow" + :observer (:observer engine))) + diff --git a/src/intemporal3/example/error.clj b/src/intemporal3/example/error.clj new file mode 100644 index 0000000..7b12256 --- /dev/null +++ b/src/intemporal3/example/error.clj @@ -0,0 +1,30 @@ +(ns intemporal3.example.error + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +(defn flaky-activity [x] + (if true ;(< (rand) 0.7) + (throw (ex-info "Random failure" {:x x})) + (* x 3))) + +(defn failing-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy :max-attempts 5)) + +;; Workflow with error handling +(defn error-handling-flow [id] + (let [flaky (intemporal/stub #'flaky-activity)] + {:result (flaky id)})) + +(println "\n=== Error Handling Workflow ===") +(prn (intemporal/start-workflow engine + error-handling-flow [42] + :workflow-id "error-flow" + :observer (:observer engine))) diff --git a/src/intemporal3/example/signal.clj b/src/intemporal3/example/signal.clj new file mode 100644 index 0000000..563902d --- /dev/null +++ b/src/intemporal3/example/signal.clj @@ -0,0 +1,81 @@ +(ns intemporal3.example.signal + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +(defn flaky-activity [x] + (if true ;(< (rand) 0.7) + (throw (ex-info "Random failure" {:x x})) + (* x 3))) + +(defn failing-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'slow-activity) +(a/register-activity! (:registry engine) #'activity-fn) +(a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy :max-attempts 5)) +(a/register-activity! (:registry engine) #'failing-activity) + +;; Workflow with signal +(defn signal-flow [id] + (println "Waiting for approval signal...") + (let [approval (intemporal/wait-for-signal "approval") + act (intemporal/stub #'activity-fn)] + (println "Got approval:" approval) + {:approved approval + :result (act id)})) + +(println "\n=== Signal Workflow ===") +(let [wf-id "signal-flow" + result1 (intemporal/start-workflow engine + signal-flow [789] + :workflow-id wf-id + :observer (:observer engine))] + (println "Initial result:" result1) + (when (= :waiting-signal (:status result1)) + (println "Sending signal...") + (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) + (println "Resuming...") + (println "Final result:" + (intemporal/resume-workflow engine + wf-id signal-flow [789] + :observer (:observer engine))))) + +;; Workflow with signal timeout +(defn signal-timeout-flow [id] + (println "Waiting for approval with timeout...") + (let [result (intemporal/wait-for-signal-with-timeout "approval" 3000) + act (intemporal/stub #'activity-fn)] + (if (:received result) + {:approved (:payload result) + :result (act id)} + {:timed-out true + :result (act (* id -1))}))) + +(let [wf-id "signal-timeout-flow" + result1 (intemporal/start-workflow engine + signal-timeout-flow [789] + :workflow-id wf-id + :observer (:observer engine))] + (println "Initial result:" result1)) \ No newline at end of file diff --git a/src/intemporal3/example/timer.clj b/src/intemporal3/example/timer.clj new file mode 100644 index 0000000..dc7d462 --- /dev/null +++ b/src/intemporal3/example/timer.clj @@ -0,0 +1,35 @@ +(ns intemporal3.example.timer + (:require [intemporal3.core :as intemporal] + [intemporal3.internal.activity :as a] + [clojure.pprint])) + +;; ============================================================================ +;; Example Usage +;; ============================================================================ + + +;; Define activities +(defn activity-fn [arg] + (println "activity called" arg) + [:some arg]) + +;; Create engine +(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) + +;; Register activities +(a/register-activity! (:registry engine) #'activity-fn) + +;; Workflow with timer +(defn timed-flow [id] + (println "Starting timed flow") + (let [act (intemporal/stub #'activity-fn)] + (println "Sleeping for 2 seconds...") + (intemporal/sleep 2000) + (println "Woke up!") + {:result (act id)})) + +(println "\n=== Timed Workflow ===") +(prn (intemporal/start-workflow engine + timed-flow [456] + :workflow-id "timed-flow" + :observer (:observer engine))) diff --git a/src/intemporal3/internal/context.clj b/src/intemporal3/internal/context.clj index 2c4aeec..aa020fc 100644 --- a/src/intemporal3/internal/context.clj +++ b/src/intemporal3/internal/context.clj @@ -25,6 +25,13 @@ (swap! (:seq-counter ctx) inc) seq))) +(defn update-seq! [event] + (when-let [last-seq (:last-seq event)] + (let [current-seq (dec @(:seq-counter (current-context)))] + (when (> last-seq current-seq) + (dotimes [_ (- last-seq current-seq)] + (next-seq!)))))) + (defn find-event [history event-type seq-num] (->> history (filter #(and (= (:event-type %) event-type) From 51a056c9febd6ed1a052489661379b44b213c255 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 15 Jan 2026 08:57:14 +0000 Subject: [PATCH 31/81] new id --- src/intemporal3/core.clj | 5 ++--- src/intemporal3/example/timer.clj | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index d077b15..4ed4661 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -1,6 +1,5 @@ (ns intemporal3.core - (:require [clojure.tools.logging :as log] - [intemporal3.internal.error :as error] + (:require [intemporal3.internal.error :as error] [intemporal3.internal.context :as ctx] [intemporal3.internal.activity :as a] [intemporal3.internal.runtime :as runtime] @@ -362,7 +361,7 @@ :retry-or-fail (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] - (log/infof "attempt %d: sleeping %s before retrying (next attempt: %d)" attempt backoff) + (prn (format "attempt %d: sleeping %s before retrying (next attempt: %d)" attempt backoff)) (Thread/sleep (long backoff)) (recur (inc attempt))) {:status :failed diff --git a/src/intemporal3/example/timer.clj b/src/intemporal3/example/timer.clj index dc7d462..0d5d982 100644 --- a/src/intemporal3/example/timer.clj +++ b/src/intemporal3/example/timer.clj @@ -31,5 +31,5 @@ (println "\n=== Timed Workflow ===") (prn (intemporal/start-workflow engine timed-flow [456] - :workflow-id "timed-flow" + ;:workflow-id "timed-flow" :observer (:observer engine))) From ea80c599691ebed8a804cba35c66f5d4bce80598 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 15 Jan 2026 19:52:20 +0000 Subject: [PATCH 32/81] refactor --- src/intemporal3/core.clj | 33 +++++++++++++++++++--------- src/intemporal3/internal/context.clj | 7 +++--- src/intemporal3/internal/runtime.clj | 26 +++++++++++++++++----- src/intemporal3/protocol.clj | 1 + src/intemporal3/store.clj | 7 ++++++ 5 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index 4ed4661..b620ad9 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -361,7 +361,7 @@ :retry-or-fail (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] - (prn (format "attempt %d: sleeping %s before retrying (next attempt: %d)" attempt backoff)) + (prn (format "attempt %d: sleeping %s before retrying" attempt backoff)) (Thread/sleep (long backoff)) (recur (inc attempt))) {:status :failed @@ -594,7 +594,7 @@ :continue)))) (defn- run-workflow-internal - [store executor scheduler registry workflow-id workflow-fn args + [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args {:keys [observer max-iterations wake-fn] :or {max-iterations 1000}}] (loop [iteration 0] @@ -764,19 +764,32 @@ - :workflow-id - Custom workflow ID (default: random UUID) - :observer - IWorkflowObserver for monitoring - :max-iterations - Maximum replay iterations (default: 1000)" - [{:keys [store executor scheduler registry]} workflow-fn args + [{:keys [store executor scheduler registry] :as engine} workflow-fn args & {:keys [workflow-id observer max-iterations] :or {max-iterations 1000}}] - (let [wf-id (or workflow-id (str (random-uuid)))] + (let [wf-id (or workflow-id (str (random-uuid))) + resume-promise (promise) + wake-fn (fn [] + (when observer + (p/on-workflow-resumed observer wf-id)) + (deliver resume-promise + (run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations})))] (p/save-event store wf-id {:event-type :workflow-started :workflow-id wf-id :args (vec args) :timestamp (System/currentTimeMillis)}) (when observer (p/on-workflow-started observer wf-id args)) - (run-workflow-internal store executor scheduler registry wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations}))) + (let [result (run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + ;; If workflow is waiting for timer/signal, block until wake-fn delivers result + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) + @resume-promise + result)))) (defn resume-workflow "Resume a waiting workflow (e.g., after signal delivery or timer). @@ -794,12 +807,12 @@ Options: - :observer - IWorkflowObserver - :max-iterations - Maximum replay iterations" - [{:keys [store executor scheduler registry]} workflow-id workflow-fn args + [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args & {:keys [observer max-iterations] :or {max-iterations 1000}}] (when observer (p/on-workflow-resumed observer workflow-id)) - (run-workflow-internal store executor scheduler registry workflow-id workflow-fn args + (run-workflow-internal engine workflow-id workflow-fn args {:observer observer :max-iterations max-iterations})) @@ -862,7 +875,7 @@ (let [registry (a/make-registry) log-atom (when enable-logging (atom []))] {:store (store/->InMemoryStore (atom {})) - :executor (runtime/make-parallel-executor registry + :executor (runtime/make-vthreads-executor registry :threads threads :default-timeout-ms default-timeout-ms) :scheduler (runtime/make-scheduler :threads scheduler-threads) diff --git a/src/intemporal3/internal/context.clj b/src/intemporal3/internal/context.clj index aa020fc..7f7e790 100644 --- a/src/intemporal3/internal/context.clj +++ b/src/intemporal3/internal/context.clj @@ -13,6 +13,9 @@ (or *workflow-context* (throw (ex-info "Not in workflow context" {})))) +(defn workflow-id [] + (:workflow-id (current-context))) + (defn check-cancelled! [] (let [ctx (current-context)] (when (p/is-cancelled? (:store ctx) (:workflow-id ctx)) @@ -38,10 +41,6 @@ (= (:seq %) seq-num))) first)) -(defn find-events-by-type [history event-type] - (->> history - (filter #(= (:event-type %) event-type)))) - (defn add-pending-event! [event] (let [ctx (current-context)] (swap! (:pending-events ctx) conj event))) diff --git a/src/intemporal3/internal/runtime.clj b/src/intemporal3/internal/runtime.clj index 5178c9e..c6488f6 100644 --- a/src/intemporal3/internal/runtime.clj +++ b/src/intemporal3/internal/runtime.clj @@ -1,7 +1,7 @@ (ns intemporal3.internal.runtime (:require [intemporal3.internal.error :as error] [intemporal3.protocol :as p]) - (:import (java.util.concurrent ExecutorService Executors Future ScheduledExecutorService ScheduledFuture TimeUnit TimeoutException))) + (:import (java.util.concurrent ArrayBlockingQueue ExecutorService Executors Future ScheduledExecutorService ScheduledFuture ThreadPoolExecutor ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException))) ;; ============================================================================ @@ -106,11 +106,27 @@ (.shutdown pool) (.awaitTermination pool 30 TimeUnit/SECONDS))) -(defn make-parallel-executor +(defn create-bounded-executor + "Creates a bounded ThreadPoolExecutor with virtual threads" + [max-concurrent queue-capacity] + (ThreadPoolExecutor. + max-concurrent ; core pool size + max-concurrent ; max pool size + 0 ; keep alive time + TimeUnit/MILLISECONDS + (ArrayBlockingQueue. queue-capacity) + (.factory (Thread/ofVirtual)) + (ThreadPoolExecutor$CallerRunsPolicy.))) + +(defn make-vthreads-executor "Create an executor that runs activities in parallel using a thread pool" - [activity-registry-atom & {:keys [threads default-timeout-ms] - :or {threads 4 default-timeout-ms 30000}}] + [activity-registry-atom & {:keys [max-concurrent default-timeout-ms] + :or {default-timeout-ms 30000}}] (->ParallelActivityExecutor - (Executors/newFixedThreadPool threads) + (if max-concurrent + (create-bounded-executor max-concurrent max-concurrent) + (Executors/newVirtualThreadPerTaskExecutor)) activity-registry-atom default-timeout-ms)) + + diff --git a/src/intemporal3/protocol.clj b/src/intemporal3/protocol.clj index 3881ec7..e93c7a6 100644 --- a/src/intemporal3/protocol.clj +++ b/src/intemporal3/protocol.clj @@ -10,6 +10,7 @@ (load-history [store workflow-id] "Load history for a workflow") (save-event [store workflow-id event] "Append an event to workflow history") (save-events [store workflow-id events] "Append multiple events atomically") + (find-event [event-type seq-num] "Finds the given event type by its sequence number") (get-pending-signals [store workflow-id] "Get pending signals for workflow") (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") (consume-signal [store workflow-id signal-name] "Consume and remove a signal") diff --git a/src/intemporal3/store.clj b/src/intemporal3/store.clj index fca6855..7e68b5f 100644 --- a/src/intemporal3/store.clj +++ b/src/intemporal3/store.clj @@ -21,6 +21,13 @@ (fnil into []) events)) events) + (find-event [this worfklow-id event-type seq-num] + (let [history (p/load-history this worfklow-id)] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first))) + (get-pending-signals [_ workflow-id] (get-in @state [:workflows workflow-id :signals] {})) From c1c10744d5b385b3b74b69e093c7d26f807a35b5 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 15 Jan 2026 23:59:52 +0000 Subject: [PATCH 33/81] continue store/ctx refactor --- src/intemporal3/core.clj | 93 +++++++++++++++++++--------- src/intemporal3/example/async.clj | 8 +-- src/intemporal3/internal/context.clj | 27 ++++++-- src/intemporal3/protocol.clj | 2 +- src/intemporal3/store.clj | 5 -- 5 files changed, 90 insertions(+), 45 deletions(-) diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index b620ad9..be7353d 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -27,9 +27,13 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing (ctx/find-event history :activity-completed seq-num) - existing-failed (ctx/find-event history :activity-failed seq-num)] + ;history @(:history ctx) + ;existing (ctx/find-event history :activity-completed seq-num) + ;existing-failed (ctx/find-event history :activity-failed seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :activity-completed seq-num) + existing-failed (p/find-event store workflow-id :activity-failed seq-num)] (cond ;; Replay: return cached result existing @@ -72,10 +76,15 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing-completed (ctx/find-event history :async-completed seq-num) - existing-failed (ctx/find-event history :async-failed seq-num) - existing-started (ctx/find-event history :async-started seq-num)] + ;history @(:history ctx) + ;existing-completed (ctx/find-event history :async-completed seq-num) + ;existing-failed (ctx/find-event history :async-failed seq-num) + ;existing-started (ctx/find-event history :async-started seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing-completed (p/find-event store workflow-id :async-completed seq-num) + existing-failed (p/find-event store workflow-id :async-failed seq-num) + existing-started (p/find-event store workflow-id :async-started seq-num)] (cond ;; Already completed - advance seq past consumed numbers during replay existing-completed @@ -138,9 +147,14 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) handle-seq (:seq-num handle) - history @(:history ctx) - completed (ctx/find-event history :async-completed handle-seq) - failed (ctx/find-event history :async-failed handle-seq)] + ;history @(:history ctx) + ;completed (ctx/find-event history :async-completed handle-seq) + ;failed (ctx/find-event history :async-failed handle-seq) + + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + completed (p/find-event store workflow-id :async-completed handle-seq) + failed (p/find-event store workflow-id :async-failed handle-seq)] (cond completed (:result completed) @@ -166,8 +180,11 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing (ctx/find-event history :join-any-completed seq-num)] + ;history @(:history ctx) + ;existing (ctx/find-event history :join-any-completed seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :join-any-completed seq-num)] (if existing {:index (:index existing) :result (:result existing)} @@ -175,7 +192,7 @@ (let [completed-idx (first (keep-indexed (fn [idx handle] - (when (ctx/find-event history :async-completed (:seq-num handle)) + (when (p/find-event store workflow-id :async-completed (:seq-num handle)) idx)) handles))] (if completed-idx @@ -201,8 +218,11 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing (ctx/find-event history :signal-received seq-num)] + ;history @(:history ctx) + ;existing (ctx/find-event history :signal-received seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :signal-received seq-num)] (if existing (:payload existing) (throw (error/make-suspension :wait-signal {:seq seq-num @@ -215,8 +235,11 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing (ctx/find-event history :signal-wait-completed seq-num)] + ;history @(:history ctx) + ;existing (ctx/find-event history :signal-wait-completed seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :signal-wait-completed seq-num)] (if existing (if (:received existing) {:received true :payload (:payload existing)} @@ -227,7 +250,8 @@ :timeout-ms timeout-ms :deadline (+ (System/currentTimeMillis) timeout-ms)}))))) -;; ============================================================================ +;; ================================================================ +;; ============ ;; Timers ;; ============================================================================ @@ -237,8 +261,11 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) - existing (ctx/find-event history :timer-fired seq-num)] + ;history @(:history ctx) + ;existing (ctx/find-event history :timer-fired seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :timer-fired seq-num)] (if existing nil (let [fire-at (+ (System/currentTimeMillis) ms)] @@ -262,10 +289,14 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - history @(:history ctx) + ;history @(:history ctx) child-wf-id (or child-id (str (:workflow-id ctx) "/child-" seq-num)) - existing (ctx/find-event history :child-workflow-completed seq-num) - existing-failed (ctx/find-event history :child-workflow-failed seq-num)] + ;existing (ctx/find-event history :child-workflow-completed seq-num) + ;existing-failed (ctx/find-event history :child-workflow-failed seq-num) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :child-workflow-completed seq-num) + existing-failed (p/find-event store workflow-id :child-workflow-failed seq-num)] (cond existing (:result existing) @@ -550,23 +581,27 @@ (when (seq pending-events) (p/save-events store workflow-id pending-events)) ;; Check if the handle is now complete - (let [history (p/load-history store workflow-id) - completed (ctx/find-event history :async-completed handle-seq) - failed (ctx/find-event history :async-failed handle-seq)] + (let [;history (p/load-history store workflow-id) + ;completed (ctx/find-event history :async-completed handle-seq) + ;failed (ctx/find-event history :async-failed handle-seq) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + completed (p/find-event store workflow-id :async-completed handle-seq) + failed (p/find-event store workflow-id :async-failed handle-seq)] (if (or completed failed) :continue :wait-async)))))) (declare run-workflow-internal) -(defn- process-child-workflow [store executor scheduler registry workflow-id +(defn- process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id suspension-data pending-events observer] (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] (p/save-events store workflow-id pending-events) ;; Execute child workflow synchronously for now ;; In a real implementation, this could be async (try - (let [result (run-workflow-internal store executor scheduler registry + (let [result (run-workflow-internal engine child-workflow-id workflow-fn args {:observer observer :max-iterations 1000})] @@ -712,7 +747,7 @@ :continue) :child-workflow - (process-child-workflow store executor scheduler registry + (process-child-workflow engine workflow-id (:suspension-data exec-result) pending-events-list diff --git a/src/intemporal3/example/async.clj b/src/intemporal3/example/async.clj index b4e119f..1cec999 100644 --- a/src/intemporal3/example/async.clj +++ b/src/intemporal3/example/async.clj @@ -80,11 +80,11 @@ (intemporal/shutdown-engine engine) ;; Using the convenience macro - (intemporal/with-workflow-engine [eng {:threads 4 :enable-logging true}] - (a/register-activity! (:registry eng) #'activity-fn) - (a/register-activity! (:registry eng) #'slow-activity) + (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] + (a/register-activity! (:registry engine) #'activity-fn) + (a/register-activity! (:registry engine) #'slow-activity) (let [result (intemporal/start-workflow engine my-parallel-flow [999] - :observer (:observer eng))] + :observer (:observer engine))] (println "Result:" result)))) diff --git a/src/intemporal3/internal/context.clj b/src/intemporal3/internal/context.clj index 7f7e790..fdf603a 100644 --- a/src/intemporal3/internal/context.clj +++ b/src/intemporal3/internal/context.clj @@ -9,13 +9,28 @@ (def ^:dynamic *workflow-context* nil) -(defn current-context [] +(defn current-context + "Has the following keys: + + :history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events pending-events + :pending-asyncs pending-asyncs + :store store + :registry registry + :observer observer + " + [] (or *workflow-context* (throw (ex-info "Not in workflow context" {})))) -(defn workflow-id [] +(defn current-workflow-id [] (:workflow-id (current-context))) +(defn current-store [] + (:store (current-context))) + (defn check-cancelled! [] (let [ctx (current-context)] (when (p/is-cancelled? (:store ctx) (:workflow-id ctx)) @@ -23,10 +38,10 @@ (defn next-seq! [] (check-cancelled!) - (let [ctx (current-context)] - (let [seq @(:seq-counter ctx)] - (swap! (:seq-counter ctx) inc) - seq))) + (let [ctx (current-context) + seq @(:seq-counter ctx)] + (swap! (:seq-counter ctx) inc) + seq)) (defn update-seq! [event] (when-let [last-seq (:last-seq event)] diff --git a/src/intemporal3/protocol.clj b/src/intemporal3/protocol.clj index e93c7a6..90e25d8 100644 --- a/src/intemporal3/protocol.clj +++ b/src/intemporal3/protocol.clj @@ -10,7 +10,7 @@ (load-history [store workflow-id] "Load history for a workflow") (save-event [store workflow-id event] "Append an event to workflow history") (save-events [store workflow-id events] "Append multiple events atomically") - (find-event [event-type seq-num] "Finds the given event type by its sequence number") + (find-event [store workflow-id event-type seq-num] "Finds the given event type by its sequence number") (get-pending-signals [store workflow-id] "Get pending signals for workflow") (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") (consume-signal [store workflow-id signal-name] "Consume and remove a signal") diff --git a/src/intemporal3/store.clj b/src/intemporal3/store.clj index 7e68b5f..e4de641 100644 --- a/src/intemporal3/store.clj +++ b/src/intemporal3/store.clj @@ -65,8 +65,3 @@ :workflow-completed :completed :workflow-failed :failed :running)))))) - -(defn ->InMemoryStore - "Create a new in-memory store" - ([] (->InMemoryStore (atom {}))) - ([state] (InMemoryStore. state))) From 659e9d9ae4956d3e3d1033ac26a81f0d95ea9643 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 00:06:09 +0000 Subject: [PATCH 34/81] fix cancellation --- src/intemporal3/core.clj | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index be7353d..7f392b9 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -805,26 +805,33 @@ (let [wf-id (or workflow-id (str (random-uuid))) resume-promise (promise) wake-fn (fn [] - (when observer - (p/on-workflow-resumed observer wf-id)) - (deliver resume-promise - (run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations})))] + (try + (when observer + (p/on-workflow-resumed observer wf-id)) + (deliver resume-promise + (run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations})) + (catch Exception e + (deliver resume-promise {:status :failed :error e}))))] (p/save-event store wf-id {:event-type :workflow-started :workflow-id wf-id :args (vec args) :timestamp (System/currentTimeMillis)}) (when observer (p/on-workflow-started observer wf-id args)) - (let [result (run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn})] - ;; If workflow is waiting for timer/signal, block until wake-fn delivers result - (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) - @resume-promise - result)))) + (try + (let [result (run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + ;; If workflow is waiting for timer/signal, block until wake-fn delivers result + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) + @resume-promise + result)) + (catch Exception e + ;; If cancelled/failed before entering wait state, re-throw + (throw e))))) (defn resume-workflow "Resume a waiting workflow (e.g., after signal delivery or timer). From 1df5b6c1341da8ddcec55101eb3695e9337abd8a Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 00:25:10 +0000 Subject: [PATCH 35/81] refactor --- src/intemporal3/core.clj | 8 ++----- src/intemporal3/internal/activity.clj | 3 ++- src/intemporal3/internal/runtime.clj | 33 ++++++++++++++++++++++++--- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/intemporal3/core.clj b/src/intemporal3/core.clj index 7f392b9..b828b11 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal3/core.clj @@ -435,12 +435,8 @@ (p/save-events store workflow-id pending-events) ;; Execute all activities in parallel - (let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] - {:activity-name activity-name - :args args - :timeout-ms timeout-ms}) - pending-asyncs) - results (p/execute-activities-parallel executor activities) + ;; Pass complete async-info including retry-policy, activity-seq, handle-seq + (let [results (p/execute-activities-parallel executor pending-asyncs) now (System/currentTimeMillis) ;; Create completion events for both activities and async handles diff --git a/src/intemporal3/internal/activity.clj b/src/intemporal3/internal/activity.clj index 3e51360..b46b1f2 100644 --- a/src/intemporal3/internal/activity.clj +++ b/src/intemporal3/internal/activity.clj @@ -66,4 +66,5 @@ (defn should-retry? [policy error attempt] (and (< attempt (:max-attempts policy)) - ((:retryable-fn policy) error))) \ No newline at end of file + ((:retryable-fn policy) error))) + diff --git a/src/intemporal3/internal/runtime.clj b/src/intemporal3/internal/runtime.clj index c6488f6..9283e3d 100644 --- a/src/intemporal3/internal/runtime.clj +++ b/src/intemporal3/internal/runtime.clj @@ -1,5 +1,6 @@ (ns intemporal3.internal.runtime (:require [intemporal3.internal.error :as error] + [intemporal3.internal.activity :as activity] [intemporal3.protocol :as p]) (:import (java.util.concurrent ArrayBlockingQueue ExecutorService Executors Future ScheduledExecutorService ScheduledFuture ThreadPoolExecutor ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException))) @@ -70,7 +71,7 @@ (execute-activities-parallel [_ activities] (if (empty? activities) [] - (let [futures (mapv (fn [{:keys [activity-name args timeout-ms]}] + (let [futures (mapv (fn [{:keys [activity-name args timeout-ms retry-policy]}] (let [act (get @registry-atom activity-name) timeout (or timeout-ms default-timeout-ms)] (if (nil? act) @@ -79,8 +80,34 @@ {:future (.submit pool ^Callable (fn [] (let [start (System/currentTimeMillis)] - {:result (apply (:fn act) args) - :duration (- (System/currentTimeMillis) start)}))) + (if (nil? retry-policy) + ;; No retry - execute once + {:result (apply (:fn act) args) + :duration (- (System/currentTimeMillis) start)} + ;; With retry + (loop [attempt 1] + (let [outcome (try + ;; 1. Try the operation + (let [result (apply (:fn act) args)] + {:status :success + :data {:result result + :duration (- (System/currentTimeMillis) start) + :attempts attempt}}) + (catch Exception e + ;; 2. If it fails, determine if we should retry + (if (activity/should-retry? retry-policy e attempt) + (do + ;; Perform side-effects (logging, sleeping) here + (Thread/sleep (long (activity/calculate-backoff retry-policy attempt))) + ;; Return a signal value instead of recurring directly + {:status :retry}) + ;; If we shouldn't retry, rethrow + (throw e))))] + + ;; 3. Check the outcome outside the try/catch + (if (= (:status outcome) :retry) + (recur (inc attempt)) ;; This is now in a valid tail position + (:data outcome)))))))) :timeout timeout :activity-name activity-name}))) activities)] From fb6ea6412bb01152ba48e1d5f1709bedbadee166 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 17:36:01 +0000 Subject: [PATCH 36/81] small improvement --- src/{intemporal3 => }/definition.md | 0 src/improvements.md | 487 ++++++++++++++++++ src/{intemporal3 => intemporal}/core.clj | 18 +- src/intemporal/error.cljc | 27 - .../example/async.clj | 6 +- .../example/cancellation.clj | 6 +- .../example/child.clj | 6 +- .../example/error.clj | 6 +- .../example/signal.clj | 6 +- .../example/timer.clj | 6 +- .../internal/activity.clj | 2 +- .../internal/context.clj | 6 +- src/intemporal/internal/engine.clj | 1 + .../internal/error.clj | 2 +- .../internal/runtime.clj | 8 +- src/intemporal/macros.cljc | 227 -------- src/{intemporal3 => intemporal}/observer.clj | 4 +- src/{intemporal3 => intemporal}/protocol.clj | 2 +- src/{intemporal3 => intemporal}/store.clj | 4 +- src/intemporal/store.cljc | 340 ------------ src/intemporal/store/foundationdb.clj | 255 --------- src/intemporal/store/internal.cljc | 139 ----- src/intemporal/store/jdbc.clj | 290 ----------- src/intemporal/workflow.cljc | 222 -------- src/intemporal/workflow/internal.cljc | 362 ------------- src/intemporal3/internal/engine.clj | 1 - 26 files changed, 530 insertions(+), 1903 deletions(-) rename src/{intemporal3 => }/definition.md (100%) create mode 100644 src/improvements.md rename src/{intemporal3 => intemporal}/core.clj (99%) delete mode 100644 src/intemporal/error.cljc rename src/{intemporal3 => intemporal}/example/async.clj (96%) rename src/{intemporal3 => intemporal}/example/cancellation.clj (91%) rename src/{intemporal3 => intemporal}/example/child.clj (88%) rename src/{intemporal3 => intemporal}/example/error.clj (87%) rename src/{intemporal3 => intemporal}/example/signal.clj (95%) rename src/{intemporal3 => intemporal}/example/timer.clj (88%) rename src/{intemporal3 => intemporal}/internal/activity.clj (98%) rename src/{intemporal3 => intemporal}/internal/context.clj (93%) create mode 100644 src/intemporal/internal/engine.clj rename src/{intemporal3 => intemporal}/internal/error.clj (98%) rename src/{intemporal3 => intemporal}/internal/runtime.clj (97%) delete mode 100644 src/intemporal/macros.cljc rename src/{intemporal3 => intemporal}/observer.clj (98%) rename src/{intemporal3 => intemporal}/protocol.clj (99%) rename src/{intemporal3 => intemporal}/store.clj (97%) delete mode 100644 src/intemporal/store.cljc delete mode 100644 src/intemporal/store/foundationdb.clj delete mode 100644 src/intemporal/store/internal.cljc delete mode 100644 src/intemporal/store/jdbc.clj delete mode 100644 src/intemporal/workflow.cljc delete mode 100644 src/intemporal/workflow/internal.cljc delete mode 100644 src/intemporal3/internal/engine.clj diff --git a/src/intemporal3/definition.md b/src/definition.md similarity index 100% rename from src/intemporal3/definition.md rename to src/definition.md diff --git a/src/improvements.md b/src/improvements.md new file mode 100644 index 0000000..1fdc9dd --- /dev/null +++ b/src/improvements.md @@ -0,0 +1,487 @@ +# intemporal Core Namespace Improvements + +Based on analysis of `src/intemporal/core.clj` (948 lines) + +--- + +## Critical Issues (Fix Immediately) + +### 1. Concurrency bug in wake-fn (High Severity) +**Location:** [core.clj:807-816](src/intemporal/core.clj#L807-L816) + +**Problem:** Multiple threads could call `wake-fn` simultaneously causing data corruption. The promise delivery is not thread-safe and could happen multiple times. + +**Impact:** Race conditions when timers fire, workflow could resume multiple times concurrently. + +**Fix:** +```clojure +;; Add thread-safe promise delivery +(let [delivered? (atom false) + wake-fn (fn [] + (when (compare-and-set! delivered? false true) + (try + (when observer + (p/on-workflow-resumed observer wf-id)) + (deliver resume-promise + (run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations})) + (catch Exception e + (deliver resume-promise {:status :failed :error e})))))] +``` + +--- + +### 2. Race condition in signal consumption (High Severity) +**Location:** [core.clj:511, 530, 555](src/intemporal/core.clj#L511) + +**Problem:** Signal is consumed in one operation but recorded in another. Between these steps, another thread could observe inconsistent state. + +```clojure +;; Step 1: Consume +(if-let [signal-data (p/consume-signal store workflow-id signal-name)] + ;; Step 2: Record (not atomic with step 1!) + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed ...}) +``` + +**Impact:** Concurrent workflow resumptions could see signal consumed but no event recorded. + +**Fix:** Add atomic consume-and-record operation at the protocol level: +```clojure +(defprotocol IStore + (consume-and-record-signal [store workflow-id signal-name event] + "Atomically consume signal and record event")) +``` + +--- + +### 3. Lost activity seq & retry-policy in async completion (High Severity) +**Location:** [core.clj:438-443](src/intemporal/core.clj#L438-L443) + +**Problem:** When building activities for parallel execution, the `:retry-policy` field is dropped: + +```clojure +(let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] + {:activity-name activity-name + :args args + :timeout-ms timeout-ms}) ;; ❌ retry-policy LOST! + pending-asyncs) +``` + +**Impact:** +- Retry policies in async activities are silently ignored +- If executor returns results out-of-order, events get mismatched +- No protection against partial failures + +**Fix:** Pass complete async-info to executor: +```clojure +;; In core.clj +(let [results (p/execute-activities-parallel executor pending-asyncs)] + +;; In runtime.clj - update execute-activities-parallel to handle retry-policy +(execute-activities-parallel [_ activities] + (let [futures (mapv (fn [{:keys [activity-name args timeout-ms retry-policy]}] + ;; Handle retry-policy in parallel execution +``` + +--- + +## High Priority + +### 4. Remove dead commented code (Medium Severity) +**Locations:** Lines 30-32, 79-82, 150-152, 183-184, 221-222, 238-239, 264-265, 292-294 + +**Problem:** Multiple functions contain commented-out code that retrieves history from an atom: +```clojure +;history @(:history ctx) +;existing (ctx/find-event history :activity-completed seq-num) +``` + +**Impact:** Creates confusion about actual implementation, technical debt from incomplete refactoring. + +**Fix:** Delete all commented code blocks. If history lookup from context is needed, implement proper caching. + +--- + +### 5. Missing validation in resume-workflow (Medium Severity) +**Location:** [core.clj:836-859](src/intemporal/core.clj#L836-L859) + +**Problem:** `resume-workflow` doesn't validate that workflow-fn/args match the original workflow. Users could call: +```clojure +(resume-workflow engine wf-id different-fn different-args) +``` + +**Impact:** Replay could execute wrong code with wrong arguments, leading to data corruption. + +**Fix:** +```clojure +(defn resume-workflow [engine workflow-id workflow-fn args & opts] + (let [history (p/load-history (:store engine) workflow-id) + started-event (first (filter #(= :workflow-started (:event-type %)) history))] + (when started-event + (when (not= (vec args) (:args started-event)) + (throw (ex-info "Resume args don't match original workflow" + {:original (:args started-event) + :provided args})))) + ;; Continue with resume... +``` + +--- + +### 6. Extract duplicate event lookup pattern (Low-Medium Severity) +**Locations:** Repeated 8+ times throughout file + +**Problem:** Same pattern repeated everywhere: +```clojure +(let [store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id event-type seq-num)] +``` + +**Impact:** Code duplication, harder to maintain. + +**Fix:** Create helper function: +```clojure +(defn- get-existing-event [event-type seq-num] + (p/find-event (ctx/current-store) (ctx/current-workflow-id) event-type seq-num)) + +;; Usage: +(let [existing (get-existing-event :activity-completed seq-num)] +``` + +--- + +### 7. Missing validation in join-any (Low-Medium Severity) +**Location:** [core.clj:175-208](src/intemporal/core.clj#L175-L208) + +**Problem:** No validation that `handles` vector is non-empty. Empty vector causes NullPointerException: +```clojure +(let [completed-idx (first (keep-indexed ...))] ;; returns nil + (nth handles completed-idx)) ;; NPE! +``` + +**Fix:** +```clojure +(defn join-any [handles] + (when (empty? handles) + (throw (ex-info "join-any requires at least one handle" {}))) + (ctx/check-cancelled!) + ;; Continue... +``` + +--- + +## Medium Priority + +### 8. Performance: Inefficient history loading (Medium Severity) +**Location:** [core.clj:648](src/intemporal/core.clj#L648) + +**Problem:** History loaded from store on every iteration: +```clojure +(loop [iteration 0] + ... + (let [history (p/load-history store workflow-id) ;; Every iteration! +``` + +**Impact:** For deep workflows with long histories, this loads entire history repeatedly. + +**Fix:** Cache history and reload only when new events expected: +```clojure +(defn- run-workflow-internal [...] + (let [history-cache (atom nil)] + (loop [iteration 0] + (let [history (or @history-cache + (reset! history-cache (p/load-history store workflow-id))) +``` + +--- + +### 9. Unhandled observer exceptions (Medium Severity) +**Location:** [core.clj:449-454](src/intemporal/core.clj#L449-L454) + +**Problem:** Observer calls not wrapped in try-catch: +```clojure +(when observer + (if (= :success (:status result)) + (p/on-async-completed observer ...) ;; Could throw! + (p/on-async-failed observer ...))) ;; Could throw! +``` + +**Impact:** If observer throws, interrupts event creation and leaves workflow inconsistent. + +**Fix:** +```clojure +(when observer + (try + (if (= :success (:status result)) + (p/on-async-completed observer ...) + (p/on-async-failed observer ...)) + (catch Exception e + (println "Observer error:" (.getMessage e))))) +``` + +--- + +### 10. Inconsistent return types (Low-Medium Severity) +**Location:** [core.clj:662-780](src/intemporal/core.clj#L662-L780) + +**Problem:** Different status returns have different shaped maps: +- `:completed` → `{:status :completed :result ...}` +- `:cancelled` → `{:status :cancelled :workflow-id ...}` +- `:failed` → `{:status :failed :error ...}` +- `:waiting-timer` → `{:status :waiting-timer :workflow-id ...}` + +**Impact:** Inconsistent API, harder to work with results. + +**Fix:** Normalize all return maps: +```clojure +{:status :completed/:cancelled/:failed/:waiting-timer + :workflow-id workflow-id ;; Always present + :result (when completed) result + :error (when failed) error} +``` + +--- + +### 11. Missing error context in child workflow failures (Low-Medium Severity) +**Location:** [core.clj:617-621](src/intemporal/core.clj#L617-L621) + +**Problem:** Error only contains status, not actual error details: +```clojure +:error {:status (:status result)} ;; Only status! +``` + +Compare to actual exception handling at line 627: +```clojure +:error (error/throwable->map e) ;; Full error context +``` + +**Fix:** +```clojure +:error (when-let [err (:error result)] + (if (map? err) err (error/throwable->map err))) +``` + +--- + +## Architectural Improvements + +### 12. Separate replay from execution logic (High Priority) +**Location:** [core.clj:631-780](src/intemporal/core.clj#L631-L780) + +**Problem:** `run-workflow-internal` is 150+ lines mixing: +1. Workflow replaying logic (loading history, checking cached results) +2. Workflow execution logic (running function, handling suspension) +3. External service orchestration (processing asyncs, timers, signals) + +**Impact:** Hard to understand, test, and maintain. + +**Fix:** Separate concerns into focused functions: +```clojure +(defn- replay-workflow-fn [workflow-fn args history] + ;; Determine execution path based on history + ) + +(defn- handle-suspension [engine suspension-type suspension-data pending-events] + ;; Dispatch to appropriate handler + ) + +(defn- run-workflow-internal [engine workflow-id workflow-fn args options] + ;; Orchestrate the above + ) +``` + +--- + +### 13. Extract retry logic (Medium Priority) +**Location:** [core.clj:348-401](src/intemporal/core.clj#L348-L401) + +**Problem:** `execute-with-retry` is 50+ lines with nested loop. Retry logic tightly coupled to activity execution. + +**Fix:** Extract into separate function: +```clojure +(defn- execute-with-retries [execute-fn retry-policy on-attempt on-failure] + (loop [attempt 1] + (let [result (try + {:status :success :value (execute-fn)} + (catch Exception e + {:status :error :exception e}))] + (case (:status result) + :success (:value result) + :error (if (should-retry? retry-policy (:exception result) attempt) + (do (on-attempt attempt) + (Thread/sleep (calculate-backoff retry-policy attempt)) + (recur (inc attempt))) + (do (on-failure attempt) + (throw (:exception result)))))))) +``` + +--- + +### 14. Consolidate pending async processing (Medium Priority) +**Locations:** Lines 701-707, 742-747, 666-670 + +**Problem:** Pending asyncs processed in multiple places with duplicated logic: +```clojure +(when (seq pending-asyncs-list) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer)) +``` + +**Fix:** Extract helper: +```clojure +(defn- process-pending-asyncs-if-any [store executor workflow-id pending-asyncs pending-events observer] + (when (seq pending-asyncs) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer)) + :continue) + +;; Usage everywhere: +(process-pending-asyncs-if-any store executor workflow-id ...) +``` + +--- + +### 15. Make state machine explicit (Low-Medium Priority) +**Location:** Throughout file + +**Problem:** Workflow states (started → running/suspended → completed/failed/cancelled) not explicitly modeled. Current approach uses nested case statements and implicit state in event history. + +**Fix:** Consider using explicit state machine: +```clojure +(defprotocol IWorkflowState + (handle-completion [state result]) + (handle-suspension [state type data]) + (handle-cancellation [state])) + +(defrecord RunningState [...] + IWorkflowState + (handle-completion [this result] + (->CompletedState ...)) + (handle-suspension [this type data] + (->SuspendedState ...))) +``` + +--- + +## Nice-to-Have + +### 16. Improve docstrings (Low Priority) +**Locations:** `stub` (lines 14-64), `async` (lines 72-140) + +**Problem:** Docstrings incomplete. For example, `async` doesn't explain: +- What happens if thunk completes synchronously vs. suspends +- Why handle is returned before thunk execution +- How seq-num tracking works + +**Fix:** Expand docstrings with examples: +```clojure +(defn async + "Execute a thunk asynchronously within a workflow. + + Returns an AsyncHandle immediately, before the thunk executes. + + Behavior: + - First execution: Thunk starts, returns handle for later join + - During replay: Returns same handle, thunk result cached + + Example: + (let [h1 (async (fn [] (activity-1))) + h2 (async (fn [] (activity-2)))] + ;; Both activities run in parallel + [(join h1) (join h2)]) + + The thunk can: + - Call activities (which will be batched) + - Throw exceptions (captured in async-failed event) + - Return values (captured in async-completed event)" + [thunk] + ...) +``` + +--- + +### 17. Add bounds to pending events (Low Priority) +**Locations:** Lines 649-650 + +**Problem:** Unbounded accumulation: +```clojure +pending-events (atom []) +pending-asyncs (atom []) +``` + +**Impact:** Very long-running workflows could accumulate large vectors. + +**Fix:** Consider batching or size limits: +```clojure +(defn- add-pending-event! [event] + (let [events (:pending-events (current-context))] + (swap! events conj event) + (when (> (count @events) 1000) + (flush-pending-events!)))) +``` + +--- + +### 18. Consider splitting the file (Low Priority) + +**Problem:** At 948 lines, file is getting unwieldy. + +**Recommendation:** Split into: +- `core_operations.clj` - stub, async, join, signals, timers, child-workflows (~200 lines) +- `core_internal.clj` - Internal execution engine (~300 lines) +- `core.clj` - Public API (~100 lines) +- `core_helpers.clj` - Convenience functions (~100 lines) + +--- + +## Summary by Priority + +### Critical (Fix First) +1. Concurrency bug in wake-fn delivery +2. Race condition in signal consumption +3. Lost activity seq & retry-policy in async completion + +### High Priority +4. Remove dead commented code +5. Missing validation in resume-workflow +6. Extract duplicate event lookup helper +7. Missing validation in join-any + +### Medium Priority +8. Cache history loading +9. Wrap observer calls in try-catch +10. Normalize return types +11. Include error context in child workflow failures +12. **Architectural:** Separate replay from execution logic +13. **Architectural:** Extract retry logic +14. **Architectural:** Consolidate pending async processing + +### Nice-to-Have +15. Make state machine explicit +16. Improve docstrings +17. Add bounds to pending events +18. Split large file + +--- + +## Estimated Impact + +**Fixing Critical + High Priority issues:** +- Eliminates data corruption risks +- Makes retry policies work correctly in async contexts +- Improves code maintainability significantly +- Prevents silent failures + +**Fixing Medium Priority issues:** +- Improves performance for deep workflows +- Makes codebase more robust to errors +- Improves API consistency + +**Architectural improvements:** +- Makes codebase easier to understand and test +- Reduces complexity of core functions +- Enables easier future enhancements diff --git a/src/intemporal3/core.clj b/src/intemporal/core.clj similarity index 99% rename from src/intemporal3/core.clj rename to src/intemporal/core.clj index b828b11..6d05290 100644 --- a/src/intemporal3/core.clj +++ b/src/intemporal/core.clj @@ -1,11 +1,11 @@ -(ns intemporal3.core - (:require [intemporal3.internal.error :as error] - [intemporal3.internal.context :as ctx] - [intemporal3.internal.activity :as a] - [intemporal3.internal.runtime :as runtime] - [intemporal3.protocol :as p] - [intemporal3.store :as store] - [intemporal3.observer :as obs])) +(ns intemporal.core + (:require [intemporal.internal.error :as error] + [intemporal.internal.context :as ctx] + [intemporal.internal.activity :as a] + [intemporal.internal.runtime :as runtime] + [intemporal.protocol :as p] + [intemporal.store :as store] + [intemporal.observer :as obs])) ;; ============================================================================ ;; Core Workflow Operations @@ -673,6 +673,7 @@ (when observer (p/on-workflow-completed observer workflow-id (:result exec-result))) {:status :completed + :workflow-id workflow-id :result (:result exec-result)}) :cancelled @@ -773,6 +774,7 @@ (when observer (p/on-workflow-failed observer workflow-id (error/throwable->map (:error exec-result)))) {:status :failed + :workflow-id workflow-id :error (:error exec-result)}))))) ;; ============================================================================ diff --git a/src/intemporal/error.cljc b/src/intemporal/error.cljc deleted file mode 100644 index 85ca2a6..0000000 --- a/src/intemporal/error.cljc +++ /dev/null @@ -1,27 +0,0 @@ -(ns intemporal.error - #?(:clj (:import [java.lang InterruptedException] - [java.util.concurrent RejectedExecutionException]))) - - -(defn interrupted? [e] - #?(:clj (instance? InterruptedException e) - :cljs false)) - -(defn rejected? [e] - #?(:clj (instance? RejectedExecutionException e) - :cljs false)) - -(defn internal-error? [ex] - (when-let [t (-> ex ex-data ::type)] - (or (= :internal t) - (= :panic t)))) - -(defn panic? [ex] - (and (instance? #?(:clj Exception :cljs js/Error) ex) - (= :panic (-> ex ex-data ::type)))) - -(defn internal-error [msg data] - (ex-info msg (merge data {::type :internal}))) - -(defn panic [msg] - (ex-info msg {::type :panic})) diff --git a/src/intemporal3/example/async.clj b/src/intemporal/example/async.clj similarity index 96% rename from src/intemporal3/example/async.clj rename to src/intemporal/example/async.clj index 1cec999..21e8770 100644 --- a/src/intemporal3/example/async.clj +++ b/src/intemporal/example/async.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.async - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.async + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) ;; ============================================================================ diff --git a/src/intemporal3/example/cancellation.clj b/src/intemporal/example/cancellation.clj similarity index 91% rename from src/intemporal3/example/cancellation.clj rename to src/intemporal/example/cancellation.clj index 68d4035..1d15cec 100644 --- a/src/intemporal3/example/cancellation.clj +++ b/src/intemporal/example/cancellation.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.cancellation - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.cancellation + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) ;; Define activities diff --git a/src/intemporal3/example/child.clj b/src/intemporal/example/child.clj similarity index 88% rename from src/intemporal3/example/child.clj rename to src/intemporal/example/child.clj index faf40cb..9edd24f 100644 --- a/src/intemporal3/example/child.clj +++ b/src/intemporal/example/child.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.child - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.child + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) ;; Define activities diff --git a/src/intemporal3/example/error.clj b/src/intemporal/example/error.clj similarity index 87% rename from src/intemporal3/example/error.clj rename to src/intemporal/example/error.clj index 7b12256..192bce1 100644 --- a/src/intemporal3/example/error.clj +++ b/src/intemporal/example/error.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.error - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.error + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) (defn flaky-activity [x] diff --git a/src/intemporal3/example/signal.clj b/src/intemporal/example/signal.clj similarity index 95% rename from src/intemporal3/example/signal.clj rename to src/intemporal/example/signal.clj index 563902d..b293857 100644 --- a/src/intemporal3/example/signal.clj +++ b/src/intemporal/example/signal.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.signal - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.signal + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) ;; ============================================================================ diff --git a/src/intemporal3/example/timer.clj b/src/intemporal/example/timer.clj similarity index 88% rename from src/intemporal3/example/timer.clj rename to src/intemporal/example/timer.clj index 0d5d982..7a5f568 100644 --- a/src/intemporal3/example/timer.clj +++ b/src/intemporal/example/timer.clj @@ -1,6 +1,6 @@ -(ns intemporal3.example.timer - (:require [intemporal3.core :as intemporal] - [intemporal3.internal.activity :as a] +(ns intemporal.example.timer + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] [clojure.pprint])) ;; ============================================================================ diff --git a/src/intemporal3/internal/activity.clj b/src/intemporal/internal/activity.clj similarity index 98% rename from src/intemporal3/internal/activity.clj rename to src/intemporal/internal/activity.clj index b46b1f2..bfefbe2 100644 --- a/src/intemporal3/internal/activity.clj +++ b/src/intemporal/internal/activity.clj @@ -1,4 +1,4 @@ -(ns intemporal3.internal.activity) +(ns intemporal.internal.activity) ;; ============================================================================ ;; Activity Registry diff --git a/src/intemporal3/internal/context.clj b/src/intemporal/internal/context.clj similarity index 93% rename from src/intemporal3/internal/context.clj rename to src/intemporal/internal/context.clj index fdf603a..b34c6ab 100644 --- a/src/intemporal3/internal/context.clj +++ b/src/intemporal/internal/context.clj @@ -1,6 +1,6 @@ -(ns intemporal3.internal.context - (:require [intemporal3.internal.error :as error] - [intemporal3.protocol :as p])) +(ns intemporal.internal.context + (:require [intemporal.internal.error :as error] + [intemporal.protocol :as p])) ;; ============================================================================ diff --git a/src/intemporal/internal/engine.clj b/src/intemporal/internal/engine.clj new file mode 100644 index 0000000..dfa80d9 --- /dev/null +++ b/src/intemporal/internal/engine.clj @@ -0,0 +1 @@ +(ns intemporal.internal.engine) diff --git a/src/intemporal3/internal/error.clj b/src/intemporal/internal/error.clj similarity index 98% rename from src/intemporal3/internal/error.clj rename to src/intemporal/internal/error.clj index 5c23a2b..0e41216 100644 --- a/src/intemporal3/internal/error.clj +++ b/src/intemporal/internal/error.clj @@ -1,4 +1,4 @@ -(ns intemporal3.internal.error) +(ns intemporal.internal.error) ;; ============================================================================ diff --git a/src/intemporal3/internal/runtime.clj b/src/intemporal/internal/runtime.clj similarity index 97% rename from src/intemporal3/internal/runtime.clj rename to src/intemporal/internal/runtime.clj index 9283e3d..ef1615f 100644 --- a/src/intemporal3/internal/runtime.clj +++ b/src/intemporal/internal/runtime.clj @@ -1,7 +1,7 @@ -(ns intemporal3.internal.runtime - (:require [intemporal3.internal.error :as error] - [intemporal3.internal.activity :as activity] - [intemporal3.protocol :as p]) +(ns intemporal.internal.runtime + (:require [intemporal.internal.error :as error] + [intemporal.internal.activity :as activity] + [intemporal.protocol :as p]) (:import (java.util.concurrent ArrayBlockingQueue ExecutorService Executors Future ScheduledExecutorService ScheduledFuture ThreadPoolExecutor ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException))) diff --git a/src/intemporal/macros.cljc b/src/intemporal/macros.cljc deleted file mode 100644 index 3cb4a47..0000000 --- a/src/intemporal/macros.cljc +++ /dev/null @@ -1,227 +0,0 @@ -(ns intemporal.macros - (:require [cljs.analyzer.api :as api] - [intemporal.workflow :as w] - [intemporal.workflow.internal :as i] - [md5.core :as md5] - [promesa.core :as p] - [taoensso.telemere :as t]) - #?(:clj (:require [net.cgrand.macrovich :as macros] - [intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) - :cljs (:require-macros [net.cgrand.macrovich :as macros] - [intemporal.workflow.internal :refer [trace! trace-async! add-event!]] - [intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) - -(def cljs-available? - #?(:cljs - false - :clj - (try - (require '[cljs.analyzer]) - ;; Ensure clojurescript is recent enough: - (-> 'cljs.analyzer/var-meta resolve boolean) - (catch Exception _ false)))) - -;;;; -;; userland - - -;; utility function: since stubs return promises, -;; we want to use p/let -;; but p/let runs a thunk that is not env-aware so we fix that -;; actually, since js promises can't block, we need a new fn -;; to chain the value, hence we will always need to wrap any thunk -;; in a `(with-env...) -(defmacro env-let - "Only useful for clojurescript. Wraps the `body` and each `bindings` val with a `(with-env current-env val)`), ensuring - that if the binding value is function stub, its value will be unrapped - with the same environment at the callsite. - - Uses `(promesa.core.cljc/let ...` under the hood so promises are resolved via - a thunk with the current environment." - [bindings & body] - (let [env-sym (gensym) - wrap-vals (fn [i b] - (if (even? i) - b - `(w/with-env ~env-sym ~b))) - wrapped (map-indexed wrap-vals bindings)] - `(let [~env-sym (w/current-env)] - (p/let ~wrapped - (w/with-env ~env-sym - ~@body))))) - -(defmacro vthread - "Runs `body` within a virtual thread, returning a promise." - [& body] - `(binding [i/*env* (assoc i/*env* :vthread? true)] - (do ~@body))) - -(defmacro defn-workflow - "Defines a workflow. Workflows are functions that are resillient to crashes, as - long as side-effects are run via activities." - [sym argv & body] - (let [wname (symbol (str sym "-")) - sig (md5/string->md5-hex (str body))] - ;; TODO save signature - `(do - (defn- ~wname ~argv (do ~@body)) - (defn ~sym ~argv - ;; workflow should be called within a with-env block: - ;; (with-env {:store ..} - ;; (my-workflow ... - ;; TODO: fixme: task id generator must be deterministic for a given workflow - (assert (some? (:store i/*env*)) "Environment does not have a `:store`, did you call `\n(with-env {:store ..}\n\t(my-workflow ...` ?") - (let [id# (or (:id i/*env*) (i/random-id)) - fvar# #'~wname - ;; #'my-workflown-fn- => my-workflow-fn - orig# (subs (str fvar#) 2 (dec (count (str fvar#))))] - (trace! {:name (format "workflow: %s" orig#) :attributes {:task-id id#}} - (let [ref# (:ref i/*env*) - root# (:root i/*env*) - ;; id can be passed by env if we're dequeuing a task from store - task# (i/create-workflow-task ref# root# (symbol fvar#) (macros/case :cljs fvar# :clj (var-get fvar#)) ~argv id#)] - (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" (:id task#)]) - (add-event! ::w/enqueue-and-wait {}) - (w/enqueue-and-wait i/*env* task#)))))))) - -(defmacro stub-function - "Stubs `f`, wrapping it in an activity-aware function." - [f] - `(fn [& argv#] - (assert (some? (:next-id i/*env*)) "No next-id function, are you inside `defn-workflow`?") - (let [ref# (:ref i/*env*) - root# (:root i/*env*) - fvar# (var ~f)] - ;; TODO we can use &form to determine eg checksum of activity - - ;; prepare call - (let [store# (:store i/*env*) - protos# (:protos i/*env*) - id# ((:next-id i/*env*)) - ref# nil ;; no enqueued task => no ref - task# (i/create-activity-task ref# root# (symbol fvar#) (macros/case :cljs fvar# :clj (var-get fvar#)) argv# id#)] - - ;; an embedded workflow engine doesn't need to have a task per invocation - (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id " id#]) - (trace! {:name (format "activity: %s" (symbol fvar#)) :attributes {:task-id id#}} - (w/enqueue-and-wait i/*env* task#) - #_(let [res# (i/resume-task i/*env* store# protos# task#)] - (macros/case - :cljs res# - :clj (deref res#)))))))) - -(defmacro stub-protocol - "Stub a protocol definition. Opts are currently unused. - Example: `(stub-protocol EventHandler {:some-opts true})`" - [proto & opts] - (macros/case - :cljs - (when cljs-available? - (let [resolved (api/resolve &env proto) - curr-ns (:name (:ns &env)) - proto-ns (:ns resolved) - in-proto-ns? (= curr-ns proto-ns) - sig+args (-> (for [[sig val] (:sigs resolved) - :let [arglist (:arglists val) - qname (str (name proto-ns) "/" (name sig)) - invname (if in-proto-ns? - (name sig) - (str (namespace proto) "/" (name sig)))]] - [(name sig) arglist (symbol invname) (symbol qname) (str (:name resolved))]) - (doall))] - ;; TODO we can use &form to determine eg checksum of proto def - `(reify ~proto - ~@(for [[mname arglist invname qname pname] sig+args - :let [sname (symbol mname) - args (rest (first arglist))]] - ;; implement ~sname - `(~sname [this# ~@args] - (let [aid# '~qname - act-opts# ~(first opts) - ref# (:ref i/*env*) - root# (:root i/*env*)] - - ;; prepare call - (let [store# (:store i/*env*) - protos# (:protos i/*env*) - id# ((:next-id i/*env*)) - ref# nil ;; no task => no ref - task# (i/create-proto-activity-task - (symbol ~pname) - ref# - root# - (symbol aid#) - ;aid# ;; >> doesn't work! - ;; protos are not reified like in clj https://clojurescript.org/about/differences#_protocols - ;; we create a "fake" fvar that can be invokeable just like the real thing - (fn [& impl+args#] (apply ~qname impl+args#)) - [~@args] - id#)] - - (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) - ;(i/resume-task i/*env* store# protos# task#)))))))) - (w/enqueue-and-wait i/*env* task#)))))))) - - :clj - #_{:clj-kondo/ignore [:unresolved-symbol]} - (let [proto-var (var-get (resolve proto)) - curr-ns (name (ns-name *ns*)) - proto-ns (namespace (symbol (subs (str (:var proto-var)) 2))) - in-proto-ns? (= curr-ns proto-ns) - sig+args (-> (for [[sig val] (:sigs proto-var) - :let [arglist (:arglists val) - qname (str (name proto-ns) "/" (name sig)) - invname (if in-proto-ns? - (name sig) - (str (namespace proto) "/" (name sig)))]] - [(name sig) arglist (symbol invname) (symbol qname)]) - (doall))] - `(reify ~proto - ~@(for [[mname arglist invname qname] sig+args - :let [sname (symbol mname) - args (rest (first arglist))]] - ;; implement ~sname - `(~sname [this# ~@args] - (let [aid# '~qname - act-opts# ~(first opts) - ref# (:ref i/*env*) - root# (:root i/*env*)] - - ;; prepare call - (let [store# (:store i/*env*) - protos# (:protos i/*env*) - id# ((:next-id i/*env*)) - ref# nil ;; no task => no ref - task# (i/create-proto-activity-task - (-> ~proto :var symbol) - ref# - root# - (symbol aid#) - (var-get (requiring-resolve aid#)) - [~@args] - id#)] - - (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) - (if (:vthread? i/*env*) - - (trace-async! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} - @(i/resume-task i/*env* store# protos# task#)) - #_ - (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} - (w/enqueue-and-wait i/*env* task#)) - (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} - ;@(i/resume-task i/*env* store# protos# task#))))))))))) - (w/enqueue-and-wait i/*env* task#))))))))))) - -(defmacro with-failure - "Runs `body`, ensuring that if it fails, compensation will always run. - - if `body` fails, `binding` will have the value `intemporal.activity/failure`. - - if `body` succeeds, but compensation is invoked later (eg other activity failure), `binding` will have its return value - - (with-failure [v (book-hotel stub \"hotel\")] - (cancel-hotel stub v n)) - " - [[binding body] comp-fn] - `(let [val# (atom :intemporal.activity/failure)] - (w/add-compensation (fn [] (let [~binding @val#] (do ~comp-fn)))) - (reset! val# (do ~body)))) \ No newline at end of file diff --git a/src/intemporal3/observer.clj b/src/intemporal/observer.clj similarity index 98% rename from src/intemporal3/observer.clj rename to src/intemporal/observer.clj index 75b8f12..1cb2edf 100644 --- a/src/intemporal3/observer.clj +++ b/src/intemporal/observer.clj @@ -1,5 +1,5 @@ -(ns intemporal3.observer - (:require [intemporal3.protocol :as p])) +(ns intemporal.observer + (:require [intemporal.protocol :as p])) ;; ============================================================================ ;; Default Observer (Logging) diff --git a/src/intemporal3/protocol.clj b/src/intemporal/protocol.clj similarity index 99% rename from src/intemporal3/protocol.clj rename to src/intemporal/protocol.clj index 90e25d8..70c599c 100644 --- a/src/intemporal3/protocol.clj +++ b/src/intemporal/protocol.clj @@ -1,4 +1,4 @@ -(ns intemporal3.protocol) +(ns intemporal.protocol) ;; ============================================================================ diff --git a/src/intemporal3/store.clj b/src/intemporal/store.clj similarity index 97% rename from src/intemporal3/store.clj rename to src/intemporal/store.clj index e4de641..b2a0824 100644 --- a/src/intemporal3/store.clj +++ b/src/intemporal/store.clj @@ -1,5 +1,5 @@ -(ns intemporal3.store - (:require [intemporal3.protocol :as p])) +(ns intemporal.store + (:require [intemporal.protocol :as p])) ;; ============================================================================ ;; In-Memory Store Implementation diff --git a/src/intemporal/store.cljc b/src/intemporal/store.cljc deleted file mode 100644 index 3548f32..0000000 --- a/src/intemporal/store.cljc +++ /dev/null @@ -1,340 +0,0 @@ -(ns intemporal.store - (:require [clojure.tools.reader.edn :as edn] - [intemporal.store.internal :as si] - [promesa.core :as p] - [taoensso.telemere :as t] - #?(:clj [clojure.java.io :as io]) - #?(:clj [net.cgrand.macrovich :as macros])) - #?(:cljs (:require-macros - [net.cgrand.macrovich :as macros] - [intemporal.store :refer [bfn]])) - #?(:clj (:import [java.io File]))) - -#?(:clj (set! *warn-on-reflection* true)) - -(defmacro bfn - "Like bound-fn on JVM; falls back to fn on CLJS." - [args & body] - (macros/case - :clj `(clojure.core/bound-fn ~args ~@body) - :cljs `(fn ~args ~@body))) - -;;;; -;; main protos - -(defprotocol TaskStore - (list-tasks [this] "Lists all tasks") - (task<-panic [this task-id error] - "Terminates the task via panic; events should not be stored") - (task<-event [this task-id event-descr] - "Transitions the task. The task should be dequeued beforehand. Returns the event. - `event-descr` is one of: - `{:sym 'ns/f :args [1]}` - `{:sym 'ns/f :result :ok}` - `{:sym 'ns/f :error }` - ") - (watch-task [this id callback] - "Observes state changes, calling `callback` for any task that matches `predicate`.") - (await-task [this id] [this id opts] - "Waits for workflow to finish. Returns a deref'able value. Can throw. - Opts include - - `timeout-ms`: timeout for task await") - (find-task [this id] - "Finds the task on the db by id") - (reenqueue-pending-tasks [this callback] - "Marks all pending tasks belonging to the store's `owner` (or `nil` owner) as `new`") - (release-pending-tasks [this] - "Disowns all tasks that are pending for the store's `owner` (or `nil` owner), making them available") - (enqueue-task [this task] - "Atomically enqueues a protocol, workflow or activity task execution") - (dequeue-task [this] [this opts] - "Atomically dequeues some workflow, protocol or activity task. - For deterministic purposes, should dequeue the oldest task first. - If the task was deserialized, its `fvar` attribute must be a `fn` - Opts: - * `lease-ms`- duration of lease for dequeue. After lease expires, the task is eligible for dequeueing again") - (clear-tasks [this] - "Deletes all tasks")) - -(defprotocol HistoryStore - (list-events [this] "Lists all events") - (save-event [this task-id event] "Saves the event for the given task id. Returns the saved event") - (all-events [this task-id] "Returns all the events for a given task id") - (clear-events [this] "Deletes all events")) - -(defprotocol InternalVarStore - (register [this sym var] "Register the symbol with the var") - (lookup [this sym] "Finds the var for the given symbol")) - -;;;; -;; helpers - -(defn now [] - #?(:clj (System/currentTimeMillis) - :cljs (.getTime (js/Date.)))) - -(def default-lease "Default lease time in millis - 15mins" - (* 15 60 1000)) - -(defn sym->var [store {:keys [sym fvar] :as task}] - #?(:clj (or fvar (requiring-resolve sym)) - :cljs (or fvar (lookup store sym)))) - -(defn- edn-exists? [file] - #?(:clj (.exists (File. ^String file)) - :cljs (seq (.getItem (.-localStorage js/window) file)))) - -(defn read-edn [file readers] - #?(:clj (with-open [f (io/reader file)] - (edn/read-string {:readers readers} (slurp f))) - :cljs (let [f (.getItem (.-localStorage js/window) file)] - (edn/read-string {:readers readers} f)))) - -(defn write-edn [file val] - #?(:clj (spit file val) - :cljs (.setItem (.-localStorage js/window) file (pr-str val)))) - -;;;; -;; main impl -;; - -(def default-owner "intemporal") - -(defn make-store - "Creates a new memory-based store. All workflows will belong to the store's owner. - When calling `release-pending-tasks` or `reenqueue-pending-tasks`, only tasks that either belong to the - store's `owner` or have `owner = nil` will be picked up." - ([] - (make-store nil)) - ([{:keys [owner file readers failures] - :or {owner default-owner - failures {:validation 0}}}] - ;; TODO use single atom? - (let [tasks (atom {}) - history (atom {}) - counter (atom 0) - pcounter (atom 0) - ecounter (atom 0) - tcounter (atom 0) - vars (atom {}) - maybe-fail! (fn [] - (when (< (rand-int 100) - (* 100 (get failures :validation))) - (throw (ex-info "Forced error via failure rate" {:intemporal.workflow.internal/type :internal})))) - - ;;persistence - persist! (fn [k ref old new] - (when (and file (not= old new)) - (t/log! :debug ["Persisting store to file" file]) - (write-edn file {:tasks @tasks - :history @history - :counter @counter - :pcounter @pcounter - :ecounter @ecounter}))) - - find-task (fn [this id] - (get @tasks id)) - - update-task (fn [this id attrs] - (when-let [w (find-task this id)] - (maybe-fail!) - (si/validate-transition! w attrs) - (->> (merge w attrs) - (si/validate-task!) - (swap! tasks assoc id))))] - - ;; deser the db - (when file - ;; add hooks to persist on change - (add-watch tasks :persist persist!) - (add-watch history :persist persist!) - (add-watch counter :persist persist!) - (add-watch pcounter :persist persist!) - (add-watch ecounter :persist persist!) - - (when (edn-exists? file) - (t/log! :info ["Reading store file" file]) - (let [data (read-edn file readers)] - (reset! tasks (or (:tasks data) {})) - (reset! history (or (:history data) {})) - (reset! counter (or (:counter data) 0)) - (reset! pcounter (or (:pcounter data) 0)) - (reset! ecounter (or (:ecounter data) 0))))) - - (reify - InternalVarStore - (register [this sym var] - #?(:cljs (swap! vars assoc sym var))) - (lookup [this sym] - #?(:clj (requiring-resolve sym) - :cljs (get @vars sym))) - - HistoryStore - (list-events [this] - (apply concat (vals @history))) - (save-event [this task-id event] - (let [evt+id (assoc event :id (swap! counter inc))] - (si/validate-event! evt+id) - (swap! history (fn [v] - (assoc v task-id (-> (or (get v task-id) []) - (conj evt+id))))) - evt+id)) - (all-events [this task-id] - (get @history task-id)) - - (clear-events [this] - (reset! history {})) - - TaskStore - (list-tasks [this] - (filter #(or (= owner (:owner %)) - (nil? (:owner %))) - (vals @tasks))) - - (task<-panic [this task-id error] - (update-task this task-id {:result error})) - - (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] - ;; some redundancy between :result in task and event - ;; note that we save the event first, because update-task can trigger some watchers - ;; and they would expect the event to be present in the history - (cond - (some? args) - (let [evt {:ref ref :root root :type type :sym sym :args args :error nil :result nil}] - (when-not id - (save-event this task-id evt)) - (update-task this task-id {:state :pending}) - evt) - - (some? error) - (let [evt {:ref ref :root root :type type :sym sym :args nil :error error :result nil}] - (when-not id - (save-event this task-id evt)) - (update-task this task-id {:state :failure :result error}) - evt) - - ;;(some? result) ;result can be nil - :else - (let [evt {:ref ref :root root :type type :sym sym :args nil :error nil :result result}] - (when-not id - (save-event this task-id evt)) - (update-task this task-id {:state :success :result result}) - evt))) - - (find-task [this id] - (->> (vals @tasks) - (filter #(= (:id %) id)) - (first))) - - (watch-task [this id f] - (let [k (keyword (str "watcher-" (swap! pcounter inc))) - watchfn (fn [k atm old new] - (let [xf (comp - (filter #(= id (:id %))) - (filter #(not= (get old (:id %)) %)) - (take 1)) - changeset (transduce xf conj (vals new))] - - (when (and (first changeset) - (f (first changeset))) - (remove-watch tasks k))))] - (add-watch tasks k watchfn))) - - (await-task [this id] - (await-task this id {:timeout-ms default-lease})) - - (await-task [this id {:keys [timeout-ms] :as opts}] - (maybe-fail!) - (let [task (find-task this id) - deferred (p/deferred) - wrap-result (fn [{:keys [result] :as task}] - (cond - (si/success? task) (p/resolved result) - (si/failure? task) (p/rejected result) - :else (p/rejected (ex-info "Unknown state" {:task task}))))] - - (if (si/terminal? task) - (wrap-result task) - ;;else - (do - (watch-task this id (bfn [task] - (when (si/terminal? task) - (p/resolve! deferred task) - true))) - ;; wait for resolution - ;; remember: js doesnt have blocking op so we need to chain - (-> (p/timeout deferred timeout-ms ::timeout) - (p/then (bfn [resolved] - (if (= ::timeout resolved) - (throw (ex-info "Timeout waiting for task to be completed" {:task task})) - (wrap-result resolved))))))))) - - (release-pending-tasks [this] - (swap! tasks - update-vals - (fn [{:keys [state] :as task}] - (cond-> task - (and (= :pending state) - (= (:owner task) owner)) - (assoc :owner nil))))) - - (reenqueue-pending-tasks [this f] - (let [task->run? (atom #{})] - (swap! tasks - update-vals - (fn [{:keys [state] :as task}] - (if (and (= :pending state) - (or (= (:owner task) owner) - (nil? (:owner task)))) - (try - ;; ensure we only run f once - swap! might run the fn multiple times - (assoc task :state :new :owner owner) - ;; TODO log reenqueued task - (finally - (when-not (contains? @task->run? task) - (try - (f task) - (finally - (swap! task->run? conj task)))))) - ;; else - task))))) - - (enqueue-task [this task] - (maybe-fail!) - (let [task+owner (assoc task :owner owner :order (swap! tcounter inc))] - (si/validate-task! task+owner) - (swap! tasks assoc (:id task) task+owner) - #?(:cljs (register this (:sym task+owner) (:fvar task+owner))) - task+owner)) - - (dequeue-task [this] - (dequeue-task this {:lease-ms nil})) - - (dequeue-task [this {:keys [lease-ms]}] - (let [first-new (fn [v] (->> (vals v) - (filter #(and - (or (= owner (:owner %)) (nil? (:owner %))) - (or (= :new (:state %)) - (some-> (:lease-end %) - (< (now)))))) - (sort-by :order) - (first))) - found? (atom nil)] - - (swap-vals! tasks - (fn [v] (let [found (first-new v)] - (if found - (->> (assoc found :state :pending - :fvar (sym->var this found) - ;; watch for overflow? - :lease-end (when lease-ms - (+ (now) lease-ms))) - (reset! found?) - (assoc v (:id found))) - v)))) - ;; highest first - (->> @found?))) - - (clear-tasks [this] - (reset! tasks {})))))) - diff --git a/src/intemporal/store/foundationdb.clj b/src/intemporal/store/foundationdb.clj deleted file mode 100644 index a12dbf0..0000000 --- a/src/intemporal/store/foundationdb.clj +++ /dev/null @@ -1,255 +0,0 @@ -(ns intemporal.store.foundationdb - (:require [intemporal.store :as store] - [intemporal.workflow.internal :as i] - [intemporal.store.internal :as si :refer [resolve-fvar serialize deserialize next-id]] - [me.vedang.clj-fdb.FDB :as cfdb] - [me.vedang.clj-fdb.core :as fc] - [me.vedang.clj-fdb.transaction :as ftr] - [me.vedang.clj-fdb.subspace.subspace :as fsub] - [promesa.core :as p]) - (:import [com.apple.foundationdb FDB FDBTransaction KeyValue] - [com.apple.foundationdb.tuple Tuple])) - -;; FDB is a KV store; this store impl will use the subspace feature for namespacing -;; => task -;; => event -;; event ids are scoped to a task -;; values are (de)serialized via nippy - -(def fdb-api-version cfdb/clj-fdb-api-version) - -(defmacro with-tx [binding & body] - (let [[tx-sym db-sym] binding - database (with-meta db-sym {:tag 'com.apple.foundationdb.Database})] - ;; TODO type hint Closeable? - `(with-open [db# ~database] - (ftr/run db# - (fn [~tx-sym] (do ~@body)))))) - -(defn make-store - ([] - (make-store nil)) - ([{:keys [owner cluster-file-path] - :or {owner store/default-owner}}] - (let [^FDB fdb (cfdb/select-api-version fdb-api-version) - open-db #(if cluster-file-path - (cfdb/open fdb cluster-file-path) - (cfdb/open fdb)) - subspace-tasks (fsub/create ["tasks"]) - subspace-owned-tasks (fsub/create [(str owner "_tasks")]) - subspace-history (fsub/create ["history"])] - (reify - store/InternalVarStore - (register [this sym var]) - (lookup [this sym] - (requiring-resolve sym)) - - store/HistoryStore - (list-events [this] - (-> (with-tx [tx (open-db)] - (fc/get-range tx subspace-history {:valfn deserialize})) - (vals))) - - (save-event [this task-id {:keys [type ref root sym args result] :as event}] - (si/validate-serializable! args "Event args should be serializable") - (si/validate-serializable! result "Event result should be serializable") - (let [evt-id (next-id) - evt+id (assoc event :id evt-id)] - (si/validate-serializable! evt+id "Event should be serializable") - (si/validate-event! evt+id) - - (with-tx [tx (open-db)] - (fc/set tx subspace-history [task-id evt-id] (serialize evt+id))) - evt+id)) - - (all-events [this task-id] - (-> (with-tx [tx (open-db)] - (fc/get-range tx subspace-history [task-id] {:valfn deserialize})) - (vals))) - - (clear-events [this] - (with-tx [tx (open-db)] - (fc/clear-range tx subspace-history))) - - store/TaskStore - (list-tasks [this] - (let [owned (-> (with-tx [tx (open-db)] - (fc/get-range tx subspace-owned-tasks {:valfn (comp resolve-fvar deserialize)})) - (vals)) - free (-> (with-tx [tx (open-db)] - (fc/get-range tx subspace-tasks {:valfn (comp resolve-fvar deserialize)})) - (vals))] - (into owned free))) - - (task<-panic [this task-id error] - (with-tx [tx (open-db)] - (let [task (fc/get tx subspace-owned-tasks task-id {:valfn (comp resolve-fvar deserialize)}) - updated-task (assoc task :result error)] - (when task - (si/validate-task! updated-task) - (fc/set tx subspace-owned-tasks task-id (serialize updated-task)))))) - - (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] - ;; some redundancy between :result in task and event - ;; note that we save the event first, because update-task can trigger some watchers - ;; and they would expect the event to be present in the history - (with-tx [tx (open-db)] - (let [task (fc/get tx subspace-owned-tasks task-id {:valfn (comp resolve-fvar deserialize)}) - evt {:ref ref :root root :type type :sym sym :args args} - updated-task (cond - (some? args) (assoc task :state :pending) - (some? error) (assoc task :state :failure :result error) - :else (assoc task :state :success :result result)) - updated-evt (cond - (some? args) (assoc evt :args args) - (some? error) (assoc evt :error error) - :else (assoc evt :result result))] - (si/validate-serializable! task "Task should be serializable") - (when-not id - (store/save-event this task-id updated-evt)) - ;; not every invocation will come from a persisted task - (when task - (si/validate-task! updated-task) - (si/validate-transition! task updated-task) - (fc/set tx subspace-owned-tasks task-id (serialize updated-task))) - updated-evt))) - - (find-task [this id] - (with-tx [^FDBTransaction tx (open-db)] - (when-let [task? (fc/get tx subspace-owned-tasks id)] - (resolve-fvar (deserialize task?))))) - - (watch-task [this id f] - (let [watch? (atom true)] - (i/libthread (format "Watcher-%s" id) - (while @watch? - @(with-tx [^FDBTransaction tx (open-db)] - (when (fc/get tx subspace-owned-tasks id) - (.watch tx (fsub/pack subspace-owned-tasks (Tuple/from (object-array [id])))))) - - (with-tx [^FDBTransaction tx (open-db)] - (when-let [task? (fc/get tx subspace-owned-tasks id)] - (when (f (resolve-fvar (deserialize task?))) - (reset! watch? false)))))))) - - (await-task [this id] - (store/await-task this id {:timeout-ms store/default-lease})) - - (await-task [this id {:keys [timeout-ms] :as opts}] - (let [task (store/find-task this id) - deferred (p/deferred) - wrap-result (fn [{:keys [state result] :as task}] - (cond - (si/success? task) (p/resolved result) - (si/failure? task) (p/rejected result) - :else (p/rejected (ex-info "Unknown state" {:task task}))))] - - (if (si/terminal? task) - (wrap-result task) - ;;else - (do - (store/watch-task this id (fn [{:keys [state] :as task}] - (when (si/terminal? task) - (p/resolve! deferred task) - true))) - ;; wait for resolution - (-> (p/timeout deferred timeout-ms ::timeout) - (p/then (fn [resolved] - (if (= ::timeout resolved) - (throw (ex-info "Timeout waiting for task to be completed" {:task task})) - (wrap-result resolved))))))))) - - (release-pending-tasks [this] - (with-tx [tx (open-db)] - (let [owned-tasks @(.asList (ftr/get-range tx (fsub/range subspace-owned-tasks)))] - (doseq [kv owned-tasks] - (let [task (-> kv .getValue deserialize resolve-fvar)] - (when (= :pending (:state task)) - (fc/set tx subspace-tasks [(:id task)] (serialize (assoc task :owner nil))) - (fc/clear tx subspace-owned-tasks (:id task)))))))) - - (reenqueue-pending-tasks [this f] - (with-tx [tx (open-db)] - (let [owned-tasks @(.asList (ftr/get-range tx (fsub/range subspace-owned-tasks))) - free-tasks @(.asList (ftr/get-range tx (fsub/range subspace-tasks)))] - (doseq [kv owned-tasks] - (let [task (-> kv .getValue deserialize resolve-fvar)] - (when (= :pending (:state task)) - (f task) - (fc/set tx subspace-owned-tasks [(:id task)] (serialize (assoc task :state :new)))))) - - (doseq [kv free-tasks] - (let [task (-> kv .getValue deserialize resolve-fvar)] - (when (= :pending (:state task)) - (f task) - (fc/clear tx subspace-tasks (:id task)) - (fc/set tx subspace-owned-tasks [(:id task)] (serialize (assoc task :state :new :owner owner))))))))) - - (enqueue-task [this task] - (let [task+owner (assoc task :owner owner) - task-id (:id task+owner)] - (si/validate-serializable! task+owner "Task should be serializable") - (si/validate-task! task+owner) - - (with-tx [tx (open-db)] - (fc/set tx subspace-owned-tasks [task-id] (serialize (dissoc task+owner :fvar)))) - task+owner)) - - (dequeue-task [this] - (store/dequeue-task this {:lease-ms nil})) - - (dequeue-task [this {:keys [lease-ms]}] - (let [dequeuable? (fn [{:keys [state lease-end]}] - (or (= :new state) - (some-> lease-end - (< (store/now))))) - update-task (fn [task] - (assoc task - :owner owner - :state :pending - :fvar (store/sym->var this task) - :lease-end (when lease-ms (+ (store/now) lease-ms)))) - found? (with-tx [tx (open-db)] - (reduce - (fn [_ ^KeyValue kv] - (let [task (-> kv .getValue deserialize resolve-fvar)] - (when (dequeuable? task) - (let [updated-task (update-task task)] - (fc/set tx subspace-owned-tasks [(:id task)] (serialize (dissoc updated-task :fvar))) - (reduced updated-task))))) - nil - (ftr/get-range tx (fsub/range subspace-owned-tasks))))] - - ;; if we cant find any task that we own, - ;; try the tasks that were released - (if found? - found? - (with-tx [tx (open-db)] - (reduce - (fn [_ ^KeyValue kv] - (let [task (-> kv .getValue deserialize resolve-fvar)] - (when (dequeuable? task) - (let [updated-task (update-task task)] - (fc/clear tx subspace-tasks (:id task)) - (fc/set tx subspace-owned-tasks [(:id task)] (serialize (dissoc updated-task :fvar))) - (reduced updated-task))))) - nil - (ftr/get-range tx (fsub/range subspace-tasks))))))) - - (clear-tasks [this] - (with-tx [tx (open-db)] - (fc/clear-range tx subspace-owned-tasks))))))) - - -(comment - (def s (make-store {:cluster-file-path "docker/fdb.cluster"})) - (def t (i/create-workflow-task "ref#" "root#" 'clojure.core/+ (var-get #'+) [] 1)) - - (store/save-event s 1 {:a 1}) - (store/list-events s) - (store/list-tasks s) - - (store/enqueue-task s t) - (store/dequeue-task s)) - -;(store/watch-task s 1 (partial println ">>>")) \ No newline at end of file diff --git a/src/intemporal/store/internal.cljc b/src/intemporal/store/internal.cljc deleted file mode 100644 index 3c302b6..0000000 --- a/src/intemporal/store/internal.cljc +++ /dev/null @@ -1,139 +0,0 @@ -(ns intemporal.store.internal - #?(:clj (:require [intemporal.error :as error] - [taoensso.nippy :as nippy] - [malli.core :as m]) - :cljs (:require [clojure.edn :as edn] - [intemporal.error :as error] - [malli.core :as m]))) - -(defn next-id [] - #?(:clj (System/currentTimeMillis) - :cljs (.getTime (js/Date.)))) - -;;;; -;; serialization - -(defn resolve-fvar [{:keys [sym] :as task}] - ;; TODO does it work in cljs? - (assoc task :fvar #?(:clj (requiring-resolve sym) :cljs nil))) - -(defn serializable? - "Indicates if an object is serializable" - [x] - #?(:clj (nippy/freezable? x {:allow-java-serializable? true?}) - :cljs true)) - -(defn serialize - "Serializes an object" - [x] - (when x - #?(:clj (nippy/freeze x) - :cljs (pr-str x)))) - -(defn deserialize - "Deserializes an object" - [x] - (when x - #?(:clj (nippy/thaw x) - :cljs (edn/read x)))) - -;;;; -;; validation - -#_:clj-kondo/ignore -#?(:clj (when (= "true" (System/getenv "DEV")) - ((requiring-resolve 'malli.dev/start!)))) - -;;;; -;; validation -(def registry - (merge - (m/class-schemas) - (m/comparator-schemas) - (m/base-schemas) - (m/type-schemas) - {:var (m/-simple-schema {:type :var, :pred #(or (fn? %) (var? %))})})) - -(def ^:private RuntimeConfig - [:map {:closed false} - [:timeout-ms {:optional true} :int] - [:telemetry-context {:optional true} [:maybe :map]]]) - -(def ^:private Task - [:map {:closed true} - [:id [:or :string :uuid]] - [:owner [:maybe :string]] - [:sym :symbol] - [:ref [:maybe :string]] - [:root [:maybe :string]] - [:proto {:optional true} :symbol] - [:fvar :var] - [:args {:optional true} [:maybe [:sequential :any]]] - [:result :any] - [:state [:enum :new :pending :failure :success]] - [:type [:enum :workflow :activity :proto-activity]] - [:lease-end {:optional true} [:maybe :int]] - [:order {:optional true} :int] - [:runtime {:optional true} RuntimeConfig]]) - -(def ^:private Event - [:map {:closed true} - [:id :int] - [:ref [:maybe :string]] - [:root [:maybe :string]] - [:type [:enum - :intemporal.workflow/invoke :intemporal.workflow/success :intemporal.workflow/failure - :intemporal.activity/invoke :intemporal.activity/success :intemporal.activity/failure - :intemporal.protocol/invoke :intemporal.protocol/success :intemporal.protocol/failure - :intemporal.workflow.internal/failure]] - [:sym :symbol] - [:args {:optional true} [:maybe [:sequential :any]]] - [:result {:optional true} :any] - [:error {:optional true} :any]]) - -;; valid task states -(def valid-state-transitions {:new #{:pending} - :pending #{:new :success :failure}}) - -(defn validate-transition! - "Ensures that the task's new `:state`, if any, is allowed. - Useful to implement compare-and-swap semantics" - [{:keys [state id]} attrs] - (let [next-states (get valid-state-transitions state)] - ;; if we are updating state - ;; and the new state is not allowed - ;; error out - (when (and (contains? attrs :state) - (not= (:state attrs) state) - (not (contains? next-states (:state attrs)))) - (throw (ex-info (str "Cannot update task with id " id " from state " state " to " (:state attrs)) {:task-id id - :state state - :next-state (:state attrs)}))))) -(def validate-task! - "Throws if the task is not valid" - (m/coercer Task nil {:registry registry})) - -(def validate-event! - "Throws if the event is not valid" - (m/coercer Event nil {:registry registry})) - -(defn validate-serializable! - "Throws if the object is not serializable" - ([obj] - (validate-serializable! obj "Object is not serializable")) - ([obj msg] - (when-not (serializable? obj) - (throw (ex-info msg {:object obj}))))) - - -(defn success? [{:keys [state] :as task}] - (= :success state)) - -(defn failure? [{:keys [state result] :as task}] - (or (= :failure state) - (and (= :pending state) - (error/panic? result)))) - -(defn terminal? [task] - (or (success? task) - (failure? task))) \ No newline at end of file diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj deleted file mode 100644 index 07dc171..0000000 --- a/src/intemporal/store/jdbc.clj +++ /dev/null @@ -1,290 +0,0 @@ -(ns intemporal.store.jdbc - (:require [hikari-cp.core :as hikari] - [intemporal.store :as store] - [intemporal.workflow.internal :as i] - [intemporal.store.internal :as si :refer [serialize deserialize]] - [migratus.core :as migratus] - [next.jdbc :as jdbc] - [next.jdbc.sql.builder :as builder] - [next.jdbc.result-set :as rs] - [promesa.core :as p]) - (:import [java.sql Timestamp] - [java.util Date])) - -(comment - (let [cfg {:store :database - :migration-dir "migrations/postgres" - :watch-polling-ms 100 - :db {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root"}}] - (migratus/rollback cfg) - (migratus/migrate cfg)) - "") - -;;;; -;; utilities - -(defn- kw->db [kw] - (when kw - (if (keyword? kw) - (.substring (str kw) 1) - (name kw)))) - -(defn- db->kw [v] - (when v (keyword v))) - -(defn- db->task [{:keys [id proto type ref root sym args result state lease_end runtime owner] :as task}] - (let [dargs (deserialize args) - dresult (deserialize result) - druntime (deserialize runtime) - ssym (symbol sym) - sproto (when proto (symbol proto)) - kstate (db->kw state)] - (cond-> (condp = type - "workflow" (i/create-workflow-task ref root ssym (resolve ssym) dargs id dresult kstate druntime) - "activity" (i/create-activity-task ref root ssym (resolve ssym) dargs id dresult kstate druntime) - "proto-activity" (i/create-proto-activity-task sproto ref root ssym (resolve ssym) dargs id dresult kstate druntime)) - lease_end (assoc :lease-end lease_end) - owner (assoc :owner owner)))) - -(defn- db->event [{:keys [id type ref root sym args result] :as event}] - (let [dargs (deserialize args) - dresult (deserialize result)] - (assoc event - :type (db->kw type) - :ref ref - :root root - :sym (symbol sym) - :args dargs - :result dresult))) - -;;;; -;; main - -(defn make-store - "Creates a new Postgres-based store." - [{:keys [owner migration-dir migrate? watch-polling-ms jdbcUrl] - :or {owner store/default-owner migrate? true watch-polling-ms 100} :as opts}] - (let [db-spec (-> opts - (dissoc :migration-dir :migrate? :watch-polling-ms) - (assoc :jdbc-url jdbcUrl)) - datasource (hikari/make-datasource db-spec) - config {:store :database - :migration-dir migration-dir - :db db-spec} - default-opts {:builder-fn rs/as-unqualified-lower-maps}] - - (when migrate? - (migratus/migrate config)) - - (reify - store/InternalVarStore - (register [this sym var]) - (lookup [this sym] - (requiring-resolve sym)) - - store/HistoryStore - (list-events [this] - (->> (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["select * from events"] default-opts)) - (map db->event))) - - (save-event [this task-id {:keys [type ref root sym args result] :as event}] - (si/validate-serializable! args "Event args should be serializable") - (si/validate-serializable! result "Event result should be serializable") - (si/validate-event! (assoc event :id Integer/MAX_VALUE)) - - (let [args (serialize args) - result (serialize result) - res (jdbc/with-transaction [tx datasource] - (jdbc/execute-one! tx ["INSERT INTO events(type, ref, root, sym, args, result) values (?,?,?,?,?,?) RETURNING id" - (kw->db type) ref root (str sym) args result] - default-opts))] - (assoc event :id (:id res)))) - - (all-events [this task-id] - (->> (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["select * from events where ref=?" task-id] default-opts)) - (map db->event))) - - (clear-events [this] - (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["delete from events"]))) - - store/TaskStore - (list-tasks [this] - (->> (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["select * from tasks where (owner is null or owner=?)" owner] default-opts)) - (map db->task))) - - (task<-panic [this task-id error] - (jdbc/with-transaction [tx datasource] - (let [updated-task {:result (serialize error)}] - (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id} default-opts))))) - - (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] - ;; some redundancy between :result in task and event - ;; note that we save the event first, because update-task can trigger some watchers - ;; and they would expect the event to be present in the history - (jdbc/with-transaction [tx datasource] - (let [evt {:ref ref :root root :type type :sym sym :args args} - expected-state (cond - (some? args) :new - (or (some? result) (some? error)) :pending - :else :unknown) - updated-task (cond - (some? args) {:state (kw->db :pending) :args (serialize args)} - (some? error) {:state (kw->db :failure) :result (serialize error)} - :else {:state (kw->db :success) :result (serialize result)}) - updated-evt (cond - (some? args) (assoc evt :args args) - (some? error) (assoc evt :error error) - :else (assoc evt :result result))] - - (when-not id - (store/save-event this task-id updated-evt)) - ;; cant really validate because its a partial task - ;(validate-task! updated-task) - (let [updated (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id :state (name expected-state)} default-opts))] - (when (empty? updated) - (throw (ex-info (format "Cannot update task with id %s, expected state %s did not match" id expected-state) - {:task-id id :expected-state expected-state}))) - updated-evt)))) - - (find-task [this id] - (some-> (jdbc/with-transaction [tx datasource] - (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) - (db->task))) - - (watch-task [this id f] - (let [query-state! (fn [] - (jdbc/with-transaction [tx datasource] - (jdbc/execute-one! tx ["select state from tasks where id=?" id] default-opts))) - state (query-state!) - watch? (atom true)] - (i/libthread (format "Watcher-%s" id) - (while (and @watch? state) - (Thread/sleep (long watch-polling-ms)) - (when (not= state (query-state!)) - (let [task (some-> (jdbc/with-transaction [tx datasource] - (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) - (db->task))] - (when (and task (f task)) - (reset! watch? false)))))))) - - (await-task [this id] - (store/await-task this id {:timeout-ms store/default-lease})) - - (await-task [this id {:keys [timeout-ms] :as opts}] - ;; TODO use owner - ;; TODO use promise if available - (let [task (store/find-task this id) - deferred (p/deferred) - wrap-result (fn [{:keys [state result] :as task}] - (cond - (si/success? task) (p/resolved result) - (si/failure? task) (p/rejected result) - :else (p/rejected (ex-info "Unknown state" {:task task}))))] - - (if (si/terminal? task) - (wrap-result task) - ;;else - (do - (store/watch-task this id (fn [task] - (when (si/terminal? task) - (p/resolve! deferred task) - true))) - ;; wait for resolution - (-> (p/timeout deferred timeout-ms ::timeout) - (p/then (fn [resolved] - (if (= ::timeout resolved) - (throw (ex-info "Timeout waiting for task to be completed" {:task task})) - (wrap-result resolved))))))))) - - (release-pending-tasks [this] - (jdbc/with-transaction [tx datasource] - (jdbc/execute-one! tx ["update tasks set owner=null where owner=?" owner]))) - - (reenqueue-pending-tasks [this f] - (let [tasks? (jdbc/with-transaction [tx datasource] - (let [tasks (jdbc/execute! tx ["select * from tasks where state='pending' and (owner is null or owner=?)" owner] default-opts)] - (jdbc/execute-one! tx ["update tasks set state='new', owner=? where id = ANY(?)" owner - (into-array String (mapv :id tasks))]) - (doseq [row tasks] - (f (db->task row))) - tasks))] - tasks?)) - - (enqueue-task [this {:keys [id proto type ref root sym args result state lease-end runtime] :as task}] - (assert (or (nil? proto) (some? (:on proto)) "Task protocol not valid, missing :on attribute")) - - (let [task+owner (assoc task :owner owner)] - (si/validate-serializable! args "Task args should be serializable") - (si/validate-serializable! result "Task result should be serializable") - (si/validate-serializable! runtime "Task runtime should be serializable") - (si/validate-task! task+owner) - - (let [proto? (cond (symbol? proto) (str proto) - (some? (:on proto)) (str (:on proto)) - (string? proto) proto) - args (serialize args) - result (serialize result) - runtime (serialize runtime)] - (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["INSERT INTO tasks(id,owner,proto,type,ref,root,sym,args,result,state,lease_end,runtime) values (?,?,?,?,?,?,?,?,?,?,?,?) RETURNING id" - id owner proto? (kw->db type) (kw->db ref) (kw->db root) (str sym) args result (kw->db state) lease-end runtime]))) - task+owner)) - - (dequeue-task [this] - (store/dequeue-task this {:lease-ms nil})) - - (dequeue-task [this {:keys [lease-ms]}] - ;; TODO check owner - ;; TODO select for update skip locked - (let [query "select * from tasks where (owner=? or owner is null) and (state='new' or lease_end < now()) order by id asc limit 1" - found? (jdbc/with-transaction [tx datasource] - (when-let [task (some-> (jdbc/execute-one! tx [query owner] default-opts) - (db->task))] - (let [lease-epoch (when lease-ms - (* 1000 (+ (store/now) lease-ms))) - lease-ts (when lease-epoch - (-> (Date. (long lease-epoch)) - (.toInstant) - (Timestamp/from)))] - (jdbc/execute-one! tx ["update tasks set state='pending', lease_end=? where id=?" lease-ts (:id task)]) - (assoc task - :state :pending - :fvar (store/sym->var this task) - :lease-end (when lease-epoch - (/ lease-epoch 1000))))))] - found?)) - - (clear-tasks [this] - (jdbc/with-transaction [tx datasource] - (jdbc/execute! tx ["delete from tasks"])))))) - -#_:clj-kondo/ignore -(comment - (require '[intemporal.workflow.internal :as i]) - (defprotocol TestProto - (a [this] "x")) - (def s (make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" - :migration-dir "migrations/postgres"})) - - (def t (i/create-workflow-task nil nil 'clojure.core/+ (var-get #'+) [{:a 1}])) - (def t2 (i/create-proto-activity-task TestProto (:id t) (:id t) 'clojure.core/+ (var-get #'+) [{:b 2 :c #inst "2011-01-01"}])) - - (store/clear-events s) - (store/clear-tasks s) - - (store/enqueue-task s t) - (store/enqueue-task s t2) - - (store/list-tasks s) - - (store/watch-task s (:id t) (fn [task] (println "CALLBACK" task))) - - (prn (store/dequeue-task s)) - (store/save-event s 1 {:type :intemporal.workflow/invoke - :ref (:id t) :root (:id t) :sym 'clojure.core/+ :args [] :result [1]}) - - (store/list-events s)) diff --git a/src/intemporal/workflow.cljc b/src/intemporal/workflow.cljc deleted file mode 100644 index 1d05a24..0000000 --- a/src/intemporal/workflow.cljc +++ /dev/null @@ -1,222 +0,0 @@ -(ns intemporal.workflow - (:require [intemporal.store :as store] - [intemporal.workflow.internal :as internal] - [intemporal.error :as error] - [promesa.core :as p] - [taoensso.telemere :as t]) - #?(:cljs (:require-macros - #_:clj-kondo/ignore - [intemporal.workflow.internal :refer [with-env-internal trace! trace-async!]] - [intemporal.workflow :refer [with-env]])) - #?(:clj (:require [intemporal.error :as error] - [intemporal.workflow.internal :refer [trace! trace-async!]] - [steffan-westcott.clj-otel.context :as otctx])) - #?(:clj (:import [java.util.concurrent Executors TimeUnit] - [java.lang AutoCloseable]))) - -#?(:clj (set! *warn-on-reflection* true)) - -;;;; -;; runtime - -(defmacro with-env - "Creates a new environment for workflow execution. Options: - - `:store`: the underlying store to persist workflow metadata - - `:id`: optional workflow id - - `:timeout-ms`: optional timeout for workflow execution - " - [m & body] - `(internal/with-env-internal ~m (do ~@body))) - -(defn current-env - "Returns the workflow execution environment for the current thread" - [] - (assert (some? internal/*env*) "No workflow env detected, should only be called within a workflow function") - internal/*env*) - -(defn workflow-id - "Returns the current workflow uuid" - [] - (assert (some? internal/*env*) "No workflow env detected, should only be called within a workflow function") - (-> internal/*env* :root)) - -;;;; -;; worker -(defprotocol ITaskExecutor - (submit [this f] "Submits the function `f` for execution") - (shutdown [this grace-period-ms] "Shuts down the task executor") - (terminated? [this] "Indicates if the executor has terminated") - (shutting-down? [this] "Indicates if the executor has entered shutdown state")) - -(defn make-task-executor - "Creates an object that satisfies `ITaskExecutor`." - [] - (let [terminated? (atom false) - shutdown? (atom false)] - #?(:cljs - (reify ITaskExecutor - (submit [_ f] - (when (not @terminated?) - (p/vthread (f)))) - (shutdown [_ grace-period-ms] - (t/log! {:level :debug} ["Executor shutdown"]) - (reset! terminated? true) - (reset! shutdown? true)) - (terminated? [_] @terminated?) - (shutting-down? [_] @shutdown?)) - :clj - (let [factory (-> (Thread/ofVirtual) - (.name "Task Thread") - (.factory)) - exec (Executors/newThreadPerTaskExecutor factory)] - (reify - ITaskExecutor - (submit [_ f] - (.submit exec ^Runnable f)) - (shutdown [_ grace-period-ms] - (try - ;; reject tasks - (.shutdown exec) - (reset! shutdown? true) - (t/log! {:level :debug} ["Executor shutdown"]) - ;; await ongoing tasks - (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) - (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) - (.shutdownNow exec)) - ;; in case we got interrupted exception, make sure to set the flag - ;; so ongoing ops fail - (finally - (reset! terminated? true)))) - (terminated? [_] - @terminated?) - (shutting-down? [_] - @shutdown?) - ;; allow expressions like (with-open [executor (w/start-poller .... - AutoCloseable - (close [this] - (shutdown this 0))))))) - -(defn- worker-execute-fn - "Executes a given protocol, activity or workflow `task`" - [store protocols {:keys [type id root runtime fvar] :as task} task-counter terminated? shutting-down?] - (let [runtime (:runtime task) - base-env {:store store - :type type - :ref id - :id id - :root (or root id) - :protos protocols - :next-id (fn [] (str (or root id) "-" (swap! task-counter inc))) - :terminated? terminated? - :shutdown? shutting-down?} - internal-env (merge internal/default-env base-env runtime)] - ;; root task: we only enqueue workflows - (with-env internal-env - (t/log! {:level :debug :data {:sym (:sym task)}} ["Resuming task with id" (:id task)]) - ;; this span creation is required in order for - ;; subsequent workflow traces to have a "parent" span, otherwise - ;; they won't show up correctly in jaeger - ;; TODO test with eg loki - (trace-async! {:name "worker: worker-execute-fn" :attributes {:task-id (:id task)}} - #?(:cljs (internal/resume-task internal-env store protocols task) - :clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context runtime)) - (internal/resume-task internal-env store protocols task))))))) - -(defn- worker-poll-fn - "Continously polls for task while `task-executor` is active." - [store protocols task-executor polling-ms] - (let [task-counter (atom 0) - stopped? (fn [] (terminated? task-executor)) - shutdown? (fn [] (shutting-down? task-executor))] - #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} - @(p/loop [] - (-> (p/delay polling-ms) - (p/chain (fn [_] - (loop [] - ;(t/log! {:level :debug} ["Polling for tasks..."]) - ;; TODO add another check for shutting-down? - (when-let [task (and - (not (shutting-down? task-executor)) - (store/dequeue-task store))] - (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) - (try - (submit task-executor (fn [] - (worker-execute-fn store protocols task task-counter stopped? shutdown?))) - (catch #?(:clj Exception :cljs js/Error) e - ;; dequeued updated the state atomically (so other txs dont do the same) - ;; but if the executor stopped in the meantime we need to revert the task's state - (when (error/rejected? e) - (t/log! {:level :warn} ["Task execution rejected, reverting state to :new"]) - (store/enqueue-task store (assoc task :state :new))))) - (when-not (stopped?) - (recur)))) - (when-not (stopped?) - (p/recur)))) - (p/catch (fn [e] - (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]) - (when-not (stopped?) - (p/recur)))))))) - -(defn start-poller! - "Starts a poller that will submit tasks to the `task-executor`. - Protocol implementations are resolved via a map of `:protocols {my.ns Impl}` - Returns an `ITaskExecutor` that can be shutdown. - For clj runtimes, task-executor should be `(Executors/newVirtualThreadPerTaskExecutor)`, as - each execution will be blocked while they await for a given task dependencie's execution." - ([store {:keys [protocols polling-ms] :or {protocols {} polling-ms 100} :as opts}] - (start-poller! store (make-task-executor) opts)) - ([store task-executor & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] - (assert (satisfies? ITaskExecutor task-executor) "Supplied task executor does not satisfy ITaskExecutor") - ;; start poller in a out-of-executor thread so it doesnt prevent the executor from shutting down - ;; the only way to stop the poller is via shutdown - (p/vthread - (worker-poll-fn store protocols task-executor polling-ms)) - task-executor)) - -(defn start-worker! - "Starts a single worker thread that periodically polls for tasks and executes them in a - separate thread. Mostly used for testing purposes." - ([store] - (start-worker! store {})) - ([store & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] - (let [run? (atom true) - task-counter (atom 0)] - (internal/libthread "Worker" - #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} - @(p/loop [] - (-> (p/delay polling-ms) - (p/chain (fn [_] - (when-let [task (store/dequeue-task store)] - (t/log! {:level :debug :data {:sym (:sym task)}} ["Dequeued task with id" (:id task)]) - (internal/libthread (str "Worker-" (:id task)) - (worker-execute-fn store protocols task task-counter - (fn [] (not @run?)) - (fn [] (not @run?))))) - - (when @run? - (p/recur))))))) - (fn [] - (t/log! {:level :info} ["Stopping worker"]) - (reset! run? false))))) - -(defn enqueue-and-wait - "Adds the task to the internal queue, awaits for its execution. - Task might be fulfilled by other threads" - [{:keys [store] :as opts} task] - (t/log! {:level :debug :data {:sym (:sym task)}} ["Enqueuing task with id" (:id task)]) - (internal/enqueue-and-wait opts task)) - -(defn add-compensation - "Adds a compensation action to the current workflow." - [thunk] - (assert (ifn? thunk) "Compensation action should implement IFn") - (swap! (:compensations internal/*env*) conj thunk)) - -(defn compensate - "Runs compensation in program order. A failure of the compensation action will stop running other compensations." - [] - (let [thunks (-> internal/*env* :compensations)] - (trace! {:name "compensations" :attributes {:fn-count (count @thunks)}} - (doseq [f @thunks] - (swap! thunks pop) - (f))))) \ No newline at end of file diff --git a/src/intemporal/workflow/internal.cljc b/src/intemporal/workflow/internal.cljc deleted file mode 100644 index 28f8009..0000000 --- a/src/intemporal/workflow/internal.cljc +++ /dev/null @@ -1,362 +0,0 @@ -(ns ^:private intemporal.workflow.internal - "Private namespace for workflow support." - (:require [intemporal.store :as store] - [intemporal.error :as error] - [promesa.core :as p] - [taoensso.telemere :as t]) - #?(:clj (:require [steffan-westcott.clj-otel.context :as otctx] - [steffan-westcott.clj-otel.api.trace.span :as otspan] - [net.cgrand.macrovich :as macros] - [intemporal.store :refer [bfn]])) - #?(:cljs (:require-macros - [net.cgrand.macrovich :as macros] - [intemporal.workflow.internal :refer [trace! trace-async!]] - [intemporal.store :refer [bfn]])) - #?(:clj (:import [java.util.concurrent CompletableFuture]))) - -#?(:clj (set! *warn-on-reflection* true)) - -;;;; -;; utils - -(defmacro libthread - "Creates a thread for internal usage. Client code should not rely on this. - Returns a promise." - [label & body] - `(p/vthread ~@body)) - -;;;; -;; runtime - -(def ^:dynamic *env* nil) -(def default-env {:compensations (atom '()) - :timeout-ms (* 15 60 1000)}) - -(defn- env->runtime - "Derives the `runtime` attrs from the current env." - [] - (select-keys *env* [:timeout-ms :telemetry-context])) - -(defn random-id - "Generates a random id. if env var `DEV` is defined, generates a two-word human-readable id." - [] - ;; debugging purposes only - ;; https://github.com/moby/moby/blob/master/pkg/namesgenerator/names-generator.go - ;; TODO use https://github.com/adzerk-oss/env ? - (if #?(:clj (= "true" (System/getenv "DEV")) - :cljs false) - (let [left ["admiring" "adoring" "affectionate" "agitated" "amazing" "angry" "awesome" "beautiful" "blissful" "bold" "boring" "brave" "busy" "charming" "clever" "compassionate" "competent" "condescending" "confident" "cool" "cranky" "crazy" "dazzling" "determined" "distracted" "dreamy" "eager" "ecstatic" "elastic" "elated" "elegant" "eloquent" "epic" "exciting" "fervent" "festive" "flamboyant" "focused" "friendly" "frosty" "funny" "gallant" "gifted" "goofy" "gracious" "great" "happy" "hardcore" "heuristic" "hopeful" "hungry" "infallible" "inspiring" "intelligent" "interesting" "jolly" "jovial" "keen" "kind" "laughing" "loving" "lucid" "magical" "modest" "musing" "mystifying" "naughty" "nervous" "nice" "nifty" "nostalgic" "objective" "optimistic" "peaceful" "pedantic" "pensive" "practical" "priceless" "quirky" "quizzical" "recursing" "relaxed" "reverent" "romantic" "sad" "serene" "sharp" "silly" "sleepy" "stoic" "strange" "stupefied" "suspicious" "sweet" "tender" "thirsty" "trusting" "unruffled" "upbeat" "vibrant" "vigilant" "vigorous" "wizardly" "wonderful" "xenodochial" "youthful" "zealous" "zen"] - right ["agnesi" "albattani" "allen" "almeida" "antonelli" "archimedes" "ardinghelli" "aryabhata" "austin" "babbage" "banach" "banzai" "bardeen" "bartik" "bassi" "beaver" "bell" "benz" "bhabha" "bhaskara" "black" "blackburn" "blackwell" "bohr" "booth" "borg" "bose" "bouman" "boyd" "brahmagupta" "brattain" "brown" "buck" "burnell" "cannon" "carson" "cartwright" "carver" "cerf" "chandrasekhar" "chaplygin" "chatelet" "chatterjee" "chaum" "chebyshev" "clarke" "cohen" "colden" "cori" "cray" "curie" "curran" "darwin" "davinci" "dewdney" "dhawan" "diffie" "dijkstra" "dirac" "driscoll" "dubinsky" "easley" "edison" "einstein" "elbakyan" "elgamal" "elion" "ellis" "engelbart" "euclid" "euler" "faraday" "feistel" "fermat" "fermi" "feynman" "franklin" "gagarin" "galileo" "galois" "ganguly" "gates" "gauss" "germain" "goldberg" "goldstine" "goldwasser" "golick" "goodall" "gould" "greider" "grothendieck" "haibt" "hamilton" "haslett" "hawking" "heisenberg" "hellman" "hermann" "herschel" "hertz" "heyrovsky" "hodgkin" "hofstadter" "hoover" "hopper" "hugle" "hypatia" "ishizaka" "jackson" "jang" "jemison" "jennings" "jepsen" "johnson" "joliot" "jones" "kalam" "kapitsa" "kare" "keldysh" "keller" "kepler" "khayyam" "khorana" "kilby" "kirch" "knuth" "kowalevski" "lalande" "lamarr" "lamport" "leakey" "leavitt" "lederberg" "lehmann" "lewin" "lichterman" "liskov" "lovelace" "lumiere" "mahavira" "margulis" "matsumoto" "maxwell" "mayer" "mccarthy" "mcclintock" "mclaren" "mclean" "mcnulty" "meitner" "mendel" "mendeleev" "meninsky" "merkle" "mestorf" "mirzakhani" "montalcini" "moore" "morse" "moser" "murdock" "napier" "nash" "neumann" "newton" "nightingale" "nobel" "noether" "northcutt" "noyce" "panini" "pare" "pascal" "pasteur" "payne" "perlman" "pike" "poincare" "poitras" "proskuriakova" "ptolemy" "raman" "ramanujan" "rhodes" "ride" "ritchie" "robinson" "roentgen" "rosalind" "rubin" "saha" "sammet" "sanderson" "satoshi" "shamir" "shannon" "shaw" "shirley" "shockley" "shtern" "sinoussi" "snyder" "solomon" "spence" "stonebraker" "sutherland" "swanson" "swartz" "swirles" "taussig" "tesla" "tharp" "thompson" "torvalds" "tu" "turing" "varahamihira" "vaughan" "villani" "visvesvaraya" "volhard" "wescoff" "wilbur" "wiles" "williams" "williamson" "wilson" "wing" "wozniak" "wright" "wu" "yalow" "yonath" "zhukovsky"]] - (str (rand-nth left) "-" (rand-nth right))) - (str (random-uuid)))) - -(defmacro with-env-internal - "Merges `m` on top of the current internal environment, then runs `body` with the new environment." - [m & body] - `(binding [*env* (merge default-env ~m)] - (do ~@body))) - -;;;; -;; telemetry - -(defn ->telemetry-context [] - #?(:clj (otctx/->headers) - :cljs {})) - -(defmacro trace! - "Wraps body in a tracing context. " - [{:keys [name attributes] :as attrs} & body] - (macros/case - ;; cljs: no telemetry - :cljs `(do ~@body) - :clj `(let [attrs# (do ~attrs)] - (otspan/with-span! attrs# - (with-env-internal (merge *env* {:telemetry-context (->telemetry-context)}) - (let [res# (do ~@body)] - res#)))))) - -(defmacro trace-async! - "Wraps body in a tracing context. " - [{:keys [name attributes] :as attrs} & body] - (macros/case - ;; cljs: no telemetry - :cljs `(do ~@body) - :clj `(let [attrs# (do ~attrs) - span# (otspan/new-span! attrs#)] - ;(otspan/async-bound-cf-span attrs#) - ;(with-env-internal (merge *env* {:telemetry-context (->telemetry-context)})) - (let [res# (do ~@body)] - (.whenComplete ^CompletableFuture res# - (fn [t# e#] - (when e# (otspan/add-exception! {:context span#} e#)) - (otspan/end-span! {:context span#}))))))) - -(defn add-event! - ([task ename attrs] - #?(:clj (when-let [ctx (-> task :runtime :telemetry-context)] - (otctx/with-context! (otctx/headers->merged-context ctx) - (add-event! ename attrs))))) - ([ename attrs] - #?(:clj (otspan/add-event! ename attrs)))) - -;;;; -;; task definitions - -;;;; -;; Tasks - -(defn create-workflow-task - ([ref root sym fvar args id] - (create-workflow-task ref root sym fvar args id nil :new nil)) - ([ref root sym fvar args id result state runtime] - (let [runtime (or runtime (env->runtime))] - {:type :workflow :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state - :runtime runtime}))) - -(defn create-activity-task - ([ref root sym fvar args id] - (create-activity-task ref root sym fvar args id nil :new nil)) - ([ref root sym fvar args id result state runtime] - (let [runtime (or runtime (env->runtime))] - {:type :activity :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state - :runtime runtime}))) - -(defn create-proto-activity-task - ([proto ref root sym fvar args id] - (create-proto-activity-task proto ref root sym fvar args id nil :new nil)) - ([proto ref root sym fvar args id result state runtime] - (let [runtime (or runtime (env->runtime))] - {:type :proto-activity :proto proto :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state - :runtime runtime}))) - -(defn event-matches? [{t :type s :sym} {t2 :type s2 :sym}] - (and (= t t2) (= s s2))) - -;;;; -;; traced store fns - -(defn- all-events [store id] - (add-event! ::store/all-events {:task-id id}) - (store/all-events store id)) - -(defn- task<-event [store task-id event-descr] - ;; TODO patch this to use a compare-and-swap - ;; must send the expected state as arg - (add-event! (:type event-descr) {:task-id task-id}) - (store/task<-event store task-id event-descr)) - -(defn- task<-panic [store task-id error] - (add-event! ::store/task<-panic {:task-id task-id}) - (store/task<-panic store task-id error)) - -(defn- find-task [store task-id] - (add-event! ::store/find-task {:task-id task-id}) - (store/find-task store task-id)) - -(defn- enqueue-task [store task] - (add-event! ::store/enqueue-task {:task-id (:id task)}) - (store/enqueue-task store task)) - -(defn- await-task [store task-id opts] - (add-event! ::store/await-task {:task-id task-id}) - (store/await-task store task-id opts)) - -;;;; -;; task execution/replay - -(defn resume-fn-task - "Resumes a generic fn call task" - [{:keys [vthread? terminated? shutdown?] :as env} store protos {:keys [type proto id root sym fvar args] :as task} [invoke success failure]] - (when (and (= :proto-activity type) - (nil? (get protos proto))) - (throw (ex-info (str "Protocol implementation for " - (pr-str proto) - " not found; available protocols:" - (pr-str protos) - ". Make sure to pass `:protocols` key when starting poller or worker ") - {::type :internal - :protocols protos - :required proto}))) - ;; do we have invocation and result events for this task? - (t/log! {:level :debug :sym sym} ["Resuming try/catch task with id" id]) - - (try - (let [terminated? (fn [] (and (ifn? terminated?) (terminated?))) - [inv? res?] (all-events store id)] - - ;; mark invoke/replay - (let [next-event {:ref id :root (or root id) :type invoke :sym sym :args args}] - (when inv? - (t/log! {:level :debug :data {:sym (:sym task)}} ["Found replay event for task with id" (:id task)])) - (when res? - (t/log! {:level :debug :data {:sym (:sym task)}} ["Found result event for task with id" (:id task)])) - - (cond - ;; do we have an invocation event? if not, save this one - (not inv?) - (task<-event store id next-event) - - ;; we do have an invocation event, is it a match of the above? - (not (event-matches? inv? next-event)) - (throw (error/internal-error "Transition unexpected" {:got (:type inv?) - :expected invoke})))) - - ;; mark success/failure or replay - (let [next-event {:ref id :root (or root id) :type success :sym sym} - next-failure (assoc next-event :type failure) - handle-ok (bfn [r] - ;; TODO assert r is serializable! - ;; we check for shutdown because in js runtime, there is no thread interruption - ;; at this point, if we are shutting down it means we exhausted the grace period - (let [panic? (terminated?)] - (try - (if panic? - (task<-panic store id (error/panic "Worker shutting down during invocation result handling")) - (let [new-event (assoc next-event :result r)] - #?(:clj (otspan/add-span-data! {:attributes {:replayed false :result r}})) - (task<-event store id new-event) - r)) - (finally - (if panic? - (t/log! {:level :debug :data {:sym sym :result r}} ["Shutting down, interrupted result" id]) - (t/log! {:level :debug :data {:sym sym :result r}} ["Got actual function result for task" id])))))) - handle-fail (bfn [e] - (cond - ;; if its a java.lang.InterruptedException it means - ;; we killed the executor - ;; - we must leave the task pending (assuming its idempotent) - (error/interrupted? e) - (t/log! {:level :debug :data {:sym sym}} ["InterruptedException caught during actual function invocation for task" id]) - - ;; executor has terminated, it means we exhausted the graceful shutdown period - ;; panic the task - (terminated?) - (do - (t/log! {:level :warn :data {:exception e}} ["Exception caught during shutdown, panicking task"]) - (task<-panic store id (error/panic "Worker shutting down during invocation failure handling"))) - - ;; regular task failure - :else - (do - (t/log! {:level :debug :data {:sym sym :exception e}} ["Exception caught during actual function invocation for task" id]) - (task<-event store id (cond-> (assoc next-failure :error e) - (error/internal-error? e) (assoc :type ::failure))))) - ;; finally, return error - (p/rejected e)) - retval (cond - ;; are we replaying a result? - (some? res?) - (let [success? (contains? res? :result) - retval (if success? (:result res?) (:error? res?)) - ;; we need to ensure replay events return the same type - ;; as if they were called via a vthread - wrapped (if vthread? - (p/vthread retval) - retval)] - #?(:clj (otspan/add-span-data! {:attributes {:replayed true :result retval}})) - (task<-event store id res?) - (if success? - (p/resolved wrapped) - (p/rejected wrapped))) - - ;; no replay, lets do the actual call - (not res?) - (-> (let [;; if we're calling a prototype, we need to prepend the - ;; prot impl and then its args - args' (if (= :proto-activity type) - (cons (get protos proto) args) - args) - ;; this is the result - r (binding [*env* (merge default-env env)] - (t/log! {:level :debug :data {:sym sym :args args'}} ["Calling actual function for task" id]) - ;; vthread calls are special because we only want to process its - ;; result when deref is called, to ensure determinism: - ;; - first we must save all events - ;; - then we can process the underlying impl call - (if vthread? - (let [inner (p/create (fn [res rej] - (-> (p/vthread ;TODO: user thread - (binding [*env* (-> env - (dissoc :vhtread?) - (assoc :telemetry-context (->telemetry-context)))] - ;(trace! {:id sym}) - #?(:clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context env)) - (apply fvar args')) - :cljs (apply fvar args')))) - (p/then res) - (p/catch rej))))] - ;; in cljs we dont need delay bc its single threaded - ;; in clj, the delayed value will be deref'd - ;; but at this point we ensure that any other eg vthread calls have been saved in history - (#?(:cljs do :clj delay) - (-> inner - (p/then handle-ok) - (p/catch handle-fail)))) - ;; ensure handle-fail always has a chance to catch any fvar - ;; exceptions - (-> nil - (p/then (fn [_] (binding [*env* env] - ;(trace! {:id sym}) - #?(:clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context env)) - (apply fvar args')) - :cljs (apply fvar args'))))) - (p/then' handle-ok) - (p/catch handle-fail))))] - ;; r can be a value or a promise - r)) - - (not (or (event-matches? res? next-event) ;; replay success - (event-matches? res? next-failure))) ;; replay failure - (throw (error/internal-error "Transition unexpected" {:got (:type res?) - :expected [success failure]})))] - (t/log! {:level :debug :data {:sym sym :retval retval}} ["Finished internal execution for task" id]) - ;; if userland called a vthread, retval will be delayed - retval)) - ;; ensure we terminate the fn call, even if the next event wouldnt be the expected type - (catch #?(:clj Exception :cljs js/Error) e - ;; TODO at this point we should just panic, "userland" exceptions should be handled in the handle-fail - ;; on theory there is no other way for a user exception to bubble out - (let [wrapped (ex-info "Internal error while resuming execution" {::type :internal} e)] - (task<-event store id {:ref id :root (or root id) :type ::failure :sym sym :error wrapped})) - (p/rejected e)))) - -#?(:clj (ns-unmap *ns* 'resume-task)) -(defmulti resume-task - "Continues a task that has been queued for execution. Replays events if they exist." - (fn [env store protos task] - (:type task))) - -(defmethod resume-task :workflow - [env store protos {:keys [id root sym fvar args] :as task}] - (resume-fn-task env store protos task [:intemporal.workflow/invoke :intemporal.workflow/success :intemporal.workflow/failure])) - -(defmethod resume-task :activity - [env store protos {:keys [id root sym fvar args] :as task}] - (resume-fn-task env store protos task [:intemporal.activity/invoke :intemporal.activity/success :intemporal.activity/failure])) - -(defmethod resume-task :proto-activity - [env store protos {:keys [id root sym fvar args] :as task}] - (resume-fn-task env store protos task [:intemporal.protocol/invoke :intemporal.protocol/success :intemporal.protocol/failure])) - -(defn enqueue-and-wait - "Enqueues `task` onto the store and awaits its execution. - If the exact task is alread present (eg we are resuming a crashed workflow), - the existing task will be awaited instead." - [{:keys [store] :as opts} {:keys [id] :as task}] - ;; because execution engine is supposed to be deterministic, - ;; we can safely assume that if an identic task exists at this point - ;; we are replaying some events - (assert (some? store) "Store should exist") - (assert (some? task) "Task should exist") - - ;; TODO trace if we pick the task from the db? - ;; the db task should have a telemetry context already no? - ;; (trace! {:name (format "workflow: %s" orig#) :attributes {:task-id id#}} - (let [db-task (or (find-task store id) - (enqueue-task store task)) - - _ (add-event! :intemporal.workflow.internal.enqueue-and-wait/db-task {}) - prom (await-task store (:id db-task) opts)] - - #?(:clj (deref prom) - :cljs prom))) diff --git a/src/intemporal3/internal/engine.clj b/src/intemporal3/internal/engine.clj deleted file mode 100644 index 0f7e820..0000000 --- a/src/intemporal3/internal/engine.clj +++ /dev/null @@ -1 +0,0 @@ -(ns intemporal3.internal.engine) From b2d575df8ea24007183a7d0be2ad20073a356364 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 17:36:09 +0000 Subject: [PATCH 37/81] add old src --- src2/intemporal/error.cljc | 27 ++ src2/intemporal/macros.cljc | 227 ++++++++++++++++ src2/intemporal/store.cljc | 340 +++++++++++++++++++++++ src2/intemporal/store/foundationdb.clj | 255 +++++++++++++++++ src2/intemporal/store/internal.cljc | 139 ++++++++++ src2/intemporal/store/jdbc.clj | 290 ++++++++++++++++++++ src2/intemporal/workflow.cljc | 222 +++++++++++++++ src2/intemporal/workflow/internal.cljc | 362 +++++++++++++++++++++++++ 8 files changed, 1862 insertions(+) create mode 100644 src2/intemporal/error.cljc create mode 100644 src2/intemporal/macros.cljc create mode 100644 src2/intemporal/store.cljc create mode 100644 src2/intemporal/store/foundationdb.clj create mode 100644 src2/intemporal/store/internal.cljc create mode 100644 src2/intemporal/store/jdbc.clj create mode 100644 src2/intemporal/workflow.cljc create mode 100644 src2/intemporal/workflow/internal.cljc diff --git a/src2/intemporal/error.cljc b/src2/intemporal/error.cljc new file mode 100644 index 0000000..85ca2a6 --- /dev/null +++ b/src2/intemporal/error.cljc @@ -0,0 +1,27 @@ +(ns intemporal.error + #?(:clj (:import [java.lang InterruptedException] + [java.util.concurrent RejectedExecutionException]))) + + +(defn interrupted? [e] + #?(:clj (instance? InterruptedException e) + :cljs false)) + +(defn rejected? [e] + #?(:clj (instance? RejectedExecutionException e) + :cljs false)) + +(defn internal-error? [ex] + (when-let [t (-> ex ex-data ::type)] + (or (= :internal t) + (= :panic t)))) + +(defn panic? [ex] + (and (instance? #?(:clj Exception :cljs js/Error) ex) + (= :panic (-> ex ex-data ::type)))) + +(defn internal-error [msg data] + (ex-info msg (merge data {::type :internal}))) + +(defn panic [msg] + (ex-info msg {::type :panic})) diff --git a/src2/intemporal/macros.cljc b/src2/intemporal/macros.cljc new file mode 100644 index 0000000..3cb4a47 --- /dev/null +++ b/src2/intemporal/macros.cljc @@ -0,0 +1,227 @@ +(ns intemporal.macros + (:require [cljs.analyzer.api :as api] + [intemporal.workflow :as w] + [intemporal.workflow.internal :as i] + [md5.core :as md5] + [promesa.core :as p] + [taoensso.telemere :as t]) + #?(:clj (:require [net.cgrand.macrovich :as macros] + [intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) + :cljs (:require-macros [net.cgrand.macrovich :as macros] + [intemporal.workflow.internal :refer [trace! trace-async! add-event!]] + [intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) + +(def cljs-available? + #?(:cljs + false + :clj + (try + (require '[cljs.analyzer]) + ;; Ensure clojurescript is recent enough: + (-> 'cljs.analyzer/var-meta resolve boolean) + (catch Exception _ false)))) + +;;;; +;; userland + + +;; utility function: since stubs return promises, +;; we want to use p/let +;; but p/let runs a thunk that is not env-aware so we fix that +;; actually, since js promises can't block, we need a new fn +;; to chain the value, hence we will always need to wrap any thunk +;; in a `(with-env...) +(defmacro env-let + "Only useful for clojurescript. Wraps the `body` and each `bindings` val with a `(with-env current-env val)`), ensuring + that if the binding value is function stub, its value will be unrapped + with the same environment at the callsite. + + Uses `(promesa.core.cljc/let ...` under the hood so promises are resolved via + a thunk with the current environment." + [bindings & body] + (let [env-sym (gensym) + wrap-vals (fn [i b] + (if (even? i) + b + `(w/with-env ~env-sym ~b))) + wrapped (map-indexed wrap-vals bindings)] + `(let [~env-sym (w/current-env)] + (p/let ~wrapped + (w/with-env ~env-sym + ~@body))))) + +(defmacro vthread + "Runs `body` within a virtual thread, returning a promise." + [& body] + `(binding [i/*env* (assoc i/*env* :vthread? true)] + (do ~@body))) + +(defmacro defn-workflow + "Defines a workflow. Workflows are functions that are resillient to crashes, as + long as side-effects are run via activities." + [sym argv & body] + (let [wname (symbol (str sym "-")) + sig (md5/string->md5-hex (str body))] + ;; TODO save signature + `(do + (defn- ~wname ~argv (do ~@body)) + (defn ~sym ~argv + ;; workflow should be called within a with-env block: + ;; (with-env {:store ..} + ;; (my-workflow ... + ;; TODO: fixme: task id generator must be deterministic for a given workflow + (assert (some? (:store i/*env*)) "Environment does not have a `:store`, did you call `\n(with-env {:store ..}\n\t(my-workflow ...` ?") + (let [id# (or (:id i/*env*) (i/random-id)) + fvar# #'~wname + ;; #'my-workflown-fn- => my-workflow-fn + orig# (subs (str fvar#) 2 (dec (count (str fvar#))))] + (trace! {:name (format "workflow: %s" orig#) :attributes {:task-id id#}} + (let [ref# (:ref i/*env*) + root# (:root i/*env*) + ;; id can be passed by env if we're dequeuing a task from store + task# (i/create-workflow-task ref# root# (symbol fvar#) (macros/case :cljs fvar# :clj (var-get fvar#)) ~argv id#)] + (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" (:id task#)]) + (add-event! ::w/enqueue-and-wait {}) + (w/enqueue-and-wait i/*env* task#)))))))) + +(defmacro stub-function + "Stubs `f`, wrapping it in an activity-aware function." + [f] + `(fn [& argv#] + (assert (some? (:next-id i/*env*)) "No next-id function, are you inside `defn-workflow`?") + (let [ref# (:ref i/*env*) + root# (:root i/*env*) + fvar# (var ~f)] + ;; TODO we can use &form to determine eg checksum of activity + + ;; prepare call + (let [store# (:store i/*env*) + protos# (:protos i/*env*) + id# ((:next-id i/*env*)) + ref# nil ;; no enqueued task => no ref + task# (i/create-activity-task ref# root# (symbol fvar#) (macros/case :cljs fvar# :clj (var-get fvar#)) argv# id#)] + + ;; an embedded workflow engine doesn't need to have a task per invocation + (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id " id#]) + (trace! {:name (format "activity: %s" (symbol fvar#)) :attributes {:task-id id#}} + (w/enqueue-and-wait i/*env* task#) + #_(let [res# (i/resume-task i/*env* store# protos# task#)] + (macros/case + :cljs res# + :clj (deref res#)))))))) + +(defmacro stub-protocol + "Stub a protocol definition. Opts are currently unused. + Example: `(stub-protocol EventHandler {:some-opts true})`" + [proto & opts] + (macros/case + :cljs + (when cljs-available? + (let [resolved (api/resolve &env proto) + curr-ns (:name (:ns &env)) + proto-ns (:ns resolved) + in-proto-ns? (= curr-ns proto-ns) + sig+args (-> (for [[sig val] (:sigs resolved) + :let [arglist (:arglists val) + qname (str (name proto-ns) "/" (name sig)) + invname (if in-proto-ns? + (name sig) + (str (namespace proto) "/" (name sig)))]] + [(name sig) arglist (symbol invname) (symbol qname) (str (:name resolved))]) + (doall))] + ;; TODO we can use &form to determine eg checksum of proto def + `(reify ~proto + ~@(for [[mname arglist invname qname pname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [aid# '~qname + act-opts# ~(first opts) + ref# (:ref i/*env*) + root# (:root i/*env*)] + + ;; prepare call + (let [store# (:store i/*env*) + protos# (:protos i/*env*) + id# ((:next-id i/*env*)) + ref# nil ;; no task => no ref + task# (i/create-proto-activity-task + (symbol ~pname) + ref# + root# + (symbol aid#) + ;aid# ;; >> doesn't work! + ;; protos are not reified like in clj https://clojurescript.org/about/differences#_protocols + ;; we create a "fake" fvar that can be invokeable just like the real thing + (fn [& impl+args#] (apply ~qname impl+args#)) + [~@args] + id#)] + + (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) + ;(i/resume-task i/*env* store# protos# task#)))))))) + (w/enqueue-and-wait i/*env* task#)))))))) + + :clj + #_{:clj-kondo/ignore [:unresolved-symbol]} + (let [proto-var (var-get (resolve proto)) + curr-ns (name (ns-name *ns*)) + proto-ns (namespace (symbol (subs (str (:var proto-var)) 2))) + in-proto-ns? (= curr-ns proto-ns) + sig+args (-> (for [[sig val] (:sigs proto-var) + :let [arglist (:arglists val) + qname (str (name proto-ns) "/" (name sig)) + invname (if in-proto-ns? + (name sig) + (str (namespace proto) "/" (name sig)))]] + [(name sig) arglist (symbol invname) (symbol qname)]) + (doall))] + `(reify ~proto + ~@(for [[mname arglist invname qname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [aid# '~qname + act-opts# ~(first opts) + ref# (:ref i/*env*) + root# (:root i/*env*)] + + ;; prepare call + (let [store# (:store i/*env*) + protos# (:protos i/*env*) + id# ((:next-id i/*env*)) + ref# nil ;; no task => no ref + task# (i/create-proto-activity-task + (-> ~proto :var symbol) + ref# + root# + (symbol aid#) + (var-get (requiring-resolve aid#)) + [~@args] + id#)] + + (t/log! {:level :debug :_data {:env i/*env* :task task#}} ["Invoking task with id" id#]) + (if (:vthread? i/*env*) + + (trace-async! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} + @(i/resume-task i/*env* store# protos# task#)) + #_ + (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} + (w/enqueue-and-wait i/*env* task#)) + (trace! {:name (format "activity: %s" aid#) :attributes {:task-id id# :protocol (-> ~proto :var symbol)}} + ;@(i/resume-task i/*env* store# protos# task#))))))))))) + (w/enqueue-and-wait i/*env* task#))))))))))) + +(defmacro with-failure + "Runs `body`, ensuring that if it fails, compensation will always run. + - if `body` fails, `binding` will have the value `intemporal.activity/failure`. + - if `body` succeeds, but compensation is invoked later (eg other activity failure), `binding` will have its return value + + (with-failure [v (book-hotel stub \"hotel\")] + (cancel-hotel stub v n)) + " + [[binding body] comp-fn] + `(let [val# (atom :intemporal.activity/failure)] + (w/add-compensation (fn [] (let [~binding @val#] (do ~comp-fn)))) + (reset! val# (do ~body)))) \ No newline at end of file diff --git a/src2/intemporal/store.cljc b/src2/intemporal/store.cljc new file mode 100644 index 0000000..3548f32 --- /dev/null +++ b/src2/intemporal/store.cljc @@ -0,0 +1,340 @@ +(ns intemporal.store + (:require [clojure.tools.reader.edn :as edn] + [intemporal.store.internal :as si] + [promesa.core :as p] + [taoensso.telemere :as t] + #?(:clj [clojure.java.io :as io]) + #?(:clj [net.cgrand.macrovich :as macros])) + #?(:cljs (:require-macros + [net.cgrand.macrovich :as macros] + [intemporal.store :refer [bfn]])) + #?(:clj (:import [java.io File]))) + +#?(:clj (set! *warn-on-reflection* true)) + +(defmacro bfn + "Like bound-fn on JVM; falls back to fn on CLJS." + [args & body] + (macros/case + :clj `(clojure.core/bound-fn ~args ~@body) + :cljs `(fn ~args ~@body))) + +;;;; +;; main protos + +(defprotocol TaskStore + (list-tasks [this] "Lists all tasks") + (task<-panic [this task-id error] + "Terminates the task via panic; events should not be stored") + (task<-event [this task-id event-descr] + "Transitions the task. The task should be dequeued beforehand. Returns the event. + `event-descr` is one of: + `{:sym 'ns/f :args [1]}` + `{:sym 'ns/f :result :ok}` + `{:sym 'ns/f :error }` + ") + (watch-task [this id callback] + "Observes state changes, calling `callback` for any task that matches `predicate`.") + (await-task [this id] [this id opts] + "Waits for workflow to finish. Returns a deref'able value. Can throw. + Opts include + - `timeout-ms`: timeout for task await") + (find-task [this id] + "Finds the task on the db by id") + (reenqueue-pending-tasks [this callback] + "Marks all pending tasks belonging to the store's `owner` (or `nil` owner) as `new`") + (release-pending-tasks [this] + "Disowns all tasks that are pending for the store's `owner` (or `nil` owner), making them available") + (enqueue-task [this task] + "Atomically enqueues a protocol, workflow or activity task execution") + (dequeue-task [this] [this opts] + "Atomically dequeues some workflow, protocol or activity task. + For deterministic purposes, should dequeue the oldest task first. + If the task was deserialized, its `fvar` attribute must be a `fn` + Opts: + * `lease-ms`- duration of lease for dequeue. After lease expires, the task is eligible for dequeueing again") + (clear-tasks [this] + "Deletes all tasks")) + +(defprotocol HistoryStore + (list-events [this] "Lists all events") + (save-event [this task-id event] "Saves the event for the given task id. Returns the saved event") + (all-events [this task-id] "Returns all the events for a given task id") + (clear-events [this] "Deletes all events")) + +(defprotocol InternalVarStore + (register [this sym var] "Register the symbol with the var") + (lookup [this sym] "Finds the var for the given symbol")) + +;;;; +;; helpers + +(defn now [] + #?(:clj (System/currentTimeMillis) + :cljs (.getTime (js/Date.)))) + +(def default-lease "Default lease time in millis - 15mins" + (* 15 60 1000)) + +(defn sym->var [store {:keys [sym fvar] :as task}] + #?(:clj (or fvar (requiring-resolve sym)) + :cljs (or fvar (lookup store sym)))) + +(defn- edn-exists? [file] + #?(:clj (.exists (File. ^String file)) + :cljs (seq (.getItem (.-localStorage js/window) file)))) + +(defn read-edn [file readers] + #?(:clj (with-open [f (io/reader file)] + (edn/read-string {:readers readers} (slurp f))) + :cljs (let [f (.getItem (.-localStorage js/window) file)] + (edn/read-string {:readers readers} f)))) + +(defn write-edn [file val] + #?(:clj (spit file val) + :cljs (.setItem (.-localStorage js/window) file (pr-str val)))) + +;;;; +;; main impl +;; + +(def default-owner "intemporal") + +(defn make-store + "Creates a new memory-based store. All workflows will belong to the store's owner. + When calling `release-pending-tasks` or `reenqueue-pending-tasks`, only tasks that either belong to the + store's `owner` or have `owner = nil` will be picked up." + ([] + (make-store nil)) + ([{:keys [owner file readers failures] + :or {owner default-owner + failures {:validation 0}}}] + ;; TODO use single atom? + (let [tasks (atom {}) + history (atom {}) + counter (atom 0) + pcounter (atom 0) + ecounter (atom 0) + tcounter (atom 0) + vars (atom {}) + maybe-fail! (fn [] + (when (< (rand-int 100) + (* 100 (get failures :validation))) + (throw (ex-info "Forced error via failure rate" {:intemporal.workflow.internal/type :internal})))) + + ;;persistence + persist! (fn [k ref old new] + (when (and file (not= old new)) + (t/log! :debug ["Persisting store to file" file]) + (write-edn file {:tasks @tasks + :history @history + :counter @counter + :pcounter @pcounter + :ecounter @ecounter}))) + + find-task (fn [this id] + (get @tasks id)) + + update-task (fn [this id attrs] + (when-let [w (find-task this id)] + (maybe-fail!) + (si/validate-transition! w attrs) + (->> (merge w attrs) + (si/validate-task!) + (swap! tasks assoc id))))] + + ;; deser the db + (when file + ;; add hooks to persist on change + (add-watch tasks :persist persist!) + (add-watch history :persist persist!) + (add-watch counter :persist persist!) + (add-watch pcounter :persist persist!) + (add-watch ecounter :persist persist!) + + (when (edn-exists? file) + (t/log! :info ["Reading store file" file]) + (let [data (read-edn file readers)] + (reset! tasks (or (:tasks data) {})) + (reset! history (or (:history data) {})) + (reset! counter (or (:counter data) 0)) + (reset! pcounter (or (:pcounter data) 0)) + (reset! ecounter (or (:ecounter data) 0))))) + + (reify + InternalVarStore + (register [this sym var] + #?(:cljs (swap! vars assoc sym var))) + (lookup [this sym] + #?(:clj (requiring-resolve sym) + :cljs (get @vars sym))) + + HistoryStore + (list-events [this] + (apply concat (vals @history))) + (save-event [this task-id event] + (let [evt+id (assoc event :id (swap! counter inc))] + (si/validate-event! evt+id) + (swap! history (fn [v] + (assoc v task-id (-> (or (get v task-id) []) + (conj evt+id))))) + evt+id)) + (all-events [this task-id] + (get @history task-id)) + + (clear-events [this] + (reset! history {})) + + TaskStore + (list-tasks [this] + (filter #(or (= owner (:owner %)) + (nil? (:owner %))) + (vals @tasks))) + + (task<-panic [this task-id error] + (update-task this task-id {:result error})) + + (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] + ;; some redundancy between :result in task and event + ;; note that we save the event first, because update-task can trigger some watchers + ;; and they would expect the event to be present in the history + (cond + (some? args) + (let [evt {:ref ref :root root :type type :sym sym :args args :error nil :result nil}] + (when-not id + (save-event this task-id evt)) + (update-task this task-id {:state :pending}) + evt) + + (some? error) + (let [evt {:ref ref :root root :type type :sym sym :args nil :error error :result nil}] + (when-not id + (save-event this task-id evt)) + (update-task this task-id {:state :failure :result error}) + evt) + + ;;(some? result) ;result can be nil + :else + (let [evt {:ref ref :root root :type type :sym sym :args nil :error nil :result result}] + (when-not id + (save-event this task-id evt)) + (update-task this task-id {:state :success :result result}) + evt))) + + (find-task [this id] + (->> (vals @tasks) + (filter #(= (:id %) id)) + (first))) + + (watch-task [this id f] + (let [k (keyword (str "watcher-" (swap! pcounter inc))) + watchfn (fn [k atm old new] + (let [xf (comp + (filter #(= id (:id %))) + (filter #(not= (get old (:id %)) %)) + (take 1)) + changeset (transduce xf conj (vals new))] + + (when (and (first changeset) + (f (first changeset))) + (remove-watch tasks k))))] + (add-watch tasks k watchfn))) + + (await-task [this id] + (await-task this id {:timeout-ms default-lease})) + + (await-task [this id {:keys [timeout-ms] :as opts}] + (maybe-fail!) + (let [task (find-task this id) + deferred (p/deferred) + wrap-result (fn [{:keys [result] :as task}] + (cond + (si/success? task) (p/resolved result) + (si/failure? task) (p/rejected result) + :else (p/rejected (ex-info "Unknown state" {:task task}))))] + + (if (si/terminal? task) + (wrap-result task) + ;;else + (do + (watch-task this id (bfn [task] + (when (si/terminal? task) + (p/resolve! deferred task) + true))) + ;; wait for resolution + ;; remember: js doesnt have blocking op so we need to chain + (-> (p/timeout deferred timeout-ms ::timeout) + (p/then (bfn [resolved] + (if (= ::timeout resolved) + (throw (ex-info "Timeout waiting for task to be completed" {:task task})) + (wrap-result resolved))))))))) + + (release-pending-tasks [this] + (swap! tasks + update-vals + (fn [{:keys [state] :as task}] + (cond-> task + (and (= :pending state) + (= (:owner task) owner)) + (assoc :owner nil))))) + + (reenqueue-pending-tasks [this f] + (let [task->run? (atom #{})] + (swap! tasks + update-vals + (fn [{:keys [state] :as task}] + (if (and (= :pending state) + (or (= (:owner task) owner) + (nil? (:owner task)))) + (try + ;; ensure we only run f once - swap! might run the fn multiple times + (assoc task :state :new :owner owner) + ;; TODO log reenqueued task + (finally + (when-not (contains? @task->run? task) + (try + (f task) + (finally + (swap! task->run? conj task)))))) + ;; else + task))))) + + (enqueue-task [this task] + (maybe-fail!) + (let [task+owner (assoc task :owner owner :order (swap! tcounter inc))] + (si/validate-task! task+owner) + (swap! tasks assoc (:id task) task+owner) + #?(:cljs (register this (:sym task+owner) (:fvar task+owner))) + task+owner)) + + (dequeue-task [this] + (dequeue-task this {:lease-ms nil})) + + (dequeue-task [this {:keys [lease-ms]}] + (let [first-new (fn [v] (->> (vals v) + (filter #(and + (or (= owner (:owner %)) (nil? (:owner %))) + (or (= :new (:state %)) + (some-> (:lease-end %) + (< (now)))))) + (sort-by :order) + (first))) + found? (atom nil)] + + (swap-vals! tasks + (fn [v] (let [found (first-new v)] + (if found + (->> (assoc found :state :pending + :fvar (sym->var this found) + ;; watch for overflow? + :lease-end (when lease-ms + (+ (now) lease-ms))) + (reset! found?) + (assoc v (:id found))) + v)))) + ;; highest first + (->> @found?))) + + (clear-tasks [this] + (reset! tasks {})))))) + diff --git a/src2/intemporal/store/foundationdb.clj b/src2/intemporal/store/foundationdb.clj new file mode 100644 index 0000000..a12dbf0 --- /dev/null +++ b/src2/intemporal/store/foundationdb.clj @@ -0,0 +1,255 @@ +(ns intemporal.store.foundationdb + (:require [intemporal.store :as store] + [intemporal.workflow.internal :as i] + [intemporal.store.internal :as si :refer [resolve-fvar serialize deserialize next-id]] + [me.vedang.clj-fdb.FDB :as cfdb] + [me.vedang.clj-fdb.core :as fc] + [me.vedang.clj-fdb.transaction :as ftr] + [me.vedang.clj-fdb.subspace.subspace :as fsub] + [promesa.core :as p]) + (:import [com.apple.foundationdb FDB FDBTransaction KeyValue] + [com.apple.foundationdb.tuple Tuple])) + +;; FDB is a KV store; this store impl will use the subspace feature for namespacing +;; => task +;; => event +;; event ids are scoped to a task +;; values are (de)serialized via nippy + +(def fdb-api-version cfdb/clj-fdb-api-version) + +(defmacro with-tx [binding & body] + (let [[tx-sym db-sym] binding + database (with-meta db-sym {:tag 'com.apple.foundationdb.Database})] + ;; TODO type hint Closeable? + `(with-open [db# ~database] + (ftr/run db# + (fn [~tx-sym] (do ~@body)))))) + +(defn make-store + ([] + (make-store nil)) + ([{:keys [owner cluster-file-path] + :or {owner store/default-owner}}] + (let [^FDB fdb (cfdb/select-api-version fdb-api-version) + open-db #(if cluster-file-path + (cfdb/open fdb cluster-file-path) + (cfdb/open fdb)) + subspace-tasks (fsub/create ["tasks"]) + subspace-owned-tasks (fsub/create [(str owner "_tasks")]) + subspace-history (fsub/create ["history"])] + (reify + store/InternalVarStore + (register [this sym var]) + (lookup [this sym] + (requiring-resolve sym)) + + store/HistoryStore + (list-events [this] + (-> (with-tx [tx (open-db)] + (fc/get-range tx subspace-history {:valfn deserialize})) + (vals))) + + (save-event [this task-id {:keys [type ref root sym args result] :as event}] + (si/validate-serializable! args "Event args should be serializable") + (si/validate-serializable! result "Event result should be serializable") + (let [evt-id (next-id) + evt+id (assoc event :id evt-id)] + (si/validate-serializable! evt+id "Event should be serializable") + (si/validate-event! evt+id) + + (with-tx [tx (open-db)] + (fc/set tx subspace-history [task-id evt-id] (serialize evt+id))) + evt+id)) + + (all-events [this task-id] + (-> (with-tx [tx (open-db)] + (fc/get-range tx subspace-history [task-id] {:valfn deserialize})) + (vals))) + + (clear-events [this] + (with-tx [tx (open-db)] + (fc/clear-range tx subspace-history))) + + store/TaskStore + (list-tasks [this] + (let [owned (-> (with-tx [tx (open-db)] + (fc/get-range tx subspace-owned-tasks {:valfn (comp resolve-fvar deserialize)})) + (vals)) + free (-> (with-tx [tx (open-db)] + (fc/get-range tx subspace-tasks {:valfn (comp resolve-fvar deserialize)})) + (vals))] + (into owned free))) + + (task<-panic [this task-id error] + (with-tx [tx (open-db)] + (let [task (fc/get tx subspace-owned-tasks task-id {:valfn (comp resolve-fvar deserialize)}) + updated-task (assoc task :result error)] + (when task + (si/validate-task! updated-task) + (fc/set tx subspace-owned-tasks task-id (serialize updated-task)))))) + + (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] + ;; some redundancy between :result in task and event + ;; note that we save the event first, because update-task can trigger some watchers + ;; and they would expect the event to be present in the history + (with-tx [tx (open-db)] + (let [task (fc/get tx subspace-owned-tasks task-id {:valfn (comp resolve-fvar deserialize)}) + evt {:ref ref :root root :type type :sym sym :args args} + updated-task (cond + (some? args) (assoc task :state :pending) + (some? error) (assoc task :state :failure :result error) + :else (assoc task :state :success :result result)) + updated-evt (cond + (some? args) (assoc evt :args args) + (some? error) (assoc evt :error error) + :else (assoc evt :result result))] + (si/validate-serializable! task "Task should be serializable") + (when-not id + (store/save-event this task-id updated-evt)) + ;; not every invocation will come from a persisted task + (when task + (si/validate-task! updated-task) + (si/validate-transition! task updated-task) + (fc/set tx subspace-owned-tasks task-id (serialize updated-task))) + updated-evt))) + + (find-task [this id] + (with-tx [^FDBTransaction tx (open-db)] + (when-let [task? (fc/get tx subspace-owned-tasks id)] + (resolve-fvar (deserialize task?))))) + + (watch-task [this id f] + (let [watch? (atom true)] + (i/libthread (format "Watcher-%s" id) + (while @watch? + @(with-tx [^FDBTransaction tx (open-db)] + (when (fc/get tx subspace-owned-tasks id) + (.watch tx (fsub/pack subspace-owned-tasks (Tuple/from (object-array [id])))))) + + (with-tx [^FDBTransaction tx (open-db)] + (when-let [task? (fc/get tx subspace-owned-tasks id)] + (when (f (resolve-fvar (deserialize task?))) + (reset! watch? false)))))))) + + (await-task [this id] + (store/await-task this id {:timeout-ms store/default-lease})) + + (await-task [this id {:keys [timeout-ms] :as opts}] + (let [task (store/find-task this id) + deferred (p/deferred) + wrap-result (fn [{:keys [state result] :as task}] + (cond + (si/success? task) (p/resolved result) + (si/failure? task) (p/rejected result) + :else (p/rejected (ex-info "Unknown state" {:task task}))))] + + (if (si/terminal? task) + (wrap-result task) + ;;else + (do + (store/watch-task this id (fn [{:keys [state] :as task}] + (when (si/terminal? task) + (p/resolve! deferred task) + true))) + ;; wait for resolution + (-> (p/timeout deferred timeout-ms ::timeout) + (p/then (fn [resolved] + (if (= ::timeout resolved) + (throw (ex-info "Timeout waiting for task to be completed" {:task task})) + (wrap-result resolved))))))))) + + (release-pending-tasks [this] + (with-tx [tx (open-db)] + (let [owned-tasks @(.asList (ftr/get-range tx (fsub/range subspace-owned-tasks)))] + (doseq [kv owned-tasks] + (let [task (-> kv .getValue deserialize resolve-fvar)] + (when (= :pending (:state task)) + (fc/set tx subspace-tasks [(:id task)] (serialize (assoc task :owner nil))) + (fc/clear tx subspace-owned-tasks (:id task)))))))) + + (reenqueue-pending-tasks [this f] + (with-tx [tx (open-db)] + (let [owned-tasks @(.asList (ftr/get-range tx (fsub/range subspace-owned-tasks))) + free-tasks @(.asList (ftr/get-range tx (fsub/range subspace-tasks)))] + (doseq [kv owned-tasks] + (let [task (-> kv .getValue deserialize resolve-fvar)] + (when (= :pending (:state task)) + (f task) + (fc/set tx subspace-owned-tasks [(:id task)] (serialize (assoc task :state :new)))))) + + (doseq [kv free-tasks] + (let [task (-> kv .getValue deserialize resolve-fvar)] + (when (= :pending (:state task)) + (f task) + (fc/clear tx subspace-tasks (:id task)) + (fc/set tx subspace-owned-tasks [(:id task)] (serialize (assoc task :state :new :owner owner))))))))) + + (enqueue-task [this task] + (let [task+owner (assoc task :owner owner) + task-id (:id task+owner)] + (si/validate-serializable! task+owner "Task should be serializable") + (si/validate-task! task+owner) + + (with-tx [tx (open-db)] + (fc/set tx subspace-owned-tasks [task-id] (serialize (dissoc task+owner :fvar)))) + task+owner)) + + (dequeue-task [this] + (store/dequeue-task this {:lease-ms nil})) + + (dequeue-task [this {:keys [lease-ms]}] + (let [dequeuable? (fn [{:keys [state lease-end]}] + (or (= :new state) + (some-> lease-end + (< (store/now))))) + update-task (fn [task] + (assoc task + :owner owner + :state :pending + :fvar (store/sym->var this task) + :lease-end (when lease-ms (+ (store/now) lease-ms)))) + found? (with-tx [tx (open-db)] + (reduce + (fn [_ ^KeyValue kv] + (let [task (-> kv .getValue deserialize resolve-fvar)] + (when (dequeuable? task) + (let [updated-task (update-task task)] + (fc/set tx subspace-owned-tasks [(:id task)] (serialize (dissoc updated-task :fvar))) + (reduced updated-task))))) + nil + (ftr/get-range tx (fsub/range subspace-owned-tasks))))] + + ;; if we cant find any task that we own, + ;; try the tasks that were released + (if found? + found? + (with-tx [tx (open-db)] + (reduce + (fn [_ ^KeyValue kv] + (let [task (-> kv .getValue deserialize resolve-fvar)] + (when (dequeuable? task) + (let [updated-task (update-task task)] + (fc/clear tx subspace-tasks (:id task)) + (fc/set tx subspace-owned-tasks [(:id task)] (serialize (dissoc updated-task :fvar))) + (reduced updated-task))))) + nil + (ftr/get-range tx (fsub/range subspace-tasks))))))) + + (clear-tasks [this] + (with-tx [tx (open-db)] + (fc/clear-range tx subspace-owned-tasks))))))) + + +(comment + (def s (make-store {:cluster-file-path "docker/fdb.cluster"})) + (def t (i/create-workflow-task "ref#" "root#" 'clojure.core/+ (var-get #'+) [] 1)) + + (store/save-event s 1 {:a 1}) + (store/list-events s) + (store/list-tasks s) + + (store/enqueue-task s t) + (store/dequeue-task s)) + +;(store/watch-task s 1 (partial println ">>>")) \ No newline at end of file diff --git a/src2/intemporal/store/internal.cljc b/src2/intemporal/store/internal.cljc new file mode 100644 index 0000000..3c302b6 --- /dev/null +++ b/src2/intemporal/store/internal.cljc @@ -0,0 +1,139 @@ +(ns intemporal.store.internal + #?(:clj (:require [intemporal.error :as error] + [taoensso.nippy :as nippy] + [malli.core :as m]) + :cljs (:require [clojure.edn :as edn] + [intemporal.error :as error] + [malli.core :as m]))) + +(defn next-id [] + #?(:clj (System/currentTimeMillis) + :cljs (.getTime (js/Date.)))) + +;;;; +;; serialization + +(defn resolve-fvar [{:keys [sym] :as task}] + ;; TODO does it work in cljs? + (assoc task :fvar #?(:clj (requiring-resolve sym) :cljs nil))) + +(defn serializable? + "Indicates if an object is serializable" + [x] + #?(:clj (nippy/freezable? x {:allow-java-serializable? true?}) + :cljs true)) + +(defn serialize + "Serializes an object" + [x] + (when x + #?(:clj (nippy/freeze x) + :cljs (pr-str x)))) + +(defn deserialize + "Deserializes an object" + [x] + (when x + #?(:clj (nippy/thaw x) + :cljs (edn/read x)))) + +;;;; +;; validation + +#_:clj-kondo/ignore +#?(:clj (when (= "true" (System/getenv "DEV")) + ((requiring-resolve 'malli.dev/start!)))) + +;;;; +;; validation +(def registry + (merge + (m/class-schemas) + (m/comparator-schemas) + (m/base-schemas) + (m/type-schemas) + {:var (m/-simple-schema {:type :var, :pred #(or (fn? %) (var? %))})})) + +(def ^:private RuntimeConfig + [:map {:closed false} + [:timeout-ms {:optional true} :int] + [:telemetry-context {:optional true} [:maybe :map]]]) + +(def ^:private Task + [:map {:closed true} + [:id [:or :string :uuid]] + [:owner [:maybe :string]] + [:sym :symbol] + [:ref [:maybe :string]] + [:root [:maybe :string]] + [:proto {:optional true} :symbol] + [:fvar :var] + [:args {:optional true} [:maybe [:sequential :any]]] + [:result :any] + [:state [:enum :new :pending :failure :success]] + [:type [:enum :workflow :activity :proto-activity]] + [:lease-end {:optional true} [:maybe :int]] + [:order {:optional true} :int] + [:runtime {:optional true} RuntimeConfig]]) + +(def ^:private Event + [:map {:closed true} + [:id :int] + [:ref [:maybe :string]] + [:root [:maybe :string]] + [:type [:enum + :intemporal.workflow/invoke :intemporal.workflow/success :intemporal.workflow/failure + :intemporal.activity/invoke :intemporal.activity/success :intemporal.activity/failure + :intemporal.protocol/invoke :intemporal.protocol/success :intemporal.protocol/failure + :intemporal.workflow.internal/failure]] + [:sym :symbol] + [:args {:optional true} [:maybe [:sequential :any]]] + [:result {:optional true} :any] + [:error {:optional true} :any]]) + +;; valid task states +(def valid-state-transitions {:new #{:pending} + :pending #{:new :success :failure}}) + +(defn validate-transition! + "Ensures that the task's new `:state`, if any, is allowed. + Useful to implement compare-and-swap semantics" + [{:keys [state id]} attrs] + (let [next-states (get valid-state-transitions state)] + ;; if we are updating state + ;; and the new state is not allowed + ;; error out + (when (and (contains? attrs :state) + (not= (:state attrs) state) + (not (contains? next-states (:state attrs)))) + (throw (ex-info (str "Cannot update task with id " id " from state " state " to " (:state attrs)) {:task-id id + :state state + :next-state (:state attrs)}))))) +(def validate-task! + "Throws if the task is not valid" + (m/coercer Task nil {:registry registry})) + +(def validate-event! + "Throws if the event is not valid" + (m/coercer Event nil {:registry registry})) + +(defn validate-serializable! + "Throws if the object is not serializable" + ([obj] + (validate-serializable! obj "Object is not serializable")) + ([obj msg] + (when-not (serializable? obj) + (throw (ex-info msg {:object obj}))))) + + +(defn success? [{:keys [state] :as task}] + (= :success state)) + +(defn failure? [{:keys [state result] :as task}] + (or (= :failure state) + (and (= :pending state) + (error/panic? result)))) + +(defn terminal? [task] + (or (success? task) + (failure? task))) \ No newline at end of file diff --git a/src2/intemporal/store/jdbc.clj b/src2/intemporal/store/jdbc.clj new file mode 100644 index 0000000..07dc171 --- /dev/null +++ b/src2/intemporal/store/jdbc.clj @@ -0,0 +1,290 @@ +(ns intemporal.store.jdbc + (:require [hikari-cp.core :as hikari] + [intemporal.store :as store] + [intemporal.workflow.internal :as i] + [intemporal.store.internal :as si :refer [serialize deserialize]] + [migratus.core :as migratus] + [next.jdbc :as jdbc] + [next.jdbc.sql.builder :as builder] + [next.jdbc.result-set :as rs] + [promesa.core :as p]) + (:import [java.sql Timestamp] + [java.util Date])) + +(comment + (let [cfg {:store :database + :migration-dir "migrations/postgres" + :watch-polling-ms 100 + :db {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root"}}] + (migratus/rollback cfg) + (migratus/migrate cfg)) + "") + +;;;; +;; utilities + +(defn- kw->db [kw] + (when kw + (if (keyword? kw) + (.substring (str kw) 1) + (name kw)))) + +(defn- db->kw [v] + (when v (keyword v))) + +(defn- db->task [{:keys [id proto type ref root sym args result state lease_end runtime owner] :as task}] + (let [dargs (deserialize args) + dresult (deserialize result) + druntime (deserialize runtime) + ssym (symbol sym) + sproto (when proto (symbol proto)) + kstate (db->kw state)] + (cond-> (condp = type + "workflow" (i/create-workflow-task ref root ssym (resolve ssym) dargs id dresult kstate druntime) + "activity" (i/create-activity-task ref root ssym (resolve ssym) dargs id dresult kstate druntime) + "proto-activity" (i/create-proto-activity-task sproto ref root ssym (resolve ssym) dargs id dresult kstate druntime)) + lease_end (assoc :lease-end lease_end) + owner (assoc :owner owner)))) + +(defn- db->event [{:keys [id type ref root sym args result] :as event}] + (let [dargs (deserialize args) + dresult (deserialize result)] + (assoc event + :type (db->kw type) + :ref ref + :root root + :sym (symbol sym) + :args dargs + :result dresult))) + +;;;; +;; main + +(defn make-store + "Creates a new Postgres-based store." + [{:keys [owner migration-dir migrate? watch-polling-ms jdbcUrl] + :or {owner store/default-owner migrate? true watch-polling-ms 100} :as opts}] + (let [db-spec (-> opts + (dissoc :migration-dir :migrate? :watch-polling-ms) + (assoc :jdbc-url jdbcUrl)) + datasource (hikari/make-datasource db-spec) + config {:store :database + :migration-dir migration-dir + :db db-spec} + default-opts {:builder-fn rs/as-unqualified-lower-maps}] + + (when migrate? + (migratus/migrate config)) + + (reify + store/InternalVarStore + (register [this sym var]) + (lookup [this sym] + (requiring-resolve sym)) + + store/HistoryStore + (list-events [this] + (->> (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["select * from events"] default-opts)) + (map db->event))) + + (save-event [this task-id {:keys [type ref root sym args result] :as event}] + (si/validate-serializable! args "Event args should be serializable") + (si/validate-serializable! result "Event result should be serializable") + (si/validate-event! (assoc event :id Integer/MAX_VALUE)) + + (let [args (serialize args) + result (serialize result) + res (jdbc/with-transaction [tx datasource] + (jdbc/execute-one! tx ["INSERT INTO events(type, ref, root, sym, args, result) values (?,?,?,?,?,?) RETURNING id" + (kw->db type) ref root (str sym) args result] + default-opts))] + (assoc event :id (:id res)))) + + (all-events [this task-id] + (->> (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["select * from events where ref=?" task-id] default-opts)) + (map db->event))) + + (clear-events [this] + (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["delete from events"]))) + + store/TaskStore + (list-tasks [this] + (->> (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["select * from tasks where (owner is null or owner=?)" owner] default-opts)) + (map db->task))) + + (task<-panic [this task-id error] + (jdbc/with-transaction [tx datasource] + (let [updated-task {:result (serialize error)}] + (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id} default-opts))))) + + (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}] + ;; some redundancy between :result in task and event + ;; note that we save the event first, because update-task can trigger some watchers + ;; and they would expect the event to be present in the history + (jdbc/with-transaction [tx datasource] + (let [evt {:ref ref :root root :type type :sym sym :args args} + expected-state (cond + (some? args) :new + (or (some? result) (some? error)) :pending + :else :unknown) + updated-task (cond + (some? args) {:state (kw->db :pending) :args (serialize args)} + (some? error) {:state (kw->db :failure) :result (serialize error)} + :else {:state (kw->db :success) :result (serialize result)}) + updated-evt (cond + (some? args) (assoc evt :args args) + (some? error) (assoc evt :error error) + :else (assoc evt :result result))] + + (when-not id + (store/save-event this task-id updated-evt)) + ;; cant really validate because its a partial task + ;(validate-task! updated-task) + (let [updated (jdbc/execute-one! tx (builder/for-update "tasks" updated-task {:id task-id :state (name expected-state)} default-opts))] + (when (empty? updated) + (throw (ex-info (format "Cannot update task with id %s, expected state %s did not match" id expected-state) + {:task-id id :expected-state expected-state}))) + updated-evt)))) + + (find-task [this id] + (some-> (jdbc/with-transaction [tx datasource] + (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) + (db->task))) + + (watch-task [this id f] + (let [query-state! (fn [] + (jdbc/with-transaction [tx datasource] + (jdbc/execute-one! tx ["select state from tasks where id=?" id] default-opts))) + state (query-state!) + watch? (atom true)] + (i/libthread (format "Watcher-%s" id) + (while (and @watch? state) + (Thread/sleep (long watch-polling-ms)) + (when (not= state (query-state!)) + (let [task (some-> (jdbc/with-transaction [tx datasource] + (jdbc/execute-one! tx ["select * from tasks where id=?" id] default-opts)) + (db->task))] + (when (and task (f task)) + (reset! watch? false)))))))) + + (await-task [this id] + (store/await-task this id {:timeout-ms store/default-lease})) + + (await-task [this id {:keys [timeout-ms] :as opts}] + ;; TODO use owner + ;; TODO use promise if available + (let [task (store/find-task this id) + deferred (p/deferred) + wrap-result (fn [{:keys [state result] :as task}] + (cond + (si/success? task) (p/resolved result) + (si/failure? task) (p/rejected result) + :else (p/rejected (ex-info "Unknown state" {:task task}))))] + + (if (si/terminal? task) + (wrap-result task) + ;;else + (do + (store/watch-task this id (fn [task] + (when (si/terminal? task) + (p/resolve! deferred task) + true))) + ;; wait for resolution + (-> (p/timeout deferred timeout-ms ::timeout) + (p/then (fn [resolved] + (if (= ::timeout resolved) + (throw (ex-info "Timeout waiting for task to be completed" {:task task})) + (wrap-result resolved))))))))) + + (release-pending-tasks [this] + (jdbc/with-transaction [tx datasource] + (jdbc/execute-one! tx ["update tasks set owner=null where owner=?" owner]))) + + (reenqueue-pending-tasks [this f] + (let [tasks? (jdbc/with-transaction [tx datasource] + (let [tasks (jdbc/execute! tx ["select * from tasks where state='pending' and (owner is null or owner=?)" owner] default-opts)] + (jdbc/execute-one! tx ["update tasks set state='new', owner=? where id = ANY(?)" owner + (into-array String (mapv :id tasks))]) + (doseq [row tasks] + (f (db->task row))) + tasks))] + tasks?)) + + (enqueue-task [this {:keys [id proto type ref root sym args result state lease-end runtime] :as task}] + (assert (or (nil? proto) (some? (:on proto)) "Task protocol not valid, missing :on attribute")) + + (let [task+owner (assoc task :owner owner)] + (si/validate-serializable! args "Task args should be serializable") + (si/validate-serializable! result "Task result should be serializable") + (si/validate-serializable! runtime "Task runtime should be serializable") + (si/validate-task! task+owner) + + (let [proto? (cond (symbol? proto) (str proto) + (some? (:on proto)) (str (:on proto)) + (string? proto) proto) + args (serialize args) + result (serialize result) + runtime (serialize runtime)] + (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["INSERT INTO tasks(id,owner,proto,type,ref,root,sym,args,result,state,lease_end,runtime) values (?,?,?,?,?,?,?,?,?,?,?,?) RETURNING id" + id owner proto? (kw->db type) (kw->db ref) (kw->db root) (str sym) args result (kw->db state) lease-end runtime]))) + task+owner)) + + (dequeue-task [this] + (store/dequeue-task this {:lease-ms nil})) + + (dequeue-task [this {:keys [lease-ms]}] + ;; TODO check owner + ;; TODO select for update skip locked + (let [query "select * from tasks where (owner=? or owner is null) and (state='new' or lease_end < now()) order by id asc limit 1" + found? (jdbc/with-transaction [tx datasource] + (when-let [task (some-> (jdbc/execute-one! tx [query owner] default-opts) + (db->task))] + (let [lease-epoch (when lease-ms + (* 1000 (+ (store/now) lease-ms))) + lease-ts (when lease-epoch + (-> (Date. (long lease-epoch)) + (.toInstant) + (Timestamp/from)))] + (jdbc/execute-one! tx ["update tasks set state='pending', lease_end=? where id=?" lease-ts (:id task)]) + (assoc task + :state :pending + :fvar (store/sym->var this task) + :lease-end (when lease-epoch + (/ lease-epoch 1000))))))] + found?)) + + (clear-tasks [this] + (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["delete from tasks"])))))) + +#_:clj-kondo/ignore +(comment + (require '[intemporal.workflow.internal :as i]) + (defprotocol TestProto + (a [this] "x")) + (def s (make-store {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root" + :migration-dir "migrations/postgres"})) + + (def t (i/create-workflow-task nil nil 'clojure.core/+ (var-get #'+) [{:a 1}])) + (def t2 (i/create-proto-activity-task TestProto (:id t) (:id t) 'clojure.core/+ (var-get #'+) [{:b 2 :c #inst "2011-01-01"}])) + + (store/clear-events s) + (store/clear-tasks s) + + (store/enqueue-task s t) + (store/enqueue-task s t2) + + (store/list-tasks s) + + (store/watch-task s (:id t) (fn [task] (println "CALLBACK" task))) + + (prn (store/dequeue-task s)) + (store/save-event s 1 {:type :intemporal.workflow/invoke + :ref (:id t) :root (:id t) :sym 'clojure.core/+ :args [] :result [1]}) + + (store/list-events s)) diff --git a/src2/intemporal/workflow.cljc b/src2/intemporal/workflow.cljc new file mode 100644 index 0000000..1d05a24 --- /dev/null +++ b/src2/intemporal/workflow.cljc @@ -0,0 +1,222 @@ +(ns intemporal.workflow + (:require [intemporal.store :as store] + [intemporal.workflow.internal :as internal] + [intemporal.error :as error] + [promesa.core :as p] + [taoensso.telemere :as t]) + #?(:cljs (:require-macros + #_:clj-kondo/ignore + [intemporal.workflow.internal :refer [with-env-internal trace! trace-async!]] + [intemporal.workflow :refer [with-env]])) + #?(:clj (:require [intemporal.error :as error] + [intemporal.workflow.internal :refer [trace! trace-async!]] + [steffan-westcott.clj-otel.context :as otctx])) + #?(:clj (:import [java.util.concurrent Executors TimeUnit] + [java.lang AutoCloseable]))) + +#?(:clj (set! *warn-on-reflection* true)) + +;;;; +;; runtime + +(defmacro with-env + "Creates a new environment for workflow execution. Options: + - `:store`: the underlying store to persist workflow metadata + - `:id`: optional workflow id + - `:timeout-ms`: optional timeout for workflow execution + " + [m & body] + `(internal/with-env-internal ~m (do ~@body))) + +(defn current-env + "Returns the workflow execution environment for the current thread" + [] + (assert (some? internal/*env*) "No workflow env detected, should only be called within a workflow function") + internal/*env*) + +(defn workflow-id + "Returns the current workflow uuid" + [] + (assert (some? internal/*env*) "No workflow env detected, should only be called within a workflow function") + (-> internal/*env* :root)) + +;;;; +;; worker +(defprotocol ITaskExecutor + (submit [this f] "Submits the function `f` for execution") + (shutdown [this grace-period-ms] "Shuts down the task executor") + (terminated? [this] "Indicates if the executor has terminated") + (shutting-down? [this] "Indicates if the executor has entered shutdown state")) + +(defn make-task-executor + "Creates an object that satisfies `ITaskExecutor`." + [] + (let [terminated? (atom false) + shutdown? (atom false)] + #?(:cljs + (reify ITaskExecutor + (submit [_ f] + (when (not @terminated?) + (p/vthread (f)))) + (shutdown [_ grace-period-ms] + (t/log! {:level :debug} ["Executor shutdown"]) + (reset! terminated? true) + (reset! shutdown? true)) + (terminated? [_] @terminated?) + (shutting-down? [_] @shutdown?)) + :clj + (let [factory (-> (Thread/ofVirtual) + (.name "Task Thread") + (.factory)) + exec (Executors/newThreadPerTaskExecutor factory)] + (reify + ITaskExecutor + (submit [_ f] + (.submit exec ^Runnable f)) + (shutdown [_ grace-period-ms] + (try + ;; reject tasks + (.shutdown exec) + (reset! shutdown? true) + (t/log! {:level :debug} ["Executor shutdown"]) + ;; await ongoing tasks + (when-not (.awaitTermination exec grace-period-ms TimeUnit/MILLISECONDS) + (t/log! {:level :debug} ["Executor shutdown grace period over, shutting down NOW"]) + (.shutdownNow exec)) + ;; in case we got interrupted exception, make sure to set the flag + ;; so ongoing ops fail + (finally + (reset! terminated? true)))) + (terminated? [_] + @terminated?) + (shutting-down? [_] + @shutdown?) + ;; allow expressions like (with-open [executor (w/start-poller .... + AutoCloseable + (close [this] + (shutdown this 0))))))) + +(defn- worker-execute-fn + "Executes a given protocol, activity or workflow `task`" + [store protocols {:keys [type id root runtime fvar] :as task} task-counter terminated? shutting-down?] + (let [runtime (:runtime task) + base-env {:store store + :type type + :ref id + :id id + :root (or root id) + :protos protocols + :next-id (fn [] (str (or root id) "-" (swap! task-counter inc))) + :terminated? terminated? + :shutdown? shutting-down?} + internal-env (merge internal/default-env base-env runtime)] + ;; root task: we only enqueue workflows + (with-env internal-env + (t/log! {:level :debug :data {:sym (:sym task)}} ["Resuming task with id" (:id task)]) + ;; this span creation is required in order for + ;; subsequent workflow traces to have a "parent" span, otherwise + ;; they won't show up correctly in jaeger + ;; TODO test with eg loki + (trace-async! {:name "worker: worker-execute-fn" :attributes {:task-id (:id task)}} + #?(:cljs (internal/resume-task internal-env store protocols task) + :clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context runtime)) + (internal/resume-task internal-env store protocols task))))))) + +(defn- worker-poll-fn + "Continously polls for task while `task-executor` is active." + [store protocols task-executor polling-ms] + (let [task-counter (atom 0) + stopped? (fn [] (terminated? task-executor)) + shutdown? (fn [] (shutting-down? task-executor))] + #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} + @(p/loop [] + (-> (p/delay polling-ms) + (p/chain (fn [_] + (loop [] + ;(t/log! {:level :debug} ["Polling for tasks..."]) + ;; TODO add another check for shutting-down? + (when-let [task (and + (not (shutting-down? task-executor)) + (store/dequeue-task store))] + (t/log! {:level :debug :_data {:task task}} ["Dequeued task with id" (:id task)]) + (try + (submit task-executor (fn [] + (worker-execute-fn store protocols task task-counter stopped? shutdown?))) + (catch #?(:clj Exception :cljs js/Error) e + ;; dequeued updated the state atomically (so other txs dont do the same) + ;; but if the executor stopped in the meantime we need to revert the task's state + (when (error/rejected? e) + (t/log! {:level :warn} ["Task execution rejected, reverting state to :new"]) + (store/enqueue-task store (assoc task :state :new))))) + (when-not (stopped?) + (recur)))) + (when-not (stopped?) + (p/recur)))) + (p/catch (fn [e] + (t/log! {:level :warn :data {:exception e}} ["Caught error during task polling, continuing"]) + (when-not (stopped?) + (p/recur)))))))) + +(defn start-poller! + "Starts a poller that will submit tasks to the `task-executor`. + Protocol implementations are resolved via a map of `:protocols {my.ns Impl}` + Returns an `ITaskExecutor` that can be shutdown. + For clj runtimes, task-executor should be `(Executors/newVirtualThreadPerTaskExecutor)`, as + each execution will be blocked while they await for a given task dependencie's execution." + ([store {:keys [protocols polling-ms] :or {protocols {} polling-ms 100} :as opts}] + (start-poller! store (make-task-executor) opts)) + ([store task-executor & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] + (assert (satisfies? ITaskExecutor task-executor) "Supplied task executor does not satisfy ITaskExecutor") + ;; start poller in a out-of-executor thread so it doesnt prevent the executor from shutting down + ;; the only way to stop the poller is via shutdown + (p/vthread + (worker-poll-fn store protocols task-executor polling-ms)) + task-executor)) + +(defn start-worker! + "Starts a single worker thread that periodically polls for tasks and executes them in a + separate thread. Mostly used for testing purposes." + ([store] + (start-worker! store {})) + ([store & {:keys [protocols polling-ms] :or {protocols {} polling-ms 100}}] + (let [run? (atom true) + task-counter (atom 0)] + (internal/libthread "Worker" + #_{:clj-kondo/ignore [:loop-without-recur :invalid-arity]} + @(p/loop [] + (-> (p/delay polling-ms) + (p/chain (fn [_] + (when-let [task (store/dequeue-task store)] + (t/log! {:level :debug :data {:sym (:sym task)}} ["Dequeued task with id" (:id task)]) + (internal/libthread (str "Worker-" (:id task)) + (worker-execute-fn store protocols task task-counter + (fn [] (not @run?)) + (fn [] (not @run?))))) + + (when @run? + (p/recur))))))) + (fn [] + (t/log! {:level :info} ["Stopping worker"]) + (reset! run? false))))) + +(defn enqueue-and-wait + "Adds the task to the internal queue, awaits for its execution. + Task might be fulfilled by other threads" + [{:keys [store] :as opts} task] + (t/log! {:level :debug :data {:sym (:sym task)}} ["Enqueuing task with id" (:id task)]) + (internal/enqueue-and-wait opts task)) + +(defn add-compensation + "Adds a compensation action to the current workflow." + [thunk] + (assert (ifn? thunk) "Compensation action should implement IFn") + (swap! (:compensations internal/*env*) conj thunk)) + +(defn compensate + "Runs compensation in program order. A failure of the compensation action will stop running other compensations." + [] + (let [thunks (-> internal/*env* :compensations)] + (trace! {:name "compensations" :attributes {:fn-count (count @thunks)}} + (doseq [f @thunks] + (swap! thunks pop) + (f))))) \ No newline at end of file diff --git a/src2/intemporal/workflow/internal.cljc b/src2/intemporal/workflow/internal.cljc new file mode 100644 index 0000000..28f8009 --- /dev/null +++ b/src2/intemporal/workflow/internal.cljc @@ -0,0 +1,362 @@ +(ns ^:private intemporal.workflow.internal + "Private namespace for workflow support." + (:require [intemporal.store :as store] + [intemporal.error :as error] + [promesa.core :as p] + [taoensso.telemere :as t]) + #?(:clj (:require [steffan-westcott.clj-otel.context :as otctx] + [steffan-westcott.clj-otel.api.trace.span :as otspan] + [net.cgrand.macrovich :as macros] + [intemporal.store :refer [bfn]])) + #?(:cljs (:require-macros + [net.cgrand.macrovich :as macros] + [intemporal.workflow.internal :refer [trace! trace-async!]] + [intemporal.store :refer [bfn]])) + #?(:clj (:import [java.util.concurrent CompletableFuture]))) + +#?(:clj (set! *warn-on-reflection* true)) + +;;;; +;; utils + +(defmacro libthread + "Creates a thread for internal usage. Client code should not rely on this. + Returns a promise." + [label & body] + `(p/vthread ~@body)) + +;;;; +;; runtime + +(def ^:dynamic *env* nil) +(def default-env {:compensations (atom '()) + :timeout-ms (* 15 60 1000)}) + +(defn- env->runtime + "Derives the `runtime` attrs from the current env." + [] + (select-keys *env* [:timeout-ms :telemetry-context])) + +(defn random-id + "Generates a random id. if env var `DEV` is defined, generates a two-word human-readable id." + [] + ;; debugging purposes only + ;; https://github.com/moby/moby/blob/master/pkg/namesgenerator/names-generator.go + ;; TODO use https://github.com/adzerk-oss/env ? + (if #?(:clj (= "true" (System/getenv "DEV")) + :cljs false) + (let [left ["admiring" "adoring" "affectionate" "agitated" "amazing" "angry" "awesome" "beautiful" "blissful" "bold" "boring" "brave" "busy" "charming" "clever" "compassionate" "competent" "condescending" "confident" "cool" "cranky" "crazy" "dazzling" "determined" "distracted" "dreamy" "eager" "ecstatic" "elastic" "elated" "elegant" "eloquent" "epic" "exciting" "fervent" "festive" "flamboyant" "focused" "friendly" "frosty" "funny" "gallant" "gifted" "goofy" "gracious" "great" "happy" "hardcore" "heuristic" "hopeful" "hungry" "infallible" "inspiring" "intelligent" "interesting" "jolly" "jovial" "keen" "kind" "laughing" "loving" "lucid" "magical" "modest" "musing" "mystifying" "naughty" "nervous" "nice" "nifty" "nostalgic" "objective" "optimistic" "peaceful" "pedantic" "pensive" "practical" "priceless" "quirky" "quizzical" "recursing" "relaxed" "reverent" "romantic" "sad" "serene" "sharp" "silly" "sleepy" "stoic" "strange" "stupefied" "suspicious" "sweet" "tender" "thirsty" "trusting" "unruffled" "upbeat" "vibrant" "vigilant" "vigorous" "wizardly" "wonderful" "xenodochial" "youthful" "zealous" "zen"] + right ["agnesi" "albattani" "allen" "almeida" "antonelli" "archimedes" "ardinghelli" "aryabhata" "austin" "babbage" "banach" "banzai" "bardeen" "bartik" "bassi" "beaver" "bell" "benz" "bhabha" "bhaskara" "black" "blackburn" "blackwell" "bohr" "booth" "borg" "bose" "bouman" "boyd" "brahmagupta" "brattain" "brown" "buck" "burnell" "cannon" "carson" "cartwright" "carver" "cerf" "chandrasekhar" "chaplygin" "chatelet" "chatterjee" "chaum" "chebyshev" "clarke" "cohen" "colden" "cori" "cray" "curie" "curran" "darwin" "davinci" "dewdney" "dhawan" "diffie" "dijkstra" "dirac" "driscoll" "dubinsky" "easley" "edison" "einstein" "elbakyan" "elgamal" "elion" "ellis" "engelbart" "euclid" "euler" "faraday" "feistel" "fermat" "fermi" "feynman" "franklin" "gagarin" "galileo" "galois" "ganguly" "gates" "gauss" "germain" "goldberg" "goldstine" "goldwasser" "golick" "goodall" "gould" "greider" "grothendieck" "haibt" "hamilton" "haslett" "hawking" "heisenberg" "hellman" "hermann" "herschel" "hertz" "heyrovsky" "hodgkin" "hofstadter" "hoover" "hopper" "hugle" "hypatia" "ishizaka" "jackson" "jang" "jemison" "jennings" "jepsen" "johnson" "joliot" "jones" "kalam" "kapitsa" "kare" "keldysh" "keller" "kepler" "khayyam" "khorana" "kilby" "kirch" "knuth" "kowalevski" "lalande" "lamarr" "lamport" "leakey" "leavitt" "lederberg" "lehmann" "lewin" "lichterman" "liskov" "lovelace" "lumiere" "mahavira" "margulis" "matsumoto" "maxwell" "mayer" "mccarthy" "mcclintock" "mclaren" "mclean" "mcnulty" "meitner" "mendel" "mendeleev" "meninsky" "merkle" "mestorf" "mirzakhani" "montalcini" "moore" "morse" "moser" "murdock" "napier" "nash" "neumann" "newton" "nightingale" "nobel" "noether" "northcutt" "noyce" "panini" "pare" "pascal" "pasteur" "payne" "perlman" "pike" "poincare" "poitras" "proskuriakova" "ptolemy" "raman" "ramanujan" "rhodes" "ride" "ritchie" "robinson" "roentgen" "rosalind" "rubin" "saha" "sammet" "sanderson" "satoshi" "shamir" "shannon" "shaw" "shirley" "shockley" "shtern" "sinoussi" "snyder" "solomon" "spence" "stonebraker" "sutherland" "swanson" "swartz" "swirles" "taussig" "tesla" "tharp" "thompson" "torvalds" "tu" "turing" "varahamihira" "vaughan" "villani" "visvesvaraya" "volhard" "wescoff" "wilbur" "wiles" "williams" "williamson" "wilson" "wing" "wozniak" "wright" "wu" "yalow" "yonath" "zhukovsky"]] + (str (rand-nth left) "-" (rand-nth right))) + (str (random-uuid)))) + +(defmacro with-env-internal + "Merges `m` on top of the current internal environment, then runs `body` with the new environment." + [m & body] + `(binding [*env* (merge default-env ~m)] + (do ~@body))) + +;;;; +;; telemetry + +(defn ->telemetry-context [] + #?(:clj (otctx/->headers) + :cljs {})) + +(defmacro trace! + "Wraps body in a tracing context. " + [{:keys [name attributes] :as attrs} & body] + (macros/case + ;; cljs: no telemetry + :cljs `(do ~@body) + :clj `(let [attrs# (do ~attrs)] + (otspan/with-span! attrs# + (with-env-internal (merge *env* {:telemetry-context (->telemetry-context)}) + (let [res# (do ~@body)] + res#)))))) + +(defmacro trace-async! + "Wraps body in a tracing context. " + [{:keys [name attributes] :as attrs} & body] + (macros/case + ;; cljs: no telemetry + :cljs `(do ~@body) + :clj `(let [attrs# (do ~attrs) + span# (otspan/new-span! attrs#)] + ;(otspan/async-bound-cf-span attrs#) + ;(with-env-internal (merge *env* {:telemetry-context (->telemetry-context)})) + (let [res# (do ~@body)] + (.whenComplete ^CompletableFuture res# + (fn [t# e#] + (when e# (otspan/add-exception! {:context span#} e#)) + (otspan/end-span! {:context span#}))))))) + +(defn add-event! + ([task ename attrs] + #?(:clj (when-let [ctx (-> task :runtime :telemetry-context)] + (otctx/with-context! (otctx/headers->merged-context ctx) + (add-event! ename attrs))))) + ([ename attrs] + #?(:clj (otspan/add-event! ename attrs)))) + +;;;; +;; task definitions + +;;;; +;; Tasks + +(defn create-workflow-task + ([ref root sym fvar args id] + (create-workflow-task ref root sym fvar args id nil :new nil)) + ([ref root sym fvar args id result state runtime] + (let [runtime (or runtime (env->runtime))] + {:type :workflow :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state + :runtime runtime}))) + +(defn create-activity-task + ([ref root sym fvar args id] + (create-activity-task ref root sym fvar args id nil :new nil)) + ([ref root sym fvar args id result state runtime] + (let [runtime (or runtime (env->runtime))] + {:type :activity :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state + :runtime runtime}))) + +(defn create-proto-activity-task + ([proto ref root sym fvar args id] + (create-proto-activity-task proto ref root sym fvar args id nil :new nil)) + ([proto ref root sym fvar args id result state runtime] + (let [runtime (or runtime (env->runtime))] + {:type :proto-activity :proto proto :id id :ref ref :root root :sym sym :fvar fvar :args args :result result :state state + :runtime runtime}))) + +(defn event-matches? [{t :type s :sym} {t2 :type s2 :sym}] + (and (= t t2) (= s s2))) + +;;;; +;; traced store fns + +(defn- all-events [store id] + (add-event! ::store/all-events {:task-id id}) + (store/all-events store id)) + +(defn- task<-event [store task-id event-descr] + ;; TODO patch this to use a compare-and-swap + ;; must send the expected state as arg + (add-event! (:type event-descr) {:task-id task-id}) + (store/task<-event store task-id event-descr)) + +(defn- task<-panic [store task-id error] + (add-event! ::store/task<-panic {:task-id task-id}) + (store/task<-panic store task-id error)) + +(defn- find-task [store task-id] + (add-event! ::store/find-task {:task-id task-id}) + (store/find-task store task-id)) + +(defn- enqueue-task [store task] + (add-event! ::store/enqueue-task {:task-id (:id task)}) + (store/enqueue-task store task)) + +(defn- await-task [store task-id opts] + (add-event! ::store/await-task {:task-id task-id}) + (store/await-task store task-id opts)) + +;;;; +;; task execution/replay + +(defn resume-fn-task + "Resumes a generic fn call task" + [{:keys [vthread? terminated? shutdown?] :as env} store protos {:keys [type proto id root sym fvar args] :as task} [invoke success failure]] + (when (and (= :proto-activity type) + (nil? (get protos proto))) + (throw (ex-info (str "Protocol implementation for " + (pr-str proto) + " not found; available protocols:" + (pr-str protos) + ". Make sure to pass `:protocols` key when starting poller or worker ") + {::type :internal + :protocols protos + :required proto}))) + ;; do we have invocation and result events for this task? + (t/log! {:level :debug :sym sym} ["Resuming try/catch task with id" id]) + + (try + (let [terminated? (fn [] (and (ifn? terminated?) (terminated?))) + [inv? res?] (all-events store id)] + + ;; mark invoke/replay + (let [next-event {:ref id :root (or root id) :type invoke :sym sym :args args}] + (when inv? + (t/log! {:level :debug :data {:sym (:sym task)}} ["Found replay event for task with id" (:id task)])) + (when res? + (t/log! {:level :debug :data {:sym (:sym task)}} ["Found result event for task with id" (:id task)])) + + (cond + ;; do we have an invocation event? if not, save this one + (not inv?) + (task<-event store id next-event) + + ;; we do have an invocation event, is it a match of the above? + (not (event-matches? inv? next-event)) + (throw (error/internal-error "Transition unexpected" {:got (:type inv?) + :expected invoke})))) + + ;; mark success/failure or replay + (let [next-event {:ref id :root (or root id) :type success :sym sym} + next-failure (assoc next-event :type failure) + handle-ok (bfn [r] + ;; TODO assert r is serializable! + ;; we check for shutdown because in js runtime, there is no thread interruption + ;; at this point, if we are shutting down it means we exhausted the grace period + (let [panic? (terminated?)] + (try + (if panic? + (task<-panic store id (error/panic "Worker shutting down during invocation result handling")) + (let [new-event (assoc next-event :result r)] + #?(:clj (otspan/add-span-data! {:attributes {:replayed false :result r}})) + (task<-event store id new-event) + r)) + (finally + (if panic? + (t/log! {:level :debug :data {:sym sym :result r}} ["Shutting down, interrupted result" id]) + (t/log! {:level :debug :data {:sym sym :result r}} ["Got actual function result for task" id])))))) + handle-fail (bfn [e] + (cond + ;; if its a java.lang.InterruptedException it means + ;; we killed the executor + ;; - we must leave the task pending (assuming its idempotent) + (error/interrupted? e) + (t/log! {:level :debug :data {:sym sym}} ["InterruptedException caught during actual function invocation for task" id]) + + ;; executor has terminated, it means we exhausted the graceful shutdown period + ;; panic the task + (terminated?) + (do + (t/log! {:level :warn :data {:exception e}} ["Exception caught during shutdown, panicking task"]) + (task<-panic store id (error/panic "Worker shutting down during invocation failure handling"))) + + ;; regular task failure + :else + (do + (t/log! {:level :debug :data {:sym sym :exception e}} ["Exception caught during actual function invocation for task" id]) + (task<-event store id (cond-> (assoc next-failure :error e) + (error/internal-error? e) (assoc :type ::failure))))) + ;; finally, return error + (p/rejected e)) + retval (cond + ;; are we replaying a result? + (some? res?) + (let [success? (contains? res? :result) + retval (if success? (:result res?) (:error? res?)) + ;; we need to ensure replay events return the same type + ;; as if they were called via a vthread + wrapped (if vthread? + (p/vthread retval) + retval)] + #?(:clj (otspan/add-span-data! {:attributes {:replayed true :result retval}})) + (task<-event store id res?) + (if success? + (p/resolved wrapped) + (p/rejected wrapped))) + + ;; no replay, lets do the actual call + (not res?) + (-> (let [;; if we're calling a prototype, we need to prepend the + ;; prot impl and then its args + args' (if (= :proto-activity type) + (cons (get protos proto) args) + args) + ;; this is the result + r (binding [*env* (merge default-env env)] + (t/log! {:level :debug :data {:sym sym :args args'}} ["Calling actual function for task" id]) + ;; vthread calls are special because we only want to process its + ;; result when deref is called, to ensure determinism: + ;; - first we must save all events + ;; - then we can process the underlying impl call + (if vthread? + (let [inner (p/create (fn [res rej] + (-> (p/vthread ;TODO: user thread + (binding [*env* (-> env + (dissoc :vhtread?) + (assoc :telemetry-context (->telemetry-context)))] + ;(trace! {:id sym}) + #?(:clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context env)) + (apply fvar args')) + :cljs (apply fvar args')))) + (p/then res) + (p/catch rej))))] + ;; in cljs we dont need delay bc its single threaded + ;; in clj, the delayed value will be deref'd + ;; but at this point we ensure that any other eg vthread calls have been saved in history + (#?(:cljs do :clj delay) + (-> inner + (p/then handle-ok) + (p/catch handle-fail)))) + ;; ensure handle-fail always has a chance to catch any fvar + ;; exceptions + (-> nil + (p/then (fn [_] (binding [*env* env] + ;(trace! {:id sym}) + #?(:clj (otctx/bind-context! (otctx/headers->merged-context (:telemetry-context env)) + (apply fvar args')) + :cljs (apply fvar args'))))) + (p/then' handle-ok) + (p/catch handle-fail))))] + ;; r can be a value or a promise + r)) + + (not (or (event-matches? res? next-event) ;; replay success + (event-matches? res? next-failure))) ;; replay failure + (throw (error/internal-error "Transition unexpected" {:got (:type res?) + :expected [success failure]})))] + (t/log! {:level :debug :data {:sym sym :retval retval}} ["Finished internal execution for task" id]) + ;; if userland called a vthread, retval will be delayed + retval)) + ;; ensure we terminate the fn call, even if the next event wouldnt be the expected type + (catch #?(:clj Exception :cljs js/Error) e + ;; TODO at this point we should just panic, "userland" exceptions should be handled in the handle-fail + ;; on theory there is no other way for a user exception to bubble out + (let [wrapped (ex-info "Internal error while resuming execution" {::type :internal} e)] + (task<-event store id {:ref id :root (or root id) :type ::failure :sym sym :error wrapped})) + (p/rejected e)))) + +#?(:clj (ns-unmap *ns* 'resume-task)) +(defmulti resume-task + "Continues a task that has been queued for execution. Replays events if they exist." + (fn [env store protos task] + (:type task))) + +(defmethod resume-task :workflow + [env store protos {:keys [id root sym fvar args] :as task}] + (resume-fn-task env store protos task [:intemporal.workflow/invoke :intemporal.workflow/success :intemporal.workflow/failure])) + +(defmethod resume-task :activity + [env store protos {:keys [id root sym fvar args] :as task}] + (resume-fn-task env store protos task [:intemporal.activity/invoke :intemporal.activity/success :intemporal.activity/failure])) + +(defmethod resume-task :proto-activity + [env store protos {:keys [id root sym fvar args] :as task}] + (resume-fn-task env store protos task [:intemporal.protocol/invoke :intemporal.protocol/success :intemporal.protocol/failure])) + +(defn enqueue-and-wait + "Enqueues `task` onto the store and awaits its execution. + If the exact task is alread present (eg we are resuming a crashed workflow), + the existing task will be awaited instead." + [{:keys [store] :as opts} {:keys [id] :as task}] + ;; because execution engine is supposed to be deterministic, + ;; we can safely assume that if an identic task exists at this point + ;; we are replaying some events + (assert (some? store) "Store should exist") + (assert (some? task) "Task should exist") + + ;; TODO trace if we pick the task from the db? + ;; the db task should have a telemetry context already no? + ;; (trace! {:name (format "workflow: %s" orig#) :attributes {:task-id id#}} + (let [db-task (or (find-task store id) + (enqueue-task store task)) + + _ (add-event! :intemporal.workflow.internal.enqueue-and-wait/db-task {}) + prom (await-task store (:id db-task) opts)] + + #?(:clj (deref prom) + :cljs prom))) From 1331c6d5c9a3e23b231c458fea5718ccd432178d Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 17:37:31 +0000 Subject: [PATCH 38/81] small fix --- src/intemporal/core.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 6d05290..9990b51 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -613,7 +613,9 @@ (p/save-event store workflow-id {:event-type :child-workflow-failed :seq seq :child-workflow-id child-workflow-id - :error {:status (:status result)} + :error (or (:error result) + {:status (:status result) + :message (str "Child workflow ended with status: " (:status result))}) :timestamp (System/currentTimeMillis)}) :continue))) (catch Exception e From c8b7a9cd0428b317234d1feba9c2770bf34f365b Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 18:26:39 +0000 Subject: [PATCH 39/81] refactor --- src/intemporal/core.clj | 474 +---------------------- src/intemporal/internal/execution.clj | 522 ++++++++++++++++++++++++++ 2 files changed, 529 insertions(+), 467 deletions(-) create mode 100644 src/intemporal/internal/execution.clj diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 9990b51..70a97c8 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -3,6 +3,7 @@ [intemporal.internal.context :as ctx] [intemporal.internal.activity :as a] [intemporal.internal.runtime :as runtime] + [intemporal.internal.execution :as exec] [intemporal.protocol :as p] [intemporal.store :as store] [intemporal.observer :as obs])) @@ -317,468 +318,6 @@ :workflow-fn child-workflow-fn :args args})))))) -;; ============================================================================ -;; Workflow Execution Engine -;; ============================================================================ - -(defn- execute-workflow-fn [workflow-fn args] - (try - {:status :completed - :result (apply workflow-fn args) - :pending-asyncs @(:pending-asyncs (ctx/current-context)) - :pending-events @(:pending-events (ctx/current-context))} - (catch Exception e - (cond - (error/suspension? e) - {:status :suspended - :suspension-type (error/suspension-type e) - :suspension-data (error/suspension-data e) - :pending-asyncs @(:pending-asyncs (ctx/current-context)) - :pending-events @(:pending-events (ctx/current-context))} - - (error/cancelled-exception? e) - {:status :cancelled - :pending-events @(:pending-events (ctx/current-context))} - - :else - {:status :failed - :error e - :pending-events @(:pending-events (ctx/current-context))})))) - -(defn- execute-with-retry - "Execute an activity with retry policy" - [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] - (if (nil? retry-policy) - ;; No retry - execute once - (let [start (System/currentTimeMillis)] - (when observer - (p/on-activity-started observer workflow-id seq-num activity-name)) - (try - (let [result (p/execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration}) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-failed observer workflow-id seq-num activity-name - (error/throwable->map e) duration)) - {:status :failed :error (error/throwable->map e) :duration duration})))) - ;; With retry - (loop [attempt 1] - (let [start (System/currentTimeMillis) - _ (when observer - (p/on-activity-started observer workflow-id seq-num activity-name)) - exec-result (try - (let [result (p/execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration :attempts attempt}) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start) - error-map (error/throwable->map e)] - (when observer - (p/on-activity-failed observer workflow-id seq-num activity-name error-map duration)) - {:status :retry-or-fail - :error error-map - :exception e - :duration duration})))] - (case (:status exec-result) - :success - exec-result - - :retry-or-fail - (if (a/should-retry? retry-policy (:exception exec-result) attempt) - (let [backoff (a/calculate-backoff retry-policy attempt)] - (prn (format "attempt %d: sleeping %s before retrying" attempt backoff)) - (Thread/sleep (long backoff)) - (recur (inc attempt))) - {:status :failed - :error (:error exec-result) - :duration (:duration exec-result) - :attempts attempt})))))) - -(defn- process-pending-activity [store executor workflow-id suspension-data pending-events observer] - (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data - exec-result (execute-with-retry executor activity-name args timeout-ms - retry-policy observer workflow-id seq)] - ;; Save all pending events first - (p/save-events store workflow-id pending-events) - ;; Then save the completion or failure - (if (= :success (:status exec-result)) - (do - (p/save-event store workflow-id {:event-type :activity-completed - :seq seq - :activity-name activity-name - :result (:result exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue) - (do - (p/save-event store workflow-id {:event-type :activity-failed - :seq seq - :activity-name activity-name - :error (:error exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- process-pending-asyncs-parallel - "Process all pending async operations in parallel" - [store executor workflow-id pending-asyncs pending-events observer] - (when (seq pending-asyncs) - ;; Save all pending events first - (p/save-events store workflow-id pending-events) - - ;; Execute all activities in parallel - ;; Pass complete async-info including retry-policy, activity-seq, handle-seq - (let [results (p/execute-activities-parallel executor pending-asyncs) - now (System/currentTimeMillis) - - ;; Create completion events for both activities and async handles - completion-events - (mapcat (fn [async-info result] - (when observer - (if (= :success (:status result)) - (p/on-async-completed observer workflow-id - (:handle-seq async-info) (:result result)) - (p/on-async-failed observer workflow-id - (:handle-seq async-info) (:error result)))) - (if (= :success (:status result)) - [{:event-type :activity-completed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :result (:result result) - :duration-ms (:duration result) - :timestamp now} - {:event-type :async-completed - :seq (:handle-seq async-info) - :last-seq (:activity-seq async-info) - :result (:result result) - :timestamp now}] - [{:event-type :activity-failed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :error (:error result) - :timestamp now} - {:event-type :async-failed - :seq (:handle-seq async-info) - :last-seq (:activity-seq async-info) - :error (:error result) - :timestamp now}])) - pending-asyncs results)] - (p/save-events store workflow-id completion-events))) - :continue) - -(defn- process-timer [store scheduler workflow-id suspension-data pending-events - wake-fn observer] - (let [{:keys [seq fire-at]} suspension-data - now (System/currentTimeMillis)] - ;; Save pending events - (p/save-events store workflow-id pending-events) - (if (>= now fire-at) - (do - (p/save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp now}) - (when observer - (p/on-timer-fired observer workflow-id seq)) - :continue) - ;; Schedule timer and return wait status - (do - (p/schedule-timer scheduler workflow-id seq fire-at - (fn [] - (p/save-event store workflow-id {:event-type :timer-fired - :seq seq - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-timer-fired observer workflow-id seq)) - (when wake-fn (wake-fn)))) - :wait-timer)))) - -(defn- process-signal [store workflow-id suspension-data pending-events observer] - (let [{:keys [seq signal-name]} suspension-data] - ;; Save pending events - (p/save-events store workflow-id pending-events) - (if-let [signal-data (p/consume-signal store workflow-id signal-name)] - (do - (p/save-event store workflow-id {:event-type :signal-received - :seq seq - :signal-name signal-name - :signal-id (:id signal-data) - :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) - :continue) - :wait-signal))) - -(defn- process-signal-with-timeout [store scheduler workflow-id suspension-data - pending-events wake-fn observer] - (let [{:keys [seq signal-name deadline]} suspension-data - now (System/currentTimeMillis)] - (p/save-events store workflow-id pending-events) - ;; Check if signal already available - (if-let [signal-data (p/consume-signal store workflow-id signal-name)] - (do - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received true - :signal-name signal-name - :payload (:payload signal-data) - :timestamp now}) - (when observer - (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) - :continue) - ;; Check if already timed out - (if (>= now deadline) - (do - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received false - :signal-name signal-name - :timestamp now}) - :continue) - ;; Schedule timeout - (do - (p/schedule-timer scheduler workflow-id seq deadline - (fn [] - ;; Check one more time for signal - (if-let [signal-data (p/consume-signal store workflow-id signal-name)] - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received true - :signal-name signal-name - :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received false - :signal-name signal-name - :timestamp (System/currentTimeMillis)})) - (when wake-fn (wake-fn)))) - :wait-signal-timeout))))) - -(defn- process-join-pending [store executor workflow-id suspension-data pending-events - pending-asyncs observer] - (let [{:keys [handle-seq]} suspension-data] - ;; First, process any pending asyncs that haven't been executed yet - (if (seq pending-asyncs) - (do - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs pending-events observer) - :continue) - ;; else - (do - (when (seq pending-events) - (p/save-events store workflow-id pending-events)) - ;; Check if the handle is now complete - (let [;history (p/load-history store workflow-id) - ;completed (ctx/find-event history :async-completed handle-seq) - ;failed (ctx/find-event history :async-failed handle-seq) - store (ctx/current-store) - workflow-id (ctx/current-workflow-id) - completed (p/find-event store workflow-id :async-completed handle-seq) - failed (p/find-event store workflow-id :async-failed handle-seq)] - (if (or completed failed) - :continue - :wait-async)))))) - -(declare run-workflow-internal) - -(defn- process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id - suspension-data pending-events observer] - (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] - (p/save-events store workflow-id pending-events) - ;; Execute child workflow synchronously for now - ;; In a real implementation, this could be async - (try - (let [result (run-workflow-internal engine - child-workflow-id workflow-fn args - {:observer observer - :max-iterations 1000})] - (if (= :completed (:status result)) - (do - (p/save-event store workflow-id {:event-type :child-workflow-completed - :seq seq - :child-workflow-id child-workflow-id - :result (:result result) - :timestamp (System/currentTimeMillis)}) - :continue) - (do - (p/save-event store workflow-id {:event-type :child-workflow-failed - :seq seq - :child-workflow-id child-workflow-id - :error (or (:error result) - {:status (:status result) - :message (str "Child workflow ended with status: " (:status result))}) - :timestamp (System/currentTimeMillis)}) - :continue))) - (catch Exception e - (p/save-event store workflow-id {:event-type :child-workflow-failed - :seq seq - :child-workflow-id child-workflow-id - :error (error/throwable->map e) - :timestamp (System/currentTimeMillis)}) - :continue)))) - -(defn- run-workflow-internal - [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args - {:keys [observer max-iterations wake-fn] - :or {max-iterations 1000}}] - (loop [iteration 0] - (when (>= iteration max-iterations) - (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id - :iterations iteration}))) - - ;; Check cancellation at start of each iteration - (when (p/is-cancelled? store workflow-id) - (when observer - (p/on-workflow-cancelled observer workflow-id)) - (p/save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) - - (let [history (p/load-history store workflow-id) - pending-events (atom []) - pending-asyncs (atom []) - ctx {:history (atom history) - :workflow-id workflow-id - :seq-counter (atom 0) - :pending-events pending-events - :pending-asyncs pending-asyncs - :store store - :registry registry - :observer observer} - exec-result (binding [ctx/*workflow-context* ctx] - (execute-workflow-fn workflow-fn args))] - - (case (:status exec-result) - :completed - (do - ;; Process any remaining pending asyncs before completing - (when (seq (:pending-asyncs exec-result)) - (process-pending-asyncs-parallel store executor workflow-id - (:pending-asyncs exec-result) - (:pending-events exec-result) - observer)) - (when (and (empty? (:pending-asyncs exec-result)) - (seq (:pending-events exec-result))) - (p/save-events store workflow-id (:pending-events exec-result))) - (p/save-event store workflow-id {:event-type :workflow-completed - :result (:result exec-result) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-completed observer workflow-id (:result exec-result))) - {:status :completed - :workflow-id workflow-id - :result (:result exec-result)}) - - :cancelled - (do - (p/save-events store workflow-id (:pending-events exec-result)) - (p/save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-cancelled observer workflow-id)) - {:status :cancelled - :workflow-id workflow-id}) - - :suspended - (let [pending-asyncs-list (:pending-asyncs exec-result) - pending-events-list (:pending-events exec-result) - - _ (when observer - (p/on-workflow-suspended observer workflow-id (:suspension-type exec-result))) - - action (case (:suspension-type exec-result) - :activity - (if (seq pending-asyncs-list) - (do - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list - pending-events-list - observer) - :continue) - (process-pending-activity store executor workflow-id - (:suspension-data exec-result) - pending-events-list - observer)) - - :timer - (process-timer store scheduler workflow-id - (:suspension-data exec-result) - pending-events-list - wake-fn - observer) - - :wait-signal - (process-signal store workflow-id - (:suspension-data exec-result) - pending-events-list - observer) - - :wait-signal-timeout - (process-signal-with-timeout store scheduler workflow-id - (:suspension-data exec-result) - pending-events-list - wake-fn - observer) - - :join-pending - (process-join-pending store executor workflow-id - (:suspension-data exec-result) - pending-events-list - pending-asyncs-list - observer) - - :join-any-pending - (do - (when (seq pending-asyncs-list) - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list - pending-events-list - observer)) - :continue) - - :child-workflow - (process-child-workflow engine - workflow-id - (:suspension-data exec-result) - pending-events-list - observer))] - - (when observer - (when (= action :continue) - (p/on-workflow-resumed observer workflow-id))) - - (case action - :continue (recur (inc iteration)) - :wait-signal {:status :waiting-signal - :workflow-id workflow-id} - :wait-signal-timeout {:status :waiting-signal-timeout - :workflow-id workflow-id} - :wait-timer {:status :waiting-timer - :workflow-id workflow-id} - :wait-async {:status :waiting-async - :workflow-id workflow-id})) - - :failed - (do - (p/save-events store workflow-id (:pending-events exec-result)) - (p/save-event store workflow-id {:event-type :workflow-failed - :error (error/throwable->map (:error exec-result)) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-failed observer workflow-id (error/throwable->map (:error exec-result)))) - {:status :failed - :workflow-id workflow-id - :error (:error exec-result)}))))) - ;; ============================================================================ ;; Public API ;; ============================================================================ @@ -809,7 +348,7 @@ (when observer (p/on-workflow-resumed observer wf-id)) (deliver resume-promise - (run-workflow-internal engine wf-id workflow-fn args + (exec/run-workflow-internal engine wf-id workflow-fn args {:observer observer :max-iterations max-iterations})) (catch Exception e @@ -821,12 +360,13 @@ (when observer (p/on-workflow-started observer wf-id args)) (try - (let [result (run-workflow-internal engine wf-id workflow-fn args + (let [result (exec/run-workflow-internal engine wf-id workflow-fn args {:observer observer :max-iterations max-iterations :wake-fn wake-fn})] - ;; If workflow is waiting for timer/signal, block until wake-fn delivers result - (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) + ;; If workflow is waiting for timer or signal-with-timeout, block until wake-fn delivers result + ;; For plain signals, return immediately so caller can send signal and resume + (if (#{:waiting-timer :waiting-signal-timeout} (:status result)) @resume-promise result)) (catch Exception e @@ -854,7 +394,7 @@ :or {max-iterations 1000}}] (when observer (p/on-workflow-resumed observer workflow-id)) - (run-workflow-internal engine workflow-id workflow-fn args + (exec/run-workflow-internal engine workflow-id workflow-fn args {:observer observer :max-iterations max-iterations})) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj new file mode 100644 index 0000000..729db1c --- /dev/null +++ b/src/intemporal/internal/execution.clj @@ -0,0 +1,522 @@ +(ns intemporal.internal.execution + (:require [intemporal.internal.activity :as a] + [intemporal.internal.context :as ctx] + [intemporal.internal.error :as error] + [intemporal.protocol :as p])) + +;; ============================================================================ +;; Workflow Execution Engine +;; ============================================================================ + +(defn execute-workflow-fn [workflow-fn args] + (try + {:status :completed + :result (apply workflow-fn args) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} + (catch Exception e + (cond + (error/suspension? e) + {:status :suspended + :suspension-type (error/suspension-type e) + :suspension-data (error/suspension-data e) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} + + (error/cancelled-exception? e) + {:status :cancelled + :pending-events @(:pending-events (ctx/current-context))} + + :else + {:status :failed + :error e + :pending-events @(:pending-events (ctx/current-context))})))) + +(defn execute-with-retry + "Execute an activity with retry policy" + [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] + (if (nil? retry-policy) + ;; No retry - execute once + (let [start (System/currentTimeMillis)] + (when observer + (p/on-activity-started observer workflow-id seq-num activity-name)) + (try + (let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-failed observer workflow-id seq-num activity-name + (error/throwable->map e) duration)) + {:status :failed :error (error/throwable->map e) :duration duration})))) + ;; With retry + (loop [attempt 1] + (let [start (System/currentTimeMillis) + _ (when observer + (p/on-activity-started observer workflow-id seq-num activity-name)) + exec-result (try + (let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (System/currentTimeMillis) start)] + (when observer + (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + {:status :success :result result :duration duration :attempts attempt}) + (catch Exception e + (let [duration (- (System/currentTimeMillis) start) + error-map (error/throwable->map e)] + (when observer + (p/on-activity-failed observer workflow-id seq-num activity-name error-map duration)) + {:status :retry-or-fail + :error error-map + :exception e + :duration duration})))] + (case (:status exec-result) + :success + exec-result + + :retry-or-fail + (if (a/should-retry? retry-policy (:exception exec-result) attempt) + (let [backoff (a/calculate-backoff retry-policy attempt)] + (prn (format "attempt %d: sleeping %s before retrying" attempt backoff)) + (Thread/sleep (long backoff)) + (recur (inc attempt))) + {:status :failed + :error (:error exec-result) + :duration (:duration exec-result) + :attempts attempt})))))) + +(defn process-pending-activity [store executor workflow-id suspension-data pending-events observer] + (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data + exec-result (execute-with-retry executor activity-name args timeout-ms + retry-policy observer workflow-id seq)] + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + ;; Then save the completion or failure + (if (= :success (:status exec-result)) + (do + (p/save-event store workflow-id {:event-type :activity-completed + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (p/save-event store workflow-id {:event-type :activity-failed + :seq seq + :activity-name activity-name + :error (:error exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)}) + :continue)))) + +(defn process-pending-asyncs-parallel + "Process all pending async operations in parallel" + [store executor workflow-id pending-asyncs pending-events observer] + (when (seq pending-asyncs) + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + + ;; Execute all activities in parallel + ;; Pass complete async-info including retry-policy, activity-seq, handle-seq + (let [results (p/execute-activities-parallel executor pending-asyncs) + now (System/currentTimeMillis) + + ;; Create completion events for both activities and async handles + completion-events + (mapcat (fn [async-info result] + (when observer + (if (= :success (:status result)) + (p/on-async-completed observer workflow-id + (:handle-seq async-info) (:result result)) + (p/on-async-failed observer workflow-id + (:handle-seq async-info) (:error result)))) + (if (= :success (:status result)) + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result (:result result) + :duration-ms (:duration result) + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :result (:result result) + :timestamp now}] + [{:event-type :activity-failed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :error (:error result) + :timestamp now} + {:event-type :async-failed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :error (:error result) + :timestamp now}])) + pending-asyncs results)] + (p/save-events store workflow-id completion-events))) + :continue) + +(defn process-timer [store scheduler workflow-id suspension-data pending-events + wake-fn observer] + (let [{:keys [seq fire-at]} suspension-data + now (System/currentTimeMillis)] + ;; Save pending events + (p/save-events store workflow-id pending-events) + (if (>= now fire-at) + (do + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + (when observer + (p/on-timer-fired observer workflow-id seq)) + :continue) + ;; Schedule timer and return wait status + (do + (p/schedule-timer scheduler workflow-id seq fire-at + (fn [] + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-timer-fired observer workflow-id seq)) + (when wake-fn (wake-fn)))) + :wait-timer)))) + +(defn process-signal [store workflow-id suspension-data pending-events observer] + (let [{:keys [seq signal-name]} suspension-data] + ;; Save pending events + (p/save-events store workflow-id pending-events) + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (do + (p/save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + :continue) + :wait-signal))) + +(defn process-signal-with-timeout [store scheduler workflow-id suspension-data + pending-events wake-fn observer] + (let [{:keys [seq signal-name deadline]} suspension-data + now (System/currentTimeMillis)] + (p/save-events store workflow-id pending-events) + ;; Check if signal already available + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp now}) + (when observer + (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + :continue) + ;; Check if already timed out + (if (>= now deadline) + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp now}) + :continue) + ;; Schedule timeout + (do + (p/schedule-timer scheduler workflow-id seq deadline + (fn [] + ;; Check one more time for signal + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp (System/currentTimeMillis)})) + (when wake-fn (wake-fn)))) + :wait-signal-timeout))))) + +(defn process-join-pending [store executor workflow-id suspension-data pending-events + pending-asyncs observer] + (let [{:keys [handle-seq]} suspension-data] + ;; First, process any pending asyncs that haven't been executed yet + (if (seq pending-asyncs) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer) + :continue) + ;; else + (do + (when (seq pending-events) + (p/save-events store workflow-id pending-events)) + ;; Check if the handle is now complete + (let [;history (p/load-history store workflow-id) + ;completed (ctx/find-event history :async-completed handle-seq) + ;failed (ctx/find-event history :async-failed handle-seq) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + completed (p/find-event store workflow-id :async-completed handle-seq) + failed (p/find-event store workflow-id :async-failed handle-seq)] + (if (or completed failed) + :continue + :wait-async)))))) + +;; ============================================================================ +;; Helper Functions for Workflow Execution +;; ============================================================================ + +(defn make-workflow-context + "Create workflow execution context from history." + [workflow-id history store registry observer] + {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events (atom []) + :pending-asyncs (atom []) + :store store + :registry registry + :observer observer}) + +(defn finalize-completed + "Save completion events and return result." + [store executor workflow-id pending-asyncs pending-events result observer] + ;; Process any remaining pending asyncs before completing + (when (seq pending-asyncs) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs + pending-events + observer)) + (when (and (empty? pending-asyncs) + (seq pending-events)) + (p/save-events store workflow-id pending-events)) + (p/save-event store workflow-id {:event-type :workflow-completed + :result result + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-completed observer workflow-id result)) + {:status :completed + :workflow-id workflow-id + :result result}) + +(defn finalize-cancelled + "Save cancellation event and return result." + [store workflow-id pending-events observer] + (p/save-events store workflow-id pending-events) + (p/save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-cancelled observer workflow-id)) + {:status :cancelled + :workflow-id workflow-id}) + +(defn finalize-failed + "Save failure event and return result." + [store workflow-id pending-events error observer] + (p/save-events store workflow-id pending-events) + (p/save-event store workflow-id {:event-type :workflow-failed + :error (error/throwable->map error) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-failed observer workflow-id (error/throwable->map error))) + {:status :failed + :workflow-id workflow-id + :error error}) + +(defn action->result + "Convert action keyword to workflow result map." + [action workflow-id] + (case action + :wait-signal {:status :waiting-signal + :workflow-id workflow-id} + :wait-signal-timeout {:status :waiting-signal-timeout + :workflow-id workflow-id} + :wait-timer {:status :waiting-timer + :workflow-id workflow-id} + :wait-async {:status :waiting-async + :workflow-id workflow-id} + ;; :continue should not reach here + nil)) + +(declare process-child-workflow) + +(defn handle-suspension + "Dispatch suspension to appropriate handler based on type. + Returns action keyword: :continue or :wait-*" + [engine workflow-id suspension-type suspension-data pending-asyncs pending-events wake-fn observer] + (let [{:keys [store executor scheduler]} engine + pending-asyncs-list pending-asyncs + pending-events-list pending-events] + (when observer + (p/on-workflow-suspended observer workflow-id suspension-type)) + + (case suspension-type + :activity + (if (seq pending-asyncs-list) + (do + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer) + :continue) + (process-pending-activity store executor workflow-id + suspension-data + pending-events-list + observer)) + + :timer + (process-timer store scheduler workflow-id + suspension-data + pending-events-list + wake-fn + observer) + + :wait-signal + (process-signal store workflow-id + suspension-data + pending-events-list + observer) + + :wait-signal-timeout + (process-signal-with-timeout store scheduler workflow-id + suspension-data + pending-events-list + wake-fn + observer) + + :join-pending + (process-join-pending store executor workflow-id + suspension-data + pending-events-list + pending-asyncs-list + observer) + + :join-any-pending + (do + (when (seq pending-asyncs-list) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer)) + :continue) + + :child-workflow + (process-child-workflow engine + workflow-id + suspension-data + pending-events-list + observer)))) + +(defn run-workflow-internal + "Main workflow execution loop - orchestrates replay and execution. + + Refactored for clarity into three concerns: + 1. Execution: Run workflow function with context (execute-workflow-fn) + 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension) + 3. Finalization: Save events and return results (finalize-* functions) + + Returns a map with :status and :workflow-id, plus :result (on success) or :error (on failure)." + [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args + {:keys [observer max-iterations wake-fn] + :or {max-iterations 1000}}] + (loop [iteration 0] + (when (>= iteration max-iterations) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id + :iterations iteration}))) + + ;; Check cancellation at start of each iteration + (when (p/is-cancelled? store workflow-id) + (when observer + (p/on-workflow-cancelled observer workflow-id)) + (p/save-event store workflow-id {:event-type :workflow-cancelled + :timestamp (System/currentTimeMillis)}) + (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) + + (let [history (p/load-history store workflow-id) + ctx (make-workflow-context workflow-id history store registry observer) + exec-result (binding [ctx/*workflow-context* ctx] + (execute-workflow-fn workflow-fn args))] + + (case (:status exec-result) + :completed + (finalize-completed store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + (:result exec-result) + observer) + + :cancelled + (finalize-cancelled store workflow-id + (:pending-events exec-result) + observer) + + :suspended + (let [action (handle-suspension engine + workflow-id + (:suspension-type exec-result) + (:suspension-data exec-result) + (:pending-asyncs exec-result) + (:pending-events exec-result) + wake-fn + observer)] + (when (and observer (= action :continue)) + (p/on-workflow-resumed observer workflow-id)) + + (if (= action :continue) + (recur (inc iteration)) + (action->result action workflow-id))) + + :failed + (finalize-failed store workflow-id + (:pending-events exec-result) + (:error exec-result) + observer))))) + +(defn process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id + suspension-data pending-events observer] + (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] + (p/save-events store workflow-id pending-events) + ;; Execute child workflow synchronously for now + ;; In a real implementation, this could be async + (try + (let [result (run-workflow-internal engine + child-workflow-id workflow-fn args + {:observer observer + :max-iterations 1000})] + (if (= :completed (:status result)) + (do + (p/save-event store workflow-id {:event-type :child-workflow-completed + :seq seq + :child-workflow-id child-workflow-id + :result (:result result) + :timestamp (System/currentTimeMillis)}) + :continue) + (do + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (or (:error result) + {:status (:status result) + :message (str "Child workflow ended with status: " (:status result))}) + :timestamp (System/currentTimeMillis)}) + :continue))) + (catch Exception e + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (error/throwable->map e) + :timestamp (System/currentTimeMillis)}) + :continue)))) \ No newline at end of file From 02c1c34d41661e0eec97cb5b89ac15a9d2a2ed5f Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 16 Jan 2026 18:38:29 +0000 Subject: [PATCH 40/81] add test --- src/intemporal/core.clj | 5 +-- src/intemporal/example/signal.clj | 36 ++++++++++------- src/intemporal/internal/execution.clj | 24 +++++++++++- src/intemporal/protocol.clj | 2 + src/intemporal/store.clj | 12 +++++- test/intemporal/tests/async_test.clj | 39 +++++++++++++++++++ {test => test2}/intemporal/failures_test.cljc | 0 .../intemporal/internal_failures_test.cljc | 0 {test => test2}/intemporal/matchers.cljc | 0 .../intemporal/recovery_failure.edn | 0 .../intemporal/recovery_failure_test.clj | 0 .../intemporal/shutdown_restart_test.clj | 0 .../intemporal/shutdown_restart_test.cljs | 0 {test => test2}/intemporal/store_test.cljc | 0 .../intemporal/stores/basic_test.clj | 0 .../intemporal/stores/basic_workflow_test.clj | 0 .../stores/lots_of_workflows_test.clj | 0 .../stores/multiple_shutdown_test.clj | 0 .../stores/release_reenqueue_test.clj | 0 .../intemporal/stores/saga_test.clj | 0 {test => test2}/intemporal/test_executor.clj | 0 {test => test2}/intemporal/test_utils.cljc | 0 .../intemporal/vthread-recovery.edn | 0 .../intemporal/vthread_recovery_test.clj | 0 {test => test2}/intemporal/vthread_test.cljc | 0 {test => test2}/intemporal/workflow_test.cljc | 0 26 files changed, 97 insertions(+), 21 deletions(-) create mode 100644 test/intemporal/tests/async_test.clj rename {test => test2}/intemporal/failures_test.cljc (100%) rename {test => test2}/intemporal/internal_failures_test.cljc (100%) rename {test => test2}/intemporal/matchers.cljc (100%) rename {test => test2}/intemporal/recovery_failure.edn (100%) rename {test => test2}/intemporal/recovery_failure_test.clj (100%) rename {test => test2}/intemporal/shutdown_restart_test.clj (100%) rename {test => test2}/intemporal/shutdown_restart_test.cljs (100%) rename {test => test2}/intemporal/store_test.cljc (100%) rename {test => test2}/intemporal/stores/basic_test.clj (100%) rename {test => test2}/intemporal/stores/basic_workflow_test.clj (100%) rename {test => test2}/intemporal/stores/lots_of_workflows_test.clj (100%) rename {test => test2}/intemporal/stores/multiple_shutdown_test.clj (100%) rename {test => test2}/intemporal/stores/release_reenqueue_test.clj (100%) rename {test => test2}/intemporal/stores/saga_test.clj (100%) rename {test => test2}/intemporal/test_executor.clj (100%) rename {test => test2}/intemporal/test_utils.cljc (100%) rename {test => test2}/intemporal/vthread-recovery.edn (100%) rename {test => test2}/intemporal/vthread_recovery_test.clj (100%) rename {test => test2}/intemporal/vthread_test.cljc (100%) rename {test => test2}/intemporal/workflow_test.cljc (100%) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 70a97c8..57fff00 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -364,9 +364,8 @@ {:observer observer :max-iterations max-iterations :wake-fn wake-fn})] - ;; If workflow is waiting for timer or signal-with-timeout, block until wake-fn delivers result - ;; For plain signals, return immediately so caller can send signal and resume - (if (#{:waiting-timer :waiting-signal-timeout} (:status result)) + ;; If workflow is waiting for timer, signal, or signal-with-timeout, block until wake-fn delivers result + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) @resume-promise result)) (catch Exception e diff --git a/src/intemporal/example/signal.clj b/src/intemporal/example/signal.clj index b293857..a53c304 100644 --- a/src/intemporal/example/signal.clj +++ b/src/intemporal/example/signal.clj @@ -47,20 +47,22 @@ :result (act id)})) (println "\n=== Signal Workflow ===") -(let [wf-id "signal-flow" - result1 (intemporal/start-workflow engine - signal-flow [789] - :workflow-id wf-id - :observer (:observer engine))] - (println "Initial result:" result1) - (when (= :waiting-signal (:status result1)) - (println "Sending signal...") - (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) - (println "Resuming...") - (println "Final result:" - (intemporal/resume-workflow engine - wf-id signal-flow [789] - :observer (:observer engine))))) +;; Start workflow in background thread since it will block +(let [wf-id "signal-flow" + result-promise (promise) + workflow-thread (future + (deliver result-promise + (intemporal/start-workflow engine + signal-flow [789] + :workflow-id wf-id + :observer (:observer engine))))] + ;; Give workflow time to start and enter waiting state + (Thread/sleep 500) + (println "Sending signal...") + (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) + (println "Waiting for workflow to complete...") + (println "Final result:" @result-promise) + (future-cancel workflow-thread)) ;; Workflow with signal timeout (defn signal-timeout-flow [id] @@ -78,4 +80,8 @@ signal-timeout-flow [789] :workflow-id wf-id :observer (:observer engine))] - (println "Initial result:" result1)) \ No newline at end of file + (println "Initial result:" result1)) + +;; Shutdown engine +(intemporal/shutdown-engine engine) +(println "\nEngine shut down.") diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 729db1c..764d7f9 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -187,11 +187,12 @@ (when wake-fn (wake-fn)))) :wait-timer)))) -(defn process-signal [store workflow-id suspension-data pending-events observer] +(defn process-signal [store workflow-id suspension-data pending-events wake-fn observer] (let [{:keys [seq signal-name]} suspension-data] ;; Save pending events (p/save-events store workflow-id pending-events) (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + ;; Signal already available - process immediately (do (p/save-event store workflow-id {:event-type :signal-received :seq seq @@ -202,7 +203,25 @@ (when observer (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) :continue) - :wait-signal))) + ;; Signal not yet available - register callback and wait + (do + (p/register-signal-callback store workflow-id signal-name + (fn [] + ;; When signal arrives, consume it and save event + (when-let [signal-data (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-signal-received observer workflow-id signal-name (:payload signal-data)))) + ;; Unregister callback + (p/unregister-signal-callback store workflow-id signal-name) + ;; Wake up the workflow + (when wake-fn (wake-fn)))) + :wait-signal)))) (defn process-signal-with-timeout [store scheduler workflow-id suspension-data pending-events wake-fn observer] @@ -388,6 +407,7 @@ (process-signal store workflow-id suspension-data pending-events-list + wake-fn observer) :wait-signal-timeout diff --git a/src/intemporal/protocol.clj b/src/intemporal/protocol.clj index 70c599c..bfea640 100644 --- a/src/intemporal/protocol.clj +++ b/src/intemporal/protocol.clj @@ -14,6 +14,8 @@ (get-pending-signals [store workflow-id] "Get pending signals for workflow") (add-signal [store workflow-id signal-name signal-data] "Add a signal to workflow") (consume-signal [store workflow-id signal-name] "Consume and remove a signal") + (register-signal-callback [store workflow-id signal-name callback] "Register callback to be invoked when signal arrives") + (unregister-signal-callback [store workflow-id signal-name] "Unregister signal callback") (is-cancelled? [store workflow-id] "Check if workflow is cancelled") (mark-cancelled [store workflow-id] "Mark workflow as cancelled") (get-workflow-status [store workflow-id] "Get current workflow status")) diff --git a/src/intemporal/store.clj b/src/intemporal/store.clj index b2a0824..912d53e 100644 --- a/src/intemporal/store.clj +++ b/src/intemporal/store.clj @@ -31,9 +31,13 @@ (get-pending-signals [_ workflow-id] (get-in @state [:workflows workflow-id :signals] {})) - (add-signal [_ workflow-id signal-name signal-data] + (add-signal [this workflow-id signal-name signal-data] (swap! state update-in [:workflows workflow-id :signals signal-name] (fnil conj []) signal-data) + ;; Check if there's a callback registered for this signal + (when-let [callback (get-in @state [:workflows workflow-id :signal-callbacks signal-name])] + ;; Invoke callback asynchronously + (future (callback))) signal-data) (consume-signal [_ workflow-id signal-name] @@ -49,6 +53,12 @@ s)))) @result)) + (register-signal-callback [_ workflow-id signal-name callback] + (swap! state assoc-in [:workflows workflow-id :signal-callbacks signal-name] callback)) + + (unregister-signal-callback [_ workflow-id signal-name] + (swap! state update-in [:workflows workflow-id :signal-callbacks] dissoc signal-name)) + (is-cancelled? [_ workflow-id] (get-in @state [:workflows workflow-id :cancelled] false)) diff --git a/test/intemporal/tests/async_test.clj b/test/intemporal/tests/async_test.clj new file mode 100644 index 0000000..bdef9f7 --- /dev/null +++ b/test/intemporal/tests/async_test.clj @@ -0,0 +1,39 @@ +(ns intemporal.tests.async-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + prom1 (intemporal/async #(slow 1)) + prom2 (intemporal/async #(slow 2)) + prom3 (intemporal/async #(slow 3)) + prom4 (intemporal/async #(+ 2 2))] + (println "After async calls - all scheduled") + {:args id + :slow (slow 0) + :prom4 (intemporal/join prom4) + :results (intemporal/join-all [prom1 prom2 prom3 prom4]) + :id id})) + +(deftest test-async-workflow + (testing "Async workflow" + (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Register activities + (a/register-activity! (:registry engine) #'slow-activity) + (let [result (intemporal/start-workflow engine + my-parallel-flow [999])] + (is (match? {:status :completed + :result {:args 999, :slow 0, :prom4 4, :results [2 4 6 4], :id 999}} + result)))))) + diff --git a/test/intemporal/failures_test.cljc b/test2/intemporal/failures_test.cljc similarity index 100% rename from test/intemporal/failures_test.cljc rename to test2/intemporal/failures_test.cljc diff --git a/test/intemporal/internal_failures_test.cljc b/test2/intemporal/internal_failures_test.cljc similarity index 100% rename from test/intemporal/internal_failures_test.cljc rename to test2/intemporal/internal_failures_test.cljc diff --git a/test/intemporal/matchers.cljc b/test2/intemporal/matchers.cljc similarity index 100% rename from test/intemporal/matchers.cljc rename to test2/intemporal/matchers.cljc diff --git a/test/intemporal/recovery_failure.edn b/test2/intemporal/recovery_failure.edn similarity index 100% rename from test/intemporal/recovery_failure.edn rename to test2/intemporal/recovery_failure.edn diff --git a/test/intemporal/recovery_failure_test.clj b/test2/intemporal/recovery_failure_test.clj similarity index 100% rename from test/intemporal/recovery_failure_test.clj rename to test2/intemporal/recovery_failure_test.clj diff --git a/test/intemporal/shutdown_restart_test.clj b/test2/intemporal/shutdown_restart_test.clj similarity index 100% rename from test/intemporal/shutdown_restart_test.clj rename to test2/intemporal/shutdown_restart_test.clj diff --git a/test/intemporal/shutdown_restart_test.cljs b/test2/intemporal/shutdown_restart_test.cljs similarity index 100% rename from test/intemporal/shutdown_restart_test.cljs rename to test2/intemporal/shutdown_restart_test.cljs diff --git a/test/intemporal/store_test.cljc b/test2/intemporal/store_test.cljc similarity index 100% rename from test/intemporal/store_test.cljc rename to test2/intemporal/store_test.cljc diff --git a/test/intemporal/stores/basic_test.clj b/test2/intemporal/stores/basic_test.clj similarity index 100% rename from test/intemporal/stores/basic_test.clj rename to test2/intemporal/stores/basic_test.clj diff --git a/test/intemporal/stores/basic_workflow_test.clj b/test2/intemporal/stores/basic_workflow_test.clj similarity index 100% rename from test/intemporal/stores/basic_workflow_test.clj rename to test2/intemporal/stores/basic_workflow_test.clj diff --git a/test/intemporal/stores/lots_of_workflows_test.clj b/test2/intemporal/stores/lots_of_workflows_test.clj similarity index 100% rename from test/intemporal/stores/lots_of_workflows_test.clj rename to test2/intemporal/stores/lots_of_workflows_test.clj diff --git a/test/intemporal/stores/multiple_shutdown_test.clj b/test2/intemporal/stores/multiple_shutdown_test.clj similarity index 100% rename from test/intemporal/stores/multiple_shutdown_test.clj rename to test2/intemporal/stores/multiple_shutdown_test.clj diff --git a/test/intemporal/stores/release_reenqueue_test.clj b/test2/intemporal/stores/release_reenqueue_test.clj similarity index 100% rename from test/intemporal/stores/release_reenqueue_test.clj rename to test2/intemporal/stores/release_reenqueue_test.clj diff --git a/test/intemporal/stores/saga_test.clj b/test2/intemporal/stores/saga_test.clj similarity index 100% rename from test/intemporal/stores/saga_test.clj rename to test2/intemporal/stores/saga_test.clj diff --git a/test/intemporal/test_executor.clj b/test2/intemporal/test_executor.clj similarity index 100% rename from test/intemporal/test_executor.clj rename to test2/intemporal/test_executor.clj diff --git a/test/intemporal/test_utils.cljc b/test2/intemporal/test_utils.cljc similarity index 100% rename from test/intemporal/test_utils.cljc rename to test2/intemporal/test_utils.cljc diff --git a/test/intemporal/vthread-recovery.edn b/test2/intemporal/vthread-recovery.edn similarity index 100% rename from test/intemporal/vthread-recovery.edn rename to test2/intemporal/vthread-recovery.edn diff --git a/test/intemporal/vthread_recovery_test.clj b/test2/intemporal/vthread_recovery_test.clj similarity index 100% rename from test/intemporal/vthread_recovery_test.clj rename to test2/intemporal/vthread_recovery_test.clj diff --git a/test/intemporal/vthread_test.cljc b/test2/intemporal/vthread_test.cljc similarity index 100% rename from test/intemporal/vthread_test.cljc rename to test2/intemporal/vthread_test.cljc diff --git a/test/intemporal/workflow_test.cljc b/test2/intemporal/workflow_test.cljc similarity index 100% rename from test/intemporal/workflow_test.cljc rename to test2/intemporal/workflow_test.cljc From 222c97550b088508edbd3101e76783dec2e8b40a Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 17 Jan 2026 10:07:24 +0000 Subject: [PATCH 41/81] dont throw --- src/intemporal/internal/execution.clj | 134 ++++++++++++++------------ 1 file changed, 75 insertions(+), 59 deletions(-) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 764d7f9..36d6c28 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -332,28 +332,36 @@ :result result}) (defn finalize-cancelled - "Save cancellation event and return result." + "Save cancellation event and return result as failed." [store workflow-id pending-events observer] (p/save-events store workflow-id pending-events) - (p/save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-cancelled observer workflow-id)) - {:status :cancelled - :workflow-id workflow-id}) + (let [error-map {:type "clojure.lang.ExceptionInfo" + :message "Workflow cancelled" + :data {:workflow-id workflow-id}}] + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-cancelled observer workflow-id)) + (when observer + (p/on-workflow-failed observer workflow-id error-map)) + {:status :failed + :workflow-id workflow-id + :error error-map})) (defn finalize-failed "Save failure event and return result." [store workflow-id pending-events error observer] (p/save-events store workflow-id pending-events) - (p/save-event store workflow-id {:event-type :workflow-failed - :error (error/throwable->map error) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-failed observer workflow-id (error/throwable->map error))) - {:status :failed - :workflow-id workflow-id - :error error}) + (let [error-map (error/throwable->map error)] + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-failed observer workflow-id error-map)) + {:status :failed + :workflow-id workflow-id + :error error-map})) (defn action->result "Convert action keyword to workflow result map." @@ -458,52 +466,60 @@ :iterations iteration}))) ;; Check cancellation at start of each iteration - (when (p/is-cancelled? store workflow-id) - (when observer - (p/on-workflow-cancelled observer workflow-id)) - (p/save-event store workflow-id {:event-type :workflow-cancelled - :timestamp (System/currentTimeMillis)}) - (throw (ex-info "Workflow cancelled" {:workflow-id workflow-id}))) - - (let [history (p/load-history store workflow-id) - ctx (make-workflow-context workflow-id history store registry observer) - exec-result (binding [ctx/*workflow-context* ctx] - (execute-workflow-fn workflow-fn args))] - - (case (:status exec-result) - :completed - (finalize-completed store executor workflow-id - (:pending-asyncs exec-result) - (:pending-events exec-result) - (:result exec-result) - observer) + (if (p/is-cancelled? store workflow-id) + (let [error-map {:type "clojure.lang.ExceptionInfo" + :message "Workflow cancelled" + :data {:workflow-id workflow-id}}] + (when observer + (p/on-workflow-cancelled observer workflow-id)) + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-failed observer workflow-id error-map)) + {:status :failed + :workflow-id workflow-id + :error error-map}) - :cancelled - (finalize-cancelled store workflow-id - (:pending-events exec-result) - observer) + (let [history (p/load-history store workflow-id) + ctx (make-workflow-context workflow-id history store registry observer) + exec-result (binding [ctx/*workflow-context* ctx] + (execute-workflow-fn workflow-fn args))] - :suspended - (let [action (handle-suspension engine - workflow-id - (:suspension-type exec-result) - (:suspension-data exec-result) - (:pending-asyncs exec-result) - (:pending-events exec-result) - wake-fn - observer)] - (when (and observer (= action :continue)) - (p/on-workflow-resumed observer workflow-id)) - - (if (= action :continue) - (recur (inc iteration)) - (action->result action workflow-id))) - - :failed - (finalize-failed store workflow-id - (:pending-events exec-result) - (:error exec-result) - observer))))) + (case (:status exec-result) + :completed + (finalize-completed store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + (:result exec-result) + observer) + + :cancelled + (finalize-cancelled store workflow-id + (:pending-events exec-result) + observer) + + :suspended + (let [action (handle-suspension engine + workflow-id + (:suspension-type exec-result) + (:suspension-data exec-result) + (:pending-asyncs exec-result) + (:pending-events exec-result) + wake-fn + observer)] + (when (and observer (= action :continue)) + (p/on-workflow-resumed observer workflow-id)) + + (if (= action :continue) + (recur (inc iteration)) + (action->result action workflow-id))) + + :failed + (finalize-failed store workflow-id + (:pending-events exec-result) + (:error exec-result) + observer)))))) (defn process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id suspension-data pending-events observer] From 86a4ff5aaa5c2124e8c554474d1450f082d32d0f Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 17 Jan 2026 16:56:47 +0000 Subject: [PATCH 42/81] tests passing --- src/intemporal/core.clj | 44 ++++--- test/intemporal/tests/cancellation_test.clj | 102 +++++++++++++++ test/intemporal/tests/child_workflow_test.clj | 98 ++++++++++++++ test/intemporal/tests/error_test.clj | 122 ++++++++++++++++++ test/intemporal/tests/signal_test.clj | 95 ++++++++++++++ test/intemporal/tests/timer_test.clj | 66 ++++++++++ 6 files changed, 512 insertions(+), 15 deletions(-) create mode 100644 test/intemporal/tests/cancellation_test.clj create mode 100644 test/intemporal/tests/child_workflow_test.clj create mode 100644 test/intemporal/tests/error_test.clj create mode 100644 test/intemporal/tests/signal_test.clj create mode 100644 test/intemporal/tests/timer_test.clj diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 57fff00..b689e75 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -342,17 +342,25 @@ & {:keys [workflow-id observer max-iterations] :or {max-iterations 1000}}] (let [wf-id (or workflow-id (str (random-uuid))) - resume-promise (promise) - wake-fn (fn [] + resume-promise-atom (atom nil) + wake-fn (fn wake-fn-impl [] (try (when observer (p/on-workflow-resumed observer wf-id)) - (deliver resume-promise - (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations})) + (let [old-promise @resume-promise-atom + new-promise (promise) + ;_ (reset! resume-promise-atom new-promise) + result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn-impl})] + (reset! resume-promise-atom new-promise) + (deliver old-promise result)) (catch Exception e - (deliver resume-promise {:status :failed :error e}))))] + (when-let [p @resume-promise-atom] + (deliver p {:status :failed :error e})))))] + ;; Initialize with first promise + (reset! resume-promise-atom (promise)) (p/save-event store wf-id {:event-type :workflow-started :workflow-id wf-id :args (vec args) @@ -360,14 +368,20 @@ (when observer (p/on-workflow-started observer wf-id args)) (try - (let [result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn})] - ;; If workflow is waiting for timer, signal, or signal-with-timeout, block until wake-fn delivers result - (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout} (:status result)) - @resume-promise - result)) + ;; Execute initial workflow run + (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + ;; Loop to handle multiple wait cycles + (loop [result initial-result] + ;; If workflow is waiting, block until wake-fn delivers next result + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) + ;; Capture the promise that wake-fn will deliver to + (let [next-promise @resume-promise-atom + next-result @next-promise] + (recur next-result)) + result))) (catch Exception e ;; If cancelled/failed before entering wait state, re-throw (throw e))))) diff --git a/test/intemporal/tests/cancellation_test.clj b/test/intemporal/tests/cancellation_test.clj new file mode 100644 index 0000000..77f88f3 --- /dev/null +++ b/test/intemporal/tests/cancellation_test.clj @@ -0,0 +1,102 @@ +(ns intemporal.tests.cancellation-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(defn slow-activity [x] + (Thread/sleep 100) + (* x 2)) + +;; Long-running workflow +(defn long-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (loop [i 0 + results []] + (if (< i 10) + (recur (inc i) (conj results (slow i))) + {:results results :done true})))) + +;; Workflow that checks cancellation +(defn cancellable-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (slow 1) + (intemporal/sleep 100) + (slow 2) + {:done true})) + +(deftest test-workflow-cancellation + (testing "Workflow can be cancelled mid-execution" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'slow-activity) + (let [wf-id "cancel-test" + result-future (future + (intemporal/start-workflow engine + long-flow [1] + :workflow-id wf-id))] + ;; Wait a bit then cancel + (Thread/sleep 200) + (intemporal/cancel-workflow (:store engine) wf-id) + + ;; Workflow should fail with cancellation error + (let [result @result-future] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result))))))) + +(deftest test-cancellation-with-timer + (testing "Workflow cancelled while waiting on timer" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'slow-activity) + (let [wf-id "cancel-timer-test" + result-future (future + (intemporal/start-workflow engine + cancellable-flow [1] + :workflow-id wf-id))] + ;; Cancel while sleeping + (Thread/sleep 150) + (intemporal/cancel-workflow (:store engine) wf-id) + + (let [result @result-future] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result))))))) + +(deftest test-cancel-before-start + (testing "Workflow cancelled before it starts" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'slow-activity) + (let [wf-id "cancel-before-start"] + ;; Cancel before starting + (intemporal/cancel-workflow (:store engine) wf-id) + + ;; Try to start cancelled workflow - should return failed status + (let [result (intemporal/start-workflow engine + cancellable-flow [1] + :workflow-id wf-id)] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result))))))) + +(deftest test-workflow-status-after-cancel + (testing "Workflow status is cancelled after cancellation" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'slow-activity) + (let [wf-id "cancel-status-test" + result-future (future + (intemporal/start-workflow engine + long-flow [1] + :workflow-id wf-id))] + (Thread/sleep 100) + (intemporal/cancel-workflow (:store engine) wf-id) + + ;; Check result indicates failure with cancellation + (let [result @result-future] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result))))))) diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.clj new file mode 100644 index 0000000..1ff01a3 --- /dev/null +++ b/test/intemporal/tests/child_workflow_test.clj @@ -0,0 +1,98 @@ +(ns intemporal.tests.child-workflow-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Child workflow +(defn child-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:child-result (act x)})) + +;; Parent workflow +(defn parent-flow [id] + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-flow [(* id 10)])] + {:parent-result (act id) + :child child-result})) + +;; Nested child workflows +(defn grandchild-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:grandchild (act x)})) + +(defn child-with-child-flow [x] + (let [act (intemporal/stub #'activity-fn) + gc-result (intemporal/run-child-workflow grandchild-flow [(* x 100)])] + {:child-result (act x) + :grandchild-result gc-result})) + +(defn nested-parent-flow [id] + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-with-child-flow [(* id 10)])] + {:parent-result (act id) + :nested-child child-result})) + +(deftest test-simple-child-workflow + (testing "Parent workflow can run child workflow" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [result (intemporal/start-workflow engine + parent-flow [5])] + (is (match? {:status :completed + :workflow-id string? + :result {:parent-result [:processed 5] + :child {:child-result [:processed 50]}}} + result)))))) + +(deftest test-nested-child-workflows + (testing "Child workflows can have their own child workflows" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [result (intemporal/start-workflow engine + nested-parent-flow [3])] + (is (match? {:status :completed + :result {:parent-result [:processed 3] + :nested-child {:child-result [:processed 30] + :grandchild-result {:grandchild [:processed 3000]}}}} + result)))))) + +(deftest test-child-workflow-with-error + (testing "Parent handles child workflow errors" + (intemporal/with-workflow-engine [engine {:threads 2}] + (let [failing-child (fn [x] + (throw (ex-info "Child failed" {:x x}))) + parent-with-error (fn [id] + (try + (intemporal/run-child-workflow failing-child [id]) + {:success true} + (catch Exception e + {:error (.getMessage e)})))] + ;; Parent should catch and handle child error + (let [result (intemporal/start-workflow engine + parent-with-error [42])] + (is (match? {:status :completed + :result {:error string?}} + result))))))) + +(deftest test-multiple-child-workflows + (testing "Parent can run multiple child workflows sequentially" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [multi-child-flow (fn [id] + (let [c1 (intemporal/run-child-workflow child-flow [1]) + c2 (intemporal/run-child-workflow child-flow [2]) + c3 (intemporal/run-child-workflow child-flow [3])] + {:children [c1 c2 c3] :id id})) + result (intemporal/start-workflow engine + multi-child-flow [99])] + (is (match? {:status :completed + :result {:children [{:child-result [:processed 1]} + {:child-result [:processed 2]} + {:child-result [:processed 3]}] + :id 99}} + result)))))) diff --git a/test/intemporal/tests/error_test.clj b/test/intemporal/tests/error_test.clj new file mode 100644 index 0000000..647a3ed --- /dev/null +++ b/test/intemporal/tests/error_test.clj @@ -0,0 +1,122 @@ +(ns intemporal.tests.error-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(def attempt-counter (atom 0)) + +(defn flaky-activity [x] + (let [attempt (swap! attempt-counter inc)] + (if (< attempt 3) + (throw (ex-info "Flaky failure" {:x x :attempt attempt})) + (* x 3)))) + +(defn always-fails-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Workflow with retry +(defn retry-flow [id] + (let [flaky (intemporal/stub #'flaky-activity)] + {:result (flaky id)})) + +;; Workflow that catches errors +(defn error-handling-flow [id] + (let [failing (intemporal/stub #'always-fails-activity)] + (try + {:result (failing id) :error false} + (catch Exception e + {:result nil :error true :message (.getMessage e)})))) + +;; Workflow with activity that fails after retry +(defn failing-retry-flow [id] + (let [failing (intemporal/stub #'always-fails-activity)] + {:result (failing id)})) + +(deftest test-activity-retry-succeeds + (testing "Activity succeeds after retries" + (intemporal/with-workflow-engine [engine {:threads 2}] + (reset! attempt-counter 0) + (a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy :max-attempts 5 + :initial-backoff-ms 10)) + (let [result (intemporal/start-workflow engine + retry-flow [42])] + (is (match? {:status :completed + :workflow-id string? + :result {:result 126}} + result)) + ;; Should have attempted 3 times + (is (= 3 @attempt-counter)))))) + +(deftest test-activity-retry-exhausted + (testing "Activity fails after exhausting retries" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'always-fails-activity + :retry-policy (a/make-retry-policy :max-attempts 3 + :initial-backoff-ms 10)) + (let [result (intemporal/start-workflow engine + failing-retry-flow [99])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} + result)))))) + +(deftest test-workflow-error-handling + (testing "Workflow can catch and handle activity errors" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'always-fails-activity) + (let [result (intemporal/start-workflow engine + error-handling-flow [123])] + (is (match? {:status :completed + :workflow-id string? + :result {:result nil + :error true + :message string?}} + result)))))) + +(deftest test-no-retry-policy + (testing "Activity without retry policy fails immediately" + (intemporal/with-workflow-engine [engine {:threads 2}] + ;; Register without retry policy + (a/register-activity! (:registry engine) #'always-fails-activity) + (let [result (intemporal/start-workflow engine + failing-retry-flow [456])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} + result)))))) + +(deftest test-retry-with-exponential-backoff + (testing "Retry policy applies exponential backoff" + (intemporal/with-workflow-engine [engine {:threads 2}] + (reset! attempt-counter 0) + (a/register-activity! (:registry engine) #'flaky-activity + :retry-policy (a/make-retry-policy + :max-attempts 5 + :initial-backoff-ms 10 + :backoff-multiplier 2.0)) + (let [start-time (System/currentTimeMillis) + result (intemporal/start-workflow engine retry-flow [42]) + elapsed (- (System/currentTimeMillis) start-time)] + (is (match? {:status :completed + :workflow-id string? + :result {:result 126}} + result)) + ;; With backoff 10ms, 20ms, we expect at least 30ms + (is (>= elapsed 30)))))) + +(deftest test-error-details-preserved + (testing "Error details are preserved in workflow result" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'always-fails-activity) + (let [result (intemporal/start-workflow engine + failing-retry-flow [789])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name "intemporal.tests.error-test/always-fails-activity"})})} + result)))))) diff --git a/test/intemporal/tests/signal_test.clj b/test/intemporal/tests/signal_test.clj new file mode 100644 index 0000000..507eabe --- /dev/null +++ b/test/intemporal/tests/signal_test.clj @@ -0,0 +1,95 @@ +(ns intemporal.tests.signal-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Workflow waiting for signal +(defn signal-flow [id] + (let [approval (intemporal/wait-for-signal "approval") + act (intemporal/stub #'activity-fn)] + {:approved approval + :result (act id)})) + +;; Workflow with signal timeout +(defn signal-timeout-flow [id timeout-ms] + (let [result (intemporal/wait-for-signal-with-timeout "approval" timeout-ms) + act (intemporal/stub #'activity-fn)] + (if (:received result) + {:approved (:payload result) + :result (act id)} + {:timed-out true + :result (act (* id -1))}))) + +(deftest test-signal-blocking + (testing "Workflow blocks until signal is sent" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [wf-id "signal-test" + result-future (future + (intemporal/start-workflow engine + signal-flow [123] + :workflow-id wf-id))] + ;; Give workflow time to start + (Thread/sleep 100) + ;; Send signal + (intemporal/send-signal (:store engine) wf-id "approval" {:user "alice"}) + ;; Wait for completion + (let [result @result-future] + (is (match? {:status :completed + :workflow-id wf-id + :result {:approved {:user "alice"} + :result [:processed 123]}} + result))))))) + +(deftest test-signal-timeout-received + (testing "Signal received before timeout" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [wf-id "signal-timeout-test" + result-future (future + (intemporal/start-workflow engine + signal-timeout-flow [456 5000] + :workflow-id wf-id))] + (Thread/sleep 100) + (intemporal/send-signal (:store engine) wf-id "approval" {:user "bob"}) + (let [result @result-future] + (is (match? {:status :completed + :result {:approved {:user "bob"} + :result [:processed 456]}} + result))))))) + +(deftest test-signal-timeout-expired + (testing "Signal times out when not received" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [result (intemporal/start-workflow engine + signal-timeout-flow [789 100])] + (is (match? {:status :completed + :result {:timed-out true + :result [:processed -789]}} + result)))))) + +(deftest test-multiple-signals + (testing "Multiple signals can be sent to same workflow" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [wf-id "multi-signal-test"] + ;; Send signals before workflow starts + (intemporal/send-signal (:store engine) wf-id "approval" {:user "alice"}) + (intemporal/send-signal (:store engine) wf-id "approval" {:user "bob"}) + + ;; First workflow run consumes first signal + (let [result1 (intemporal/start-workflow engine + signal-flow [100] + :workflow-id wf-id)] + (is (match? {:result {:approved {:user "alice"}}} result1))) + + ;; Second run on same workflow-id consumes second signal + (let [result2 (intemporal/resume-workflow engine wf-id + signal-flow [100])] + (is (match? {:result {:approved {:user "alice"}}} result2))))))) diff --git a/test/intemporal/tests/timer_test.clj b/test/intemporal/tests/timer_test.clj new file mode 100644 index 0000000..e335b7a --- /dev/null +++ b/test/intemporal/tests/timer_test.clj @@ -0,0 +1,66 @@ +(ns intemporal.tests.timer-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [intemporal.observer :as obs] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Simple timer workflow +(defn timed-flow [id] + (let [act (intemporal/stub #'activity-fn)] + (intemporal/sleep 100) ; Short sleep for tests + {:result (act id)})) + +;; Timer with multiple sleeps +(defn multi-sleep-flow [id] + (let [act (intemporal/stub #'activity-fn)] + (intemporal/sleep 50) + (let [r1 (act 1)] + (intemporal/sleep 50) + (let [r2 (act 2)] + {:results [r1 r2] :id id})))) + +(deftest test-simple-timer + (testing "Workflow with timer completes after sleep" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [result (intemporal/start-workflow engine + timed-flow [456])] + (is (match? {:status :completed + :workflow-id string? + :result {:result [:processed 456]}} + result)))))) + +(deftest test-multiple-timers + (testing "Workflow with multiple sleep calls" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [logs (atom []) + result (intemporal/start-workflow engine + multi-sleep-flow [789] + :observer (obs/->LoggingObserver logs))] + (clojure.pprint/print-table @logs) + (is (match? {:status :completed + :workflow-id string? + :result {:results [[:processed 1] [:processed 2]] + :id 789}} + result)))))) + +(deftest test-timer-replay + (testing "Timer workflow is deterministic on replay" + (intemporal/with-workflow-engine [engine {:threads 2}] + (a/register-activity! (:registry engine) #'activity-fn) + (let [wf-id "timer-replay-test" + result1 (intemporal/start-workflow engine + timed-flow [100] + :workflow-id wf-id) + ;; Resume should replay deterministically + result2 (intemporal/resume-workflow engine wf-id + timed-flow [100])] + (is (match? {:status :completed} result1)) + (is (match? {:status :completed} result2)) + (is (= (:result result1) (:result result2))))))) From ab201eb197355ca5f740d7fdf69cadadfd1dd0fb Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 17 Jan 2026 23:05:22 +0000 Subject: [PATCH 43/81] lint --- .clj-kondo/config.edn | 3 + src/intemporal/core.clj | 2 +- src/intemporal/example/async.clj | 90 ------------------- src/intemporal/example/cancellation.clj | 54 ----------- src/intemporal/example/child.clj | 34 ------- src/intemporal/example/error.clj | 30 ------- src/intemporal/example/signal.clj | 87 ------------------ src/intemporal/example/timer.clj | 35 -------- src/intemporal/internal/error.clj | 45 ++++++---- src/intemporal/internal/execution.clj | 2 +- test/intemporal/tests/async_test.clj | 3 +- test/intemporal/tests/child_workflow_test.clj | 49 +++++----- test/intemporal/tests/signal_test.clj | 3 +- test/intemporal/tests/timer_test.clj | 11 +-- 14 files changed, 64 insertions(+), 384 deletions(-) delete mode 100644 src/intemporal/example/async.clj delete mode 100644 src/intemporal/example/cancellation.clj delete mode 100644 src/intemporal/example/child.clj delete mode 100644 src/intemporal/example/error.clj delete mode 100644 src/intemporal/example/signal.clj delete mode 100644 src/intemporal/example/timer.clj diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 9e93523..471e58a 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -5,6 +5,9 @@ intemporal.macros/with-failure clojure.core/let intemporal.store.foundationdb/with-tx clojure.core/with-open intemporal.test-utils/with-result clojure.core/let + + intemporal.core/with-workflow-engine clojure.core/let + promesa.core/let clojure.core/let promesa.core/loop clojure.core/loop promesa.core/recur clojure.core/recur} diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index b689e75..dd3468c 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -127,7 +127,7 @@ :timestamp (System/currentTimeMillis)}) (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) (->AsyncHandle start-seq)) - (catch Exception e + (catch Throwable e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution (let [suspension-info (error/suspension-data e)] diff --git a/src/intemporal/example/async.clj b/src/intemporal/example/async.clj deleted file mode 100644 index 21e8770..0000000 --- a/src/intemporal/example/async.clj +++ /dev/null @@ -1,90 +0,0 @@ -(ns intemporal.example.async - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -(defn flaky-activity [x] - (if true ;(< (rand) 0.7) - (throw (ex-info "Random failure" {:x x})) - (* x 3))) - -(defn failing-activity [x] - (throw (ex-info "Always fails" {:x x}))) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'slow-activity) -(a/register-activity! (:registry engine) #'activity-fn) -(a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy :max-attempts 5)) -(a/register-activity! (:registry engine) #'failing-activity) - -;; Parallel workflow -(defn my-parallel-flow [id] - (println "Workflow start with id:" id) - (let [slow (intemporal/stub #'slow-activity) - prom1 (intemporal/async #(slow 1)) - prom2 (intemporal/async #(slow 2)) - prom3 (intemporal/async #(slow 3)) - prom4 (intemporal/async #(+ 2 2))] - (println "After async calls - all scheduled") - {:args id - :slow (slow 0) - :prom4 (intemporal/join prom4) - :results (intemporal/join-all [prom1 prom2 prom3 prom4]) - :id id})) - -;; Run parallel example -(println "\n=== Parallel Workflow ===") -(time - (let [wf-id "test-parallel" - result (intemporal/start-workflow engine - my-parallel-flow [123] - :workflow-id wf-id - :observer (:observer engine))] - (println "Result:" result) - (println "\n=== Workflow History ===") - (clojure.pprint/print-table (map (fn [r] - (-> r - (assoc :seq (:seq r)) - (dissoc :timestamp))) - (intemporal/get-workflow-history (:store engine) wf-id))) - #_ - (doseq [event (intemporal/get-workflow-history (:store engine) wf-id)] - (println " " (:event-type event) "seq:" (:seq event) - (when (:result event) (str "result:" (:result event))) - (when (:activity-name event) (str "activity:" (:activity-name event))))))) - - -(comment - - ;; Cleanup - (intemporal/shutdown-engine engine) - - ;; Using the convenience macro - (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] - (a/register-activity! (:registry engine) #'activity-fn) - (a/register-activity! (:registry engine) #'slow-activity) - (let [result (intemporal/start-workflow engine - my-parallel-flow [999] - :observer (:observer engine))] - (println "Result:" result)))) - diff --git a/src/intemporal/example/cancellation.clj b/src/intemporal/example/cancellation.clj deleted file mode 100644 index 1d15cec..0000000 --- a/src/intemporal/example/cancellation.clj +++ /dev/null @@ -1,54 +0,0 @@ -(ns intemporal.example.cancellation - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'slow-activity) - -;; Cancellation example -(defn long-flow [id] - (let [slow (intemporal/stub #'slow-activity)] - (dotimes [i 10] - (println "Step" i) - (slow i) - (intemporal/sleep 500)) - {:done true})) - -(println "\n=== Cancellation ===") -(future - (Thread/sleep 2500) - (println "Cancelling workflow...") - (intemporal/cancel-workflow (:store engine) "cancel-flow")) - -(try - (intemporal/start-workflow engine - long-flow [1] - :workflow-id "cancel-flow" - :observer (:observer engine)) - (catch Exception e - (println "Workflow cancelled:" (.getMessage e)))) - -;; View logs -(println "\n=== Event Log ===") -(doseq [event @(:log engine)] - (println (:event event) "-" (dissoc event :event :timestamp))) - -;; View history -(println "\n=== Workflow History ===") -(doseq [event (intemporal/get-workflow-history (:store engine) "parallel-flow")] - (println (:event-type event) "seq:" (:seq event))) \ No newline at end of file diff --git a/src/intemporal/example/child.clj b/src/intemporal/example/child.clj deleted file mode 100644 index 9edd24f..0000000 --- a/src/intemporal/example/child.clj +++ /dev/null @@ -1,34 +0,0 @@ -(ns intemporal.example.child - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'activity-fn) - -;; Child workflow example -(defn child-flow [x] - (let [act (intemporal/stub #'activity-fn)] - {:child-result (act x)})) - -(defn parent-flow [id] - (println "Parent workflow starting") - (let [act (intemporal/stub #'activity-fn) - child-result (intemporal/run-child-workflow child-flow [(* id 10)])] - {:parent-result (act id) - :child child-result})) - -(println "\n=== Parent/Child Workflow ===") -(prn (intemporal/start-workflow engine - parent-flow [5] - :workflow-id "parent-flow" - :observer (:observer engine))) - diff --git a/src/intemporal/example/error.clj b/src/intemporal/example/error.clj deleted file mode 100644 index 192bce1..0000000 --- a/src/intemporal/example/error.clj +++ /dev/null @@ -1,30 +0,0 @@ -(ns intemporal.example.error - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -(defn flaky-activity [x] - (if true ;(< (rand) 0.7) - (throw (ex-info "Random failure" {:x x})) - (* x 3))) - -(defn failing-activity [x] - (throw (ex-info "Always fails" {:x x}))) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy :max-attempts 5)) - -;; Workflow with error handling -(defn error-handling-flow [id] - (let [flaky (intemporal/stub #'flaky-activity)] - {:result (flaky id)})) - -(println "\n=== Error Handling Workflow ===") -(prn (intemporal/start-workflow engine - error-handling-flow [42] - :workflow-id "error-flow" - :observer (:observer engine))) diff --git a/src/intemporal/example/signal.clj b/src/intemporal/example/signal.clj deleted file mode 100644 index a53c304..0000000 --- a/src/intemporal/example/signal.clj +++ /dev/null @@ -1,87 +0,0 @@ -(ns intemporal.example.signal - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) - (* x 2)) - -(defn flaky-activity [x] - (if true ;(< (rand) 0.7) - (throw (ex-info "Random failure" {:x x})) - (* x 3))) - -(defn failing-activity [x] - (throw (ex-info "Always fails" {:x x}))) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'slow-activity) -(a/register-activity! (:registry engine) #'activity-fn) -(a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy :max-attempts 5)) -(a/register-activity! (:registry engine) #'failing-activity) - -;; Workflow with signal -(defn signal-flow [id] - (println "Waiting for approval signal...") - (let [approval (intemporal/wait-for-signal "approval") - act (intemporal/stub #'activity-fn)] - (println "Got approval:" approval) - {:approved approval - :result (act id)})) - -(println "\n=== Signal Workflow ===") -;; Start workflow in background thread since it will block -(let [wf-id "signal-flow" - result-promise (promise) - workflow-thread (future - (deliver result-promise - (intemporal/start-workflow engine - signal-flow [789] - :workflow-id wf-id - :observer (:observer engine))))] - ;; Give workflow time to start and enter waiting state - (Thread/sleep 500) - (println "Sending signal...") - (intemporal/send-signal (:store engine) wf-id "approval" {:approved-by "admin"}) - (println "Waiting for workflow to complete...") - (println "Final result:" @result-promise) - (future-cancel workflow-thread)) - -;; Workflow with signal timeout -(defn signal-timeout-flow [id] - (println "Waiting for approval with timeout...") - (let [result (intemporal/wait-for-signal-with-timeout "approval" 3000) - act (intemporal/stub #'activity-fn)] - (if (:received result) - {:approved (:payload result) - :result (act id)} - {:timed-out true - :result (act (* id -1))}))) - -(let [wf-id "signal-timeout-flow" - result1 (intemporal/start-workflow engine - signal-timeout-flow [789] - :workflow-id wf-id - :observer (:observer engine))] - (println "Initial result:" result1)) - -;; Shutdown engine -(intemporal/shutdown-engine engine) -(println "\nEngine shut down.") diff --git a/src/intemporal/example/timer.clj b/src/intemporal/example/timer.clj deleted file mode 100644 index 7a5f568..0000000 --- a/src/intemporal/example/timer.clj +++ /dev/null @@ -1,35 +0,0 @@ -(ns intemporal.example.timer - (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] - [clojure.pprint])) - -;; ============================================================================ -;; Example Usage -;; ============================================================================ - - -;; Define activities -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -;; Create engine -(def engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)) - -;; Register activities -(a/register-activity! (:registry engine) #'activity-fn) - -;; Workflow with timer -(defn timed-flow [id] - (println "Starting timed flow") - (let [act (intemporal/stub #'activity-fn)] - (println "Sleeping for 2 seconds...") - (intemporal/sleep 2000) - (println "Woke up!") - {:result (act id)})) - -(println "\n=== Timed Workflow ===") -(prn (intemporal/start-workflow engine - timed-flow [456] - ;:workflow-id "timed-flow" - :observer (:observer engine))) diff --git a/src/intemporal/internal/error.clj b/src/intemporal/internal/error.clj index 0e41216..5b896b3 100644 --- a/src/intemporal/internal/error.clj +++ b/src/intemporal/internal/error.clj @@ -1,15 +1,29 @@ -(ns intemporal.internal.error) +(ns intemporal.internal.error + (:import (clojure.lang IExceptionInfo))) ;; ============================================================================ ;; Exceptions and Error Handling ;; ============================================================================ +(defn- internal-error + "Internal exception constructor, subclasses error to prevent userland code to caught this + exception in `(try ... (catch Exception e))` blocks" + ([message data] + (internal-error message data nil)) + ([message data cause] + (proxy [Error IExceptionInfo] [message cause] + (getData [] data) + (toString [] + (str message + (when data (str " " (pr-str data))) + (when cause (str "\nCaused by: " cause))))))) (defn make-suspension [type data] - (ex-info "Workflow suspended" {:type type :data data ::suspension true})) + (internal-error "Workflow suspended" {:type type :data data ::suspension true})) (defn suspension? [e] - (and (instance? clojure.lang.ExceptionInfo e) + (and (instance? Error e) + (instance? IExceptionInfo e) (::suspension (ex-data e)))) (defn suspension-type [e] @@ -19,38 +33,39 @@ (-> e ex-data :data)) (defn workflow-cancelled-exception [] - (ex-info "Workflow cancelled" {::cancelled true})) + (internal-error "Workflow cancelled" {::cancelled true})) (defn cancelled-exception? [e] - (and (instance? clojure.lang.ExceptionInfo e) + (and (instance? Error e) + (instance? IExceptionInfo e) (::cancelled (ex-data e)))) (defn activity-timeout-exception [activity-name timeout-ms] (ex-info "Activity timed out" {::activity-timeout true - :activity-name activity-name - :timeout-ms timeout-ms})) + :activity-name activity-name + :timeout-ms timeout-ms})) (defn activity-failed-exception [activity-name cause] (ex-info "Activity failed" {::activity-failed true - :activity-name activity-name} + :activity-name activity-name} cause)) (defn async-failed-exception [handle-seq cause] (ex-info "Async operation failed" {::async-failed true - :handle-seq handle-seq - :cause cause})) + :handle-seq handle-seq + :cause cause})) (defn throwable->map [^Throwable t] (when t - {:type (str (type t)) - :message (.getMessage t) - :data (when (instance? clojure.lang.ExceptionInfo t) - (ex-data t)) + {:type (str (type t)) + :message (.getMessage t) + :data (when (instance? IExceptionInfo t) + (ex-data t)) :stack-trace (mapv str (.getStackTrace t)) - :cause (throwable->map (.getCause t))})) + :cause (throwable->map (.getCause t))})) (defn map->exception [m] (when m diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 36d6c28..f19f932 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -14,7 +14,7 @@ :result (apply workflow-fn args) :pending-asyncs @(:pending-asyncs (ctx/current-context)) :pending-events @(:pending-events (ctx/current-context))} - (catch Exception e + (catch Throwable e (cond (error/suspension? e) {:status :suspended diff --git a/test/intemporal/tests/async_test.clj b/test/intemporal/tests/async_test.clj index bdef9f7..1dacf9d 100644 --- a/test/intemporal/tests/async_test.clj +++ b/test/intemporal/tests/async_test.clj @@ -2,8 +2,7 @@ (:require [intemporal.core :as intemporal] [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m])) + [matcher-combinators.test :refer [match?]])) (defn slow-activity [x] (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.clj index 1ff01a3..033bfea 100644 --- a/test/intemporal/tests/child_workflow_test.clj +++ b/test/intemporal/tests/child_workflow_test.clj @@ -2,8 +2,7 @@ (:require [intemporal.core :as intemporal] [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m])) + [matcher-combinators.test :refer [match?]])) (defn activity-fn [arg] [:processed arg]) @@ -15,10 +14,10 @@ ;; Parent workflow (defn parent-flow [id] - (let [act (intemporal/stub #'activity-fn) + (let [act (intemporal/stub #'activity-fn) child-result (intemporal/run-child-workflow child-flow [(* id 10)])] {:parent-result (act id) - :child child-result})) + :child child-result})) ;; Nested child workflows (defn grandchild-flow [x] @@ -26,16 +25,16 @@ {:grandchild (act x)})) (defn child-with-child-flow [x] - (let [act (intemporal/stub #'activity-fn) + (let [act (intemporal/stub #'activity-fn) gc-result (intemporal/run-child-workflow grandchild-flow [(* x 100)])] - {:child-result (act x) + {:child-result (act x) :grandchild-result gc-result})) (defn nested-parent-flow [id] - (let [act (intemporal/stub #'activity-fn) + (let [act (intemporal/stub #'activity-fn) child-result (intemporal/run-child-workflow child-with-child-flow [(* id 10)])] {:parent-result (act id) - :nested-child child-result})) + :nested-child child-result})) (deftest test-simple-child-workflow (testing "Parent workflow can run child workflow" @@ -43,10 +42,10 @@ (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine parent-flow [5])] - (is (match? {:status :completed + (is (match? {:status :completed :workflow-id string? - :result {:parent-result [:processed 5] - :child {:child-result [:processed 50]}}} + :result {:parent-result [:processed 5] + :child {:child-result [:processed 50]}}} result)))))) (deftest test-nested-child-workflows @@ -57,27 +56,27 @@ nested-parent-flow [3])] (is (match? {:status :completed :result {:parent-result [:processed 3] - :nested-child {:child-result [:processed 30] - :grandchild-result {:grandchild [:processed 3000]}}}} + :nested-child {:child-result [:processed 30] + :grandchild-result {:grandchild [:processed 3000]}}}} result)))))) (deftest test-child-workflow-with-error (testing "Parent handles child workflow errors" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [failing-child (fn [x] - (throw (ex-info "Child failed" {:x x}))) + (let [failing-child (fn [x] + (throw (ex-info "Child failed" {:x x}))) parent-with-error (fn [id] (try (intemporal/run-child-workflow failing-child [id]) {:success true} (catch Exception e - {:error (.getMessage e)})))] - ;; Parent should catch and handle child error - (let [result (intemporal/start-workflow engine - parent-with-error [42])] - (is (match? {:status :completed - :result {:error string?}} - result))))))) + {:error (.getMessage e)}))) + ;; Parent should catch and handle child error + result (intemporal/start-workflow engine + parent-with-error [42])] + (is (match? {:status :completed + :result {:error string?}} + result)))))) (deftest test-multiple-child-workflows (testing "Parent can run multiple child workflows sequentially" @@ -88,11 +87,11 @@ c2 (intemporal/run-child-workflow child-flow [2]) c3 (intemporal/run-child-workflow child-flow [3])] {:children [c1 c2 c3] :id id})) - result (intemporal/start-workflow engine - multi-child-flow [99])] + result (intemporal/start-workflow engine + multi-child-flow [99])] (is (match? {:status :completed :result {:children [{:child-result [:processed 1]} {:child-result [:processed 2]} {:child-result [:processed 3]}] - :id 99}} + :id 99}} result)))))) diff --git a/test/intemporal/tests/signal_test.clj b/test/intemporal/tests/signal_test.clj index 507eabe..b124e2a 100644 --- a/test/intemporal/tests/signal_test.clj +++ b/test/intemporal/tests/signal_test.clj @@ -2,8 +2,7 @@ (:require [intemporal.core :as intemporal] [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m])) + [matcher-combinators.test :refer [match?]])) (defn activity-fn [arg] [:processed arg]) diff --git a/test/intemporal/tests/timer_test.clj b/test/intemporal/tests/timer_test.clj index e335b7a..3aa524b 100644 --- a/test/intemporal/tests/timer_test.clj +++ b/test/intemporal/tests/timer_test.clj @@ -1,10 +1,8 @@ (ns intemporal.tests.timer-test (:require [intemporal.core :as intemporal] [intemporal.internal.activity :as a] - [intemporal.observer :as obs] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m])) + [matcher-combinators.test :refer [match?]])) (defn activity-fn [arg] [:processed arg]) @@ -39,11 +37,8 @@ (testing "Workflow with multiple sleep calls" (intemporal/with-workflow-engine [engine {:threads 2}] (a/register-activity! (:registry engine) #'activity-fn) - (let [logs (atom []) - result (intemporal/start-workflow engine - multi-sleep-flow [789] - :observer (obs/->LoggingObserver logs))] - (clojure.pprint/print-table @logs) + (let [result (intemporal/start-workflow engine + multi-sleep-flow [789])] (is (match? {:status :completed :workflow-id string? :result {:results [[:processed 1] [:processed 2]] From 5aff2427c428b2eee69975aae1523b66406dad44 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 17 Jan 2026 23:26:21 +0000 Subject: [PATCH 44/81] add runonce facility --- src/intemporal/core.clj | 1 - src/intemporal/internal/engine.clj | 1 - src/intemporal/internal/execution.clj | 28 ++++++++++++++++ test/intemporal/tests/replay_check_test.clj | 37 +++++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) delete mode 100644 src/intemporal/internal/engine.clj create mode 100644 test/intemporal/tests/replay_check_test.clj diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index dd3468c..6478dd8 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -278,7 +278,6 @@ (ctx/notify-observer p/on-timer-scheduled (:workflow-id ctx) seq-num fire-at) (throw (error/make-suspension :timer {:seq seq-num :fire-at fire-at})))))) - ;; ============================================================================ ;; Child Workflows ;; ============================================================================ diff --git a/src/intemporal/internal/engine.clj b/src/intemporal/internal/engine.clj deleted file mode 100644 index dfa80d9..0000000 --- a/src/intemporal/internal/engine.clj +++ /dev/null @@ -1 +0,0 @@ -(ns intemporal.internal.engine) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index f19f932..fc25673 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -8,6 +8,8 @@ ;; Workflow Execution Engine ;; ============================================================================ + + (defn execute-workflow-fn [workflow-fn args] (try {:status :completed @@ -448,6 +450,32 @@ pending-events-list observer)))) + +(defn run-once + "Internal: Execute a side-effect thunk only once (not on replay). + Uses a special event marker to track execution. + + This is an internal implementation detail and should not be exposed to users. + Users should wrap side effects in activities for proper determinism. + + This can be used to eg run logging statements, etc" + [thunk] + (ctx/check-cancelled!) + (let [seq-num (ctx/next-seq!) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :run-once-completed seq-num)] + (if existing + ;; Replay: already executed, return cached result + (:result existing) + ;; First time: execute thunk and save result + (let [result (thunk)] + (ctx/add-pending-event! {:event-type :run-once-completed + :seq seq-num + :result result + :timestamp (System/currentTimeMillis)}) + result)))) + (defn run-workflow-internal "Main workflow execution loop - orchestrates replay and execution. diff --git a/test/intemporal/tests/replay_check_test.clj b/test/intemporal/tests/replay_check_test.clj new file mode 100644 index 0000000..17404ef --- /dev/null +++ b/test/intemporal/tests/replay_check_test.clj @@ -0,0 +1,37 @@ +(ns intemporal.tests.replay-check-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.execution :as e] + [intemporal.internal.activity :as a] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]])) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + +(def count (atom 0)) + +;; Parallel workflow demonstrating run-once behavior +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + ;; Use run-once to ensure this only executes on first iteration, not on replays + _ (e/run-once #(swap! count inc)) + prom1 (intemporal/async #(slow 1))] + {:args id + :slow (slow 0) + :results (intemporal/join-all [prom1]) + :id id})) + +(deftest test-log-once-workflow + (testing "run-once facility can be used for any purpose" + (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Register activities + (a/register-activity! (:registry engine) #'slow-activity) + (let [result (intemporal/start-workflow engine + my-parallel-flow [999])] + (is (match? {:status :completed} result)) + (is (= 1 @count)))))) + From 8253987c9f5c6610af6ac3cc8612a2897b7b8eed Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 17 Jan 2026 23:33:25 +0000 Subject: [PATCH 45/81] tidy --- src/intemporal/core.clj | 74 ++++++++++----------- src/intemporal/internal/execution.clj | 66 ++++++++++-------- test/intemporal/tests/replay_check_test.clj | 9 +-- 3 files changed, 77 insertions(+), 72 deletions(-) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 6478dd8..6de80bf 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -26,15 +26,15 @@ effective-retry (or retry-policy (:retry-policy activity-info))] (fn [& args] (ctx/check-cancelled!) - (let [ctx (ctx/current-context) - seq-num (ctx/next-seq!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) ;history @(:history ctx) ;existing (ctx/find-event history :activity-completed seq-num) ;existing-failed (ctx/find-event history :activity-failed seq-num) - store (ctx/current-store) - workflow-id (ctx/current-workflow-id) - existing (p/find-event store workflow-id :activity-completed seq-num) - existing-failed (p/find-event store workflow-id :activity-failed seq-num)] + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :activity-completed seq-num) + existing-failed (p/find-event store workflow-id :activity-failed seq-num)] (cond ;; Replay: return cached result existing @@ -46,23 +46,23 @@ ;; Execute: need to run the activity :else - (let [scheduled-event {:event-type :activity-scheduled - :seq seq-num + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy (when effective-retry - {:max-attempts (:max-attempts effective-retry) - :backoff-ms (:backoff-ms effective-retry)}) - :timestamp (System/currentTimeMillis)}] + :args (vec args) + :timeout-ms effective-timeout + :retry-policy (when effective-retry + {:max-attempts (:max-attempts effective-retry) + :backoff-ms (:backoff-ms effective-retry)}) + :timestamp (System/currentTimeMillis)}] (ctx/add-pending-event! scheduled-event) (ctx/notify-observer p/on-activity-scheduled (:workflow-id ctx) seq-num activity-name (vec args)) - (throw (error/make-suspension :activity {:seq seq-num + (throw (error/make-suspension :activity {:seq seq-num :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy effective-retry})))))))) + :args (vec args) + :timeout-ms effective-timeout + :retry-policy effective-retry})))))))) ;; ============================================================================ ;; Async Support @@ -108,8 +108,8 @@ ;; Need to start - record and try to capture what activity it needs :else (let [start-event {:event-type :async-started - :seq seq-num - :timestamp (System/currentTimeMillis)} + :seq seq-num + :timestamp (System/currentTimeMillis)} start-seq seq-num] (ctx/add-pending-event! start-event) (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) @@ -121,22 +121,22 @@ ;; If thunk completes synchronously (pure computation - first run only), ;; save the completion event immediately with the seq range (ctx/add-pending-event! {:event-type :async-completed - :seq start-seq - :last-seq end-seq - :result result - :timestamp (System/currentTimeMillis)}) + :seq start-seq + :last-seq end-seq + :result result + :timestamp (System/currentTimeMillis)}) (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) (->AsyncHandle start-seq)) (catch Throwable e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution (let [suspension-info (error/suspension-data e)] - (ctx/add-pending-async! {:handle-seq start-seq + (ctx/add-pending-async! {:handle-seq start-seq :activity-name (:activity-name suspension-info) - :activity-seq (:seq suspension-info) - :args (:args suspension-info) - :timeout-ms (:timeout-ms suspension-info) - :retry-policy (:retry-policy suspension-info)}) + :activity-seq (:seq suspension-info) + :args (:args suspension-info) + :timeout-ms (:timeout-ms suspension-info) + :retry-policy (:retry-policy suspension-info)}) ;; Return handle - we'll batch execute later (->AsyncHandle start-seq)) (throw e)))))))) @@ -305,17 +305,17 @@ (throw (error/map->exception (:error existing-failed))) :else - (let [scheduled-event {:event-type :child-workflow-scheduled - :seq seq-num + (let [scheduled-event {:event-type :child-workflow-scheduled + :seq seq-num :child-workflow-id child-wf-id - :args (vec args) - :timestamp (System/currentTimeMillis)}] + :args (vec args) + :timestamp (System/currentTimeMillis)}] (ctx/add-pending-event! scheduled-event) (throw (error/make-suspension :child-workflow - {:seq seq-num - :child-workflow-id child-wf-id - :workflow-fn child-workflow-fn - :args args})))))) + {:seq seq-num + :child-workflow-id child-wf-id + :workflow-fn child-workflow-fn + :args args})))))) ;; ============================================================================ ;; Public API diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index fc25673..8a7c4a0 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -47,13 +47,17 @@ duration (- (System/currentTimeMillis) start)] (when observer (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration}) + {:status :success + :result result + :duration duration}) (catch Exception e (let [duration (- (System/currentTimeMillis) start)] (when observer (p/on-activity-failed observer workflow-id seq-num activity-name (error/throwable->map e) duration)) - {:status :failed :error (error/throwable->map e) :duration duration})))) + {:status :failed + :error (error/throwable->map e) + :duration duration})))) ;; With retry (loop [attempt 1] (let [start (System/currentTimeMillis) @@ -64,7 +68,10 @@ duration (- (System/currentTimeMillis) start)] (when observer (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) - {:status :success :result result :duration duration :attempts attempt}) + {:status :success + :result result + :duration duration + :attempts attempt}) (catch Exception e (let [duration (- (System/currentTimeMillis) start) error-map (error/throwable->map e)] @@ -132,33 +139,34 @@ completion-events (mapcat (fn [async-info result] (when observer - (if (= :success (:status result)) - (p/on-async-completed observer workflow-id - (:handle-seq async-info) (:result result)) - (p/on-async-failed observer workflow-id - (:handle-seq async-info) (:error result)))) + (if (= :success (:status result)) + (p/on-async-completed observer workflow-id + (:handle-seq async-info) (:result result)) + (p/on-async-failed observer workflow-id + (:handle-seq async-info) (:error result)))) (if (= :success (:status result)) - [{:event-type :activity-completed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :result (:result result) - :duration-ms (:duration result) - :timestamp now} - {:event-type :async-completed - :seq (:handle-seq async-info) - :last-seq (:activity-seq async-info) - :result (:result result) - :timestamp now}] - [{:event-type :activity-failed - :seq (:activity-seq async-info) - :activity-name (:activity-name async-info) - :error (:error result) - :timestamp now} - {:event-type :async-failed - :seq (:handle-seq async-info) - :last-seq (:activity-seq async-info) - :error (:error result) - :timestamp now}])) + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result (:result result) + :duration-ms (:duration result) + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :result (:result result) + :timestamp now}] + ;; else + [{:event-type :activity-failed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :error (:error result) + :timestamp now} + {:event-type :async-failed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :error (:error result) + :timestamp now}])) pending-asyncs results)] (p/save-events store workflow-id completion-events))) :continue) diff --git a/test/intemporal/tests/replay_check_test.clj b/test/intemporal/tests/replay_check_test.clj index 17404ef..262fd03 100644 --- a/test/intemporal/tests/replay_check_test.clj +++ b/test/intemporal/tests/replay_check_test.clj @@ -5,10 +5,7 @@ [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) -(defn slow-activity [x] - (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) - (Thread/sleep 1000) - (println (str "slow activity END with " x)) +(defn activity [x] (* x 2)) (def count (atom 0)) @@ -16,7 +13,7 @@ ;; Parallel workflow demonstrating run-once behavior (defn my-parallel-flow [id] (println "Workflow start with id:" id) - (let [slow (intemporal/stub #'slow-activity) + (let [slow (intemporal/stub #'activity) ;; Use run-once to ensure this only executes on first iteration, not on replays _ (e/run-once #(swap! count inc)) prom1 (intemporal/async #(slow 1))] @@ -29,7 +26,7 @@ (testing "run-once facility can be used for any purpose" (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] ;; Register activities - (a/register-activity! (:registry engine) #'slow-activity) + (a/register-activity! (:registry engine) #'activity) (let [result (intemporal/start-workflow engine my-parallel-flow [999])] (is (match? {:status :completed} result)) From 36588c4f5bf2f4f268bfd0721ee80657d874f1fd Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 18:00:13 +0000 Subject: [PATCH 46/81] add race --- .gitignore | 1 + test/intemporal/tests/async_test.clj | 30 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/.gitignore b/.gitignore index f47e31c..de8d52a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ coverage/ .calva/ .venv/ memory-bank/ +.claude diff --git a/test/intemporal/tests/async_test.clj b/test/intemporal/tests/async_test.clj index 1dacf9d..3c3557e 100644 --- a/test/intemporal/tests/async_test.clj +++ b/test/intemporal/tests/async_test.clj @@ -10,6 +10,12 @@ (println (str "slow activity END with " x)) (* x 2)) +(defn sleep-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep (long x)) + (println (str "slow activity END with " x)) + (* x 2)) + ;; Parallel workflow (defn my-parallel-flow [id] (println "Workflow start with id:" id) @@ -25,6 +31,17 @@ :results (intemporal/join-all [prom1 prom2 prom3 prom4]) :id id})) +;; Race workflow +(defn my-race-flow [id] + (println "Workflow start with id:" id) + (let [sleep (intemporal/stub #'sleep-activity) + prom1 (intemporal/async #(sleep 100)) + prom2 (intemporal/async #(sleep 4000))] + (println "After async calls - all scheduled") + {:race-result (intemporal/join-any [prom1 prom2]) + :id id})) + +#_ (deftest test-async-workflow (testing "Async workflow" (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] @@ -36,3 +53,16 @@ :result {:args 999, :slow 0, :prom4 4, :results [2 4 6 4], :id 999}} result)))))) + +(deftest test-race-workflow + (testing "Async race workflow" + (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Register activities + (a/register-activity! (:registry engine) #'sleep-activity) + (let [result (intemporal/start-workflow engine + my-race-flow [999])] + (is (match? {:status :completed + :result {:race-result {:index 0, :result 200} + :id 999}} + result)))))) + From e60e5265f5c07d6707a0043646e4f94b8cc2a018 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 18:07:32 +0000 Subject: [PATCH 47/81] dont need to register activity --- test/intemporal/tests/async_test.clj | 8 +- test/intemporal/tests/cancellation_test.clj | 4 - test/intemporal/tests/child_workflow_test.clj | 3 - test/intemporal/tests/error_test.clj | 94 +++++++++---------- test/intemporal/tests/replay_check_test.clj | 1 - test/intemporal/tests/signal_test.clj | 4 - test/intemporal/tests/timer_test.clj | 3 - 7 files changed, 50 insertions(+), 67 deletions(-) diff --git a/test/intemporal/tests/async_test.clj b/test/intemporal/tests/async_test.clj index 3c3557e..1869d98 100644 --- a/test/intemporal/tests/async_test.clj +++ b/test/intemporal/tests/async_test.clj @@ -41,12 +41,11 @@ {:race-result (intemporal/join-any [prom1 prom2]) :id id})) -#_ + (deftest test-async-workflow (testing "Async workflow" (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] - ;; Register activities - (a/register-activity! (:registry engine) #'slow-activity) + ;; Activities are automatically registered via stub call (let [result (intemporal/start-workflow engine my-parallel-flow [999])] (is (match? {:status :completed @@ -57,8 +56,7 @@ (deftest test-race-workflow (testing "Async race workflow" (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] - ;; Register activities - (a/register-activity! (:registry engine) #'sleep-activity) + ;; Activities are automatically registered via stub call (let [result (intemporal/start-workflow engine my-race-flow [999])] (is (match? {:status :completed diff --git a/test/intemporal/tests/cancellation_test.clj b/test/intemporal/tests/cancellation_test.clj index 77f88f3..07bdefa 100644 --- a/test/intemporal/tests/cancellation_test.clj +++ b/test/intemporal/tests/cancellation_test.clj @@ -29,7 +29,6 @@ (deftest test-workflow-cancellation (testing "Workflow can be cancelled mid-execution" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'slow-activity) (let [wf-id "cancel-test" result-future (future (intemporal/start-workflow engine @@ -49,7 +48,6 @@ (deftest test-cancellation-with-timer (testing "Workflow cancelled while waiting on timer" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'slow-activity) (let [wf-id "cancel-timer-test" result-future (future (intemporal/start-workflow engine @@ -68,7 +66,6 @@ (deftest test-cancel-before-start (testing "Workflow cancelled before it starts" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'slow-activity) (let [wf-id "cancel-before-start"] ;; Cancel before starting (intemporal/cancel-workflow (:store engine) wf-id) @@ -85,7 +82,6 @@ (deftest test-workflow-status-after-cancel (testing "Workflow status is cancelled after cancellation" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'slow-activity) (let [wf-id "cancel-status-test" result-future (future (intemporal/start-workflow engine diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.clj index 033bfea..6030d94 100644 --- a/test/intemporal/tests/child_workflow_test.clj +++ b/test/intemporal/tests/child_workflow_test.clj @@ -39,7 +39,6 @@ (deftest test-simple-child-workflow (testing "Parent workflow can run child workflow" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine parent-flow [5])] (is (match? {:status :completed @@ -51,7 +50,6 @@ (deftest test-nested-child-workflows (testing "Child workflows can have their own child workflows" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine nested-parent-flow [3])] (is (match? {:status :completed @@ -81,7 +79,6 @@ (deftest test-multiple-child-workflows (testing "Parent can run multiple child workflows sequentially" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [multi-child-flow (fn [id] (let [c1 (intemporal/run-child-workflow child-flow [1]) c2 (intemporal/run-child-workflow child-flow [2]) diff --git a/test/intemporal/tests/error_test.clj b/test/intemporal/tests/error_test.clj index 647a3ed..2428702 100644 --- a/test/intemporal/tests/error_test.clj +++ b/test/intemporal/tests/error_test.clj @@ -18,93 +18,94 @@ ;; Workflow with retry (defn retry-flow [id] - (let [flaky (intemporal/stub #'flaky-activity)] + (let [flaky (intemporal/stub #'flaky-activity :retry-policy (a/make-retry-policy :max-attempts 5 + :initial-backoff-ms 10))] {:result (flaky id)})) -;; Workflow that catches errors -(defn error-handling-flow [id] - (let [failing (intemporal/stub #'always-fails-activity)] - (try - {:result (failing id) :error false} - (catch Exception e - {:result nil :error true :message (.getMessage e)})))) - -;; Workflow with activity that fails after retry -(defn failing-retry-flow [id] - (let [failing (intemporal/stub #'always-fails-activity)] - {:result (failing id)})) - (deftest test-activity-retry-succeeds (testing "Activity succeeds after retries" (intemporal/with-workflow-engine [engine {:threads 2}] (reset! attempt-counter 0) - (a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy :max-attempts 5 - :initial-backoff-ms 10)) (let [result (intemporal/start-workflow engine retry-flow [42])] - (is (match? {:status :completed + (is (match? {:status :completed :workflow-id string? - :result {:result 126}} + :result {:result 126}} result)) ;; Should have attempted 3 times (is (= 3 @attempt-counter)))))) +;; Workflow with activity that fails after retry +(defn failing-retry-flow [id] + (let [failing (intemporal/stub #'always-fails-activity + :retry-policy (a/make-retry-policy :max-attempts 3 + :initial-backoff-ms 10))] + {:result (failing id)})) + (deftest test-activity-retry-exhausted (testing "Activity fails after exhausting retries" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'always-fails-activity - :retry-policy (a/make-retry-policy :max-attempts 3 - :initial-backoff-ms 10)) (let [result (intemporal/start-workflow engine failing-retry-flow [99])] - (is (match? {:status :failed + (is (match? {:status :failed :workflow-id string? - :error (m/embeds {:message "Activity failed" - :data (m/embeds {:activity-name string?})})} + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} result)))))) + +;; Workflow that catches errors +(defn error-handling-flow [id] + (let [failing (intemporal/stub #'always-fails-activity)] + (try + {:result (failing id) :error false} + (catch Exception e + {:result nil :error true :message (.getMessage e)})))) + (deftest test-workflow-error-handling (testing "Workflow can catch and handle activity errors" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'always-fails-activity) (let [result (intemporal/start-workflow engine error-handling-flow [123])] - (is (match? {:status :completed + (is (match? {:status :completed :workflow-id string? - :result {:result nil - :error true - :message string?}} + :result {:result nil + :error true + :message string?}} result)))))) (deftest test-no-retry-policy (testing "Activity without retry policy fails immediately" (intemporal/with-workflow-engine [engine {:threads 2}] ;; Register without retry policy - (a/register-activity! (:registry engine) #'always-fails-activity) (let [result (intemporal/start-workflow engine failing-retry-flow [456])] - (is (match? {:status :failed + (is (match? {:status :failed :workflow-id string? - :error (m/embeds {:message "Activity failed" - :data (m/embeds {:activity-name string?})})} + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} result)))))) + +;; Workflow with retry +(defn retry-flow2 [id] + (let [flaky (intemporal/stub #'flaky-activity + :retry-policy (a/make-retry-policy + :max-attempts 5 + :initial-backoff-ms 10 + :backoff-multiplier 2.0))] + {:result (flaky id)})) + (deftest test-retry-with-exponential-backoff (testing "Retry policy applies exponential backoff" (intemporal/with-workflow-engine [engine {:threads 2}] (reset! attempt-counter 0) - (a/register-activity! (:registry engine) #'flaky-activity - :retry-policy (a/make-retry-policy - :max-attempts 5 - :initial-backoff-ms 10 - :backoff-multiplier 2.0)) (let [start-time (System/currentTimeMillis) - result (intemporal/start-workflow engine retry-flow [42]) - elapsed (- (System/currentTimeMillis) start-time)] - (is (match? {:status :completed + result (intemporal/start-workflow engine retry-flow2 [42]) + elapsed (- (System/currentTimeMillis) start-time)] + (is (match? {:status :completed :workflow-id string? - :result {:result 126}} + :result {:result 126}} result)) ;; With backoff 10ms, 20ms, we expect at least 30ms (is (>= elapsed 30)))))) @@ -112,11 +113,10 @@ (deftest test-error-details-preserved (testing "Error details are preserved in workflow result" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'always-fails-activity) (let [result (intemporal/start-workflow engine failing-retry-flow [789])] - (is (match? {:status :failed + (is (match? {:status :failed :workflow-id string? - :error (m/embeds {:message "Activity failed" - :data (m/embeds {:activity-name "intemporal.tests.error-test/always-fails-activity"})})} + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name "intemporal.tests.error-test/always-fails-activity"})})} result)))))) diff --git a/test/intemporal/tests/replay_check_test.clj b/test/intemporal/tests/replay_check_test.clj index 262fd03..ed3c8d3 100644 --- a/test/intemporal/tests/replay_check_test.clj +++ b/test/intemporal/tests/replay_check_test.clj @@ -26,7 +26,6 @@ (testing "run-once facility can be used for any purpose" (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] ;; Register activities - (a/register-activity! (:registry engine) #'activity) (let [result (intemporal/start-workflow engine my-parallel-flow [999])] (is (match? {:status :completed} result)) diff --git a/test/intemporal/tests/signal_test.clj b/test/intemporal/tests/signal_test.clj index b124e2a..b2618da 100644 --- a/test/intemporal/tests/signal_test.clj +++ b/test/intemporal/tests/signal_test.clj @@ -27,7 +27,6 @@ (deftest test-signal-blocking (testing "Workflow blocks until signal is sent" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [wf-id "signal-test" result-future (future (intemporal/start-workflow engine @@ -48,7 +47,6 @@ (deftest test-signal-timeout-received (testing "Signal received before timeout" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [wf-id "signal-timeout-test" result-future (future (intemporal/start-workflow engine @@ -65,7 +63,6 @@ (deftest test-signal-timeout-expired (testing "Signal times out when not received" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine signal-timeout-flow [789 100])] (is (match? {:status :completed @@ -76,7 +73,6 @@ (deftest test-multiple-signals (testing "Multiple signals can be sent to same workflow" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [wf-id "multi-signal-test"] ;; Send signals before workflow starts (intemporal/send-signal (:store engine) wf-id "approval" {:user "alice"}) diff --git a/test/intemporal/tests/timer_test.clj b/test/intemporal/tests/timer_test.clj index 3aa524b..31c2ac4 100644 --- a/test/intemporal/tests/timer_test.clj +++ b/test/intemporal/tests/timer_test.clj @@ -25,7 +25,6 @@ (deftest test-simple-timer (testing "Workflow with timer completes after sleep" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine timed-flow [456])] (is (match? {:status :completed @@ -36,7 +35,6 @@ (deftest test-multiple-timers (testing "Workflow with multiple sleep calls" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [result (intemporal/start-workflow engine multi-sleep-flow [789])] (is (match? {:status :completed @@ -48,7 +46,6 @@ (deftest test-timer-replay (testing "Timer workflow is deterministic on replay" (intemporal/with-workflow-engine [engine {:threads 2}] - (a/register-activity! (:registry engine) #'activity-fn) (let [wf-id "timer-replay-test" result1 (intemporal/start-workflow engine timed-flow [100] From 79a00deaa47c002f763c03b463dc42985aec8ff5 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 18:13:37 +0000 Subject: [PATCH 48/81] lint --- test/intemporal/tests/async_test.clj | 1 - test/intemporal/tests/cancellation_test.clj | 1 - test/intemporal/tests/child_workflow_test.clj | 1 - test/intemporal/tests/replay_check_test.clj | 7 +++---- test/intemporal/tests/signal_test.clj | 1 - test/intemporal/tests/timer_test.clj | 1 - 6 files changed, 3 insertions(+), 9 deletions(-) diff --git a/test/intemporal/tests/async_test.clj b/test/intemporal/tests/async_test.clj index 1869d98..eddd580 100644 --- a/test/intemporal/tests/async_test.clj +++ b/test/intemporal/tests/async_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.async-test (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) diff --git a/test/intemporal/tests/cancellation_test.clj b/test/intemporal/tests/cancellation_test.clj index 07bdefa..d81f9c0 100644 --- a/test/intemporal/tests/cancellation_test.clj +++ b/test/intemporal/tests/cancellation_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.cancellation-test (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] [matcher-combinators.matchers :as m])) diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.clj index 6030d94..f1d2f3c 100644 --- a/test/intemporal/tests/child_workflow_test.clj +++ b/test/intemporal/tests/child_workflow_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.child-workflow-test (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) diff --git a/test/intemporal/tests/replay_check_test.clj b/test/intemporal/tests/replay_check_test.clj index ed3c8d3..4820d73 100644 --- a/test/intemporal/tests/replay_check_test.clj +++ b/test/intemporal/tests/replay_check_test.clj @@ -1,21 +1,20 @@ (ns intemporal.tests.replay-check-test (:require [intemporal.core :as intemporal] [intemporal.internal.execution :as e] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) (defn activity [x] (* x 2)) -(def count (atom 0)) +(def total (atom 0)) ;; Parallel workflow demonstrating run-once behavior (defn my-parallel-flow [id] (println "Workflow start with id:" id) (let [slow (intemporal/stub #'activity) ;; Use run-once to ensure this only executes on first iteration, not on replays - _ (e/run-once #(swap! count inc)) + _ (e/run-once #(swap! total inc)) prom1 (intemporal/async #(slow 1))] {:args id :slow (slow 0) @@ -29,5 +28,5 @@ (let [result (intemporal/start-workflow engine my-parallel-flow [999])] (is (match? {:status :completed} result)) - (is (= 1 @count)))))) + (is (= 1 @total)))))) diff --git a/test/intemporal/tests/signal_test.clj b/test/intemporal/tests/signal_test.clj index b2618da..14b76cb 100644 --- a/test/intemporal/tests/signal_test.clj +++ b/test/intemporal/tests/signal_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.signal-test (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) diff --git a/test/intemporal/tests/timer_test.clj b/test/intemporal/tests/timer_test.clj index 31c2ac4..75e65e4 100644 --- a/test/intemporal/tests/timer_test.clj +++ b/test/intemporal/tests/timer_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.timer-test (:require [intemporal.core :as intemporal] - [intemporal.internal.activity :as a] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) From 0de5b14666647f1498f5cfe04173ba490d4616fd Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 18:34:44 +0000 Subject: [PATCH 49/81] Add tracing test --- docker/fdb.cluster | 2 +- src/intemporal/core.clj | 15 ++- src/intemporal/observer.clj | 140 ++++++++++++++++++++++++- test/intemporal/tests/tracing_test.clj | 52 +++++++++ 4 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 test/intemporal/tests/tracing_test.clj diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 5c41e53..1e658b5 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@192.168.107.3:4500 +docker:docker@172.19.0.2:4500 diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 6de80bf..67383b1 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -342,6 +342,8 @@ :or {max-iterations 1000}}] (let [wf-id (or workflow-id (str (random-uuid))) resume-promise-atom (atom nil) + ;; TODO fixme this could be passed via the `with-workflow-engine` macro + observer (or observer (get engine :observer)) wake-fn (fn wake-fn-impl [] (try (when observer @@ -460,8 +462,9 @@ - :threads - Number of executor threads (default: 4) - :scheduler-threads - Number of scheduler threads (default: 2) - :default-timeout-ms - Default activity timeout (default: 30000) - - :enable-logging - Enable logging observer (default: false)" - [& {:keys [threads scheduler-threads default-timeout-ms enable-logging] + - :enable-logging - Enable logging observer (default: false) + - :observer - Custom observer instance (overrides :enable-logging)" + [& {:keys [threads scheduler-threads default-timeout-ms enable-logging observer] :or {threads 4 scheduler-threads 2 default-timeout-ms 30000 @@ -474,9 +477,11 @@ :default-timeout-ms default-timeout-ms) :scheduler (runtime/make-scheduler :threads scheduler-threads) :registry registry - :observer (if enable-logging - (obs/make-logging-observer log-atom) - (obs/noop-observer)) + ;; opts + :observer (or observer + (if enable-logging + (obs/make-logging-observer log-atom) + (obs/noop-observer))) :log (when enable-logging log-atom)})) (defn shutdown-engine diff --git a/src/intemporal/observer.clj b/src/intemporal/observer.clj index 1cb2edf..eba8c72 100644 --- a/src/intemporal/observer.clj +++ b/src/intemporal/observer.clj @@ -1,5 +1,6 @@ (ns intemporal.observer - (:require [intemporal.protocol :as p])) + (:require [intemporal.protocol :as p] + [steffan-westcott.clj-otel.api.trace.span :as otspan])) ;; ============================================================================ ;; Default Observer (Logging) @@ -138,4 +139,139 @@ (on-signal-received [_ _ _ _]) (on-workflow-completed [_ _ _]) (on-workflow-failed [_ _ _]) - (on-workflow-cancelled [_ _]))) \ No newline at end of file + (on-workflow-cancelled [_ _]))) + +;; ============================================================================ +;; OpenTelemetry Observer +;; ============================================================================ + +(defrecord OpenTelemetryObserver [spans-atom] + p/IWorkflowObserver + (on-workflow-started [_ workflow-id args] + (let [span-ctx (otspan/new-span! {:name (str "workflow:" workflow-id) + :attributes {:intemporal/workflow-id workflow-id + :intemporal/args (pr-str args)}})] + (swap! spans-atom assoc-in [:workflows workflow-id] span-ctx))) + + (on-workflow-suspended [_ workflow-id suspension-type] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "workflow.suspended" + :attributes {:intemporal/suspension-type (name suspension-type)}}}))) + + (on-workflow-resumed [_ workflow-id] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "workflow.resumed" + :attributes {:intemporal/resumed true}}}))) + + (on-activity-scheduled [_ workflow-id seq-num activity-name args] + (when-let [parent-ctx (get-in @spans-atom [:workflows workflow-id])] + (let [span-ctx (otspan/new-span! {:name (str "activity:" activity-name) + :parent parent-ctx + :attributes {:intemporal/workflow-id workflow-id + :intemporal/seq seq-num + :intemporal/activity-name activity-name + :intemporal/args (pr-str args)}})] + (swap! spans-atom assoc-in [:activities workflow-id seq-num] span-ctx)))) + + (on-activity-started [_ workflow-id seq-num activity-name] + (when-let [span-ctx (get-in @spans-atom [:activities workflow-id seq-num])] + (otspan/add-span-data! {:context span-ctx + :event {:name "activity.started" + :attributes {:intemporal/started true}}}))) + + (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] + (when-let [span-ctx (get-in @spans-atom [:activities workflow-id seq-num])] + (otspan/add-span-data! {:context span-ctx + :event {:name "activity.completed" + :attributes {:intemporal/result (pr-str result) + :intemporal/duration-ms duration-ms}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update-in [:activities workflow-id] dissoc seq-num))) + + (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] + (when-let [span-ctx (get-in @spans-atom [:activities workflow-id seq-num])] + (otspan/add-span-data! {:context span-ctx + :event {:name "activity.failed" + :attributes {:intemporal/error (pr-str error) + :intemporal/duration-ms duration-ms}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update-in [:activities workflow-id] dissoc seq-num))) + + (on-async-started [_ workflow-id seq-num] + (when-let [parent-ctx (get-in @spans-atom [:workflows workflow-id])] + (let [span-ctx (otspan/new-span! {:name (str "async:" seq-num) + :parent parent-ctx + :attributes {:intemporal/workflow-id workflow-id + :intemporal/seq seq-num}})] + (swap! spans-atom assoc-in [:async workflow-id seq-num] span-ctx)))) + + (on-async-completed [_ workflow-id seq-num result] + (when-let [span-ctx (get-in @spans-atom [:async workflow-id seq-num])] + (otspan/add-span-data! {:context span-ctx + :event {:name "async.completed" + :attributes {:intemporal/result (pr-str result)}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update-in [:async workflow-id] dissoc seq-num))) + + (on-async-failed [_ workflow-id seq-num error] + (when-let [span-ctx (get-in @spans-atom [:async workflow-id seq-num])] + (otspan/add-span-data! {:context span-ctx + :event {:name "async.failed" + :attributes {:intemporal/error (pr-str error)}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update-in [:async workflow-id] dissoc seq-num))) + + (on-timer-scheduled [_ workflow-id seq-num fire-at] + (when-let [parent-ctx (get-in @spans-atom [:workflows workflow-id])] + (let [span-ctx (otspan/new-span! {:name (str "timer:" seq-num) + :parent parent-ctx + :attributes {:intemporal/workflow-id workflow-id + :intemporal/seq seq-num + :intemporal/fire-at fire-at}})] + (swap! spans-atom assoc-in [:timers workflow-id seq-num] span-ctx)))) + + (on-timer-fired [_ workflow-id seq-num] + (when-let [span-ctx (get-in @spans-atom [:timers workflow-id seq-num])] + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update-in [:timers workflow-id] dissoc seq-num))) + + (on-signal-received [_ workflow-id signal-name payload] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "signal.received" + :attributes {:intemporal/signal-name signal-name + :intemporal/signal-payload (pr-str payload)}}}))) + + (on-workflow-completed [_ workflow-id result] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "workflow.completed" + :attributes {:intemporal/result (pr-str result)}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update :workflows dissoc workflow-id))) + + (on-workflow-failed [_ workflow-id error] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "workflow.failed" + :attributes {:intemporal/error (pr-str error)}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update :workflows dissoc workflow-id))) + + (on-workflow-cancelled [_ workflow-id] + (when-let [span-ctx (get-in @spans-atom [:workflows workflow-id])] + (otspan/add-span-data! {:context span-ctx + :event {:name "workflow.cancelled" + :attributes {:intemporal/cancelled true}}}) + (otspan/end-span! {:context span-ctx}) + (swap! spans-atom update :workflows dissoc workflow-id)))) + +(defn make-otel-observer + "Create an OpenTelemetry observer that emits traces for workflows and activities" + [] + (->OpenTelemetryObserver (atom {:workflows {} + :activities {} + :async {} + :timers {}}))) \ No newline at end of file diff --git a/test/intemporal/tests/tracing_test.clj b/test/intemporal/tests/tracing_test.clj new file mode 100644 index 0000000..a7d10c8 --- /dev/null +++ b/test/intemporal/tests/tracing_test.clj @@ -0,0 +1,52 @@ +(ns intemporal.tests.tracing-test + "Tests OpenTelemetry tracing integration. + + This test demonstrates how to use the OpenTelemetry observer to emit + distributed traces for workflows and activities. The observer creates: + - A span for each workflow execution + - A child span for each activity within the workflow + - Events for workflow lifecycle (suspended, resumed, completed, etc.) + - Events for activity lifecycle (started, completed, failed, etc.) + + To view traces, ensure you have an OpenTelemetry collector running + at http://localhost:4317 (or configure via OTEL_EXPORTER_OTLP_ENDPOINT)." + (:require [intemporal.core :as intemporal] + [intemporal.observer :as obs] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]])) + +(defn slow-activity [x] + (println (str "slow activity START with " x " on thread " (.getName (Thread/currentThread)))) + (Thread/sleep 1000) + (println (str "slow activity END with " x)) + (* x 2)) + + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + prom1 (intemporal/async #(slow 1)) + prom2 (intemporal/async #(slow 2)) + prom3 (intemporal/async #(slow 3)) + prom4 (intemporal/async #(+ 2 2))] + (println "After async calls - all scheduled") + {:args id + :slow (slow 0) + :prom4 (intemporal/join prom4) + :results (intemporal/join-all [prom1 prom2 prom3 prom4]) + :id id})) + + +(deftest test-async-workflow + (testing "Async workflow with OpenTelemetry tracing" + (let [otel-observer (obs/make-otel-observer)] + (intemporal/with-workflow-engine [engine {:threads 4 :observer otel-observer}] + ;; Activities are automatically registered via stub call + (let [result (intemporal/start-workflow engine + my-parallel-flow [999])] + (is (match? {:status :completed + :result {:args 999, :slow 0, :prom4 4, :results [2 4 6 4], :id 999}} + result)) + ;; Verify spans were created + (println "OpenTelemetry observer test completed - spans were emitted to OTel backend")))))) From 108c325298299106daaca3d686ac34c810d1242d Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 22:51:43 +0000 Subject: [PATCH 50/81] cleanup --- src/definition.md | 47 --- src/improvements.md | 487 -------------------------- src/intemporal/internal/execution.clj | 135 +++---- src/intemporal/internal/macros.cljc | 108 ++++++ 4 files changed, 161 insertions(+), 616 deletions(-) delete mode 100644 src/definition.md delete mode 100644 src/improvements.md create mode 100644 src/intemporal/internal/macros.cljc diff --git a/src/definition.md b/src/definition.md deleted file mode 100644 index fa7ddbc..0000000 --- a/src/definition.md +++ /dev/null @@ -1,47 +0,0 @@ -# Definition - -Write a minimal core for a deterministic workflow runner in clojure - -- activities are plain functions -- workflows are plain functions -- inside workflows, activities are stubbed -- the workflow runner shall accept as arguments: a data store (eg memory store), and an activity executor -- both the store and executor should have protocols -- workflows can also run activities asynchronously -- should support signals and timers (sleep) - -To suspend execution, we shall use an exception-based mechanism. - -History should be deterministic and linear. - -When starting a workflow, we shall use a dynamic var to hold all runtime data such as history, etc. - -The code should be in a single namespace, in a single file - -# Example - -```clojure - -(defn activity-fn [arg] - (println "activity called" arg) - [:some arg]) - -(defn my-flow [id] - (println "Workflow start") - (let [act (stub activity-fn) - prom (async #(act 2))] - - {:status :shipped - :res (act 1) - :prom (join prom)})) - -;; then, start the workflow -(start-workflow (->InMemoryStore (atom {})) - (reify IActivityExecutor - (execute-activity [_ actname args] - (let [act (get @activity-registry actname)] - (apply act args)))) - my-flow - [123] - "my-flow") -``` \ No newline at end of file diff --git a/src/improvements.md b/src/improvements.md deleted file mode 100644 index 1fdc9dd..0000000 --- a/src/improvements.md +++ /dev/null @@ -1,487 +0,0 @@ -# intemporal Core Namespace Improvements - -Based on analysis of `src/intemporal/core.clj` (948 lines) - ---- - -## Critical Issues (Fix Immediately) - -### 1. Concurrency bug in wake-fn (High Severity) -**Location:** [core.clj:807-816](src/intemporal/core.clj#L807-L816) - -**Problem:** Multiple threads could call `wake-fn` simultaneously causing data corruption. The promise delivery is not thread-safe and could happen multiple times. - -**Impact:** Race conditions when timers fire, workflow could resume multiple times concurrently. - -**Fix:** -```clojure -;; Add thread-safe promise delivery -(let [delivered? (atom false) - wake-fn (fn [] - (when (compare-and-set! delivered? false true) - (try - (when observer - (p/on-workflow-resumed observer wf-id)) - (deliver resume-promise - (run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations})) - (catch Exception e - (deliver resume-promise {:status :failed :error e})))))] -``` - ---- - -### 2. Race condition in signal consumption (High Severity) -**Location:** [core.clj:511, 530, 555](src/intemporal/core.clj#L511) - -**Problem:** Signal is consumed in one operation but recorded in another. Between these steps, another thread could observe inconsistent state. - -```clojure -;; Step 1: Consume -(if-let [signal-data (p/consume-signal store workflow-id signal-name)] - ;; Step 2: Record (not atomic with step 1!) - (do - (p/save-event store workflow-id {:event-type :signal-wait-completed ...}) -``` - -**Impact:** Concurrent workflow resumptions could see signal consumed but no event recorded. - -**Fix:** Add atomic consume-and-record operation at the protocol level: -```clojure -(defprotocol IStore - (consume-and-record-signal [store workflow-id signal-name event] - "Atomically consume signal and record event")) -``` - ---- - -### 3. Lost activity seq & retry-policy in async completion (High Severity) -**Location:** [core.clj:438-443](src/intemporal/core.clj#L438-L443) - -**Problem:** When building activities for parallel execution, the `:retry-policy` field is dropped: - -```clojure -(let [activities (mapv (fn [{:keys [activity-name args timeout-ms]}] - {:activity-name activity-name - :args args - :timeout-ms timeout-ms}) ;; ❌ retry-policy LOST! - pending-asyncs) -``` - -**Impact:** -- Retry policies in async activities are silently ignored -- If executor returns results out-of-order, events get mismatched -- No protection against partial failures - -**Fix:** Pass complete async-info to executor: -```clojure -;; In core.clj -(let [results (p/execute-activities-parallel executor pending-asyncs)] - -;; In runtime.clj - update execute-activities-parallel to handle retry-policy -(execute-activities-parallel [_ activities] - (let [futures (mapv (fn [{:keys [activity-name args timeout-ms retry-policy]}] - ;; Handle retry-policy in parallel execution -``` - ---- - -## High Priority - -### 4. Remove dead commented code (Medium Severity) -**Locations:** Lines 30-32, 79-82, 150-152, 183-184, 221-222, 238-239, 264-265, 292-294 - -**Problem:** Multiple functions contain commented-out code that retrieves history from an atom: -```clojure -;history @(:history ctx) -;existing (ctx/find-event history :activity-completed seq-num) -``` - -**Impact:** Creates confusion about actual implementation, technical debt from incomplete refactoring. - -**Fix:** Delete all commented code blocks. If history lookup from context is needed, implement proper caching. - ---- - -### 5. Missing validation in resume-workflow (Medium Severity) -**Location:** [core.clj:836-859](src/intemporal/core.clj#L836-L859) - -**Problem:** `resume-workflow` doesn't validate that workflow-fn/args match the original workflow. Users could call: -```clojure -(resume-workflow engine wf-id different-fn different-args) -``` - -**Impact:** Replay could execute wrong code with wrong arguments, leading to data corruption. - -**Fix:** -```clojure -(defn resume-workflow [engine workflow-id workflow-fn args & opts] - (let [history (p/load-history (:store engine) workflow-id) - started-event (first (filter #(= :workflow-started (:event-type %)) history))] - (when started-event - (when (not= (vec args) (:args started-event)) - (throw (ex-info "Resume args don't match original workflow" - {:original (:args started-event) - :provided args})))) - ;; Continue with resume... -``` - ---- - -### 6. Extract duplicate event lookup pattern (Low-Medium Severity) -**Locations:** Repeated 8+ times throughout file - -**Problem:** Same pattern repeated everywhere: -```clojure -(let [store (ctx/current-store) - workflow-id (ctx/current-workflow-id) - existing (p/find-event store workflow-id event-type seq-num)] -``` - -**Impact:** Code duplication, harder to maintain. - -**Fix:** Create helper function: -```clojure -(defn- get-existing-event [event-type seq-num] - (p/find-event (ctx/current-store) (ctx/current-workflow-id) event-type seq-num)) - -;; Usage: -(let [existing (get-existing-event :activity-completed seq-num)] -``` - ---- - -### 7. Missing validation in join-any (Low-Medium Severity) -**Location:** [core.clj:175-208](src/intemporal/core.clj#L175-L208) - -**Problem:** No validation that `handles` vector is non-empty. Empty vector causes NullPointerException: -```clojure -(let [completed-idx (first (keep-indexed ...))] ;; returns nil - (nth handles completed-idx)) ;; NPE! -``` - -**Fix:** -```clojure -(defn join-any [handles] - (when (empty? handles) - (throw (ex-info "join-any requires at least one handle" {}))) - (ctx/check-cancelled!) - ;; Continue... -``` - ---- - -## Medium Priority - -### 8. Performance: Inefficient history loading (Medium Severity) -**Location:** [core.clj:648](src/intemporal/core.clj#L648) - -**Problem:** History loaded from store on every iteration: -```clojure -(loop [iteration 0] - ... - (let [history (p/load-history store workflow-id) ;; Every iteration! -``` - -**Impact:** For deep workflows with long histories, this loads entire history repeatedly. - -**Fix:** Cache history and reload only when new events expected: -```clojure -(defn- run-workflow-internal [...] - (let [history-cache (atom nil)] - (loop [iteration 0] - (let [history (or @history-cache - (reset! history-cache (p/load-history store workflow-id))) -``` - ---- - -### 9. Unhandled observer exceptions (Medium Severity) -**Location:** [core.clj:449-454](src/intemporal/core.clj#L449-L454) - -**Problem:** Observer calls not wrapped in try-catch: -```clojure -(when observer - (if (= :success (:status result)) - (p/on-async-completed observer ...) ;; Could throw! - (p/on-async-failed observer ...))) ;; Could throw! -``` - -**Impact:** If observer throws, interrupts event creation and leaves workflow inconsistent. - -**Fix:** -```clojure -(when observer - (try - (if (= :success (:status result)) - (p/on-async-completed observer ...) - (p/on-async-failed observer ...)) - (catch Exception e - (println "Observer error:" (.getMessage e))))) -``` - ---- - -### 10. Inconsistent return types (Low-Medium Severity) -**Location:** [core.clj:662-780](src/intemporal/core.clj#L662-L780) - -**Problem:** Different status returns have different shaped maps: -- `:completed` → `{:status :completed :result ...}` -- `:cancelled` → `{:status :cancelled :workflow-id ...}` -- `:failed` → `{:status :failed :error ...}` -- `:waiting-timer` → `{:status :waiting-timer :workflow-id ...}` - -**Impact:** Inconsistent API, harder to work with results. - -**Fix:** Normalize all return maps: -```clojure -{:status :completed/:cancelled/:failed/:waiting-timer - :workflow-id workflow-id ;; Always present - :result (when completed) result - :error (when failed) error} -``` - ---- - -### 11. Missing error context in child workflow failures (Low-Medium Severity) -**Location:** [core.clj:617-621](src/intemporal/core.clj#L617-L621) - -**Problem:** Error only contains status, not actual error details: -```clojure -:error {:status (:status result)} ;; Only status! -``` - -Compare to actual exception handling at line 627: -```clojure -:error (error/throwable->map e) ;; Full error context -``` - -**Fix:** -```clojure -:error (when-let [err (:error result)] - (if (map? err) err (error/throwable->map err))) -``` - ---- - -## Architectural Improvements - -### 12. Separate replay from execution logic (High Priority) -**Location:** [core.clj:631-780](src/intemporal/core.clj#L631-L780) - -**Problem:** `run-workflow-internal` is 150+ lines mixing: -1. Workflow replaying logic (loading history, checking cached results) -2. Workflow execution logic (running function, handling suspension) -3. External service orchestration (processing asyncs, timers, signals) - -**Impact:** Hard to understand, test, and maintain. - -**Fix:** Separate concerns into focused functions: -```clojure -(defn- replay-workflow-fn [workflow-fn args history] - ;; Determine execution path based on history - ) - -(defn- handle-suspension [engine suspension-type suspension-data pending-events] - ;; Dispatch to appropriate handler - ) - -(defn- run-workflow-internal [engine workflow-id workflow-fn args options] - ;; Orchestrate the above - ) -``` - ---- - -### 13. Extract retry logic (Medium Priority) -**Location:** [core.clj:348-401](src/intemporal/core.clj#L348-L401) - -**Problem:** `execute-with-retry` is 50+ lines with nested loop. Retry logic tightly coupled to activity execution. - -**Fix:** Extract into separate function: -```clojure -(defn- execute-with-retries [execute-fn retry-policy on-attempt on-failure] - (loop [attempt 1] - (let [result (try - {:status :success :value (execute-fn)} - (catch Exception e - {:status :error :exception e}))] - (case (:status result) - :success (:value result) - :error (if (should-retry? retry-policy (:exception result) attempt) - (do (on-attempt attempt) - (Thread/sleep (calculate-backoff retry-policy attempt)) - (recur (inc attempt))) - (do (on-failure attempt) - (throw (:exception result)))))))) -``` - ---- - -### 14. Consolidate pending async processing (Medium Priority) -**Locations:** Lines 701-707, 742-747, 666-670 - -**Problem:** Pending asyncs processed in multiple places with duplicated logic: -```clojure -(when (seq pending-asyncs-list) - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs-list - pending-events-list - observer)) -``` - -**Fix:** Extract helper: -```clojure -(defn- process-pending-asyncs-if-any [store executor workflow-id pending-asyncs pending-events observer] - (when (seq pending-asyncs) - (process-pending-asyncs-parallel store executor workflow-id - pending-asyncs pending-events observer)) - :continue) - -;; Usage everywhere: -(process-pending-asyncs-if-any store executor workflow-id ...) -``` - ---- - -### 15. Make state machine explicit (Low-Medium Priority) -**Location:** Throughout file - -**Problem:** Workflow states (started → running/suspended → completed/failed/cancelled) not explicitly modeled. Current approach uses nested case statements and implicit state in event history. - -**Fix:** Consider using explicit state machine: -```clojure -(defprotocol IWorkflowState - (handle-completion [state result]) - (handle-suspension [state type data]) - (handle-cancellation [state])) - -(defrecord RunningState [...] - IWorkflowState - (handle-completion [this result] - (->CompletedState ...)) - (handle-suspension [this type data] - (->SuspendedState ...))) -``` - ---- - -## Nice-to-Have - -### 16. Improve docstrings (Low Priority) -**Locations:** `stub` (lines 14-64), `async` (lines 72-140) - -**Problem:** Docstrings incomplete. For example, `async` doesn't explain: -- What happens if thunk completes synchronously vs. suspends -- Why handle is returned before thunk execution -- How seq-num tracking works - -**Fix:** Expand docstrings with examples: -```clojure -(defn async - "Execute a thunk asynchronously within a workflow. - - Returns an AsyncHandle immediately, before the thunk executes. - - Behavior: - - First execution: Thunk starts, returns handle for later join - - During replay: Returns same handle, thunk result cached - - Example: - (let [h1 (async (fn [] (activity-1))) - h2 (async (fn [] (activity-2)))] - ;; Both activities run in parallel - [(join h1) (join h2)]) - - The thunk can: - - Call activities (which will be batched) - - Throw exceptions (captured in async-failed event) - - Return values (captured in async-completed event)" - [thunk] - ...) -``` - ---- - -### 17. Add bounds to pending events (Low Priority) -**Locations:** Lines 649-650 - -**Problem:** Unbounded accumulation: -```clojure -pending-events (atom []) -pending-asyncs (atom []) -``` - -**Impact:** Very long-running workflows could accumulate large vectors. - -**Fix:** Consider batching or size limits: -```clojure -(defn- add-pending-event! [event] - (let [events (:pending-events (current-context))] - (swap! events conj event) - (when (> (count @events) 1000) - (flush-pending-events!)))) -``` - ---- - -### 18. Consider splitting the file (Low Priority) - -**Problem:** At 948 lines, file is getting unwieldy. - -**Recommendation:** Split into: -- `core_operations.clj` - stub, async, join, signals, timers, child-workflows (~200 lines) -- `core_internal.clj` - Internal execution engine (~300 lines) -- `core.clj` - Public API (~100 lines) -- `core_helpers.clj` - Convenience functions (~100 lines) - ---- - -## Summary by Priority - -### Critical (Fix First) -1. Concurrency bug in wake-fn delivery -2. Race condition in signal consumption -3. Lost activity seq & retry-policy in async completion - -### High Priority -4. Remove dead commented code -5. Missing validation in resume-workflow -6. Extract duplicate event lookup helper -7. Missing validation in join-any - -### Medium Priority -8. Cache history loading -9. Wrap observer calls in try-catch -10. Normalize return types -11. Include error context in child workflow failures -12. **Architectural:** Separate replay from execution logic -13. **Architectural:** Extract retry logic -14. **Architectural:** Consolidate pending async processing - -### Nice-to-Have -15. Make state machine explicit -16. Improve docstrings -17. Add bounds to pending events -18. Split large file - ---- - -## Estimated Impact - -**Fixing Critical + High Priority issues:** -- Eliminates data corruption risks -- Makes retry policies work correctly in async contexts -- Improves code maintainability significantly -- Prevents silent failures - -**Fixing Medium Priority issues:** -- Improves performance for deep workflows -- Makes codebase more robust to errors -- Improves API consistency - -**Architectural improvements:** -- Makes codebase easier to understand and test -- Reduces complexity of core functions -- Enables easier future enhancements diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 8a7c4a0..13c3d86 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -8,7 +8,11 @@ ;; Workflow Execution Engine ;; ============================================================================ - +(defmacro ^:private -notify + "Utility macro to dispatch events to an observer" + [proto-fn observer & args] + `(when ~observer + (~proto-fn ~observer ~@args))) (defn execute-workflow-fn [workflow-fn args] (try @@ -40,34 +44,29 @@ (if (nil? retry-policy) ;; No retry - execute once (let [start (System/currentTimeMillis)] - (when observer - (p/on-activity-started observer workflow-id seq-num activity-name)) + (-notify p/on-activity-started observer workflow-id seq-num activity-name) (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) {:status :success :result result :duration duration}) (catch Exception e (let [duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-failed observer workflow-id seq-num activity-name - (error/throwable->map e) duration)) + (-notify p/on-activity-failed observer workflow-id seq-num activity-name + (error/throwable->map e) duration) {:status :failed :error (error/throwable->map e) :duration duration})))) ;; With retry (loop [attempt 1] + (-notify p/on-activity-started observer workflow-id seq-num activity-name) (let [start (System/currentTimeMillis) - _ (when observer - (p/on-activity-started observer workflow-id seq-num activity-name)) exec-result (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] - (when observer - (p/on-activity-completed observer workflow-id seq-num activity-name result duration)) + (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) {:status :success :result result :duration duration @@ -75,8 +74,7 @@ (catch Exception e (let [duration (- (System/currentTimeMillis) start) error-map (error/throwable->map e)] - (when observer - (p/on-activity-failed observer workflow-id seq-num activity-name error-map duration)) + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) {:status :retry-or-fail :error error-map :exception e @@ -91,6 +89,7 @@ (prn (format "attempt %d: sleeping %s before retrying" attempt backoff)) (Thread/sleep (long backoff)) (recur (inc attempt))) + ;; else {:status :failed :error (:error exec-result) :duration (:duration exec-result) @@ -103,25 +102,18 @@ ;; Save all pending events first (p/save-events store workflow-id pending-events) ;; Then save the completion or failure - (if (= :success (:status exec-result)) - (do - (p/save-event store workflow-id {:event-type :activity-completed - :seq seq - :activity-name activity-name - :result (:result exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue) - (do - (p/save-event store workflow-id {:event-type :activity-failed - :seq seq - :activity-name activity-name - :error (:error exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)}) - :continue)))) + (let [success? (= :success (:status exec-result)) + event (cond-> {:event-type (if success? :activity-completed :activity-failed) + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)} + success? (assoc :result (:result exec-result)) + (not success?) (assoc :error (:error exec-result)))] + (p/save-event store workflow-id event) + :continue))) (defn process-pending-asyncs-parallel "Process all pending async operations in parallel" @@ -138,12 +130,9 @@ ;; Create completion events for both activities and async handles completion-events (mapcat (fn [async-info result] - (when observer - (if (= :success (:status result)) - (p/on-async-completed observer workflow-id - (:handle-seq async-info) (:result result)) - (p/on-async-failed observer workflow-id - (:handle-seq async-info) (:error result)))) + (if (= :success (:status result)) + (-notify p/on-async-completed observer workflow-id (:handle-seq async-info) (:result result)) + (-notify p/on-async-failed observer workflow-id (:handle-seq async-info) (:error result))) (if (= :success (:status result)) [{:event-type :activity-completed :seq (:activity-seq async-info) @@ -182,18 +171,16 @@ (p/save-event store workflow-id {:event-type :timer-fired :seq seq :timestamp now}) - (when observer - (p/on-timer-fired observer workflow-id seq)) + (-notify p/on-timer-fired observer workflow-id seq) :continue) - ;; Schedule timer and return wait status + ;; ELSE Schedule timer and return wait status (do (p/schedule-timer scheduler workflow-id seq fire-at (fn [] (p/save-event store workflow-id {:event-type :timer-fired :seq seq :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-timer-fired observer workflow-id seq)) + (-notify p/on-timer-fired observer workflow-id seq) (when wake-fn (wake-fn)))) :wait-timer)))) @@ -210,10 +197,9 @@ :signal-id (:id signal-data) :payload (:payload signal-data) :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data)) :continue) - ;; Signal not yet available - register callback and wait + ;; ELSE Signal not yet available - register callback and wait (do (p/register-signal-callback store workflow-id signal-name (fn [] @@ -225,8 +211,7 @@ :signal-id (:id signal-data) :payload (:payload signal-data) :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-signal-received observer workflow-id signal-name (:payload signal-data)))) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data))) ;; Unregister callback (p/unregister-signal-callback store workflow-id signal-name) ;; Wake up the workflow @@ -247,10 +232,9 @@ :signal-name signal-name :payload (:payload signal-data) :timestamp now}) - (when observer - (p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data)) :continue) - ;; Check if already timed out + ;; ELSE Check if already timed out (if (>= now deadline) (do (p/save-event store workflow-id {:event-type :signal-wait-completed @@ -264,18 +248,14 @@ (p/schedule-timer scheduler workflow-id seq deadline (fn [] ;; Check one more time for signal - (if-let [signal-data (p/consume-signal store workflow-id signal-name)] - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received true - :signal-name signal-name - :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) - (p/save-event store workflow-id {:event-type :signal-wait-completed - :seq seq - :received false - :signal-name signal-name - :timestamp (System/currentTimeMillis)})) + (let [signal-data? (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id (cond-> {:event-type :signal-wait-completed + :seq seq + :received (some? signal-data?) + :signal-name signal-name + :timestamp (System/currentTimeMillis)} + (some? signal-data?) (assoc :payload (:payload signal-data?))))) + (when wake-fn (wake-fn)))) :wait-signal-timeout))))) @@ -293,10 +273,7 @@ (when (seq pending-events) (p/save-events store workflow-id pending-events)) ;; Check if the handle is now complete - (let [;history (p/load-history store workflow-id) - ;completed (ctx/find-event history :async-completed handle-seq) - ;failed (ctx/find-event history :async-failed handle-seq) - store (ctx/current-store) + (let [store (ctx/current-store) workflow-id (ctx/current-workflow-id) completed (p/find-event store workflow-id :async-completed handle-seq) failed (p/find-event store workflow-id :async-failed handle-seq)] @@ -335,8 +312,7 @@ (p/save-event store workflow-id {:event-type :workflow-completed :result result :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-completed observer workflow-id result)) + (-notify p/on-workflow-completed observer workflow-id result) {:status :completed :workflow-id workflow-id :result result}) @@ -351,10 +327,8 @@ (p/save-event store workflow-id {:event-type :workflow-failed :error error-map :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-cancelled observer workflow-id)) - (when observer - (p/on-workflow-failed observer workflow-id error-map)) + (-notify p/on-workflow-cancelled observer workflow-id) + (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed :workflow-id workflow-id :error error-map})) @@ -367,8 +341,7 @@ (p/save-event store workflow-id {:event-type :workflow-failed :error error-map :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-failed observer workflow-id error-map)) + (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed :workflow-id workflow-id :error error-map})) @@ -397,8 +370,7 @@ (let [{:keys [store executor scheduler]} engine pending-asyncs-list pending-asyncs pending-events-list pending-events] - (when observer - (p/on-workflow-suspended observer workflow-id suspension-type)) + (-notify p/on-workflow-suspended observer workflow-id suspension-type) (case suspension-type :activity @@ -506,13 +478,11 @@ (let [error-map {:type "clojure.lang.ExceptionInfo" :message "Workflow cancelled" :data {:workflow-id workflow-id}}] - (when observer - (p/on-workflow-cancelled observer workflow-id)) + (-notify p/on-workflow-cancelled observer workflow-id) (p/save-event store workflow-id {:event-type :workflow-failed :error error-map :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-failed observer workflow-id error-map)) + (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed :workflow-id workflow-id :error error-map}) @@ -576,6 +546,7 @@ :result (:result result) :timestamp (System/currentTimeMillis)}) :continue) + ;; ELSE (do (p/save-event store workflow-id {:event-type :child-workflow-failed :seq seq diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc new file mode 100644 index 0000000..fbc4664 --- /dev/null +++ b/src/intemporal/internal/macros.cljc @@ -0,0 +1,108 @@ +(ns intemporal.internal.macros + (:require [cljs.analyzer.api :as api] + [md5.core :as md5]) + #?(:clj (:require [net.cgrand.macrovich :as macros]) + ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) + :cljs (:require-macros [net.cgrand.macrovich :as macros]))) + ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] + ;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) + +(def cljs-available? + #?(:cljs + false + :clj + (try + (require '[cljs.analyzer]) + ;; Ensure clojurescript is recent enough: + (-> 'cljs.analyzer/var-meta resolve boolean) + (catch Exception _ false)))) + +;;;; +;; userland + +(defmacro defn-workflow + "Defines a workflow. Workflows are functions that are resillient to crashes, as + long as side-effects are run via activities." + [sym argv & body] + (let [wname (symbol (str sym "-")) + sig (md5/string->md5-hex (str body))] + ;; TODO save signature + `(do + (defn- ~wname ~argv (do ~@body)) + (defn ~sym ~argv + ;; TODO: fixme: task id generator must be deterministic for a given workflow + (let [id# (or (random-uuid)) + fvar# #'~wname + ;; #'my-workflown-fn- => my-workflow-fn + orig# (subs (str fvar#) 2 (dec (count (str fvar#))))]))))) + +(defmacro stub-function + "Stubs `f`, wrapping it in an activity-aware function." + [f] + `(fn [& argv#] + (let [fvar# (var ~f)] + ;; TODO we can use &form to determine eg checksum of activity + + ;; prepare call + (let [])))) + +(defmacro stub-protocol + "Stub a protocol definition. Opts are currently unused. + Example: `(stub-protocol EventHandler {:some-opts true})`" + [proto & opts] + (macros/case + :cljs + (when cljs-available? + (let [resolved (api/resolve &env proto) + curr-ns (:name (:ns &env)) + proto-ns (:ns resolved) + in-proto-ns? (= curr-ns proto-ns) + sig+args (-> (for [[sig val] (:sigs resolved) + :let [arglist (:arglists val) + qname (str (name proto-ns) "/" (name sig)) + invname (if in-proto-ns? + (name sig) + (str (namespace proto) "/" (name sig)))]] + [(name sig) arglist (symbol invname) (symbol qname) (str (:name resolved))]) + (doall))] + ;; TODO we can use &form to determine eg checksum of proto def + `(reify ~proto + ~@(for [[mname arglist invname qname pname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [aid# '~qname + act-opts# ~(first opts) + sym# (symbol aid#) + ;aid# ;; >> doesn't work! + ;; protos are not reified like in clj https://clojurescript.org/about/differences#_protocols + ;; we create a "fake" fvar that can be invokeable just like the real thing + f# (fn [& impl+args#] (apply ~qname impl+args#)) + args# [~@args]])))))) + + :clj + #_{:clj-kondo/ignore [:unresolved-symbol]} + (let [proto-var (var-get (resolve proto)) + curr-ns (name (ns-name *ns*)) + proto-ns (namespace (symbol (subs (str (:var proto-var)) 2))) + in-proto-ns? (= curr-ns proto-ns) + sig+args (-> (for [[sig val] (:sigs proto-var) + :let [arglist (:arglists val) + qname (str (name proto-ns) "/" (name sig)) + invname (if in-proto-ns? + (name sig) + (str (namespace proto) "/" (name sig)))]] + [(name sig) arglist (symbol invname) (symbol qname)]) + (doall))] + `(reify ~proto + ~@(for [[mname arglist invname qname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [aid# '~qname + act-opts# ~(first opts) + sym# (symbol aid#) + f# (var-get (requiring-resolve aid#)) + args# [~@args]]))))))) From 775e93a657911999e789bfea88be7952f87afec8 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 21 Jan 2026 22:52:34 +0000 Subject: [PATCH 51/81] remove comments --- src/intemporal/core.clj | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 67383b1..9a78b4d 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -28,9 +28,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing (ctx/find-event history :activity-completed seq-num) - ;existing-failed (ctx/find-event history :activity-failed seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :activity-completed seq-num) @@ -77,10 +74,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing-completed (ctx/find-event history :async-completed seq-num) - ;existing-failed (ctx/find-event history :async-failed seq-num) - ;existing-started (ctx/find-event history :async-started seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing-completed (p/find-event store workflow-id :async-completed seq-num) @@ -148,10 +141,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) handle-seq (:seq-num handle) - ;history @(:history ctx) - ;completed (ctx/find-event history :async-completed handle-seq) - ;failed (ctx/find-event history :async-failed handle-seq) - store (ctx/current-store) workflow-id (ctx/current-workflow-id) completed (p/find-event store workflow-id :async-completed handle-seq) @@ -181,8 +170,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing (ctx/find-event history :join-any-completed seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :join-any-completed seq-num)] @@ -219,8 +206,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing (ctx/find-event history :signal-received seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :signal-received seq-num)] @@ -236,8 +221,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing (ctx/find-event history :signal-wait-completed seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :signal-wait-completed seq-num)] @@ -262,8 +245,6 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) - ;existing (ctx/find-event history :timer-fired seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :timer-fired seq-num)] @@ -289,10 +270,7 @@ (ctx/check-cancelled!) (let [ctx (ctx/current-context) seq-num (ctx/next-seq!) - ;history @(:history ctx) child-wf-id (or child-id (str (:workflow-id ctx) "/child-" seq-num)) - ;existing (ctx/find-event history :child-workflow-completed seq-num) - ;existing-failed (ctx/find-event history :child-workflow-failed seq-num) store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :child-workflow-completed seq-num) From 5c5346721118f87a2c0b39e89788d35315957c0b Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 22 Jan 2026 22:55:08 +0000 Subject: [PATCH 52/81] add logging --- deps.edn | 15 +- dev/intemporal/demo_automata.clj | 84 ------- dev/intemporal/demo_parallelism.clj | 52 ----- dev/intemporal/demo_recovery.clj | 42 ---- dev/intemporal/demo_saga.cljc | 93 -------- dev/intemporal/demo_vthread_recovery.clj | 51 ----- dev/intemporal/demo_workflow.clj | 55 ----- dev/intemporal/demo_workflow.cljs | 61 ----- dev/intemporal/dev.cljc | 2 - dev/intemporal/recovery.edn | 4 - dev/intemporal/vthread-recovery.edn | 66 ------ dev/scheduler.md | 71 ------ docker/fdb.cluster | 2 +- .../postgres/20240326161343-initial.down.sql | 5 - .../postgres/20240326161343-initial.up.sql | 31 --- src/intemporal/core.clj | 208 +++++++++++------- src/intemporal/internal/execution.clj | 80 ++++--- src/intemporal/internal/logging.clj | 102 +++++++++ src/intemporal/internal/macros.cljc | 8 +- .../tests/crash/exception_inject_test.clj | 128 +++++++++++ .../tests/crash/future_cancel_test.clj | 126 +++++++++++ .../tests/crash/run_manual_test.clj | 106 +++++++++ .../tests/crash/signal_based_test.clj | 122 ++++++++++ .../tests/crash/timer_based_test.clj | 116 ++++++++++ test/logback.xml | 14 ++ tests.edn | 1 + 26 files changed, 901 insertions(+), 744 deletions(-) delete mode 100644 dev/intemporal/demo_automata.clj delete mode 100644 dev/intemporal/demo_parallelism.clj delete mode 100644 dev/intemporal/demo_recovery.clj delete mode 100644 dev/intemporal/demo_saga.cljc delete mode 100644 dev/intemporal/demo_vthread_recovery.clj delete mode 100644 dev/intemporal/demo_workflow.clj delete mode 100644 dev/intemporal/demo_workflow.cljs delete mode 100644 dev/intemporal/dev.cljc delete mode 100644 dev/intemporal/recovery.edn delete mode 100644 dev/intemporal/vthread-recovery.edn delete mode 100644 dev/scheduler.md delete mode 100644 resources/migrations/postgres/20240326161343-initial.down.sql delete mode 100644 resources/migrations/postgres/20240326161343-initial.up.sql create mode 100644 src/intemporal/internal/logging.clj create mode 100644 test/intemporal/tests/crash/exception_inject_test.clj create mode 100644 test/intemporal/tests/crash/future_cancel_test.clj create mode 100644 test/intemporal/tests/crash/run_manual_test.clj create mode 100644 test/intemporal/tests/crash/signal_based_test.clj create mode 100644 test/intemporal/tests/crash/timer_based_test.clj create mode 100644 test/logback.xml diff --git a/deps.edn b/deps.edn index 65872da..3553b2a 100644 --- a/deps.edn +++ b/deps.edn @@ -2,16 +2,13 @@ :test-paths ["test"] :deps {org.clojure/clojure {:mvn/version "1.12.1"} - thheller/shadow-cljs {:mvn/version "2.28.11"} - com.taoensso/telemere {:mvn/version "1.1.0"} - com.taoensso/nippy {:mvn/version "3.6.0"} + org.clojure/tools.logging {:mvn/version "1.2.4"} + ch.qos.logback/logback-classic {:mvn/version "1.5.18"} + ;thheller/shadow-cljs {:mvn/version "2.28.11"} + net.logstash.logback/logstash-logback-encoder {:mvn/version "8.1"} com.github.steffan-westcott/clj-otel-api {:mvn/version "0.2.10"} ;;stuff - net.cgrand/macrovich {:mvn/version "0.2.2"} - funcool/promesa {:mvn/version "11.0.678"} - metosin/malli {:mvn/version "0.19.1"} - thedavidmeister/cljc-md5 {:mvn/version "0.0.2"} - missionary/missionary {:mvn/version "b.46"}} + net.cgrand/macrovich {:mvn/version "0.2.2"}} :aliases {:dev {:extra-paths ["dev" "test"] :_jvm-opts ["-Djdk.attach.allowAttachSelf" @@ -31,7 +28,7 @@ lambdaisland/kaocha-cloverage {:mvn/version "1.1.89"} lambdaisland/kaocha-junit-xml {:mvn/version "1.17.101"} com.lambdaisland/kaocha-cljs {:mvn/version "1.5.154"} - ch.qos.logback/logback-classic {:mvn/version "1.5.18"} + ;ch.qos.logback/logback-classic {:mvn/version "1.5.18"} tortue/spy {:mvn/version "2.15.0"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} diff --git a/dev/intemporal/demo_automata.clj b/dev/intemporal/demo_automata.clj deleted file mode 100644 index 3b7ded2..0000000 --- a/dev/intemporal/demo_automata.clj +++ /dev/null @@ -1,84 +0,0 @@ -(ns intemporal.demo-automata - (:require [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function stub-protocol defn-workflow]] - [intemporal.test-utils :as tu] - [promesa.core :as p] - [automata.fsm :as fsm])) - - -;;;; -;; demo -;(clojure.pprint/pprint (telemere/check-interop)) -;(telemere/add-handler! :default/open-telemetry (tot/handler:open-telemetry)) -(tu/setup-telemere) - -;;;; -;; main code - -(def resource-rules - {:state/init [{::fsm/event :event/create ::fsm/to :state/creating ::fsm/actions [:action/create]} - {::fsm/event :event/kill ::fsm/to :state/killed}] - :state/creating [{::fsm/event :event/created ::fsm/to :state/down} - {::fsm/event :event/error ::fsm/to :state/init}] - :state/down [{::fsm/event :event/start ::fsm/to :state/starting ::fsm/actions [:action/start]} - {::fsm/event :event/kill ::fsm/to :state/killing ::fsm/actions [:action/kill]}] - :state/starting [{::fsm/event :event/started ::fsm/to :state/up} - {::fsm/event :event/error ::fsm/to :state/down}] - :state/stopping [{::fsm/event :event/stopped ::fsm/to :state/down} - {::fsm/event :event/error ::fsm/to :state/up}] - :state/up [{::fsm/event :event/stop ::fsm/to :state/stopping ::fsm/actions [:action/stop]} - {::fsm/event :event/kill ::fsm/to :state/killing ::fsm/actions [:action/kill]}] - :state/killing [{::fsm/event :event/killed ::fsm/to :state/killed} - {::fsm/event :event/error ::fsm/to :state/killing}] - :state/killed []}) - -(defn process-event [event] - (let [nxt (condp = event - :event/create :event/created - :event/created :event/start - :event/start :event/started - :event/started :event/stop - :event/stop :event/stopped - :event/stopped :event/kill - :event/kill :event/killed - nil)] - nxt)) - -;;;; -;; workflow registration - -(defn-workflow run-fsm-workflow - [rules init-state init-event] - (let [stub (stub-function process-event) - initstate {::fsm/rules rules ::fsm/state init-state}] - - (loop [state initstate - evt init-event] - (if evt - (recur (fsm/transit state evt) - (stub evt)) - (::fsm/state state))))) - -(def mstore (store/make-store)) -(def ex (w/start-poller! mstore {})) - -(def res (w/with-env {:store mstore} - (run-fsm-workflow resource-rules :state/init :event/create))) - -;; if we reach here, all tasks are finished -(w/shutdown ex 1000) - -;;;; -;; show the results -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (->> (store/list-tasks mstore)) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) diff --git a/dev/intemporal/demo_parallelism.clj b/dev/intemporal/demo_parallelism.clj deleted file mode 100644 index 9d42081..0000000 --- a/dev/intemporal/demo_parallelism.clj +++ /dev/null @@ -1,52 +0,0 @@ -(ns intemporal.demo-parallelism - (:require [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-protocol defn-workflow vthread]] - [promesa.core :as p])) - -;;;; -;; demo - -(defprotocol ThreadActivity - (with-thread [this id])) - -(defrecord ThreadActivityImpl [] - ThreadActivity - (with-thread [this id] - (Thread/sleep 200) - id)) - -(defn-workflow my-workflow [] - (let [pr (stub-protocol ThreadActivity {}) - proms (for [i (range 10)] - (vthread - (with-thread pr i)))] - ;; at this point, all of `with-thread` calls are queued, so - ;; this code is deterministic up to here - @(p/all proms))) - -(def mstore (store/make-store)) -(def stop-worker (w/start-worker! mstore {:protocols {`ThreadActivity (->ThreadActivityImpl)}})) - -;; note that in cljs, this returns a promise -(def res (w/with-env {:store mstore} - (my-workflow))) - -(defn pprint-table [table] - ;; fvar in clj can get really long - (->> table - (map (fn [r] - (cond-> r - (contains? r :fvar) (assoc :fvar "")))) - (clojure.pprint/print-table))) - -(defn print-tables [] - (let [tasks (store/list-tasks mstore) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) -(println "Result:" res) -(stop-worker) \ No newline at end of file diff --git a/dev/intemporal/demo_recovery.clj b/dev/intemporal/demo_recovery.clj deleted file mode 100644 index 917ca48..0000000 --- a/dev/intemporal/demo_recovery.clj +++ /dev/null @@ -1,42 +0,0 @@ -(ns intemporal.demo-recovery - (:require [clojure.java.io :as io] - [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function defn-workflow]])) - -;;;; -;; demo - recovery of a crashed process - -(defn nested-fn [a] - :nested) - -(defn activity-fn [a] - (let [n (stub-function nested-fn)] - (conj a :activity (n :sub)))) - -(defn-workflow my-workflow [i] - (let [s (stub-function activity-fn)] - (conj [:root] (s [1])))) - -;; make a backup of the db to allow replay -(io/copy (io/file "./dev/intemporal/recovery.edn") (io/file "/tmp/intemporal-recovery.edn")) -(def mstore (store/make-store {:file "/tmp/intemporal-recovery.edn"})) -(def stop-worker (w/start-worker! mstore)) - -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (store/list-tasks mstore) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) - -;;;; -;; all pending tasks are marked as new again, so they will be reexecuted -(store/reenqueue-pending-tasks mstore println) -;; print again -(print-tables) \ No newline at end of file diff --git a/dev/intemporal/demo_saga.cljc b/dev/intemporal/demo_saga.cljc deleted file mode 100644 index c0d42f2..0000000 --- a/dev/intemporal/demo_saga.cljc +++ /dev/null @@ -1,93 +0,0 @@ -(ns intemporal.demo-saga - (:require [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function stub-protocol defn-workflow with-failure]] - [intemporal.store :as s])) - -(defprotocol TripBookingActivities - (reserve-car [this name]) - (book-hotel [this name]) - (book-flight [this name]) - (cancel-car [this id name]) - (cancel-hotel [this id name]) - (cancel-flight [this id name])) - -(def EmptyException - #?(:clj - (let [e (RuntimeException. "Spurious error")] - (.setStackTrace e (into-array StackTraceElement [])) - e) - :cljs - (js/Error "Spurious error"))) - -(defmacro try-return [& body] - `(let [r# (rand-int 10)] - (when (> r# 3) - (throw EmptyException)) - ~@body)) - -(def example-impl - (reify TripBookingActivities - (reserve-car [this name] {:car-id 1 :name name}) - (book-hotel [this name] (try-return {:hotel-id 1 :name name})) - (book-flight [this name] (try-return {:flight-id 1 :name name})) - ;; ideally compensations should be idempotent to allow for failsafe retry - (cancel-car [this id name] (println "!cancel car" id name)) - (cancel-hotel [this id name] (println "!cancel hotel" id name)) - (cancel-flight [this id name] (println "!cancel flight" id name)))) - -;; functions don't need registration, they are registered on stub -(defn send-email [name body] - (println "sending email for" name "with body:" body) - "email sent!") - -;;;; -;; workflow registration - -(defn-workflow book-trip - [n] - (let [email-stub (stub-function send-email) - stub (stub-protocol TripBookingActivities)] - (try - (let [cid (with-failure [v (reserve-car stub "car")] - (cancel-car stub v n)) - _ (println "[workflow fn] car id:" cid) - - hid (with-failure [v (book-hotel stub "hotel")] - (cancel-hotel stub v n)) - _ (println "[workflow fn] hotel id:" hid) - - fid (with-failure [v (book-flight stub "flight")] - (cancel-flight stub v n)) - _ (println "[workflow fn] flight id:" fid)] - - (email-stub "user@user.com" "trip confirmed") - :ok) - ;; LOL this catch can catch stub exceptions such as "not running within a workflow" - (catch #?(:clj Exception :cljs js/Error) e - (w/compensate) - (email-stub "user@user.com" "trip failed") - (throw e))))) - - -(def mstore (s/make-store)) -(def stop-worker (w/start-worker! mstore {:protocols {`TripBookingActivities example-impl}})) - -;; note that in cljs, this returns a promise -(def res (try - (w/with-env {:store mstore} - (book-trip 1)) - (catch #?(:clj Exception :cljs js/Error) e :error))) - -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (->> (s/list-tasks mstore) - (map #(dissoc % :ref :root :fvar))) - events (->> (s/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) - diff --git a/dev/intemporal/demo_vthread_recovery.clj b/dev/intemporal/demo_vthread_recovery.clj deleted file mode 100644 index 96ee7d0..0000000 --- a/dev/intemporal/demo_vthread_recovery.clj +++ /dev/null @@ -1,51 +0,0 @@ -(ns intemporal.demo-vthread-recovery - (:require [clojure.java.io :as io] - [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-protocol vthread defn-workflow]] - [promesa.core :as p])) - -(defprotocol ThreadActivity - (with-thread [this id])) - -(defrecord ThreadActivityImpl [] - ThreadActivity - (with-thread [this id] - (Thread/sleep 200) - id)) - -(defn-workflow my-workflow [] - (let [pr (stub-protocol ThreadActivity {}) - proms (for [i (range 10)] - (vthread - (println "inside vthread") - (with-thread pr i)))] - ;; at this point, all of `with-thread` calls are queued, so - ;; this code is deterministic up to here - @(p/all proms))) - -;; make a backup of the db to allow replay -(io/copy (io/file "./dev/intemporal/vthread-recovery.edn") (io/file "/tmp/intemporal-vthread-recovery.edn")) -(def mstore (store/make-store {:file "/tmp/intemporal-vthread-recovery.edn"})) -(def stop-worker (w/start-worker! mstore {:protocols {`intemporal.demo-vthread-recovery/ThreadActivity (->ThreadActivityImpl)}})) - -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (store/list-tasks mstore) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -;(print-tables) - -;;;; -;; all pending tasks are marked as new again, so they will be reexecuted -(store/reenqueue-pending-tasks mstore println) -;; print again -(print-tables) - -(comment - (stop-worker)) diff --git a/dev/intemporal/demo_workflow.clj b/dev/intemporal/demo_workflow.clj deleted file mode 100644 index 0953f9c..0000000 --- a/dev/intemporal/demo_workflow.clj +++ /dev/null @@ -1,55 +0,0 @@ -(ns intemporal.demo-workflow - (:require [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function stub-protocol defn-workflow]] - [intemporal.test-utils :as tu])) - -;;;; -;; demo -;(clojure.pprint/pprint (telemere/check-interop)) -;(telemere/add-handler! :default/open-telemetry (tot/handler:open-telemetry)) -(tu/setup-telemere) - -(defn nested-fn [a] - [a :nested]) - -(defn activity-fn [a] - (let [f (stub-function nested-fn)] - (conj a :activity (f :sub)))) - -(defprotocol MyActivities - (foo [this a])) - -(defrecord MyActivitiesImpl [] - MyActivities - (foo [this a] (println "record was called:" ) [a :child])) - -(defn-workflow my-workflow [i] - (let [sf (stub-function activity-fn) - pr (stub-protocol MyActivities {})] - (conj [:root] - (sf [1]) - (foo pr :X)))) - -(def mstore (store/make-store)) -(def ex (w/start-poller! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})) - -(def res (w/with-env {:store mstore} - (my-workflow 1))) - -;; if we reach here, all tasks are finished -(w/shutdown ex 1000) - -;;;; -;; show the results -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (->> (store/list-tasks mstore)) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) diff --git a/dev/intemporal/demo_workflow.cljs b/dev/intemporal/demo_workflow.cljs deleted file mode 100644 index 4416c74..0000000 --- a/dev/intemporal/demo_workflow.cljs +++ /dev/null @@ -1,61 +0,0 @@ -(ns intemporal.demo-workflow - (:require [intemporal.store :as store] - [intemporal.workflow :as w] - [promesa.core :as p]) - (:require-macros [intemporal.macros :refer [env-let stub-function stub-protocol defn-workflow]] - [intemporal.workflow :refer [with-env]])) - -;;;; -;; demo - -(defn nested-fn [a] - [a :nested]) - -(defn activity-fn [a] - (env-let [f (stub-function nested-fn) - v (f :sub)] - (conj a :activity v))) - -(defprotocol MyActivities - (foo [this a])) - -(defrecord MyActivitiesImpl [] - MyActivities - (foo [this a] (println "record was called:") [a :child])) - -(defn-workflow my-workflow [i] - (let [sf (stub-function activity-fn) - pr (stub-protocol MyActivities {}) - - sres (sf [1]) - pres (foo pr :X)] - (p/let [v1 sres - v2 pres] - (conj [:root] - v1 - v2)))) - -(def mstore (store/make-store)) -(def stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})) - -;; note that in cljs, this returns a promise -(def res (w/with-env {:store mstore} - (my-workflow 1))) - -(defn pprint-table [table] - ;; fvar in clj can get really long - (->> table - (map (fn [r] - (cond-> r - (contains? r :fvar) (assoc :fvar "")))) - (cljs.pprint/print-table))) - -(defn print-tables [] - (let [tasks (store/list-tasks mstore) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(p/then res #(do (print-tables) - (println "Result:" %))) \ No newline at end of file diff --git a/dev/intemporal/dev.cljc b/dev/intemporal/dev.cljc deleted file mode 100644 index 9cffc03..0000000 --- a/dev/intemporal/dev.cljc +++ /dev/null @@ -1,2 +0,0 @@ -(ns intemporal.dev) - diff --git a/dev/intemporal/recovery.edn b/dev/intemporal/recovery.edn deleted file mode 100644 index 081ac9e..0000000 --- a/dev/intemporal/recovery.edn +++ /dev/null @@ -1,4 +0,0 @@ -{:tasks {"nice-black" {:type :workflow, :id "nice-black", :ref nil, :root nil, :sym intemporal.demo-recovery/my-workflow-, :args [1], :state :pending, :result nil}}, - :history {"nice-black" [{:ref "nice-black", :root "nice-black", :type :intemporal.workflow/invoke, :sym intemporal.demo-recovery/my-workflow-, :args [1], :id 1}], - "stupefied-kepler" [{:ref "stupefied-kepler", :root "nice-black", :type :intemporal.activity/invoke, :sym intemporal.demo-recovery/activity-fn, :args ([1]), :id 2}]}, - :counter 2, :pcounter 3} \ No newline at end of file diff --git a/dev/intemporal/vthread-recovery.edn b/dev/intemporal/vthread-recovery.edn deleted file mode 100644 index ebe304d..0000000 --- a/dev/intemporal/vthread-recovery.edn +++ /dev/null @@ -1,66 +0,0 @@ -{:tasks {"silly-mcclintock" {:args [], - :ref nil, - :type :workflow, - :state :pending, - :sym intemporal.demo-vthread-recovery/my-workflow-, - :root nil, - :result nil, - :id "silly-mcclintock", - :order 1, - :lease-end nil - :runtime {:timeout-ms 900000, - :telemetry-context {"traceparent" "00-0f17ae74e434659106c06f591ee56a6d-85f973ca22cd0d92-01"}}}}, - :history {"silly-mcclintock" [{:ref "silly-mcclintock", - :root "silly-mcclintock", - :type :intemporal.workflow/invoke, - :sym intemporal.demo-vthread-recovery/my-workflow-, - :args [], - :error nil, - :result nil, - :id 17} - cccccbrfjtefettfeikinrkevrueftfcuttfningduuc - - #_ - {:ref "silly-mcclintock", - :root "silly-mcclintock", - :type :intemporal.workflow/success, - :sym intemporal.demo-vthread-recovery/my-workflow-, - :args nil, - :error nil, - :result [0 1 2 3 4 5 6 7 8 9], - :id 38}], - "silly-mcclintock-1" [{:ref "silly-mcclintock-1", - :root "silly-mcclintock", - :type :intemporal.protocol/invoke, - :sym intemporal.demo-vthread-recovery/with-thread, - :args [0], - :error nil, - :result nil, - :id 18} - {:ref "silly-mcclintock-1", - :root "silly-mcclintock", - :type :intemporal.protocol/success, - :sym intemporal.demo-vthread-recovery/with-thread, - :args nil, - :error nil, - :result 0, - :id 28}], - "silly-mcclintock-2" [{:ref "silly-mcclintock-2", - :root "silly-mcclintock", - :type :intemporal.protocol/invoke, - :sym intemporal.demo-vthread-recovery/with-thread, - :args [1], - :error nil, - :result nil, - :id 19} - {:ref "silly-mcclintock-2", - :root "silly-mcclintock", - :type :intemporal.protocol/success, - :sym intemporal.demo-vthread-recovery/with-thread, - :args nil, - :error nil, - :result 1, - :id 29}]} - :counter 38, - :pcounter 2, - :ecounter 0} diff --git a/dev/scheduler.md b/dev/scheduler.md deleted file mode 100644 index d95fee8..0000000 --- a/dev/scheduler.md +++ /dev/null @@ -1,71 +0,0 @@ - -Lets define a simple workflow. -Side effects are stubbed to ensure we keep a record of their invocation. - -```clojure -(defn http-get [url] - (http/get ...)) - -(defn http-put [url] - (http/put ...)) - -(defn-workflow simple-workflow [] - (let [do-get (stub http-get) - result (do-get "http://some/url.json")] - result)) - -(simple-workflow) -``` - -The library will save all invocations and results. - -| num | event | id | args | result | -|-----|-------------------------|----|------------------------|----------------| -| 1 | simple-workflow/invoke | 1 | | | -| 2 | http-get/invoke | 2 | "http://some/url.json" | | -| 3 | http-get/success | 2 | | {:some "json"} | -| 4 | simple-workflow/success | 1 | | | - -If the workflow crashed at any point, we can replay the function and the stubs will take care of -retrieving the correct values to ensure we restore the workflow state. This has to be deterministic so the events -exactly match the function/stub calls. - - -Now it gets tricky. Assume some macro `async-thread` that allows you to run code within a separate thread. - -```clojure -(defn-workflow threaded-workflow [] - (let [do-get (stub http-get) - do-put (stub http-put) - prom1 (async-thread (do-get "http://some/data.json")) ;; thread t1 - prom2 (async-thread (do-put "http://some/other.json"))] ;; thread t2 (2) - ;; (1) lets assume a crash here - ;; block and wait for all promises - (deref (p/all [prom1 prom2])))) - -(threaded-workflow) -``` - -The produced log can look like this: - -| num | event | id | args | result | -|-----|---------------------------|-----|--------------------------|------------------------| -| 1 | simple-workflow/invoke | 1 | | | -| 2 | http-get/invoke | 2 | "http://some/data.json" | | -| 3 | http-put/invoke | 3 | "http://some/other.json" | | -| 4 | http-get/success | 2 | | {:data "json"} | -| 5 | http-put/success | 3 | | :ok | -| ~6~ | ~simple-workflow/success~ | ~1~ | | ~[{:data "json"} :ok]~ | - -However, because the threaded code can run arbitrarily slow (eg slow http server response), how do we guarantee the replay -is deterministic? More specifically, if the workflow crashed on `(1)` and we saved up to `num` `5`, when replaying the code -there's a chance the second thread (2) finishes faster than the first one; in this scenario we would produce -`http-put/success` first, and it wouldn't match the event log, making replay impossible. - -This stack overflow post has a nice explanation: https://stackoverflow.com/questions/71356668/how-does-multi-threading-works-in-cadence-temporal-workflow/71356669#71356669 -but I still haven't fully wrapped my head around how they implement it; the way I did it in my lib is a bit convoluted (I do the event save for threads lazily, in order, on the main workflow thread) -but it appears to work, but I'd like a cleaner, saner approach to this problem. - -TLDR: a deterministic way to run (cooperative) multithreaded code so the "event" log is always the same for the same inputs - -Hope the problem is clear by now \ No newline at end of file diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 1e658b5..b6745ee 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.19.0.2:4500 +docker:docker@172.19.0.3:4500 diff --git a/resources/migrations/postgres/20240326161343-initial.down.sql b/resources/migrations/postgres/20240326161343-initial.down.sql deleted file mode 100644 index ee512e3..0000000 --- a/resources/migrations/postgres/20240326161343-initial.down.sql +++ /dev/null @@ -1,5 +0,0 @@ -drop table if exists events; - ---;; - -drop table if exists tasks; \ No newline at end of file diff --git a/resources/migrations/postgres/20240326161343-initial.up.sql b/resources/migrations/postgres/20240326161343-initial.up.sql deleted file mode 100644 index 72fad5b..0000000 --- a/resources/migrations/postgres/20240326161343-initial.up.sql +++ /dev/null @@ -1,31 +0,0 @@ -CREATE TABLE IF NOT EXISTS tasks ( - id varchar(50) NOT NULL, - proto varchar(200)NULL, - type varchar(50) NOT NULL, - ref varchar(50) NULL, - root varchar(50) NULL, - sym varchar(200) NOT NULL, - args bytea NULL, - result bytea NULL, - state varchar(20) NOT NULL, - owner varchar(50) NULL, - lease_end timestamp, - runtime bytea, - PRIMARY KEY (id), - FOREIGN KEY (ref) REFERENCES tasks(id), - FOREIGN KEY (root) REFERENCES tasks(id) -) - ---;; - -CREATE TABLE IF NOT EXISTS events ( - id SERIAL PRIMARY KEY, - type varchar(50) NOT NULL, - ref varchar(50) NULL, --NOT NULL, - root varchar(50) NOT NULL, - sym varchar(200) NOT NULL, - args bytea NULL, - result bytea NULL, - --FOREIGN KEY (ref) REFERENCES tasks(id) on delete set null, - FOREIGN KEY (root) REFERENCES tasks(id) on delete set null -) \ No newline at end of file diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 9a78b4d..a877eae 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -4,6 +4,7 @@ [intemporal.internal.activity :as a] [intemporal.internal.runtime :as runtime] [intemporal.internal.execution :as exec] + [intemporal.internal.logging :as log] [intemporal.protocol :as p] [intemporal.store :as store] [intemporal.observer :as obs])) @@ -25,41 +26,48 @@ effective-timeout (or timeout-ms (:timeout-ms activity-info)) effective-retry (or retry-policy (:retry-policy activity-info))] (fn [& args] - (ctx/check-cancelled!) - (let [ctx (ctx/current-context) - seq-num (ctx/next-seq!) - store (ctx/current-store) - workflow-id (ctx/current-workflow-id) - existing (p/find-event store workflow-id :activity-completed seq-num) - existing-failed (p/find-event store workflow-id :activity-failed seq-num)] - (cond - ;; Replay: return cached result - existing - (:result existing) - - ;; Replay: throw cached error - existing-failed - (throw (error/map->exception (:error existing-failed))) - - ;; Execute: need to run the activity - :else - (let [scheduled-event {:event-type :activity-scheduled - :seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy (when effective-retry - {:max-attempts (:max-attempts effective-retry) - :backoff-ms (:backoff-ms effective-retry)}) - :timestamp (System/currentTimeMillis)}] - (ctx/add-pending-event! scheduled-event) - (ctx/notify-observer p/on-activity-scheduled - (:workflow-id ctx) seq-num activity-name (vec args)) - (throw (error/make-suspension :activity {:seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy effective-retry})))))))) + (log/with-mdc {:activity activity-name} + + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + seq-num (ctx/next-seq!) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :activity-completed seq-num) + existing-failed (p/find-event store workflow-id :activity-failed seq-num)] + (cond + ;; Replay: return cached result + existing + (do + (log/tracef "Found existing result for activity") + (:result existing)) + + ;; Replay: throw cached error + existing-failed + (do + (log/tracef "Found existing error for activity") + (throw (error/map->exception (:error existing-failed)))) + + ;; Execute: need to run the activity + :else + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy (when effective-retry + {:max-attempts (:max-attempts effective-retry) + :backoff-ms (:backoff-ms effective-retry)}) + :timestamp (System/currentTimeMillis)}] + (ctx/add-pending-event! scheduled-event) + (ctx/notify-observer p/on-activity-scheduled + (:workflow-id ctx) seq-num activity-name (vec args)) + (log/tracef "Scheduling activity with sequence number %d and suspending" seq-num) + (throw (error/make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy effective-retry}))))))))) ;; ============================================================================ ;; Async Support @@ -85,18 +93,22 @@ (do ;; Advance seq counter to skip past all seqs consumed by this async (ctx/update-seq! existing-completed) + (log/tracef "Async already succeeded with sequence number %d, advancing sequence number" seq-num) (->AsyncHandle seq-num)) ;; Already failed - advance seq past consumed numbers during replay existing-failed (do (ctx/update-seq! existing-failed) + (log/infof "Async already failed with sequence number %d, advancing sequence number" seq-num) (->AsyncHandle seq-num)) ;; Already started but not completed - return handle (will block on join) ;; During replay, don't re-execute the thunk - just wait for completion event existing-started - (->AsyncHandle seq-num) + (do + (log/infof "Async already started with sequence number %d" seq-num) + (->AsyncHandle seq-num)) ;; Need to start - record and try to capture what activity it needs :else @@ -108,6 +120,7 @@ (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) ;; Try to execute the thunk to see what activity it wants (try + (log/infof "Invoking thunk with sequence number %d" seq-num) (let [result (thunk) ;; Capture the last seq number after thunk execution end-seq (dec @(:seq-counter (ctx/current-context)))] @@ -119,11 +132,14 @@ :result result :timestamp (System/currentTimeMillis)}) (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) + (log/tracef "Async completed successfully with sequence number %d and result %s" seq-num result) (->AsyncHandle start-seq)) (catch Throwable e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution - (let [suspension-info (error/suspension-data e)] + (let [suspension-info (error/suspension-data e) + activity-name (:activity-name suspension-info)] + (log/tracef "Async suspended with sequence number %d for activity %s" seq-num activity-name) (ctx/add-pending-async! {:handle-seq start-seq :activity-name (:activity-name suspension-info) :activity-seq (:seq suspension-info) @@ -132,7 +148,10 @@ :retry-policy (:retry-policy suspension-info)}) ;; Return handle - we'll batch execute later (->AsyncHandle start-seq)) - (throw e)))))))) + ;; else + (do + (log/tracef e "Async failed with sequence number %d" seq-num) + (throw e))))))))) (defn join "Wait for an async handle to complete. @@ -147,7 +166,8 @@ failed (p/find-event store workflow-id :async-failed handle-seq)] (cond completed - (:result completed) + (do + (:result completed)) failed (throw (error/async-failed-exception handle-seq (:error failed))) @@ -323,47 +343,57 @@ ;; TODO fixme this could be passed via the `with-workflow-engine` macro observer (or observer (get engine :observer)) wake-fn (fn wake-fn-impl [] - (try - (when observer - (p/on-workflow-resumed observer wf-id)) - (let [old-promise @resume-promise-atom - new-promise (promise) - ;_ (reset! resume-promise-atom new-promise) - result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn-impl})] - (reset! resume-promise-atom new-promise) - (deliver old-promise result)) - (catch Exception e - (when-let [p @resume-promise-atom] - (deliver p {:status :failed :error e})))))] - ;; Initialize with first promise - (reset! resume-promise-atom (promise)) - (p/save-event store wf-id {:event-type :workflow-started - :workflow-id wf-id - :args (vec args) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-started observer wf-id args)) - (try - ;; Execute initial workflow run - (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn})] - ;; Loop to handle multiple wait cycles - (loop [result initial-result] - ;; If workflow is waiting, block until wake-fn delivers next result - (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) - ;; Capture the promise that wake-fn will deliver to - (let [next-promise @resume-promise-atom - next-result @next-promise] - (recur next-result)) - result))) - (catch Exception e - ;; If cancelled/failed before entering wait state, re-throw - (throw e))))) + (log/with-mdc {:workflow-id wf-id} + (try + (when observer + (p/on-workflow-resumed observer wf-id)) + (log/debugf "Waking workflow for resume") + (let [old-promise @resume-promise-atom + new-promise (promise) + ;_ (reset! resume-promise-atom new-promise) + result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn-impl})] + (reset! resume-promise-atom new-promise) + (deliver old-promise result)) + (catch Exception e + (when-let [p @resume-promise-atom] + (deliver p {:status :failed :error e}))))))] + + (log/with-mdc {:workflow-id wf-id} + ;; Initialize with first promise + (reset! resume-promise-atom (promise)) + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (System/currentTimeMillis)}) + (when observer + (p/on-workflow-started observer wf-id args)) + (log/info "Workflow started") + (try + ;; Execute initial workflow run + (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + ;; Loop to handle multiple wait cycles + (loop [result initial-result] + ;; If workflow is waiting, block until wake-fn delivers next result + (log/infof "Got result %s with status %s" initial-result (:status initial-result)) + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) + ;; Capture the promise that wake-fn will deliver to + (do + (log/infof "Workflow waiting for promise: %s" (:status result)) + (let [next-promise @resume-promise-atom + next-result @next-promise] + (recur next-result))) + ;; else + result))) + (catch Exception e + ;; If cancelled/failed before entering wait state, re-throw + (log/warnf e "Caught exception") + (throw e)))))) (defn resume-workflow "Resume a waiting workflow (e.g., after signal delivery or timer). @@ -386,6 +416,7 @@ :or {max-iterations 1000}}] (when observer (p/on-workflow-resumed observer workflow-id)) + (log/info "Workflow resumed") (exec/run-workflow-internal engine workflow-id workflow-fn args {:observer observer :max-iterations max-iterations})) @@ -403,14 +434,18 @@ - :signal-id - Custom signal ID for idempotency" [store workflow-id signal-name payload & {:keys [signal-id]}] (let [id (or signal-id (str (random-uuid)))] - (p/add-signal store workflow-id signal-name {:id id :payload payload}) + (log/with-mdc {:workflow-id workflow-id} + (p/add-signal store workflow-id signal-name {:id id :payload payload}) + (log/debugf "Adding signal %s" signal-name)) {:signal-id id})) (defn cancel-workflow "Cancel a running workflow. The workflow will be cancelled at the next suspension point." [store workflow-id] - (p/mark-cancelled store workflow-id) + (log/with-mdc {:workflow-id workflow-id} + (p/mark-cancelled store workflow-id) + (log/debugf "Cancelling workflow")) {:cancelled true :workflow-id workflow-id}) (defn get-workflow-history @@ -437,19 +472,21 @@ Returns a map with :store, :executor, :scheduler, :registry, and :observer. Options: + - :store - instance of protocols/IStore - :threads - Number of executor threads (default: 4) - :scheduler-threads - Number of scheduler threads (default: 2) - :default-timeout-ms - Default activity timeout (default: 30000) - :enable-logging - Enable logging observer (default: false) - :observer - Custom observer instance (overrides :enable-logging)" - [& {:keys [threads scheduler-threads default-timeout-ms enable-logging observer] - :or {threads 4 + [& {:keys [store threads scheduler-threads default-timeout-ms enable-logging observer] + :or {store (store/->InMemoryStore (atom {})) + threads 4 scheduler-threads 2 default-timeout-ms 30000 enable-logging false}}] (let [registry (a/make-registry) log-atom (when enable-logging (atom []))] - {:store (store/->InMemoryStore (atom {})) + {:store store :executor (runtime/make-vthreads-executor registry :threads threads :default-timeout-ms default-timeout-ms) @@ -465,6 +502,7 @@ (defn shutdown-engine "Shutdown all components of a workflow engine" [{:keys [executor scheduler]}] + (log/infof "Shutting down engine") (p/shutdown-executor executor) (p/shutdown-scheduler scheduler)) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 13c3d86..517c3e2 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -2,6 +2,7 @@ (:require [intemporal.internal.activity :as a] [intemporal.internal.context :as ctx] [intemporal.internal.error :as error] + [intemporal.internal.logging :as log] [intemporal.protocol :as p])) ;; ============================================================================ @@ -44,11 +45,13 @@ (if (nil? retry-policy) ;; No retry - execute once (let [start (System/currentTimeMillis)] + (log/infof "Executing activity") (-notify p/on-activity-started observer workflow-id seq-num activity-name) (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) + (log/infof "Activity succeeded, result: %s" result) {:status :success :result result :duration duration}) @@ -56,25 +59,29 @@ (let [duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name (error/throwable->map e) duration) + (log/warnf e "Activity failed") {:status :failed :error (error/throwable->map e) :duration duration})))) ;; With retry (loop [attempt 1] (-notify p/on-activity-started observer workflow-id seq-num activity-name) + (log/infof "Executing activity (attempt %d)" attempt) (let [start (System/currentTimeMillis) exec-result (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) - {:status :success - :result result + (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) + {:status :success + :result result :duration duration :attempts attempt}) (catch Exception e (let [duration (- (System/currentTimeMillis) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity failed (attempt %d)" attempt) {:status :retry-or-fail :error error-map :exception e @@ -86,7 +93,7 @@ :retry-or-fail (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] - (prn (format "attempt %d: sleeping %s before retrying" attempt backoff)) + (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) (Thread/sleep (long backoff)) (recur (inc attempt))) ;; else @@ -95,25 +102,27 @@ :duration (:duration exec-result) :attempts attempt})))))) -(defn process-pending-activity [store executor workflow-id suspension-data pending-events observer] - (let [{:keys [seq activity-name args timeout-ms retry-policy]} suspension-data - exec-result (execute-with-retry executor activity-name args timeout-ms - retry-policy observer workflow-id seq)] - ;; Save all pending events first - (p/save-events store workflow-id pending-events) - ;; Then save the completion or failure - (let [success? (= :success (:status exec-result)) - event (cond-> {:event-type (if success? :activity-completed :activity-failed) - :seq seq - :activity-name activity-name - :result (:result exec-result) - :duration-ms (:duration exec-result) - :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)} - success? (assoc :result (:result exec-result)) - (not success?) (assoc :error (:error exec-result)))] - (p/save-event store workflow-id event) - :continue))) +(defn process-pending-activity [store executor workflow-id + {:keys [seq activity-name args timeout-ms retry-policy] :as suspension-data} + pending-events observer] + (log/with-mdc {:activity activity-name} + (let [exec-result (execute-with-retry executor activity-name args timeout-ms + retry-policy observer workflow-id seq)] + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + ;; Then save the completion or failure + (let [success? (= :success (:status exec-result)) + event (cond-> {:event-type (if success? :activity-completed :activity-failed) + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (System/currentTimeMillis)} + success? (assoc :result (:result exec-result)) + (not success?) (assoc :error (:error exec-result)))] + (p/save-event store workflow-id event) + :continue)))) (defn process-pending-asyncs-parallel "Process all pending async operations in parallel" @@ -129,10 +138,15 @@ ;; Create completion events for both activities and async handles completion-events - (mapcat (fn [async-info result] + (mapcat (fn [{:keys [activity-name] :as async-info} result] + (log/with-mdc {:activity activity-name} (if (= :success (:status result)) + (do (-notify p/on-async-completed observer workflow-id (:handle-seq async-info) (:result result)) - (-notify p/on-async-failed observer workflow-id (:handle-seq async-info) (:error result))) + (log/tracef "Got completion event: activity succeeded, result: %s" result)) + (do + (-notify p/on-async-failed observer workflow-id (:handle-seq async-info) (:error result)) + (log/tracef "Got completion event: activity failed, error: %s" (:error result)))) (if (= :success (:status result)) [{:event-type :activity-completed :seq (:activity-seq async-info) @@ -145,7 +159,7 @@ :last-seq (:activity-seq async-info) :result (:result result) :timestamp now}] - ;; else + ;; else [{:event-type :activity-failed :seq (:activity-seq async-info) :activity-name (:activity-name async-info) @@ -155,7 +169,7 @@ :seq (:handle-seq async-info) :last-seq (:activity-seq async-info) :error (:error result) - :timestamp now}])) + :timestamp now}]))) pending-asyncs results)] (p/save-events store workflow-id completion-events))) :continue) @@ -473,15 +487,20 @@ (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id :iterations iteration}))) + (log/debugf "Internal loop %d of %d" iteration max-iterations) + ;; Check cancellation at start of each iteration (if (p/is-cancelled? store workflow-id) (let [error-map {:type "clojure.lang.ExceptionInfo" :message "Workflow cancelled" :data {:workflow-id workflow-id}}] + (-notify p/on-workflow-cancelled observer workflow-id) (p/save-event store workflow-id {:event-type :workflow-failed - :error error-map - :timestamp (System/currentTimeMillis)}) + :error error-map + :timestamp (System/currentTimeMillis)}) + + (log/info "Workflow cancelled, failing") (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed :workflow-id workflow-id @@ -490,8 +509,10 @@ (let [history (p/load-history store workflow-id) ctx (make-workflow-context workflow-id history store registry observer) exec-result (binding [ctx/*workflow-context* ctx] + (log/debugf "Executing workflow function %s..." workflow-fn) (execute-workflow-fn workflow-fn args))] + (log/debugf "Workflow function executed, got: %s" (:status exec-result)) (case (:status exec-result) :completed (finalize-completed store executor workflow-id @@ -545,6 +566,7 @@ :child-workflow-id child-workflow-id :result (:result result) :timestamp (System/currentTimeMillis)}) + (log/infof "Child workflow with id %s completed" child-workflow-id) :continue) ;; ELSE (do @@ -555,6 +577,7 @@ {:status (:status result) :message (str "Child workflow ended with status: " (:status result))}) :timestamp (System/currentTimeMillis)}) + (log/infof "Child workflow with id %s failed, status: %s, error: %s" child-workflow-id (:status result) (:error result)) :continue))) (catch Exception e (p/save-event store workflow-id {:event-type :child-workflow-failed @@ -562,4 +585,5 @@ :child-workflow-id child-workflow-id :error (error/throwable->map e) :timestamp (System/currentTimeMillis)}) + (log/warnf e "Error while executing child workflow with id %s" child-workflow-id) :continue)))) \ No newline at end of file diff --git a/src/intemporal/internal/logging.clj b/src/intemporal/internal/logging.clj new file mode 100644 index 0000000..8083a93 --- /dev/null +++ b/src/intemporal/internal/logging.clj @@ -0,0 +1,102 @@ +(ns intemporal.internal.logging + (:require [clojure.tools.logging :as l :refer [logp logf]]) + (:import (org.slf4j MDC))) + +(defmacro with-mdc + [m & body] + `(try + (doseq [[k# v#] ~m] + (MDC/put (name k#) (str v#))) + (do ~@body) + (finally + (doseq [k# (keys ~m)] + (MDC/remove (name k#)))))) + +(with-mdc {:workflow-id 1} + (l/info "XXX")) + +;; level-specific macros + +(defmacro trace + "Trace level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :trace ~@args)) + +(defmacro debug + "Debug level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :debug ~@args)) + +(defmacro info + "Info level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :info ~@args)) + +(defmacro warn + "Warn level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :warn ~@args)) + +(defmacro error + "Error level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :error ~@args)) + +(defmacro fatal + "Fatal level logging using print-style args. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([message & more] [throwable message & more])} + [& args] + `(logp :fatal ~@args)) + +(defmacro tracef + "Trace level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :trace ~@args)) + +(defmacro debugf + "Debug level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :debug ~@args)) + +(defmacro infof + "Info level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :info ~@args)) + +(defmacro warnf + "Warn level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :warn ~@args)) + +(defmacro errorf + "Error level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :error ~@args)) + +(defmacro fatalf + "Fatal level logging using format. + Use the 'logging.readable' namespace to avoid wrapping args in pr-str." + {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} + [& args] + `(logf :fatal ~@args)) \ No newline at end of file diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index fbc4664..ae0c353 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -1,6 +1,6 @@ (ns intemporal.internal.macros - (:require [cljs.analyzer.api :as api] - [md5.core :as md5]) + (:require [cljs.analyzer.api :as api]) + ;[md5.core :as md5]) #?(:clj (:require [net.cgrand.macrovich :as macros]) ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) :cljs (:require-macros [net.cgrand.macrovich :as macros]))) @@ -24,8 +24,8 @@ "Defines a workflow. Workflows are functions that are resillient to crashes, as long as side-effects are run via activities." [sym argv & body] - (let [wname (symbol (str sym "-")) - sig (md5/string->md5-hex (str body))] + (let [wname (symbol (str sym "-"))] + ;sig (md5/string->md5-hex (str body))] ;; TODO save signature `(do (defn- ~wname ~argv (do ~@body)) diff --git a/test/intemporal/tests/crash/exception_inject_test.clj b/test/intemporal/tests/crash/exception_inject_test.clj new file mode 100644 index 0000000..99d8ef6 --- /dev/null +++ b/test/intemporal/tests/crash/exception_inject_test.clj @@ -0,0 +1,128 @@ +(ns ^:crash intemporal.tests.crash.exception-inject-test + "Crash recovery test demonstrating workflow persistence across process restart. + Tests that a simple workflow can be resumed after simulated crash, + demonstrating that completed activities are not re-executed." + (:require [intemporal.core :as intemporal] + [intemporal.store :as store] + [intemporal.protocol :as p] + [clojure.test :refer [deftest is testing]])) + +;; ============================================================================ +;; Test Infrastructure +;; ============================================================================ + +(def execution-counter (atom 0)) + +(defn tracked-activity [x] + "Simple activity that increments counter to track executions" + (swap! execution-counter inc) + (Thread/sleep 50) ;; Simulate work + (* x 2)) + +(defn simple-workflow [id num-activities crash-point] + "Workflow that suspends at crash-point for testing" + (let [stub (intemporal/stub #'tracked-activity)] + (loop [i 0 + results []] + (if (< i num-activities) + (do + ;; Simulate crash by waiting for signal at crash point + (when (= i crash-point) + (intemporal/wait-for-signal "resume")) + (recur (inc i) (conj results (stub i)))) + {:id id :results results})))) + +(defn verify-history [store workflow-id] + "Count completed activities in event history" + (let [history (p/load-history store workflow-id) + completed (filter #(= :activity-completed (:event-type %)) history)] + (count completed))) + +(defn count-failed-activities [store workflow-id] + "Count failed activities in event history" + (let [history (p/load-history store workflow-id) + failed (filter #(= :activity-failed (:event-type %)) history)] + (count failed))) + +;; ============================================================================ +;; Tests +;; ============================================================================ + +(deftest test-exception-inject-crash-recovery + (testing "Simple crash recovery - workflow resumes from suspension point" + (reset! execution-counter 0) + + ;; Test configuration + (let [workflow-id "simple-crash-test-1" + num-activities 5 + crash-point 3 ;; Suspend after completing activities 0, 1, 2 + ;; Create store that persists across "crash" + persistent-store (store/->InMemoryStore (atom {}))] + + ;; ====================================================================== + ;; Phase 1: Execute workflow until suspension point ("crash") + ;; ====================================================================== + (testing "Phase 1: Execute until crash point (signal wait)" + (let [engine-1 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + result-1 (intemporal/start-workflow + engine-1 + simple-workflow + [workflow-id num-activities crash-point] + :workflow-id workflow-id)] + + ;; Workflow should suspend waiting for signal + (is (= :waiting-signal (:status result-1)) + "Workflow should suspend waiting for 'resume' signal") + + ;; Verify: 3 activities executed (0, 1, 2) + (is (= crash-point @execution-counter) + (str "Should have executed " crash-point " activities before suspension")) + + ;; Verify: History contains 3 activity-completed events + (is (= crash-point (verify-history persistent-store workflow-id)) + (str "History should contain " crash-point " completed activity events")))) + + ;; ====================================================================== + ;; Phase 2: Resume workflow after simulated crash with new engine + ;; ====================================================================== + (testing "Phase 2: Resume after crash - activities not re-executed" + (let [pre-resume-count @execution-counter + ;; Create NEW engine with SAME store (simulates process restart) + engine-2 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + ;; Resume workflow in background + resume-future (future + (intemporal/resume-workflow + engine-2 + workflow-id + simple-workflow + [workflow-id num-activities crash-point]))] + + ;; Send the "resume" signal to continue workflow + (Thread/sleep 200) ;; Give resume time to start + (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) + + ;; Wait for workflow to complete + (let [result-2 @resume-future] + + ;; Verify: Workflow completed successfully + (is (= :completed (:status result-2)) + "Resumed workflow should complete successfully") + + ;; Verify: Activities 0-2 were NOT re-executed (used cache) + ;; Only activities 3-4 should have executed (2 new executions) + (is (= num-activities @execution-counter) + (str "Should have " num-activities " total executions (not " @execution-counter ")")) + + ;; Verify: Final result is correct + (is (= {:id workflow-id + :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 + (:result result-2)) + "Final result should be correct") + + ;; Verify: History has all 5 completed activities + (is (= num-activities (verify-history persistent-store workflow-id)) + (str "Final history should contain " num-activities " completed activities")))))))) diff --git a/test/intemporal/tests/crash/future_cancel_test.clj b/test/intemporal/tests/crash/future_cancel_test.clj new file mode 100644 index 0000000..b5e1066 --- /dev/null +++ b/test/intemporal/tests/crash/future_cancel_test.clj @@ -0,0 +1,126 @@ +(ns ^:crash intemporal.tests.crash.future-cancel-test + "Crash recovery test using future cancellation. + Workflow executes in a future which we cancel mid-execution to simulate + an abrupt crash, then we create a new engine and resume." + (:require [intemporal.core :as intemporal] + [intemporal.store :as store] + [intemporal.protocol :as p] + [clojure.test :refer [deftest is testing]])) + +;; ============================================================================ +;; Test Infrastructure +;; ============================================================================ + +(def execution-counter (atom 0)) + +(defn tracked-activity [x] + "Activity that increments counter to track actual executions (not replays)" + (swap! execution-counter inc) + (Thread/sleep 100) ;; Longer sleep to ensure we can interrupt + (* x 2)) + +(defn future-crash-workflow [id num-activities] + "Simple workflow that executes activities sequentially" + (let [stub (intemporal/stub #'tracked-activity)] + (loop [i 0 + results []] + (if (< i num-activities) + (recur (inc i) (conj results (stub i))) + {:id id :results results})))) + +(defn verify-history [store workflow-id] + "Count completed activities in event history" + (let [history (p/load-history store workflow-id) + completed (filter #(= :activity-completed (:event-type %)) history)] + (count completed))) + +;; ============================================================================ +;; Tests +;; ============================================================================ + +(deftest test-future-cancel-crash-recovery + (testing "Workflow resumes correctly after future cancellation (abrupt crash)" + (reset! execution-counter 0) + + ;; Test configuration + (let [workflow-id "future-crash-test-1" + num-activities 5 + crash-after 3 ;; Cancel after 3 activities complete + ;; Create store that persists across "crash" + persistent-store (store/->InMemoryStore (atom {}))] + + ;; ====================================================================== + ;; Phase 1: Execute workflow in future and cancel it (simulate crash) + ;; ====================================================================== + (testing "Phase 1: Execute until crash (future cancel)" + (let [engine-1 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + ;; Start workflow in background future + workflow-future (future + (try + (intemporal/start-workflow + engine-1 + future-crash-workflow + [workflow-id num-activities] + :workflow-id workflow-id) + (catch Exception e + ;; Future cancellation may throw + {:status :interrupted :error e})))] + + ;; Wait for crash-after activities to complete + (while (< @execution-counter crash-after) + (Thread/sleep 50)) + + ;; Give it a bit more time to ensure activity is persisted + (Thread/sleep 150) + + ;; Simulate crash by canceling the future + (future-cancel workflow-future) + + ;; Wait a bit for cancellation to take effect + (Thread/sleep 100) + + ;; Verify: At least crash-after activities executed + (is (>= @execution-counter crash-after) + (str "Should have executed at least " crash-after " activities before crash")) + + ;; Verify: History contains at least crash-after completed events + (let [completed-count (verify-history persistent-store workflow-id)] + (is (>= completed-count crash-after) + (str "History should contain at least " crash-after " completed activity events, found " completed-count))))) + + ;; ====================================================================== + ;; Phase 2: Resume workflow after "crash" with new engine + ;; ====================================================================== + (testing "Phase 2: Resume after crash with new engine" + (let [pre-resume-count @execution-counter + ;; Create NEW engine with SAME store (simulates process restart) + engine-2 (intemporal/make-workflow-engine + :store persistent-store ;; Same store! + :threads 2) + ;; Resume workflow + result-2 (intemporal/resume-workflow + engine-2 + workflow-id + future-crash-workflow + [workflow-id num-activities])] + + ;; Verify: Workflow completed successfully + (is (= :completed (:status result-2)) + "Resumed workflow should complete successfully") + + ;; Verify: Activities were NOT re-executed + ;; Total executions should be num-activities (some from phase 1, rest from phase 2) + (is (<= @execution-counter num-activities) + (str "Should have at most " num-activities " total executions (found " @execution-counter ")")) + + ;; Verify: Final result is correct + (is (= {:id workflow-id + :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 + (:result result-2)) + "Final result should be correct") + + ;; Verify: History has all 5 completed activities + (is (= num-activities (verify-history persistent-store workflow-id)) + (str "Final history should contain " num-activities " completed activities"))))))) diff --git a/test/intemporal/tests/crash/run_manual_test.clj b/test/intemporal/tests/crash/run_manual_test.clj new file mode 100644 index 0000000..db316ab --- /dev/null +++ b/test/intemporal/tests/crash/run_manual_test.clj @@ -0,0 +1,106 @@ +(ns ^:crash intemporal.tests.crash.run-manual-test + "Manual test runner to verify crash recovery without kaocha infrastructure" + (:require [intemporal.core :as intemporal] + [intemporal.store :as store] + [intemporal.protocol :as p])) + +(def execution-counter (atom 0)) + +(defn tracked-activity [x] + "Activity that increments counter to track actual executions (not replays)" + (swap! execution-counter inc) + (println " -> Executing activity" x "(execution #" @execution-counter ")") + (Thread/sleep 50) + (* x 2)) + +(defn signal-crash-workflow [id num-activities crash-point] + "Workflow that suspends at crash-point waiting for 'resume' signal" + (println " Workflow starting with id:" id) + (let [stub (intemporal/stub #'tracked-activity)] + (loop [i 0 + results []] + (if (< i num-activities) + (do + (when (= i crash-point) + (println " Suspending at crash point" crash-point) + (intemporal/wait-for-signal "resume")) + (recur (inc i) (conj results (stub i)))) + (do + (println " Workflow completed with results:" results) + {:id id :results results}))))) + +(defn verify-history [store workflow-id] + (let [history (p/load-history store workflow-id) + completed (filter #(= :activity-completed (:event-type %)) history)] + (count completed))) + +(defn -main [] + (println "\n=== Manual Crash Recovery Test ===\n") + + (reset! execution-counter 0) + (let [workflow-id "manual-crash-test" + num-activities 5 + crash-point 3 + persistent-store (store/->InMemoryStore (atom {}))] + + (println "Phase 1: Execute until crash point...") + (let [engine-1 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + result-1 (intemporal/start-workflow + engine-1 + signal-crash-workflow + [workflow-id num-activities crash-point] + :workflow-id workflow-id)] + + (println "\nPhase 1 Results:") + (println " Status:" (:status result-1)) + (println " Execution counter:" @execution-counter) + (println " Completed activities in history:" (verify-history persistent-store workflow-id)) + + (assert (= :waiting-signal (:status result-1)) + "Expected :waiting-signal status") + (assert (= crash-point @execution-counter) + (str "Expected " crash-point " executions")) + (assert (= crash-point (verify-history persistent-store workflow-id)) + (str "Expected " crash-point " completed activities in history")) + + (println " ✓ Phase 1 passed")) + + (println "\nPhase 2: Resume after crash with new engine...") + (let [engine-2 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + resume-future (future + (intemporal/resume-workflow + engine-2 + workflow-id + signal-crash-workflow + [workflow-id num-activities crash-point]))] + + (Thread/sleep 200) + (println " Sending resume signal...") + (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) + + (let [result-2 @resume-future] + (println "\nPhase 2 Results:") + (println " Status:" (:status result-2)) + (println " Execution counter:" @execution-counter) + (println " Result:" (:result result-2)) + (println " Completed activities in history:" (verify-history persistent-store workflow-id)) + + (assert (= :completed (:status result-2)) + "Expected :completed status") + (assert (= num-activities @execution-counter) + (str "Expected " num-activities " total executions, got " @execution-counter)) + (assert (= {:id workflow-id :results [0 2 4 6 8]} (:result result-2)) + "Expected correct result") + (assert (= num-activities (verify-history persistent-store workflow-id)) + (str "Expected " num-activities " completed activities in history")) + + (println " ✓ Phase 2 passed"))) + + (println "\n=== ✓ Crash Recovery Test PASSED ===\n"))) + +(when (= *file* (System/getProperty "babashka.file")) + (-main)) diff --git a/test/intemporal/tests/crash/signal_based_test.clj b/test/intemporal/tests/crash/signal_based_test.clj new file mode 100644 index 0000000..30b1e45 --- /dev/null +++ b/test/intemporal/tests/crash/signal_based_test.clj @@ -0,0 +1,122 @@ +(ns ^:crash intemporal.tests.crash.signal-based-test + "Crash recovery test using signal-based suspension. + This is the cleanest approach - workflow suspends waiting for a signal, + then we create a new engine and resume." + (:require [intemporal.core :as intemporal] + [intemporal.store :as store] + [intemporal.protocol :as p] + [clojure.test :refer [deftest is testing]])) + +;; ============================================================================ +;; Test Infrastructure +;; ============================================================================ + +(def execution-counter (atom 0)) + +(defn tracked-activity [x] + "Activity that increments counter to track actual executions (not replays)" + (swap! execution-counter inc) + (Thread/sleep 50) ;; Simulate work + (* x 2)) + +(defn signal-crash-workflow [id num-activities crash-point] + "Workflow that suspends at crash-point waiting for 'resume' signal" + (let [stub (intemporal/stub #'tracked-activity)] + (loop [i 0 + results []] + (if (< i num-activities) + (do + ;; Suspend at crash point - simulates process crash + (when (= i crash-point) + (intemporal/wait-for-signal "resume")) + (recur (inc i) (conj results (stub i)))) + {:id id :results results})))) + +(defn verify-history [store workflow-id expected-completed] + "Verify the event history contains expected number of completed activities" + (let [history (p/load-history store workflow-id) + completed (filter #(= :activity-completed (:event-type %)) history)] + (count completed))) + +;; ============================================================================ +;; Tests +;; ============================================================================ + +(deftest test-signal-based-crash-recovery + (testing "Workflow resumes correctly after signal-based suspension (simulated crash)" + (reset! execution-counter 0) + + ;; Test configuration + (let [workflow-id "signal-crash-test-1" + num-activities 5 + crash-point 3 ;; Suspend after completing activities 0, 1, 2 + ;; Create store that persists across "crash" + persistent-store (store/->InMemoryStore (atom {}))] + + ;; ====================================================================== + ;; Phase 1: Execute workflow until "crash" (suspension point) + ;; ====================================================================== + (testing "Phase 1: Execute until crash point" + (let [engine-1 (intemporal/make-workflow-engine + :store persistent-store + :threads 2) + result-1 (intemporal/start-workflow + engine-1 + signal-crash-workflow + [workflow-id num-activities crash-point] + :workflow-id workflow-id)] + + ;; Workflow should suspend waiting for signal + (is (= :waiting-signal (:status result-1)) + "Workflow should suspend waiting for 'resume' signal") + + ;; Verify: 3 activities executed (0, 1, 2) + (is (= crash-point @execution-counter) + (str "Should have executed " crash-point " activities before suspension")) + + ;; Verify: History contains 3 activity-completed events + (is (= crash-point (verify-history persistent-store workflow-id)) + (str "History should contain " crash-point " completed activity events")))) + + ;; ====================================================================== + ;; Phase 2: Resume workflow after "crash" with new engine + ;; ====================================================================== + (testing "Phase 2: Resume after crash with new engine" + (let [pre-resume-count @execution-counter + ;; Create NEW engine with SAME store (simulates process restart) + engine-2 (intemporal/make-workflow-engine + :store persistent-store ;; Same store! + :threads 2) + ;; Resume workflow in background + resume-future (future + (intemporal/resume-workflow + engine-2 + workflow-id + signal-crash-workflow + [workflow-id num-activities crash-point]))] + + ;; Send the "resume" signal to continue workflow + (Thread/sleep 100) ;; Give resume time to start + (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) + + ;; Wait for workflow to complete + (let [result-2 @resume-future] + + ;; Verify: Workflow completed successfully + (is (= :completed (:status result-2)) + "Resumed workflow should complete successfully") + + ;; Verify: Activities 0-2 were NOT re-executed (used cache) + ;; Only activities 3-4 should have executed + (is (= num-activities @execution-counter) + (str "Should have " num-activities " total executions (not " @execution-counter ")")) + + ;; Verify: Final result is correct + (is (= {:id workflow-id + :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 + (:result result-2)) + "Final result should be correct") + + ;; Verify: History has all 5 completed activities + (is (= num-activities (verify-history persistent-store workflow-id)) + (str "Final history should contain " num-activities " completed activities")))))))) diff --git a/test/intemporal/tests/crash/timer_based_test.clj b/test/intemporal/tests/crash/timer_based_test.clj new file mode 100644 index 0000000..effe8ae --- /dev/null +++ b/test/intemporal/tests/crash/timer_based_test.clj @@ -0,0 +1,116 @@ +(ns ^:crash intemporal.tests.crash.timer-based-test + "Crash recovery test using timer-based suspension. + Workflow suspends waiting for a timer at the crash point, + then we create a new engine and resume." + (:require [intemporal.core :as intemporal] + [intemporal.store :as store] + [intemporal.protocol :as p] + [clojure.test :refer [deftest is testing]])) + +;; ============================================================================ +;; Test Infrastructure +;; ============================================================================ + +(def execution-counter (atom 0)) + +(defn tracked-activity [x] + "Activity that increments counter to track actual executions (not replays)" + (swap! execution-counter inc) + (Thread/sleep 50) ;; Simulate work + (* x 2)) + +(defn timer-crash-workflow [id num-activities crash-point] + "Workflow that suspends on timer at crash-point" + (let [stub (intemporal/stub #'tracked-activity)] + (loop [i 0 + results []] + (if (< i num-activities) + (do + ;; Suspend on timer at crash point - simulates process crash + (when (= i crash-point) + (intemporal/sleep 100)) ;; Short timer for test speed + (recur (inc i) (conj results (stub i)))) + {:id id :results results})))) + +(defn verify-history [store workflow-id expected-completed] + "Verify the event history contains expected number of completed activities" + (let [history (p/load-history store workflow-id) + completed (filter #(= :activity-completed (:event-type %)) history)] + (count completed))) + +;; ============================================================================ +;; Tests +;; ============================================================================ + +(deftest test-timer-based-crash-recovery + (testing "Workflow resumes correctly after timer-based suspension (simulated crash)" + (reset! execution-counter 0) + + ;; Test configuration + (let [workflow-id "timer-crash-test-1" + num-activities 5 + crash-point 3 ;; Suspend after completing activities 0, 1, 2 + ;; Create store that persists across "crash" + persistent-store (store/->InMemoryStore (atom {}))] + + ;; ====================================================================== + ;; Phase 1: Execute workflow until "crash" (timer suspension) + ;; ====================================================================== + (testing "Phase 1: Execute until crash point" + (let [engine-1 (intemporal/make-workflow-engine + :store persistent-store + :threads 2 + :scheduler-threads 1) + result-1 (intemporal/start-workflow + engine-1 + timer-crash-workflow + [workflow-id num-activities crash-point] + :workflow-id workflow-id)] + + ;; Workflow should suspend waiting for timer + (is (= :waiting-timer (:status result-1)) + "Workflow should suspend waiting for timer") + + ;; Verify: 3 activities executed (0, 1, 2) + (is (= crash-point @execution-counter) + (str "Should have executed " crash-point " activities before suspension")) + + ;; Verify: History contains 3 activity-completed events + (is (= crash-point (verify-history persistent-store workflow-id)) + (str "History should contain " crash-point " completed activity events")))) + + ;; ====================================================================== + ;; Phase 2: Resume workflow after "crash" with new engine + ;; ====================================================================== + (testing "Phase 2: Resume after crash with new engine" + (let [pre-resume-count @execution-counter + ;; Create NEW engine with SAME store (simulates process restart) + engine-2 (intemporal/make-workflow-engine + :store persistent-store ;; Same store! + :threads 2 + :scheduler-threads 1) + ;; Resume workflow - timer will fire automatically + result-2 (intemporal/resume-workflow + engine-2 + workflow-id + timer-crash-workflow + [workflow-id num-activities crash-point])] + + ;; Verify: Workflow completed successfully + (is (= :completed (:status result-2)) + "Resumed workflow should complete successfully") + + ;; Verify: Activities 0-2 were NOT re-executed (used cache) + ;; Only activities 3-4 should have executed + (is (= num-activities @execution-counter) + (str "Should have " num-activities " total executions (not " @execution-counter ")")) + + ;; Verify: Final result is correct + (is (= {:id workflow-id + :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 + (:result result-2)) + "Final result should be correct") + + ;; Verify: History has all 5 completed activities + (is (= num-activities (verify-history persistent-store workflow-id)) + (str "Final history should contain " num-activities " completed activities"))))))) diff --git a/test/logback.xml b/test/logback.xml new file mode 100644 index 0000000..d2bcb30 --- /dev/null +++ b/test/logback.xml @@ -0,0 +1,14 @@ + + + + %d{HH:mm:ss.SSS} [%10.10thread-5] [WF:%10.10X{workflow-id}] [%X{activity}] %-5level %logger{36} - %msg%n + + + + + + + + + + diff --git a/tests.edn b/tests.edn index 0871a52..a5244ae 100644 --- a/tests.edn +++ b/tests.edn @@ -34,6 +34,7 @@ ;; jvm based tests {:id :test + :kaocha.filter/skip-meta [:crash] :ns-patterns ["-test$"] :source-paths ["src"] :test-paths ["test"]} From 5c5e29e9fcf7da356512a5a72ad1130b5320aa3f Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Thu, 22 Jan 2026 23:05:48 +0000 Subject: [PATCH 53/81] tidy up logging --- src/intemporal/core.clj | 10 +++++----- src/intemporal/internal/execution.clj | 14 ++++++++------ test/logback.xml | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index a877eae..674f4ad 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -39,13 +39,13 @@ ;; Replay: return cached result existing (do - (log/tracef "Found existing result for activity") + (log/infof "Found existing result for activity") (:result existing)) ;; Replay: throw cached error existing-failed (do - (log/tracef "Found existing error for activity") + (log/infof "Found existing error for activity") (throw (error/map->exception (:error existing-failed)))) ;; Execute: need to run the activity @@ -62,7 +62,7 @@ (ctx/add-pending-event! scheduled-event) (ctx/notify-observer p/on-activity-scheduled (:workflow-id ctx) seq-num activity-name (vec args)) - (log/tracef "Scheduling activity with sequence number %d and suspending" seq-num) + (log/infof "Scheduling activity with sequence number %d and suspending" seq-num) (throw (error/make-suspension :activity {:seq seq-num :activity-name activity-name :args (vec args) @@ -120,7 +120,7 @@ (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) ;; Try to execute the thunk to see what activity it wants (try - (log/infof "Invoking thunk with sequence number %d" seq-num) + (log/tracef "Invoking Async thunk with sequence number %d" seq-num) (let [result (thunk) ;; Capture the last seq number after thunk execution end-seq (dec @(:seq-counter (ctx/current-context)))] @@ -380,7 +380,7 @@ ;; Loop to handle multiple wait cycles (loop [result initial-result] ;; If workflow is waiting, block until wake-fn delivers next result - (log/infof "Got result %s with status %s" initial-result (:status initial-result)) + (log/infof "Got result %s with status %s" (:result initial-result) (:status initial-result)) (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) ;; Capture the promise that wake-fn will deliver to (do diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 517c3e2..45c99d6 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -45,13 +45,13 @@ (if (nil? retry-policy) ;; No retry - execute once (let [start (System/currentTimeMillis)] - (log/infof "Executing activity") + (log/infof "Executing activity with sequence number %d via executor %s" seq-num executor) (-notify p/on-activity-started observer workflow-id seq-num activity-name) (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) - (log/infof "Activity succeeded, result: %s" result) + (log/infof "Activity succeeded with sequence number %d, result: %s" seq-num result) {:status :success :result result :duration duration}) @@ -59,20 +59,21 @@ (let [duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name (error/throwable->map e) duration) - (log/warnf e "Activity failed") + (log/warnf e "Activity failed with sequence number %d" seq-num) {:status :failed :error (error/throwable->map e) :duration duration})))) ;; With retry (loop [attempt 1] (-notify p/on-activity-started observer workflow-id seq-num activity-name) - (log/infof "Executing activity (attempt %d)" attempt) + (log/infof "Executing activity with sequence number %d (attempt %d)" seq-num attempt) (let [start (System/currentTimeMillis) exec-result (try + (log/infof "Executing activity with sequence number %d via executor %s" seq-num executor) (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) - (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) + (log/infof "Activity succeeded with sequence number %d (attempt %d), result: %s" seq-num attempt result) {:status :success :result result :duration duration @@ -81,7 +82,7 @@ (let [duration (- (System/currentTimeMillis) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) - (log/warnf e "Activity failed (attempt %d)" attempt) + (log/warnf e "Activity failed with sequence number %d (attempt %d)" seq-num attempt) {:status :retry-or-fail :error error-map :exception e @@ -133,6 +134,7 @@ ;; Execute all activities in parallel ;; Pass complete async-info including retry-policy, activity-seq, handle-seq + (log/infof "Executing %d activities in parallel via executor %s" (count pending-asyncs) executor) (let [results (p/execute-activities-parallel executor pending-asyncs) now (System/currentTimeMillis) diff --git a/test/logback.xml b/test/logback.xml index d2bcb30..181ec57 100644 --- a/test/logback.xml +++ b/test/logback.xml @@ -5,7 +5,7 @@ - + From e0c8922a2bd3783e7f0423cc0ac5bd3d8dab7b9a Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 24 Jan 2026 10:14:35 +0000 Subject: [PATCH 54/81] add test --- src/intemporal/core.clj | 22 +++- src/intemporal/internal/error.clj | 10 ++ src/intemporal/internal/logging.clj | 3 - src/intemporal/internal/runtime.clj | 25 +++- src/intemporal/protocol.clj | 4 +- .../tests/crash/future_cancel_test.clj | 21 ++- .../tests/crash/run_manual_test.clj | 106 --------------- .../tests/crash/signal_based_test.clj | 122 ------------------ ...ct_test.clj => signal_wait_crash_test.clj} | 44 +++---- .../tests/crash/timer_based_test.clj | 116 ----------------- 10 files changed, 79 insertions(+), 394 deletions(-) delete mode 100644 test/intemporal/tests/crash/run_manual_test.clj delete mode 100644 test/intemporal/tests/crash/signal_based_test.clj rename test/intemporal/tests/crash/{exception_inject_test.clj => signal_wait_crash_test.clj} (81%) delete mode 100644 test/intemporal/tests/crash/timer_based_test.clj diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 674f4ad..00d3855 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -34,7 +34,9 @@ store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :activity-completed seq-num) - existing-failed (p/find-event store workflow-id :activity-failed seq-num)] + existing-failed (p/find-event store workflow-id :activity-failed seq-num) + err (some-> (:error existing-failed) (error/map->exception)) + interrupted? (boolean (some-> err (error/interruption?)))] (cond ;; Replay: return cached result existing @@ -43,10 +45,11 @@ (:result existing)) ;; Replay: throw cached error - existing-failed + ;; TODO decide how to handle interruptions, interrupt policy? + (and existing-failed #_(not interrupted?)) (do (log/infof "Found existing error for activity") - (throw (error/map->exception (:error existing-failed)))) + (throw err)) ;; Execute: need to run the activity :else @@ -59,6 +62,9 @@ {:max-attempts (:max-attempts effective-retry) :backoff-ms (:backoff-ms effective-retry)}) :timestamp (System/currentTimeMillis)}] + (when interrupted? + (log/infof "Activity was forcefully interrupted")) + (ctx/add-pending-event! scheduled-event) (ctx/notify-observer p/on-activity-scheduled (:workflow-id ctx) seq-num activity-name (vec args)) @@ -501,10 +507,12 @@ (defn shutdown-engine "Shutdown all components of a workflow engine" - [{:keys [executor scheduler]}] - (log/infof "Shutting down engine") - (p/shutdown-executor executor) - (p/shutdown-scheduler scheduler)) + ([{:keys [executor scheduler] :as engine}] + (shutdown-engine engine 0)) + ([{:keys [executor scheduler]} grace-period-secs] + (log/infof "Shutting down engine") + (p/shutdown-executor executor grace-period-secs) + (p/shutdown-scheduler scheduler grace-period-secs))) (defmacro with-workflow-engine "Execute body with a workflow engine, ensuring cleanup. diff --git a/src/intemporal/internal/error.clj b/src/intemporal/internal/error.clj index 5b896b3..b8795ff 100644 --- a/src/intemporal/internal/error.clj +++ b/src/intemporal/internal/error.clj @@ -26,6 +26,10 @@ (instance? IExceptionInfo e) (::suspension (ex-data e)))) +(defn interruption? [e] + (and (instance? IExceptionInfo e) + (::activity-interrupted (ex-data e)))) + (defn suspension-type [e] (-> e ex-data :type)) @@ -46,6 +50,12 @@ :activity-name activity-name :timeout-ms timeout-ms})) +(defn activity-interrupted-exception [activity-name cause] + (ex-info "Activity interrupted" + {::activity-interrupted true + :cause cause + :activity-name activity-name})) + (defn activity-failed-exception [activity-name cause] (ex-info "Activity failed" {::activity-failed true diff --git a/src/intemporal/internal/logging.clj b/src/intemporal/internal/logging.clj index 8083a93..a1a430d 100644 --- a/src/intemporal/internal/logging.clj +++ b/src/intemporal/internal/logging.clj @@ -12,9 +12,6 @@ (doseq [k# (keys ~m)] (MDC/remove (name k#)))))) -(with-mdc {:workflow-id 1} - (l/info "XXX")) - ;; level-specific macros (defmacro trace diff --git a/src/intemporal/internal/runtime.clj b/src/intemporal/internal/runtime.clj index ef1615f..38c6859 100644 --- a/src/intemporal/internal/runtime.clj +++ b/src/intemporal/internal/runtime.clj @@ -1,6 +1,7 @@ (ns intemporal.internal.runtime (:require [intemporal.internal.error :as error] [intemporal.internal.activity :as activity] + [intemporal.internal.logging :as log] [intemporal.protocol :as p]) (:import (java.util.concurrent ArrayBlockingQueue ExecutorService Executors Future ScheduledExecutorService ScheduledFuture ThreadPoolExecutor ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException))) @@ -30,11 +31,18 @@ (.cancel future false) (swap! pending-timers dissoc timer-key)))) - (shutdown-scheduler [_] + (shutdown-scheduler [_ grace-period-secs] (doseq [[_ ^ScheduledFuture future] @pending-timers] (.cancel future false)) (reset! pending-timers {}) - (.shutdown pool))) + (try + (.shutdown pool) + (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) + (.shutdownNow pool) + (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) + (log/error "Could not terminate all threads"))) + (catch InterruptedException e + (log/error e "Interrupted while shutting down pool"))))) (defn make-scheduler "Create a new scheduler" @@ -64,6 +72,8 @@ (catch TimeoutException _ (.cancel ^Future future true) (throw (error/activity-timeout-exception activity-name timeout))) + (catch InterruptedException e + (throw (error/activity-interrupted-exception activity-name (or (.getCause e) e)))) (catch Exception e (throw (error/activity-failed-exception activity-name (or (.getCause e) e))))))))) @@ -129,7 +139,16 @@ :error (error/throwable->map (or (.getCause e) e))}))) futures)))) - (shutdown-executor [_] + (shutdown-executor [_ grace-period-secs] + (try + (.shutdown pool) + (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) + (.shutdownNow pool) + (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) + (log/error "Could not terminate all threads"))) + (catch InterruptedException e + (log/error e "Interrupted while shutting down pool"))) + #_#_ (.shutdown pool) (.awaitTermination pool 30 TimeUnit/SECONDS))) diff --git a/src/intemporal/protocol.clj b/src/intemporal/protocol.clj index bfea640..62a299d 100644 --- a/src/intemporal/protocol.clj +++ b/src/intemporal/protocol.clj @@ -26,7 +26,7 @@ "Execute an activity with given args and timeout") (execute-activities-parallel [executor activities] "Execute multiple activities in parallel, returns seq of results in same order") - (shutdown-executor [executor] + (shutdown-executor [executor grace-period-secs] "Shutdown the executor and release resources")) (defprotocol IScheduler @@ -35,7 +35,7 @@ "Schedule a timer to fire at given time, calls callback when ready") (cancel-timer [scheduler workflow-id seq-num] "Cancel a scheduled timer") - (shutdown-scheduler [scheduler] + (shutdown-scheduler [scheduler grace-period-secs] "Shutdown the scheduler")) (defprotocol IWorkflowObserver diff --git a/test/intemporal/tests/crash/future_cancel_test.clj b/test/intemporal/tests/crash/future_cancel_test.clj index b5e1066..c28d6ad 100644 --- a/test/intemporal/tests/crash/future_cancel_test.clj +++ b/test/intemporal/tests/crash/future_cancel_test.clj @@ -58,15 +58,11 @@ :threads 2) ;; Start workflow in background future workflow-future (future - (try - (intemporal/start-workflow - engine-1 - future-crash-workflow - [workflow-id num-activities] - :workflow-id workflow-id) - (catch Exception e - ;; Future cancellation may throw - {:status :interrupted :error e})))] + (intemporal/start-workflow + engine-1 + future-crash-workflow + [workflow-id num-activities] + :workflow-id workflow-id))] ;; Wait for crash-after activities to complete (while (< @execution-counter crash-after) @@ -75,11 +71,9 @@ ;; Give it a bit more time to ensure activity is persisted (Thread/sleep 150) - ;; Simulate crash by canceling the future + ;; Cancel the future to simulate crash (future-cancel workflow-future) - - ;; Wait a bit for cancellation to take effect - (Thread/sleep 100) + (intemporal/shutdown-engine engine-1) ;; Verify: At least crash-after activities executed (is (>= @execution-counter crash-after) @@ -107,6 +101,7 @@ [workflow-id num-activities])] ;; Verify: Workflow completed successfully + (prn result-2) (is (= :completed (:status result-2)) "Resumed workflow should complete successfully") diff --git a/test/intemporal/tests/crash/run_manual_test.clj b/test/intemporal/tests/crash/run_manual_test.clj deleted file mode 100644 index db316ab..0000000 --- a/test/intemporal/tests/crash/run_manual_test.clj +++ /dev/null @@ -1,106 +0,0 @@ -(ns ^:crash intemporal.tests.crash.run-manual-test - "Manual test runner to verify crash recovery without kaocha infrastructure" - (:require [intemporal.core :as intemporal] - [intemporal.store :as store] - [intemporal.protocol :as p])) - -(def execution-counter (atom 0)) - -(defn tracked-activity [x] - "Activity that increments counter to track actual executions (not replays)" - (swap! execution-counter inc) - (println " -> Executing activity" x "(execution #" @execution-counter ")") - (Thread/sleep 50) - (* x 2)) - -(defn signal-crash-workflow [id num-activities crash-point] - "Workflow that suspends at crash-point waiting for 'resume' signal" - (println " Workflow starting with id:" id) - (let [stub (intemporal/stub #'tracked-activity)] - (loop [i 0 - results []] - (if (< i num-activities) - (do - (when (= i crash-point) - (println " Suspending at crash point" crash-point) - (intemporal/wait-for-signal "resume")) - (recur (inc i) (conj results (stub i)))) - (do - (println " Workflow completed with results:" results) - {:id id :results results}))))) - -(defn verify-history [store workflow-id] - (let [history (p/load-history store workflow-id) - completed (filter #(= :activity-completed (:event-type %)) history)] - (count completed))) - -(defn -main [] - (println "\n=== Manual Crash Recovery Test ===\n") - - (reset! execution-counter 0) - (let [workflow-id "manual-crash-test" - num-activities 5 - crash-point 3 - persistent-store (store/->InMemoryStore (atom {}))] - - (println "Phase 1: Execute until crash point...") - (let [engine-1 (intemporal/make-workflow-engine - :store persistent-store - :threads 2) - result-1 (intemporal/start-workflow - engine-1 - signal-crash-workflow - [workflow-id num-activities crash-point] - :workflow-id workflow-id)] - - (println "\nPhase 1 Results:") - (println " Status:" (:status result-1)) - (println " Execution counter:" @execution-counter) - (println " Completed activities in history:" (verify-history persistent-store workflow-id)) - - (assert (= :waiting-signal (:status result-1)) - "Expected :waiting-signal status") - (assert (= crash-point @execution-counter) - (str "Expected " crash-point " executions")) - (assert (= crash-point (verify-history persistent-store workflow-id)) - (str "Expected " crash-point " completed activities in history")) - - (println " ✓ Phase 1 passed")) - - (println "\nPhase 2: Resume after crash with new engine...") - (let [engine-2 (intemporal/make-workflow-engine - :store persistent-store - :threads 2) - resume-future (future - (intemporal/resume-workflow - engine-2 - workflow-id - signal-crash-workflow - [workflow-id num-activities crash-point]))] - - (Thread/sleep 200) - (println " Sending resume signal...") - (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) - - (let [result-2 @resume-future] - (println "\nPhase 2 Results:") - (println " Status:" (:status result-2)) - (println " Execution counter:" @execution-counter) - (println " Result:" (:result result-2)) - (println " Completed activities in history:" (verify-history persistent-store workflow-id)) - - (assert (= :completed (:status result-2)) - "Expected :completed status") - (assert (= num-activities @execution-counter) - (str "Expected " num-activities " total executions, got " @execution-counter)) - (assert (= {:id workflow-id :results [0 2 4 6 8]} (:result result-2)) - "Expected correct result") - (assert (= num-activities (verify-history persistent-store workflow-id)) - (str "Expected " num-activities " completed activities in history")) - - (println " ✓ Phase 2 passed"))) - - (println "\n=== ✓ Crash Recovery Test PASSED ===\n"))) - -(when (= *file* (System/getProperty "babashka.file")) - (-main)) diff --git a/test/intemporal/tests/crash/signal_based_test.clj b/test/intemporal/tests/crash/signal_based_test.clj deleted file mode 100644 index 30b1e45..0000000 --- a/test/intemporal/tests/crash/signal_based_test.clj +++ /dev/null @@ -1,122 +0,0 @@ -(ns ^:crash intemporal.tests.crash.signal-based-test - "Crash recovery test using signal-based suspension. - This is the cleanest approach - workflow suspends waiting for a signal, - then we create a new engine and resume." - (:require [intemporal.core :as intemporal] - [intemporal.store :as store] - [intemporal.protocol :as p] - [clojure.test :refer [deftest is testing]])) - -;; ============================================================================ -;; Test Infrastructure -;; ============================================================================ - -(def execution-counter (atom 0)) - -(defn tracked-activity [x] - "Activity that increments counter to track actual executions (not replays)" - (swap! execution-counter inc) - (Thread/sleep 50) ;; Simulate work - (* x 2)) - -(defn signal-crash-workflow [id num-activities crash-point] - "Workflow that suspends at crash-point waiting for 'resume' signal" - (let [stub (intemporal/stub #'tracked-activity)] - (loop [i 0 - results []] - (if (< i num-activities) - (do - ;; Suspend at crash point - simulates process crash - (when (= i crash-point) - (intemporal/wait-for-signal "resume")) - (recur (inc i) (conj results (stub i)))) - {:id id :results results})))) - -(defn verify-history [store workflow-id expected-completed] - "Verify the event history contains expected number of completed activities" - (let [history (p/load-history store workflow-id) - completed (filter #(= :activity-completed (:event-type %)) history)] - (count completed))) - -;; ============================================================================ -;; Tests -;; ============================================================================ - -(deftest test-signal-based-crash-recovery - (testing "Workflow resumes correctly after signal-based suspension (simulated crash)" - (reset! execution-counter 0) - - ;; Test configuration - (let [workflow-id "signal-crash-test-1" - num-activities 5 - crash-point 3 ;; Suspend after completing activities 0, 1, 2 - ;; Create store that persists across "crash" - persistent-store (store/->InMemoryStore (atom {}))] - - ;; ====================================================================== - ;; Phase 1: Execute workflow until "crash" (suspension point) - ;; ====================================================================== - (testing "Phase 1: Execute until crash point" - (let [engine-1 (intemporal/make-workflow-engine - :store persistent-store - :threads 2) - result-1 (intemporal/start-workflow - engine-1 - signal-crash-workflow - [workflow-id num-activities crash-point] - :workflow-id workflow-id)] - - ;; Workflow should suspend waiting for signal - (is (= :waiting-signal (:status result-1)) - "Workflow should suspend waiting for 'resume' signal") - - ;; Verify: 3 activities executed (0, 1, 2) - (is (= crash-point @execution-counter) - (str "Should have executed " crash-point " activities before suspension")) - - ;; Verify: History contains 3 activity-completed events - (is (= crash-point (verify-history persistent-store workflow-id)) - (str "History should contain " crash-point " completed activity events")))) - - ;; ====================================================================== - ;; Phase 2: Resume workflow after "crash" with new engine - ;; ====================================================================== - (testing "Phase 2: Resume after crash with new engine" - (let [pre-resume-count @execution-counter - ;; Create NEW engine with SAME store (simulates process restart) - engine-2 (intemporal/make-workflow-engine - :store persistent-store ;; Same store! - :threads 2) - ;; Resume workflow in background - resume-future (future - (intemporal/resume-workflow - engine-2 - workflow-id - signal-crash-workflow - [workflow-id num-activities crash-point]))] - - ;; Send the "resume" signal to continue workflow - (Thread/sleep 100) ;; Give resume time to start - (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) - - ;; Wait for workflow to complete - (let [result-2 @resume-future] - - ;; Verify: Workflow completed successfully - (is (= :completed (:status result-2)) - "Resumed workflow should complete successfully") - - ;; Verify: Activities 0-2 were NOT re-executed (used cache) - ;; Only activities 3-4 should have executed - (is (= num-activities @execution-counter) - (str "Should have " num-activities " total executions (not " @execution-counter ")")) - - ;; Verify: Final result is correct - (is (= {:id workflow-id - :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 - (:result result-2)) - "Final result should be correct") - - ;; Verify: History has all 5 completed activities - (is (= num-activities (verify-history persistent-store workflow-id)) - (str "Final history should contain " num-activities " completed activities")))))))) diff --git a/test/intemporal/tests/crash/exception_inject_test.clj b/test/intemporal/tests/crash/signal_wait_crash_test.clj similarity index 81% rename from test/intemporal/tests/crash/exception_inject_test.clj rename to test/intemporal/tests/crash/signal_wait_crash_test.clj index 99d8ef6..8e1126f 100644 --- a/test/intemporal/tests/crash/exception_inject_test.clj +++ b/test/intemporal/tests/crash/signal_wait_crash_test.clj @@ -1,4 +1,4 @@ -(ns ^:crash intemporal.tests.crash.exception-inject-test +(ns ^:crash intemporal.tests.crash.signal-wait-crash-test "Crash recovery test demonstrating workflow persistence across process restart. Tests that a simple workflow can be resumed after simulated crash, demonstrating that completed activities are not re-executed." @@ -66,15 +66,19 @@ (let [engine-1 (intemporal/make-workflow-engine :store persistent-store :threads 2) - result-1 (intemporal/start-workflow - engine-1 - simple-workflow - [workflow-id num-activities crash-point] - :workflow-id workflow-id)] + result-future-1 (future + (intemporal/start-workflow + engine-1 + simple-workflow + [workflow-id num-activities crash-point] + :workflow-id workflow-id))] - ;; Workflow should suspend waiting for signal - (is (= :waiting-signal (:status result-1)) - "Workflow should suspend waiting for 'resume' signal") + ;; Give workflow time to start and reach suspension point + (Thread/sleep 200) + + ;; Cancel the future to simulate crash + (future-cancel result-future-1) + (intemporal/shutdown-engine engine-1) ;; Verify: 3 activities executed (0, 1, 2) (is (= crash-point @execution-counter) @@ -92,21 +96,17 @@ ;; Create NEW engine with SAME store (simulates process restart) engine-2 (intemporal/make-workflow-engine :store persistent-store - :threads 2) - ;; Resume workflow in background - resume-future (future - (intemporal/resume-workflow - engine-2 - workflow-id - simple-workflow - [workflow-id num-activities crash-point]))] - - ;; Send the "resume" signal to continue workflow - (Thread/sleep 200) ;; Give resume time to start + :threads 2)] + + ;; Send the "resume" signal BEFORE resuming workflow (intemporal/send-signal persistent-store workflow-id "resume" {:resumed true}) - ;; Wait for workflow to complete - (let [result-2 @resume-future] + ;; Resume workflow - should complete now that signal is available + (let [result-2 (intemporal/resume-workflow + engine-2 + workflow-id + simple-workflow + [workflow-id num-activities crash-point])] ;; Verify: Workflow completed successfully (is (= :completed (:status result-2)) diff --git a/test/intemporal/tests/crash/timer_based_test.clj b/test/intemporal/tests/crash/timer_based_test.clj deleted file mode 100644 index effe8ae..0000000 --- a/test/intemporal/tests/crash/timer_based_test.clj +++ /dev/null @@ -1,116 +0,0 @@ -(ns ^:crash intemporal.tests.crash.timer-based-test - "Crash recovery test using timer-based suspension. - Workflow suspends waiting for a timer at the crash point, - then we create a new engine and resume." - (:require [intemporal.core :as intemporal] - [intemporal.store :as store] - [intemporal.protocol :as p] - [clojure.test :refer [deftest is testing]])) - -;; ============================================================================ -;; Test Infrastructure -;; ============================================================================ - -(def execution-counter (atom 0)) - -(defn tracked-activity [x] - "Activity that increments counter to track actual executions (not replays)" - (swap! execution-counter inc) - (Thread/sleep 50) ;; Simulate work - (* x 2)) - -(defn timer-crash-workflow [id num-activities crash-point] - "Workflow that suspends on timer at crash-point" - (let [stub (intemporal/stub #'tracked-activity)] - (loop [i 0 - results []] - (if (< i num-activities) - (do - ;; Suspend on timer at crash point - simulates process crash - (when (= i crash-point) - (intemporal/sleep 100)) ;; Short timer for test speed - (recur (inc i) (conj results (stub i)))) - {:id id :results results})))) - -(defn verify-history [store workflow-id expected-completed] - "Verify the event history contains expected number of completed activities" - (let [history (p/load-history store workflow-id) - completed (filter #(= :activity-completed (:event-type %)) history)] - (count completed))) - -;; ============================================================================ -;; Tests -;; ============================================================================ - -(deftest test-timer-based-crash-recovery - (testing "Workflow resumes correctly after timer-based suspension (simulated crash)" - (reset! execution-counter 0) - - ;; Test configuration - (let [workflow-id "timer-crash-test-1" - num-activities 5 - crash-point 3 ;; Suspend after completing activities 0, 1, 2 - ;; Create store that persists across "crash" - persistent-store (store/->InMemoryStore (atom {}))] - - ;; ====================================================================== - ;; Phase 1: Execute workflow until "crash" (timer suspension) - ;; ====================================================================== - (testing "Phase 1: Execute until crash point" - (let [engine-1 (intemporal/make-workflow-engine - :store persistent-store - :threads 2 - :scheduler-threads 1) - result-1 (intemporal/start-workflow - engine-1 - timer-crash-workflow - [workflow-id num-activities crash-point] - :workflow-id workflow-id)] - - ;; Workflow should suspend waiting for timer - (is (= :waiting-timer (:status result-1)) - "Workflow should suspend waiting for timer") - - ;; Verify: 3 activities executed (0, 1, 2) - (is (= crash-point @execution-counter) - (str "Should have executed " crash-point " activities before suspension")) - - ;; Verify: History contains 3 activity-completed events - (is (= crash-point (verify-history persistent-store workflow-id)) - (str "History should contain " crash-point " completed activity events")))) - - ;; ====================================================================== - ;; Phase 2: Resume workflow after "crash" with new engine - ;; ====================================================================== - (testing "Phase 2: Resume after crash with new engine" - (let [pre-resume-count @execution-counter - ;; Create NEW engine with SAME store (simulates process restart) - engine-2 (intemporal/make-workflow-engine - :store persistent-store ;; Same store! - :threads 2 - :scheduler-threads 1) - ;; Resume workflow - timer will fire automatically - result-2 (intemporal/resume-workflow - engine-2 - workflow-id - timer-crash-workflow - [workflow-id num-activities crash-point])] - - ;; Verify: Workflow completed successfully - (is (= :completed (:status result-2)) - "Resumed workflow should complete successfully") - - ;; Verify: Activities 0-2 were NOT re-executed (used cache) - ;; Only activities 3-4 should have executed - (is (= num-activities @execution-counter) - (str "Should have " num-activities " total executions (not " @execution-counter ")")) - - ;; Verify: Final result is correct - (is (= {:id workflow-id - :results [0 2 4 6 8]} ;; 0*2, 1*2, 2*2, 3*2, 4*2 - (:result result-2)) - "Final result should be correct") - - ;; Verify: History has all 5 completed activities - (is (= num-activities (verify-history persistent-store workflow-id)) - (str "Final history should contain " num-activities " completed activities"))))))) From f5c20ffc55ce6dad66da817ee53cf280a4ac1b59 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 9 Feb 2026 12:06:53 +0000 Subject: [PATCH 55/81] fixup! add test --- src/intemporal/core.clj | 130 +++++++------ src/intemporal/internal/error.clj | 15 +- src/intemporal/internal/execution.clj | 172 ++++++++++-------- src/intemporal/internal/runtime.clj | 13 +- src/intemporal/protocol.clj | 8 +- .../tests/crash/future_cancel_test.clj | 29 ++- .../tests/crash/signal_wait_crash_test.clj | 7 +- test/logback.xml | 2 +- tests.edn | 2 +- 9 files changed, 224 insertions(+), 154 deletions(-) diff --git a/src/intemporal/core.clj b/src/intemporal/core.clj index 00d3855..37cc08f 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.clj @@ -26,54 +26,60 @@ effective-timeout (or timeout-ms (:timeout-ms activity-info)) effective-retry (or retry-policy (:retry-policy activity-info))] (fn [& args] - (log/with-mdc {:activity activity-name} - - (ctx/check-cancelled!) - (let [ctx (ctx/current-context) - seq-num (ctx/next-seq!) - store (ctx/current-store) - workflow-id (ctx/current-workflow-id) - existing (p/find-event store workflow-id :activity-completed seq-num) - existing-failed (p/find-event store workflow-id :activity-failed seq-num) - err (some-> (:error existing-failed) (error/map->exception)) - interrupted? (boolean (some-> err (error/interruption?)))] - (cond - ;; Replay: return cached result - existing - (do - (log/infof "Found existing result for activity") - (:result existing)) - - ;; Replay: throw cached error - ;; TODO decide how to handle interruptions, interrupt policy? - (and existing-failed #_(not interrupted?)) - (do - (log/infof "Found existing error for activity") - (throw err)) - - ;; Execute: need to run the activity - :else - (let [scheduled-event {:event-type :activity-scheduled - :seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy (when effective-retry - {:max-attempts (:max-attempts effective-retry) - :backoff-ms (:backoff-ms effective-retry)}) - :timestamp (System/currentTimeMillis)}] - (when interrupted? - (log/infof "Activity was forcefully interrupted")) - - (ctx/add-pending-event! scheduled-event) - (ctx/notify-observer p/on-activity-scheduled - (:workflow-id ctx) seq-num activity-name (vec args)) - (log/infof "Scheduling activity with sequence number %d and suspending" seq-num) - (throw (error/make-suspension :activity {:seq seq-num - :activity-name activity-name - :args (vec args) - :timeout-ms effective-timeout - :retry-policy effective-retry}))))))))) + (let [seq-num (ctx/next-seq!)] + (log/with-mdc {:activity activity-name :seqnum seq-num} + + (ctx/check-cancelled!) + (let [ctx (ctx/current-context) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :activity-completed seq-num) + existing-failed (p/find-event store workflow-id :activity-failed seq-num) + err (some-> (:error existing-failed) (error/map->exception)) + interrupted? (boolean (some-> err (error/interruption?))) + rejected? (boolean (some-> err (error/rejection?)))] + (cond + ;; Replay: return cached result + existing + (do + (log/infof "Found existing result for activity: %s" (pr-str (:result existing))) + (:result existing)) + + ;; Replay: throw cached error + ;; TODO decide how to handle interruptions, interrupt policy? + (and existing-failed (not interrupted?) (not rejected?)) + (do + (log/infof "Found existing error for activity") + (throw err)) + + ;; Execute: need to run the activity + ;; either due to rejection or interruption + :else + (let [scheduled-event {:event-type :activity-scheduled + :seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy (when effective-retry + {:max-attempts (:max-attempts effective-retry) + :backoff-ms (:backoff-ms effective-retry)}) + :timestamp (System/currentTimeMillis)}] + ;; interruptions are scheduled just the same + (when interrupted? + (log/infof "Activity was interrupted: rescheduling")) + ;; rejections are scheduled just the same + (when rejected? + (log/infof "Activity execution was rejected: rescheduling")) + + (ctx/add-pending-event! scheduled-event) + (ctx/notify-observer p/on-activity-scheduled + (:workflow-id ctx) seq-num activity-name (vec args)) + (log/infof "Scheduling activity suspension") + (throw (error/make-suspension :activity {:seq seq-num + :activity-name activity-name + :args (vec args) + :timeout-ms effective-timeout + :retry-policy effective-retry})))))))))) ;; ============================================================================ ;; Async Support @@ -92,28 +98,31 @@ workflow-id (ctx/current-workflow-id) existing-completed (p/find-event store workflow-id :async-completed seq-num) existing-failed (p/find-event store workflow-id :async-failed seq-num) - existing-started (p/find-event store workflow-id :async-started seq-num)] + existing-started (p/find-event store workflow-id :async-started seq-num) + err (some-> (:error existing-failed) (error/map->exception)) + interrupted? (boolean (some-> err (error/interruption?)))] (cond ;; Already completed - advance seq past consumed numbers during replay existing-completed (do ;; Advance seq counter to skip past all seqs consumed by this async (ctx/update-seq! existing-completed) - (log/tracef "Async already succeeded with sequence number %d, advancing sequence number" seq-num) + (log/tracef "Async already succeeded advancing sequence number") (->AsyncHandle seq-num)) ;; Already failed - advance seq past consumed numbers during replay - existing-failed + ;; TODO decide how to handle interruptions, interrupt policy? + existing-failed #_(not interrupted?) (do (ctx/update-seq! existing-failed) - (log/infof "Async already failed with sequence number %d, advancing sequence number" seq-num) + (log/infof "Async already failed advancing sequence number") (->AsyncHandle seq-num)) ;; Already started but not completed - return handle (will block on join) ;; During replay, don't re-execute the thunk - just wait for completion event existing-started (do - (log/infof "Async already started with sequence number %d" seq-num) + (log/infof "Async already started") (->AsyncHandle seq-num)) ;; Need to start - record and try to capture what activity it needs @@ -126,7 +135,7 @@ (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) ;; Try to execute the thunk to see what activity it wants (try - (log/tracef "Invoking Async thunk with sequence number %d" seq-num) + (log/tracef "Invoking Async thunk") (let [result (thunk) ;; Capture the last seq number after thunk execution end-seq (dec @(:seq-counter (ctx/current-context)))] @@ -138,14 +147,14 @@ :result result :timestamp (System/currentTimeMillis)}) (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) - (log/tracef "Async completed successfully with sequence number %d and result %s" seq-num result) + (log/tracef "Async completed successfully with result %s" result) (->AsyncHandle start-seq)) (catch Throwable e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution (let [suspension-info (error/suspension-data e) activity-name (:activity-name suspension-info)] - (log/tracef "Async suspended with sequence number %d for activity %s" seq-num activity-name) + (log/tracef "Async suspended activity %s" activity-name) (ctx/add-pending-async! {:handle-seq start-seq :activity-name (:activity-name suspension-info) :activity-seq (:seq suspension-info) @@ -156,7 +165,7 @@ (->AsyncHandle start-seq)) ;; else (do - (log/tracef e "Async failed with sequence number %d" seq-num) + (log/tracef e "Async failed") (throw e))))))))) (defn join @@ -300,12 +309,15 @@ store (ctx/current-store) workflow-id (ctx/current-workflow-id) existing (p/find-event store workflow-id :child-workflow-completed seq-num) - existing-failed (p/find-event store workflow-id :child-workflow-failed seq-num)] + existing-failed (p/find-event store workflow-id :child-workflow-failed seq-num) + err (some-> (:error existing-failed) (error/map->exception)) + interrupted? (boolean (some-> err (error/interruption?)))] (cond existing (:result existing) - existing-failed + ;; TODO decide how to handle interruptions, interrupt policy? + existing-failed #_(not interrupted?) (throw (error/map->exception (:error existing-failed))) :else diff --git a/src/intemporal/internal/error.clj b/src/intemporal/internal/error.clj index b8795ff..9b4737e 100644 --- a/src/intemporal/internal/error.clj +++ b/src/intemporal/internal/error.clj @@ -30,6 +30,10 @@ (and (instance? IExceptionInfo e) (::activity-interrupted (ex-data e)))) +(defn rejection? [e] + (and (instance? IExceptionInfo e) + (::rejected (ex-data e)))) + (defn suspension-type [e] (-> e ex-data :type)) @@ -44,6 +48,13 @@ (instance? IExceptionInfo e) (::cancelled (ex-data e)))) +(defn activity-rejected-exception [activity-name cause] + (ex-info "Execution rejected" + {::rejected true + :cause cause + :activity-name activity-name})) + + (defn activity-timeout-exception [activity-name timeout-ms] (ex-info "Activity timed out" {::activity-timeout true @@ -53,8 +64,8 @@ (defn activity-interrupted-exception [activity-name cause] (ex-info "Activity interrupted" {::activity-interrupted true - :cause cause - :activity-name activity-name})) + :cause cause + :activity-name activity-name})) (defn activity-failed-exception [activity-name cause] (ex-info "Activity failed" diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 45c99d6..c6bf97c 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -3,7 +3,8 @@ [intemporal.internal.context :as ctx] [intemporal.internal.error :as error] [intemporal.internal.logging :as log] - [intemporal.protocol :as p])) + [intemporal.protocol :as p]) + (:import (java.util.concurrent RejectedExecutionException))) ;; ============================================================================ ;; Workflow Execution Engine @@ -45,44 +46,62 @@ (if (nil? retry-policy) ;; No retry - execute once (let [start (System/currentTimeMillis)] - (log/infof "Executing activity with sequence number %d via executor %s" seq-num executor) + (log/infof "Executing activity via executor %s" executor) (-notify p/on-activity-started observer workflow-id seq-num activity-name) (try (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) - (log/infof "Activity succeeded with sequence number %d, result: %s" seq-num result) + (log/infof "Activity succeeded, result: %s" result) {:status :success :result result :duration duration}) + (catch RejectedExecutionException e + (let [duration (- (System/currentTimeMillis) start) + error (error/activity-rejected-exception activity-name e) + error-map (error/throwable->map error)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity execution rejected") + {:status :failed + :error error-map + :duration duration})) (catch Exception e - (let [duration (- (System/currentTimeMillis) start)] - (-notify p/on-activity-failed observer workflow-id seq-num activity-name - (error/throwable->map e) duration) - (log/warnf e "Activity failed with sequence number %d" seq-num) + (let [duration (- (System/currentTimeMillis) start) + error-map (error/throwable->map e)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity failed") {:status :failed - :error (error/throwable->map e) + :error error-map :duration duration})))) ;; With retry (loop [attempt 1] (-notify p/on-activity-started observer workflow-id seq-num activity-name) - (log/infof "Executing activity with sequence number %d (attempt %d)" seq-num attempt) + (log/infof "Executing activity (attempt %d)" attempt) (let [start (System/currentTimeMillis) exec-result (try - (log/infof "Executing activity with sequence number %d via executor %s" seq-num executor) + (log/infof "Executing activity via executor %s" executor) (let [result (p/execute-activity executor activity-name args timeout-ms) duration (- (System/currentTimeMillis) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) - (log/infof "Activity succeeded with sequence number %d (attempt %d), result: %s" seq-num attempt result) + (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) {:status :success :result result :duration duration :attempts attempt}) + (catch RejectedExecutionException e + (let [duration (- (System/currentTimeMillis) start) + error (error/activity-rejected-exception activity-name e) + error-map (error/throwable->map error)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity execution rejected") + {:status :failed + :error error-map + :duration duration})) (catch Exception e (let [duration (- (System/currentTimeMillis) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) - (log/warnf e "Activity failed with sequence number %d (attempt %d)" seq-num attempt) + (log/warnf e "Activity failed (attempt %d)" attempt) {:status :retry-or-fail :error error-map :exception e @@ -106,7 +125,7 @@ (defn process-pending-activity [store executor workflow-id {:keys [seq activity-name args timeout-ms retry-policy] :as suspension-data} pending-events observer] - (log/with-mdc {:activity activity-name} + (log/with-mdc {:activity activity-name :seqnum seq} (let [exec-result (execute-with-retry executor activity-name args timeout-ms retry-policy observer workflow-id seq)] ;; Save all pending events first @@ -140,8 +159,8 @@ ;; Create completion events for both activities and async handles completion-events - (mapcat (fn [{:keys [activity-name] :as async-info} result] - (log/with-mdc {:activity activity-name} + (mapcat (fn [{:keys [activity-name activity-seq] :as async-info} result] + (log/with-mdc {:activity activity-name :seqnum activity-seq} (if (= :success (:status result)) (do (-notify p/on-async-completed observer workflow-id (:handle-seq async-info) (:result result)) @@ -491,64 +510,71 @@ (log/debugf "Internal loop %d of %d" iteration max-iterations) - ;; Check cancellation at start of each iteration - (if (p/is-cancelled? store workflow-id) - (let [error-map {:type "clojure.lang.ExceptionInfo" - :message "Workflow cancelled" - :data {:workflow-id workflow-id}}] - - (-notify p/on-workflow-cancelled observer workflow-id) - (p/save-event store workflow-id {:event-type :workflow-failed - :error error-map - :timestamp (System/currentTimeMillis)}) - - (log/info "Workflow cancelled, failing") - (-notify p/on-workflow-failed observer workflow-id error-map) - {:status :failed - :workflow-id workflow-id - :error error-map}) - - (let [history (p/load-history store workflow-id) - ctx (make-workflow-context workflow-id history store registry observer) - exec-result (binding [ctx/*workflow-context* ctx] - (log/debugf "Executing workflow function %s..." workflow-fn) - (execute-workflow-fn workflow-fn args))] - - (log/debugf "Workflow function executed, got: %s" (:status exec-result)) - (case (:status exec-result) - :completed - (finalize-completed store executor workflow-id - (:pending-asyncs exec-result) - (:pending-events exec-result) - (:result exec-result) - observer) - - :cancelled - (finalize-cancelled store workflow-id - (:pending-events exec-result) - observer) - - :suspended - (let [action (handle-suspension engine - workflow-id - (:suspension-type exec-result) - (:suspension-data exec-result) - (:pending-asyncs exec-result) - (:pending-events exec-result) - wake-fn - observer)] - (when (and observer (= action :continue)) - (p/on-workflow-resumed observer workflow-id)) - - (if (= action :continue) - (recur (inc iteration)) - (action->result action workflow-id))) - - :failed - (finalize-failed store workflow-id - (:pending-events exec-result) - (:error exec-result) - observer)))))) + ;; Check if executor is shutting down - stop processing to avoid endless rejections + (if (p/shutdown? executor) + (do + (log/infof "Executor shutting down, suspending workflow") + {:status :suspended + :workflow-id workflow-id}) + + ;; Check cancellation at start of each iteration + (if (p/is-cancelled? store workflow-id) + (let [error-map {:type "clojure.lang.ExceptionInfo" + :message "Workflow cancelled" + :data {:workflow-id workflow-id}}] + + (-notify p/on-workflow-cancelled observer workflow-id) + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (System/currentTimeMillis)}) + + (log/info "Workflow cancelled, failing") + (-notify p/on-workflow-failed observer workflow-id error-map) + {:status :failed + :workflow-id workflow-id + :error error-map}) + ;; else + (let [history (p/load-history store workflow-id) + ctx (make-workflow-context workflow-id history store registry observer) + exec-result (binding [ctx/*workflow-context* ctx] + (log/debugf "Executing workflow function %s..." workflow-fn) + (execute-workflow-fn workflow-fn args))] + + (log/debugf "Workflow function executed, got: %s" (:status exec-result)) + (case (:status exec-result) + :completed + (finalize-completed store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + (:result exec-result) + observer) + + :cancelled + (finalize-cancelled store workflow-id + (:pending-events exec-result) + observer) + + :suspended + (let [action (handle-suspension engine + workflow-id + (:suspension-type exec-result) + (:suspension-data exec-result) + (:pending-asyncs exec-result) + (:pending-events exec-result) + wake-fn + observer)] + (when (and observer (= action :continue)) + (p/on-workflow-resumed observer workflow-id)) + + (if (= action :continue) + (recur (inc iteration)) + (action->result action workflow-id))) + + :failed + (finalize-failed store workflow-id + (:pending-events exec-result) + (:error exec-result) + observer))))))) (defn process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id suspension-data pending-events observer] diff --git a/src/intemporal/internal/runtime.clj b/src/intemporal/internal/runtime.clj index 38c6859..7f781a9 100644 --- a/src/intemporal/internal/runtime.clj +++ b/src/intemporal/internal/runtime.clj @@ -42,7 +42,10 @@ (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) (log/error "Could not terminate all threads"))) (catch InterruptedException e - (log/error e "Interrupted while shutting down pool"))))) + (log/error e "Interrupted while shutting down pool")))) + + (shutdown-scheduler? [_] + (.isTerminated pool))) (defn make-scheduler "Create a new scheduler" @@ -147,10 +150,10 @@ (when-not (.awaitTermination pool grace-period-secs TimeUnit/SECONDS) (log/error "Could not terminate all threads"))) (catch InterruptedException e - (log/error e "Interrupted while shutting down pool"))) - #_#_ - (.shutdown pool) - (.awaitTermination pool 30 TimeUnit/SECONDS))) + (log/error e "Interrupted while shutting down pool")))) + + (shutdown? [_] + (.isTerminated pool))) (defn create-bounded-executor "Creates a bounded ThreadPoolExecutor with virtual threads" diff --git a/src/intemporal/protocol.clj b/src/intemporal/protocol.clj index 62a299d..9ee6f07 100644 --- a/src/intemporal/protocol.clj +++ b/src/intemporal/protocol.clj @@ -27,7 +27,9 @@ (execute-activities-parallel [executor activities] "Execute multiple activities in parallel, returns seq of results in same order") (shutdown-executor [executor grace-period-secs] - "Shutdown the executor and release resources")) + "Shutdown the executor and release resources") + (shutdown? [executor] + "Indicates if the executor has shut down")) (defprotocol IScheduler "Protocol for scheduling timers" @@ -36,7 +38,9 @@ (cancel-timer [scheduler workflow-id seq-num] "Cancel a scheduled timer") (shutdown-scheduler [scheduler grace-period-secs] - "Shutdown the scheduler")) + "Shutdown the scheduler") + (shutdown-scheduler? [executor] + "Indicates if the executor has shut down")) (defprotocol IWorkflowObserver "Protocol for observing workflow execution" diff --git a/test/intemporal/tests/crash/future_cancel_test.clj b/test/intemporal/tests/crash/future_cancel_test.clj index c28d6ad..87d74c8 100644 --- a/test/intemporal/tests/crash/future_cancel_test.clj +++ b/test/intemporal/tests/crash/future_cancel_test.clj @@ -32,8 +32,20 @@ "Count completed activities in event history" (let [history (p/load-history store workflow-id) completed (filter #(= :activity-completed (:event-type %)) history)] + (clojure.pprint/print-table history) (count completed))) +(defn count-interrupted-or-rejected [store workflow-id] + "Count activities that were interrupted or rejected (due to shutdown)" + (let [history (p/load-history store workflow-id) + failed (filter #(= :activity-failed (:event-type %)) history)] + (count + (filter (fn [event] + (let [error-data (get-in event [:error :data])] + (or (:intemporal.internal.error/activity-interrupted error-data) + (:intemporal.internal.error/rejected error-data)))) + failed)))) + ;; ============================================================================ ;; Tests ;; ============================================================================ @@ -101,14 +113,21 @@ [workflow-id num-activities])] ;; Verify: Workflow completed successfully - (prn result-2) (is (= :completed (:status result-2)) "Resumed workflow should complete successfully") - ;; Verify: Activities were NOT re-executed - ;; Total executions should be num-activities (some from phase 1, rest from phase 2) - (is (<= @execution-counter num-activities) - (str "Should have at most " num-activities " total executions (found " @execution-counter ")")) + ;; Verify: Check for interrupted/rejected activities in history + (let [interrupted-or-rejected (count-interrupted-or-rejected persistent-store workflow-id)] + (println "Found" interrupted-or-rejected "interrupted/rejected activities in history") + + ;; Verify: Activities were NOT re-executed + ;; Total executions should be num-activities (some from phase 1, rest from phase 2) + ;; UNLESS activities were interrupted/rejected during shutdown, which will be re-executed + (let [;; Expected max executions = num-activities + re-executions of interrupted/rejected + expected-max (+ num-activities interrupted-or-rejected)] + (is (<= @execution-counter expected-max) + (str "Should have at most " expected-max " total executions " + "(5 activities + " interrupted-or-rejected " interrupted/rejected, found " @execution-counter ")")))) ;; Verify: Final result is correct (is (= {:id workflow-id diff --git a/test/intemporal/tests/crash/signal_wait_crash_test.clj b/test/intemporal/tests/crash/signal_wait_crash_test.clj index 8e1126f..c43e32b 100644 --- a/test/intemporal/tests/crash/signal_wait_crash_test.clj +++ b/test/intemporal/tests/crash/signal_wait_crash_test.clj @@ -36,14 +36,9 @@ "Count completed activities in event history" (let [history (p/load-history store workflow-id) completed (filter #(= :activity-completed (:event-type %)) history)] + (clojure.pprint/print-table history) (count completed))) -(defn count-failed-activities [store workflow-id] - "Count failed activities in event history" - (let [history (p/load-history store workflow-id) - failed (filter #(= :activity-failed (:event-type %)) history)] - (count failed))) - ;; ============================================================================ ;; Tests ;; ============================================================================ diff --git a/test/logback.xml b/test/logback.xml index 181ec57..52b68a5 100644 --- a/test/logback.xml +++ b/test/logback.xml @@ -1,7 +1,7 @@ - %d{HH:mm:ss.SSS} [%10.10thread-5] [WF:%10.10X{workflow-id}] [%X{activity}] %-5level %logger{36} - %msg%n + %d{HH:mm:ss.SSS} [%10.10thread-5] [WF:%10.10X{workflow-id}] [%X{activity}@%X{seqnum}] %-5level %logger{36} - %msg%n diff --git a/tests.edn b/tests.edn index a5244ae..30b1de6 100644 --- a/tests.edn +++ b/tests.edn @@ -34,7 +34,7 @@ ;; jvm based tests {:id :test - :kaocha.filter/skip-meta [:crash] + ;:kaocha.filter/skip-meta [:crash] :ns-patterns ["-test$"] :source-paths ["src"] :test-paths ["test"]} From 11df14fcce54076b466c31e43c2e4903de95e30f Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 9 Feb 2026 21:22:00 +0000 Subject: [PATCH 56/81] add tests --- CLAUDE.md | 194 +++++++++++ test/intemporal/tests/store/store_test.clj | 376 +++++++++++++++++++++ 2 files changed, 570 insertions(+) create mode 100644 CLAUDE.md create mode 100644 test/intemporal/tests/store/store_test.clj diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..f117bb4 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,194 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +**intemporal** is a Clojure/ClojureScript library inspired by Temporal.io and Uber Cadence. It enables defining functions with side effects that can persist and resume their state, providing resilience to process crashes. + +### Core Concepts + +- **Activities**: Protocol implementations or functions that handle side effects. Activities are the unit of work that can fail and be retried. +- **Workflows**: Functions that orchestrate activities with at-least-once semantics. Workflows can safely resume after crashes by replaying from persisted event history. +- **Event Sourcing**: Workflow state is reconstructed from an event log stored via the `IStore` protocol. +- **Replay**: On resume, workflows replay their event history to reconstruct state without re-executing activities. + +### Architecture + +The codebase is organized into several layers: + +1. **Core API** ([src/intemporal/core.clj](src/intemporal/core.clj)) + - `stub` - Creates activity stubs for use in workflows + - Main workflow execution entry points + - Handles activity caching, replay, and async operations + +2. **Protocol Definitions** ([src/intemporal/protocol.clj](src/intemporal/protocol.clj)) + - `IStore` - Workflow persistence (history, signals, cancellation) + - `IActivityExecutor` - Activity execution with timeout/retry + - `IScheduler` - Timer scheduling + - `IWorkflowObserver` - Event observation for monitoring/tracing + +3. **Internal Components** (src/intemporal/internal/) + - `context.clj` - Dynamic workflow context with sequence counters, pending events + - `execution.clj` - Workflow execution engine, handles suspensions and retries + - `runtime.clj` - Default implementations of `IActivityExecutor` and `IScheduler` + - `activity.clj` - Activity registration and metadata + - `error.clj` - Error types (suspensions, interruptions, rejections, cancellations) + - `logging.clj` - Structured logging with MDC support + - `macros.cljc` - `defn-workflow`, `stub-function`, `stub-protocol` macros + +4. **Store Implementations** ([src/intemporal/store.clj](src/intemporal/store.clj)) + - `InMemoryStore` - In-memory implementation of `IStore` + - Additional stores: FoundationDB (`:fdb` alias), JDBC (`:jdbc` alias) + +### Key Mechanisms + +- **Sequence Numbers**: Each activity/operation gets a monotonic sequence number for deterministic replay +- **Suspensions**: Workflows can suspend (e.g., waiting for signal, timer) and resume later +- **Cancellation**: Workflows check cancellation status at each sequence point +- **Pending Events**: During workflow execution, events are buffered and atomically saved to store + +## Development Commands + +### Running Tests + +```bash +# Run all tests (includes JVM and ClojureScript tests) +bin/kaocha + +# Run specific test suite +bin/kaocha :test # JVM tests only +bin/kaocha :in-memory # In-memory tests (skips :integration) +bin/kaocha :test-cljs # ClojureScript tests + +# Run a single test namespace (note: use hyphens, not underscores) +bin/kaocha :test --focus intemporal.tests.signal-test + +# Run crash recovery tests +bin/kaocha :test --focus intemporal.tests.crash.signal-wait-crash-test +bin/kaocha :test --focus intemporal.tests.crash.future-cancel-test +``` + +**Important**: Test namespaces use hyphens (e.g., `signal-wait-crash-test`), which map to underscored file names (`signal_wait_crash_test.clj`). + +### Test Configuration + +Test configuration is in [tests.edn](tests.edn): +- Line 37: `:kaocha.filter/skip-meta [:crash]` can be uncommented to skip crash tests +- Coverage reports: `target/coverage/index.html` +- JUnit XML reports: `target/test-reports/report.xml` + +### REPL Development + +```bash +# Start REPL with development dependencies +clojure -A:dev + +# With FoundationDB support +clojure -A:dev:fdb + +# With JDBC/PostgreSQL support +clojure -A:dev:jdbc +``` + +### Building + +```bash +# Compile main namespaces +clojure -T:build compile-main + +# Compile development namespaces +clojure -T:build compile-dev + +# Build JAR +clojure -T:build jar +``` + +### Debug Configuration + +The test runner ([bin/kaocha](bin/kaocha)) automatically starts a debug agent on port 5005: +``` +-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 +``` + +### OpenTelemetry Tracing + +The project includes OpenTelemetry instrumentation (see [deps.edn](deps.edn) lines 14-24): +- Java agent: `./opentelemetry-javaagent.jar` +- OTLP endpoint: `http://localhost:4317` (gRPC) +- Service name: `intemporal` +- Metrics and logs are disabled by default + +## Code Patterns + +### Defining a Workflow + +```clojure +(require '[intemporal.core :as w]) +(require '[intemporal.internal.macros :refer [defn-workflow]]) + +(defn-workflow my-workflow [arg] + (let [activity-stub (w/stub some-activity-fn)] + (activity-stub arg))) +``` + +### Activities + +Activities can be: +- Regular functions: `(w/stub my-function)` +- Protocol methods: `(w/stub-protocol MyProtocol {})` + +### Running Workflows + +```clojure +(require '[intemporal.store :as store]) + +(def my-store (store/make-memstore)) +(def executor (w/start-poller! my-store {`MyProtocol (->MyProtocolImpl)})) + +;; Execute workflow (returns result in JVM, Promise in ClojureScript) +(def result (w/with-env {:store my-store} + (my-workflow args))) +``` + +## Testing Guidelines + +### Test Organization + +- [test/intemporal/tests/](test/intemporal/tests/) - Main test directory + - `async_test.clj` - Async operation tests + - `cancellation_test.clj` - Workflow cancellation + - `child_workflow_test.clj` - Nested workflow tests + - `error_test.clj` - Error handling and retry policies + - `signal_test.clj` - Signal send/receive + - `timer_test.clj` - Timer scheduling + - `tracing_test.clj` - OpenTelemetry tracing + - [crash/](test/intemporal/tests/crash/) - Crash recovery scenarios + +### Crash Recovery Tests + +Tests in `test/intemporal/tests/crash/` verify workflow resilience: +- Execute workflow until suspension point +- Simulate crash (exception) +- Resume workflow and verify activities aren't re-executed +- Check workflow completes with correct result + +## Dependencies + +### Required Dependencies (all environments) +- Clojure 1.12.1+ +- tools.logging + logback (structured logging) +- OpenTelemetry API (tracing) +- macrovich (cross-platform macros) + +### Optional Dependencies (via aliases) +- `:fdb` - FoundationDB client +- `:jdbc` - PostgreSQL/JDBC persistence +- `:cljs` - ClojureScript support (shadow-cljs) +- `:dev` - Testing libraries (Kaocha, test.check, matcher-combinators, spy) + +## Important Notes + +- **Determinism**: Workflows must be deterministic for replay to work correctly. Use activities for any non-deterministic operations (random numbers, time, I/O). +- **Namespace Conventions**: File names use underscores (`signal_test.clj`), namespace names use hyphens (`signal-test`). +- **Production Readiness**: Per README, this library is NOT production-ready. Use at your own risk. diff --git a/test/intemporal/tests/store/store_test.clj b/test/intemporal/tests/store/store_test.clj new file mode 100644 index 0000000..715b4a9 --- /dev/null +++ b/test/intemporal/tests/store/store_test.clj @@ -0,0 +1,376 @@ +(ns intemporal.tests.store.store-test + (:require [intemporal.core :as intemporal] + [intemporal.protocol :as p] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]])) + +;; Test activity function +(defn test-activity [x] + (println "Activity executing with:" x) + (* x 10)) + +;; Comprehensive workflow with activity, async, timer, and signal +(defn comprehensive-workflow [initial-value] + (println "Starting comprehensive workflow with:" initial-value) + + ;; 1. Execute an activity + (let [activity-stub (intemporal/stub #'test-activity) + activity-result (activity-stub initial-value)] + + ;; 2. Execute an async operation + (println "Scheduling async operation") + (let [async-handle (intemporal/async #(activity-stub (inc initial-value))) + + ;; Join the async result before moving forward + async-result (intemporal/join async-handle)] + + ;; 3. Schedule a timer + (println "Scheduling timer") + (intemporal/sleep 100) + + ;; 4. Wait for signal + (println "Waiting for signal") + (let [signal-data (intemporal/wait-for-signal "approval")] + + ;; Return comprehensive result + {:activity-result activity-result + :async-result async-result + :signal-data signal-data + :initial-value initial-value})))) + +(deftest test-store-event-validation + (testing "Validate store events for workflow with activity, async, timer, and signal" + (intemporal/with-workflow-engine [engine {:threads 4}] + (let [wf-id "store-validation-test" + initial-value 5 + + ;; Start workflow in a future since it will block on signal + result-future (future + (intemporal/start-workflow engine + comprehensive-workflow [initial-value] + :workflow-id wf-id)) + + ;; Give workflow time to start and reach signal wait + _ (Thread/sleep 200) + + ;; Send the signal to unblock the workflow + _ (intemporal/send-signal (:store engine) wf-id "approval" {:approved true :by "admin"}) + + ;; Wait for workflow to complete + result @result-future + + ;; Load the event history from the store + history (intemporal/get-workflow-history (:store engine) wf-id)] + + ;; Verify workflow completed successfully + (is (match? {:status :completed + :workflow-id wf-id + :result {:activity-result 50 + :async-result 60 + :signal-data {:approved true :by "admin"} + :initial-value 5}} + result)) + + ;; Validate the store contains expected events + (testing "Store history structure" + (is (sequential? history) "History should be a sequence") + (is (pos? (count history)) "History should not be empty")) + + ;; Validate event ordering and extract events for further testing + (testing "Event ordering and sequence numbers" + ;; Verify that events have monotonically increasing timestamps + (let [timestamps (map :timestamp history)] + (is (= timestamps (sort timestamps)) + "Events should be ordered by timestamp")) + + ;; Verify sequence numbers are present and valid where expected + (let [sequenced-events (filter :seq history) + seq-numbers (map :seq sequenced-events)] + (is (every? (complement neg?) seq-numbers) + "Sequence numbers should be non-negative") + ;; Note: sequence numbers may have duplicates (scheduled and completed events share seq) + ;; So we can't test strict monotonicity, just that they're generally ordered + (is (<= (first seq-numbers) (last seq-numbers)) + "Sequence numbers should progress forward"))) + + ;; Extract events by type for detailed validation + (let [events-by-type (group-by :event-type history) + workflow-started-events (get events-by-type :workflow-started []) + activity-scheduled-events (get events-by-type :activity-scheduled []) + activity-completed-events (get events-by-type :activity-completed []) + async-started-events (get events-by-type :async-started []) + async-completed-events (get events-by-type :async-completed []) + timer-scheduled-events (get events-by-type :timer-scheduled []) + timer-fired-events (get events-by-type :timer-fired []) + signal-received-events (get events-by-type :signal-received []) + signal-wait-completed-events (get events-by-type :signal-wait-completed []) + workflow-completed-events (get events-by-type :workflow-completed [])] + + (testing "Workflow lifecycle events" + (is (= 1 (count workflow-started-events)) + "Should have exactly one workflow-started event") + (is (= 1 (count workflow-completed-events)) + "Should have exactly one workflow-completed event") + + (let [started-event (first workflow-started-events) + completed-event (first workflow-completed-events)] + (is (match? {:event-type :workflow-started + :workflow-id wf-id + :args [initial-value] + :timestamp int?} + started-event) + "workflow-started event should have correct structure") + + (is (match? {:event-type :workflow-completed + :result {:activity-result 50 + :async-result 60 + :signal-data {:approved true :by "admin"} + :initial-value 5} + :timestamp int?} + completed-event) + "workflow-completed event should have correct result"))) + + (testing "Activity events" + ;; We expect 3 activity executions: + ;; 1. Direct activity call with initial-value (5) + ;; 2. Async activity call with (inc initial-value) (6) - scheduled + ;; 3. Async activity call with (inc initial-value) (6) - executed + (is (>= (count activity-scheduled-events) 2) + "Should have at least 2 activity-scheduled events (direct + async)") + (is (>= (count activity-completed-events) 2) + "Should have at least 2 activity-completed events") + + ;; Validate activity-scheduled event structure + (doseq [event activity-scheduled-events] + (is (match? {:event-type :activity-scheduled + :seq int? + :activity-name string? + :args vector? + :timestamp int?} + event) + "activity-scheduled event should have required fields")) + + ;; Validate activity-completed event structure + (doseq [event activity-completed-events] + (is (match? {:event-type :activity-completed + :seq int? + :activity-name string? + :result int? + :timestamp int?} + event) + "activity-completed event should have required fields")) + + ;; Verify sequence numbers match between scheduled and completed + (let [scheduled-seqs (set (map :seq activity-scheduled-events)) + completed-seqs (set (map :seq activity-completed-events))] + (is (every? scheduled-seqs completed-seqs) + "All completed activities should have been scheduled first"))) + + (testing "Async events" + (is (= 1 (count async-started-events)) + "Should have exactly one async-started event") + (is (= 1 (count async-completed-events)) + "Should have exactly one async-completed event") + + (let [started (first async-started-events) + completed (first async-completed-events)] + (is (match? {:event-type :async-started + :seq int? + :timestamp int?} + started) + "async-started event should have required fields") + + (is (match? {:event-type :async-completed + :seq int? + :last-seq int? + :result 60 + :timestamp int?} + completed) + "async-completed event should have required fields and correct result") + + ;; Verify sequence numbers match + (is (= (:seq started) (:seq completed)) + "Async started and completed should have same sequence number"))) + + (testing "Timer events" + (is (= 1 (count timer-scheduled-events)) + "Should have exactly one timer-scheduled event") + (is (= 1 (count timer-fired-events)) + "Should have exactly one timer-fired event") + + (let [scheduled (first timer-scheduled-events) + fired (first timer-fired-events)] + (is (match? {:event-type :timer-scheduled + :seq int? + :duration-ms 100 + :fire-at int? + :timestamp int?} + scheduled) + "timer-scheduled event should have required fields") + + (is (match? {:event-type :timer-fired + :seq int? + :timestamp int?} + fired) + "timer-fired event should have required fields") + + ;; Verify sequence numbers match + (is (= (:seq scheduled) (:seq fired)) + "Timer scheduled and fired should have same sequence number") + + ;; Verify fire-at time is in the past + (is (<= (:fire-at scheduled) (System/currentTimeMillis)) + "Timer fire-at should be in the past"))) + + (testing "Signal events" + (is (= 1 (count signal-received-events)) + "Should have exactly one signal-received event") + + ;; Note: signal-wait-completed is only used by wait-for-signal-with-timeout + ;; wait-for-signal uses signal-received directly + + (let [received (first signal-received-events)] + (is (match? {:event-type :signal-received + :seq int? + :signal-name "approval" + :payload {:approved true :by "admin"} + :timestamp int?} + received) + "signal-received event should have required fields and correct payload"))) + + (testing "Event ordering and sequence numbers" + ;; Verify that events have monotonically increasing timestamps + (let [timestamps (map :timestamp history)] + (is (= timestamps (sort timestamps)) + "Events should be ordered by timestamp")) + + ;; Verify sequence numbers are present and valid where expected + (let [sequenced-events (filter :seq history) + seq-numbers (map :seq sequenced-events)] + (is (every? (complement neg?) seq-numbers) + "Sequence numbers should be non-negative") + ;; Note: sequence numbers may have duplicates (scheduled and completed events share seq) + ;; So we can't test strict monotonicity, just that they're generally ordered + (is (<= (first seq-numbers) (last seq-numbers)) + "Sequence numbers should progress forward"))) + + (testing "Event completeness" + ;; Verify all major workflow phases are represented + (is (seq workflow-started-events) "Workflow should have started") + (is (seq activity-scheduled-events) "Activities should have been scheduled") + (is (seq activity-completed-events) "Activities should have completed") + (is (seq async-started-events) "Async operation should have started") + (is (seq async-completed-events) "Async operation should have completed") + (is (seq timer-scheduled-events) "Timer should have been scheduled") + (is (seq timer-fired-events) "Timer should have fired") + (is (seq signal-received-events) "Signal should have been received") + (is (seq workflow-completed-events) "Workflow should have completed")) + + (testing "Detailed event ordering validation" + ;; Helper to get first position of an event type + (let [first-pos (fn [event-type] + (let [idx (.indexOf (mapv :event-type history) event-type)] + (if (= -1 idx) Integer/MAX_VALUE idx))) + + ;; Helper to get last position of an event type + last-pos (fn [event-type] + (let [indices (keep-indexed #(when (= event-type (:event-type %2)) %1) history)] + (if (empty? indices) -1 (last indices))))] + + ;; workflow-started should be first + (is (= 0 (first-pos :workflow-started)) + "workflow-started should be the first event") + + ;; workflow-completed should be last + (is (= (dec (count history)) (last-pos :workflow-completed)) + "workflow-completed should be the last event") + + ;; For each activity: scheduled must come before completed + (let [scheduled-by-seq (group-by :seq activity-scheduled-events)] + (doseq [completed activity-completed-events] + (let [seq-num (:seq completed) + scheduled-list (get scheduled-by-seq seq-num)] + (when (seq scheduled-list) + (let [scheduled (first scheduled-list) + scheduled-idx (.indexOf history scheduled) + completed-idx (.indexOf history completed)] + (is (< scheduled-idx completed-idx) + (str "activity-scheduled (seq " seq-num ") should come before activity-completed"))))))) + + ;; async-started must come before async-completed + (when (and (seq async-started-events) (seq async-completed-events)) + (let [async-started-idx (.indexOf history (first async-started-events)) + async-completed-idx (.indexOf history (first async-completed-events))] + (is (< async-started-idx async-completed-idx) + "async-started should come before async-completed"))) + + ;; timer-scheduled must come before timer-fired + (when (and (seq timer-scheduled-events) (seq timer-fired-events)) + (let [timer-scheduled-idx (.indexOf history (first timer-scheduled-events)) + timer-fired-idx (.indexOf history (first timer-fired-events))] + (is (< timer-scheduled-idx timer-fired-idx) + "timer-scheduled should come before timer-fired"))) + + ;; First direct activity should complete before async starts + (when (and (seq activity-completed-events) (seq async-started-events)) + (let [first-activity-completed-idx (first (keep-indexed #(when (= :activity-completed (:event-type %2)) %1) history)) + first-async-idx (first-pos :async-started)] + (is (< first-activity-completed-idx first-async-idx) + "First activity should complete before async starts"))) + + ;; Async should complete before timer is scheduled + (when (and (seq async-completed-events) (seq timer-scheduled-events)) + (let [async-completed-idx (last-pos :async-completed) + timer-scheduled-idx (first-pos :timer-scheduled)] + (is (< async-completed-idx timer-scheduled-idx) + "async-completed should come before timer-scheduled"))) + + ;; Timer should fire before signal is received + (when (and (seq timer-fired-events) (seq signal-received-events)) + (let [timer-fired-idx (last-pos :timer-fired) + signal-received-idx (first-pos :signal-received)] + (is (< timer-fired-idx signal-received-idx) + "timer-fired should come before signal-received")))))))))) + +(deftest test-store-replay-consistency + (testing "Store events allow deterministic replay" + (intemporal/with-workflow-engine [engine {:threads 4}] + (let [wf-id "replay-consistency-test" + initial-value 7 + + ;; First execution + result-future-1 (future + (intemporal/start-workflow engine + comprehensive-workflow [initial-value] + :workflow-id wf-id)) + _ (Thread/sleep 200) + _ (intemporal/send-signal (:store engine) wf-id "approval" {:replay "first"}) + result-1 @result-future-1 + history-1 (intemporal/get-workflow-history (:store engine) wf-id) + + ;; Second execution (resume/replay) + result-2 (intemporal/resume-workflow engine wf-id + comprehensive-workflow [initial-value]) + history-2 (intemporal/get-workflow-history (:store engine) wf-id)] + + (testing "Results should be consistent" + (is (= (:status result-1) (:status result-2) :completed) + "Both executions should complete successfully") + (is (= (dissoc (:result result-1) :signal-data) + (dissoc (:result result-2) :signal-data)) + "Activity and async results should be identical on replay")) + + (testing "History should be preserved" + ;; Note: replay may add a workflow-started event, so history length might increase by 1 + (is (<= (count history-1) (count history-2) (inc (count history-1))) + "History length should be preserved or grow by at most 1 on replay") + + ;; Activity and async events should be identical + (let [activity-events-1 (filter #(#{:activity-scheduled :activity-completed} (:event-type %)) history-1) + activity-events-2 (filter #(#{:activity-scheduled :activity-completed} (:event-type %)) history-2) + async-events-1 (filter #(#{:async-started :async-completed} (:event-type %)) history-1) + async-events-2 (filter #(#{:async-started :async-completed} (:event-type %)) history-2)] + (is (= (count activity-events-1) (count activity-events-2)) + "Should have same number of activity events") + (is (= (count async-events-1) (count async-events-2)) + "Should have same number of async events"))))))) From 47796e10a62e3c773a0d895efa71560c9beb1dfc Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 10 Feb 2026 12:47:40 +0000 Subject: [PATCH 57/81] next-js, still promisifying --- cljs.md | 291 ++++++++++++++++++ deps.edn | 7 +- package-lock.json | 83 ++++- package.json | 3 +- src/intemporal/{core.clj => core.cljc} | 88 ++---- .../internal/{activity.clj => activity.cljc} | 0 .../internal/{context.clj => context.cljc} | 4 +- src/intemporal/internal/error.clj | 94 ------ src/intemporal/internal/error.cljc | 136 ++++++++ .../{execution.clj => execution.cljc} | 101 +++--- .../internal/fns/start_workflow.clj | 75 +++++ .../internal/fns/start_workflow.cljs | 50 +++ .../internal/{logging.clj => logging.cljc} | 37 ++- src/intemporal/internal/runtime.cljs | 215 +++++++++++++ src/intemporal/observer.cljc | 142 +++++++++ .../{observer.clj => observer/otel.clj} | 142 +-------- .../{protocol.clj => protocol.cljc} | 0 src/intemporal/{store.clj => store.cljc} | 3 +- src/intemporal/utils.cljc | 5 + ...flow_test.clj => child_workflow_test.cljc} | 45 +-- .../tests/{error_test.clj => error_test.cljc} | 49 +-- .../tests/{timer_test.clj => timer_test.cljc} | 33 +- test/intemporal/tests/tracing_test.clj | 4 +- test/intemporal/tests/utils.cljc | 51 +++ 24 files changed, 1215 insertions(+), 443 deletions(-) create mode 100644 cljs.md rename src/intemporal/{core.clj => core.cljc} (83%) rename src/intemporal/internal/{activity.clj => activity.cljc} (100%) rename src/intemporal/internal/{context.clj => context.cljc} (95%) delete mode 100644 src/intemporal/internal/error.clj create mode 100644 src/intemporal/internal/error.cljc rename src/intemporal/internal/{execution.clj => execution.cljc} (89%) create mode 100644 src/intemporal/internal/fns/start_workflow.clj create mode 100644 src/intemporal/internal/fns/start_workflow.cljs rename src/intemporal/internal/{logging.clj => logging.cljc} (75%) create mode 100644 src/intemporal/internal/runtime.cljs create mode 100644 src/intemporal/observer.cljc rename src/intemporal/{observer.clj => observer/otel.clj} (57%) rename src/intemporal/{protocol.clj => protocol.cljc} (100%) rename src/intemporal/{store.clj => store.cljc} (97%) create mode 100644 src/intemporal/utils.cljc rename test/intemporal/tests/{child_workflow_test.clj => child_workflow_test.cljc} (69%) rename test/intemporal/tests/{error_test.clj => error_test.cljc} (71%) rename test/intemporal/tests/{timer_test.clj => timer_test.cljc} (54%) create mode 100644 test/intemporal/tests/utils.cljc diff --git a/cljs.md b/cljs.md new file mode 100644 index 0000000..e06920c --- /dev/null +++ b/cljs.md @@ -0,0 +1,291 @@ +# ClojureScript Port Analysis for Intemporal + +## Context + +The user wants to understand which parts of the intemporal library need to be rewritten to support ClojureScript. Intemporal is a workflow orchestration library inspired by Temporal.io that relies heavily on JVM concurrency primitives for activity execution, scheduling, and persistence. + +## Current State + +### Already ClojureScript-Ready (1 file) +- **src/intemporal/internal/macros.cljc** - Already a .cljc file with platform-specific code using macrovich + +### Pure Clojure (Platform-Agnostic) - 6 files +These files contain no Java interop and could be converted to .cljc with minimal changes: + +1. **src/intemporal/protocol.clj** - Pure protocol definitions (IStore, IActivityExecutor, IScheduler, IWorkflowObserver) +2. **src/intemporal/internal/context.clj** - Dynamic context management using atoms +3. **src/intemporal/internal/activity.clj** - Activity registry and metadata (atoms only) +4. **src/intemporal/observer.clj** - Observer protocol implementations +5. **src/intemporal/core.clj** (mostly) - Core workflow API (stub, async, join, sleep, signals) +6. **src/intemporal/store.clj** (InMemoryStore) - Uses atoms, one `future` call for signal callbacks + +### Heavy JVM Dependencies - 3 Critical Files + +These files are the **main rewrite targets** and contain extensive Java interop: + +#### 1. **src/intemporal/internal/runtime.clj** - COMPLETE REWRITE NEEDED +**Java Dependencies:** +```clojure +(:import (java.util.concurrent + ArrayBlockingQueue ExecutorService Executors Future + ScheduledExecutorService ScheduledFuture ThreadPoolExecutor + ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException)) +``` + +**What needs rewriting:** + +- **DefaultScheduler** (lines 13-48) + - Uses `ScheduledExecutorService` for timer scheduling + - `.schedule()` method with TimeUnit/MILLISECONDS + - `.cancel()`, `.shutdown()`, `.awaitTermination()` methods + - **ClojureScript alternative**: `js/setTimeout`, `js/clearTimeout`, core.async channels + +- **ParallelActivityExecutor** (lines 61-156) + - Uses `ExecutorService` and thread pools for parallel activity execution + - `.submit()` and `.get()` with timeout for futures + - Virtual threads via `Thread/ofVirtual` + - Bounded executor with `ThreadPoolExecutor` and `ArrayBlockingQueue` + - **ClojureScript alternative**: core.async go blocks, promises, or web workers (browser) / worker threads (Node.js) + +- **Activity retry logic with Thread/sleep** (line 114) + - **ClojureScript alternative**: `js/setTimeout` with promises + +#### 2. **src/intemporal/internal/execution.clj** - MODERATE REWRITE +**Java Dependencies:** +```clojure +(:import (java.util.concurrent RejectedExecutionException)) +``` + +**What needs rewriting:** +- Exception handling for `RejectedExecutionException` (lines 59, 91) + - **ClojureScript alternative**: Custom error types or ex-info with specific markers +- Activity execution and retry logic intertwined with executor calls +- `System/currentTimeMillis` calls (lines 48, 53, etc.) + - **ClojureScript alternative**: `(.now js/Date)` or `(js/Date.now)` + +#### 3. **src/intemporal/internal/logging.clj** - MODERATE REWRITE +**Java Dependencies:** +```clojure +(:import (org.slf4j MDC)) +``` + +**What needs rewriting:** +- SLF4J MDC (Mapped Diagnostic Context) for structured logging + - **ClojureScript alternative**: Thread-local storage doesn't exist in JS; use dynamic binding or atom-based context +- Depends on logback (JVM-only) + - **ClojureScript alternative**: Browser console API or Node.js logging libraries + +### Minor Java Interop in Core Files + +**src/intemporal/core.clj:** +- `System/currentTimeMillis` (lines 66, 227, 270, 288, 293, etc.) + - Easy replacement with `.now js/Date` + +**src/intemporal/store.clj:** +- One `(future (callback))` call (line 40) for async signal callbacks + - **ClojureScript alternative**: Use promises or core.async + +**src/intemporal/internal/error.clj:** +- Uses `proxy [Error IExceptionInfo]` (line 14) + - **ClojureScript alternative**: `js/Error` or custom error types +- `.getStackTrace()` and `.getCause()` methods (lines 88, 89) + - **ClojureScript alternative**: `.-stack` property, custom cause tracking + +## Parts That Need Complete Rewriting + +### 1. Activity Execution Layer (HIGHEST PRIORITY) +**File**: `src/intemporal/internal/runtime.clj` - **ParallelActivityExecutor** + +**Current JVM approach:** +- Thread pool executor with configurable concurrency +- Blocking `.get()` with timeout on futures +- Virtual threads (Java 21+) + +**ClojureScript alternatives:** + +**Option A: core.async (Recommended for Node.js)** +```clojure +(require '[cljs.core.async :as async]) + +(defn execute-activity-async [activity-fn args timeout-ms] + (let [result-ch (async/promise-chan) + timeout-ch (async/timeout timeout-ms)] + (async/go + (try + (let [result (apply activity-fn args)] + (async/put! result-ch {:status :success :result result})) + (catch js/Error e + (async/put! result-ch {:status :error :error e})))) + ;; Race between result and timeout + (async/go + (async/alt! + result-ch ([v] v) + timeout-ch ([_] {:status :timeout}))))) +``` + +**Option B: Promises (Browser/Node.js)** +```clojure +(defn execute-activity-async [activity-fn args timeout-ms] + (js/Promise.race + #js [(js/Promise. (fn [resolve reject] + (try + (resolve (apply activity-fn args)) + (catch js/Error e (reject e))))) + (js/Promise. (fn [resolve _] + (js/setTimeout + #(resolve {:timeout true}) + timeout-ms)))])) +``` + +**Option C: Web Workers (Browser only) for true parallelism** +- Activities run in separate worker threads +- More complex but provides real parallelism + +### 2. Timer/Scheduler Layer (HIGH PRIORITY) +**File**: `src/intemporal/internal/runtime.clj` - **DefaultScheduler** + +**Current JVM approach:** +- ScheduledExecutorService with precise scheduling +- Cancellable scheduled tasks + +**ClojureScript alternative:** +```clojure +(defrecord DefaultScheduler [pending-timers] + p/IScheduler + (schedule-timer [_ workflow-id seq-num fire-at callback] + (let [delay-ms (max 0 (- fire-at (.now js/Date))) + timer-key [workflow-id seq-num] + timer-id (js/setTimeout callback delay-ms)] + (swap! pending-timers assoc timer-key timer-id) + timer-key)) + + (cancel-timer [_ workflow-id seq-num] + (let [timer-key [workflow-id seq-num]] + (when-let [timer-id (get @pending-timers timer-key)] + (js/clearTimeout timer-id) + (swap! pending-timers dissoc timer-key)))) + + (shutdown-scheduler [_ grace-period-secs] + (doseq [[_ timer-id] @pending-timers] + (js/clearTimeout timer-id)) + (reset! pending-timers {})) + + (shutdown-scheduler? [_] + (empty? @pending-timers))) +``` + +### 3. Logging Layer (MEDIUM PRIORITY) +**File**: `src/intemporal/internal/logging.clj` + +**Current JVM approach:** +- SLF4J with MDC for contextual logging +- Logback integration + +**ClojureScript alternatives:** + +**Option A: Console logging with context atom** +```clojure +(def ^:dynamic *log-context* {}) + +(defmacro with-mdc [m & body] + `(binding [*log-context* (merge *log-context* ~m)] + ~@body)) + +(defn log [level & args] + (let [context-str (when (seq *log-context*) + (str " " (pr-str *log-context*)))] + (.apply (aget js/console level) + js/console + (to-array (cons (str (first args) context-str) + (rest args)))))) + +(defmacro info [& args] + `(log "info" ~@args)) +``` + +**Option A: Use existing ClojureScript logging library** +- `lambdaisland/glogi` (Google Closure logging) +- Custom wrapper around console API + +### 4. Error Handling (LOW PRIORITY) +**File**: `src/intemporal/internal/error.clj` + +**Changes needed:** +- Replace `proxy [Error IExceptionInfo]` with `js/Error` extension +- Replace `.getStackTrace()` with `.-stack` +- Replace `.getCause()` with custom cause tracking in ex-data + +```clojure +#?(:clj (proxy [Error IExceptionInfo] ...) + :cljs (let [err (js/Error. message)] + (set! (.-data err) data) + err)) +``` + +## Implementation Strategy + +### Phase 1: Create Platform-Agnostic Core (.cljc) +Convert these files to .cljc with minimal changes: +1. protocol.clj → protocol.cljc +2. context.clj → context.cljc +3. activity.clj → activity.cljc +4. observer.clj → observer.cljc +5. error.clj → error.cljc (with reader conditionals) +6. core.clj → core.cljc (replace System/currentTimeMillis) +7. store.clj → store.cljc (replace future with platform-specific async) + +### Phase 2: Implement Platform-Specific Runtime +Create separate implementations: +- **runtime.clj** - Keep existing JVM implementation +- **runtime.cljs** - New ClojureScript implementation using: + - js/setTimeout for scheduling + - Promises or core.async for activity execution + - No thread pools (single-threaded event loop) + +### Phase 3: Platform-Specific Logging +- **logging.clj** - Keep SLF4J/logback +- **logging.cljs** - Console API with context tracking + +### Phase 4: Execution Layer Updates +Update execution.clj → execution.cljc with reader conditionals for: +- RejectedExecutionException handling +- Time measurement + +### Phase 5: Testing +- Add ClojureScript tests (shadow-cljs :node target already configured) +- Test in both Node.js and browser environments + +## Key Architectural Differences + +### JVM (Multi-threaded) +- Real parallelism via thread pools +- Blocking operations with timeouts +- Virtual threads for scalability + +### ClojureScript (Single-threaded Event Loop) +- **No true parallelism** (except Web Workers) +- All operations are async/non-blocking +- Promises or core.async for concurrency +- Activity "parallelism" means concurrent promises, not parallel threads + +### Implications +- **Performance**: ClojureScript won't have true parallel activity execution unless using Web Workers +- **Compatibility**: Workflow definitions should work identically, but execution will be async +- **APIs**: Main API should remain the same, but return promises instead of blocking +- **Testing**: Need both JVM and ClojureScript test suites + +## Complexity Assessment + +**Lines of Code to Rewrite:** +- runtime.clj: ~180 lines → Complete rewrite +- execution.clj: ~300 lines → 20% modification (exception handling, time) +- logging.clj: ~50 lines → Complete rewrite (simpler in ClojureScript) +- error.clj: ~94 lines → 15% modification (reader conditionals) +- Other files: ~10 replacements of System/currentTimeMillis + +**Estimated Effort:** +- **High complexity**: Runtime layer (activity executor, scheduler) +- **Medium complexity**: Execution layer updates, logging +- **Low complexity**: Converting .clj to .cljc, time replacements + +**Total**: ~600-800 lines of new/modified code diff --git a/deps.edn b/deps.edn index 3553b2a..0d67c2e 100644 --- a/deps.edn +++ b/deps.edn @@ -3,9 +3,7 @@ :deps {org.clojure/clojure {:mvn/version "1.12.1"} org.clojure/tools.logging {:mvn/version "1.2.4"} - ch.qos.logback/logback-classic {:mvn/version "1.5.18"} - ;thheller/shadow-cljs {:mvn/version "2.28.11"} - net.logstash.logback/logstash-logback-encoder {:mvn/version "8.1"} + thheller/shadow-cljs {:mvn/version "2.28.11"} com.github.steffan-westcott/clj-otel-api {:mvn/version "0.2.10"} ;;stuff net.cgrand/macrovich {:mvn/version "0.2.2"}} @@ -24,11 +22,12 @@ "-Dotel.resource.attributes=service.name=intemporal"] :extra-deps {exoscale/automata {:mvn/version "0.1.10"} + funcool/promesa {:mvn/version "12.0.0-RC2"} lambdaisland/kaocha {:mvn/version "1.91.1392"} lambdaisland/kaocha-cloverage {:mvn/version "1.1.89"} lambdaisland/kaocha-junit-xml {:mvn/version "1.17.101"} com.lambdaisland/kaocha-cljs {:mvn/version "1.5.154"} - ;ch.qos.logback/logback-classic {:mvn/version "1.5.18"} + ch.qos.logback/logback-classic {:mvn/version "1.5.18"} tortue/spy {:mvn/version "2.15.0"} nubank/matcher-combinators {:mvn/version "3.9.2"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "1.6.2"}}} diff --git a/package-lock.json b/package-lock.json index e85f8b3..b95f2fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ }, "devDependencies": { "@chrisoakman/standard-clojure-style": "^0.14.0", - "shadow-cljs": "^2.20.7" + "shadow-cljs": "^2.20.7", + "source-map-support": "^0.5.21" }, "engines": { "node": ">=19.0.0", @@ -275,6 +276,13 @@ "isarray": "^1.0.0" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -1331,6 +1339,26 @@ "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", "dev": true }, + "node_modules/shadow-cljs/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shadow-cljs/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, "node_modules/shadow-cljs/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -1386,21 +1414,24 @@ } }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { - "source-map": "^0.5.6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "node_modules/stream-browserify": { @@ -2076,6 +2107,12 @@ "isarray": "^1.0.0" } }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -2948,6 +2985,21 @@ "ws": "^7.4.6" }, "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -2985,18 +3037,19 @@ "dev": true }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { - "source-map": "^0.5.6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "stream-browserify": { diff --git a/package.json b/package.json index 97f2f87..342754d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "homepage": "https://github.com/mping/intemporal#readme", "devDependencies": { "@chrisoakman/standard-clojure-style": "^0.14.0", - "shadow-cljs": "^2.20.7" + "shadow-cljs": "^2.20.7", + "source-map-support": "^0.5.21" }, "engines": { "npm": ">=9.0.0", diff --git a/src/intemporal/core.clj b/src/intemporal/core.cljc similarity index 83% rename from src/intemporal/core.clj rename to src/intemporal/core.cljc index 37cc08f..b536883 100644 --- a/src/intemporal/core.clj +++ b/src/intemporal/core.cljc @@ -5,9 +5,12 @@ [intemporal.internal.runtime :as runtime] [intemporal.internal.execution :as exec] [intemporal.internal.logging :as log] + [intemporal.internal.fns.start-workflow :as sw] [intemporal.protocol :as p] [intemporal.store :as store] - [intemporal.observer :as obs])) + [intemporal.observer :as obs] + [intemporal.utils :as utils]) + #?(:cljs (:require-macros [intemporal.internal.logging :as log]))) ;; ============================================================================ ;; Core Workflow Operations @@ -63,7 +66,7 @@ :retry-policy (when effective-retry {:max-attempts (:max-attempts effective-retry) :backoff-ms (:backoff-ms effective-retry)}) - :timestamp (System/currentTimeMillis)}] + :timestamp (utils/current-time-ms)}] ;; interruptions are scheduled just the same (when interrupted? (log/infof "Activity was interrupted: rescheduling")) @@ -129,7 +132,7 @@ :else (let [start-event {:event-type :async-started :seq seq-num - :timestamp (System/currentTimeMillis)} + :timestamp (utils/current-time-ms)} start-seq seq-num] (ctx/add-pending-event! start-event) (ctx/notify-observer p/on-async-started (:workflow-id ctx) seq-num) @@ -145,11 +148,11 @@ :seq start-seq :last-seq end-seq :result result - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (ctx/notify-observer p/on-async-completed (:workflow-id ctx) start-seq result) (log/tracef "Async completed successfully with result %s" result) (->AsyncHandle start-seq)) - (catch Throwable e + (catch #?(:clj Throwable :cljs js/Error) e (if (error/suspension? e) ;; The thunk suspended on an activity - capture it for parallel execution (let [suspension-info (error/suspension-data e) @@ -224,7 +227,7 @@ :seq seq-num :index completed-idx :result result - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) {:index completed-idx :result result}) (throw (error/make-suspension :join-any-pending {:seq seq-num @@ -267,7 +270,7 @@ {:seq seq-num :signal-name signal-name :timeout-ms timeout-ms - :deadline (+ (System/currentTimeMillis) timeout-ms)}))))) + :deadline (+ (utils/current-time-ms) timeout-ms)}))))) ;; ================================================================ ;; ============ @@ -285,12 +288,12 @@ existing (p/find-event store workflow-id :timer-fired seq-num)] (if existing nil - (let [fire-at (+ (System/currentTimeMillis) ms)] + (let [fire-at (+ (utils/current-time-ms) ms)] (ctx/add-pending-event! {:event-type :timer-scheduled :seq seq-num :fire-at fire-at :duration-ms ms - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (ctx/notify-observer p/on-timer-scheduled (:workflow-id ctx) seq-num fire-at) (throw (error/make-suspension :timer {:seq seq-num :fire-at fire-at})))))) @@ -325,7 +328,7 @@ :seq seq-num :child-workflow-id child-wf-id :args (vec args) - :timestamp (System/currentTimeMillis)}] + :timestamp (utils/current-time-ms)}] (ctx/add-pending-event! scheduled-event) (throw (error/make-suspension :child-workflow {:seq seq-num @@ -352,66 +355,11 @@ Options: - :workflow-id - Custom workflow ID (default: random UUID) - :observer - IWorkflowObserver for monitoring - - :max-iterations - Maximum replay iterations (default: 1000)" - [{:keys [store executor scheduler registry] :as engine} workflow-fn args - & {:keys [workflow-id observer max-iterations] - :or {max-iterations 1000}}] - (let [wf-id (or workflow-id (str (random-uuid))) - resume-promise-atom (atom nil) - ;; TODO fixme this could be passed via the `with-workflow-engine` macro - observer (or observer (get engine :observer)) - wake-fn (fn wake-fn-impl [] - (log/with-mdc {:workflow-id wf-id} - (try - (when observer - (p/on-workflow-resumed observer wf-id)) - (log/debugf "Waking workflow for resume") - (let [old-promise @resume-promise-atom - new-promise (promise) - ;_ (reset! resume-promise-atom new-promise) - result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn-impl})] - (reset! resume-promise-atom new-promise) - (deliver old-promise result)) - (catch Exception e - (when-let [p @resume-promise-atom] - (deliver p {:status :failed :error e}))))))] - - (log/with-mdc {:workflow-id wf-id} - ;; Initialize with first promise - (reset! resume-promise-atom (promise)) - (p/save-event store wf-id {:event-type :workflow-started - :workflow-id wf-id - :args (vec args) - :timestamp (System/currentTimeMillis)}) - (when observer - (p/on-workflow-started observer wf-id args)) - (log/info "Workflow started") - (try - ;; Execute initial workflow run - (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn})] - ;; Loop to handle multiple wait cycles - (loop [result initial-result] - ;; If workflow is waiting, block until wake-fn delivers next result - (log/infof "Got result %s with status %s" (:result initial-result) (:status initial-result)) - (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) - ;; Capture the promise that wake-fn will deliver to - (do - (log/infof "Workflow waiting for promise: %s" (:status result)) - (let [next-promise @resume-promise-atom - next-result @next-promise] - (recur next-result))) - ;; else - result))) - (catch Exception e - ;; If cancelled/failed before entering wait state, re-throw - (log/warnf e "Caught exception") - (throw e)))))) + - :max-iterations - Maximum replay iterations (default: 1000) + + Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript." + [engine workflow-fn args & opts] + (apply sw/start-workflow engine workflow-fn args opts)) (defn resume-workflow "Resume a waiting workflow (e.g., after signal delivery or timer). diff --git a/src/intemporal/internal/activity.clj b/src/intemporal/internal/activity.cljc similarity index 100% rename from src/intemporal/internal/activity.clj rename to src/intemporal/internal/activity.cljc diff --git a/src/intemporal/internal/context.clj b/src/intemporal/internal/context.cljc similarity index 95% rename from src/intemporal/internal/context.clj rename to src/intemporal/internal/context.cljc index b34c6ab..82d502b 100644 --- a/src/intemporal/internal/context.clj +++ b/src/intemporal/internal/context.cljc @@ -68,6 +68,6 @@ (when-let [observer (:observer (current-context))] (try (apply event-fn observer args) - (catch Exception e + (catch #?(:clj Exception :cljs js/Error) e ;; Don't let observer errors break workflow - (println "Observer error:" (.getMessage e)))))) + (println "Observer error:" (ex-message e)))))) diff --git a/src/intemporal/internal/error.clj b/src/intemporal/internal/error.clj deleted file mode 100644 index 9b4737e..0000000 --- a/src/intemporal/internal/error.clj +++ /dev/null @@ -1,94 +0,0 @@ -(ns intemporal.internal.error - (:import (clojure.lang IExceptionInfo))) - - -;; ============================================================================ -;; Exceptions and Error Handling -;; ============================================================================ -(defn- internal-error - "Internal exception constructor, subclasses error to prevent userland code to caught this - exception in `(try ... (catch Exception e))` blocks" - ([message data] - (internal-error message data nil)) - ([message data cause] - (proxy [Error IExceptionInfo] [message cause] - (getData [] data) - (toString [] - (str message - (when data (str " " (pr-str data))) - (when cause (str "\nCaused by: " cause))))))) - -(defn make-suspension [type data] - (internal-error "Workflow suspended" {:type type :data data ::suspension true})) - -(defn suspension? [e] - (and (instance? Error e) - (instance? IExceptionInfo e) - (::suspension (ex-data e)))) - -(defn interruption? [e] - (and (instance? IExceptionInfo e) - (::activity-interrupted (ex-data e)))) - -(defn rejection? [e] - (and (instance? IExceptionInfo e) - (::rejected (ex-data e)))) - -(defn suspension-type [e] - (-> e ex-data :type)) - -(defn suspension-data [e] - (-> e ex-data :data)) - -(defn workflow-cancelled-exception [] - (internal-error "Workflow cancelled" {::cancelled true})) - -(defn cancelled-exception? [e] - (and (instance? Error e) - (instance? IExceptionInfo e) - (::cancelled (ex-data e)))) - -(defn activity-rejected-exception [activity-name cause] - (ex-info "Execution rejected" - {::rejected true - :cause cause - :activity-name activity-name})) - - -(defn activity-timeout-exception [activity-name timeout-ms] - (ex-info "Activity timed out" - {::activity-timeout true - :activity-name activity-name - :timeout-ms timeout-ms})) - -(defn activity-interrupted-exception [activity-name cause] - (ex-info "Activity interrupted" - {::activity-interrupted true - :cause cause - :activity-name activity-name})) - -(defn activity-failed-exception [activity-name cause] - (ex-info "Activity failed" - {::activity-failed true - :activity-name activity-name} - cause)) - -(defn async-failed-exception [handle-seq cause] - (ex-info "Async operation failed" - {::async-failed true - :handle-seq handle-seq - :cause cause})) - -(defn throwable->map [^Throwable t] - (when t - {:type (str (type t)) - :message (.getMessage t) - :data (when (instance? IExceptionInfo t) - (ex-data t)) - :stack-trace (mapv str (.getStackTrace t)) - :cause (throwable->map (.getCause t))})) - -(defn map->exception [m] - (when m - (ex-info (or (:message m) "Restored exception") - (merge {:restored true} (:data m))))) \ No newline at end of file diff --git a/src/intemporal/internal/error.cljc b/src/intemporal/internal/error.cljc new file mode 100644 index 0000000..cf70c0c --- /dev/null +++ b/src/intemporal/internal/error.cljc @@ -0,0 +1,136 @@ +(ns intemporal.internal.error + (:require [clojure.string :as str]) + #?(:clj (:import (clojure.lang IExceptionInfo)))) + + +;; ============================================================================ +;; Exceptions and Error Handling +;; ============================================================================ +(defn- internal-error + "Internal exception constructor, subclasses error to prevent userland code to caught this + exception in `(try ... (catch Exception e))` blocks" + ([message data] + (internal-error message data nil)) + ([message data cause] + #?(:clj + (proxy [Error IExceptionInfo] [message cause] + (getData [] data) + (toString [] + (str message + (when data (str " " (pr-str data))) + (when cause (str "\nCaused by: " cause))))) + :cljs + (let [err (js/Error. message)] + (set! (.-data err) data) + (set! (.-cause err) cause) + err)))) + +(defn make-suspension [type data] + (internal-error "Workflow suspended" {:type type :data data ::suspension true})) + +(defn suspension? [e] + #?(:clj + (and (instance? Error e) + (instance? IExceptionInfo e) + (::suspension (ex-data e))) + :cljs + (and (instance? js/Error e) + (.-data e) + (::suspension (.-data e))))) + +(defn interruption? [e] + #?(:clj + (and (instance? IExceptionInfo e) + (::activity-interrupted (ex-data e))) + :cljs + (and (instance? js/Error e) + (or (and (.-data e) (::activity-interrupted (.-data e))) + (::activity-interrupted (ex-data e)))))) + +(defn rejection? [e] + #?(:clj + (and (instance? IExceptionInfo e) + (::rejected (ex-data e))) + :cljs + (and (instance? js/Error e) + (or (and (.-data e) (::rejected (.-data e))) + (::rejected (ex-data e)))))) + +(defn suspension-type [e] + #?(:clj (-> e ex-data :type) + :cljs (if (.-data e) + (-> (.-data e) :type) + (-> e ex-data :type)))) + +(defn suspension-data [e] + #?(:clj (-> e ex-data :data) + :cljs (if (.-data e) + (-> (.-data e) :data) + (-> e ex-data :data)))) + +(defn workflow-cancelled-exception [] + (internal-error "Workflow cancelled" {::cancelled true})) + +(defn cancelled-exception? [e] + #?(:clj + (and (instance? Error e) + (instance? IExceptionInfo e) + (::cancelled (ex-data e))) + :cljs + (and (instance? js/Error e) + (.-data e) + (::cancelled (.-data e))))) + +(defn activity-rejected-exception [activity-name cause] + (ex-info "Execution rejected" + {::rejected true + :cause cause + :activity-name activity-name})) + + +(defn activity-timeout-exception [activity-name timeout-ms] + (ex-info "Activity timed out" + {::activity-timeout true + :activity-name activity-name + :timeout-ms timeout-ms})) + +(defn activity-interrupted-exception [activity-name cause] + (ex-info "Activity interrupted" + {::activity-interrupted true + :cause cause + :activity-name activity-name})) + +(defn activity-failed-exception [activity-name cause] + (ex-info "Activity failed" + {::activity-failed true + :activity-name activity-name} + cause)) + +(defn async-failed-exception [handle-seq cause] + (ex-info "Async operation failed" + {::async-failed true + :handle-seq handle-seq + :cause cause})) + +(defn throwable->map [t] + (when t + #?(:clj + {:type (str (type t)) + :message (ex-message t) + :data (when (instance? IExceptionInfo t) + (ex-data t)) + :stack-trace (mapv str (.getStackTrace t)) + :cause (throwable->map (.getCause t))} + :cljs + {:type (str (type t)) + :message (.-message t) + :data (or (.-data t) (ex-data t)) + :stack-trace (when (.-stack t) + (str/split-lines (.-stack t))) + :cause (when (.-cause t) + (throwable->map (.-cause t)))}))) + +(defn map->exception [m] + (when m + (ex-info (or (:message m) "Restored exception") + (merge {:restored true} (:data m))))) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.cljc similarity index 89% rename from src/intemporal/internal/execution.clj rename to src/intemporal/internal/execution.cljc index c6bf97c..114843b 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.cljc @@ -3,8 +3,11 @@ [intemporal.internal.context :as ctx] [intemporal.internal.error :as error] [intemporal.internal.logging :as log] + [intemporal.utils :as utils] [intemporal.protocol :as p]) - (:import (java.util.concurrent RejectedExecutionException))) + #?(:cljs (:require-macros [intemporal.internal.logging :as log] + [intemporal.internal.execution :refer [-notify]])) + #?(:clj (:import (java.util.concurrent RejectedExecutionException)))) ;; ============================================================================ ;; Workflow Execution Engine @@ -22,7 +25,7 @@ :result (apply workflow-fn args) :pending-asyncs @(:pending-asyncs (ctx/current-context)) :pending-events @(:pending-events (ctx/current-context))} - (catch Throwable e + (catch #?(:clj Throwable :cljs js/Error) e (cond (error/suspension? e) {:status :suspended @@ -45,28 +48,29 @@ [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] (if (nil? retry-policy) ;; No retry - execute once - (let [start (System/currentTimeMillis)] + (let [start (utils/current-time-ms)] (log/infof "Executing activity via executor %s" executor) (-notify p/on-activity-started observer workflow-id seq-num activity-name) (try (let [result (p/execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] + duration (- (utils/current-time-ms) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) (log/infof "Activity succeeded, result: %s" result) {:status :success :result result :duration duration}) - (catch RejectedExecutionException e - (let [duration (- (System/currentTimeMillis) start) - error (error/activity-rejected-exception activity-name e) - error-map (error/throwable->map error)] - (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) - (log/warnf e "Activity execution rejected") - {:status :failed - :error error-map - :duration duration})) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start) + ;; this only makes sense for clj + #?(:clj (catch RejectedExecutionException e + (let [duration (- (utils/current-time-ms) start) + error (error/activity-rejected-exception activity-name e) + error-map (error/throwable->map error)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity execution rejected") + {:status :failed + :error error-map + :duration duration}))) + (catch #?(:clj Exception :cljs js/Error) e + (let [duration (- (utils/current-time-ms) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) (log/warnf e "Activity failed") @@ -77,28 +81,29 @@ (loop [attempt 1] (-notify p/on-activity-started observer workflow-id seq-num activity-name) (log/infof "Executing activity (attempt %d)" attempt) - (let [start (System/currentTimeMillis) + (let [start (utils/current-time-ms) exec-result (try (log/infof "Executing activity via executor %s" executor) (let [result (p/execute-activity executor activity-name args timeout-ms) - duration (- (System/currentTimeMillis) start)] + duration (- (utils/current-time-ms) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) {:status :success :result result :duration duration :attempts attempt}) - (catch RejectedExecutionException e - (let [duration (- (System/currentTimeMillis) start) - error (error/activity-rejected-exception activity-name e) - error-map (error/throwable->map error)] - (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) - (log/warnf e "Activity execution rejected") - {:status :failed - :error error-map - :duration duration})) - (catch Exception e - (let [duration (- (System/currentTimeMillis) start) + ;; this only makes sense for clj + #?(:clj (catch RejectedExecutionException e + (let [duration (- (utils/current-time-ms) start) + error (error/activity-rejected-exception activity-name e) + error-map (error/throwable->map error)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity execution rejected") + {:status :failed + :error error-map + :duration duration}))) + (catch #?(:clj Exception :cljs js/Error) e + (let [duration (- (utils/current-time-ms) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) (log/warnf e "Activity failed (attempt %d)" attempt) @@ -114,8 +119,10 @@ (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) - (Thread/sleep (long backoff)) - (recur (inc attempt))) + #?(:clj (do (Thread/sleep (long backoff)) + (recur (inc attempt))) + ;;; TODO FIXME + :cljs (throw (ex-info "TODO: implement recur" {})))) ;; else {:status :failed :error (:error exec-result) @@ -138,7 +145,7 @@ :result (:result exec-result) :duration-ms (:duration exec-result) :attempts (:attempts exec-result) - :timestamp (System/currentTimeMillis)} + :timestamp (utils/current-time-ms)} success? (assoc :result (:result exec-result)) (not success?) (assoc :error (:error exec-result)))] (p/save-event store workflow-id event) @@ -155,7 +162,7 @@ ;; Pass complete async-info including retry-policy, activity-seq, handle-seq (log/infof "Executing %d activities in parallel via executor %s" (count pending-asyncs) executor) (let [results (p/execute-activities-parallel executor pending-asyncs) - now (System/currentTimeMillis) + now (utils/current-time-ms) ;; Create completion events for both activities and async handles completion-events @@ -198,7 +205,7 @@ (defn process-timer [store scheduler workflow-id suspension-data pending-events wake-fn observer] (let [{:keys [seq fire-at]} suspension-data - now (System/currentTimeMillis)] + now (utils/current-time-ms)] ;; Save pending events (p/save-events store workflow-id pending-events) (if (>= now fire-at) @@ -214,7 +221,7 @@ (fn [] (p/save-event store workflow-id {:event-type :timer-fired :seq seq - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-timer-fired observer workflow-id seq) (when wake-fn (wake-fn)))) :wait-timer)))) @@ -231,7 +238,7 @@ :signal-name signal-name :signal-id (:id signal-data) :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data)) :continue) ;; ELSE Signal not yet available - register callback and wait @@ -245,7 +252,7 @@ :signal-name signal-name :signal-id (:id signal-data) :payload (:payload signal-data) - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data))) ;; Unregister callback (p/unregister-signal-callback store workflow-id signal-name) @@ -256,7 +263,7 @@ (defn process-signal-with-timeout [store scheduler workflow-id suspension-data pending-events wake-fn observer] (let [{:keys [seq signal-name deadline]} suspension-data - now (System/currentTimeMillis)] + now (utils/current-time-ms)] (p/save-events store workflow-id pending-events) ;; Check if signal already available (if-let [signal-data (p/consume-signal store workflow-id signal-name)] @@ -288,7 +295,7 @@ :seq seq :received (some? signal-data?) :signal-name signal-name - :timestamp (System/currentTimeMillis)} + :timestamp (utils/current-time-ms)} (some? signal-data?) (assoc :payload (:payload signal-data?))))) (when wake-fn (wake-fn)))) @@ -346,7 +353,7 @@ (p/save-events store workflow-id pending-events)) (p/save-event store workflow-id {:event-type :workflow-completed :result result - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-workflow-completed observer workflow-id result) {:status :completed :workflow-id workflow-id @@ -361,7 +368,7 @@ :data {:workflow-id workflow-id}}] (p/save-event store workflow-id {:event-type :workflow-failed :error error-map - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-workflow-cancelled observer workflow-id) (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed @@ -375,7 +382,7 @@ (let [error-map (error/throwable->map error)] (p/save-event store workflow-id {:event-type :workflow-failed :error error-map - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (-notify p/on-workflow-failed observer workflow-id error-map) {:status :failed :workflow-id workflow-id @@ -488,7 +495,7 @@ (ctx/add-pending-event! {:event-type :run-once-completed :seq seq-num :result result - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) result)))) (defn run-workflow-internal @@ -526,7 +533,7 @@ (-notify p/on-workflow-cancelled observer workflow-id) (p/save-event store workflow-id {:event-type :workflow-failed :error error-map - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (log/info "Workflow cancelled, failing") (-notify p/on-workflow-failed observer workflow-id error-map) @@ -593,7 +600,7 @@ :seq seq :child-workflow-id child-workflow-id :result (:result result) - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (log/infof "Child workflow with id %s completed" child-workflow-id) :continue) ;; ELSE @@ -604,14 +611,14 @@ :error (or (:error result) {:status (:status result) :message (str "Child workflow ended with status: " (:status result))}) - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (log/infof "Child workflow with id %s failed, status: %s, error: %s" child-workflow-id (:status result) (:error result)) :continue))) - (catch Exception e + (catch #?(:clj Exception :cljs js/Error) e (p/save-event store workflow-id {:event-type :child-workflow-failed :seq seq :child-workflow-id child-workflow-id :error (error/throwable->map e) - :timestamp (System/currentTimeMillis)}) + :timestamp (utils/current-time-ms)}) (log/warnf e "Error while executing child workflow with id %s" child-workflow-id) :continue)))) \ No newline at end of file diff --git a/src/intemporal/internal/fns/start_workflow.clj b/src/intemporal/internal/fns/start_workflow.clj new file mode 100644 index 0000000..1960258 --- /dev/null +++ b/src/intemporal/internal/fns/start_workflow.clj @@ -0,0 +1,75 @@ +(ns intemporal.internal.fns.start-workflow + (:require [intemporal.internal.execution :as exec] + [intemporal.internal.logging :as log] + [intemporal.protocol :as p] + [intemporal.utils :as utils])) + +(defn start-workflow + "Start a workflow execution. + + Arguments: + - engine: should have: + - store: IStore implementation for persistence + - executor: IActivityExecutor for running activities + - scheduler: IScheduler for timers + - registry: Activity registry atom + - workflow-fn: The workflow function to execute + - args: Arguments to pass to workflow-fn + + Options: + - :workflow-id - Custom workflow ID (default: random UUID) + - :observer - IWorkflowObserver for monitoring + - :max-iterations - Maximum replay iterations (default: 1000)" + [{:keys [store executor scheduler registry] :as engine} workflow-fn args + & {:keys [workflow-id observer max-iterations] + :or {max-iterations 1000}}] + (let [wf-id (or workflow-id (str (random-uuid))) + resume-promise-atom (atom nil) + observer (or observer (get engine :observer)) + wake-fn (fn wake-fn-impl [] + (log/with-mdc {:workflow-id wf-id} + (try + (when observer + (p/on-workflow-resumed observer wf-id)) + (log/debugf "Waking workflow for resume") + (let [old-promise @resume-promise-atom + new-promise (promise) + result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn-impl})] + (reset! resume-promise-atom new-promise) + (deliver old-promise result)) + (catch Exception e + (when-let [p @resume-promise-atom] + (deliver p {:status :failed :error e}))))))] + + (log/with-mdc {:workflow-id wf-id} + ;; Initialize with first promise + (reset! resume-promise-atom (promise)) + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (utils/current-time-ms)}) + (when observer + (p/on-workflow-started observer wf-id args)) + (log/info "Workflow started") + (try + ;; Execute initial workflow run + (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + ;; Loop to handle multiple wait cycles + (loop [result initial-result] + (log/infof "Got result %s with status %s" (:result initial-result) (:status initial-result)) + (if (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} (:status result)) + (do + (log/infof "Workflow waiting for promise: %s" (:status result)) + (let [next-promise @resume-promise-atom + next-result @next-promise] + (recur next-result))) + result))) + (catch Exception e + (log/warnf e "Caught exception") + (throw e)))))) diff --git a/src/intemporal/internal/fns/start_workflow.cljs b/src/intemporal/internal/fns/start_workflow.cljs new file mode 100644 index 0000000..f4c0a6e --- /dev/null +++ b/src/intemporal/internal/fns/start_workflow.cljs @@ -0,0 +1,50 @@ +(ns intemporal.internal.fns.start-workflow + (:require [intemporal.internal.execution :as exec] + [intemporal.internal.logging :as log] + [intemporal.protocol :as p] + [intemporal.utils :as utils]) + (:require-macros [intemporal.internal.logging :as log])) + +(defn start-workflow + "Start a workflow execution. Returns a js/Promise that resolves with the result map. + + Arguments: + - engine: should have: + - store: IStore implementation for persistence + - executor: IActivityExecutor for running activities + - scheduler: IScheduler for timers + - registry: Activity registry atom + - workflow-fn: The workflow function to execute + - args: Arguments to pass to workflow-fn + + Options: + - :workflow-id - Custom workflow ID (default: random UUID) + - :observer - IWorkflowObserver for monitoring + - :max-iterations - Maximum replay iterations (default: 1000)" + [{:keys [store] :as engine} workflow-fn args + & {:keys [workflow-id observer max-iterations] + :or {max-iterations 1000}}] + (let [wf-id (or workflow-id (str (random-uuid))) + observer (or observer (get engine :observer))] + (js/Promise. + (fn [resolve reject] + (letfn [(run-step [] + (try + (let [result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn run-step})] + (when-not (#{:waiting-timer :waiting-signal + :waiting-signal-timeout :waiting-async} + (:status result)) + (resolve result))) + (catch js/Error e + (reject e))))] + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (utils/current-time-ms)}) + (when observer + (p/on-workflow-started observer wf-id args)) + (log/info "Workflow started") + (run-step)))))) diff --git a/src/intemporal/internal/logging.clj b/src/intemporal/internal/logging.cljc similarity index 75% rename from src/intemporal/internal/logging.clj rename to src/intemporal/internal/logging.cljc index a1a430d..81d881d 100644 --- a/src/intemporal/internal/logging.clj +++ b/src/intemporal/internal/logging.cljc @@ -1,19 +1,38 @@ (ns intemporal.internal.logging - (:require [clojure.tools.logging :as l :refer [logp logf]]) - (:import (org.slf4j MDC))) + #?(:clj (:require [net.cgrand.macrovich :as macros]) + ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) + :cljs (:require-macros [net.cgrand.macrovich :as macros])) + ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] + ;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) + #?(:clj (:import (org.slf4j MDC)))) (defmacro with-mdc [m & body] - `(try - (doseq [[k# v#] ~m] - (MDC/put (name k#) (str v#))) - (do ~@body) - (finally - (doseq [k# (keys ~m)] - (MDC/remove (name k#)))))) + (macros/case + :cljs + `(do ~@body) + + :clj + `(try + (doseq [[k# v#] ~m] + (MDC/put (name k#) (str v#))) + (do ~@body) + (finally + (doseq [k# (keys ~m)] + (MDC/remove (name k#))))))) ;; level-specific macros +(defn logp [& args] + (macros/case + :clj (apply println args) + :cljs (apply js/console.log args))) + +(defn logf [& args] + (macros/case + :clj (apply println args) + :cljs (apply js/console.log args))) + (defmacro trace "Trace level logging using print-style args. Use the 'logging.readable' namespace to avoid wrapping args in pr-str." diff --git a/src/intemporal/internal/runtime.cljs b/src/intemporal/internal/runtime.cljs new file mode 100644 index 0000000..46fc425 --- /dev/null +++ b/src/intemporal/internal/runtime.cljs @@ -0,0 +1,215 @@ +(ns intemporal.internal.runtime + (:require [intemporal.internal.error :as error] + [intemporal.internal.activity :as activity] + [intemporal.internal.logging :as log] + [intemporal.protocol :as p] + [intemporal.utils :as utils]) + (:require-macros [intemporal.internal.logging :as log])) + +;; ============================================================================ +;; Helper Functions +;; ============================================================================ + +(defn- promise-timeout + "Create a promise that resolves with {:timeout true} after ms milliseconds" + [ms] + (js/Promise. + (fn [resolve _reject] + (js/setTimeout + #(resolve {::timeout true}) + ms)))) + +(defn- promise-with-timeout + "Execute promise-fn with optional timeout. If timeout-ms is provided, + races the promise against a timeout promise." + [promise-fn timeout-ms] + (if timeout-ms + (js/Promise.race + #js [promise-fn (promise-timeout timeout-ms)]) + promise-fn)) + +(defn- async-sleep + "Promise-based sleep for retry backoff" + [ms] + (js/Promise. + (fn [resolve _reject] + (js/setTimeout resolve ms)))) + +;; ============================================================================ +;; Default Scheduler Implementation +;; ============================================================================ + +(defrecord DefaultScheduler [pending-timers] + p/IScheduler + + (schedule-timer [_ workflow-id seq-num fire-at callback] + (let [delay-ms (max 0 (- fire-at (utils/current-time-ms))) + timer-key [workflow-id seq-num] + timer-id (js/setTimeout + (fn [] + (swap! pending-timers dissoc timer-key) + (callback)) + delay-ms)] + (swap! pending-timers assoc timer-key timer-id) + timer-key)) + + (cancel-timer [_ workflow-id seq-num] + (let [timer-key [workflow-id seq-num]] + (when-let [timer-id (get @pending-timers timer-key)] + (js/clearTimeout timer-id) + (swap! pending-timers dissoc timer-key)))) + + (shutdown-scheduler [_ grace-period-secs] + ;; Cancel all pending timers + (doseq [[_ timer-id] @pending-timers] + (js/clearTimeout timer-id)) + (reset! pending-timers {})) + + (shutdown-scheduler? [_] + ;; In ClojureScript, scheduler is "terminated" when no timers pending + (empty? @pending-timers))) + +(defn make-scheduler + "Create a new scheduler (threads option ignored in ClojureScript)" + [& {:keys [threads] :or {threads 2}}] + (->DefaultScheduler (atom {}))) + +;; ============================================================================ +;; Activity Execution with Retry +;; ============================================================================ + +(defn- execute-activity-with-retry + "Execute activity function with optional retry policy. + Returns a promise that resolves with {:result ... :duration ... :attempts ...}" + [activity-fn args timeout-ms retry-policy activity-name] + (letfn [(attempt [attempt-num start-time] + (-> (promise-with-timeout + (js/Promise. + (fn [resolve reject] + (try + (let [result (apply activity-fn args)] + ;; Handle both sync and async (promise-returning) activities + (if (instance? js/Promise result) + (.then result resolve reject) + (resolve result))) + (catch js/Error e + (reject e))))) + timeout-ms) + (.then + (fn [result] + (if (::timeout result) + (throw (error/activity-timeout-exception + activity-name timeout-ms)) + {:result result + :duration (- (utils/current-time-ms) start-time) + :attempts attempt-num}))) + (.catch + (fn [e] + ;; Check if should retry + (if (and retry-policy + (activity/should-retry? retry-policy e attempt-num)) + ;; Retry after backoff + (let [backoff-ms (activity/calculate-backoff + retry-policy attempt-num)] + (log/infof "Activity %s failed, retrying after %dms (attempt %d)" + activity-name backoff-ms attempt-num) + (-> (async-sleep backoff-ms) + (.then (fn [_] (attempt (inc attempt-num) start-time))))) + ;; No retry - fail + (throw e))))))] + (let [start-time (utils/current-time-ms)] + (attempt 1 start-time)))) + +;; ============================================================================ +;; Parallel Activity Executor +;; ============================================================================ + +(defrecord ParallelActivityExecutor [registry-atom default-timeout-ms] + p/IActivityExecutor + + (execute-activity [_ activity-name args timeout-ms] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (throw (ex-info "Activity not found" {:activity-name activity-name})) + (-> + (promise-with-timeout + (js/Promise. + (fn [resolve reject] + (try + (let [result (apply (:fn act) args)] + ;; Handle both sync and async (promise-returning) activities + (if (instance? js/Promise result) + (.then result resolve reject) + (resolve result))) + (catch js/Error e + (reject e))))) + timeout) + (.then + (fn [result] + (if (::timeout result) + (throw (error/activity-timeout-exception activity-name timeout)) + result))) + (.catch + (fn [e] + (throw (error/activity-failed-exception activity-name e)))))))) + + (execute-activities-parallel [_ activities] + (if (empty? activities) + (js/Promise.resolve #js []) + (let [;; Create promise for each activity + promises + (mapv + (fn [{:keys [activity-name args timeout-ms retry-policy]}] + (let [act (get @registry-atom activity-name) + timeout (or timeout-ms default-timeout-ms)] + (if (nil? act) + (js/Promise.reject + (ex-info "Activity not found" + {:activity-name activity-name})) + ;; Execute with optional retry + (execute-activity-with-retry + (:fn act) + args + timeout + retry-policy + activity-name)))) + activities)] + ;; Wait for all promises to settle + (-> (js/Promise.allSettled (to-array promises)) + (.then + (fn [results] + ;; Convert PromiseSettledResult to our format + (mapv + (fn [result] + (if (= (.-status result) "fulfilled") + {:status :success + :result (:result (.-value result)) + :duration (:duration (.-value result))} + {:status :failed + :error (error/throwable->map (.-reason result))})) + results))))))) + + (shutdown-executor [_ grace-period-secs] + ;; No-op in ClojureScript - no thread pool to shutdown + ;; Promises that are running will complete naturally + nil) + + (shutdown? [_] + false)) + +;; ============================================================================ +;; Factory Functions +;; ============================================================================ + +(defn make-vthreads-executor + "Create an executor that runs activities using promises. + Note: max-concurrent is ignored in ClojureScript - all activities + run concurrently via the event loop (no true parallelism)." + [activity-registry-atom & {:keys [max-concurrent default-timeout-ms] + :or {default-timeout-ms 30000}}] + (when max-concurrent + (log/warn "max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop")) + (->ParallelActivityExecutor + activity-registry-atom + default-timeout-ms)) diff --git a/src/intemporal/observer.cljc b/src/intemporal/observer.cljc new file mode 100644 index 0000000..6b04252 --- /dev/null +++ b/src/intemporal/observer.cljc @@ -0,0 +1,142 @@ +(ns intemporal.observer + (:require [intemporal.protocol :as p] + [intemporal.utils :as utils])) + +;; ============================================================================ +;; Default Observer (Logging) +;; ============================================================================ + +(defrecord LoggingObserver [log-atom] + p/IWorkflowObserver + (on-workflow-started [_ workflow-id args] + (swap! log-atom conj {:event :workflow-started + :workflow-id workflow-id + :args args + :timestamp (utils/current-time-ms)})) + + (on-workflow-suspended [_ workflow-id suspension-type] + (swap! log-atom conj {:event :workflow-suspended + :workflow-id workflow-id + :suspension-type suspension-type + :timestamp (utils/current-time-ms)})) + + (on-workflow-resumed [_ workflow-id] + (swap! log-atom conj {:event :workflow-resumed + :workflow-id workflow-id + :timestamp (utils/current-time-ms)})) + + (on-activity-scheduled [_ workflow-id seq-num activity-name args] + (swap! log-atom conj {:event :activity-scheduled + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :args args + :timestamp (utils/current-time-ms)})) + + (on-activity-started [_ workflow-id seq-num activity-name] + (swap! log-atom conj {:event :activity-started + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :timestamp (utils/current-time-ms)})) + + (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] + (swap! log-atom conj {:event :activity-completed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :result result + :duration-ms duration-ms + :timestamp (utils/current-time-ms)})) + + (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] + (swap! log-atom conj {:event :activity-failed + :workflow-id workflow-id + :seq seq-num + :activity-name activity-name + :error error + :duration-ms duration-ms + :timestamp (utils/current-time-ms)})) + + (on-async-started [_ workflow-id seq-num] + (swap! log-atom conj {:event :async-started + :workflow-id workflow-id + :seq seq-num + :timestamp (utils/current-time-ms)})) + + (on-async-completed [_ workflow-id seq-num result] + (swap! log-atom conj {:event :async-completed + :workflow-id workflow-id + :seq seq-num + :result result + :timestamp (utils/current-time-ms)})) + + (on-async-failed [_ workflow-id seq-num error] + (swap! log-atom conj {:event :async-failed + :workflow-id workflow-id + :seq seq-num + :error error + :timestamp (utils/current-time-ms)})) + + (on-timer-scheduled [_ workflow-id seq-num fire-at] + (swap! log-atom conj {:event :timer-scheduled + :workflow-id workflow-id + :seq seq-num + :fire-at fire-at + :timestamp (utils/current-time-ms)})) + + (on-timer-fired [_ workflow-id seq-num] + (swap! log-atom conj {:event :timer-fired + :workflow-id workflow-id + :seq seq-num + :timestamp (utils/current-time-ms)})) + + (on-signal-received [_ workflow-id signal-name payload] + (swap! log-atom conj {:event :signal-received + :workflow-id workflow-id + :signal-name signal-name + :payload payload + :timestamp (utils/current-time-ms)})) + + (on-workflow-completed [_ workflow-id result] + (swap! log-atom conj {:event :workflow-completed + :workflow-id workflow-id + :result result + :timestamp (utils/current-time-ms)})) + + (on-workflow-failed [_ workflow-id error] + (swap! log-atom conj {:event :workflow-failed + :workflow-id workflow-id + :error error + :timestamp (utils/current-time-ms)})) + + (on-workflow-cancelled [_ workflow-id] + (swap! log-atom conj {:event :workflow-cancelled + :workflow-id workflow-id + :timestamp (utils/current-time-ms)}))) + +(defn make-logging-observer + "Create an observer that logs all events to an atom" + ([] (make-logging-observer (atom []))) + ([log-atom] (->LoggingObserver log-atom))) + +(defn noop-observer + "Create an observer that does nothing" + [] + (reify p/IWorkflowObserver + (on-workflow-started [_ _ _]) + (on-workflow-suspended [_ _ _]) + (on-workflow-resumed [_ _]) + (on-activity-scheduled [_ _ _ _ _]) + (on-activity-started [_ _ _ _]) + (on-activity-completed [_ _ _ _ _ _]) + (on-activity-failed [_ _ _ _ _ _]) + (on-async-started [_ _ _]) + (on-async-completed [_ _ _ _]) + (on-async-failed [_ _ _ _]) + (on-timer-scheduled [_ _ _ _]) + (on-timer-fired [_ _ _]) + (on-signal-received [_ _ _ _]) + (on-workflow-completed [_ _ _]) + (on-workflow-failed [_ _ _]) + (on-workflow-cancelled [_ _]))) diff --git a/src/intemporal/observer.clj b/src/intemporal/observer/otel.clj similarity index 57% rename from src/intemporal/observer.clj rename to src/intemporal/observer/otel.clj index eba8c72..7509a42 100644 --- a/src/intemporal/observer.clj +++ b/src/intemporal/observer/otel.clj @@ -1,146 +1,6 @@ -(ns intemporal.observer +(ns intemporal.observer.otel (:require [intemporal.protocol :as p] [steffan-westcott.clj-otel.api.trace.span :as otspan])) - -;; ============================================================================ -;; Default Observer (Logging) -;; ============================================================================ - -(defrecord LoggingObserver [log-atom] - p/IWorkflowObserver - (on-workflow-started [_ workflow-id args] - (swap! log-atom conj {:event :workflow-started - :workflow-id workflow-id - :args args - :timestamp (System/currentTimeMillis)})) - - (on-workflow-suspended [_ workflow-id suspension-type] - (swap! log-atom conj {:event :workflow-suspended - :workflow-id workflow-id - :suspension-type suspension-type - :timestamp (System/currentTimeMillis)})) - - (on-workflow-resumed [_ workflow-id] - (swap! log-atom conj {:event :workflow-resumed - :workflow-id workflow-id - :timestamp (System/currentTimeMillis)})) - - (on-activity-scheduled [_ workflow-id seq-num activity-name args] - (swap! log-atom conj {:event :activity-scheduled - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :args args - :timestamp (System/currentTimeMillis)})) - - (on-activity-started [_ workflow-id seq-num activity-name] - (swap! log-atom conj {:event :activity-started - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :timestamp (System/currentTimeMillis)})) - - (on-activity-completed [_ workflow-id seq-num activity-name result duration-ms] - (swap! log-atom conj {:event :activity-completed - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :result result - :duration-ms duration-ms - :timestamp (System/currentTimeMillis)})) - - (on-activity-failed [_ workflow-id seq-num activity-name error duration-ms] - (swap! log-atom conj {:event :activity-failed - :workflow-id workflow-id - :seq seq-num - :activity-name activity-name - :error error - :duration-ms duration-ms - :timestamp (System/currentTimeMillis)})) - - (on-async-started [_ workflow-id seq-num] - (swap! log-atom conj {:event :async-started - :workflow-id workflow-id - :seq seq-num - :timestamp (System/currentTimeMillis)})) - - (on-async-completed [_ workflow-id seq-num result] - (swap! log-atom conj {:event :async-completed - :workflow-id workflow-id - :seq seq-num - :result result - :timestamp (System/currentTimeMillis)})) - - (on-async-failed [_ workflow-id seq-num error] - (swap! log-atom conj {:event :async-failed - :workflow-id workflow-id - :seq seq-num - :error error - :timestamp (System/currentTimeMillis)})) - - (on-timer-scheduled [_ workflow-id seq-num fire-at] - (swap! log-atom conj {:event :timer-scheduled - :workflow-id workflow-id - :seq seq-num - :fire-at fire-at - :timestamp (System/currentTimeMillis)})) - - (on-timer-fired [_ workflow-id seq-num] - (swap! log-atom conj {:event :timer-fired - :workflow-id workflow-id - :seq seq-num - :timestamp (System/currentTimeMillis)})) - - (on-signal-received [_ workflow-id signal-name payload] - (swap! log-atom conj {:event :signal-received - :workflow-id workflow-id - :signal-name signal-name - :payload payload - :timestamp (System/currentTimeMillis)})) - - (on-workflow-completed [_ workflow-id result] - (swap! log-atom conj {:event :workflow-completed - :workflow-id workflow-id - :result result - :timestamp (System/currentTimeMillis)})) - - (on-workflow-failed [_ workflow-id error] - (swap! log-atom conj {:event :workflow-failed - :workflow-id workflow-id - :error error - :timestamp (System/currentTimeMillis)})) - - (on-workflow-cancelled [_ workflow-id] - (swap! log-atom conj {:event :workflow-cancelled - :workflow-id workflow-id - :timestamp (System/currentTimeMillis)}))) - -(defn make-logging-observer - "Create an observer that logs all events to an atom" - ([] (make-logging-observer (atom []))) - ([log-atom] (->LoggingObserver log-atom))) - -(defn noop-observer - "Create an observer that does nothing" - [] - (reify p/IWorkflowObserver - (on-workflow-started [_ _ _]) - (on-workflow-suspended [_ _ _]) - (on-workflow-resumed [_ _]) - (on-activity-scheduled [_ _ _ _ _]) - (on-activity-started [_ _ _ _]) - (on-activity-completed [_ _ _ _ _ _]) - (on-activity-failed [_ _ _ _ _ _]) - (on-async-started [_ _ _]) - (on-async-completed [_ _ _ _]) - (on-async-failed [_ _ _ _]) - (on-timer-scheduled [_ _ _ _]) - (on-timer-fired [_ _ _]) - (on-signal-received [_ _ _ _]) - (on-workflow-completed [_ _ _]) - (on-workflow-failed [_ _ _]) - (on-workflow-cancelled [_ _]))) - ;; ============================================================================ ;; OpenTelemetry Observer ;; ============================================================================ diff --git a/src/intemporal/protocol.clj b/src/intemporal/protocol.cljc similarity index 100% rename from src/intemporal/protocol.clj rename to src/intemporal/protocol.cljc diff --git a/src/intemporal/store.clj b/src/intemporal/store.cljc similarity index 97% rename from src/intemporal/store.clj rename to src/intemporal/store.cljc index 912d53e..277128f 100644 --- a/src/intemporal/store.clj +++ b/src/intemporal/store.cljc @@ -37,7 +37,8 @@ ;; Check if there's a callback registered for this signal (when-let [callback (get-in @state [:workflows workflow-id :signal-callbacks signal-name])] ;; Invoke callback asynchronously - (future (callback))) + #?(:clj (future (callback)) + :cljs (js/setTimeout callback 0))) signal-data) (consume-signal [_ workflow-id signal-name] diff --git a/src/intemporal/utils.cljc b/src/intemporal/utils.cljc new file mode 100644 index 0000000..e426e67 --- /dev/null +++ b/src/intemporal/utils.cljc @@ -0,0 +1,5 @@ +(ns intemporal.utils) + +(defn current-time-ms [] + #?(:clj (System/currentTimeMillis) + :cljs (js/Date.now))) diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.cljc similarity index 69% rename from test/intemporal/tests/child_workflow_test.clj rename to test/intemporal/tests/child_workflow_test.cljc index f1d2f3c..4ef7a0c 100644 --- a/test/intemporal/tests/child_workflow_test.clj +++ b/test/intemporal/tests/child_workflow_test.cljc @@ -1,7 +1,11 @@ (ns intemporal.tests.child-workflow-test (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]])) + [matcher-combinators.test :refer [match?]] + #?(:cljs [cljs.test :as t])) + #?(:cljs (:require-macros [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]]))) (defn activity-fn [arg] [:processed arg]) @@ -38,8 +42,8 @@ (deftest test-simple-child-workflow (testing "Parent workflow can run child workflow" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - parent-flow [5])] + (with-result [result (intemporal/start-workflow engine + parent-flow [5])] (is (match? {:status :completed :workflow-id string? :result {:parent-result [:processed 5] @@ -49,8 +53,8 @@ (deftest test-nested-child-workflows (testing "Child workflows can have their own child workflows" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - nested-parent-flow [3])] + (with-result [result (intemporal/start-workflow engine + nested-parent-flow [3])] (is (match? {:status :completed :result {:parent-result [:processed 3] :nested-child {:child-result [:processed 30] @@ -66,14 +70,15 @@ (try (intemporal/run-child-workflow failing-child [id]) {:success true} - (catch Exception e - {:error (.getMessage e)}))) + (catch #?(:clj Exception :cljs js/Error) e + {:error (ex-message e)}))) ;; Parent should catch and handle child error - result (intemporal/start-workflow engine - parent-with-error [42])] - (is (match? {:status :completed - :result {:error string?}} - result)))))) + ] + (with-result [result (intemporal/start-workflow engine + parent-with-error [42])] + (is (match? {:status :completed + :result {:error string?}} + result))))))) (deftest test-multiple-child-workflows (testing "Parent can run multiple child workflows sequentially" @@ -82,12 +87,12 @@ (let [c1 (intemporal/run-child-workflow child-flow [1]) c2 (intemporal/run-child-workflow child-flow [2]) c3 (intemporal/run-child-workflow child-flow [3])] - {:children [c1 c2 c3] :id id})) - result (intemporal/start-workflow engine + {:children [c1 c2 c3] :id id}))] + (with-result [result (intemporal/start-workflow engine multi-child-flow [99])] - (is (match? {:status :completed - :result {:children [{:child-result [:processed 1]} - {:child-result [:processed 2]} - {:child-result [:processed 3]}] - :id 99}} - result)))))) + (is (match? {:status :completed + :result {:children [{:child-result [:processed 1]} + {:child-result [:processed 2]} + {:child-result [:processed 3]}] + :id 99}} + result))))))) diff --git a/test/intemporal/tests/error_test.clj b/test/intemporal/tests/error_test.cljc similarity index 71% rename from test/intemporal/tests/error_test.clj rename to test/intemporal/tests/error_test.cljc index 2428702..7effb69 100644 --- a/test/intemporal/tests/error_test.clj +++ b/test/intemporal/tests/error_test.cljc @@ -1,9 +1,14 @@ (ns intemporal.tests.error-test (:require [intemporal.core :as intemporal] [intemporal.internal.activity :as a] + [intemporal.tests.utils :refer [with-result]] + [intemporal.utils :as utils] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m])) + [matcher-combinators.matchers :as m] + #?(:cljs [cljs.test :as t])) + #?(:cljs (:require-macros [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]]))) (def attempt-counter (atom 0)) @@ -26,8 +31,8 @@ (testing "Activity succeeds after retries" (intemporal/with-workflow-engine [engine {:threads 2}] (reset! attempt-counter 0) - (let [result (intemporal/start-workflow engine - retry-flow [42])] + (with-result [result (intemporal/start-workflow engine + retry-flow [42])] (is (match? {:status :completed :workflow-id string? :result {:result 126}} @@ -45,8 +50,8 @@ (deftest test-activity-retry-exhausted (testing "Activity fails after exhausting retries" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - failing-retry-flow [99])] + (with-result [result (intemporal/start-workflow engine + failing-retry-flow [99])] (is (match? {:status :failed :workflow-id string? :error (m/embeds {:message "Activity failed" @@ -59,14 +64,14 @@ (let [failing (intemporal/stub #'always-fails-activity)] (try {:result (failing id) :error false} - (catch Exception e - {:result nil :error true :message (.getMessage e)})))) + (catch #?(:clj Exception :cljs js/Error) e + {:result nil :error true :message (ex-message e)})))) (deftest test-workflow-error-handling (testing "Workflow can catch and handle activity errors" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - error-handling-flow [123])] + (with-result [result (intemporal/start-workflow engine + error-handling-flow [123])] (is (match? {:status :completed :workflow-id string? :result {:result nil @@ -78,8 +83,8 @@ (testing "Activity without retry policy fails immediately" (intemporal/with-workflow-engine [engine {:threads 2}] ;; Register without retry policy - (let [result (intemporal/start-workflow engine - failing-retry-flow [456])] + (with-result [result (intemporal/start-workflow engine + failing-retry-flow [456])] (is (match? {:status :failed :workflow-id string? :error (m/embeds {:message "Activity failed" @@ -100,21 +105,21 @@ (testing "Retry policy applies exponential backoff" (intemporal/with-workflow-engine [engine {:threads 2}] (reset! attempt-counter 0) - (let [start-time (System/currentTimeMillis) - result (intemporal/start-workflow engine retry-flow2 [42]) - elapsed (- (System/currentTimeMillis) start-time)] - (is (match? {:status :completed - :workflow-id string? - :result {:result 126}} - result)) - ;; With backoff 10ms, 20ms, we expect at least 30ms - (is (>= elapsed 30)))))) + (let [start-time (utils/current-time-ms)] + (with-result [result (intemporal/start-workflow engine retry-flow2 [42])] + (let [elapsed (- (utils/current-time-ms) start-time)] + (is (match? {:status :completed + :workflow-id string? + :result {:result 126}} + result)) + ;; With backoff 10ms, 20ms, we expect at least 30ms + (is (>= elapsed 30)))))))) (deftest test-error-details-preserved (testing "Error details are preserved in workflow result" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - failing-retry-flow [789])] + (with-result [result (intemporal/start-workflow engine + failing-retry-flow [789])] (is (match? {:status :failed :workflow-id string? :error (m/embeds {:message "Activity failed" diff --git a/test/intemporal/tests/timer_test.clj b/test/intemporal/tests/timer_test.cljc similarity index 54% rename from test/intemporal/tests/timer_test.clj rename to test/intemporal/tests/timer_test.cljc index 75e65e4..122cd0d 100644 --- a/test/intemporal/tests/timer_test.clj +++ b/test/intemporal/tests/timer_test.cljc @@ -1,7 +1,11 @@ (ns intemporal.tests.timer-test (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]])) + [matcher-combinators.test :refer [match?]] + #?(:cljs [cljs.test :as t])) + #?(:cljs (:require-macros [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]]))) (defn activity-fn [arg] [:processed arg]) @@ -24,8 +28,8 @@ (deftest test-simple-timer (testing "Workflow with timer completes after sleep" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - timed-flow [456])] + (with-result [result (intemporal/start-workflow engine + timed-flow [456])] (is (match? {:status :completed :workflow-id string? :result {:result [:processed 456]}} @@ -34,8 +38,8 @@ (deftest test-multiple-timers (testing "Workflow with multiple sleep calls" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [result (intemporal/start-workflow engine - multi-sleep-flow [789])] + (with-result [result (intemporal/start-workflow engine + multi-sleep-flow [789])] (is (match? {:status :completed :workflow-id string? :result {:results [[:processed 1] [:processed 2]] @@ -45,13 +49,12 @@ (deftest test-timer-replay (testing "Timer workflow is deterministic on replay" (intemporal/with-workflow-engine [engine {:threads 2}] - (let [wf-id "timer-replay-test" - result1 (intemporal/start-workflow engine - timed-flow [100] - :workflow-id wf-id) - ;; Resume should replay deterministically - result2 (intemporal/resume-workflow engine wf-id - timed-flow [100])] - (is (match? {:status :completed} result1)) - (is (match? {:status :completed} result2)) - (is (= (:result result1) (:result result2))))))) + (with-result [result1 (intemporal/start-workflow engine + timed-flow [100] + :workflow-id "timer-replay-test")] + ;; Resume should replay deterministically + (let [result2 (intemporal/resume-workflow engine "timer-replay-test" + timed-flow [100])] + (is (match? {:status :completed} result1)) + (is (match? {:status :completed} result2)) + (is (= (:result result1) (:result result2)))))))) diff --git a/test/intemporal/tests/tracing_test.clj b/test/intemporal/tests/tracing_test.clj index a7d10c8..d40ebfe 100644 --- a/test/intemporal/tests/tracing_test.clj +++ b/test/intemporal/tests/tracing_test.clj @@ -11,7 +11,7 @@ To view traces, ensure you have an OpenTelemetry collector running at http://localhost:4317 (or configure via OTEL_EXPORTER_OTLP_ENDPOINT)." (:require [intemporal.core :as intemporal] - [intemporal.observer :as obs] + [intemporal.observer.otel :as otel-obs] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) @@ -40,7 +40,7 @@ (deftest test-async-workflow (testing "Async workflow with OpenTelemetry tracing" - (let [otel-observer (obs/make-otel-observer)] + (let [otel-observer (otel-obs/make-otel-observer)] (intemporal/with-workflow-engine [engine {:threads 4 :observer otel-observer}] ;; Activities are automatically registered via stub call (let [result (intemporal/start-workflow engine diff --git a/test/intemporal/tests/utils.cljc b/test/intemporal/tests/utils.cljc new file mode 100644 index 0000000..22e0794 --- /dev/null +++ b/test/intemporal/tests/utils.cljc @@ -0,0 +1,51 @@ +(ns intemporal.tests.utils + #?(:cljs (:require [intemporal.store :as store] + [promesa.core :as p] + [cljs.test :as t] + [cljs.pprint :as pprint])) + #?(:clj (:require [promesa.core :as p] + [net.cgrand.macrovich :as macros] + [clojure.pprint :as pprint])) + #?(:cljs (:require-macros [net.cgrand.macrovich :as macros] + [intemporal.tests.utils :refer [with-result]])) + #?(:clj (:import [java.util.concurrent TimeoutException]))) + +(def ^:dynamic with-result-default-timeout 10000) +(def ^:dynamic wait-default-timeout 3000) + +(defmacro with-result + "Promise-aware macro: the result can either be a value or a thrown exception. + Waits for result for 10 secs, then times out + Doesn't really work for exceptions returned as values + ``` + (with-result [r (my-worfklow 1)] + (is (instance? Exception r)) + (is (= 1 2))) + ``` + " + [bindings & body] + (assert (vector? bindings) "First argument should be a binding of [res resbody]") + (let [[res resbody] bindings] + (macros/case + :clj + `(let [~res (let [future# (future (do ~resbody))] + (try + (deref future# with-result-default-timeout (TimeoutException. "Operation timed out.")) + (catch Exception e# e#)))] + ~@body) + :cljs + `(t/async done# + (js/setTimeout + (fn [] + ;; force wrap resbody in a deferred + (p/finally (-> nil + (p/then (fn [_#] + (do ~resbody))) + (p/timeout with-result-default-timeout)) + (fn [res# err#] + (try + (let [~res (or res# err#)] + (do ~@body)) + (finally + (done#))))) + 0)))))) From 990a2721989c99d65d8678848bd0eea0e50e96f9 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 10 Feb 2026 23:28:35 +0000 Subject: [PATCH 58/81] progress a bit more --- CLAUDE.md | 3 + deps.edn | 3 +- src/intemporal/core.cljc | 1 + .../internal/fns/start_workflow.cljs | 65 +++++++++++++++++++ test/intemporal/tests/async_test.cljs | 64 ++++++++++++++++++ ...flow_test.cljc => child_workflow_test.clj} | 5 +- .../tests/{error_test.cljc => error_test.clj} | 5 +- .../tests/{timer_test.cljc => timer_test.clj} | 5 +- test/intemporal/tests/utils.cljc | 10 +-- 9 files changed, 143 insertions(+), 18 deletions(-) create mode 100644 test/intemporal/tests/async_test.cljs rename test/intemporal/tests/{child_workflow_test.cljc => child_workflow_test.clj} (94%) rename test/intemporal/tests/{error_test.cljc => error_test.clj} (96%) rename test/intemporal/tests/{timer_test.cljc => timer_test.clj} (90%) diff --git a/CLAUDE.md b/CLAUDE.md index f117bb4..25e838e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -67,6 +67,9 @@ bin/kaocha :test --focus intemporal.tests.signal-test # Run crash recovery tests bin/kaocha :test --focus intemporal.tests.crash.signal-wait-crash-test bin/kaocha :test --focus intemporal.tests.crash.future-cancel-test + +# Run tests via npx +npx shadow-cljs compile node ``` **Important**: Test namespaces use hyphens (e.g., `signal-wait-crash-test`), which map to underscored file names (`signal_wait_crash_test.clj`). diff --git a/deps.edn b/deps.edn index 0d67c2e..b067491 100644 --- a/deps.edn +++ b/deps.edn @@ -5,6 +5,8 @@ org.clojure/tools.logging {:mvn/version "1.2.4"} thheller/shadow-cljs {:mvn/version "2.28.11"} com.github.steffan-westcott/clj-otel-api {:mvn/version "0.2.10"} + ;; cljs (TODO test only?) + funcool/promesa {:mvn/version "11.0.678"} ;;stuff net.cgrand/macrovich {:mvn/version "0.2.2"}} @@ -22,7 +24,6 @@ "-Dotel.resource.attributes=service.name=intemporal"] :extra-deps {exoscale/automata {:mvn/version "0.1.10"} - funcool/promesa {:mvn/version "12.0.0-RC2"} lambdaisland/kaocha {:mvn/version "1.91.1392"} lambdaisland/kaocha-cloverage {:mvn/version "1.1.89"} lambdaisland/kaocha-junit-xml {:mvn/version "1.17.101"} diff --git a/src/intemporal/core.cljc b/src/intemporal/core.cljc index b536883..61c98c5 100644 --- a/src/intemporal/core.cljc +++ b/src/intemporal/core.cljc @@ -387,6 +387,7 @@ {:observer observer :max-iterations max-iterations})) + (defn send-signal "Send a signal to a workflow. diff --git a/src/intemporal/internal/fns/start_workflow.cljs b/src/intemporal/internal/fns/start_workflow.cljs index f4c0a6e..9b01857 100644 --- a/src/intemporal/internal/fns/start_workflow.cljs +++ b/src/intemporal/internal/fns/start_workflow.cljs @@ -5,6 +5,10 @@ [intemporal.utils :as utils]) (:require-macros [intemporal.internal.logging :as log])) +(defn- waiting-status? [result] + (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} + (:status result))) + (defn start-workflow "Start a workflow execution. Returns a js/Promise that resolves with the result map. @@ -48,3 +52,64 @@ (p/on-workflow-started observer wf-id args)) (log/info "Workflow started") (run-step)))))) + + +(defn start-workflow-async + "Start a workflow execution without blocking. + CLJS-compatible: returns immediately after the first execution step. + + When the workflow eventually completes (possibly after multiple + timer/signal wake cycles), calls on-complete with the result map. + + Arguments: + - engine: same as start-workflow + - workflow-fn: The workflow function to execute + - args: Arguments to pass to workflow-fn + + Options (same as start-workflow, plus): + - :workflow-id - Custom workflow ID (default: random UUID) + - :observer - IWorkflowObserver for monitoring + - :max-iterations - Maximum replay iterations (default: 1000) + - :on-complete - fn of one arg [result], called when workflow finishes. + If nil, result is silently discarded on completion. + + Returns the initial execution result (may be :waiting-* if suspended)." + [{:keys [store executor scheduler registry] :as engine} workflow-fn args + & {:keys [workflow-id observer max-iterations on-complete] + :or {max-iterations 1000}}] + (let [wf-id (or workflow-id (str (random-uuid))) + observer (or observer (get engine :observer)) + wake-fn (fn wake-fn-impl [] + (log/with-mdc {:workflow-id wf-id} + (try + (when observer (p/on-workflow-resumed observer wf-id)) + (log/debugf "Waking workflow for resume") + (let [result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn-impl})] + (when (and on-complete (not (waiting-status? result))) + (on-complete result))) + (catch js/Error e + (when on-complete + (on-complete {:status :failed :error e}))))))] + (log/with-mdc {:workflow-id wf-id} + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (utils/current-time-ms)}) + (when observer (p/on-workflow-started observer wf-id args)) + (log/info "Workflow started (async)") + (try + (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn})] + (when (and on-complete (not (waiting-status? initial-result))) + (on-complete initial-result)) + initial-result) + (catch js/Error e + (log/warnf e "Caught exception during async workflow start") + (let [err-result {:status :failed :error e}] + (when on-complete (on-complete err-result)) + (throw e))))))) diff --git a/test/intemporal/tests/async_test.cljs b/test/intemporal/tests/async_test.cljs new file mode 100644 index 0000000..3a2be74 --- /dev/null +++ b/test/intemporal/tests/async_test.cljs @@ -0,0 +1,64 @@ +(ns intemporal.tests.async-test + (:require [intemporal.core :as intemporal] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [intemporal.tests.utils :as tu]) + (:require-macros [intemporal.core :as intemporal :refer [with-workflow-engine]] + [intemporal.tests.utils :refer [with-result]])) + +(defn slow-activity [x] + (println (str "slow activity START with " x)) + (println (str "slow activity END with " x)) + (* x 2)) + +(defn sleep-activity [x] + (println (str "slow activity START with " x)) + (println (str "slow activity END with " x)) + (* x 2)) + +;; Parallel workflow +(defn my-parallel-flow [id] + (println "Workflow start with id:" id) + (let [slow (intemporal/stub #'slow-activity) + prom1 (intemporal/async #(slow 1)) + prom2 (intemporal/async #(slow 2)) + prom3 (intemporal/async #(slow 3)) + prom4 (intemporal/async #(+ 2 2))] + (println "After async calls - all scheduled") + {:args id + :slow (slow 0) + :prom4 (intemporal/join prom4) + :results (intemporal/join-all [prom1 prom2 prom3 prom4]) + :id id})) + +;; Race workflow +(defn my-race-flow [id] + (println "Workflow start with id:" id) + (let [sleep (intemporal/stub #'sleep-activity) + prom1 (intemporal/async #(sleep 100)) + prom2 (intemporal/async #(sleep 4000))] + (println "After async calls - all scheduled") + {:race-result (intemporal/join-any [prom1 prom2]) + :id id})) + + +(deftest test-async-workflow + (testing "Async workflow" + (with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Activities are automatically registered via stub call + (with-result [result (intemporal/start-workflow engine my-parallel-flow [999])] + (is (match? {:status :completed + :result {:args 999, :slow 0, :prom4 4, :results [2 4 6 4], :id 999}} + result)))))) + + +(deftest test-race-workflow + (testing "Async race workflow" + (with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Activities are automatically registered via stub call + (with-result [result (intemporal/start-workflow engine my-race-flow [999])] + (is (match? {:status :completed + :result {:race-result {:index 0, :result 200} + :id 999}} + result)))))) + diff --git a/test/intemporal/tests/child_workflow_test.cljc b/test/intemporal/tests/child_workflow_test.clj similarity index 94% rename from test/intemporal/tests/child_workflow_test.cljc rename to test/intemporal/tests/child_workflow_test.clj index 4ef7a0c..e41f82d 100644 --- a/test/intemporal/tests/child_workflow_test.cljc +++ b/test/intemporal/tests/child_workflow_test.clj @@ -2,10 +2,7 @@ (:require [intemporal.core :as intemporal] [intemporal.tests.utils :refer [with-result]] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - #?(:cljs [cljs.test :as t])) - #?(:cljs (:require-macros [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-result]]))) + [matcher-combinators.test :refer [match?]])) (defn activity-fn [arg] [:processed arg]) diff --git a/test/intemporal/tests/error_test.cljc b/test/intemporal/tests/error_test.clj similarity index 96% rename from test/intemporal/tests/error_test.cljc rename to test/intemporal/tests/error_test.clj index 7effb69..b08365d 100644 --- a/test/intemporal/tests/error_test.cljc +++ b/test/intemporal/tests/error_test.clj @@ -5,10 +5,7 @@ [intemporal.utils :as utils] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] - [matcher-combinators.matchers :as m] - #?(:cljs [cljs.test :as t])) - #?(:cljs (:require-macros [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-result]]))) + [matcher-combinators.matchers :as m])) (def attempt-counter (atom 0)) diff --git a/test/intemporal/tests/timer_test.cljc b/test/intemporal/tests/timer_test.clj similarity index 90% rename from test/intemporal/tests/timer_test.cljc rename to test/intemporal/tests/timer_test.clj index 122cd0d..0cf6135 100644 --- a/test/intemporal/tests/timer_test.cljc +++ b/test/intemporal/tests/timer_test.clj @@ -2,10 +2,7 @@ (:require [intemporal.core :as intemporal] [intemporal.tests.utils :refer [with-result]] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]] - #?(:cljs [cljs.test :as t])) - #?(:cljs (:require-macros [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-result]]))) + [matcher-combinators.test :refer [match?]])) (defn activity-fn [arg] [:processed arg]) diff --git a/test/intemporal/tests/utils.cljc b/test/intemporal/tests/utils.cljc index 22e0794..516ef8a 100644 --- a/test/intemporal/tests/utils.cljc +++ b/test/intemporal/tests/utils.cljc @@ -24,11 +24,11 @@ ``` " [bindings & body] - (assert (vector? bindings) "First argument should be a binding of [res resbody]") - (let [[res resbody] bindings] + (assert (vector? bindings) "First argument should be a binding of [res resval]") + (let [[res resval] bindings] (macros/case :clj - `(let [~res (let [future# (future (do ~resbody))] + `(let [~res (let [future# (future (do ~resval))] (try (deref future# with-result-default-timeout (TimeoutException. "Operation timed out.")) (catch Exception e# e#)))] @@ -37,10 +37,10 @@ `(t/async done# (js/setTimeout (fn [] - ;; force wrap resbody in a deferred + ;; force wrap resval in a deferred (p/finally (-> nil (p/then (fn [_#] - (do ~resbody))) + (do ~resval))) (p/timeout with-result-default-timeout)) (fn [res# err#] (try From 5146a36a746780caa268408a986e4453ce7fdf5c Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 11 Feb 2026 21:37:56 +0000 Subject: [PATCH 59/81] add cljs todo --- cljs-todo.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cljs-todo.md diff --git a/cljs-todo.md b/cljs-todo.md new file mode 100644 index 0000000..957f6e5 --- /dev/null +++ b/cljs-todo.md @@ -0,0 +1,48 @@ +# CLJS Async Execution TODO + +## Problem + +Both async tests in `test/intemporal/tests/async_test.cljs` fail with: + +``` +Error: [object Promise] is not ISeqable +``` + +## Root Cause + +`execution.cljc:164` (`process-pending-asyncs-parallel`) calls: + +```clojure +(let [results (p/execute-activities-parallel executor pending-asyncs) + ... + completion-events (mapcat ... pending-asyncs results)] +``` + +On JVM, `execute-activities-parallel` is **synchronous** and returns a vector. +In CLJS (`runtime.cljs:179`), `execute-activities-parallel` returns a **`js/Promise`** +(via `js/Promise.allSettled`). The code tries to `mapcat` over the Promise object → +throws `[object Promise] is not ISeqable`. + +## Affected Files + +- `src/intemporal/internal/execution.cljc:154-203` — `process-pending-asyncs-parallel` + assumes synchronous result from `execute-activities-parallel` +- `src/intemporal/internal/execution.cljc:501-584` — `run-workflow-internal` loop is + fully synchronous, incompatible with CLJS async execution +- `src/intemporal/internal/runtime.cljs:157-191` — `execute-activities-parallel` correctly + returns a Promise, but caller doesn't handle it + +## Fix Required + +`process-pending-asyncs-parallel` and `run-workflow-internal` need to be Promise-aware +in CLJS. Options: + +1. **Add a CLJS-specific `execution.cljs`** that re-implements `run-workflow-internal` + and `process-pending-asyncs-parallel` using Promise chaining (`.then`). + +2. **Make `process-pending-asyncs-parallel` return a Promise in CLJS** and thread that + through the `run-workflow-internal` loop (requires the loop itself to become async in + CLJS — likely needs `reader conditionals` or a separate file). + +`start-workflow.cljs` already has the right shape (`run-step` callback + `js/Promise` +wrapper), but the inner synchronous loop breaks when it hits parallel activities. From df1c9ae128340a4fb2339697d270296f36cfaa2e Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Wed, 11 Feb 2026 22:45:05 +0000 Subject: [PATCH 60/81] cljs --- CLAUDE.md | 8 ++ .../{execution.cljc => execution.clj} | 28 ++--- .../internal/fns/start_workflow.cljs | 100 +++++++++--------- test/intemporal/tests/child_workflow_test.clj | 2 +- test/intemporal/tests/error_test.clj | 2 +- 5 files changed, 72 insertions(+), 68 deletions(-) rename src/intemporal/internal/{execution.cljc => execution.clj} (96%) diff --git a/CLAUDE.md b/CLAUDE.md index 25e838e..bf0f844 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -50,6 +50,14 @@ The codebase is organized into several layers: ## Development Commands +### Grep + +Ensure you run grep with `--color=never` + +``` +grep --color=never +``` + ### Running Tests ```bash diff --git a/src/intemporal/internal/execution.cljc b/src/intemporal/internal/execution.clj similarity index 96% rename from src/intemporal/internal/execution.cljc rename to src/intemporal/internal/execution.clj index 114843b..0389d71 100644 --- a/src/intemporal/internal/execution.cljc +++ b/src/intemporal/internal/execution.clj @@ -5,9 +5,7 @@ [intemporal.internal.logging :as log] [intemporal.utils :as utils] [intemporal.protocol :as p]) - #?(:cljs (:require-macros [intemporal.internal.logging :as log] - [intemporal.internal.execution :refer [-notify]])) - #?(:clj (:import (java.util.concurrent RejectedExecutionException)))) + (:import (java.util.concurrent RejectedExecutionException))) ;; ============================================================================ ;; Workflow Execution Engine @@ -25,7 +23,7 @@ :result (apply workflow-fn args) :pending-asyncs @(:pending-asyncs (ctx/current-context)) :pending-events @(:pending-events (ctx/current-context))} - (catch #?(:clj Throwable :cljs js/Error) e + (catch Throwable e (cond (error/suspension? e) {:status :suspended @@ -59,8 +57,7 @@ {:status :success :result result :duration duration}) - ;; this only makes sense for clj - #?(:clj (catch RejectedExecutionException e + (catch RejectedExecutionException e (let [duration (- (utils/current-time-ms) start) error (error/activity-rejected-exception activity-name e) error-map (error/throwable->map error)] @@ -68,8 +65,8 @@ (log/warnf e "Activity execution rejected") {:status :failed :error error-map - :duration duration}))) - (catch #?(:clj Exception :cljs js/Error) e + :duration duration})) + (catch Exception e (let [duration (- (utils/current-time-ms) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) @@ -92,8 +89,7 @@ :result result :duration duration :attempts attempt}) - ;; this only makes sense for clj - #?(:clj (catch RejectedExecutionException e + (catch RejectedExecutionException e (let [duration (- (utils/current-time-ms) start) error (error/activity-rejected-exception activity-name e) error-map (error/throwable->map error)] @@ -101,8 +97,8 @@ (log/warnf e "Activity execution rejected") {:status :failed :error error-map - :duration duration}))) - (catch #?(:clj Exception :cljs js/Error) e + :duration duration})) + (catch Exception e (let [duration (- (utils/current-time-ms) start) error-map (error/throwable->map e)] (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) @@ -119,10 +115,8 @@ (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) - #?(:clj (do (Thread/sleep (long backoff)) - (recur (inc attempt))) - ;;; TODO FIXME - :cljs (throw (ex-info "TODO: implement recur" {})))) + (do (Thread/sleep (long backoff)) + (recur (inc attempt)))) ;; else {:status :failed :error (:error exec-result) @@ -614,7 +608,7 @@ :timestamp (utils/current-time-ms)}) (log/infof "Child workflow with id %s failed, status: %s, error: %s" child-workflow-id (:status result) (:error result)) :continue))) - (catch #?(:clj Exception :cljs js/Error) e + (catch Exception e (p/save-event store workflow-id {:event-type :child-workflow-failed :seq seq :child-workflow-id child-workflow-id diff --git a/src/intemporal/internal/fns/start_workflow.cljs b/src/intemporal/internal/fns/start_workflow.cljs index 9b01857..488060f 100644 --- a/src/intemporal/internal/fns/start_workflow.cljs +++ b/src/intemporal/internal/fns/start_workflow.cljs @@ -2,7 +2,8 @@ (:require [intemporal.internal.execution :as exec] [intemporal.internal.logging :as log] [intemporal.protocol :as p] - [intemporal.utils :as utils]) + [intemporal.utils :as utils] + [promesa.core :as prom]) (:require-macros [intemporal.internal.logging :as log])) (defn- waiting-status? [result] @@ -30,28 +31,27 @@ :or {max-iterations 1000}}] (let [wf-id (or workflow-id (str (random-uuid))) observer (or observer (get engine :observer))] - (js/Promise. - (fn [resolve reject] - (letfn [(run-step [] - (try - (let [result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn run-step})] - (when-not (#{:waiting-timer :waiting-signal - :waiting-signal-timeout :waiting-async} - (:status result)) - (resolve result))) - (catch js/Error e - (reject e))))] - (p/save-event store wf-id {:event-type :workflow-started - :workflow-id wf-id - :args (vec args) - :timestamp (utils/current-time-ms)}) - (when observer - (p/on-workflow-started observer wf-id args)) - (log/info "Workflow started") - (run-step)))))) + (p/save-event store wf-id {:event-type :workflow-started + :workflow-id wf-id + :args (vec args) + :timestamp (utils/current-time-ms)}) + (when observer + (p/on-workflow-started observer wf-id args)) + (log/info "Workflow started") + (let [d (prom/deferred)] + (letfn [(run-step [] + (-> (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn run-step}) + (prom/then (fn [result] + (when-not (waiting-status? result) + (prom/resolve! d result)))) + (prom/catch js/Error + (fn [e] + (prom/reject! d e)))))] + (run-step) + d)))) (defn start-workflow-async @@ -74,25 +74,26 @@ If nil, result is silently discarded on completion. Returns the initial execution result (may be :waiting-* if suspended)." - [{:keys [store executor scheduler registry] :as engine} workflow-fn args + [{:keys [store] :as engine} workflow-fn args & {:keys [workflow-id observer max-iterations on-complete] :or {max-iterations 1000}}] (let [wf-id (or workflow-id (str (random-uuid))) observer (or observer (get engine :observer)) wake-fn (fn wake-fn-impl [] (log/with-mdc {:workflow-id wf-id} - (try - (when observer (p/on-workflow-resumed observer wf-id)) - (log/debugf "Waking workflow for resume") - (let [result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn-impl})] - (when (and on-complete (not (waiting-status? result))) - (on-complete result))) - (catch js/Error e - (when on-complete - (on-complete {:status :failed :error e}))))))] + (when observer (p/on-workflow-resumed observer wf-id)) + (log/debugf "Waking workflow for resume") + (-> (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn-impl}) + (prom/then (fn [result] + (when (and on-complete (not (waiting-status? result))) + (on-complete result)))) + (prom/catch js/Error + (fn [e] + (when on-complete + (on-complete {:status :failed :error e})))))))] (log/with-mdc {:workflow-id wf-id} (p/save-event store wf-id {:event-type :workflow-started :workflow-id wf-id @@ -100,16 +101,17 @@ :timestamp (utils/current-time-ms)}) (when observer (p/on-workflow-started observer wf-id args)) (log/info "Workflow started (async)") - (try - (let [initial-result (exec/run-workflow-internal engine wf-id workflow-fn args - {:observer observer - :max-iterations max-iterations - :wake-fn wake-fn})] - (when (and on-complete (not (waiting-status? initial-result))) - (on-complete initial-result)) - initial-result) - (catch js/Error e - (log/warnf e "Caught exception during async workflow start") - (let [err-result {:status :failed :error e}] - (when on-complete (on-complete err-result)) - (throw e))))))) + (-> (exec/run-workflow-internal engine wf-id workflow-fn args + {:observer observer + :max-iterations max-iterations + :wake-fn wake-fn}) + (prom/then (fn [result] + (when (and on-complete (not (waiting-status? result))) + (on-complete result)) + result)) + (prom/catch js/Error + (fn [e] + (log/warnf e "Caught exception during async workflow start") + (let [err-result {:status :failed :error e}] + (when on-complete (on-complete err-result)) + (prom/rejected e)))))))) diff --git a/test/intemporal/tests/child_workflow_test.clj b/test/intemporal/tests/child_workflow_test.clj index e41f82d..180e049 100644 --- a/test/intemporal/tests/child_workflow_test.clj +++ b/test/intemporal/tests/child_workflow_test.clj @@ -67,7 +67,7 @@ (try (intemporal/run-child-workflow failing-child [id]) {:success true} - (catch #?(:clj Exception :cljs js/Error) e + (catch Exception e {:error (ex-message e)}))) ;; Parent should catch and handle child error ] diff --git a/test/intemporal/tests/error_test.clj b/test/intemporal/tests/error_test.clj index b08365d..7f5542a 100644 --- a/test/intemporal/tests/error_test.clj +++ b/test/intemporal/tests/error_test.clj @@ -61,7 +61,7 @@ (let [failing (intemporal/stub #'always-fails-activity)] (try {:result (failing id) :error false} - (catch #?(:clj Exception :cljs js/Error) e + (catch Exception e {:result nil :error true :message (ex-message e)})))) (deftest test-workflow-error-handling From fcf4347d993e887f171d83963401ad05e9d3c415 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 13 Feb 2026 16:26:46 +0000 Subject: [PATCH 61/81] bunch of cljs --- .env | 1 + bin/kaocha | 2 +- shadow-cljs.edn | 1 + src/intemporal/core.cljc | 26 +- src/intemporal/internal/execution.cljs | 605 ++++++++++++++++++ test/intemporal/tests/async_test.cljs | 10 +- test/intemporal/tests/cancellation_test.cljs | 85 +++ .../intemporal/tests/child_workflow_test.cljs | 90 +++ test/intemporal/tests/cljs/repl/node_repl.js | 114 ++++ test/intemporal/tests/deleteme_test.cljs | 17 + test/intemporal/tests/error_test.cljs | 119 ++++ test/intemporal/tests/signal_test.cljs | 83 +++ test/intemporal/tests/timer_test.cljs | 58 ++ test/intemporal/tests/utils.cljc | 23 +- tests.edn | 9 +- 15 files changed, 1210 insertions(+), 33 deletions(-) create mode 100644 .env create mode 100644 src/intemporal/internal/execution.cljs create mode 100644 test/intemporal/tests/cancellation_test.cljs create mode 100644 test/intemporal/tests/child_workflow_test.cljs create mode 100644 test/intemporal/tests/cljs/repl/node_repl.js create mode 100644 test/intemporal/tests/deleteme_test.cljs create mode 100644 test/intemporal/tests/error_test.cljs create mode 100644 test/intemporal/tests/signal_test.cljs create mode 100644 test/intemporal/tests/timer_test.cljs diff --git a/.env b/.env new file mode 100644 index 0000000..b187499 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +JAVA_OTS="$JAVA_OPTS -Dio.netty.tryUnsafe=false" \ No newline at end of file diff --git a/bin/kaocha b/bin/kaocha index 9e1c63a..9544a59 100755 --- a/bin/kaocha +++ b/bin/kaocha @@ -2,7 +2,7 @@ [ -d "node_modules/ws" ] || npm install ws -JAVA_OPTS="${JAVA_OPTS:--agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Dio.netty.tryUnsafe=false}" +#JAVA_OPTS="${JAVA_OPTS:--agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Dio.netty.tryUnsafe=false}" if [[ "$OSTYPE" == "darwin"* ]]; then FDB_OPTS="-J-DFDB_LIBRARY_PATH_FDB_C=/usr/local/lib/libfdb_c.dylib -J-DFDB_LIBRARY_PATH_FDB_JAVA=/usr/local/lib/libfdb_java.jnilib" diff --git a/shadow-cljs.edn b/shadow-cljs.edn index 93fa8ed..c8c2845 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -16,6 +16,7 @@ :node {:target :node-test :output-to "target/tests.js" :ns-regexp "-test$" + :preloads [intemporal.tests.node-keepalive] :compiler-options {:source-map "true"} :autorun true} diff --git a/src/intemporal/core.cljc b/src/intemporal/core.cljc index 61c98c5..862e844 100644 --- a/src/intemporal/core.cljc +++ b/src/intemporal/core.cljc @@ -10,7 +10,9 @@ [intemporal.store :as store] [intemporal.observer :as obs] [intemporal.utils :as utils]) - #?(:cljs (:require-macros [intemporal.internal.logging :as log]))) + #?(:clj (:require [net.cgrand.macrovich :as macros]) + :cljs (:require-macros [net.cgrand.macrovich :as macros] + [intemporal.internal.logging :as log]))) ;; ============================================================================ ;; Core Workflow Operations @@ -482,8 +484,20 @@ (with-workflow-engine [engine {:threads 4}] (start-workflow (:store engine) ...))" [[binding opts] & body] - `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] - (try - ~@body - (finally - (shutdown-engine ~binding))))) + (macros/case + :clj + `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] + (try + ~@body + (finally + (shutdown-engine ~binding)))) + :cljs + ;; In CLJS, try/finally is synchronous so shutdown-engine fires before the + ;; async body resolves, cancelling pending timers/activities. + ;; Returns a promise with shutdown chained via p/finally. + ;; with-result owns the t/async boundary and chains done# after assertions. + `(let [~binding (make-workflow-engine ~@(mapcat identity opts))] + (-> (do ~@body) + (promesa.core/finally + (fn [] + (shutdown-engine ~binding))))))) diff --git a/src/intemporal/internal/execution.cljs b/src/intemporal/internal/execution.cljs new file mode 100644 index 0000000..ebceec5 --- /dev/null +++ b/src/intemporal/internal/execution.cljs @@ -0,0 +1,605 @@ +(ns intemporal.internal.execution + (:require [intemporal.internal.activity :as a] + [intemporal.internal.context :as ctx] + [intemporal.internal.error :as error] + [intemporal.internal.logging :as log] + [intemporal.utils :as utils] + [intemporal.protocol :as p] + [promesa.core :as prom]) + (:require-macros [intemporal.internal.logging :as log] + [intemporal.internal.execution :refer [-notify]])) + +;; ============================================================================ +;; Workflow Execution Engine +;; ============================================================================ + +(defmacro ^:private -notify + "Utility macro to dispatch events to an observer" + [proto-fn observer & args] + `(when ~observer + (~proto-fn ~observer ~@args))) + +(defn execute-workflow-fn [workflow-fn args] + (try + {:status :completed + :result (apply workflow-fn args) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} + (catch js/Error e + (cond + (error/suspension? e) + {:status :suspended + :suspension-type (error/suspension-type e) + :suspension-data (error/suspension-data e) + :pending-asyncs @(:pending-asyncs (ctx/current-context)) + :pending-events @(:pending-events (ctx/current-context))} + + (error/cancelled-exception? e) + {:status :cancelled + :pending-events @(:pending-events (ctx/current-context))} + + :else + {:status :failed + :error e + :pending-events @(:pending-events (ctx/current-context))})))) + +(defn- execute-once + "Execute activity once, returns a promise of result map." + [executor activity-name args timeout-ms observer workflow-id seq-num] + (let [start (utils/current-time-ms)] + (log/infof "Executing activity via executor %s" executor) + (-notify p/on-activity-started observer workflow-id seq-num activity-name) + (-> (prom/let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (utils/current-time-ms) start)] + (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) + (log/infof "Activity succeeded, result: %s" result) + {:status :success + :result result + :duration duration}) + (prom/catch js/Error + (fn [e] + (let [duration (- (utils/current-time-ms) start) + error-map (error/throwable->map e)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity failed") + {:status :failed + :error error-map + :duration duration})))))) + +(defn- execute-with-retry-loop + "Recursive promise-based retry loop." + [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num attempt] + (-notify p/on-activity-started observer workflow-id seq-num activity-name) + (log/infof "Executing activity (attempt %d)" attempt) + (let [start (utils/current-time-ms)] + (-> (prom/let [result (p/execute-activity executor activity-name args timeout-ms) + duration (- (utils/current-time-ms) start)] + (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) + (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) + {:status :success + :result result + :duration duration + :attempts attempt}) + (prom/catch js/Error + (fn [e] + (let [duration (- (utils/current-time-ms) start) + error-map (error/throwable->map e)] + (-notify p/on-activity-failed observer workflow-id seq-num activity-name error-map duration) + (log/warnf e "Activity failed (attempt %d)" attempt) + {:status :retry-or-fail + :error error-map + :exception e + :duration duration}))) + (prom/then + (fn [exec-result] + (case (:status exec-result) + :success + exec-result + + :retry-or-fail + (if (a/should-retry? retry-policy (:exception exec-result) attempt) + (let [backoff (a/calculate-backoff retry-policy attempt)] + (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) + (-> (prom/delay backoff) + (prom/then (fn [_] + (execute-with-retry-loop executor activity-name args timeout-ms + retry-policy observer workflow-id seq-num + (inc attempt)))))) + {:status :failed + :error (:error exec-result) + :duration (:duration exec-result) + :attempts attempt}))))))) + +(defn execute-with-retry + "Execute an activity with retry policy. Returns a promise of result map." + [executor activity-name args timeout-ms retry-policy observer workflow-id seq-num] + (if (nil? retry-policy) + (execute-once executor activity-name args timeout-ms observer workflow-id seq-num) + (execute-with-retry-loop executor activity-name args timeout-ms + retry-policy observer workflow-id seq-num 1))) + +(defn process-pending-activity [store executor workflow-id + {:keys [seq activity-name args timeout-ms retry-policy] :as suspension-data} + pending-events observer] + (log/with-mdc {:activity activity-name :seqnum seq} + (prom/let [exec-result (execute-with-retry executor activity-name args timeout-ms + retry-policy observer workflow-id seq)] + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + ;; Then save the completion or failure + (let [success? (= :success (:status exec-result)) + event (cond-> {:event-type (if success? :activity-completed :activity-failed) + :seq seq + :activity-name activity-name + :result (:result exec-result) + :duration-ms (:duration exec-result) + :attempts (:attempts exec-result) + :timestamp (utils/current-time-ms)} + success? (assoc :result (:result exec-result)) + (not success?) (assoc :error (:error exec-result)))] + (p/save-event store workflow-id event) + :continue)))) + +(defn process-pending-asyncs-parallel + "Process all pending async operations in parallel. Returns a promise of :continue." + [store executor workflow-id pending-asyncs pending-events observer] + (if-not (seq pending-asyncs) + (prom/resolved :continue) + (do + ;; Save all pending events first + (p/save-events store workflow-id pending-events) + + (log/infof "Executing %d activities in parallel via executor %s" (count pending-asyncs) executor) + (prom/let [results (p/execute-activities-parallel executor pending-asyncs)] + (let [now (utils/current-time-ms) + completion-events + (mapcat (fn [{:keys [activity-name activity-seq] :as async-info} result] + (log/with-mdc {:activity activity-name :seqnum activity-seq} + (if (= :success (:status result)) + (do + (-notify p/on-async-completed observer workflow-id (:handle-seq async-info) (:result result)) + (log/tracef "Got completion event: activity succeeded, result: %s" result)) + (do + (-notify p/on-async-failed observer workflow-id (:handle-seq async-info) (:error result)) + (log/tracef "Got completion event: activity failed, error: %s" (:error result)))) + (if (= :success (:status result)) + [{:event-type :activity-completed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :result (:result result) + :duration-ms (:duration result) + :timestamp now} + {:event-type :async-completed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :result (:result result) + :timestamp now}] + [{:event-type :activity-failed + :seq (:activity-seq async-info) + :activity-name (:activity-name async-info) + :error (:error result) + :timestamp now} + {:event-type :async-failed + :seq (:handle-seq async-info) + :last-seq (:activity-seq async-info) + :error (:error result) + :timestamp now}]))) + pending-asyncs results)] + (p/save-events store workflow-id completion-events) + :continue))))) + +(defn process-timer [store scheduler workflow-id suspension-data pending-events + wake-fn observer] + (let [{:keys [seq fire-at]} suspension-data + now (utils/current-time-ms)] + ;; Save pending events + (p/save-events store workflow-id pending-events) + (if (>= now fire-at) + (do + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp now}) + (-notify p/on-timer-fired observer workflow-id seq) + :continue) + ;; ELSE Schedule timer and return wait status + (do + (p/schedule-timer scheduler workflow-id seq fire-at + (fn [] + (p/save-event store workflow-id {:event-type :timer-fired + :seq seq + :timestamp (utils/current-time-ms)}) + (-notify p/on-timer-fired observer workflow-id seq) + (when wake-fn (wake-fn)))) + :wait-timer)))) + +(defn process-signal [store workflow-id suspension-data pending-events wake-fn observer] + (let [{:keys [seq signal-name]} suspension-data] + ;; Save pending events + (p/save-events store workflow-id pending-events) + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + ;; Signal already available - process immediately + (do + (p/save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (utils/current-time-ms)}) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data)) + :continue) + ;; ELSE Signal not yet available - register callback and wait + (do + (p/register-signal-callback store workflow-id signal-name + (fn [] + ;; When signal arrives, consume it and save event + (when-let [signal-data (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id {:event-type :signal-received + :seq seq + :signal-name signal-name + :signal-id (:id signal-data) + :payload (:payload signal-data) + :timestamp (utils/current-time-ms)}) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data))) + ;; Unregister callback + (p/unregister-signal-callback store workflow-id signal-name) + ;; Wake up the workflow + (when wake-fn (wake-fn)))) + :wait-signal)))) + +(defn process-signal-with-timeout [store scheduler workflow-id suspension-data + pending-events wake-fn observer] + (let [{:keys [seq signal-name deadline]} suspension-data + now (utils/current-time-ms)] + (p/save-events store workflow-id pending-events) + ;; Check if signal already available + (if-let [signal-data (p/consume-signal store workflow-id signal-name)] + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received true + :signal-name signal-name + :payload (:payload signal-data) + :timestamp now}) + (-notify p/on-signal-received observer workflow-id signal-name (:payload signal-data)) + :continue) + ;; ELSE Check if already timed out + (if (>= now deadline) + (do + (p/save-event store workflow-id {:event-type :signal-wait-completed + :seq seq + :received false + :signal-name signal-name + :timestamp now}) + :continue) + ;; Schedule timeout + (do + (p/schedule-timer scheduler workflow-id seq deadline + (fn [] + ;; Check one more time for signal + (let [signal-data? (p/consume-signal store workflow-id signal-name)] + (p/save-event store workflow-id (cond-> {:event-type :signal-wait-completed + :seq seq + :received (some? signal-data?) + :signal-name signal-name + :timestamp (utils/current-time-ms)} + (some? signal-data?) (assoc :payload (:payload signal-data?))))) + + (when wake-fn (wake-fn)))) + :wait-signal-timeout))))) + +(defn process-join-pending [store executor workflow-id suspension-data pending-events + pending-asyncs observer] + (let [{:keys [handle-seq]} suspension-data] + ;; First, process any pending asyncs that haven't been executed yet + (if (seq pending-asyncs) + (prom/let [_ (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer)] + :continue) + ;; else + (do + (when (seq pending-events) + (p/save-events store workflow-id pending-events)) + ;; Check if the handle is now complete + (let [store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + completed (p/find-event store workflow-id :async-completed handle-seq) + failed (p/find-event store workflow-id :async-failed handle-seq)] + (if (or completed failed) + :continue + :wait-async)))))) + +;; ============================================================================ +;; Helper Functions for Workflow Execution +;; ============================================================================ + +(defn make-workflow-context + "Create workflow execution context from history." + [workflow-id history store registry observer] + {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events (atom []) + :pending-asyncs (atom []) + :store store + :registry registry + :observer observer}) + +(defn finalize-completed + "Save completion events and return result. Returns a promise." + [store executor workflow-id pending-asyncs pending-events result observer] + (prom/let [_ (if (seq pending-asyncs) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs pending-events observer) + (do + (when (seq pending-events) + (p/save-events store workflow-id pending-events)) + nil))] + (p/save-event store workflow-id {:event-type :workflow-completed + :result result + :timestamp (utils/current-time-ms)}) + (-notify p/on-workflow-completed observer workflow-id result) + {:status :completed + :workflow-id workflow-id + :result result})) + +(defn finalize-cancelled + "Save cancellation event and return result as failed." + [store workflow-id pending-events observer] + (p/save-events store workflow-id pending-events) + (let [error-map {:type "clojure.lang.ExceptionInfo" + :message "Workflow cancelled" + :data {:workflow-id workflow-id}}] + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (utils/current-time-ms)}) + (-notify p/on-workflow-cancelled observer workflow-id) + (-notify p/on-workflow-failed observer workflow-id error-map) + {:status :failed + :workflow-id workflow-id + :error error-map})) + +(defn finalize-failed + "Save failure event and return result." + [store workflow-id pending-events error observer] + (p/save-events store workflow-id pending-events) + (let [error-map (error/throwable->map error)] + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (utils/current-time-ms)}) + (-notify p/on-workflow-failed observer workflow-id error-map) + {:status :failed + :workflow-id workflow-id + :error error-map})) + +(defn action->result + "Convert action keyword to workflow result map." + [action workflow-id] + (case action + :wait-signal {:status :waiting-signal + :workflow-id workflow-id} + :wait-signal-timeout {:status :waiting-signal-timeout + :workflow-id workflow-id} + :wait-timer {:status :waiting-timer + :workflow-id workflow-id} + :wait-async {:status :waiting-async + :workflow-id workflow-id} + ;; :continue should not reach here + nil)) + +(declare process-child-workflow) + +(defn handle-suspension + "Dispatch suspension to appropriate handler based on type. + Returns a promise of action keyword: :continue or :wait-*" + [engine workflow-id suspension-type suspension-data pending-asyncs pending-events wake-fn observer] + (let [{:keys [store executor scheduler]} engine + pending-asyncs-list pending-asyncs + pending-events-list pending-events] + (-notify p/on-workflow-suspended observer workflow-id suspension-type) + + (case suspension-type + :activity + (if (seq pending-asyncs-list) + (prom/let [_ (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer)] + :continue) + (process-pending-activity store executor workflow-id + suspension-data + pending-events-list + observer)) + + :timer + (prom/resolved + (process-timer store scheduler workflow-id + suspension-data + pending-events-list + wake-fn + observer)) + + :wait-signal + (prom/resolved + (process-signal store workflow-id + suspension-data + pending-events-list + wake-fn + observer)) + + :wait-signal-timeout + (prom/resolved + (process-signal-with-timeout store scheduler workflow-id + suspension-data + pending-events-list + wake-fn + observer)) + + :join-pending + (process-join-pending store executor workflow-id + suspension-data + pending-events-list + pending-asyncs-list + observer) + + :join-any-pending + (prom/let [_ (when (seq pending-asyncs-list) + (process-pending-asyncs-parallel store executor workflow-id + pending-asyncs-list + pending-events-list + observer))] + :continue) + + :child-workflow + (process-child-workflow engine + workflow-id + suspension-data + pending-events-list + observer)))) + + +(defn run-once + "Internal: Execute a side-effect thunk only once (not on replay). + Uses a special event marker to track execution. + + This is an internal implementation detail and should not be exposed to users. + Users should wrap side effects in activities for proper determinism. + + This can be used to eg run logging statements, etc" + [thunk] + (ctx/check-cancelled!) + (let [seq-num (ctx/next-seq!) + store (ctx/current-store) + workflow-id (ctx/current-workflow-id) + existing (p/find-event store workflow-id :run-once-completed seq-num)] + (if existing + ;; Replay: already executed, return cached result + (:result existing) + ;; First time: execute thunk and save result + (let [result (thunk)] + (ctx/add-pending-event! {:event-type :run-once-completed + :seq seq-num + :result result + :timestamp (utils/current-time-ms)}) + result)))) + +(defn run-workflow-internal + "Main workflow execution loop - orchestrates replay and execution. + + Refactored for clarity into three concerns: + 1. Execution: Run workflow function with context (execute-workflow-fn) + 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension) + 3. Finalization: Save events and return results (finalize-* functions) + + Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure)." + [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args + {:keys [observer max-iterations wake-fn] + :or {max-iterations 1000}}] + (prom/loop [iteration 0] + (when (>= iteration max-iterations) + (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id + :iterations iteration}))) + + (log/debugf "Internal loop %d of %d" iteration max-iterations) + + ;; Check if executor is shutting down - stop processing to avoid endless rejections + (if (p/shutdown? executor) + (do + (log/infof "Executor shutting down, suspending workflow") + {:status :suspended + :workflow-id workflow-id}) + + ;; Check cancellation at start of each iteration + (if (p/is-cancelled? store workflow-id) + (let [error-map {:type "clojure.lang.ExceptionInfo" + :message "Workflow cancelled" + :data {:workflow-id workflow-id}}] + + (-notify p/on-workflow-cancelled observer workflow-id) + (p/save-event store workflow-id {:event-type :workflow-failed + :error error-map + :timestamp (utils/current-time-ms)}) + + (log/info "Workflow cancelled, failing") + (-notify p/on-workflow-failed observer workflow-id error-map) + {:status :failed + :workflow-id workflow-id + :error error-map}) + ;; else + (let [history (p/load-history store workflow-id) + ctx (make-workflow-context workflow-id history store registry observer) + exec-result (binding [ctx/*workflow-context* ctx] + (log/debugf "Executing workflow function %s..." workflow-fn) + (execute-workflow-fn workflow-fn args))] + + (log/debugf "Workflow function executed, got: %s" (:status exec-result)) + (case (:status exec-result) + :completed + (finalize-completed store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + (:result exec-result) + observer) + + :cancelled + (finalize-cancelled store workflow-id + (:pending-events exec-result) + observer) + + :suspended + (prom/let [action (handle-suspension engine + workflow-id + (:suspension-type exec-result) + (:suspension-data exec-result) + (:pending-asyncs exec-result) + (:pending-events exec-result) + wake-fn + observer)] + (when (and observer (= action :continue)) + (p/on-workflow-resumed observer workflow-id)) + + (if (= action :continue) + (prom/recur (inc iteration)) + (action->result action workflow-id))) + + :failed + (finalize-failed store workflow-id + (:pending-events exec-result) + (:error exec-result) + observer))))))) + +(defn process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id + suspension-data pending-events observer] + (let [{:keys [seq child-workflow-id workflow-fn args]} suspension-data] + (p/save-events store workflow-id pending-events) + (-> (run-workflow-internal engine child-workflow-id workflow-fn args + {:observer observer :max-iterations 1000}) + (prom/then + (fn [result] + (if (= :completed (:status result)) + (do + (p/save-event store workflow-id {:event-type :child-workflow-completed + :seq seq + :child-workflow-id child-workflow-id + :result (:result result) + :timestamp (utils/current-time-ms)}) + (log/infof "Child workflow with id %s completed" child-workflow-id) + :continue) + (do + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (or (:error result) + {:status (:status result) + :message (str "Child workflow ended with status: " (:status result))}) + :timestamp (utils/current-time-ms)}) + (log/infof "Child workflow with id %s failed, status: %s, error: %s" child-workflow-id (:status result) (:error result)) + :continue)))) + (prom/catch js/Error + (fn [e] + (p/save-event store workflow-id {:event-type :child-workflow-failed + :seq seq + :child-workflow-id child-workflow-id + :error (error/throwable->map e) + :timestamp (utils/current-time-ms)}) + (log/warnf e "Error while executing child workflow with id %s" child-workflow-id) + :continue))))) diff --git a/test/intemporal/tests/async_test.cljs b/test/intemporal/tests/async_test.cljs index 3a2be74..1c1d3b0 100644 --- a/test/intemporal/tests/async_test.cljs +++ b/test/intemporal/tests/async_test.cljs @@ -3,8 +3,7 @@ [cljs.test :as t :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] [intemporal.tests.utils :as tu]) - (:require-macros [intemporal.core :as intemporal :refer [with-workflow-engine]] - [intemporal.tests.utils :refer [with-result]])) + (:require-macros [intemporal.tests.utils :refer [with-result]])) (defn slow-activity [x] (println (str "slow activity START with " x)) @@ -44,8 +43,7 @@ (deftest test-async-workflow (testing "Async workflow" - (with-workflow-engine [engine {:threads 4 :enable-logging true}] - ;; Activities are automatically registered via stub call + (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)] (with-result [result (intemporal/start-workflow engine my-parallel-flow [999])] (is (match? {:status :completed :result {:args 999, :slow 0, :prom4 4, :results [2 4 6 4], :id 999}} @@ -54,11 +52,9 @@ (deftest test-race-workflow (testing "Async race workflow" - (with-workflow-engine [engine {:threads 4 :enable-logging true}] - ;; Activities are automatically registered via stub call + (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)] (with-result [result (intemporal/start-workflow engine my-race-flow [999])] (is (match? {:status :completed :result {:race-result {:index 0, :result 200} :id 999}} result)))))) - diff --git a/test/intemporal/tests/cancellation_test.cljs b/test/intemporal/tests/cancellation_test.cljs new file mode 100644 index 0000000..e125aae --- /dev/null +++ b/test/intemporal/tests/cancellation_test.cljs @@ -0,0 +1,85 @@ +(ns intemporal.tests.cancellation-test + (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m] + [promesa.core :as p]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(defn slow-activity [x] + (p/then (p/delay 100) (fn [_] (* x 2)))) + +;; Long-running workflow +(defn long-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (loop [i 0 + results []] + (if (< i 10) + (recur (inc i) (conj results (slow i))) + {:results results :done true})))) + +;; Workflow that checks cancellation +(defn cancellable-flow [id] + (let [slow (intemporal/stub #'slow-activity)] + (slow 1) + (intemporal/sleep 100) + (slow 2) + {:done true})) + +(deftest test-workflow-cancellation + (testing "Workflow can be cancelled mid-execution" + (let [wf-id "cancel-test" + engine (intemporal/make-workflow-engine :threads 2)] + ;; Cancel after a short delay + (js/setTimeout + #(intemporal/cancel-workflow (:store engine) wf-id) + 200) + (with-result [result (intemporal/start-workflow engine long-flow [1] + :workflow-id wf-id)] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result)))))) + +(deftest test-cancellation-with-timer + (testing "Workflow cancelled while waiting on timer" + (let [wf-id "cancel-timer-test" + engine (intemporal/make-workflow-engine :threads 2)] + ;; Cancel while sleeping + (js/setTimeout + #(intemporal/cancel-workflow (:store engine) wf-id) + 150) + (with-result [result (intemporal/start-workflow engine cancellable-flow [1] + :workflow-id wf-id)] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result)))))) + +(deftest test-cancel-before-start + (testing "Workflow cancelled before it starts" + (let [wf-id "cancel-before-start" + engine (intemporal/make-workflow-engine :threads 2)] + ;; Cancel before starting + (intemporal/cancel-workflow (:store engine) wf-id) + (with-result [result (intemporal/start-workflow engine cancellable-flow [1] + :workflow-id wf-id)] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result)))))) + +(deftest test-workflow-status-after-cancel + (testing "Workflow status is cancelled after cancellation" + (let [wf-id "cancel-status-test" + engine (intemporal/make-workflow-engine :threads 2)] + (js/setTimeout + #(intemporal/cancel-workflow (:store engine) wf-id) + 100) + (with-result [result (intemporal/start-workflow engine long-flow [1] + :workflow-id wf-id)] + (is (match? {:status :failed + :workflow-id wf-id + :error (m/embeds {:message #"cancelled"})} + result)))))) diff --git a/test/intemporal/tests/child_workflow_test.cljs b/test/intemporal/tests/child_workflow_test.cljs new file mode 100644 index 0000000..9d3d6c8 --- /dev/null +++ b/test/intemporal/tests/child_workflow_test.cljs @@ -0,0 +1,90 @@ +(ns intemporal.tests.child-workflow-test + (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Child workflow +(defn child-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:child-result (act x)})) + +;; Parent workflow +(defn parent-flow [id] + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-flow [(* id 10)])] + {:parent-result (act id) + :child child-result})) + +;; Nested child workflows +(defn grandchild-flow [x] + (let [act (intemporal/stub #'activity-fn)] + {:grandchild (act x)})) + +(defn child-with-child-flow [x] + (let [act (intemporal/stub #'activity-fn) + gc-result (intemporal/run-child-workflow grandchild-flow [(* x 100)])] + {:child-result (act x) + :grandchild-result gc-result})) + +(defn nested-parent-flow [id] + (let [act (intemporal/stub #'activity-fn) + child-result (intemporal/run-child-workflow child-with-child-flow [(* id 10)])] + {:parent-result (act id) + :nested-child child-result})) + +(deftest test-simple-child-workflow + (testing "Parent workflow can run child workflow" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine parent-flow [5])] + (is (match? {:status :completed + :workflow-id string? + :result {:parent-result [:processed 5] + :child {:child-result [:processed 50]}}} + result)))))) + +(deftest test-nested-child-workflows + (testing "Child workflows can have their own child workflows" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine nested-parent-flow [3])] + (is (match? {:status :completed + :result {:parent-result [:processed 3] + :nested-child {:child-result [:processed 30] + :grandchild-result {:grandchild [:processed 3000]}}}} + result)))))) + +(deftest test-child-workflow-with-error + (testing "Parent handles child workflow errors" + (let [failing-child (fn [x] + (throw (ex-info "Child failed" {:x x}))) + parent-with-error (fn [id] + (try + (intemporal/run-child-workflow failing-child [id]) + {:success true} + (catch js/Error e + {:error (ex-message e)}))) + engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine parent-with-error [42])] + (is (match? {:status :completed + :result {:error string?}} + result)))))) + +(deftest test-multiple-child-workflows + (testing "Parent can run multiple child workflows sequentially" + (let [multi-child-flow (fn [id] + (let [c1 (intemporal/run-child-workflow child-flow [1]) + c2 (intemporal/run-child-workflow child-flow [2]) + c3 (intemporal/run-child-workflow child-flow [3])] + {:children [c1 c2 c3] :id id})) + engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine multi-child-flow [99])] + (is (match? {:status :completed + :result {:children [{:child-result [:processed 1]} + {:child-result [:processed 2]} + {:child-result [:processed 3]}] + :id 99}} + result)))))) diff --git a/test/intemporal/tests/cljs/repl/node_repl.js b/test/intemporal/tests/cljs/repl/node_repl.js new file mode 100644 index 0000000..8a8c6ef --- /dev/null +++ b/test/intemporal/tests/cljs/repl/node_repl.js @@ -0,0 +1,114 @@ +/** + * Copyright (c) Rich Hickey. All rights reserved. + * The use and distribution terms for this software are covered by the + * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) + * which can be found in the file epl-v10.html at the root of this distribution. + * By using this software in any fashion, you are agreeing to be bound by + * the terms of this license. + * You must not remove this notice, or any other, from this software. + */ + +process.env.NODE_DISABLE_COLORS = true; +var net = require("net"); +var vm = require("vm"); +var dom = require("domain").create(); +var PORT = 5001; +var repl = null; + +try { + require("source-map-support").install(); +} catch(err) { +} + +var server = net.createServer(function (socket) { + var buffer = "", + ret = null, + err = null; + + socket.write("ready"); + socket.write("\0"); + + socket.setEncoding("utf8"); + + process.stdout.write = function(chunk, encoding, fd) { + var args = Array.prototype.slice.call(arguments, 0); + args[0] = JSON.stringify({type: "out", repl: repl, value: chunk}); + socket.write.apply(socket, args); + socket.write("\0"); + }; + + process.stderr.write = (function(write) { + return function(chunk, encoding, fd) { + var args = Array.prototype.slice.call(arguments, 0); + args[0] = JSON.stringify({type: "err", repl: repl, value: chunk}); + socket.write.apply(socket, args); + socket.write("\0"); + }; + })(process.stderr.write); + + + dom.on("error", function(ue) { + console.error(ue.stack); + }); + + socket.on("data", function(data) { + if(data[data.length-1] != "\0") { + buffer += data; + } else { + if(buffer.length > 0) { + data = buffer + data; + buffer = ""; + } + + if(data) { + // not sure how \0's are getting through - David + data = data.replace(/\0/g, ""); + + if(":cljs/quit" == data) { + server.close(); + socket.unref(); + return; + } else { + try { + dom.run(function () { + var obj = JSON.parse(data); + repl = obj.repl; + ret = vm.runInThisContext(obj.form, "repl"); + }); + } catch (e) { + err = e; + } + } + } + + if(err) { + socket.write(JSON.stringify({ + type: "result", + repl: repl, + status: "exception", + value: cljs.repl.error__GT_str(err) + })); + } else if(ret !== undefined && ret !== null) { + socket.write(JSON.stringify({ + type: "result", + repl: repl, + status: "success", + value: ret.toString() + })); + } else { + socket.write(JSON.stringify({ + type: "result", + repl: repl, + status: "success", + value: null + })); + } + + ret = null; + err = null; + + socket.write("\0"); + } + }); + +}).listen(PORT); diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs new file mode 100644 index 0000000..0e1a1c3 --- /dev/null +++ b/test/intemporal/tests/deleteme_test.cljs @@ -0,0 +1,17 @@ +(ns intemporal.tests.deleteme-test + (:require [cljs.test :refer [deftest is testing async]] + [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(defn noop-activity [x] x) + +(defn noop-flow [id] + (let [act (intemporal/stub #'noop-activity)] + (act id))) + +(deftest test-simple-workflow + (testing "simplest possible workflow" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine noop-flow [42])] + (is (= :completed (:status result))))))) diff --git a/test/intemporal/tests/error_test.cljs b/test/intemporal/tests/error_test.cljs new file mode 100644 index 0000000..be0a6b8 --- /dev/null +++ b/test/intemporal/tests/error_test.cljs @@ -0,0 +1,119 @@ +(ns intemporal.tests.error-test + (:require [intemporal.core :as intemporal] + [intemporal.internal.activity :as a] + [intemporal.tests.utils :refer [with-result]] + [intemporal.utils :as utils] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [matcher-combinators.matchers :as m]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(def attempt-counter (atom 0)) + +(defn flaky-activity [x] + (let [attempt (swap! attempt-counter inc)] + (if (< attempt 3) + (throw (ex-info "Flaky failure" {:x x :attempt attempt})) + (* x 3)))) + +(defn always-fails-activity [x] + (throw (ex-info "Always fails" {:x x}))) + +;; Workflow with retry +(defn retry-flow [id] + (let [flaky (intemporal/stub #'flaky-activity :retry-policy (a/make-retry-policy :max-attempts 5 + :initial-backoff-ms 10))] + {:result (flaky id)})) + +(deftest test-activity-retry-succeeds + (testing "Activity succeeds after retries" + (reset! attempt-counter 0) + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine retry-flow [42])] + (is (match? {:status :completed + :workflow-id string? + :result {:result 126}} + result)) + ;; Should have attempted 3 times + (is (= 3 @attempt-counter)))))) + +;; Workflow with activity that fails after retry +(defn failing-retry-flow [id] + (let [failing (intemporal/stub #'always-fails-activity + :retry-policy (a/make-retry-policy :max-attempts 3 + :initial-backoff-ms 10))] + {:result (failing id)})) + +(deftest test-activity-retry-exhausted + (testing "Activity fails after exhausting retries" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine failing-retry-flow [99])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} + result)))))) + + +;; Workflow that catches errors +(defn error-handling-flow [id] + (let [failing (intemporal/stub #'always-fails-activity)] + (try + {:result (failing id) :error false} + (catch js/Error e + {:result nil :error true :message (ex-message e)})))) + +(deftest test-workflow-error-handling + (testing "Workflow can catch and handle activity errors" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine error-handling-flow [123])] + (is (match? {:status :completed + :workflow-id string? + :result {:result nil + :error true + :message string?}} + result)))))) + +(deftest test-no-retry-policy + (testing "Activity without retry policy fails immediately" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine failing-retry-flow [456])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name string?})})} + result)))))) + + +;; Workflow with retry +(defn retry-flow2 [id] + (let [flaky (intemporal/stub #'flaky-activity + :retry-policy (a/make-retry-policy + :max-attempts 5 + :initial-backoff-ms 10 + :backoff-multiplier 2.0))] + {:result (flaky id)})) + +(deftest test-retry-with-exponential-backoff + (testing "Retry policy applies exponential backoff" + (reset! attempt-counter 0) + (let [start-time (utils/current-time-ms) + engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine retry-flow2 [42])] + (let [elapsed (- (utils/current-time-ms) start-time)] + (is (match? {:status :completed + :workflow-id string? + :result {:result 126}} + result)) + ;; With backoff 10ms, 20ms, we expect at least 30ms + (is (>= elapsed 30))))))) + +(deftest test-error-details-preserved + (testing "Error details are preserved in workflow result" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine failing-retry-flow [789])] + (is (match? {:status :failed + :workflow-id string? + :error (m/embeds {:message "Activity failed" + :data (m/embeds {:activity-name "intemporal.tests.error-test/always-fails-activity"})})} + result)))))) diff --git a/test/intemporal/tests/signal_test.cljs b/test/intemporal/tests/signal_test.cljs new file mode 100644 index 0000000..9d684b4 --- /dev/null +++ b/test/intemporal/tests/signal_test.cljs @@ -0,0 +1,83 @@ +(ns intemporal.tests.signal-test + (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [promesa.core :as p]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Workflow waiting for signal +(defn signal-flow [id] + (let [approval (intemporal/wait-for-signal "approval") + act (intemporal/stub #'activity-fn)] + {:approved approval + :result (act id)})) + +;; Workflow with signal timeout +(defn signal-timeout-flow [id timeout-ms] + (let [result (intemporal/wait-for-signal-with-timeout "approval" timeout-ms) + act (intemporal/stub #'activity-fn)] + (if (:received result) + {:approved (:payload result) + :result (act id)} + {:timed-out true + :result (act (* id -1))}))) + +(deftest test-signal-blocking + (testing "Workflow blocks until signal is sent" + (let [wf-id "signal-test" + engine (intemporal/make-workflow-engine :threads 2)] + ;; Send signal after a short delay + (js/setTimeout + #(intemporal/send-signal (:store engine) wf-id "approval" {:user "alice"}) + 100) + (with-result [result (intemporal/start-workflow engine signal-flow [123] + :workflow-id wf-id)] + (is (match? {:status :completed + :workflow-id wf-id + :result {:approved {:user "alice"} + :result [:processed 123]}} + result)))))) + +(deftest test-signal-timeout-received + (testing "Signal received before timeout" + (let [wf-id "signal-timeout-test" + engine (intemporal/make-workflow-engine :threads 2)] + (js/setTimeout + #(intemporal/send-signal (:store engine) wf-id "approval" {:user "bob"}) + 100) + (with-result [result (intemporal/start-workflow engine signal-timeout-flow [456 5000] + :workflow-id wf-id)] + (is (match? {:status :completed + :result {:approved {:user "bob"} + :result [:processed 456]}} + result)))))) + +(deftest test-signal-timeout-expired + (testing "Signal times out when not received" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine signal-timeout-flow [789 100])] + (is (match? {:status :completed + :result {:timed-out true + :result [:processed -789]}} + result)))))) + +(deftest test-multiple-signals + (testing "Multiple signals can be sent to same workflow" + (let [wf-id "multi-signal-test" + engine (intemporal/make-workflow-engine :threads 2)] + ;; Send signals before workflow starts + (intemporal/send-signal (:store engine) wf-id "approval" {:user "alice"}) + (intemporal/send-signal (:store engine) wf-id "approval" {:user "bob"}) + ;; First workflow run consumes first signal, then second + (with-result [[result1 result2] + (p/let [r1 (intemporal/start-workflow engine signal-flow [100] + :workflow-id wf-id) + r2 (intemporal/resume-workflow engine wf-id + signal-flow [100])] + [r1 r2])] + (is (match? {:result {:approved {:user "alice"}}} result1)) + (is (match? {:result {:approved {:user "alice"}}} result2)))))) diff --git a/test/intemporal/tests/timer_test.cljs b/test/intemporal/tests/timer_test.cljs new file mode 100644 index 0000000..4c740c5 --- /dev/null +++ b/test/intemporal/tests/timer_test.cljs @@ -0,0 +1,58 @@ +(ns intemporal.tests.timer-test + (:require [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]] + [cljs.test :as t :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]] + [promesa.core :as p]) + (:require-macros [intemporal.tests.utils :refer [with-result]])) + +(defn activity-fn [arg] + [:processed arg]) + +;; Simple timer workflow +(defn timed-flow [id] + (let [act (intemporal/stub #'activity-fn)] + (intemporal/sleep 100) ; Short sleep for tests + {:result (act id)})) + +;; Timer with multiple sleeps +(defn multi-sleep-flow [id] + (let [act (intemporal/stub #'activity-fn)] + (intemporal/sleep 50) + (let [r1 (act 1)] + (intemporal/sleep 50) + (let [r2 (act 2)] + {:results [r1 r2] :id id})))) + +(deftest test-simple-timer + (testing "Workflow with timer completes after sleep" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine timed-flow [456])] + (is (match? {:status :completed + :workflow-id string? + :result {:result [:processed 456]}} + result)))))) + +(deftest test-multiple-timers + (testing "Workflow with multiple sleep calls" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine multi-sleep-flow [789])] + (is (match? {:status :completed + :workflow-id string? + :result {:results [[:processed 1] [:processed 2]] + :id 789}} + result)))))) + +(deftest test-timer-replay + (testing "Timer workflow is deterministic on replay" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [[result1 result2] + (p/let [r1 (intemporal/start-workflow engine + timed-flow [100] + :workflow-id "timer-replay-test") + r2 (intemporal/resume-workflow engine "timer-replay-test" + timed-flow [100])] + [r1 r2])] + (is (match? {:status :completed} result1)) + (is (match? {:status :completed} result2)) + (is (= (:result result1) (:result result2))))))) diff --git a/test/intemporal/tests/utils.cljc b/test/intemporal/tests/utils.cljc index 516ef8a..61f7ac0 100644 --- a/test/intemporal/tests/utils.cljc +++ b/test/intemporal/tests/utils.cljc @@ -34,18 +34,11 @@ (catch Exception e# e#)))] ~@body) :cljs - `(t/async done# - (js/setTimeout - (fn [] - ;; force wrap resval in a deferred - (p/finally (-> nil - (p/then (fn [_#] - (do ~resval))) - (p/timeout with-result-default-timeout)) - (fn [res# err#] - (try - (let [~res (or res# err#)] - (do ~@body)) - (finally - (done#))))) - 0)))))) + (let [done (gensym "done")] + `(~'cljs.test/async ~done + (-> (p/resolved nil) + (p/then (fn [_#] ~resval)) + (p/timeout with-result-default-timeout) + (p/then (fn [~res] ~@body)) + (p/catch (fn [err#] (let [~res err#] ~@body))) + (p/finally (fn [] (~done))))))))) diff --git a/tests.edn b/tests.edn index 30b1de6..d5b7285 100644 --- a/tests.edn +++ b/tests.edn @@ -1,9 +1,9 @@ #kaocha/v1 {:plugins [:kaocha.plugin/randomize :kaocha.plugin/filter - :kaocha.plugin/capture-output - :kaocha.plugin/junit-xml - :kaocha.plugin/cloverage] + ;:kaocha.plugin/capture-output + :kaocha.plugin/junit-xml] + ;:kaocha.plugin/cloverage] :reporter [kaocha.report/documentation] :color? true @@ -23,7 +23,7 @@ :html? true, :nop? false, :codecov? true} - :bindings {kaocha.type.cljs/*debug* true} + :bindings {kaocha.type.cljs/*debug* false} :tests [ ;; skip jdbc and fdb {:id :in-memory @@ -40,6 +40,7 @@ :test-paths ["test"]} {:id :test-cljs :type :kaocha.type/cljs + :cljs/repl-env cljs.repl.node/repl-env ;:cljs/timeout 20000 :ns-patterns ["-test$"] :source-paths ["src"] From 71a434bfec5bf7606cabc8759b349949cbb27f10 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 13 Feb 2026 18:39:17 +0000 Subject: [PATCH 62/81] fx logging, macro, use telemere --- deps.edn | 2 +- src/intemporal/internal/activity.cljc | 30 +++- .../internal/fns/start_workflow.clj | 1 - src/intemporal/internal/logging.cljc | 163 ++++++------------ src/intemporal/internal/macros.cljc | 28 +-- src/intemporal/internal/runtime.cljs | 5 +- test/intemporal/tests/deleteme_test.cljs | 12 +- test/intemporal/tests/utils.cljc | 22 ++- 8 files changed, 124 insertions(+), 139 deletions(-) diff --git a/deps.edn b/deps.edn index b067491..8eb0496 100644 --- a/deps.edn +++ b/deps.edn @@ -2,7 +2,7 @@ :test-paths ["test"] :deps {org.clojure/clojure {:mvn/version "1.12.1"} - org.clojure/tools.logging {:mvn/version "1.2.4"} + com.taoensso/telemere {:mvn/version "1.2.1"} thheller/shadow-cljs {:mvn/version "2.28.11"} com.github.steffan-westcott/clj-otel-api {:mvn/version "0.2.10"} ;; cljs (TODO test only?) diff --git a/src/intemporal/internal/activity.cljc b/src/intemporal/internal/activity.cljc index bfefbe2..4c7c6b8 100644 --- a/src/intemporal/internal/activity.cljc +++ b/src/intemporal/internal/activity.cljc @@ -1,9 +1,33 @@ -(ns intemporal.internal.activity) +(ns intemporal.internal.activity + #?(:cljs (:require [clojure.string :as str]))) ;; ============================================================================ ;; Activity Registry ;; ============================================================================ +(defn- fn-name + "Get a stable, qualified name string from a function. + On JVM: uses var metadata when available, otherwise class name. + On CLJS: demangles the JS function .name property (e.g. ns$fn_name -> ns/fn-name)." + [f] + #?(:clj (str (symbol f)) + :cljs (let [raw (.-name f)] + (if (and raw (not (str/blank? raw))) + ;; JS mangled name: intemporal$tests$deleteme_test$noop_activity + ;; Split on $ to get segments, last is fn name, rest is ns + (let [parts (str/split raw #"\$")] + (if (> (count parts) 1) + (let [ns-parts (butlast parts) + fn-part (last parts) + ;; underscores in ns segments -> hyphens + ns-str (str/join "." (map #(str/replace % "_" "-") ns-parts)) + fn-str (str/replace fn-part "_" "-")] + (str ns-str "/" fn-str)) + ;; Single segment - no namespace + (str/replace raw "_" "-"))) + ;; Anonymous fn - generate a name + (str (gensym "activity-")))))) + (defn make-registry "Create a new activity registry" [] @@ -15,7 +39,7 @@ (let [activity-name (or name (if (var? f) (str (symbol f)) - (str (gensym "activity-")))) + (fn-name f))) resolved-fn (if (var? f) @f f)] (swap! registry assoc activity-name {:fn resolved-fn @@ -32,7 +56,7 @@ (defn ensure-registered! [registry f] (let [activity-name (if (var? f) (str (symbol f)) - (str (symbol f)))] + (fn-name f))] (when-not (contains? @registry activity-name) (register-activity! registry f :name activity-name)) activity-name)) diff --git a/src/intemporal/internal/fns/start_workflow.clj b/src/intemporal/internal/fns/start_workflow.clj index 1960258..e188437 100644 --- a/src/intemporal/internal/fns/start_workflow.clj +++ b/src/intemporal/internal/fns/start_workflow.clj @@ -43,7 +43,6 @@ (catch Exception e (when-let [p @resume-promise-atom] (deliver p {:status :failed :error e}))))))] - (log/with-mdc {:workflow-id wf-id} ;; Initialize with first promise (reset! resume-promise-atom (promise)) diff --git a/src/intemporal/internal/logging.cljc b/src/intemporal/internal/logging.cljc index 81d881d..ccc5142 100644 --- a/src/intemporal/internal/logging.cljc +++ b/src/intemporal/internal/logging.cljc @@ -1,118 +1,53 @@ (ns intemporal.internal.logging - #?(:clj (:require [net.cgrand.macrovich :as macros]) - ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) - :cljs (:require-macros [net.cgrand.macrovich :as macros])) - ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] - ;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) - #?(:clj (:import (org.slf4j MDC)))) + (:require [taoensso.telemere :as t] + #?(:cljs [goog.string :as gstring]) + #?(:cljs [goog.string.format]))) (defmacro with-mdc + "Evaluates body with given map merged into telemere's signal context." [m & body] - (macros/case - :cljs - `(do ~@body) - - :clj - `(try - (doseq [[k# v#] ~m] - (MDC/put (name k#) (str v#))) - (do ~@body) - (finally - (doseq [k# (keys ~m)] - (MDC/remove (name k#))))))) - -;; level-specific macros - -(defn logp [& args] - (macros/case - :clj (apply println args) - :cljs (apply js/console.log args))) - -(defn logf [& args] - (macros/case - :clj (apply println args) - :cljs (apply js/console.log args))) - -(defmacro trace - "Trace level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :trace ~@args)) - -(defmacro debug - "Debug level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :debug ~@args)) - -(defmacro info - "Info level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :info ~@args)) - -(defmacro warn - "Warn level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :warn ~@args)) - -(defmacro error - "Error level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :error ~@args)) - -(defmacro fatal - "Fatal level logging using print-style args. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([message & more] [throwable message & more])} - [& args] - `(logp :fatal ~@args)) - -(defmacro tracef - "Trace level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :trace ~@args)) - -(defmacro debugf - "Debug level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :debug ~@args)) - -(defmacro infof - "Info level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :info ~@args)) - -(defmacro warnf - "Warn level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :warn ~@args)) - -(defmacro errorf - "Error level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :error ~@args)) - -(defmacro fatalf - "Fatal level logging using format. - Use the 'logging.readable' namespace to avoid wrapping args in pr-str." - {:arglists '([fmt & fmt-args] [throwable fmt & fmt-args])} - [& args] - `(logf :fatal ~@args)) \ No newline at end of file + ;; (t/log! {:level :debug :data {:sym (:sym task)}} ["Found replay event for task with id" (:id task)])) + `(t/with-ctx {:data ~m} ~@body)) + +(defn- fmt [s args] + #?(:clj (apply format s args) + :cljs (apply gstring/format s args))) + +;; Print-style: (info msg) or (info throwable msg) +(defn trace [& args] (t/log! :trace (last args))) +(defn debug [& args] (t/log! :debug (last args))) +(defn info [& args] (t/log! :info (last args))) +(defn warn [& args] (t/log! :warn (last args))) +(defn error [& args] (t/log! :error (last args))) +(defn fatal [& args] (t/log! :fatal (last args))) + +;; Format-style: (infof fmt args...) or (infof throwable fmt args...) +(defn tracef [& args] + (if (string? (first args)) + (t/log! :trace (fmt (first args) (rest args))) + (t/log! {:level :trace :error (first args)} (fmt (second args) (nnext args))))) + +(defn debugf [& args] + (if (string? (first args)) + (t/log! :debug (fmt (first args) (rest args))) + (t/log! {:level :debug :error (first args)} (fmt (second args) (nnext args))))) + +(defn infof [& args] + (if (string? (first args)) + (t/log! :info (fmt (first args) (rest args))) + (t/log! {:level :info :error (first args)} (fmt (second args) (nnext args))))) + +(defn warnf [& args] + (if (string? (first args)) + (t/log! :warn (fmt (first args) (rest args))) + (t/log! {:level :warn :error (first args)} (fmt (second args) (nnext args))))) + +(defn errorf [& args] + (if (string? (first args)) + (t/log! :error (fmt (first args) (rest args))) + (t/log! {:level :error :error (first args)} (fmt (second args) (nnext args))))) + +(defn fatalf [& args] + (if (string? (first args)) + (t/log! :fatal (fmt (first args) (rest args))) + (t/log! {:level :fatal :error (first args)} (fmt (second args) (nnext args))))) diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index ae0c353..31df2c1 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -1,11 +1,13 @@ (ns intemporal.internal.macros - (:require [cljs.analyzer.api :as api]) - ;[md5.core :as md5]) - #?(:clj (:require [net.cgrand.macrovich :as macros]) - ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) + (:require [cljs.analyzer.api :as api] + [promesa.core :as p]) + ;[md5.core :as md5]) + #?(:clj (:require [intemporal.internal.context :as ctx] + [net.cgrand.macrovich :as macros]) + ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) :cljs (:require-macros [net.cgrand.macrovich :as macros]))) - ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] - ;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) +;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] +;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) (def cljs-available? #?(:cljs @@ -25,7 +27,7 @@ long as side-effects are run via activities." [sym argv & body] (let [wname (symbol (str sym "-"))] - ;sig (md5/string->md5-hex (str body))] + ;sig (md5/string->md5-hex (str body))] ;; TODO save signature `(do (defn- ~wname ~argv (do ~@body)) @@ -74,12 +76,12 @@ `(~sname [this# ~@args] (let [aid# '~qname act-opts# ~(first opts) - sym# (symbol aid#) + sym# (symbol aid#) ;aid# ;; >> doesn't work! ;; protos are not reified like in clj https://clojurescript.org/about/differences#_protocols ;; we create a "fake" fvar that can be invokeable just like the real thing - f# (fn [& impl+args#] (apply ~qname impl+args#)) - args# [~@args]])))))) + f# (fn [& impl+args#] (apply ~qname impl+args#)) + args# [~@args]])))))) :clj #_{:clj-kondo/ignore [:unresolved-symbol]} @@ -103,6 +105,6 @@ `(~sname [this# ~@args] (let [aid# '~qname act-opts# ~(first opts) - sym# (symbol aid#) - f# (var-get (requiring-resolve aid#)) - args# [~@args]]))))))) + sym# (symbol aid#) + f# (var-get (requiring-resolve aid#)) + args# [~@args]]))))))) diff --git a/src/intemporal/internal/runtime.cljs b/src/intemporal/internal/runtime.cljs index 46fc425..ed652d7 100644 --- a/src/intemporal/internal/runtime.cljs +++ b/src/intemporal/internal/runtime.cljs @@ -165,8 +165,9 @@ timeout (or timeout-ms default-timeout-ms)] (if (nil? act) (js/Promise.reject - (ex-info "Activity not found" - {:activity-name activity-name})) + (ex-info (str "Activity xxx not found " (keys @registry-atom)) {:activity-name activity-name :known-activities (keys @registry-atom)}) + #_(ex-info "Activity not found" + {:activity-name activity-name})) ;; Execute with optional retry (execute-activity-with-retry (:fn act) diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs index 0e1a1c3..125a4c8 100644 --- a/test/intemporal/tests/deleteme_test.cljs +++ b/test/intemporal/tests/deleteme_test.cljs @@ -1,15 +1,21 @@ (ns intemporal.tests.deleteme-test - (:require [cljs.test :refer [deftest is testing async]] + (:require [cljs.test :as t :refer [deftest is testing async]] [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-result]]) + [intemporal.internal.logging :as log] + [intemporal.tests.utils :refer [with-trace-logging]]) (:require-macros [intemporal.tests.utils :refer [with-result]])) +(t/use-fixtures :once with-trace-logging) + (defn noop-activity [x] x) (defn noop-flow [id] - (let [act (intemporal/stub #'noop-activity)] + (let [act (intemporal/stub noop-activity)] (act id))) +(log/with-mdc {:a 1} + (log/info "XXX")) + (deftest test-simple-workflow (testing "simplest possible workflow" (let [engine (intemporal/make-workflow-engine :threads 2)] diff --git a/test/intemporal/tests/utils.cljc b/test/intemporal/tests/utils.cljc index 61f7ac0..9558a2c 100644 --- a/test/intemporal/tests/utils.cljc +++ b/test/intemporal/tests/utils.cljc @@ -2,10 +2,14 @@ #?(:cljs (:require [intemporal.store :as store] [promesa.core :as p] [cljs.test :as t] - [cljs.pprint :as pprint])) + [cljs.pprint :as pprint] + [taoensso.telemere :as telemere] + [taoensso.telemere.utils :as tutils])) #?(:clj (:require [promesa.core :as p] [net.cgrand.macrovich :as macros] - [clojure.pprint :as pprint])) + [clojure.pprint :as pprint] + [taoensso.telemere :as telemere] + [taoensso.telemere.utils :as tutils])) #?(:cljs (:require-macros [net.cgrand.macrovich :as macros] [intemporal.tests.utils :refer [with-result]])) #?(:clj (:import [java.util.concurrent TimeoutException]))) @@ -42,3 +46,17 @@ (p/then (fn [~res] ~@body)) (p/catch (fn [err#] (let [~res err#] ~@body))) (p/finally (fn [] (~done))))))))) + +(defn setup-telemere [] + ;#?(:clj (clojure.pprint/pprint (telemere/check-interop))) + (telemere/set-min-level! :trace) + (telemere/remove-handler! ::custom) + (telemere/add-handler! ::custom + (telemere/handler:console + {:output-fn + (tutils/format-signal-fn + {:content-fn (taoensso.telemere.utils/signal-content-fn {:incl-keys #{:thread}})})}))) + +(def with-trace-logging + #?(:cljs {:before setup-telemere} + :clj (fn with-trace-logging [f] (setup-telemere) (f)))) \ No newline at end of file From 5e023fd6ee72ffea7edce22c4de4f689addae815 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Fri, 13 Feb 2026 19:32:40 +0000 Subject: [PATCH 63/81] fix leak --- src/intemporal/internal/runtime.cljs | 27 +++++++++++++----------- test/intemporal/tests/deleteme_test.cljs | 3 --- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/intemporal/internal/runtime.cljs b/src/intemporal/internal/runtime.cljs index ed652d7..299d8d5 100644 --- a/src/intemporal/internal/runtime.cljs +++ b/src/intemporal/internal/runtime.cljs @@ -10,22 +10,25 @@ ;; Helper Functions ;; ============================================================================ -(defn- promise-timeout - "Create a promise that resolves with {:timeout true} after ms milliseconds" - [ms] - (js/Promise. - (fn [resolve _reject] - (js/setTimeout - #(resolve {::timeout true}) - ms)))) - (defn- promise-with-timeout "Execute promise-fn with optional timeout. If timeout-ms is provided, - races the promise against a timeout promise." + races the promise against a timeout promise. + Clears the timeout timer when the race settles to avoid keeping the + Node.js event loop alive." [promise-fn timeout-ms] (if timeout-ms - (js/Promise.race - #js [promise-fn (promise-timeout timeout-ms)]) + (let [timer-id (atom nil) + timeout-p (js/Promise. + (fn [resolve _] + (reset! timer-id + (js/setTimeout #(resolve {::timeout true}) timeout-ms))))] + (-> (js/Promise.race #js [promise-fn timeout-p]) + (.then (fn [result] + (when-let [id @timer-id] (js/clearTimeout id)) + result)) + (.catch (fn [err] + (when-let [id @timer-id] (js/clearTimeout id)) + (throw err))))) promise-fn)) (defn- async-sleep diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs index 125a4c8..7867d3d 100644 --- a/test/intemporal/tests/deleteme_test.cljs +++ b/test/intemporal/tests/deleteme_test.cljs @@ -13,9 +13,6 @@ (let [act (intemporal/stub noop-activity)] (act id))) -(log/with-mdc {:a 1} - (log/info "XXX")) - (deftest test-simple-workflow (testing "simplest possible workflow" (let [engine (intemporal/make-workflow-engine :threads 2)] From 0c26644c70e7d7719567163178dd0398e71d7ff2 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 14 Feb 2026 00:44:52 +0000 Subject: [PATCH 64/81] support protos --- doc/intemporal/automata.cljs | 50 +- doc/intemporal/doc.cljs | 30 +- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 608 +-- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/cljs-runtime/intemporal.store.js | 1329 +----- .../js/cljs-runtime/intemporal.store.js.map | 2 +- public/js/cljs-runtime/taoensso.encore.js | 3845 +++++++++-------- public/js/cljs-runtime/taoensso.encore.js.map | 2 +- public/js/cljs-runtime/taoensso.truss.impl.js | 108 +- .../cljs-runtime/taoensso.truss.impl.js.map | 2 +- public/js/cljs-runtime/taoensso.truss.js | 179 +- public/js/cljs-runtime/taoensso.truss.js.map | 2 +- public/js/main.js | 2 +- public/js/manifest.edn | 2 +- public/js/shared.js | 58 +- src/intemporal/core.cljc | 9 +- src/intemporal/internal/activity.cljc | 22 + .../internal/fns/start_workflow.clj | 8 +- src/intemporal/internal/macros.cljc | 17 +- test/intemporal/tests/async_test.cljs | 4 +- test/intemporal/tests/protocol_test.clj | 33 + test/intemporal/tests/stub_protocol_test.clj | 27 + test/logback.xml | 4 +- 24 files changed, 2622 insertions(+), 3725 deletions(-) create mode 100644 test/intemporal/tests/protocol_test.clj create mode 100644 test/intemporal/tests/stub_protocol_test.clj diff --git a/doc/intemporal/automata.cljs b/doc/intemporal/automata.cljs index d802e2b..b2d0d83 100644 --- a/doc/intemporal/automata.cljs +++ b/doc/intemporal/automata.cljs @@ -1,11 +1,9 @@ (ns intemporal.automata - (:require [intemporal.store :as s] - [intemporal.workflow :as w] - [promesa.core :as p] + (:require [promesa.core :as p] + [intemporal.core :as intemporal] [intemporal.fsm :as fsm] [hiccups.runtime :as hiccupsrt]) - (:require-macros [intemporal.macros :refer [stub-function stub-protocol defn-workflow env-let]] - [hiccups.core :as hiccups :refer [html]])) + (:require-macros [hiccups.core :as hiccups :refer [html]])) ;;;; ;; main code @@ -43,21 +41,15 @@ ;;;; ;; workflow registration -(defn-workflow run-fsm-workflow - [rules init-state init-event] - (let [stub (stub-function process-event) - initstate {::fsm/rules rules ::fsm/state init-state} - ;; capture the env before chaining promises - env (w/current-env)] +(defn run-fsm-workflow [rules init-state init-event] + (let [stub (intemporal/stub process-event) + initstate {::fsm/rules rules ::fsm/state init-state}] (p/loop [state initstate evt init-event] (if evt (p/recur (fsm/transit state evt) - ;; because we may end up in another "thread" we may loose the dynamic *env* - ;; so we need to set it up again - (w/with-env env - (stub evt))) + (stub evt)) (::fsm/state state))))) ;;;; @@ -88,11 +80,9 @@ tbody])] (set-html! id tbl))) - -(defn render-tables! [the-store] - (let [tasks (s/list-tasks the-store) - events (->> (s/list-events the-store) - (sort-by :id))] +(defn render-tables! [engine wf-id] + (let [history (intemporal/get-workflow-history (:store engine) wf-id)] + #_#_#_#_ (render-table! "tasks" tasks) (render-table! "events" events) (js/console.table (clj->js tasks)) @@ -101,22 +91,22 @@ ;;;; ;; bootstrap (defn init [] - (let [mstore (s/make-store) - stop (w/start-worker! mstore) - res (w/with-env {:store mstore} - (run-fsm-workflow resource-rules :state/init :event/create))] + (p/let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true) + res (intemporal/start-workflow engine run-fsm-workflow [resource-rules :state/init :event/create] + :workflow-id "my-wflow")] ;; set-results! - (-> res + (-> (:result res) (p/then (fn [r] - (js/console.log "res" r) - (set-results! (prn-str r)) - (render-tables! mstore))) + (js/console.log "res" (clj->js r)) + ;(set-results! (prn-str r)) + ;(render-tables! engine "my-wflow") + )) (p/catch (fn [r] (js/console.error "error" r) - (set-results! (prn-str r)))) - (p/finally (fn [_ _] (stop)))))) + ;(set-results! (prn-str r) + ))))) (comment (require '[shadow.cljs.devtools.api :as shadow]) diff --git a/doc/intemporal/doc.cljs b/doc/intemporal/doc.cljs index 2c37a8a..785310c 100644 --- a/doc/intemporal/doc.cljs +++ b/doc/intemporal/doc.cljs @@ -1,10 +1,8 @@ (ns intemporal.doc - (:require [intemporal.store :as s] - [intemporal.workflow :as w] + (:require [intemporal.core :as intemporal] [promesa.core :as p] [hiccups.runtime :as hiccupsrt]) - (:require-macros [intemporal.macros :refer [stub-function stub-protocol defn-workflow]] - [hiccups.core :as hiccups :refer [html]])) + (:require-macros [hiccups.core :as hiccups :refer [html]])) ;;;; ;; main code @@ -12,7 +10,7 @@ [a :nested]) (defn activity-fn [a] - (let [f (stub-function nested-fn)] + #_(let [f (intemporal/stub nested-fn)] (f :sub))) (defprotocol MyActivities @@ -22,8 +20,8 @@ MyActivities (foo [this a] (println "record was called:" ) [a :child])) -(defn-workflow my-workflow [i] - (let [sf (stub-function activity-fn) +(defn my-workflow [i] + (let [sf (intemporal/stub activity-fn) pr (stub-protocol MyActivities {}) sres (sf [1]) @@ -34,8 +32,6 @@ v1 v2)))) -(def mstore (s/make-store)) -(def stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}})) ;;;; ;; workflow registration @@ -64,11 +60,9 @@ tbody])] (set-html! id tbl))) - -(defn render-tables! [the-store] - (let [tasks (s/list-tasks mstore) - events (->> (s/list-events mstore) - (sort-by :id))] +(defn render-tables! [engine wf-id] + (let [history (intemporal/get-workflow-history (:store engine) wf-id)] + #_#_#_#_ (render-table! "tasks" tasks) (render-table! "events" events) (js/console.table (clj->js tasks)) @@ -77,15 +71,15 @@ ;;;; ;; bootstrap (defn init [] - (let [res (w/with-env {:store mstore} - (my-workflow 1))] + (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true) + res (intemporal/start-workflow engine my-workflow [1] :workflow-id "my-wflow")] ;; set-results! (-> res (p/then (fn [r] - (js/console.log "res" r) + (js/console.log "res" (clj->js r)) (set-results! (prn-str r)) - (render-tables! mstore))) + (render-tables! engine "my-wflow"))) (p/catch (fn [r] (js/console.error "error" r) diff --git a/public/js/automata.js b/public/js/automata.js index 53f1e39..bcae50e 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__57302 \x3d cljs.core._EQ_;\nvar expr__57303 \x3d event;\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__57302.cljs$core$IFn$_invoke$arity$2 ? pred__57302.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__57303) : pred__57302.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__57303)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow_ \x3d (function intemporal$automata$run_fsm_workflow_(rules,init_state,init_event){\nvar stub \x3d (function() { \nvar G__57380__delegate \x3d function (argv__56956__auto__){\nif((!((new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_) \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22No next-id function, are you inside `defn-workflow`?\x22,\x22\\n\x22,\x22(clojure.core/some? (:next-id intemporal.workflow.internal/*env*))\x22].join(\x27\x27)));\n}\n\nvar ref__56957__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56958__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar fvar__56959__auto__ \x3d new cljs.core.Var(function(){return intemporal.automata.process_event;},new cljs.core.Symbol(\x22intemporal.automata\x22,\x22process-event\x22,\x22intemporal.automata/process-event\x22,-1645671854,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(null,\x22intemporal.automata\x22,\x22intemporal.automata\x22,1148200861,null),new cljs.core.Symbol(null,\x22process-event\x22,\x22process-event\x22,-641768871,null),\x22intemporal/automata.cljs\x22,20,1,30,30,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22event\x22,\x22event\x22,1941966969,null)], null)),null,(cljs.core.truth_(intemporal.automata.process_event)?intemporal.automata.process_event.cljs$lang$test:null)]));\nvar store__56960__auto__ \x3d new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar protos__56961__auto__ \x3d new cljs.core.Keyword(null,\x22protos\x22,\x22protos\x22,-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56962__auto__ \x3d (function (){var fexpr__57316 \x3d new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nreturn (fexpr__57316.cljs$core$IFn$_invoke$arity$0 ? fexpr__57316.cljs$core$IFn$_invoke$arity$0() : fexpr__57316.call(null));\n})();\nvar ref__56957__auto____$1 \x3d null;\nvar task__56963__auto__ \x3d intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6(ref__56957__auto____$1,root__56958__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56959__auto__),fvar__56959__auto__,argv__56956__auto__,id__56962__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.automata\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56963__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id \x22,id__56962__auto__], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar res__56964__auto__ \x3d intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56960__auto__,protos__56961__auto__,task__56963__auto__);\nreturn res__56964__auto__;\n};\nvar G__57380 \x3d function (var_args){\nvar argv__56956__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__57382__i \x3d 0, G__57382__a \x3d new Array(arguments.length - 0);\nwhile (G__57382__i \x3c G__57382__a.length) {G__57382__a[G__57382__i] \x3d arguments[G__57382__i + 0]; ++G__57382__i;}\n argv__56956__auto__ \x3d new cljs.core.IndexedSeq(G__57382__a,0,null);\n} \nreturn G__57380__delegate.call(this,argv__56956__auto__);};\nG__57380.cljs$lang$maxFixedArity \x3d 0;\nG__57380.cljs$lang$applyTo \x3d (function (arglist__57384){\nvar argv__56956__auto__ \x3d cljs.core.seq(arglist__57384);\nreturn G__57380__delegate(argv__56956__auto__);\n});\nG__57380.cljs$core$IFn$_invoke$arity$variadic \x3d G__57380__delegate;\nreturn G__57380;\n})()\n;\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nvar env \x3d intemporal.workflow.current_env();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_57324,reject_fn_57323){\nvar loop_fn_57320 \x3d (function intemporal$automata$run_fsm_workflow__$_loop_fn_57320(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_57321,err_57322){\nif((!((err_57322 \x3d\x3d null)))){\nreturn (reject_fn_57323.cljs$core$IFn$_invoke$arity$1 ? reject_fn_57323.cljs$core$IFn$_invoke$arity$1(err_57322) : reject_fn_57323.call(null,err_57322));\n} else {\nif(promesa.core.recur_QMARK_(res_57321)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow__$_loop_fn_57320,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_57321));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_57324.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_57324.cljs$core$IFn$_invoke$arity$1(res_57321) : resolve_fn_57324.call(null,res_57321));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___49992__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),(function (){var _STAR_env_STAR__orig_val__57327 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__57328 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,env], 0));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__57328);\n\ntry{return stub(evt__$1);\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__57327);\n}})()], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_57320(initstate,init_event);\n})));\n}));\n});\n\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar ref__56946__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56947__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56948__auto__ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.workflow.internal.random_id();\n}\n})();\nvar fvar__56949__auto__ \x3d new cljs.core.Var(function(){return intemporal.automata.run_fsm_workflow_;},new cljs.core.Symbol(\x22intemporal.automata\x22,\x22run-fsm-workflow-\x22,\x22intemporal.automata/run-fsm-workflow-\x22,-1960876937,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[true,new cljs.core.Symbol(null,\x22intemporal.automata\x22,\x22intemporal.automata\x22,1148200861,null),new cljs.core.Symbol(null,\x22run-fsm-workflow-\x22,\x22run-fsm-workflow-\x22,-808887186,null),\x22intemporal/automata.cljs\x22,1,46,cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22rules\x22,\x22rules\x22,-1455523403,null),new cljs.core.Symbol(null,\x22init-state\x22,\x22init-state\x22,-1203572557,null),new cljs.core.Symbol(null,\x22init-event\x22,\x22init-event\x22,-424164889,null)], null)),null,(cljs.core.truth_(intemporal.automata.run_fsm_workflow_)?intemporal.automata.run_fsm_workflow_.cljs$lang$test:null)]));\nvar task__56950__auto__ \x3d intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$6(ref__56946__auto__,root__56947__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56949__auto__),fvar__56949__auto__,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [rules,init_state,init_event], null),id__56948__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.automata\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56950__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task__56950__auto__)], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.workflow.enqueue_and_wait(intemporal.workflow.internal._STAR_env_STAR_,task__56950__auto__);\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.set_results_BANG_ \x3d (function intemporal$automata$set_results_BANG_(html){\nreturn intemporal.automata.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__57333(s__57334){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57334__$1 \x3d s__57334;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__57334__$1);\nif(temp__5825__auto__){\nvar s__57334__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__57334__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57334__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57336 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57335 \x3d (0);\nwhile(true){\nif((i__57335 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__57335);\ncljs.core.chunk_append(b__57336,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__57387 \x3d (i__57335 + (1));\ni__57335 \x3d G__57387;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57336),intemporal$automata$render_table_BANG__$_iter__57333(cljs.core.chunk_rest(s__57334__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57336),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57334__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__57333(cljs.core.rest(s__57334__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__57341(s__57342){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57342__$1 \x3d s__57342;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__57342__$1);\nif(temp__5825__auto__){\nvar s__57342__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__57342__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57342__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57344 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57343 \x3d (0);\nwhile(true){\nif((i__57343 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__57343);\ncljs.core.chunk_append(b__57344,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__57343,r,c__5501__auto__,size__5502__auto__,b__57344,s__57342__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57353(s__57354){\nreturn (new cljs.core.LazySeq(null,((function (i__57343,r,c__5501__auto__,size__5502__auto__,b__57344,s__57342__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__57354__$1 \x3d s__57354;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__57354__$1);\nif(temp__5825__auto____$1){\nvar s__57354__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__57354__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__57354__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__57356 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__57355 \x3d (0);\nwhile(true){\nif((i__57355 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__57355);\ncljs.core.chunk_append(b__57356,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__57388 \x3d (i__57355 + (1));\ni__57355 \x3d G__57388;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57356),intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57353(cljs.core.chunk_rest(s__57354__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57356),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57354__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57353(cljs.core.rest(s__57354__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__57343,r,c__5501__auto__,size__5502__auto__,b__57344,s__57342__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__57343,r,c__5501__auto__,size__5502__auto__,b__57344,s__57342__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__57389 \x3d (i__57343 + (1));\ni__57343 \x3d G__57389;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57344),intemporal$automata$render_table_BANG__$_iter__57341(cljs.core.chunk_rest(s__57342__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57344),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__57342__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__57342__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57361(s__57362){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57362__$1 \x3d s__57362;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__57362__$1);\nif(temp__5825__auto____$1){\nvar s__57362__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__57362__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57362__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57364 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57363 \x3d (0);\nwhile(true){\nif((i__57363 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__57363);\ncljs.core.chunk_append(b__57364,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__57390 \x3d (i__57363 + (1));\ni__57363 \x3d G__57390;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57364),intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57361(cljs.core.chunk_rest(s__57362__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57364),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57362__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__57341_$_iter__57361(cljs.core.rest(s__57362__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__57342__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__57341(cljs.core.rest(s__57342__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(the_store){\nvar tasks \x3d intemporal.store.list_tasks(the_store);\nvar events \x3d cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),intemporal.store.list_events(the_store));\nintemporal.automata.render_table_BANG_(\x22tasks\x22,tasks);\n\nintemporal.automata.render_table_BANG_(\x22events\x22,events);\n\nconsole.table(cljs.core.clj__GT_js(tasks));\n\nreturn console.table(cljs.core.clj__GT_js(events));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar mstore \x3d intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0();\nvar stop \x3d intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$1(mstore);\nvar res \x3d (function (){var _STAR_env_STAR__orig_val__57370 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__57371 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),mstore], null)], 0));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__57371);\n\ntry{return intemporal.automata.run_fsm_workflow(intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250));\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__57370);\n}})();\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,r);\n\nintemporal.automata.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.automata.render_tables_BANG_(mstore);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.automata.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n})),stop);\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__40866 \x3d cljs.core._EQ_;\nvar expr__40867 \x3d event;\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_40873,reject_fn_40872){\nvar loop_fn_40869 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_40869(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_40870,err_40871){\nif((!((err_40871 \x3d\x3d null)))){\nreturn (reject_fn_40872.cljs$core$IFn$_invoke$arity$1 ? reject_fn_40872.cljs$core$IFn$_invoke$arity$1(err_40871) : reject_fn_40872.call(null,err_40871));\n} else {\nif(promesa.core.recur_QMARK_(res_40870)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_40869,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_40870));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_40873.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_40873.cljs$core$IFn$_invoke$arity$1(res_40870) : resolve_fn_40873.call(null,res_40870));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_40869(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.set_results_BANG_ \x3d (function intemporal$automata$set_results_BANG_(html){\nreturn intemporal.automata.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__40874(s__40875){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40875__$1 \x3d s__40875;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__40875__$1);\nif(temp__5825__auto__){\nvar s__40875__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__40875__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40875__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40877 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40876 \x3d (0);\nwhile(true){\nif((i__40876 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__40876);\ncljs.core.chunk_append(b__40877,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__40890 \x3d (i__40876 + (1));\ni__40876 \x3d G__40890;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40877),intemporal$automata$render_table_BANG__$_iter__40874(cljs.core.chunk_rest(s__40875__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40877),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40875__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__40874(cljs.core.rest(s__40875__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__40878(s__40879){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40879__$1 \x3d s__40879;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__40879__$1);\nif(temp__5825__auto__){\nvar s__40879__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__40879__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40879__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40881 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40880 \x3d (0);\nwhile(true){\nif((i__40880 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__40880);\ncljs.core.chunk_append(b__40881,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(s__40883){\nreturn (new cljs.core.LazySeq(null,((function (i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__40883__$1 \x3d s__40883;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__40883__$1);\nif(temp__5825__auto____$1){\nvar s__40883__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__40883__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__40883__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__40885 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__40884 \x3d (0);\nwhile(true){\nif((i__40884 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__40884);\ncljs.core.chunk_append(b__40885,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__40891 \x3d (i__40884 + (1));\ni__40884 \x3d G__40891;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40885),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(cljs.core.chunk_rest(s__40883__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40885),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40883__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(cljs.core.rest(s__40883__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__40892 \x3d (i__40880 + (1));\ni__40880 \x3d G__40892;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40881),intemporal$automata$render_table_BANG__$_iter__40878(cljs.core.chunk_rest(s__40879__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40881),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__40879__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(s__40887){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40887__$1 \x3d s__40887;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__40887__$1);\nif(temp__5825__auto____$1){\nvar s__40887__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__40887__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40887__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40889 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40888 \x3d (0);\nwhile(true){\nif((i__40888 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__40888);\ncljs.core.chunk_append(b__40889,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__40893 \x3d (i__40888 + (1));\ni__40888 \x3d G__40893;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40889),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(cljs.core.chunk_rest(s__40887__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40889),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40887__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(cljs.core.rest(s__40887__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__40879__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__40878(cljs.core.rest(s__40879__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0))),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0))),(function (res){\nreturn promesa.protocols._promise(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})),(function (r){\nreturn console.error(\x22error\x22,r);\n})));\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index aeaaad2..6ab7151 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -3,92 +3,7 @@ intemporal.doc.nested_fn = (function intemporal$doc$nested_fn(a){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,"nested","nested",18943849)], null); }); intemporal.doc.activity_fn = (function intemporal$doc$activity_fn(a){ -var f = (function() { -var G__57429__delegate = function (argv__56956__auto__){ -if((!((new cljs.core.Keyword(null,"next-id","next-id",-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_) == null)))){ -} else { -throw (new Error(["Assert failed: ","No next-id function, are you inside `defn-workflow`?","\n","(clojure.core/some? (:next-id intemporal.workflow.internal/*env*))"].join(''))); -} - -var ref__56957__auto__ = new cljs.core.Keyword(null,"ref","ref",1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var root__56958__auto__ = new cljs.core.Keyword(null,"root","root",-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var fvar__56959__auto__ = new cljs.core.Var(function(){return intemporal.doc.nested_fn;},new cljs.core.Symbol("intemporal.doc","nested-fn","intemporal.doc/nested-fn",-804060883,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,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"nested-fn","nested-fn",1357386556,null),"intemporal/doc.cljs",16,1,11,11,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.nested_fn)?intemporal.doc.nested_fn.cljs$lang$test:null)])); -var store__56960__auto__ = new cljs.core.Keyword(null,"store","store",1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var protos__56961__auto__ = new cljs.core.Keyword(null,"protos","protos",-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var id__56962__auto__ = (function (){var fexpr__57391 = new cljs.core.Keyword(null,"next-id","next-id",-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -return (fexpr__57391.cljs$core$IFn$_invoke$arity$0 ? fexpr__57391.cljs$core$IFn$_invoke$arity$0() : fexpr__57391.call(null)); -})(); -var ref__56957__auto____$1 = null; -var task__56963__auto__ = intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6(ref__56957__auto____$1,root__56958__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56959__auto__),fvar__56959__auto__,argv__56956__auto__,id__56962__auto__); -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.doc"; -var __id = null; -var __level = new cljs.core.Keyword(null,"debug","debug",-1608172596); -if(cljs.core.truth_((function (){var sf = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf)){ -return (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (function (){var signal__52359__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"_data","_data",-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"task","task",-1476607993),task__56963__auto__,new cljs.core.Keyword(null,"env","env",-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Invoking task with id ",id__56962__auto__], null)); -}),null)),null,null,null,null,null,null,null,null)); -return cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs); -})(); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { return null; -} -})(); - - -var res__56964__auto__ = intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56960__auto__,protos__56961__auto__,task__56963__auto__); -return res__56964__auto__; -}; -var G__57429 = function (var_args){ -var argv__56956__auto__ = null; -if (arguments.length > 0) { -var G__57430__i = 0, G__57430__a = new Array(arguments.length - 0); -while (G__57430__i < G__57430__a.length) {G__57430__a[G__57430__i] = arguments[G__57430__i + 0]; ++G__57430__i;} - argv__56956__auto__ = new cljs.core.IndexedSeq(G__57430__a,0,null); -} -return G__57429__delegate.call(this,argv__56956__auto__);}; -G__57429.cljs$lang$maxFixedArity = 0; -G__57429.cljs$lang$applyTo = (function (arglist__57431){ -var argv__56956__auto__ = cljs.core.seq(arglist__57431); -return G__57429__delegate(argv__56956__auto__); -}); -G__57429.cljs$core$IFn$_invoke$arity$variadic = G__57429__delegate; -return G__57429; -})() -; -return f(new cljs.core.Keyword(null,"sub","sub",-2093760025)); }); /** @@ -96,7 +11,7 @@ return f(new cljs.core.Keyword(null,"sub","sub",-2093760025)); */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_57432 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_41034 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -114,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_57432(this$,a); +return intemporal$doc$MyActivities$foo$dyn_41034(this$,a); } }); @@ -151,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k57393,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k41003,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__57397 = k57393; -switch (G__57397) { +var G__41007 = k41003; +switch (G__41007) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k57393,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k41003,else__5326__auto__); } })); @@ -165,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k57393,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__57398){ -var vec__57399 = p__57398; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__57399,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__57399,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__41008){ +var vec__41009 = p__41008; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -182,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__57392){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__41002){ var self__ = this; -var G__57392__$1 = this; -return (new cljs.core.RecordIter((0),G__57392__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__41002__$1 = this; +return (new cljs.core.RecordIter((0),G__41002__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -222,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this57394,other57395){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this41004,other41005){ var self__ = this; -var this57394__$1 = this; -return (((!((other57395 == null)))) && ((((this57394__$1.constructor === other57395.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this57394__$1.__extmap,other57395.__extmap))))); +var this41004__$1 = this; +return (((!((other41005 == null)))) && ((((this41004__$1.constructor === other41005.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this41004__$1.__extmap,other41005.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -238,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k57393){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k41003){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k57393); +return cljs.core.contains_QMARK_(self__.__extmap,k41003); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__57392){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__41002){ var self__ = this; var this__5331__auto____$1 = this; -var pred__57402 = cljs.core.keyword_identical_QMARK_; -var expr__57403 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__57392),null)); +var pred__41012 = cljs.core.keyword_identical_QMARK_; +var expr__41013 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__41002),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -258,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__57392){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__41002){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__57392,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__41002,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -308,240 +223,26 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__57396){ -var extmap__5365__auto__ = (function (){var G__57405 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__57396); -if(cljs.core.record_QMARK_(G__57396)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__57405); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__41006){ +var extmap__5365__auto__ = (function (){var G__41015 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__41006); +if(cljs.core.record_QMARK_(G__41006)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__41015); } else { -return G__57405; +return G__41015; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); }); - -/** -* @constructor - * @implements {intemporal.doc.MyActivities} - * @implements {cljs.core.IMeta} - * @implements {cljs.core.IWithMeta} -*/ -intemporal.doc.t_intemporal$doc57407 = (function (i,sf,meta57408){ -this.i = i; -this.sf = sf; -this.meta57408 = meta57408; -this.cljs$lang$protocol_mask$partition0$ = 393216; -this.cljs$lang$protocol_mask$partition1$ = 0; -}); -(intemporal.doc.t_intemporal$doc57407.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_57409,meta57408__$1){ -var self__ = this; -var _57409__$1 = this; -return (new intemporal.doc.t_intemporal$doc57407(self__.i,self__.sf,meta57408__$1)); -})); - -(intemporal.doc.t_intemporal$doc57407.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_57409){ -var self__ = this; -var _57409__$1 = this; -return self__.meta57408; -})); - -(intemporal.doc.t_intemporal$doc57407.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); - -(intemporal.doc.t_intemporal$doc57407.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__56970__auto__,a){ -var self__ = this; -var this__56970__auto____$1 = this; -var aid__56971__auto__ = new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null); -var act_opts__56972__auto__ = cljs.core.PersistentArrayMap.EMPTY; -var ref__56973__auto__ = new cljs.core.Keyword(null,"ref","ref",1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var root__56974__auto__ = new cljs.core.Keyword(null,"root","root",-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var store__56975__auto__ = new cljs.core.Keyword(null,"store","store",1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var protos__56976__auto__ = new cljs.core.Keyword(null,"protos","protos",-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var id__56977__auto__ = (function (){var fexpr__57410 = new cljs.core.Keyword(null,"next-id","next-id",-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -return (fexpr__57410.cljs$core$IFn$_invoke$arity$0 ? fexpr__57410.cljs$core$IFn$_invoke$arity$0() : fexpr__57410.call(null)); -})(); -var ref__56973__auto____$1 = null; -var task__56978__auto__ = intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$7(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1("intemporal.doc/MyActivities"),ref__56973__auto____$1,root__56974__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(aid__56971__auto__),(function() { -var G__57434__delegate = function (impl_PLUS_args__56979__auto__){ -return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal.doc.foo,impl_PLUS_args__56979__auto__); -}; -var G__57434 = function (var_args){ -var impl_PLUS_args__56979__auto__ = null; -if (arguments.length > 0) { -var G__57435__i = 0, G__57435__a = new Array(arguments.length - 0); -while (G__57435__i < G__57435__a.length) {G__57435__a[G__57435__i] = arguments[G__57435__i + 0]; ++G__57435__i;} - impl_PLUS_args__56979__auto__ = new cljs.core.IndexedSeq(G__57435__a,0,null); -} -return G__57434__delegate.call(this,impl_PLUS_args__56979__auto__);}; -G__57434.cljs$lang$maxFixedArity = 0; -G__57434.cljs$lang$applyTo = (function (arglist__57436){ -var impl_PLUS_args__56979__auto__ = cljs.core.seq(arglist__57436); -return G__57434__delegate(impl_PLUS_args__56979__auto__); -}); -G__57434.cljs$core$IFn$_invoke$arity$variadic = G__57434__delegate; -return G__57434; -})() -,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [a], null),id__56977__auto__); -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.doc"; -var __id = null; -var __level = new cljs.core.Keyword(null,"debug","debug",-1608172596); -if(cljs.core.truth_((function (){var sf__$1 = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf__$1)){ -return (sf__$1.cljs$core$IFn$_invoke$arity$4 ? sf__$1.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf__$1.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (function (){var signal__52359__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"_data","_data",-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"task","task",-1476607993),task__56978__auto__,new cljs.core.Keyword(null,"env","env",-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Invoking task with id",id__56977__auto__], null)); -}),null)),null,null,null,null,null,null,null,null)); -return cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs); -})(); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { -return null; -} -})(); - - -return intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56975__auto__,protos__56976__auto__,task__56978__auto__); -})); - -(intemporal.doc.t_intemporal$doc57407.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"meta57408","meta57408",-2004347558,null)], null); -})); - -(intemporal.doc.t_intemporal$doc57407.cljs$lang$type = true); - -(intemporal.doc.t_intemporal$doc57407.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc57407"); - -(intemporal.doc.t_intemporal$doc57407.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc57407"); -})); - -/** - * Positional factory function for intemporal.doc/t_intemporal$doc57407. - */ -intemporal.doc.__GT_t_intemporal$doc57407 = (function intemporal$doc$__GT_t_intemporal$doc57407(i,sf,meta57408){ -return (new intemporal.doc.t_intemporal$doc57407(i,sf,meta57408)); -}); - - -intemporal.doc.my_workflow_ = (function intemporal$doc$my_workflow_(i){ -var sf = (function() { -var G__57437__delegate = function (argv__56956__auto__){ -if((!((new cljs.core.Keyword(null,"next-id","next-id",-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_) == null)))){ -} else { -throw (new Error(["Assert failed: ","No next-id function, are you inside `defn-workflow`?","\n","(clojure.core/some? (:next-id intemporal.workflow.internal/*env*))"].join(''))); -} - -var ref__56957__auto__ = new cljs.core.Keyword(null,"ref","ref",1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var root__56958__auto__ = new cljs.core.Keyword(null,"root","root",-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var fvar__56959__auto__ = new cljs.core.Var(function(){return intemporal.doc.activity_fn;},new cljs.core.Symbol("intemporal.doc","activity-fn","intemporal.doc/activity-fn",1417063461,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,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"activity-fn","activity-fn",-716588492,null),"intemporal/doc.cljs",18,1,14,14,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.activity_fn)?intemporal.doc.activity_fn.cljs$lang$test:null)])); -var store__56960__auto__ = new cljs.core.Keyword(null,"store","store",1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var protos__56961__auto__ = new cljs.core.Keyword(null,"protos","protos",-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var id__56962__auto__ = (function (){var fexpr__57406 = new cljs.core.Keyword(null,"next-id","next-id",-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -return (fexpr__57406.cljs$core$IFn$_invoke$arity$0 ? fexpr__57406.cljs$core$IFn$_invoke$arity$0() : fexpr__57406.call(null)); -})(); -var ref__56957__auto____$1 = null; -var task__56963__auto__ = intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6(ref__56957__auto____$1,root__56958__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56959__auto__),fvar__56959__auto__,argv__56956__auto__,id__56962__auto__); -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.doc"; -var __id = null; -var __level = new cljs.core.Keyword(null,"debug","debug",-1608172596); -if(cljs.core.truth_((function (){var sf = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf)){ -return (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (function (){var signal__52359__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"_data","_data",-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"task","task",-1476607993),task__56963__auto__,new cljs.core.Keyword(null,"env","env",-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Invoking task with id ",id__56962__auto__], null)); -}),null)),null,null,null,null,null,null,null,null)); -return cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs); -})(); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { -return null; -} +intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ +var sf = intemporal.core.stub(intemporal.doc.activity_fn); +var pr = (function (){var G__41016 = intemporal.doc.MyActivities; +var G__41017 = cljs.core.PersistentArrayMap.EMPTY; +return (intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2 ? intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2(G__41016,G__41017) : intemporal.doc.stub_protocol.call(null,G__41016,G__41017)); })(); - - -var res__56964__auto__ = intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56960__auto__,protos__56961__auto__,task__56963__auto__); -return res__56964__auto__; -}; -var G__57437 = function (var_args){ -var argv__56956__auto__ = null; -if (arguments.length > 0) { -var G__57438__i = 0, G__57438__a = new Array(arguments.length - 0); -while (G__57438__i < G__57438__a.length) {G__57438__a[G__57438__i] = arguments[G__57438__i + 0]; ++G__57438__i;} - argv__56956__auto__ = new cljs.core.IndexedSeq(G__57438__a,0,null); -} -return G__57437__delegate.call(this,argv__56956__auto__);}; -G__57437.cljs$lang$maxFixedArity = 0; -G__57437.cljs$lang$applyTo = (function (arglist__57439){ -var argv__56956__auto__ = cljs.core.seq(arglist__57439); -return G__57437__delegate(argv__56956__auto__); -}); -G__57437.cljs$core$IFn$_invoke$arity$variadic = G__57437__delegate; -return G__57437; -})() -; -var pr = (new intemporal.doc.t_intemporal$doc57407(i,sf,null)); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); -var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); -return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___49992__auto__){ +var pres = intemporal.doc.foo(pr,new cljs.core.Keyword(null,"X","X",1705996313)); +return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){ return promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){ return promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){ return promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0))); @@ -549,71 +250,6 @@ return promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$var })); })); }); - -intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ -var ref__56946__auto__ = new cljs.core.Keyword(null,"ref","ref",1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var root__56947__auto__ = new cljs.core.Keyword(null,"root","root",-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -var id__56948__auto__ = (function (){var or__5025__auto__ = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return intemporal.workflow.internal.random_id(); -} -})(); -var fvar__56949__auto__ = new cljs.core.Var(function(){return intemporal.doc.my_workflow_;},new cljs.core.Symbol("intemporal.doc","my-workflow-","intemporal.doc/my-workflow-",-465347473,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"private","private",-558947994),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,"column","column",2078222095),new cljs.core.Keyword(null,"line","line",212345235),new cljs.core.Keyword(null,"arglists","arglists",1661989754),new cljs.core.Keyword(null,"doc","doc",1913296891),new cljs.core.Keyword(null,"test","test",577538877)],[true,new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"my-workflow-","my-workflow-",1668689560,null),"intemporal/doc.cljs",1,25,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null)], null)),null,(cljs.core.truth_(intemporal.doc.my_workflow_)?intemporal.doc.my_workflow_.cljs$lang$test:null)])); -var task__56950__auto__ = intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$6(ref__56946__auto__,root__56947__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56949__auto__),fvar__56949__auto__,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [i], null),id__56948__auto__); -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.doc"; -var __id = null; -var __level = new cljs.core.Keyword(null,"debug","debug",-1608172596); -if(cljs.core.truth_((function (){var sf = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf)){ -return (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (function (){var signal__52359__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"_data","_data",-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"task","task",-1476607993),task__56950__auto__,new cljs.core.Keyword(null,"env","env",-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Invoking task with id",new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(task__56950__auto__)], null)); -}),null)),null,null,null,null,null,null,null,null)); -return cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs); -})(); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { -return null; -} -})(); - - -return intemporal.workflow.enqueue_and_wait(intemporal.workflow.internal._STAR_env_STAR_,task__56950__auto__); -}); -intemporal.doc.mstore = intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0(); -intemporal.doc.stop_worker = intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$variadic(intemporal.doc.mstore,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"protocols","protocols",-5615896),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),intemporal.doc.__GT_MyActivitiesImpl()], null)], null)], 0)); intemporal.doc.set_html_BANG_ = (function intemporal$doc$set_html_BANG_(id,html){ return (document.getElementById(id).innerHTML = html); }); @@ -622,25 +258,25 @@ return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ var header = cljs.core.keys(cljs.core.first(rows)); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__57411(s__57412){ +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__41018(s__41019){ return (new cljs.core.LazySeq(null,(function (){ -var s__57412__$1 = s__57412; +var s__41019__$1 = s__41019; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__57412__$1); +var temp__5825__auto__ = cljs.core.seq(s__41019__$1); if(temp__5825__auto__){ -var s__57412__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__57412__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__57412__$2); +var s__41019__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__41019__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__41019__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__57414 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__57413 = (0); +var b__41021 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__41020 = (0); while(true){ -if((i__57413 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__57413); -cljs.core.chunk_append(b__57414,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__41020 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__41020); +cljs.core.chunk_append(b__41021,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__57440 = (i__57413 + (1)); -i__57413 = G__57440; +var G__41036 = (i__41020 + (1)); +i__41020 = G__41036; continue; } else { return true; @@ -648,13 +284,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__57414),intemporal$doc$render_table_BANG__$_iter__57411(cljs.core.chunk_rest(s__57412__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__41021),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.chunk_rest(s__41019__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__57414),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__41021),null); } } else { -var h = cljs.core.first(s__57412__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__57411(cljs.core.rest(s__57412__$2))); +var h = cljs.core.first(s__41019__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.rest(s__41019__$2))); } } else { return null; @@ -665,42 +301,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__57415(s__57416){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__41022(s__41023){ return (new cljs.core.LazySeq(null,(function (){ -var s__57416__$1 = s__57416; +var s__41023__$1 = s__41023; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__57416__$1); +var temp__5825__auto__ = cljs.core.seq(s__41023__$1); if(temp__5825__auto__){ -var s__57416__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__57416__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__57416__$2); +var s__41023__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__41023__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__41023__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__57418 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__57417 = (0); +var b__41025 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__41024 = (0); while(true){ -if((i__57417 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__57417); -cljs.core.chunk_append(b__57418,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(s__57420){ -return (new cljs.core.LazySeq(null,((function (i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead){ +if((i__41024 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__41024); +cljs.core.chunk_append(b__41025,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(s__41027){ +return (new cljs.core.LazySeq(null,((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__57420__$1 = s__57420; +var s__41027__$1 = s__41027; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__57420__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__41027__$1); if(temp__5825__auto____$1){ -var s__57420__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__57420__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__57420__$2); +var s__41027__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__41027__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__41027__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__57422 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__57421 = (0); +var b__41029 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__41028 = (0); while(true){ -if((i__57421 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__57421); -cljs.core.chunk_append(b__57422,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__41028 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__41028); +cljs.core.chunk_append(b__41029,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__57441 = (i__57421 + (1)); -i__57421 = G__57441; +var G__41037 = (i__41028 + (1)); +i__41028 = G__41037; continue; } else { return true; @@ -708,28 +344,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__57422),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(cljs.core.chunk_rest(s__57420__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__41029),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.chunk_rest(s__41027__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__57422),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__41029),null); } } else { -var h = cljs.core.first(s__57420__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(cljs.core.rest(s__57420__$2))); +var h = cljs.core.first(s__41027__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.rest(s__41027__$2))); } } else { return null; } break; } -});})(i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead)) +});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead)) +});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__57442 = (i__57417 + (1)); -i__57417 = G__57442; +var G__41038 = (i__41024 + (1)); +i__41024 = G__41038; continue; } else { return true; @@ -737,32 +373,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__57418),intemporal$doc$render_table_BANG__$_iter__57415(cljs.core.chunk_rest(s__57416__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__41025),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.chunk_rest(s__41023__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__57418),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__41025),null); } } else { -var r = cljs.core.first(s__57416__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (r,s__57416__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(s__57424){ +var r = cljs.core.first(s__41023__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (r,s__41023__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(s__41031){ return (new cljs.core.LazySeq(null,(function (){ -var s__57424__$1 = s__57424; +var s__41031__$1 = s__41031; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__57424__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__41031__$1); if(temp__5825__auto____$1){ -var s__57424__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__57424__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__57424__$2); +var s__41031__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__41031__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__41031__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__57426 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__57425 = (0); +var b__41033 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__41032 = (0); while(true){ -if((i__57425 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__57425); -cljs.core.chunk_append(b__57426,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__41032 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__41032); +cljs.core.chunk_append(b__41033,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__57443 = (i__57425 + (1)); -i__57425 = G__57443; +var G__41039 = (i__41032 + (1)); +i__41032 = G__41039; continue; } else { return true; @@ -770,13 +406,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__57426),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(cljs.core.chunk_rest(s__57424__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__41033),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.chunk_rest(s__41031__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__57426),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__41033),null); } } else { -var h = cljs.core.first(s__57424__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(cljs.core.rest(s__57424__$2))); +var h = cljs.core.first(s__41031__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.rest(s__41031__$2))); } } else { return null; @@ -784,10 +420,10 @@ return null; break; } }),null,null)); -});})(r,s__57416__$2,temp__5825__auto__,header,thead)) +});})(r,s__41023__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__57415(cljs.core.rest(s__57416__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.rest(s__41023__$2))); } } else { return null; @@ -801,31 +437,19 @@ return iter__5503__auto__(rows); var tbl = ["",cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),""].join(''); return intemporal.doc.set_html_BANG_(id,tbl); }); -intemporal.doc.render_tables_BANG_ = (function intemporal$doc$render_tables_BANG_(the_store){ -var tasks = intemporal.store.list_tasks(intemporal.doc.mstore); -var events = cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092),intemporal.store.list_events(intemporal.doc.mstore)); -intemporal.doc.render_table_BANG_("tasks",tasks); - -intemporal.doc.render_table_BANG_("events",events); - -console.table(cljs.core.clj__GT_js(tasks)); - -return console.table(cljs.core.clj__GT_js(events)); +intemporal.doc.render_tables_BANG_ = (function intemporal$doc$render_tables_BANG_(engine,wf_id){ +var history__$1 = intemporal.core.get_workflow_history(new cljs.core.Keyword(null,"store","store",1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id); +return null; }); intemporal.doc.init = (function intemporal$doc$init(){ -var res = (function (){var _STAR_env_STAR__orig_val__57427 = intemporal.workflow.internal._STAR_env_STAR_; -var _STAR_env_STAR__temp_val__57428 = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"store","store",1512230022),intemporal.doc.mstore], null)], 0)); -(intemporal.workflow.internal._STAR_env_STAR_ = _STAR_env_STAR__temp_val__57428); - -try{return intemporal.doc.my_workflow((1)); -}finally {(intemporal.workflow.internal._STAR_env_STAR_ = _STAR_env_STAR__orig_val__57427); -}})(); +var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); +var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow"], 0)); return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){ -console.log("res",r); +console.log("res",cljs.core.clj__GT_js(r)); intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0))); -return intemporal.doc.render_tables_BANG_(intemporal.doc.mstore); +return intemporal.doc.render_tables_BANG_(engine,"my-wflow"); })),(function (r){ console.error("error",r); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index 251e2b4..db55e02 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AACE,IAAME,IAAE;mCAAAC;AAAA,AAAA,GAAA,GAAA,CAAA,AAAA,yFAAAC,iDAAA;AAAA;AAAA,AAAA,MAAA,KAAAC,MAAA,CAAA,kBAAA,uDAAA,KAAA;;;AAAA,IAAAC,qBAAA,AAAA,iFAAAF;IAAAG,sBAAA,AAAA,mFAAAH;IAAAI,sBAAA,+DAAA,AAAA,8FAAA,wCAAA,gDAAA,qDAAA,sDAAA,iEAAA,yDAAA,oDAAA,6DAAA,6DAAA,mDAAA,sDAAA,AAAA,6EAAA,AAAA,mEAAA,AAAA,sBAAA,AAAA,GAAA,AAAA,EAAA,AAAA,GAAA,AAAA,GAAA,AAAA,8JAAA,AAAA,KAAA,kBAAAT,0BAAA,AAAA,AAAAA,wCAAA;AAAA,AAAA,IAAAU,uBAAA,AAAA,qFAAAL;IAAAM,wBAAA,AAAA,uFAAAN;IAAAO,oBAAA,iBAAAC,eAAA,AAAA,yFAAAR;AAAA,AAAA,QAAAQ,6CAAAA,+CAAAA;;IAAAN,yBAAA;IAAAO,sBAAA,AAAAC,gFAAAR,uBAAAC,oBAAA,AAAAQ,+CAAAP,qBAAAA,oBAAAL,oBAAAQ;AAAA,AAAA,AAAA,AAAA;AAAA,AAAA,IAAAK,gBAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,UAAA;AAAA,AAAA,oBAAA,iBAAAC,KAAAC;AAAA,AAAA,oBAAAD;AAAA,QAAAA,mCAAAA,iCAAA,oDAAAH,KAAAC,KAAAC,WAAAC,aAAA,oDAAAH,KAAAC,KAAAC;;AAAA;;;AAAA,IAAAG,SAAA,KAAAC;IAAAC,WAAA;IAAAC,UAAAC;IAAAC,kBAAA;IAAAC,QAAA;IAAAC,UAAAJ;IAAAK,eAAA;IAAAC,wBAAA,KAAAC,gBAAA;AAAA,AAAA;AAAA,IAAAC,wBAAA,iBAAAC,wBAAA,KAAAC,8BAAA,IAAAb,OAAAM,MAAAX,KAAA,KAAA,KAAAD,OAAAE,KAAAC,QAAAiB,kCAAAC,gDAAAR,QAAA,KAAA,2CAAA,wDAAA,2CAAA,sDAAAjB,oBAAA,oDAAAT,6DAAA,KAAA6B,gBAAA;AAAA,AAAA,OAAAM,kCAAA,mFAAA,yBAAA5B;GAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA,AAAA,OAAA6B,oBAAAC,gBAAAN,sBAAA,AAAAA;;AAAA,AAAA,IAAAO,qBAAAC;AAAA,AAAA,oBAAAD;AAAA,IAAAE,qBAAAF;AAAA,AAAA,QAAAE,mDAAAA,iDAAAV,yBAAAU,6BAAAV;;AAAA,AAAAA;;GAAA;AAAA,AAAA,AAAAW,6CAAA,KAAAC,qCAAA7B,OAAAC,KAAAC,KAAAC,QAAAY;;AAAA,oBAAAD;AAAA,QAAAA,6CAAAA,2CAAAC,yBAAAD,uBAAAC;;AAAA;;;AAAA;;;;AAAA;AAAA,IAAAe,qBAAA,AAAAC,uEAAA5C,6CAAAK,qBAAAC,sBAAAG;AAAA,AAAAkC;;;IAAA5C;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;;AAAR,AACE,SAAA,FAACD;;AAEL,AAAA;AAAA;;;8BAAA,9BAAasD;;AAAb,IAAAP,4CAAA,WACQQ,MAAKzD;AADb,AAAA,IAAAkD,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKzD,qCAAAA;;AADb,IAAAsD,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKzD,qCAAAA;;AADb,MAAA,AAAAuD,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKzD;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQyD,0BAAAA;AADR,OACQA,8CAAAA,MAAKzD;;AADb,OAAAiD,0CACQQ,MAAKzD;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAA0D,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKzD;;AAFb,AAAA,gBAAA,ZAEQyD;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDtI;;;AAFjD,CAAA,AAAA2H,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;iDAI4BuB,SACpB7H;;;;;;;;;;;yHAPKrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gGAMekJ,EACpB7H;iDADoB6H,EACpB7H;;;;AADR,AAAA,AAAAkH,8BAAA,sCAA4BW;AAA5B,AAAA,AACE,IAAM7H,KAAG;mCAAAlB;AAAA,AAAA,GAAA,GAAA,CAAA,AAAA,yFAAAC,iDAAA;AAAA;AAAA,AAAA,MAAA,KAAAC,MAAA,CAAA,kBAAA,uDAAA,KAAA;;;AAAA,IAAAC,qBAAA,AAAA,iFAAAF;IAAAG,sBAAA,AAAA,mFAAAH;IAAAI,sBAAA,iEAAA,AAAA,kGAAA,wCAAA,gDAAA,qDAAA,sDAAA,iEAAA,yDAAA,oDAAA,6DAAA,6DAAA,mDAAA,sDAAA,AAAA,6EAAA,AAAA,uEAAA,AAAA,sBAAA,AAAA,GAAA,AAAA,EAAA,AAAA,GAAA,AAAA,GAAA,AAAA,8JAAA,AAAA,KAAA,kBAAAP,4BAAA,AAAA,AAAAA,0CAAA;AAAA,AAAA,IAAAQ,uBAAA,AAAA,qFAAAL;IAAAM,wBAAA,AAAA,uFAAAN;IAAAO,oBAAA,iBAAAwI,eAAA,AAAA,yFAAA/I;AAAA,AAAA,QAAA+I,6CAAAA,+CAAAA;;IAAA7I,yBAAA;IAAAO,sBAAA,AAAAC,gFAAAR,uBAAAC,oBAAA,AAAAQ,+CAAAP,qBAAAA,oBAAAL,oBAAAQ;AAAA,AAAA,AAAA,AAAA;AAAA,AAAA,IAAAK,gBAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,UAAA;AAAA,AAAA,oBAAA,iBAAAC,KAAAC;AAAA,AAAA,oBAAAD;AAAA,QAAAA,mCAAAA,iCAAA,oDAAAH,KAAAC,KAAAC,WAAAC,aAAA,oDAAAH,KAAAC,KAAAC;;AAAA;;;AAAA,IAAAG,SAAA,KAAAC;IAAAC,WAAA;IAAAC,UAAAC;IAAAC,kBAAA;IAAAC,QAAA;IAAAC,UAAAJ;IAAAK,eAAA;IAAAC,wBAAA,KAAAC,gBAAA;AAAA,AAAA;AAAA,IAAAC,wBAAA,iBAAAC,wBAAA,KAAAC,8BAAA,IAAAb,OAAAM,MAAAX,KAAA,KAAA,KAAAD,OAAAE,KAAAC,QAAAiB,kCAAAC,gDAAAR,QAAA,KAAA,2CAAA,wDAAA,2CAAA,sDAAAjB,oBAAA,oDAAAT,6DAAA,KAAA6B,gBAAA;AAAA,AAAA,OAAAM,kCAAA,mFAAA,yBAAA5B;GAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA,AAAA,OAAA6B,oBAAAC,gBAAAN,sBAAA,AAAAA;;AAAA,AAAA,IAAAO,qBAAAC;AAAA,AAAA,oBAAAD;AAAA,IAAAE,qBAAAF;AAAA,AAAA,QAAAE,mDAAAA,iDAAAV,yBAAAU,6BAAAV;;AAAA,AAAAA;;GAAA;AAAA,AAAA,AAAAW,6CAAA,KAAAC,qCAAA7B,OAAAC,KAAAC,KAAAC,QAAAY;;AAAA,oBAAAD;AAAA,QAAAA,6CAAAA,2CAAAC,yBAAAD,uBAAAC;;AAAA;;;AAAA;;;;AAAA;AAAA,IAAAe,qBAAA,AAAAC,uEAAA5C,6CAAAK,qBAAAC,sBAAAG;AAAA,AAAAkC;;;IAAA5C;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;;mDADiB+I,EACpB7H,jDACA+H,KAAG,KAAAC,0CAAA;IAEHC,OAAK,GAAA,mFAAA,tFAACjI;IACNkI,OAAK,gDAAA,hDAAKH;AAJhB,AAKE,OAAAI,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,iCAAA,WAAQE,jBAAGL;AAAX,AAAA,OAAAE,wBAAA,AAAAC,iCAAA,WACQG,jBAAGL;AADX,AAAA,OAAAE,2BAEE,oDAAA,mFAAA,vIAACI,oMACKF,qDACAC;;;;;;AAVZ,6BAAA,7BAAeX,kEAAaC;AAA5B,AAAA,IAAAV,qBAAA,AAAA,iFAAApI;IAAAqI,sBAAA,AAAA,mFAAArI;IAAAsI,oBAAA,iBAAAC,mBAAA,AAAA,gFAAAvI;AAAA,AAAA,oBAAAuI;AAAAA;;AAAA,OAAAC;;;IAAAC,sBAAA,kEAAA,AAAA,oGAAA,wCAAA,2DAAA,gDAAA,qDAAA,sDAAA,yDAAA,oDAAA,6DAAA,mDAAA,sDAAA,AAAA,KAAA,AAAA,6EAAA,AAAA,yEAAA,AAAA,sBAAA,AAAA,EAAA,AAAA,GAAA,AAAA,6JAAA,AAAA,KAAA,kBAAAN,6BAAA,AAAA,AAAAA,2CAAA;IAAAO,sBAAA,AAAAC,gFAAAP,mBAAAC,oBAAA,AAAA1H,+CAAA8H,qBAAAA,oBAAA,6FAAAH,VAA4BQ;AAA5B,AAAA,AAAA,AAAA;AAAA,AAAA,IAAAlI,gBAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,UAAA;AAAA,AAAA,oBAAA,iBAAAC,KAAAC;AAAA,AAAA,oBAAAD;AAAA,QAAAA,mCAAAA,iCAAA,oDAAAH,KAAAC,KAAAC,WAAAC,aAAA,oDAAAH,KAAAC,KAAAC;;AAAA;;;AAAA,IAAAG,SAAA,KAAAC;IAAAC,WAAA;IAAAC,UAAAC;IAAAC,kBAAA;IAAAC,QAAA;IAAAC,UAAAJ;IAAAK,eAAA;IAAAC,wBAAA,KAAAC,gBAAA;AAAA,AAAA;AAAA,IAAAC,wBAAA,iBAAAC,wBAAA,KAAAC,8BAAA,IAAAb,OAAAM,MAAAX,KAAA,KAAA,KAAAD,OAAAE,KAAAC,QAAAiB,kCAAAC,gDAAAR,QAAA,KAAA,2CAAA,wDAAA,2CAAA,sDAAAgH,oBAAA,oDAAA1I,6DAAA,KAAA6B,gBAAA;AAAA,AAAA,OAAAM,kCAAA,mFAAA,wBAAA,AAAA,gFAAAuG;GAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA,AAAA,OAAAtG,oBAAAC,gBAAAN,sBAAA,AAAAA;;AAAA,AAAA,IAAAO,qBAAAC;AAAA,AAAA,oBAAAD;AAAA,IAAAE,qBAAAF;AAAA,AAAA,QAAAE,mDAAAA,iDAAAV,yBAAAU,6BAAAV;;AAAA,AAAAA;;GAAA;AAAA,AAAA,AAAAW,6CAAA,KAAAC,qCAAA7B,OAAAC,KAAAC,KAAAC,QAAAY;;AAAA,oBAAAD;AAAA,QAAAA,6CAAAA,2CAAAC,yBAAAD,uBAAAC;;AAAA;;;AAAA;;;;AAAA;AAAA,OAAAgH,qCAAA5I,6CAAA0I;;AAYA,AAAKgB,wBAAO,AAACC;AACb,AAAKC,6BAAY,oJAAA,2CAAA,6DAAA,2CAAA,AAAA,vSAACC,4EAAgBH,gUAAkC,AAAC1B;AAIrE,gCAAA,hCAAM8B,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,IAAMC,SAAO,AAACC,eAAK,AAACC,gBAAMH;YAA1B,mFAAA,uDAAA,mFAAA,rOACMI,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAE,qBAAA,AAAA7D,cAAA2D;AAAA,AAAA,GAAAE;AAAA,AAAA,IAAAF,eAAAE;AAAA,AAAA,GAAA,AAAAC,6BAAAH;AAAA,IAAAI,kBA+5EmC,AAAAmD,sBAAAvD;IA/5EnCK,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMQ;AAAN,AAAA,AAAA,AAAAP,uBAAAH,SAAA,mFAAA,iDAAqBU;;AAArB,eAAA,CAAAR,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAb;;AAAA,OAAAU,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAT,gBAAAG,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAF,gDAAA,AAAAG,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQJ;;YAHtB,mFAAA,3FAIMsB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAhB,qBAAA,AAAA7D,cAAA6E;AAAA,AAAA,GAAAhB;AAAA,AAAA,IAAAgB,eAAAhB;AAAA,AAAA,GAAA,AAAAC,6BAAAe;AAAA,IAAAd,kBA65EoC,AAAAmD,sBAAArC;IA75EpCb,qBAAA,AAAAvF,gBAAAsF;IAAAe,WAAA,AAAAZ,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAe,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAf;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAgB,nCAAME;AAAN,AAAA,AAAA,AAAAb,uBAAAU,SAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACI,eAAK,8CAAA,9CAACrI,4CAAIoI,iEACvB,iBAAAvB,qBAAA;+EAAAyB;AAAA,AAAA,YAAAvB,kBAAA,KAAA;;AAAA,AAAA,IAAAuB,eAAAA;;AAAA,AAAA,IAAAtB,yBAAA,AAAA7D,cAAAmF;AAAA,AAAA,GAAAtB;AAAA,AAAA,IAAAsB,eAAAtB;AAAA,AAAA,GAAA,AAAAC,6BAAAqB;AAAA,IAAApB,sBA25EiC,AAAAmD,sBAAA/B;IA35EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMV;AAAN,AAAA,AAAA,AAAAP,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIoI,EAAEN;;AADtB,eAAA,CAAAU,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAA5B,gBAAA2B,pBAAMR;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAa,8DAAA,AAAAZ,eAAAS,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIoI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;;;AAFX,eAAA,CAAAyB,WAAA;;;;AAAA;;;;;AAAA,OAAAV,qBAAA,AAAAC,gBAAAQ,UAAA,AAAAE,gDAAA,AAAAR,qBAAAK;;AAAA,OAAAR,qBAAA,AAAAC,gBAAAQ,UAAA;;;AAAA,QAAA,AAAAtB,gBAAAqB,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACS,eAAK,8CAAA,9CAACrI,4CAAIoI,iEACvB,iBAAAvB,qBAAA;+EAAA6B;AAAA,AAAA,YAAA3B,kBAAA,KAAA;AAAA,AAAA,IAAA2B,eAAAA;;AAAA,AAAA,IAAA1B,yBAAA,AAAA7D,cAAAuF;AAAA,AAAA,GAAA1B;AAAA,AAAA,IAAA0B,eAAA1B;AAAA,AAAA,GAAA,AAAAC,6BAAAyB;AAAA,IAAAxB,kBA25EiC,AAAAmD,sBAAA3B;IA35EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMd;AAAN,AAAA,AAAA,AAAAP,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIoI,EAAEN;;AADtB,eAAA,CAAAc,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAhC,gBAAA+B,pBAAMZ;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAiB,8DAAA,AAAAhB,eAAAa,pPACO,AAACI,wGAAO,AAAC9I,4CAAIoI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;aAFX,AAAA0B,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQL;;IAIfuC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGpC,gFACAmB;AAZf,AAaE,OAAC7B,8BAAUC,GAAG4C;;AAGlB,qCAAA,rCAAME,kFAAgBC;AAAtB,AACE,IAAMC,QAAM,AAACC,4BAAatD;IACpBuD,2GAAY,AAACC,6BAAcxD,/HACf,gDAAA,hDAACyD;AAFnB,AAGE,kCAAA,lCAAChD,0CAAsB4C;;AACvB,kCAAA,lCAAC5C,2CAAuB8C;;AACxB,AAACG,cAAiB,AAACC,qBAAQN;;AAC3B,OAACK,cAAiB,AAACC,qBAAQJ;;AAI/B,sBAAA,tBAAMK;AAAN,AACE,IAAMC,MAAI,iBAAAC,kCAAAxN;IAAAyN,kCAAA,AAAAC,uGAAAC,yCAAA,2CAAA,uDAAoBjE;AAApB,AAAA,CAAA1J,+CAAAyN;;AAAA,IAAA,AAAA,AACG,kCAAA,3BAAC5E;UADJ,AAAA,CAAA7I,+CAAAwN;;AAAV,yGAIMD,hDACA,AAACK,oDAAO,WAAK5B,xHAKb,OAAC+B;AALO,AACE,YAAA,ZAACF,kBAAqB7B;;AACtB,AAAC9B,iCAAa,AAAC4D,yGAAQ9B;;AACvB,OAACa,mCAAenD;IAEjB,WAAKsC;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC9B,iCAAa,AAAC4D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","f","argv__56956__auto__","intemporal.workflow.internal/*env*","js/Error","ref__56957__auto__","root__56958__auto__","fvar__56959__auto__","store__56960__auto__","protos__56961__auto__","id__56962__auto__","fexpr__57391","task__56963__auto__","intemporal.workflow.internal.create_activity_task","cljs.core.symbol","__run-fn-form","__kind","__ns","__id","__level","sf","taoensso.telemere.impl/*rt-call-filter*","__inst","js/Date","__thread","__root0","taoensso.telemere.impl/*trace-root*","__otel-context1","__uid","__root1","__run-result","signal__52369__auto__","cljs.core/Delay","signal__52360__auto__","signal__52359__auto__","taoensso.telemere.impl/Signal","taoensso.telemere/*ctx*","taoensso.telemere.impl/*trace-parent*","taoensso.telemere.impl/signal-msg","cljs.core/reduce-kv","cljs.core/assoc","temp__5823__auto__","taoensso.telemere/*xfn*","xfn__52361__auto__","taoensso.telemere.impl/dispatch-signal!","taoensso.telemere.impl/WrappedSignal","res__56964__auto__","intemporal.workflow.internal/resume-task","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k57393","else__5326__auto__","G__57397","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__57398","vec__57399","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__57392","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this57394","other57395","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__57402","cljs.core/keyword-identical?","expr__57403","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__57396","extmap__5365__auto__","G__57405","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow-","ref__56946__auto__","root__56947__auto__","id__56948__auto__","or__5025__auto__","intemporal.workflow.internal/random-id","fvar__56949__auto__","task__56950__auto__","intemporal.workflow.internal.create_workflow_task","intemporal.workflow/enqueue-and-wait","intemporal.doc/my-workflow","i","fexpr__57406","pr","intemporal.doc/t_intemporal$doc57407","sres","pres","promesa.protocols/-mcat","promesa.protocols/-promise","___49992__auto__","v1","v2","cljs.core.conj","intemporal.doc/mstore","intemporal.store.make_store","intemporal.doc/stop-worker","intemporal.workflow.start_worker_BANG_","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","cljs.core/keys","cljs.core/first","thead","iter__5503__auto__","s__57412","cljs.core/LazySeq","temp__5825__auto__","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__57414","cljs.core/chunk-buffer","i__57413","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__57411","cljs.core/chunk-rest","cljs.core/cons","cljs.core/rest","h","tbody","s__57416","b__57418","i__57417","iter__57415","r","cljs.core/name","s__57420","b__57422","i__57421","iter__57419","s__57424","b__57426","i__57425","iter__57423","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","the-store","tasks","intemporal.store/list-tasks","events","intemporal.store/list-events","cljs.core.sort_by","js/console.table","cljs.core/clj->js","intemporal.doc/init","res","*env*-orig-val__57427","*env*-temp-val__57428","cljs.core.merge","intemporal.workflow.internal/default-env","promesa.core.then","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.store :as s]\n [intemporal.workflow :as w]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [intemporal.macros :refer [stub-function stub-protocol defn-workflow]]\n [hiccups.core :as hiccups :refer [html]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n (let [f (stub-function nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn-workflow my-workflow [i]\n (let [sf (stub-function activity-fn)\n pr (stub-protocol MyActivities {})\n\n sres (sf [1])\n pres (foo pr :X)]\n (p/let [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n(def mstore (s/make-store))\n(def stop-worker (w/start-worker! mstore {:protocols {`MyActivities (->MyActivitiesImpl)}}))\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header (keys (first rows))\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr {:class (name (get r :type))}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n\n(defn render-tables! [the-store]\n (let [tasks (s/list-tasks mstore)\n events (->> (s/list-events mstore)\n (sort-by :id))]\n (render-table! \"tasks\" tasks)\n (render-table! \"events\" events)\n (js/console.table (clj->js tasks))\n (js/console.table (clj->js events))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [res (w/with-env {:store mstore}\n (my-workflow 1))]\n\n ;; set-results!\n (-> res\n (p/then (fn [r]\n (js/console.log \"res\" r)\n (set-results! (prn-str r))\n (render-tables! mstore)))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAQA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAIA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN,AAIA,6BAAA,7BAAMY,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,WAAepF;IAAfqF,WAAA;AAAA,AAAA,gIAAAD,SAAAC,mDAAAD,SAAAC,7LAACC,6DAAAA,gFAAAA;;IAEJC,OAAK,GAAA,mFAAA,tFAACN;IACNO,OAAK,sBAAA,tBAAC5F,mBAAIuF;AAJhB,AAKE,OAAAM,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,iCAAA,WAAQE,jBAAGL;AAAX,AAAA,OAAAE,wBAAA,AAAAC,iCAAA,WACQG,jBAAGL;AADX,AAAA,OAAAE,2BAEE,oDAAA,mFAAA,vIAACI,oMACKF,qDACAC;;;;;AAKZ,gCAAA,hCAAME,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,IAAMC,SAAO,AAACC,eAAK,AAACC,gBAAMH;YAA1B,mFAAA,uDAAA,mFAAA,rOACMI,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAE,qBAAA,AAAAlD,cAAAgD;AAAA,AAAA,GAAAE;AAAA,AAAA,IAAAF,eAAAE;AAAA,AAAA,GAAA,AAAAC,6BAAAH;AAAA,IAAAI,kBAm6EmC,AAAA8C,sBAAAlD;IAn6EnCK,qBAAA,AAAA5E,gBAAA2E;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAAhD,eAAA+C,gBAAAI,nCAAMQ;AAAN,AAAA,AAAA,AAAAP,uBAAAH,SAAA,mFAAA,iDAAqBU;;AAArB,eAAA,CAAAR,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAb;;AAAA,OAAAU,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAT,gBAAAG,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAF,gDAAA,AAAAG,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQJ;;YAHtB,mFAAA,3FAIMsB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAhB,qBAAA,AAAAlD,cAAAkE;AAAA,AAAA,GAAAhB;AAAA,AAAA,IAAAgB,eAAAhB;AAAA,AAAA,GAAA,AAAAC,6BAAAe;AAAA,IAAAd,kBAi6EoC,AAAA8C,sBAAAhC;IAj6EpCb,qBAAA,AAAA5E,gBAAA2E;IAAAe,WAAA,AAAAZ,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAe,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAf;AAAA,QAAA,AAAAhD,eAAA+C,gBAAAgB,nCAAME;AAAN,AAAA,AAAA,AAAAb,uBAAAU,SAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACI,eAAK,8CAAA,9CAAC1H,4CAAIyH,iEACvB,iBAAAvB,qBAAA;+EAAAyB;AAAA,AAAA,YAAAvB,kBAAA,KAAA;;AAAA,AAAA,IAAAuB,eAAAA;;AAAA,AAAA,IAAAtB,yBAAA,AAAAlD,cAAAwE;AAAA,AAAA,GAAAtB;AAAA,AAAA,IAAAsB,eAAAtB;AAAA,AAAA,GAAA,AAAAC,6BAAAqB;AAAA,IAAApB,sBA+5EiC,AAAA8C,sBAAA1B;IA/5EjCnB,yBAAA,AAAA5E,gBAAA2E;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAAhD,eAAA+C,oBAAAsB,vCAAMV;AAAN,AAAA,AAAA,AAAAP,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAACnI,4CAAIyH,EAAEN;;AADtB,eAAA,CAAAU,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAA5B,gBAAA2B,pBAAMR;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAa,8DAAA,AAAAZ,eAAAS,pPACO,AAACQ,wGAAO,AAACnI,4CAAIyH,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;;;AAFX,eAAA,CAAAyB,WAAA;;;;AAAA;;;;;AAAA,OAAAV,qBAAA,AAAAC,gBAAAQ,UAAA,AAAAE,gDAAA,AAAAR,qBAAAK;;AAAA,OAAAR,qBAAA,AAAAC,gBAAAQ,UAAA;;;AAAA,QAAA,AAAAtB,gBAAAqB,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACS,eAAK,8CAAA,9CAAC1H,4CAAIyH,iEACvB,iBAAAvB,qBAAA;+EAAA6B;AAAA,AAAA,YAAA3B,kBAAA,KAAA;AAAA,AAAA,IAAA2B,eAAAA;;AAAA,AAAA,IAAA1B,yBAAA,AAAAlD,cAAA4E;AAAA,AAAA,GAAA1B;AAAA,AAAA,IAAA0B,eAAA1B;AAAA,AAAA,GAAA,AAAAC,6BAAAyB;AAAA,IAAAxB,kBA+5EiC,AAAA8C,sBAAAtB;IA/5EjCvB,qBAAA,AAAA5E,gBAAA2E;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAAhD,eAAA+C,gBAAA0B,nCAAMd;AAAN,AAAA,AAAA,AAAAP,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAACnI,4CAAIyH,EAAEN;;AADtB,eAAA,CAAAc,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAhC,gBAAA+B,pBAAMZ;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAiB,8DAAA,AAAAhB,eAAAa,pPACO,AAACI,wGAAO,AAACnI,4CAAIyH,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;aAFX,AAAA0B,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQL;;IAIfuC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGpC,gFACAmB;AAZf,AAaE,OAAC7B,8BAAUC,GAAG4C;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AAAA;;AASF,sBAAA,tBAAMG;AAAN,AACE,IAAMJ,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACK;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,1TAACC,oEAA0BP,OAAOhE;AAD/C,yGAIMsE,hDACA,AAACE,oDAAO,WAAKtB,xHAKb,OAAC0B;AALO,AACE,YAAA,ZAACH,kBAAqB,AAACC,qBAAQxB;;AAC/B,AAAC9B,iCAAa,AAACuD,yGAAQzB;;AACvB,iDAAA,1CAACa,mCAAeC;IAEjB,WAAKd;AAAL,AACE,cAAA,dAAC2B,sBAAyB3B;;AAC1B,OAAC9B,iCAAa,AAACuD,yGAAQzB;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k41003","else__5326__auto__","G__41007","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__41008","vec__41009","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__41002","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this41004","other41005","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__41012","cljs.core/keyword-identical?","expr__41013","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__41006","extmap__5365__auto__","G__41015","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","G__41016","G__41017","intemporal.doc/stub-protocol","sres","pres","promesa.protocols/-mcat","promesa.protocols/-promise","___30499__auto__","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","cljs.core/keys","cljs.core/first","thead","iter__5503__auto__","s__41019","cljs.core/LazySeq","temp__5825__auto__","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__41021","cljs.core/chunk-buffer","i__41020","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__41018","cljs.core/chunk-rest","cljs.core/cons","cljs.core/rest","h","tbody","s__41023","b__41025","i__41024","iter__41022","r","cljs.core/name","s__41027","b__41029","i__41028","iter__41026","s__41031","b__41033","i__41032","iter__41030","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","promesa.core.then","js/console.log","cljs.core/clj->js","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (stub-protocol MyActivities {})\n\n sres (sf [1])\n pres (foo pr :X)]\n (p/let [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header (keys (first rows))\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr {:class (name (get r :type))}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n #_#_#_#_\n (render-table! \"tasks\" tasks)\n (render-table! \"events\" events)\n (js/console.table (clj->js tasks))\n (js/console.table (clj->js events))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\")]\n\n ;; set-results!\n (-> res\n (p/then (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.store.js b/public/js/cljs-runtime/intemporal.store.js index 4ac5b86..73903a1 100644 --- a/public/js/cljs-runtime/intemporal.store.js +++ b/public/js/cljs-runtime/intemporal.store.js @@ -1,1233 +1,344 @@ goog.provide('intemporal.store'); /** - * @interface - */ -intemporal.store.TaskStore = function(){}; - -var intemporal$store$TaskStore$list_tasks$dyn_54381 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.list_tasks[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.list_tasks["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("TaskStore.list-tasks",this$); -} -} -}); -/** - * Lists all tasks - */ -intemporal.store.list_tasks = (function intemporal$store$list_tasks(this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$list_tasks$arity$1 == null)))))){ -return this$.intemporal$store$TaskStore$list_tasks$arity$1(this$); -} else { -return intemporal$store$TaskStore$list_tasks$dyn_54381(this$); -} -}); - -var intemporal$store$TaskStore$task_LT__panic$dyn_54382 = (function (this$,task_id,error){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.task_LT__panic[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,error) : m__5374__auto__.call(null,this$,task_id,error)); -} else { -var m__5372__auto__ = (intemporal.store.task_LT__panic["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,error) : m__5372__auto__.call(null,this$,task_id,error)); -} else { -throw cljs.core.missing_protocol("TaskStore.task<-panic",this$); -} -} -}); -/** - * Terminates the task via panic; events should not be stored - */ -intemporal.store.task_LT__panic = (function intemporal$store$task_LT__panic(this$,task_id,error){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$task_LT__panic$arity$3 == null)))))){ -return this$.intemporal$store$TaskStore$task_LT__panic$arity$3(this$,task_id,error); -} else { -return intemporal$store$TaskStore$task_LT__panic$dyn_54382(this$,task_id,error); -} -}); - -var intemporal$store$TaskStore$task_LT__event$dyn_54383 = (function (this$,task_id,event_descr){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.task_LT__event[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event_descr) : m__5374__auto__.call(null,this$,task_id,event_descr)); -} else { -var m__5372__auto__ = (intemporal.store.task_LT__event["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event_descr) : m__5372__auto__.call(null,this$,task_id,event_descr)); -} else { -throw cljs.core.missing_protocol("TaskStore.task<-event",this$); -} -} -}); -/** - * Transitions the task. The task should be dequeued beforehand. Returns the event. - * `event-descr` is one of: - * `{:sym 'ns/f :args [1]}` - * `{:sym 'ns/f :result :ok}` - * `{:sym 'ns/f :error }` - * - */ -intemporal.store.task_LT__event = (function intemporal$store$task_LT__event(this$,task_id,event_descr){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$task_LT__event$arity$3 == null)))))){ -return this$.intemporal$store$TaskStore$task_LT__event$arity$3(this$,task_id,event_descr); -} else { -return intemporal$store$TaskStore$task_LT__event$dyn_54383(this$,task_id,event_descr); -} -}); - -var intemporal$store$TaskStore$watch_task$dyn_54384 = (function (this$,id,callback){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.watch_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,callback) : m__5374__auto__.call(null,this$,id,callback)); -} else { -var m__5372__auto__ = (intemporal.store.watch_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,callback) : m__5372__auto__.call(null,this$,id,callback)); -} else { -throw cljs.core.missing_protocol("TaskStore.watch-task",this$); -} -} -}); -/** - * Observes state changes, calling `callback` for any task that matches `predicate`. - */ -intemporal.store.watch_task = (function intemporal$store$watch_task(this$,id,callback){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$watch_task$arity$3 == null)))))){ -return this$.intemporal$store$TaskStore$watch_task$arity$3(this$,id,callback); -} else { -return intemporal$store$TaskStore$watch_task$dyn_54384(this$,id,callback); -} -}); - -var intemporal$store$TaskStore$await_task$dyn_54385 = (function() { -var G__54386 = null; -var G__54386__2 = (function (this$,id){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.await_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5374__auto__.call(null,this$,id)); -} else { -var m__5372__auto__ = (intemporal.store.await_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5372__auto__.call(null,this$,id)); -} else { -throw cljs.core.missing_protocol("TaskStore.await-task",this$); -} -} -}); -var G__54386__3 = (function (this$,id,opts){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.await_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,opts) : m__5374__auto__.call(null,this$,id,opts)); -} else { -var m__5372__auto__ = (intemporal.store.await_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,opts) : m__5372__auto__.call(null,this$,id,opts)); -} else { -throw cljs.core.missing_protocol("TaskStore.await-task",this$); -} -} -}); -G__54386 = function(this$,id,opts){ -switch(arguments.length){ -case 2: -return G__54386__2.call(this,this$,id); -case 3: -return G__54386__3.call(this,this$,id,opts); -} -throw(new Error('Invalid arity: ' + arguments.length)); -}; -G__54386.cljs$core$IFn$_invoke$arity$2 = G__54386__2; -G__54386.cljs$core$IFn$_invoke$arity$3 = G__54386__3; -return G__54386; -})() -; -/** - * Waits for workflow to finish. Returns a deref'able value. Can throw. - * Opts include - * - `timeout-ms`: timeout for task await - */ -intemporal.store.await_task = (function intemporal$store$await_task(var_args){ -var G__54348 = arguments.length; -switch (G__54348) { -case 2: -return intemporal.store.await_task.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); - -break; -case 3: -return intemporal.store.await_task.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(''))); - -} -}); - -(intemporal.store.await_task.cljs$core$IFn$_invoke$arity$2 = (function (this$,id){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$await_task$arity$2 == null)))))){ -return this$.intemporal$store$TaskStore$await_task$arity$2(this$,id); -} else { -return intemporal$store$TaskStore$await_task$dyn_54385(this$,id); -} -})); - -(intemporal.store.await_task.cljs$core$IFn$_invoke$arity$3 = (function (this$,id,opts){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$await_task$arity$3 == null)))))){ -return this$.intemporal$store$TaskStore$await_task$arity$3(this$,id,opts); -} else { -return intemporal$store$TaskStore$await_task$dyn_54385(this$,id,opts); -} +* @constructor + * @implements {cljs.core.IRecord} + * @implements {cljs.core.IKVReduce} + * @implements {cljs.core.IEquiv} + * @implements {cljs.core.IHash} + * @implements {cljs.core.ICollection} + * @implements {cljs.core.ICounted} + * @implements {intemporal.protocol.IStore} + * @implements {cljs.core.ISeqable} + * @implements {cljs.core.IMeta} + * @implements {cljs.core.ICloneable} + * @implements {cljs.core.IPrintWithWriter} + * @implements {cljs.core.IIterable} + * @implements {cljs.core.IWithMeta} + * @implements {cljs.core.IAssociative} + * @implements {cljs.core.IMap} + * @implements {cljs.core.ILookup} +*/ +intemporal.store.InMemoryStore = (function (state,__meta,__extmap,__hash){ +this.state = state; +this.__meta = __meta; +this.__extmap = __extmap; +this.__hash = __hash; +this.cljs$lang$protocol_mask$partition0$ = 2230716170; +this.cljs$lang$protocol_mask$partition1$ = 139264; +}); +(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__5323__auto__,k__5324__auto__){ +var self__ = this; +var this__5323__auto____$1 = this; +return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.store.await_task.cljs$lang$maxFixedArity = 3); - - -var intemporal$store$TaskStore$find_task$dyn_54389 = (function (this$,id){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.find_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5374__auto__.call(null,this$,id)); -} else { -var m__5372__auto__ = (intemporal.store.find_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5372__auto__.call(null,this$,id)); -} else { -throw cljs.core.missing_protocol("TaskStore.find-task",this$); -} -} -}); -/** - * Finds the task on the db by id - */ -intemporal.store.find_task = (function intemporal$store$find_task(this$,id){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$find_task$arity$2 == null)))))){ -return this$.intemporal$store$TaskStore$find_task$arity$2(this$,id); -} else { -return intemporal$store$TaskStore$find_task$dyn_54389(this$,id); -} -}); - -var intemporal$store$TaskStore$reenqueue_pending_tasks$dyn_54391 = (function (this$,callback){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.reenqueue_pending_tasks[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,callback) : m__5374__auto__.call(null,this$,callback)); -} else { -var m__5372__auto__ = (intemporal.store.reenqueue_pending_tasks["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,callback) : m__5372__auto__.call(null,this$,callback)); -} else { -throw cljs.core.missing_protocol("TaskStore.reenqueue-pending-tasks",this$); -} -} -}); -/** - * Marks all pending tasks belonging to the store's `owner` as `new` - */ -intemporal.store.reenqueue_pending_tasks = (function intemporal$store$reenqueue_pending_tasks(this$,callback){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2 == null)))))){ -return this$.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2(this$,callback); -} else { -return intemporal$store$TaskStore$reenqueue_pending_tasks$dyn_54391(this$,callback); -} -}); - -var intemporal$store$TaskStore$release_pending_tasks$dyn_54392 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.release_pending_tasks[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.release_pending_tasks["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("TaskStore.release-pending-tasks",this$); -} -} -}); -/** - * Disowns all tasks that are pending - */ -intemporal.store.release_pending_tasks = (function intemporal$store$release_pending_tasks(this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$release_pending_tasks$arity$1 == null)))))){ -return this$.intemporal$store$TaskStore$release_pending_tasks$arity$1(this$); -} else { -return intemporal$store$TaskStore$release_pending_tasks$dyn_54392(this$); -} -}); - -var intemporal$store$TaskStore$enqueue_task$dyn_54393 = (function (this$,task){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.enqueue_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,task) : m__5374__auto__.call(null,this$,task)); -} else { -var m__5372__auto__ = (intemporal.store.enqueue_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,task) : m__5372__auto__.call(null,this$,task)); -} else { -throw cljs.core.missing_protocol("TaskStore.enqueue-task",this$); -} -} -}); -/** - * Atomically enqueues a protocol, workflow or activity task execution - */ -intemporal.store.enqueue_task = (function intemporal$store$enqueue_task(this$,task){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$enqueue_task$arity$2 == null)))))){ -return this$.intemporal$store$TaskStore$enqueue_task$arity$2(this$,task); -} else { -return intemporal$store$TaskStore$enqueue_task$dyn_54393(this$,task); -} -}); - -var intemporal$store$TaskStore$dequeue_task$dyn_54394 = (function() { -var G__54395 = null; -var G__54395__1 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.dequeue_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.dequeue_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("TaskStore.dequeue-task",this$); -} -} -}); -var G__54395__2 = (function (this$,opts){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.dequeue_task[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,opts) : m__5374__auto__.call(null,this$,opts)); -} else { -var m__5372__auto__ = (intemporal.store.dequeue_task["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,opts) : m__5372__auto__.call(null,this$,opts)); -} else { -throw cljs.core.missing_protocol("TaskStore.dequeue-task",this$); -} -} -}); -G__54395 = function(this$,opts){ -switch(arguments.length){ -case 1: -return G__54395__1.call(this,this$); -case 2: -return G__54395__2.call(this,this$,opts); -} -throw(new Error('Invalid arity: ' + arguments.length)); -}; -G__54395.cljs$core$IFn$_invoke$arity$1 = G__54395__1; -G__54395.cljs$core$IFn$_invoke$arity$2 = G__54395__2; -return G__54395; -})() -; -/** - * Atomically dequeues some workflow, protocol or activity task execution. - * For deterministic purposes, should dequeue the oldest task first. - * If the task was deserialized, its `fvar` attribute must be a `fn` - * Opts: - * * `lease-ms`- duration of lease for dequeue. After lease expires, the task is eligible for dequeueing again - */ -intemporal.store.dequeue_task = (function intemporal$store$dequeue_task(var_args){ -var G__54350 = arguments.length; -switch (G__54350) { -case 1: -return intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); - -break; -case 2: -return intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); +(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k28969,else__5326__auto__){ +var self__ = this; +var this__5325__auto____$1 = this; +var G__28978 = k28969; +var G__28978__$1 = (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null); +switch (G__28978__$1) { +case "state": +return self__.state; break; default: -throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); - -} -}); - -(intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$1 = (function (this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$dequeue_task$arity$1 == null)))))){ -return this$.intemporal$store$TaskStore$dequeue_task$arity$1(this$); -} else { -return intemporal$store$TaskStore$dequeue_task$dyn_54394(this$); -} -})); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__); -(intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$2 = (function (this$,opts){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$dequeue_task$arity$2 == null)))))){ -return this$.intemporal$store$TaskStore$dequeue_task$arity$2(this$,opts); -} else { -return intemporal$store$TaskStore$dequeue_task$dyn_54394(this$,opts); } })); -(intemporal.store.dequeue_task.cljs$lang$maxFixedArity = 2); - - -var intemporal$store$TaskStore$clear_tasks$dyn_54399 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.clear_tasks[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.clear_tasks["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("TaskStore.clear-tasks",this$); -} -} -}); -/** - * Deletes all tasks - */ -intemporal.store.clear_tasks = (function intemporal$store$clear_tasks(this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$TaskStore$clear_tasks$arity$1 == null)))))){ -return this$.intemporal$store$TaskStore$clear_tasks$arity$1(this$); -} else { -return intemporal$store$TaskStore$clear_tasks$dyn_54399(this$); -} -}); - - -/** - * @interface - */ -intemporal.store.HistoryStore = function(){}; - -var intemporal$store$HistoryStore$list_events$dyn_54400 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.list_events[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.list_events["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("HistoryStore.list-events",this$); -} -} -}); -/** - * Lists all events - */ -intemporal.store.list_events = (function intemporal$store$list_events(this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$HistoryStore$list_events$arity$1 == null)))))){ -return this$.intemporal$store$HistoryStore$list_events$arity$1(this$); -} else { -return intemporal$store$HistoryStore$list_events$dyn_54400(this$); -} -}); - -var intemporal$store$HistoryStore$save_event$dyn_54401 = (function (this$,task_id,event){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.save_event[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event) : m__5374__auto__.call(null,this$,task_id,event)); -} else { -var m__5372__auto__ = (intemporal.store.save_event["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event) : m__5372__auto__.call(null,this$,task_id,event)); -} else { -throw cljs.core.missing_protocol("HistoryStore.save-event",this$); -} -} -}); -/** - * Saves the event for the given task id. Returns the saved event - */ -intemporal.store.save_event = (function intemporal$store$save_event(this$,task_id,event){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$HistoryStore$save_event$arity$3 == null)))))){ -return this$.intemporal$store$HistoryStore$save_event$arity$3(this$,task_id,event); -} else { -return intemporal$store$HistoryStore$save_event$dyn_54401(this$,task_id,event); -} -}); - -var intemporal$store$HistoryStore$all_events$dyn_54402 = (function (this$,task_id){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.all_events[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,task_id) : m__5374__auto__.call(null,this$,task_id)); -} else { -var m__5372__auto__ = (intemporal.store.all_events["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,task_id) : m__5372__auto__.call(null,this$,task_id)); -} else { -throw cljs.core.missing_protocol("HistoryStore.all-events",this$); -} -} -}); -/** - * Returns all the events for a given task id - */ -intemporal.store.all_events = (function intemporal$store$all_events(this$,task_id){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$HistoryStore$all_events$arity$2 == null)))))){ -return this$.intemporal$store$HistoryStore$all_events$arity$2(this$,task_id); -} else { -return intemporal$store$HistoryStore$all_events$dyn_54402(this$,task_id); -} -}); - -var intemporal$store$HistoryStore$clear_events$dyn_54403 = (function (this$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.clear_events[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); -} else { -var m__5372__auto__ = (intemporal.store.clear_events["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); -} else { -throw cljs.core.missing_protocol("HistoryStore.clear-events",this$); -} -} -}); -/** - * Deletes all events - */ -intemporal.store.clear_events = (function intemporal$store$clear_events(this$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$HistoryStore$clear_events$arity$1 == null)))))){ -return this$.intemporal$store$HistoryStore$clear_events$arity$1(this$); -} else { -return intemporal$store$HistoryStore$clear_events$dyn_54403(this$); -} -}); - - -/** - * @interface - */ -intemporal.store.InternalVarStore = function(){}; - -var intemporal$store$InternalVarStore$register$dyn_54406 = (function (this$,sym,var$){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.register[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,sym,var$) : m__5374__auto__.call(null,this$,sym,var$)); -} else { -var m__5372__auto__ = (intemporal.store.register["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,sym,var$) : m__5372__auto__.call(null,this$,sym,var$)); -} else { -throw cljs.core.missing_protocol("InternalVarStore.register",this$); -} -} -}); -/** - * Register the symbol with the var - */ -intemporal.store.register = (function intemporal$store$register(this$,sym,var$){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$InternalVarStore$register$arity$3 == null)))))){ -return this$.intemporal$store$InternalVarStore$register$arity$3(this$,sym,var$); -} else { -return intemporal$store$InternalVarStore$register$dyn_54406(this$,sym,var$); -} -}); - -var intemporal$store$InternalVarStore$lookup$dyn_54407 = (function (this$,sym){ -var x__5373__auto__ = (((this$ == null))?null:this$); -var m__5374__auto__ = (intemporal.store.lookup[goog.typeOf(x__5373__auto__)]); -if((!((m__5374__auto__ == null)))){ -return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,sym) : m__5374__auto__.call(null,this$,sym)); -} else { -var m__5372__auto__ = (intemporal.store.lookup["_"]); -if((!((m__5372__auto__ == null)))){ -return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,sym) : m__5372__auto__.call(null,this$,sym)); -} else { -throw cljs.core.missing_protocol("InternalVarStore.lookup",this$); -} -} -}); -/** - * Finds the var for the given symbol - */ -intemporal.store.lookup = (function intemporal$store$lookup(this$,sym){ -if((((!((this$ == null)))) && ((!((this$.intemporal$store$InternalVarStore$lookup$arity$2 == null)))))){ -return this$.intemporal$store$InternalVarStore$lookup$arity$2(this$,sym); -} else { -return intemporal$store$InternalVarStore$lookup$dyn_54407(this$,sym); -} -}); - -intemporal.store.now = (function intemporal$store$now(){ -return (new Date()).getTime(); -}); -/** - * Default lease time in millis - 15mins - */ -intemporal.store.default_lease = (((15) * (60)) * (1000)); -intemporal.store.sym__GT_var = (function intemporal$store$sym__GT_var(store,p__54351){ -var map__54352 = p__54351; -var map__54352__$1 = cljs.core.__destructure_map(map__54352); -var task = map__54352__$1; -var sym = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54352__$1,new cljs.core.Keyword(null,"sym","sym",-1444860305)); -var fvar = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54352__$1,new cljs.core.Keyword(null,"fvar","fvar",1802913046)); -var or__5025__auto__ = fvar; -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return intemporal.store.lookup(store,sym); -} -}); -intemporal.store.edn_exists_QMARK_ = (function intemporal$store$edn_exists_QMARK_(file){ -return cljs.core.seq(window.localStorage.getItem(file)); -}); -intemporal.store.read_edn = (function intemporal$store$read_edn(file,readers){ -var f = window.localStorage.getItem(file); -return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"readers","readers",-2118263030),readers], null),f); -}); -intemporal.store.write_edn = (function intemporal$store$write_edn(file,val){ -return window.localStorage.setItem(file,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val], 0))); -}); -intemporal.store.default_owner = "intemporal"; - -/** -* @constructor - * @implements {intemporal.store.InternalVarStore} - * @implements {intemporal.store.TaskStore} - * @implements {cljs.core.IMeta} - * @implements {intemporal.store.HistoryStore} - * @implements {cljs.core.IWithMeta} -*/ -intemporal.store.t_intemporal$store54363 = (function (failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364){ -this.failures = failures; -this.maybe_fail_BANG_ = maybe_fail_BANG_; -this.owner = owner; -this.pcounter = pcounter; -this.p__54360 = p__54360; -this.vars = vars; -this.ecounter = ecounter; -this.update_task = update_task; -this.file = file; -this.readers = readers; -this.history = history; -this.tasks = tasks; -this.tcounter = tcounter; -this.counter = counter; -this.find_task = find_task; -this.map__54361 = map__54361; -this.persist_BANG_ = persist_BANG_; -this.meta54364 = meta54364; -this.cljs$lang$protocol_mask$partition0$ = 393216; -this.cljs$lang$protocol_mask$partition1$ = 0; -}); -(intemporal.store.t_intemporal$store54363.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_54365,meta54364__$1){ -var self__ = this; -var _54365__$1 = this; -return (new intemporal.store.t_intemporal$store54363(self__.failures,self__.maybe_fail_BANG_,self__.owner,self__.pcounter,self__.p__54360,self__.vars,self__.ecounter,self__.update_task,self__.file,self__.readers,self__.history,self__.tasks,self__.tcounter,self__.counter,self__.find_task,self__.map__54361,self__.persist_BANG_,meta54364__$1)); -})); - -(intemporal.store.t_intemporal$store54363.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_54365){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; -var _54365__$1 = this; -return self__.meta54364; +var this__5343__auto____$1 = this; +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){ +var vec__28983 = p__28980; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null); +return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); +}),init__5345__auto__,this__5343__auto____$1); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$ = cljs.core.PROTOCOL_SENTINEL); +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ = cljs.core.PROTOCOL_SENTINEL); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$register$arity$3 = (function (this$,sym,var$){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 = (function (_,workflow_id){ var self__ = this; -var this$__$1 = this; -return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.vars,cljs.core.assoc,sym,var$); +var ___$1 = this; +return cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"history","history",-247395220)], null),cljs.core.PersistentVector.EMPTY); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$lookup$arity$2 = (function (this$,sym){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 = (function (_,workflow_id,signal_name){ var self__ = this; -var this$__$1 = this; -return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.vars),sym); +var ___$1 = this; +return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signal-callbacks","signal-callbacks",-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0)); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$ = cljs.core.PROTOCOL_SENTINEL); - -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$list_events$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 = (function (_,workflow_id){ var self__ = this; -var this$__$1 = this; -return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(self__.history))); +var ___$1 = this; +return cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"cancelled","cancelled",488726224)], null),false); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$save_event$arity$3 = (function (this$,task_id,event){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 = (function (_,workflow_id,signal_name){ var self__ = this; -var this$__$1 = this; -var evt_PLUS_id = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(event,new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.counter,cljs.core.inc)); -(intemporal.store.internal.validate_event_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_event_BANG_.cljs$core$IFn$_invoke$arity$1(evt_PLUS_id) : intemporal.store.internal.validate_event_BANG_.call(null,evt_PLUS_id)); +var ___$1 = this; +var result = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null); +cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){ +var signals = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signals","signals",1732137021),signal_name], null)); +if(cljs.core.seq(signals)){ +cljs.core.reset_BANG_(result,cljs.core.first(signals)); -cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.history,(function (v){ -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,task_id,cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(v,task_id); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; +return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signals","signals",1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest)); } else { -return cljs.core.PersistentVector.EMPTY; +return s; } -})(),evt_PLUS_id)); })); -return evt_PLUS_id; +return cljs.core.deref(result); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$all_events$arity$2 = (function (this$,task_id){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 = (function (this$,worfklow_id,event_type,seq_num){ var self__ = this; var this$__$1 = this; -return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.history),task_id); +var history__$1 = this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id); +return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){ +return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"event-type","event-type",319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"seq","seq",-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num))); +}),history__$1)); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$clear_events$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 = (function (_,workflow_id,signal_name,callback){ var self__ = this; -var this$__$1 = this; -return cljs.core.reset_BANG_(self__.history,cljs.core.PersistentArrayMap.EMPTY); +var ___$1 = this; +return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signal-callbacks","signal-callbacks",-89555556),signal_name], null),callback); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$ = cljs.core.PROTOCOL_SENTINEL); - -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$await_task$arity$2 = (function (this$,id){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 = (function (_,workflow_id){ var self__ = this; -var this$__$1 = this; -return this$__$1.intemporal$store$TaskStore$await_task$arity$3(null,id,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"timeout-ms","timeout-ms",754221406),intemporal.store.default_lease], null)); +var ___$1 = this; +return cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signals","signals",1732137021)], null),cljs.core.PersistentArrayMap.EMPTY); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$await_task$arity$3 = (function (this$,id,p__54366){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 = (function (_,workflow_id,events){ var self__ = this; -var map__54367 = p__54366; -var map__54367__$1 = cljs.core.__destructure_map(map__54367); -var opts = map__54367__$1; -var timeout_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54367__$1,new cljs.core.Keyword(null,"timeout-ms","timeout-ms",754221406)); -var this$__$1 = this; -(self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0 ? self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0() : self__.maybe_fail_BANG_.call(null)); - -var task = (self__.find_task.cljs$core$IFn$_invoke$arity$2 ? self__.find_task.cljs$core$IFn$_invoke$arity$2(this$__$1,id) : self__.find_task.call(null,this$__$1,id)); -var deferred = promesa.core.deferred(); -var wrap_result = (function (p__54368){ -var map__54369 = p__54368; -var map__54369__$1 = cljs.core.__destructure_map(map__54369); -var task__$1 = map__54369__$1; -var result = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54369__$1,new cljs.core.Keyword(null,"result","result",1415092211)); -if(intemporal.store.internal.success_QMARK_(task__$1)){ -return promesa.core.resolved(result); -} else { -if(intemporal.store.internal.failure_QMARK_(task__$1)){ -return promesa.core.rejected(result); +var ___$1 = this; +if(cljs.core.seq(events)){ +cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"history","history",-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0)); } else { -return promesa.core.rejected(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Unknown state",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"task","task",-1476607993),task__$1], null))); - -} } -}); -if(intemporal.store.internal.terminal_QMARK_(task)){ -return wrap_result(task); -} else { -this$__$1.intemporal$store$TaskStore$watch_task$arity$3(null,id,(function (task__$1){ -if(intemporal.store.internal.terminal_QMARK_(task__$1)){ -promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(deferred,task__$1); -return true; -} else { -return null; -} -})); - -return promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3(deferred,timeout_ms,new cljs.core.Keyword("intemporal.store","timeout","intemporal.store/timeout",-112290028)),(function (resolved){ -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("intemporal.store","timeout","intemporal.store/timeout",-112290028),resolved)){ -throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Timeout waiting for task to be completed",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"task","task",-1476607993),task], null)); -} else { -return wrap_result(resolved); -} -})); -} +return events; })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$watch_task$arity$3 = (function (this$,id,f){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 = (function (this$,workflow_id,signal_name,signal_data){ var self__ = this; var this$__$1 = this; -var k = cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(["watcher-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.pcounter,cljs.core.inc))].join('')); -var watchfn = (function (k__$1,atm,old,new$){ -var xf = cljs.core.comp.cljs$core$IFn$_invoke$arity$3(cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p1__54355_SHARP_){ -return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(id,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54355_SHARP_)); -})),cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p1__54356_SHARP_){ -return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54356_SHARP_)),p1__54356_SHARP_); -})),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))); -var changeset = cljs.core.transduce.cljs$core$IFn$_invoke$arity$3(xf,cljs.core.conj,cljs.core.vals(new$)); -if(cljs.core.truth_((function (){var and__5023__auto__ = cljs.core.first(changeset); -if(cljs.core.truth_(and__5023__auto__)){ -var G__54370 = cljs.core.first(changeset); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__54370) : f.call(null,G__54370)); -} else { -return and__5023__auto__; -} -})())){ -return cljs.core.remove_watch(self__.tasks,k__$1); +cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signals","signals",1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0)); + +var temp__5825__auto___29275 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"signal-callbacks","signal-callbacks",-89555556),signal_name], null)); +if(cljs.core.truth_(temp__5825__auto___29275)){ +var callback_29278 = temp__5825__auto___29275; +setTimeout(callback_29278,(0)); } else { -return null; } -}); -return cljs.core.add_watch(self__.tasks,k,watchfn); + +return signal_data; })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$task_LT__event$arity$3 = (function (this$,task_id,p__54371){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 = (function (_,workflow_id){ var self__ = this; -var map__54372 = p__54371; -var map__54372__$1 = cljs.core.__destructure_map(map__54372); -var event_descr = map__54372__$1; -var id = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"id","id",-1388402092)); -var ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"ref","ref",1289896967)); -var root = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"root","root",-448657453)); -var type = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"type","type",1174270348)); -var sym = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"sym","sym",-1444860305)); -var args = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"args","args",1315556576)); -var result = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"result","result",1415092211)); -var error = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,"error","error",-978969032)); -var this$__$1 = this; -if((!((args == null)))){ -var evt = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"ref","ref",1289896967),ref,new cljs.core.Keyword(null,"root","root",-448657453),root,new cljs.core.Keyword(null,"type","type",1174270348),type,new cljs.core.Keyword(null,"sym","sym",-1444860305),sym,new cljs.core.Keyword(null,"args","args",1315556576),args,new cljs.core.Keyword(null,"error","error",-978969032),null,new cljs.core.Keyword(null,"result","result",1415092211),null], null); -if(cljs.core.truth_(id)){ -} else { -this$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt); -} - -(self__.update_task.cljs$core$IFn$_invoke$arity$4 ? self__.update_task.cljs$core$IFn$_invoke$arity$4(this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"pending","pending",-220036727)) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"pending","pending",-220036727))); +var ___$1 = this; +return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"cancelled","cancelled",488726224)], null),true); +})); -return evt; +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 = (function (_,workflow_id){ +var self__ = this; +var ___$1 = this; +var wf = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id], null)); +if(cljs.core.truth_(new cljs.core.Keyword(null,"cancelled","cancelled",488726224).cljs$core$IFn$_invoke$arity$1(wf))){ +return new cljs.core.Keyword(null,"cancelled","cancelled",488726224); } else { -if((!((error == null)))){ -var evt = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"ref","ref",1289896967),ref,new cljs.core.Keyword(null,"root","root",-448657453),root,new cljs.core.Keyword(null,"type","type",1174270348),type,new cljs.core.Keyword(null,"sym","sym",-1444860305),sym,new cljs.core.Keyword(null,"args","args",1315556576),null,new cljs.core.Keyword(null,"error","error",-978969032),error,new cljs.core.Keyword(null,"result","result",1415092211),null], null); -if(cljs.core.truth_(id)){ +if(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,"history","history",-247395220).cljs$core$IFn$_invoke$arity$1(wf))){ +return new cljs.core.Keyword(null,"not-found","not-found",-629079980); } else { -this$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt); -} - -(self__.update_task.cljs$core$IFn$_invoke$arity$6 ? self__.update_task.cljs$core$IFn$_invoke$arity$6(this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"failure","failure",720415879),new cljs.core.Keyword(null,"result","result",1415092211),error) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"failure","failure",720415879),new cljs.core.Keyword(null,"result","result",1415092211),error)); +var last_event = cljs.core.last(new cljs.core.Keyword(null,"history","history",-247395220).cljs$core$IFn$_invoke$arity$1(wf)); +var G__29001 = new cljs.core.Keyword(null,"event-type","event-type",319722813).cljs$core$IFn$_invoke$arity$1(last_event); +var G__29001__$1 = (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null); +switch (G__29001__$1) { +case "workflow-completed": +return new cljs.core.Keyword(null,"completed","completed",-486056503); -return evt; -} else { -var evt = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"ref","ref",1289896967),ref,new cljs.core.Keyword(null,"root","root",-448657453),root,new cljs.core.Keyword(null,"type","type",1174270348),type,new cljs.core.Keyword(null,"sym","sym",-1444860305),sym,new cljs.core.Keyword(null,"args","args",1315556576),null,new cljs.core.Keyword(null,"error","error",-978969032),null,new cljs.core.Keyword(null,"result","result",1415092211),result], null); -if(cljs.core.truth_(id)){ -} else { -this$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt); -} +break; +case "workflow-failed": +return new cljs.core.Keyword(null,"failed","failed",-1397425762); -(self__.update_task.cljs$core$IFn$_invoke$arity$6 ? self__.update_task.cljs$core$IFn$_invoke$arity$6(this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"success","success",1890645906),new cljs.core.Keyword(null,"result","result",1415092211),result) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"success","success",1890645906),new cljs.core.Keyword(null,"result","result",1415092211),result)); +break; +default: +return new cljs.core.Keyword(null,"running","running",1554969103); -return evt; +} } } })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$enqueue_task$arity$2 = (function (this$,task){ +(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 = (function (_,workflow_id,event){ var self__ = this; -var this$__$1 = this; -(self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0 ? self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0() : self__.maybe_fail_BANG_.call(null)); +var ___$1 = this; +cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"workflows","workflows",1533711151),workflow_id,new cljs.core.Keyword(null,"history","history",-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0)); -var task_PLUS_owner = cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(task,new cljs.core.Keyword(null,"owner","owner",-392611939),self__.owner,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"order","order",-1254677256),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.tcounter,cljs.core.inc)], 0)); -(intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1(task_PLUS_owner) : intemporal.store.internal.validate_task_BANG_.call(null,task_PLUS_owner)); +return event; +})); -cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.tasks,cljs.core.assoc,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(task),task_PLUS_owner); +(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){ +var self__ = this; +var this__5338__auto____$1 = this; +var pr_pair__5341__auto__ = (function (keyval__5342__auto__){ +return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,""," ","",opts__5340__auto__,keyval__5342__auto__); +}); +return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.store.InMemoryStore{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"state","state",-1988618099),self__.state],null))], null),self__.__extmap)); +})); -this$__$1.intemporal$store$InternalVarStore$register$arity$3(null,new cljs.core.Keyword(null,"sym","sym",-1444860305).cljs$core$IFn$_invoke$arity$1(task_PLUS_owner),new cljs.core.Keyword(null,"fvar","fvar",1802913046).cljs$core$IFn$_invoke$arity$1(task_PLUS_owner)); +(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__28968){ +var self__ = this; +var G__28968__$1 = this; +return (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"state","state",-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +})); -return task_PLUS_owner; +(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ +var self__ = this; +var this__5321__auto____$1 = this; +return self__.__meta; })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2 = (function (this$,f){ +(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5318__auto__){ var self__ = this; -var this$__$1 = this; -var task__GT_run_QMARK_ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY); -return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.tasks,cljs.core.update_vals,(function (p__54373){ -var map__54374 = p__54373; -var map__54374__$1 = cljs.core.__destructure_map(map__54374); -var task = map__54374__$1; -var state = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54374__$1,new cljs.core.Keyword(null,"state","state",-1988618099)); -if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pending","pending",-220036727),state)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(task),self__.owner)) || ((new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(task) == null)))))){ -if(cljs.core.contains_QMARK_(cljs.core.deref(task__GT_run_QMARK_),task)){ -} else { -(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(task) : f.call(null,task)); +var this__5318__auto____$1 = this; +return (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash)); +})); -cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(task__GT_run_QMARK_,cljs.core.conj,task); -} +(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__5327__auto__){ +var self__ = this; +var this__5327__auto____$1 = this; +return (1 + cljs.core.count(self__.__extmap)); +})); -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(task,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"new","new",-2085437848),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"owner","owner",-392611939),self__.owner], 0)); +(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5319__auto__){ +var self__ = this; +var this__5319__auto____$1 = this; +var h__5134__auto__ = self__.__hash; +if((!((h__5134__auto__ == null)))){ +return h__5134__auto__; } else { -return task; +var h__5134__auto____$1 = (function (coll__5320__auto__){ +return (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__)); +})(this__5319__auto____$1); +(self__.__hash = h__5134__auto____$1); + +return h__5134__auto____$1; } })); -})); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$clear_tasks$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this28970,other28971){ var self__ = this; -var this$__$1 = this; -return cljs.core.reset_BANG_(self__.tasks,cljs.core.PersistentArrayMap.EMPTY); +var this28970__$1 = this; +return (((!((other28971 == null)))) && ((((this28970__$1.constructor === other28971.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap))))))); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$find_task$arity$2 = (function (this$,id){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ var self__ = this; -var this$__$1 = this; -return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54354_SHARP_){ -return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54354_SHARP_),id); -}),cljs.core.vals(cljs.core.deref(self__.tasks)))); +var this__5333__auto____$1 = this; +if(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"state","state",-1988618099),null], null), null),k__5334__auto__)){ +return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__); +} else { +return (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null)); +} })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$release_pending_tasks$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k28969){ var self__ = this; -var this$__$1 = this; -return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.tasks,cljs.core.update_vals,(function (p__54375){ -var map__54376 = p__54375; -var map__54376__$1 = cljs.core.__destructure_map(map__54376); -var task = map__54376__$1; -var state = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54376__$1,new cljs.core.Keyword(null,"state","state",-1988618099)); -var G__54377 = task; -if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pending","pending",-220036727),state)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(task),self__.owner)))){ -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__54377,new cljs.core.Keyword(null,"owner","owner",-392611939),null); -} else { -return G__54377; +var this__5330__auto____$1 = this; +var G__29104 = k28969; +var G__29104__$1 = (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null); +switch (G__29104__$1) { +case "state": +return true; + +break; +default: +return cljs.core.contains_QMARK_(self__.__extmap,k28969); + } })); -})); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$list_tasks$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__28968){ var self__ = this; -var this$__$1 = this; -return cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54353_SHARP_){ -return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.owner,new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(p1__54353_SHARP_))) || ((new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(p1__54353_SHARP_) == null))); -}),cljs.core.vals(cljs.core.deref(self__.tasks))); +var this__5331__auto____$1 = this; +var pred__29126 = cljs.core.keyword_identical_QMARK_; +var expr__29127 = k__5332__auto__; +if(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"state","state",-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,"state","state",-1988618099),expr__29127)))){ +return (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null)); +} else { +return (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null)); +} })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$task_LT__panic$arity$3 = (function (this$,task_id,error){ +(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ var self__ = this; -var this$__$1 = this; -return (self__.update_task.cljs$core$IFn$_invoke$arity$4 ? self__.update_task.cljs$core$IFn$_invoke$arity$4(this$__$1,task_id,new cljs.core.Keyword(null,"result","result",1415092211),error) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,"result","result",1415092211),error)); +var this__5336__auto____$1 = this; +return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"state","state",-1988618099),self__.state,null))], null),self__.__extmap)); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$dequeue_task$arity$1 = (function (this$){ +(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__28968){ var self__ = this; -var this$__$1 = this; -return this$__$1.intemporal$store$TaskStore$dequeue_task$arity$2(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"lease-ms","lease-ms",191549996),null], null)); +var this__5322__auto____$1 = this; +return (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash)); })); -(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$dequeue_task$arity$2 = (function (this$,p__54378){ +(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ var self__ = this; -var map__54379 = p__54378; -var map__54379__$1 = cljs.core.__destructure_map(map__54379); -var lease_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54379__$1,new cljs.core.Keyword(null,"lease-ms","lease-ms",191549996)); -var this$__$1 = this; -var first_new = (function (v){ -return cljs.core.first(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"order","order",-1254677256),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54357_SHARP_){ -var and__5023__auto__ = ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.owner,new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_))) || ((new cljs.core.Keyword(null,"owner","owner",-392611939).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_) == null))); -if(and__5023__auto__){ -var or__5025__auto__ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"new","new",-2085437848),new cljs.core.Keyword(null,"state","state",-1988618099).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_)); -if(or__5025__auto__){ -return or__5025__auto__; +var this__5328__auto____$1 = this; +if(cljs.core.vector_QMARK_(entry__5329__auto__)){ +return this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1))); } else { -var G__54380 = new cljs.core.Keyword(null,"lease-end","lease-end",2142146879).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_); -if((G__54380 == null)){ -return null; -} else { -return (G__54380 < intemporal.store.now()); -} +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__); } -} else { -return and__5023__auto__; -} -}),cljs.core.vals(v)))); -}); -var found_QMARK_ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null); -cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2(self__.tasks,(function (v){ -var found = first_new(v); -if(cljs.core.truth_(found)){ -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(found),cljs.core.reset_BANG_(found_QMARK_,cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(found,new cljs.core.Keyword(null,"state","state",-1988618099),new cljs.core.Keyword(null,"pending","pending",-220036727),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"fvar","fvar",1802913046),intemporal.store.sym__GT_var(this$__$1,found),new cljs.core.Keyword(null,"lease-end","lease-end",2142146879),(cljs.core.truth_(lease_ms)?(intemporal.store.now() + lease_ms):null)], 0)))); -} else { -return v; -} -})); - -return cljs.core.deref(found_QMARK_); })); -(intemporal.store.t_intemporal$store54363.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 18, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"failures","failures",727615171,null),new cljs.core.Symbol(null,"maybe-fail!","maybe-fail!",-88256508,null),new cljs.core.Symbol(null,"owner","owner",1247919588,null),new cljs.core.Symbol(null,"pcounter","pcounter",-1054343387,null),new cljs.core.Symbol(null,"p__54360","p__54360",1931893670,null),new cljs.core.Symbol(null,"vars","vars",-406425690,null),new cljs.core.Symbol(null,"ecounter","ecounter",-1468060630,null),new cljs.core.Symbol(null,"update-task","update-task",1145318256,null),new cljs.core.Symbol(null,"file","file",370885649,null),new cljs.core.Symbol(null,"readers","readers",-477731503,null),new cljs.core.Symbol(null,"history","history",1393136307,null),new cljs.core.Symbol(null,"tasks","tasks",-113837353,null),new cljs.core.Symbol(null,"tcounter","tcounter",1419138136,null),new cljs.core.Symbol(null,"counter","counter",-1850427592,null),new cljs.core.Symbol(null,"find-task","find-task",835161369,null),new cljs.core.Symbol(null,"map__54361","map__54361",2020921209,null),new cljs.core.Symbol(null,"persist!","persist!",-1958402018,null),new cljs.core.Symbol(null,"meta54364","meta54364",-1781238991,null)], null); +(intemporal.store.InMemoryStore.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"state","state",-348086572,null)], null); })); -(intemporal.store.t_intemporal$store54363.cljs$lang$type = true); +(intemporal.store.InMemoryStore.cljs$lang$type = true); -(intemporal.store.t_intemporal$store54363.cljs$lang$ctorStr = "intemporal.store/t_intemporal$store54363"); +(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq = (function (this__5369__auto__){ +return (new cljs.core.List(null,"intemporal.store/InMemoryStore",null,(1),null)); +})); -(intemporal.store.t_intemporal$store54363.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.store/t_intemporal$store54363"); +(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter = (function (this__5369__auto__,writer__5370__auto__){ +return cljs.core._write(writer__5370__auto__,"intemporal.store/InMemoryStore"); })); /** - * Positional factory function for intemporal.store/t_intemporal$store54363. + * Positional factory function for intemporal.store/InMemoryStore. */ -intemporal.store.__GT_t_intemporal$store54363 = (function intemporal$store$__GT_t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364){ -return (new intemporal.store.t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364)); +intemporal.store.__GT_InMemoryStore = (function intemporal$store$__GT_InMemoryStore(state){ +return (new intemporal.store.InMemoryStore(state,null,null,null)); }); - /** - * Creates a new memory-based store + * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values. */ -intemporal.store.make_store = (function intemporal$store$make_store(var_args){ -var G__54359 = arguments.length; -switch (G__54359) { -case 0: -return intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0(); - -break; -case 1: -return intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); - -break; -default: -throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); - -} -}); - -(intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0 = (function (){ -return intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1(null); -})); - -(intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1 = (function (p__54360){ -var map__54361 = p__54360; -var map__54361__$1 = cljs.core.__destructure_map(map__54361); -var owner = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__54361__$1,new cljs.core.Keyword(null,"owner","owner",-392611939),intemporal.store.default_owner); -var file = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54361__$1,new cljs.core.Keyword(null,"file","file",-1269645878)); -var readers = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54361__$1,new cljs.core.Keyword(null,"readers","readers",-2118263030)); -var failures = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__54361__$1,new cljs.core.Keyword(null,"failures","failures",-912916356),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"validation","validation",-2141396518),(0)], null)); -var tasks = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); -var history__$1 = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); -var counter = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)); -var pcounter = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)); -var ecounter = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)); -var tcounter = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)); -var vars = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); -var maybe_fail_BANG_ = (function (){ -if((cljs.core.rand_int((100)) < ((100) * cljs.core.get.cljs$core$IFn$_invoke$arity$2(failures,new cljs.core.Keyword(null,"validation","validation",-2141396518))))){ -throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Forced error via failure rate",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("intemporal.workflow.internal","type","intemporal.workflow.internal/type",-1847162431),new cljs.core.Keyword(null,"internal","internal",-854870097)], null)); +intemporal.store.map__GT_InMemoryStore = (function intemporal$store$map__GT_InMemoryStore(G__28972){ +var extmap__5365__auto__ = (function (){var G__29201 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,"state","state",-1988618099)); +if(cljs.core.record_QMARK_(G__28972)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201); } else { -return null; -} -}); -var persist_BANG_ = (function (k,ref,old,new$){ -if(cljs.core.truth_((function (){var and__5023__auto__ = file; -if(cljs.core.truth_(and__5023__auto__)){ -return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(old,new$); -} else { -return and__5023__auto__; -} -})())){ -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.store"; -var __id = null; -var __level = new cljs.core.Keyword(null,"debug","debug",-1608172596); -if(cljs.core.truth_((function (){var sf = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf)){ -return (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [115,26], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Persisting store to file",file], null)); -}),null)),null,null,null,null,null,null,null,null)); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { -return null; +return G__29201; } })(); - - -return intemporal.store.write_edn(file,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"tasks","tasks",-1754368880),cljs.core.deref(tasks),new cljs.core.Keyword(null,"history","history",-247395220),cljs.core.deref(history__$1),new cljs.core.Keyword(null,"counter","counter",804008177),cljs.core.deref(counter),new cljs.core.Keyword(null,"pcounter","pcounter",1600092382),cljs.core.deref(pcounter),new cljs.core.Keyword(null,"ecounter","ecounter",1186375139),cljs.core.deref(ecounter)], null)); -} else { -return null; -} -}); -var find_task = (function (this$,id){ -return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(tasks),id); +return (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,"state","state",-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null)); }); -var update_task = (function() { -var G__54425__delegate = function (this$,id,kvs){ -var temp__5825__auto__ = find_task(this$,id); -if(cljs.core.truth_(temp__5825__auto__)){ -var w = temp__5825__auto__; -maybe_fail_BANG_(); - -return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(tasks,cljs.core.assoc,id,(function (){var G__54362 = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc,w,kvs); -return (intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1(G__54362) : intemporal.store.internal.validate_task_BANG_.call(null,G__54362)); -})()); -} else { -return null; -} -}; -var G__54425 = function (this$,id,var_args){ -var kvs = null; -if (arguments.length > 2) { -var G__54426__i = 0, G__54426__a = new Array(arguments.length - 2); -while (G__54426__i < G__54426__a.length) {G__54426__a[G__54426__i] = arguments[G__54426__i + 2]; ++G__54426__i;} - kvs = new cljs.core.IndexedSeq(G__54426__a,0,null); -} -return G__54425__delegate.call(this,this$,id,kvs);}; -G__54425.cljs$lang$maxFixedArity = 2; -G__54425.cljs$lang$applyTo = (function (arglist__54427){ -var this$ = cljs.core.first(arglist__54427); -arglist__54427 = cljs.core.next(arglist__54427); -var id = cljs.core.first(arglist__54427); -var kvs = cljs.core.rest(arglist__54427); -return G__54425__delegate(this$,id,kvs); -}); -G__54425.cljs$core$IFn$_invoke$arity$variadic = G__54425__delegate; -return G__54425; -})() -; -if(cljs.core.truth_(file)){ -cljs.core.add_watch(tasks,new cljs.core.Keyword(null,"persist","persist",815289548),persist_BANG_); - -cljs.core.add_watch(history__$1,new cljs.core.Keyword(null,"persist","persist",815289548),persist_BANG_); - -cljs.core.add_watch(counter,new cljs.core.Keyword(null,"persist","persist",815289548),persist_BANG_); - -cljs.core.add_watch(pcounter,new cljs.core.Keyword(null,"persist","persist",815289548),persist_BANG_); - -cljs.core.add_watch(ecounter,new cljs.core.Keyword(null,"persist","persist",815289548),persist_BANG_); - -if(intemporal.store.edn_exists_QMARK_(file)){ -(function (){ -var __run_fn_form = null; -var __kind = new cljs.core.Keyword(null,"log","log",-1595516004); -var __ns = "intemporal.store"; -var __id = null; -var __level = new cljs.core.Keyword(null,"info","info",-317069002); -if(cljs.core.truth_((function (){var sf = taoensso.telemere.impl._STAR_rt_call_filter_STAR_; -if(cljs.core.truth_(sf)){ -return (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,"log","log",-1595516004),__ns,__id,__level)); -} else { -return true; -} -})())){ -var __inst = (new Date()); -var __thread = null; -var __root0 = taoensso.telemere.impl._STAR_trace_root_STAR_; -var __otel_context1 = null; -var __uid = null; -var __root1 = __root0; -var __run_result = null; -var signal__52369__auto__ = (new cljs.core.Delay((function (){ - -var signal__52360__auto__ = (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [142,10], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,(new cljs.core.Delay((function (){ -return taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Reading store file",file], null)); -}),null)),null,null,null,null,null,null,null,null)); -var temp__5823__auto__ = taoensso.telemere._STAR_xfn_STAR_; -if(cljs.core.truth_(temp__5823__auto__)){ -var xfn__52361__auto__ = temp__5823__auto__; -return (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__)); -} else { -return signal__52360__auto__; -} -}),null)); -taoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__))); - -if(cljs.core.truth_(__run_result)){ -return (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__)); -} else { -return true; -} -} else { -return null; -} -})(); - - -var data_54428 = intemporal.store.read_edn(file,readers); -cljs.core.reset_BANG_(tasks,(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"tasks","tasks",-1754368880).cljs$core$IFn$_invoke$arity$1(data_54428); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return cljs.core.PersistentArrayMap.EMPTY; -} -})()); - -cljs.core.reset_BANG_(history__$1,(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"history","history",-247395220).cljs$core$IFn$_invoke$arity$1(data_54428); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return cljs.core.PersistentArrayMap.EMPTY; -} -})()); - -cljs.core.reset_BANG_(counter,(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"counter","counter",804008177).cljs$core$IFn$_invoke$arity$1(data_54428); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return (0); -} -})()); - -cljs.core.reset_BANG_(pcounter,(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"pcounter","pcounter",1600092382).cljs$core$IFn$_invoke$arity$1(data_54428); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return (0); -} -})()); - -cljs.core.reset_BANG_(ecounter,(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"ecounter","ecounter",1186375139).cljs$core$IFn$_invoke$arity$1(data_54428); -if(cljs.core.truth_(or__5025__auto__)){ -return or__5025__auto__; -} else { -return (0); -} -})()); -} else { -} -} else { -} - -return (new intemporal.store.t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history__$1,tasks,tcounter,counter,find_task,map__54361__$1,persist_BANG_,cljs.core.PersistentArrayMap.EMPTY)); -})); - -(intemporal.store.make_store.cljs$lang$maxFixedArity = 1); //# sourceMappingURL=intemporal.store.js.map diff --git a/public/js/cljs-runtime/intemporal.store.js.map b/public/js/cljs-runtime/intemporal.store.js.map index 0cfbf63..0c7cccc 100644 --- a/public/js/cljs-runtime/intemporal.store.js.map +++ b/public/js/cljs-runtime/intemporal.store.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/store.cljc"],"mappings":";AAaA,AAAA;AAAA;;;6BAAA,7BAAa+B;;AAAb,IAAA/B,kDAAA,WACegC;AADf,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBACe+B,qBAAAA;IADf9B,kBAAA,CAAAC,4BAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACe8B,mCAAAA;;AADf,IAAA3B,kBAAA,CAAAF,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACe2B,mCAAAA;;AADf,MAAA,AAAA1B,2BAAA,uBACe0B;;;;AADf,AAAA;;;8BAAA,9BACG7B,oEAAY6B;AADf,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,uDAAA,jFACeA,0BAAAA;AADf,OACeA,oDAAAA;;AADf,OAAAhC,gDACegC;;;;AADf,IAAAzB,sDAAA,WAEgByB,MAAKC,QAAQC;AAF7B,AAAA,IAAAjC,kBAAA,EAAA,UAAA,OAAA,hBAEgB+B,qBAAAA;IAFhB9B,kBAAA,CAAAM,gCAAA,AAAAJ,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,qEAAAA,vBAEgB8B,iDAAAA,3CAAKC,iDAAAA,zCAAQC,iDAAAA;;AAF7B,IAAA7B,kBAAA,CAAAG,gCAAA;AAAA,AAAA,GAAA,GAAA,CAAAH,mBAAA;AAAA,QAAAA,gDAAAA,qEAAAA,vBAEgB2B,iDAAAA,3CAAKC,iDAAAA,zCAAQC,iDAAAA;;AAF7B,MAAA,AAAA5B,2BAAA,wBAEgB0B;;;;AAFhB,AAAA;;;kCAAA,lCAEGxB,4EAAawB,MAAKC,QAAQC;AAF7B,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,2DAAA,rFAEgBF,0BAAAA;AAFhB,OAEgBA,wDAAAA,MAAKC,QAAQC;;AAF7B,OAAA3B,oDAEgByB,MAAKC,QAAQC;;;;AAF7B,IAAAzB,sDAAA,WAIgBuB,MAAKC,QAAQE;AAJ7B,AAAA,IAAAlC,kBAAA,EAAA,UAAA,OAAA,hBAIgB+B,qBAAAA;IAJhB9B,kBAAA,CAAAQ,gCAAA,AAAAN,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,2EAAAA,7BAIgB8B,uDAAAA,jDAAKC,uDAAAA,/CAAQE,uDAAAA;;AAJ7B,IAAA9B,kBAAA,CAAAK,gCAAA;AAAA,AAAA,GAAA,GAAA,CAAAL,mBAAA;AAAA,QAAAA,gDAAAA,2EAAAA,7BAIgB2B,uDAAAA,jDAAKC,uDAAAA,/CAAQE,uDAAAA;;AAJ7B,MAAA,AAAA7B,2BAAA,wBAIgB0B;;;;AAJhB,AAAA;;;;;;;;kCAAA,lCAIGtB,4EAAasB,MAAKC,QAAQE;AAJ7B,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,2DAAA,rFAIgBH,0BAAAA;AAJhB,OAIgBA,wDAAAA,MAAKC,QAAQE;;AAJ7B,OAAA1B,oDAIgBuB,MAAKC,QAAQE;;;;AAJ7B,IAAAxB,kDAAA,WAWeqB,MAAKI,GAAGC;AAXvB,AAAA,IAAApC,kBAAA,EAAA,UAAA,OAAA,hBAWe+B,qBAAAA;IAXf9B,kBAAA,CAAAU,4BAAA,AAAAR,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mEAAAA,rBAWe8B,+CAAAA,zCAAKI,+CAAAA,5CAAGC,+CAAAA;;AAXvB,IAAAhC,kBAAA,CAAAO,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAP,mBAAA;AAAA,QAAAA,gDAAAA,mEAAAA,rBAWe2B,+CAAAA,zCAAKI,+CAAAA,5CAAGC,+CAAAA;;AAXvB,MAAA,AAAA/B,2BAAA,uBAWe0B;;;;AAXf,AAAA;;;8BAAA,9BAWGpB,oEAAYoB,MAAKI,GAAGC;AAXvB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,uDAAA,jFAWeL,0BAAAA;AAXf,OAWeA,oDAAAA,MAAKI,GAAGC;;AAXvB,OAAA1B,gDAWeqB,MAAKI,GAAGC;;;;AAXvB,IAAAxB,kDAAA;;6BAaemB,MAAKI;AAbpB,AAAA,IAAAnC,kBAAA,EAAA,UAAA,OAAA,hBAae+B,qBAAAA;IAbf9B,kBAAA,CAAAY,4BAAA,AAAAV,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,0DAAAA,ZAae8B,sCAAAA,hCAAKI,sCAAAA;;AAbpB,IAAA/B,kBAAA,CAAAS,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAT,mBAAA;AAAA,QAAAA,gDAAAA,0DAAAA,ZAae2B,sCAAAA,hCAAKI,sCAAAA;;AAbpB,MAAA,AAAA9B,2BAAA,uBAae0B;;;;6BAAUA,MAAKI,GAAGE;AAbjC,AAAA,IAAArC,kBAAA,EAAA,UAAA,OAAA,hBAayB+B,qBAAAA;IAbzB9B,kBAAA,CAAAY,4BAAA,AAAAV,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,+DAAAA,jBAayB8B,2CAAAA,rCAAKI,2CAAAA,xCAAGE,2CAAAA;;AAbjC,IAAAjC,kBAAA,CAAAS,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAT,mBAAA;AAAA,QAAAA,gDAAAA,+DAAAA,jBAayB2B,2CAAAA,rCAAKI,2CAAAA,xCAAGE,2CAAAA;;AAbjC,MAAA,AAAAhC,2BAAA,uBAayB0B;;;;oBAAAA,MAAKI,GAAGE;;;6BAARN,MAAKI;;6BAALJ,MAAKI,GAAGE;;;;;;;;;AAbjC,AAAA,AAAA;;;;;8BAAA,sCAAAvB,pEAaGD;AAbH,AAAA,IAAAE,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAF,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAG,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,4DAAA,5DAaGH,uEAAYkB,MAAKI;AAbpB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,uDAAA,jFAaeJ,0BAAAA;AAbf,OAaeA,oDAAAA,MAAKI;;AAbpB,OAAAvB,gDAaemB,MAAKI;;;;AAbpB,CAAA,4DAAA,5DAaGtB,uEAAsBkB,MAAKI,GAAGE;AAbjC,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,uDAAA,jFAayBN,0BAAAA;AAbzB,OAayBA,oDAAAA,MAAKI,GAAGE;;AAbjC,OAAAzB,gDAayBmB,MAAKI,GAAGE;;;;AAbjC,CAAA,sDAAA,tDAaGxB;;AAbH;AAAA,IAAAI,iDAAA,WAiBcc,MAAKI;AAjBnB,AAAA,IAAAnC,kBAAA,EAAA,UAAA,OAAA,hBAiBc+B,qBAAAA;IAjBd9B,kBAAA,CAAAiB,2BAAA,AAAAf,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,0DAAAA,ZAiBc8B,sCAAAA,hCAAKI,sCAAAA;;AAjBnB,IAAA/B,kBAAA,CAAAc,2BAAA;AAAA,AAAA,GAAA,GAAA,CAAAd,mBAAA;AAAA,QAAAA,gDAAAA,0DAAAA,ZAiBc2B,sCAAAA,hCAAKI,sCAAAA;;AAjBnB,MAAA,AAAA9B,2BAAA,sBAiBc0B;;;;AAjBd,AAAA;;;6BAAA,7BAiBGb,kEAAWa,MAAKI;AAjBnB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,sDAAA,hFAiBcJ,0BAAAA;AAjBd,OAiBcA,mDAAAA,MAAKI;;AAjBnB,OAAAlB,+CAiBcc,MAAKI;;;;AAjBnB,IAAAhB,+DAAA,WAmB4BY,MAAKK;AAnBjC,AAAA,IAAApC,kBAAA,EAAA,UAAA,OAAA,hBAmB4B+B,qBAAAA;IAnB5B9B,kBAAA,CAAAmB,yCAAA,AAAAjB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,gEAAAA,lBAmB4B8B,4CAAAA,tCAAKK,4CAAAA;;AAnBjC,IAAAhC,kBAAA,CAAAgB,yCAAA;AAAA,AAAA,GAAA,GAAA,CAAAhB,mBAAA;AAAA,QAAAA,gDAAAA,gEAAAA,lBAmB4B2B,4CAAAA,tCAAKK,4CAAAA;;AAnBjC,MAAA,AAAA/B,2BAAA,oCAmB4B0B;;;;AAnB5B,AAAA;;;2CAAA,3CAmBGX,8FAAyBW,MAAKK;AAnBjC,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,oEAAA,9FAmB4BL,0BAAAA;AAnB5B,OAmB4BA,iEAAAA,MAAKK;;AAnBjC,OAAAjB,6DAmB4BY,MAAKK;;;;AAnBjC,IAAAf,6DAAA,WAqB0BU;AArB1B,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBAqB0B+B,qBAAAA;IArB1B9B,kBAAA,CAAAqB,uCAAA,AAAAnB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAqB0B8B,mCAAAA;;AArB1B,IAAA3B,kBAAA,CAAAkB,uCAAA;AAAA,AAAA,GAAA,GAAA,CAAAlB,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAqB0B2B,mCAAAA;;AArB1B,MAAA,AAAA1B,2BAAA,kCAqB0B0B;;;;AArB1B,AAAA;;;yCAAA,zCAqBGT,0FAAuBS;AArB1B,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,kEAAA,5FAqB0BA,0BAAAA;AArB1B,OAqB0BA,+DAAAA;;AArB1B,OAAAV,2DAqB0BU;;;;AArB1B,IAAAR,oDAAA,WAuBiBQ,MAAKO;AAvBtB,AAAA,IAAAtC,kBAAA,EAAA,UAAA,OAAA,hBAuBiB+B,qBAAAA;IAvBjB9B,kBAAA,CAAAuB,8BAAA,AAAArB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAuBiB8B,wCAAAA,lCAAKO,wCAAAA;;AAvBtB,IAAAlC,kBAAA,CAAAoB,8BAAA;AAAA,AAAA,GAAA,GAAA,CAAApB,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAuBiB2B,wCAAAA,lCAAKO,wCAAAA;;AAvBtB,MAAA,AAAAjC,2BAAA,yBAuBiB0B;;;;AAvBjB,AAAA;;;gCAAA,hCAuBGP,wEAAcO,MAAKO;AAvBtB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,yDAAA,nFAuBiBP,0BAAAA;AAvBjB,OAuBiBA,sDAAAA,MAAKO;;AAvBtB,OAAAf,kDAuBiBQ,MAAKO;;;;AAvBtB,IAAAb,oDAAA;;6BAyBiBM;AAzBjB,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBAyBiB+B,qBAAAA;IAzBjB9B,kBAAA,CAAAyB,8BAAA,AAAAvB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAyBiB8B,mCAAAA;;AAzBjB,IAAA3B,kBAAA,CAAAsB,8BAAA;AAAA,AAAA,GAAA,GAAA,CAAAtB,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAyBiB2B,mCAAAA;;AAzBjB,MAAA,AAAA1B,2BAAA,yBAyBiB0B;;;;6BAAOA,MAAKM;AAzB7B,AAAA,IAAArC,kBAAA,EAAA,UAAA,OAAA,hBAyBwB+B,qBAAAA;IAzBxB9B,kBAAA,CAAAyB,8BAAA,AAAAvB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAyBwB8B,wCAAAA,lCAAKM,wCAAAA;;AAzB7B,IAAAjC,kBAAA,CAAAsB,8BAAA;AAAA,AAAA,GAAA,GAAA,CAAAtB,mBAAA;AAAA,QAAAA,gDAAAA,4DAAAA,dAyBwB2B,wCAAAA,lCAAKM,wCAAAA;;AAzB7B,MAAA,AAAAhC,2BAAA,yBAyBwB0B;;;;oBAAAA,MAAKM;;;6BAALN;;6BAAAA,MAAKM;;;;;;;;;AAzB7B,AAAA,AAAA;;;;;;;gCAAA,wCAAAvB,xEAyBGY;AAzBH,AAAA,IAAAC,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAD,4DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAV,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAyBGU,yEAAcK;AAzBjB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,yDAAA,nFAyBiBA,0BAAAA;AAzBjB,OAyBiBA,sDAAAA;;AAzBjB,OAAAN,kDAyBiBM;;;;AAzBjB,CAAA,8DAAA,9DAyBGL,yEAAqBK,MAAKM;AAzB7B,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,yDAAA,nFAyBwBN,0BAAAA;AAzBxB,OAyBwBA,sDAAAA,MAAKM;;AAzB7B,OAAAZ,kDAyBwBM,MAAKM;;;;AAzB7B,CAAA,wDAAA,xDAyBGX;;AAzBH;AAAA,IAAAE,mDAAA,WA+BgBG;AA/BhB,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBA+BgB+B,qBAAAA;IA/BhB9B,kBAAA,CAAA4B,6BAAA,AAAA1B,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TA+BgB8B,mCAAAA;;AA/BhB,IAAA3B,kBAAA,CAAAyB,6BAAA;AAAA,AAAA,GAAA,GAAA,CAAAzB,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TA+BgB2B,mCAAAA;;AA/BhB,MAAA,AAAA1B,2BAAA,wBA+BgB0B;;;;AA/BhB,AAAA;;;+BAAA,/BA+BGF,sEAAaE;AA/BhB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,wDAAA,lFA+BgBA,0BAAAA;AA/BhB,OA+BgBA,qDAAAA;;AA/BhB,OAAAH,iDA+BgBG;;;;AA/BhB,AAkCA,AAAA;AAAA;;;gCAAA,hCAAagB;;AAAb,IAAAR,sDAAA,WACgBR;AADhB,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBACgB+B,qBAAAA;IADhB9B,kBAAA,CAAAuC,6BAAA,AAAArC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACgB8B,mCAAAA;;AADhB,IAAA3B,kBAAA,CAAAoC,6BAAA;AAAA,AAAA,GAAA,GAAA,CAAApC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACgB2B,mCAAAA;;AADhB,MAAA,AAAA1B,2BAAA,2BACgB0B;;;;AADhB,AAAA;;;+BAAA,/BACGS,sEAAaT;AADhB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,2DAAA,rFACgBA,0BAAAA;AADhB,OACgBA,wDAAAA;;AADhB,OAAAQ,oDACgBR;;;;AADhB,IAAAU,qDAAA,WAEeV,MAAKC,QAAQgB;AAF5B,AAAA,IAAAhD,kBAAA,EAAA,UAAA,OAAA,hBAEe+B,qBAAAA;IAFf9B,kBAAA,CAAAyC,4BAAA,AAAAvC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,qEAAAA,vBAEe8B,iDAAAA,3CAAKC,iDAAAA,zCAAQgB,iDAAAA;;AAF5B,IAAA5C,kBAAA,CAAAsC,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAtC,mBAAA;AAAA,QAAAA,gDAAAA,qEAAAA,vBAEe2B,iDAAAA,3CAAKC,iDAAAA,zCAAQgB,iDAAAA;;AAF5B,MAAA,AAAA3C,2BAAA,0BAEe0B;;;;AAFf,AAAA;;;8BAAA,9BAEGW,oEAAYX,MAAKC,QAAQgB;AAF5B,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,0DAAA,pFAEejB,0BAAAA;AAFf,OAEeA,uDAAAA,MAAKC,QAAQgB;;AAF5B,OAAAP,mDAEeV,MAAKC,QAAQgB;;;;AAF5B,IAAAL,qDAAA,WAGeZ,MAAKC;AAHpB,AAAA,IAAAhC,kBAAA,EAAA,UAAA,OAAA,hBAGe+B,qBAAAA;IAHf9B,kBAAA,CAAA2C,4BAAA,AAAAzC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,+DAAAA,jBAGe8B,2CAAAA,rCAAKC,2CAAAA;;AAHpB,IAAA5B,kBAAA,CAAAwC,4BAAA;AAAA,AAAA,GAAA,GAAA,CAAAxC,mBAAA;AAAA,QAAAA,gDAAAA,+DAAAA,jBAGe2B,2CAAAA,rCAAKC,2CAAAA;;AAHpB,MAAA,AAAA3B,2BAAA,0BAGe0B;;;;AAHf,AAAA;;;8BAAA,9BAGGa,oEAAYb,MAAKC;AAHpB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,0DAAA,pFAGeD,0BAAAA;AAHf,OAGeA,uDAAAA,MAAKC;;AAHpB,OAAAW,mDAGeZ,MAAKC;;;;AAHpB,IAAAa,uDAAA,WAIiBd;AAJjB,AAAA,IAAA/B,kBAAA,EAAA,UAAA,OAAA,hBAIiB+B,qBAAAA;IAJjB9B,kBAAA,CAAA6C,8BAAA,AAAA3C,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAIiB8B,mCAAAA;;AAJjB,IAAA3B,kBAAA,CAAA0C,8BAAA;AAAA,AAAA,GAAA,GAAA,CAAA1C,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAIiB2B,mCAAAA;;AAJjB,MAAA,AAAA1B,2BAAA,4BAIiB0B;;;;AAJjB,AAAA;;;gCAAA,hCAIGe,wEAAcf;AAJjB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,4DAAA,tFAIiBA,0BAAAA;AAJjB,OAIiBA,yDAAAA;;AAJjB,OAAAc,qDAIiBd;;;;AAJjB,AAMA,AAAA;AAAA;;;oCAAA,pCAAasB;;AAAb,IAAAJ,uDAAA,WACalB,MAAKuB,IAAIC;AADtB,AAAA,IAAAvD,kBAAA,EAAA,UAAA,OAAA,hBACa+B,qBAAAA;IADb9B,kBAAA,CAAAiD,0BAAA,AAAA/C,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,gEAAAA,lBACa8B,4CAAAA,tCAAKuB,4CAAAA,xCAAIC,4CAAAA;;AADtB,IAAAnD,kBAAA,CAAA8C,0BAAA;AAAA,AAAA,GAAA,GAAA,CAAA9C,mBAAA;AAAA,QAAAA,gDAAAA,gEAAAA,lBACa2B,4CAAAA,tCAAKuB,4CAAAA,xCAAIC,4CAAAA;;AADtB,MAAA,AAAAlD,2BAAA,4BACa0B;;;;AADb,AAAA;;;4BAAA,5BACGmB,gEAAUnB,MAAKuB,IAAIC;AADtB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,4DAAA,tFACaxB,0BAAAA;AADb,OACaA,yDAAAA,MAAKuB,IAAIC;;AADtB,OAAAN,qDACalB,MAAKuB,IAAIC;;;;AADtB,IAAAJ,qDAAA,WAEWpB,MAAKuB;AAFhB,AAAA,IAAAtD,kBAAA,EAAA,UAAA,OAAA,hBAEW+B,qBAAAA;IAFX9B,kBAAA,CAAAmD,wBAAA,AAAAjD,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,2DAAAA,bAEW8B,uCAAAA,jCAAKuB,uCAAAA;;AAFhB,IAAAlD,kBAAA,CAAAgD,wBAAA;AAAA,AAAA,GAAA,GAAA,CAAAhD,mBAAA;AAAA,QAAAA,gDAAAA,2DAAAA,bAEW2B,uCAAAA,jCAAKuB,uCAAAA;;AAFhB,MAAA,AAAAjD,2BAAA,0BAEW0B;;;;AAFX,AAAA;;;0BAAA,1BAEGqB,4DAAQrB,MAAKuB;AAFhB,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,0DAAA,pFAEWvB,0BAAAA;AAFX,OAEWA,uDAAAA,MAAKuB;;AAFhB,OAAAH,mDAEWpB,MAAKuB;;;;AAFhB,AAOA,uBAAA,vBAAME;AAAN,AAEW,OAAU,KAAAC;;AAErB;;;AAAKC,iCACH,CAAA,CAAA,OAAA,QAAA;AAEF,+BAAA,6CAAAC,5EAAMI,sEAAUC;AAAhB,AAAA,IAAAJ,aAAAD;IAAAC,iBAAA,AAAAC,4BAAAD;WAAAA,PAA4CtB;UAA5C,AAAAwB,4CAAAF,eAAA,jEAA8BN;WAA9B,AAAAQ,4CAAAF,eAAA,lEAAkCK;AAAlC,AAEW,IAAAC,mBAAID;AAAJ,AAAA,oBAAAC;AAAAA;;AAAS,OAACd,wBAAOY,MAAMV;;;AAElC,qCAAA,rCAAOa,kFAAaC;AAApB,AAEW,OAACC,cAAI,AAAU,AAAgBC,4BAAWF;;AAErD,4BAAA,5BAAMG,gEAAUH,KAAKI;AAArB,AAGW,IAAMC,IAAE,AAAU,AAAgBH,4BAAWF;AAA7C,AACE,uEAAA,2CAAA,3GAACM,uKAA0BF,gBAASC;;AAEjD,6BAAA,7BAAME,kEAAWP,KAAKQ;AAAtB,AAEW,OAAU,AAAgBN,4BAAWF,KAAK,AAACS,wGAAOD;;AAM7D,iCAAA,jCAAKE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6FAMOM,4FAAMhB,YAAKI,hJAAQa,8KAItBC,fACAE,4CACAC,tJACAC,4CACAC,0FACAC,tGACAC,rEACAC,6OAMAG,nCASAmC,zGAGAC;;;;;;;;;;;oHA2BStG,MAAKuB,IAAIC;;IAATxB;AACA,OAAC8G,mDAAMhD,YAAK6C,gBAAMpF,IAAIC;;;kHACxBxB,MAAKuB;;IAALvB;AAEE,mDAAA,AAAAoG,5CAACrE,4DAAK+B,aAAKvC;;;;;mHAGRvB;;IAAAA;AACZ,OAAC0G,8CAAMS,iBAAO,eAAA,AAAAf,fAACgB,+BAAM3D;;;kHACVzD,MAAKC,QAAQgB;;IAAbjB;AACX,IAAMqH,cAAO,oDAAA,pDAACC,8CAAMrG,wDAAU,AAAC6F,mDAAMpD,eAAQ6D;AAA7C,AACE,CAACC,+EAAAA,4FAAAA,fAAmBH,wEAAAA;;AACpB,AAACP,mDAAMrD,eAAQ,WAAKgE;AAAL,AACE,OAACH,8CAAMG,EAAExH,qDAAY,iBAAAkC,mBAAI,AAACJ,4CAAI0F,EAAExH,/HACX,AAACyH;AADD,AAAA,oBAAAvF;AAAAA;;AAAA;;KACMkF;;;AAC5CA;;;kHACSrH,MAAKC;;IAALD;AACX,mDAAA,AAAAoG,5CAACrE,4DAAK0B,gBAAQxD;;;oHAEDD;;IAAAA;AACb,4CAAA,rCAACiH,sBAAOxD;;;;;+GAyDGzD,MAAKI;;IAALJ;AACX,uEAAA,2CAAA,3GAAYA,6DAAKI,8GAAgBuB;;;+GAEtB3B,MAAKI;;;;IAA2BE;IAAhB4I;IAAhBlJ;AACX,CAAC+D,wDAAAA,0DAAAA;;AACD,IAAMxD,OAAY,CAAC8F,iDAAAA,+DAAAA,hBAAUrG,2CAAAA,jCAAKI,2CAAAA;IAC5B+I,WAAY,AAACC;IACbC,cAAY,WAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAC,iBAAA,AAAAzH,4BAAAyH;eAAAA,XAAyBhJ;aAAzB,AAAAwB,4CAAAwH,eAAA,pEAAatB;AAAb,AACE,GACE,AAACuB,yCAAYjJ;AAAM,OAACkJ,sBAAWxB;;AADjC,GAEE,AAACyB,yCAAYnJ;AAAM,OAACoJ,sBAAW1B;;AAFjC,AAGQ,OAAC0B,sBAAW,gDAAA,gBAAA,2CAAA,3GAAC1F,iKAA+B1D;;;;;AANxE,AAQE,GAAI,AAACqJ,0CAAarJ;AAChB,OAAC8I,YAAY9I;;AAEb,AACE,AAAYP,6DAAKI,GAAG,WAAKG;AAAL,AACE,GAAM,AAACqJ,0CAAarJ;AAApB,AACE,AAACsJ,yDAAWV,SAAS5I;;AADvB;;AAAA;;;;uDAKlB,uEAAA,vEAACuJ,mDAAUX,SAASD,nHACpB,OAACa,kNAAO,WAAKC;AAAL,AACE,GAAI,6CAAA,7CAACnC,uIAAYmC;AACf,MAAO,gDAAA,2CAAA,2CAAA,tIAAC/F,4LAA0D1D;;AAClE,OAAC8I,YAAYW;;;;;;+GAzCxBhK,MAAKI,GAAGsC;;IAAR1C;AACX,IAAMmE,IAAQ,AAACkE,gDAAQ,CAAA,uDAAgB,AAACvB,mDAAMnD,gBAAS4D;IACjDe,UAAQ,WAAKnE,MAAEoE,IAAIlE,IAAIC;AAAf,AACE,IAAMkE,KAAU,AAACC,6CACC,+CAAA,WAAAC,1DAACd;AAAD,AAAS,OAACC,6CAAEzH,GAAG,AAAA,gFAAAsI;IACf,+CAAA,WAAAC,1DAACf;AAAD,AAAS,0MAAAe,nMAACnE,gDAAK,AAACzC,4CAAIsC,IAAI,AAAA,gFAAAsE;IACxB,6CAAA,7CAACC;IACbC,YAAU,AAACC,kDAAUN,GAAGO,eAAK,AAAC3B,eAAK9C;AAJzC,AAME,oBAAM,iBAAAC,oBAAK,AAAC6D,gBAAMS;AAAZ,AAAA,oBAAAtE;AACK,IAAAyE,WAAG,AAACZ,gBAAMS;AAAV,AAAA,0EAAAG,wBAAAA,1FAACtG,kCAAAA,4CAAAA;;AADN6B;;;AAAN,AAEE,OAAC0E,uBAAa1F,aAAMY;;AAFtB;;;AARlB,AAWE,OAAC4C,oBAAUxD,aAAMY,EAAEmE;;;mHA5CTtI,MAAKC;;;;IAA4DE;IAA5CC;IAAGgE;IAAI0D;IAAKC;IAAKxG;IAAIyG;IAAKC;IAAO/H;IAAtDF;AAIZ,GACE,GAAA,SAAA,RAAOgI;AACP,UAAA,2CAAA,uDAAA,0DAAA,0DAAA,wDAAA,0DAAA,uDAAA,KAAA,yDAAA,ncAAME,oGAAU9D,yDAAU0D,0DAAWC,yDAAUxG,yDAAUyG;AAAzD,AACE,oBAAU5H;AAAV;AAAA,AACE,AAAYJ,gEAAKC,QAAQiI;;;AAC3B,uHAAA,wDAAA,6GAAA,wDAAA,nVAAC5B,mDAAAA,yLAAAA,xIAAYtG,qKAAAA,3JAAKC,qKAAAA;;AAClBiI;;AANJ,GAQE,GAAA,UAAA,TAAOhI;AACP,UAAA,2CAAA,uDAAA,0DAAA,0DAAA,wDAAA,qDAAA,KAAA,6DAAA,yDAAA,pcAAMgI,oGAAU9D,yDAAU0D,0DAAWC,yDAAUxG,qHAAqBrB;AAApE,AACE,oBAAUE;AAAV;AAAA,AACE,AAAYJ,gEAAKC,QAAQiI;;;AAC3B,uHAAA,wDAAA,0DAAA,iHAAA,wDAAA,0DAAA,3cAAC5B,mDAAAA,uPAAAA,tMAAYtG,mOAAAA,zNAAKC,mOAAAA,hDAAgCC,mOAAAA;;AAClDgI;;AAbJ,AAiBE,UAAA,2CAAA,uDAAA,0DAAA,0DAAA,wDAAA,qDAAA,KAAA,uDAAA,KAAA,1YAAMA,oGAAU9D,yDAAU0D,0DAAWC,yDAAUxG,mLAAiC0G;AAAhF,AACE,oBAAU7H;AAAV;AAAA,AACE,AAAYJ,gEAAKC,QAAQiI;;;AAC3B,uHAAA,wDAAA,2DAAA,kHAAA,wDAAA,2DAAA,9cAAC5B,mDAAAA,yPAAAA,xMAAYtG,qOAAAA,3NAAKC,qOAAAA,jDAAgCgI,qOAAAA;;AAClDC;;;;;;iHA4ESlI,MAAKO;;IAALP;AACb,CAAC+D,wDAAAA,0DAAAA;;AACD,IAAM2G,kBAAW,0DAAA,sHAAA,hLAACpD,qDAAM/G,4DAAY8C,uHAAa,AAACyD,mDAAMjD,gBAAS0D;AAAjE,AACE,CAACV,8EAAAA,+FAAAA,nBAAkB6D,2EAAAA;;AACnB,AAAC5D,mDAAMvD,aAAMoD,gBAAM,AAAA,gFAAKpG,MAAMmK;;AACrB,AAAU1K,kEAAK,AAAA,kFAAM0K,iBAAY,AAAA,mFAAOA;;AACjDA;;;4HAvBsB1K,MAAK0C;;IAAL1C;AACxB,IAAMsK,sBAAW,6CAAA,7CAAC9G;AAAlB,AACE,OAACsD,mDAAMvD,aACA0G,sBACA,WAAAM;AAAA,AAAA,IAAAC,aAAAD;IAAAC,iBAAA,AAAA1I,4BAAA0I;WAAAA,PAAwBjK;YAAxB,AAAAwB,4CAAAyI,eAAA,nEAAaJ;AAAb,AACE,GAAI,EAAK,6CAAA,7CAACvC,wGAAWuC,YACZ,EAAI,AAACvC,6CAAE,AAAA,qFAAQtH,MAAM8C,mBACjB,+FAAA,9FAAM,AAAA,qFAAQ9C;AACzB,AAEE,GAAU,0BAAA,AAAA6F,1BAACqE,0CAAWH,qBAAW/J;AAAjC;AAAA,AACE,CAACmC,kCAAAA,wCAAAA,RAAEnC,oBAAAA;;AACH,AAACuG,mDAAMwD,oBAAWvB,eAAKxI;;;AACzB,iEAAA,wDAAA,sGAAA,xNAAC+G,qDAAM/G,0NAAwB8C;;AAEjC9C;;;;;gHAsCDP;;IAAAA;AACZ,0CAAA,nCAACiH,sBAAO1D;;;8GA/GEvD,MAAKI;;IAALJ;uBAEL,+CAAA,WAAAmI,1DAACP,vBACD,OAACQ;AADD,AAAS,OAACP,6CAAE,AAAA,gFAAAM,kBAAQ/H;GADpB,eAAA,AAAAgG,fAACgB,+BAAM7D;;;0HA+CUvD;;IAAAA;AACtB,OAAC8G,mDAAMvD,aACA0G,sBACA,WAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAC,iBAAA,AAAArI,4BAAAqI;WAAAA,PAAwB5J;YAAxB,AAAAwB,4CAAAoI,eAAA,nEAAaC;AAAb,AACE,IAAAC,WAAQ9J;AAAR,AAAA,GACQ,EAAK,6CAAA,7CAACsH,wGAAWuC,YACZ,AAACvC,6CAAE,AAAA,qFAAQtH,MAAM8C;AACtB,qDAAAgH,SAAA,uDAAA,9GAAC/C;;AAHT+C;;;;;+GAvFErK;;IAAAA;AACX,sDAAA,WAAA2H,1DAACC;AAAD,AAAS,SAAI,AAACC,6CAAExE,aAAM,AAAA,qFAAAsE,wBACT,2GAAA,1GAAM,AAAA,qFAAAA;GACX,eAAA,AAAAvB,fAACgB,+BAAM7D;;;mHAEHvD,MAAKC,QAAQC;;IAAbF;AACZ,8HAAA,iHAAA,vOAACsG,mDAAAA,qIAAAA,pFAAYtG,iHAAAA,vGAAKC,iHAAAA,hDAAgBC,iHAAAA;;;iHA+GrBF;;IAAAA;AACb,sEAAA,2CAAA,4DAAA,tKAAcA;;;iHAEDA;;;;IAAa2K;IAAb3K;AACb,IAAM4K,YAAU,WAAKnD;AAAL,+HACa,+CAAA,WAAAoD,1DAACjD,xGAKD,gDAAA,hDAACmD,vBACD,OAAC3C;AAND,AAAS,IAAA7D,oBACE,EAAI,AAACsD,6CAAExE,aAAM,AAAA,qFAAAwH,wBAAY,2GAAA,1GAAM,AAAA,qFAAAA;AADjC,AAAA,GAAAtG;AAEE,IAAApC,mBAAI,6CAAA,7CAAC0F,iGAAO,AAAA,sFAAAgD;AAAZ,AAAA,GAAA1I;AAAAA;;AACI,IAAA2I,WAAQ,AAAA,6FAAAD;AAAR,AAAA,GAAA,CAAAC,YAAA;AAAA;;AACQ,QAAAA,WAAG,AAACrJ;;;;AAJlB8C;;GADT,AAAC6C,eAAKK;;IAQ7BuD,eAAU,6CAAA,7CAACxH;AARjB,AAUE,AAACyH,wDAAW1H,aACA,WAAKkE;AAAL,AAAQ,IAAMyD,QAAM,AAACN,UAAUnD;AAAvB,AACE,oBAAIyD;iLACG,2DAAA,wDAAA,6GAAA,mGAAA,nUAAC5D,qDAAM4D,gOACY,AAAClJ,6BAAShC,UAAKkL,sEAEV,4BAAA,oCAAA,9CAAMP,UACJ,CAAG,AAAClJ,yBAAKkJ,3dACnC,AAAC1D,sBAAO+D,pKACR,OAAC1D,8CAAMG,EAAE,AAAA,gFAAKyD;;AACnBzD;;;;AAExB,OAAArB,gBAAM4E;;;;;;;;;;;;;;;;;;kIA9NL3H,kDAAMhB,KAAKI,jFAAQa,iGAItBC,RACAE,uBACAC,hFACAC,uBACAC,gDACAC,rDACAC,zCACAC,oIAMAG,rBASAmC,xDAGAC;+EA7BGjD,kDAAMhB,KAAKI,jFAAQa,iGAItBC,RACAE,uBACAC,hFACAC,uBACAC,gDACAC,rDACAC,zCACAC,oIAMAG,rBASAmC,xDAGAC;;;;AAjCT,AAAA;;;8BAAA,sCAAAvH,pEAAMkE;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAhE,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,4DAAA,5DAAMgE;AAAN,AAGG,iEAAA,1DAACG;;;AAHJ,CAAA,4DAAA,WAAAF,vEAAMD;AAAN,AAAA,IAAAE,aAAAD;IAAAC,iBAAA,AAAArB,4BAAAqB;YAAA,AAAApB,4CAAAoB,eAAA,nEAIYE,0HACSN;WALrB,AAAAhB,4CAAAoB,eAAA,lEAIkBd;cAJlB,AAAAN,4CAAAoB,eAAA,rEAIuBV;eAJvB,AAAAV,4CAAAoB,eAAA,6DAAA,2CAAA,kEAAA,hPAI+BG;AAJ/B,AAQG,IAAMC,QAAY,6CAAA,7CAACC;IACbC,cAAY,6CAAA,7CAACD;IACbE,UAAY,6CAAA,7CAACF;IACbG,WAAY,6CAAA,7CAACH;IACbI,WAAY,6CAAA,7CAACJ;IACbK,WAAY,6CAAA,7CAACL;IACbM,OAAY,6CAAA,7CAACN;IACbO,mBAAY;AAAA,AACE,GAAM,CAAG,mBAAA,nBAACC,4BACD,CAAA,QAAO,qDAAA,rDAACjC,4CAAIuB;AADrB,AAEE,MAAO,gDAAA,gCAAA,2CAAA,6GAAA,xOAACW;;AAFV;;;IAKdC,gBAAY,WAAKC,EAAEC,IAAIC,IAAIC;AAAf,AACE,oBAAM,iBAAAC,oBAAKlC;AAAL,AAAA,oBAAAkC;AAAU,OAACC,gDAAKH,IAAIC;;AAApBC;;;AAAN,AACE,AAAA,AAAA;AAAA,AAAA,IAAAE,gBAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,UAAA;AAAA,AAAA,oBAAA,iBAAAC,KAAAC;AAAA,AAAA,oBAAAD;AAAA,QAAAA,mCAAAA,iCAAA,oDAAAH,KAAAC,KAAAC,WAAAC,aAAA,oDAAAH,KAAAC,KAAAC;;AAAA;;;AAAA,IAAAG,SAAA,KAAAtD;IAAAuD,WAAA;IAAAC,UAAAC;IAAAC,kBAAA;IAAAC,QAAA;IAAAC,UAAAJ;IAAAK,eAAA;IAAAC,wBAAA,KAAAC,gBAAA;AAAA,AAAA;AAAA,IAAAC,wBAAA,KAAAC,8BAAA,IAAAX,OAAAK,MAAAV,KAAA,mFAAA,IAAA,WAAA,KAAAD,OAAAE,KAAAC,QAAAe,kCAAAC,gDAAAP,QAAA,KAAA,KAAA,KAAAG,gBAAA;AAAA,AAAA,OAAAK,kCAAA,mFAAA,2BAA2CzD;GAA3C,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA,AAAA,IAAA0D,qBAAAC;AAAA,AAAA,oBAAAD;AAAA,IAAAE,qBAAAF;AAAA,AAAA,QAAAE,mDAAAA,iDAAAP,yBAAAO,6BAAAP;;AAAA,AAAAA;;GAAA;AAAA,AAAA,AAAAQ,6CAAA,KAAAC,qCAAAzB,OAAAC,KAAAC,KAAAC,QAAAW;;AAAA,oBAAAD;AAAA,QAAAA,6CAAAA,2CAAAC,yBAAAD,uBAAAC;;AAAA;;;AAAA;;;;AAAA;AACA,uCAAA,2CAAA,wDAAA,AAAAY,uBAAA,2DAAA,AAAAA,6BAAA,0DAAA,AAAAA,yBAAA,6DAAA,AAAAA,0BAAA,6DAAA,AAAAA,zdAACxD,2BAAUP,wHAAiBkB,kFACAE,uFACAC,sFACAC,uFACAC;;AAN9B;;;IAQdyC,YAAY,WAAKrG,MAAKI;AAAV,AACE,mDAAA,AAAAgG,5CAACrE,4DAAKwB,OAAMnD;;IAE1BkG,cAAY;mCAAKtG,MAAKI,GAAKmG;AAAf,AACE,IAAAC,qBAAa,AAACH,UAAUrG,MAAKI;AAA7B,AAAA,oBAAAoG;AAAA,AAAA,QAAAA,JAAWC;AAAX,AACE,AAAC1C;;+GACI,AAAC2C,8CAAMC,gBAAMF,EAAEF,5FACf,iBAAAK,pGACA,OAACE,mDAAMvD,MAAMoD,gBAAMvG;AADnB,AAAA,kKAAAwG,oEAAAA,9NAACC,8EAAAA,wFAAAA;;;AAHR;;;yBADG7G,MAAKI;IAAKmG;;;;EAAAA;;oCAAVvG,MAAKI,GAAKmG;;;IAAVvG;;IAAKI;IAAKmG;0BAAVvG,MAAKI,GAAKmG;;;;;;AAzBjC,AAiCE,oBAAMlE;AAAN,AAEE,0BAAA,1BAAC0E,oBAAUxD,gEAAeW;;AAC1B,gCAAA,hCAAC6C,oBAAUtD,sEAAiBS;;AAC5B,4BAAA,5BAAC6C,oBAAUrD,kEAAiBQ;;AAC5B,6BAAA,7BAAC6C,oBAAUpD,mEAAkBO;;AAC7B,6BAAA,7BAAC6C,oBAAUnD,mEAAkBM;;AAE7B,GAAM,AAAC9B,mCAAYC;AAAnB,AACE,AAAA,AAAA;AAAA,AAAA,IAAAoC,gBAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,UAAA;AAAA,AAAA,oBAAA,iBAAAC,KAAAC;AAAA,AAAA,oBAAAD;AAAA,QAAAA,mCAAAA,iCAAA,oDAAAH,KAAAC,KAAAC,WAAAC,aAAA,oDAAAH,KAAAC,KAAAC;;AAAA;;;AAAA,IAAAG,SAAA,KAAAtD;IAAAuD,WAAA;IAAAC,UAAAC;IAAAC,kBAAA;IAAAC,QAAA;IAAAC,UAAAJ;IAAAK,eAAA;IAAAC,wBAAA,KAAAC,gBAAA;AAAA,AAAA;AAAA,IAAAC,wBAAA,KAAAC,8BAAA,IAAAX,OAAAK,MAAAV,KAAA,mFAAA,IAAA,WAAA,KAAAD,OAAAE,KAAAC,QAAAe,kCAAAC,gDAAAP,QAAA,KAAA,KAAA,KAAAG,gBAAA;AAAA,AAAA,OAAAK,kCAAA,mFAAA,qBAAoCzD;GAApC,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA,AAAA,IAAA0D,qBAAAC;AAAA,AAAA,oBAAAD;AAAA,IAAAE,qBAAAF;AAAA,AAAA,QAAAE,mDAAAA,iDAAAP,yBAAAO,6BAAAP;;AAAA,AAAAA;;GAAA;AAAA,AAAA,AAAAQ,6CAAA,KAAAC,qCAAAzB,OAAAC,KAAAC,KAAAC,QAAAW;;AAAA,oBAAAD;AAAA,QAAAA,6CAAAA,2CAAAC,yBAAAD,uBAAAC;;AAAA;;;AAAA;;;;AAAA;AACA,IAAMwB,aAAK,AAACxE,0BAASH,KAAKI;AAA1B,AACE,AAACwE,sBAAO1D,MAAM,iBAAApB,mBAAI,AAAA,sFAAQ6E;AAAZ,AAAA,oBAAA7E;AAAAA;;AAAA;;;;AACd,AAAC8E,sBAAOxD,YAAQ,iBAAAtB,mBAAI,AAAA,yFAAU6E;AAAd,AAAA,oBAAA7E;AAAAA;;AAAA;;;;AAChB,AAAC8E,sBAAOvD,QAAQ,iBAAAvB,mBAAI,AAAA,wFAAU6E;AAAd,AAAA,oBAAA7E;AAAAA;;AAAA;;;;AAChB,AAAC8E,sBAAOtD,SAAS,iBAAAxB,mBAAI,AAAA,2FAAW6E;AAAf,AAAA,oBAAA7E;AAAAA;;AAAA;;;;AACjB,AAAC8E,sBAAOrD,SAAS,iBAAAzB,mBAAI,AAAA,2FAAW6E;AAAf,AAAA,oBAAA7E;AAAAA;;AAAA;;;;AAPrB;;AARF;;+EArCOkB,kDAAMhB,KAAKI,jFAAQa,qGAItBC,ZACAE,2BACAC,pFACAC,uBACAC,oDACAC,zDACAC,zCACAC,4IAMAG,zBASAmC,5DAGAC,rHAyBJ,YAAAY,kFAAAhE,6FAAAC,6BAAA;;;AA1DL,CAAA,sDAAA,tDAAMF;;AAAN","names":["intemporal$store$TaskStore$list_tasks$dyn","x__5373__auto__","m__5374__auto__","intemporal.store/list-tasks","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal$store$TaskStore$task_LT__panic$dyn","intemporal.store/task<-panic","intemporal$store$TaskStore$task_LT__event$dyn","intemporal.store/task<-event","intemporal$store$TaskStore$watch_task$dyn","intemporal.store/watch-task","intemporal$store$TaskStore$await_task$dyn","intemporal.store/await-task","var_args","G__54348","js/Error","intemporal$store$TaskStore$find_task$dyn","intemporal.store/find-task","intemporal$store$TaskStore$reenqueue_pending_tasks$dyn","intemporal.store/reenqueue-pending-tasks","intemporal$store$TaskStore$release_pending_tasks$dyn","intemporal.store/release-pending-tasks","intemporal$store$TaskStore$enqueue_task$dyn","intemporal.store/enqueue-task","intemporal$store$TaskStore$dequeue_task$dyn","intemporal.store/dequeue-task","G__54350","intemporal$store$TaskStore$clear_tasks$dyn","intemporal.store/clear-tasks","intemporal.store/TaskStore","this","task-id","error","event-descr","id","callback","opts","task","intemporal$store$HistoryStore$list_events$dyn","intemporal.store/list-events","intemporal$store$HistoryStore$save_event$dyn","intemporal.store/save-event","intemporal$store$HistoryStore$all_events$dyn","intemporal.store/all-events","intemporal$store$HistoryStore$clear_events$dyn","intemporal.store/clear-events","intemporal.store/HistoryStore","event","intemporal$store$InternalVarStore$register$dyn","intemporal.store/register","intemporal$store$InternalVarStore$lookup$dyn","intemporal.store/lookup","intemporal.store/InternalVarStore","sym","var","intemporal.store/now","js/Date","intemporal.store/default-lease","p__54351","map__54352","cljs.core/--destructure-map","cljs.core.get","intemporal.store/sym->var","store","fvar","or__5025__auto__","intemporal.store/edn-exists?","file","cljs.core/seq","js/window","intemporal.store/read-edn","readers","f","cljs.tools.reader.edn.read_string","intemporal.store/write-edn","val","cljs.core.pr_str","intemporal.store/default-owner","G__54359","intemporal.store/make-store","p__54360","map__54361","intemporal.store.make_store","owner","failures","tasks","cljs.core.atom","history","counter","pcounter","ecounter","tcounter","vars","maybe-fail!","cljs.core/rand-int","cljs.core.ex_info","persist!","k","ref","old","new","and__5023__auto__","cljs.core.not_EQ_","__run-fn-form","__kind","__ns","__id","__level","sf","taoensso.telemere.impl/*rt-call-filter*","__inst","__thread","__root0","taoensso.telemere.impl/*trace-root*","__otel-context1","__uid","__root1","__run-result","signal__52369__auto__","cljs.core/Delay","signal__52360__auto__","taoensso.telemere.impl/Signal","taoensso.telemere/*ctx*","taoensso.telemere.impl/*trace-parent*","taoensso.telemere.impl/signal-msg","temp__5823__auto__","taoensso.telemere/*xfn*","xfn__52361__auto__","taoensso.telemere.impl/dispatch-signal!","taoensso.telemere.impl/WrappedSignal","cljs.core/deref","find-task","update-task","kvs","temp__5825__auto__","w","cljs.core.apply","cljs.core/assoc","G__54362","intemporal.store.internal/validate-task!","cljs.core.swap_BANG_","cljs.core/add-watch","data","cljs.core/reset!","intemporal.store/t_intemporal$store54363","cljs.core/concat","cljs.core/vals","evt+id","cljs.core.assoc","cljs.core/inc","intemporal.store.internal/validate-event!","v","cljs.core.conj","p1__54353#","cljs.core.filter","cljs.core._EQ_","root","type","args","result","evt","p1__54354#","cljs.core/first","cljs.core.keyword","watchfn","atm","xf","cljs.core.comp","p1__54355#","p1__54356#","cljs.core.take","changeset","cljs.core.transduce","cljs.core/conj","G__54370","cljs.core/remove-watch","timeout-ms","deferred","promesa.core/deferred","wrap-result","p__54368","map__54369","intemporal.store.internal/success?","promesa.core/resolved","intemporal.store.internal/failure?","promesa.core/rejected","intemporal.store.internal/terminal?","promesa.core.resolve_BANG_","promesa.core.timeout","promesa.core.then","resolved","cljs.core/update-vals","p__54375","map__54376","state","G__54377","task->run?","p__54373","map__54374","cljs.core/contains?","task+owner","lease-ms","first-new","p1__54357#","G__54380","cljs.core.sort_by","found?","cljs.core.swap_vals_BANG_","found"],"sourcesContent":["(ns intemporal.store\n (:require [clojure.tools.reader.edn :as edn]\n [intemporal.store.internal :as si]\n [promesa.core :as p]\n [taoensso.telemere :as t]\n #?(:clj [clojure.java.io :as io]))\n #?(:clj (:import [java.io File])))\n\n#?(:clj (set! *warn-on-reflection* true))\n\n;;;;\n;; main protos\n\n(defprotocol TaskStore\n (list-tasks [this] \"Lists all tasks\")\n (task<-panic [this task-id error]\n \"Terminates the task via panic; events should not be stored\")\n (task<-event [this task-id event-descr]\n \"Transitions the task. The task should be dequeued beforehand. Returns the event.\n `event-descr` is one of:\n `{:sym 'ns/f :args [1]}`\n `{:sym 'ns/f :result :ok}`\n `{:sym 'ns/f :error }`\n \")\n (watch-task [this id callback]\n \"Observes state changes, calling `callback` for any task that matches `predicate`.\")\n (await-task [this id] [this id opts]\n \"Waits for workflow to finish. Returns a deref'able value. Can throw.\n Opts include\n - `timeout-ms`: timeout for task await\")\n (find-task [this id]\n \"Finds the task on the db by id\")\n (reenqueue-pending-tasks [this callback]\n \"Marks all pending tasks belonging to the store's `owner` as `new`\")\n (release-pending-tasks [this]\n \"Disowns all tasks that are pending\")\n (enqueue-task [this task]\n \"Atomically enqueues a protocol, workflow or activity task execution\")\n (dequeue-task [this] [this opts]\n \"Atomically dequeues some workflow, protocol or activity task execution.\n For deterministic purposes, should dequeue the oldest task first.\n If the task was deserialized, its `fvar` attribute must be a `fn`\n Opts:\n * `lease-ms`- duration of lease for dequeue. After lease expires, the task is eligible for dequeueing again\")\n (clear-tasks [this]\n \"Deletes all tasks\"))\n\n(defprotocol HistoryStore\n (list-events [this] \"Lists all events\")\n (save-event [this task-id event] \"Saves the event for the given task id. Returns the saved event\")\n (all-events [this task-id] \"Returns all the events for a given task id\")\n (clear-events [this] \"Deletes all events\"))\n\n(defprotocol InternalVarStore\n (register [this sym var] \"Register the symbol with the var\")\n (lookup [this sym] \"Finds the var for the given symbol\"))\n\n;;;;\n;; helpers\n\n(defn now []\n #?(:clj (System/currentTimeMillis)\n :cljs (.getTime (js/Date.))))\n\n(def default-lease \"Default lease time in millis - 15mins\"\n (* 15 60 1000))\n\n(defn sym->var [store {:keys [sym fvar] :as task}]\n #?(:clj (or fvar (requiring-resolve sym))\n :cljs (or fvar (lookup store sym))))\n\n(defn- edn-exists? [file]\n #?(:clj (.exists (File. ^String file))\n :cljs (seq (.getItem (.-localStorage js/window) file))))\n\n(defn read-edn [file readers]\n #?(:clj (with-open [f (io/reader file)]\n (edn/read-string {:readers readers} (slurp f)))\n :cljs (let [f (.getItem (.-localStorage js/window) file)]\n (edn/read-string {:readers readers} f))))\n\n(defn write-edn [file val]\n #?(:clj (spit file val)\n :cljs (.setItem (.-localStorage js/window) file (pr-str val))))\n\n;;;;\n;; main impl\n;;\n\n(def default-owner \"intemporal\")\n\n(defn make-store\n \"Creates a new memory-based store\"\n ([]\n (make-store nil))\n ([{:keys [owner file readers failures]\n :or {owner default-owner\n failures {:validation 0}}}]\n ;; TODO use single atom?\n (let [tasks (atom {})\n history (atom {})\n counter (atom 0)\n pcounter (atom 0)\n ecounter (atom 0)\n tcounter (atom 0)\n vars (atom {})\n maybe-fail! (fn []\n (when (< (rand-int 100)\n (* 100 (get failures :validation)))\n (throw (ex-info \"Forced error via failure rate\" {:intemporal.workflow.internal/type :internal}))))\n\n ;;persistence\n persist! (fn [k ref old new]\n (when (and file (not= old new))\n (t/log! :debug [\"Persisting store to file\" file])\n (write-edn file {:tasks @tasks\n :history @history\n :counter @counter\n :pcounter @pcounter\n :ecounter @ecounter})))\n\n find-task (fn [this id]\n (get @tasks id))\n\n update-task (fn [this id & kvs]\n (when-let [w (find-task this id)]\n (maybe-fail!)\n (->> (apply assoc w kvs)\n (si/validate-task!)\n (swap! tasks assoc id))))]\n\n ;; deser the db\n (when file\n ;; add hooks to persist on change\n (add-watch tasks :persist persist!)\n (add-watch history :persist persist!)\n (add-watch counter :persist persist!)\n (add-watch pcounter :persist persist!)\n (add-watch ecounter :persist persist!)\n\n (when (edn-exists? file)\n (t/log! :info [\"Reading store file\" file])\n (let [data (read-edn file readers)]\n (reset! tasks (or (:tasks data) {}))\n (reset! history (or (:history data) {}))\n (reset! counter (or (:counter data) 0))\n (reset! pcounter (or (:pcounter data) 0))\n (reset! ecounter (or (:ecounter data) 0)))))\n\n (reify\n InternalVarStore\n (register [this sym var]\n #?(:cljs (swap! vars assoc sym var)))\n (lookup [this sym]\n #?(:clj (requiring-resolve sym)\n :cljs (get @vars sym)))\n\n HistoryStore\n (list-events [this]\n (apply concat (vals @history)))\n (save-event [this task-id event]\n (let [evt+id (assoc event :id (swap! counter inc))]\n (si/validate-event! evt+id)\n (swap! history (fn [v]\n (assoc v task-id (-> (or (get v task-id) [])\n (conj evt+id)))))\n evt+id))\n (all-events [this task-id]\n (get @history task-id))\n\n (clear-events [this]\n (reset! history {}))\n\n TaskStore\n (list-tasks [this]\n (filter #(or (= owner (:owner %))\n (nil? (:owner %)))\n (vals @tasks)))\n\n (task<-panic [this task-id error]\n (update-task this task-id :result error))\n\n (task<-event [this task-id {:keys [id ref root type sym args result error] :as event-descr}]\n ;; some redundancy between :result in task and event\n ;; note that we save the event first, because update-task can trigger some watchers\n ;; and they would expect the event to be present in the history\n (cond\n (some? args)\n (let [evt {:ref ref :root root :type type :sym sym :args args :error nil :result nil}]\n (when-not id\n (save-event this task-id evt))\n (update-task this task-id :state :pending)\n evt)\n\n (some? error)\n (let [evt {:ref ref :root root :type type :sym sym :args nil :error error :result nil}]\n (when-not id\n (save-event this task-id evt))\n (update-task this task-id :state :failure :result error)\n evt)\n\n ;;(some? result) ;result can be nil\n :else\n (let [evt {:ref ref :root root :type type :sym sym :args nil :error nil :result result}]\n (when-not id\n (save-event this task-id evt))\n (update-task this task-id :state :success :result result)\n evt)))\n\n (find-task [this id]\n (->> (vals @tasks)\n (filter #(= (:id %) id))\n (first)))\n\n (watch-task [this id f]\n (let [k (keyword (str \"watcher-\" (swap! pcounter inc)))\n watchfn (fn [k atm old new]\n (let [xf (comp\n (filter #(= id (:id %)))\n (filter #(not= (get old (:id %)) %))\n (take 1))\n changeset (transduce xf conj (vals new))]\n\n (when (and (first changeset)\n (f (first changeset)))\n (remove-watch tasks k))))]\n (add-watch tasks k watchfn)))\n\n (await-task [this id]\n (await-task this id {:timeout-ms default-lease}))\n\n (await-task [this id {:keys [timeout-ms] :as opts}]\n (maybe-fail!)\n (let [task (find-task this id)\n deferred (p/deferred)\n wrap-result (fn [{:keys [result] :as task}]\n (cond\n (si/success? task) (p/resolved result)\n (si/failure? task) (p/rejected result)\n :else (p/rejected (ex-info \"Unknown state\" {:task task}))))]\n\n (if (si/terminal? task)\n (wrap-result task)\n ;;else\n (do\n (watch-task this id (fn [task]\n (when (si/terminal? task)\n (p/resolve! deferred task)\n true)))\n ;; wait for resolution\n ;; remember: js doesnt have blocking op so we need to chain\n (-> (p/timeout deferred timeout-ms ::timeout)\n (p/then (fn [resolved]\n (if (= ::timeout resolved)\n (throw (ex-info \"Timeout waiting for task to be completed\" {:task task}))\n (wrap-result resolved)))))))))\n\n (release-pending-tasks [this]\n (swap! tasks\n update-vals\n (fn [{:keys [state] :as task}]\n (cond-> task\n (and (= :pending state)\n (= (:owner task) owner))\n (assoc :owner nil)))))\n\n (reenqueue-pending-tasks [this f]\n (let [task->run? (atom #{})]\n (swap! tasks\n update-vals\n (fn [{:keys [state] :as task}]\n (if (and (= :pending state)\n (or (= (:owner task) owner)\n (nil? (:owner task))))\n (do\n ;; ensure we only run f once - swap! might run the fn multiple times\n (when-not (contains? @task->run? task)\n (f task)\n (swap! task->run? conj task))\n (assoc task :state :new :owner owner))\n ;; else\n task)))))\n\n (enqueue-task [this task]\n (maybe-fail!)\n (let [task+owner (assoc task :owner owner :order (swap! tcounter inc))]\n (si/validate-task! task+owner)\n (swap! tasks assoc (:id task) task+owner)\n #?(:cljs (register this (:sym task+owner) (:fvar task+owner)))\n task+owner))\n\n (dequeue-task [this]\n (dequeue-task this {:lease-ms nil}))\n\n (dequeue-task [this {:keys [lease-ms]}]\n (let [first-new (fn [v] (->> (vals v)\n (filter #(and\n (or (= owner (:owner %)) (nil? (:owner %)))\n (or (= :new (:state %))\n (some-> (:lease-end %)\n (< (now))))))\n (sort-by :order)\n (first)))\n found? (atom nil)]\n\n (swap-vals! tasks\n (fn [v] (let [found (first-new v)]\n (if found\n (->> (assoc found :state :pending\n :fvar (sym->var this found)\n ;; watch for overflow?\n :lease-end (when lease-ms\n (+ (now) lease-ms)))\n (reset! found?)\n (assoc v (:id found)))\n v))))\n ;; highest first\n (->> @found?)))\n\n (clear-tasks [this]\n (reset! tasks {}))))))\n\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/store.cljc"],"mappings":";AAOA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,6EAAA,WAAAA,mBAAAC,3GAAWqE;;AAAX,AAAA,IAAAtE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,6EAAA,WAAAC,mBAAAC,OAAAC,lHAAWkE;;AAAX,AAAA,IAAApE,yBAAA;AAAA,AAAA,IAAAG,WAAAF;IAAAE,eAAA,EAAA,CAAAA,oBAAAC,oBAAA,AAAAD,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAAE;;;;AAAA,OAAAC,4CAAAC,gBAAAN,OAAAC;;;;;AAAA,CAAA,AAAA,kFAAA,WAAAM,mBAAAC,gBAAAC,hIAAW0D;;AAAX,AAAA,IAAA5D,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,uEAAAU,vEAAWkD;;AAAX,CAAA,AAAA,2FAAA,3FAAWA,sGAEMW,EAAEC;;AAFnB,AAAA,YAAA,RAEiBD;AAFjB,AAGI,sDAAA,AAAAE,8BAAA,mFAAA,2EAAA,mEAAA,9SAACC,+DAAQ7E,gKAAkB2E;;;AAH/B,CAAA,AAAA,yGAAA,zGAAWZ,oHAoDoBW,EAAEC,YAAYkB;;AApD7C,AAAA,YAAA,RAoD+BnB;AApD/B,AAqDI,kGAAA,mFAAA,2EAAA,zPAACK,0DAAM/E,aAAMgF,sKAAsBL,gGAA+BiC,mEAAOf;;;AArD7E,CAAA,AAAA,kGAAA,lGAAW9B,6GAuDOW,EAAEC;;AAvDpB,AAAA,YAAA,RAuDkBD;AAvDlB,AAwDI,sDAAA,AAAAE,8BAAA,mFAAA,2EAAA,sEAAA,jTAACC,+DAAQ7E,gKAAkB2E;;;AAxD/B,CAAA,AAAA,6FAAA,7FAAWZ,wGAoCQW,EAAEC,YAAYkB;;AApCjC,AAAA,YAAA,RAoCmBnB;AApCnB,AAqCI,IAAMwB,SAAO,6CAAA,7CAACC;AAAd,AACE,AAACpB,mDAAM/E,aACA,WAAKoG;AAAL,AACE,IAAMC,UAAQ,iDAAA,mFAAA,2EAAA,/MAACxB,+CAAOuB,oJAAczB,uEAAqBkB;AAAzD,AACE,GAAI,AAACtC,cAAI8C;AACP,AACE,AAACC,sBAAOJ,OAAO,AAACN,gBAAMS;;AACtB,2DAAA,mFAAA,2EAAA,lNAACE,kDAAUH,oJAAczB,uEAAqBkB,oBACnC,AAACW,6CAAKC,cAAIC;;AACvBN;;;;AATf,OAAAxB,gBAUGsB;;;AA/CP,CAAA,AAAA,yFAAA,zFAAWnC,oGAgBIsB,MAAKC,YAAYC,WAAWC;;AAhB3C,AAAA,gBAAA,ZAgBeH;AAhBf,AAiBI,IAAMI,cAAQ,AAAgBJ,+DAAKC;AAAnC,AACE,uBACK,+CAAA,WAAAI,1DAACC,hBAEDC;AAFA,AAAS,SAAK,AAACtD,6CAAE,AAAA,8FAAAoD,kBAAgBH,iBACnB,AAACjD,6CAAE,AAAA,kFAAAoD,kBAASF;GAF1BC;;;AAlBX,CAAA,AAAA,uGAAA,vGAAW1B,kHAiDkBW,EAAEC,YAAYkB,YAAYG;;AAjDvD,AAAA,YAAA,RAiD6BtB;AAjD7B,AAkDI,0FAAA,mFAAA,2EAAA,jPAACK,mDAAM/E,aAAM2G,qKAAqBhC,wFAA8BkB,oBAAaG;;;AAlDjF,CAAA,AAAA,kGAAA,lGAAWjC,6GAuBaW,EAAEC;;AAvB1B,AAAA,YAAA,RAuBwBD;AAvBxB,AAwBI,sDAAA,AAAAE,8BAAA,mFAAA,2EAAA,mEAAA,9SAACC,+DAAQ7E,gKAAkB2E;;;AAxB/B,CAAA,AAAA,0FAAA,1FAAWZ,qGAUKW,EAAEC,YAAYQ;;AAV9B,AAAA,YAAA,RAUgBT;AAVhB,AAWI,GAAM,AAACnB,cAAI4B;AAAX,AACE,2FAAA,mFAAA,2EAAA,zPAACJ,0DAAM/E,aAAMgF,sKAAsBL,+EAC5B,4DAAA,5DAACM,6CAAKG,mGAASD;;AAFxB;;AAGAA;;;AAdJ,CAAA,AAAA,yFAAA,zFAAWpB,oGA0BIsB,MAAKV,YAAYkB,YAAYC;;AA1B5C,AAAA,gBAAA,ZA0BeT;AA1Bf,AA2BI,2FAAA,mFAAA,2EAAA,zPAACN,0DAAM/E,aAAMgF,sKAAsBL,uEAAqBkB,oBACjD,4DAAA,5DAACZ,6CAAKC,mGAASY;;AAEtB,IAAAC,2BAAoB,+CAAA,AAAAnB,8BAAA,mFAAA,2EAAA,3OAACC,+DAAQ7E,gKAAkB2E,wFAA8BkB;AAA7E,AAAA,oBAAAE;AAAA,AAAA,qBAAAA,jBAAWC;AAAX,AAGW,0BAAA,1BAACC,WAAcD;;AAH1B;;AAIAF;;;AAlCJ,CAAA,AAAA,6FAAA,7FAAW/B,wGA0DQW,EAAEC;;AA1DrB,AAAA,YAAA,RA0DmBD;AA1DnB,AA2DI,0FAAA,mFAAA,2EAAA,sEAAA,vTAACK,mDAAM/E,aAAM2G,qKAAqBhC;;;AA3DtC,CAAA,AAAA,kGAAA,lGAAWZ,6GA6DaW,EAAEC;;AA7D1B,AAAA,YAAA,RA6DwBD;AA7DxB,AA8DI,IAAMmC,KAAG,+CAAA,AAAAjC,8BAAA,mFAAA,hKAACC,+DAAQ7E,gKAAkB2E;AAApC,AACE,oBACE,AAAA,4FAAYkC;AADd;;AAAA,GAEE,AAACC,uBAAO,AAAA,yFAAUD;AAFpB;;AAAA,AAGQ,IAAME,aAAW,AAACC,eAAK,AAAA,yFAAUH;AAAjC,AACE,IAAAI,WAAM,AAAA,8FAAaF;IAAnBE,eAAA,EAAA,CAAAA,oBAAAlH,oBAAA,AAAAkH,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAA;;;KAAA;AAAA;;;;AAAA;;;;;;;;AAnEhB,CAAA,AAAA,yFAAA,zFAAWlD,oGAKIW,EAAEC,YAAYG;;AAL7B,AAAA,YAAA,RAKeJ;AALf,AAMI,2FAAA,mFAAA,2EAAA,zPAACK,0DAAM/E,aAAMgF,sKAAsBL,+EAC5B,4DAAA,5DAACM,6CAAKC,mGAASJ;;AACtBA;;;AARJ,CAAA,AAAA,yFAAA,WAAAhE,mBAAAC,qBAAAC,5IAAW+C;;AAAX,AAAA,IAAAjD,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,mCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,mFAAA,KAAAC,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,wDAAArB,cAAA,eAAAE;;;AAAA,CAAA,AAAA,iFAAA,WAAAoB,5FAAWyC;;AAAX,AAAA,IAAAzC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,mFAAA,gEAAA,kBAAApB,iBAAA,AAAAsB,oBAAAtB,iBAAA,AAAAuB;;;AAAA,CAAA,AAAA,yEAAA,WAAAC,pFAAWqC;;AAAX,AAAA,IAAArC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,+EAAA,WAAAC,1FAAWmC;;AAAX,AAAA,IAAAnC,yBAAA;AAAA,AAAA,2CAAA5B,aAAA2B,cAAAzB,gBAAA2B,1EAAWkC;;;AAAX,CAAA,AAAA,6EAAA,WAAAjC,xFAAWiC;;AAAX,AAAA,IAAAjC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA7B;;;AAAA,CAAA,AAAA,yEAAA,WAAA8B,pFAAW+B;;AAAX,AAAA,IAAA/B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,2EAAA,WAAAG,UAAAC,hGAAW0B;;AAAX,AAAA,IAAA3B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,EAAA,AAAAC,6CAAA,AAAAF,oBAAA,AAAAC,uBAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,0EAAA,WAAAE,mBAAAC,xGAAWuB;;AAAX,AAAA,IAAAxB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,iFAAA,4EAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,2CAAAxC,aAAA2B,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAxC,gBAAAsC,kBAAA,/JAAWuB;;;;AAAX,CAAA,AAAA,+FAAA,WAAAjB,mBAAAlD,7HAAWmE;;AAAX,AAAA,IAAAjB,yBAAA;AAAA,AAAA,IAAAC,WAAAnD;IAAAmD,eAAA,EAAA,CAAAA,oBAAAhD,oBAAA,AAAAgD,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAA;;;;AAAA,OAAAN,0BAAAvC,gBAAAN;;;;;AAAA,CAAA,AAAA,iFAAA,WAAAoD,mBAAAC,gBAAA3B,/HAAWyC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,oBAAA,CAAAC,4CAAAA,0CAAA,wDAAAE,eAAAF,sBAAA,wDAAAE;AAAA,2CAAA9B,SAAAK,cAAAzB,gBAAA,tEAAW6D;;AAAX,2CAAA/D,aAAA2B,cAAA,AAAA0B,8CAAAnD,gBAAA+C,gBAAA3B,UAAA,lJAAWyC;;;;AAAX,CAAA,AAAA,2EAAA,WAAAT,tFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAnC,+CAAA,mFAAA,KAAAoC,mBAAA,wDAAAxD,aAAA,eAAAE;;;AAAA,CAAA,AAAA,kFAAA,WAAAuD,mBAAAnC,hHAAWyC;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,2CAAAzD,aAAAsB,SAAApB,gBAAA2B,rEAAWkC;;;AAAX,CAAA,AAAA,+EAAA,WAAAL,mBAAAC,7GAAWI;;AAAX,AAAA,IAAAL,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAArD,+CAAAwD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAAI,0CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,gDAAA;;AAAA,CAAA,AAAAA,qDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,iCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,wDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;sCAAA,tCAAWM,oFAAexE;AAA1B,AAAA,YAAA+D,qCAAA,KAAA,KAAA,hBAA0B/D;;;AAA1B;;;yCAAA,iDAAAoE,1FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA5B,+CAAA0B,SAAA;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAxB,6CAAA,mCAAA0B;;AAAAA;;;AAAA,AAAA,YAAAP,+BAAA,AAAA,sFAAAK,UAAA,KAAA,AAAAvB,oBAAAwB,sBAAA;;;AAAAN","names":["this__5323__auto__","k__5324__auto__","this__5325__auto__","k28969","else__5326__auto__","G__28978","cljs.core/Keyword","state","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__28980","vec__28983","k__5347__auto__","cljs.core.nth","v__5348__auto__","cljs.core/PROTOCOL_SENTINEL","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","cljs.core/PersistentVector","G__28968","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this28970","other28971","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","G__29104","this__5331__auto__","k__5332__auto__","pred__29126","cljs.core/keyword-identical?","expr__29127","cljs.core.assoc","this__5336__auto__","cljs.core/seq","cljs.core/MapEntry","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","intemporal.store/InMemoryStore","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__28972","extmap__5365__auto__","G__29201","cljs.core/record?","intemporal.store/->InMemoryStore","intemporal.store/map->InMemoryStore","_","workflow-id","cljs.core/deref","cljs.core.get_in","event","cljs.core.swap_BANG_","cljs.core/update-in","cljs.core.fnil","cljs.core/conj","events","cljs.core/into","this","worfklow-id","event-type","seq-num","history","p1__28966#","cljs.core.filter","cljs.core/first","signal-name","signal-data","temp__5825__auto__","callback","js/setTimeout","result","cljs.core.atom","s","signals","cljs.core/reset!","cljs.core.update_in","cljs.core.comp","cljs.core/vec","cljs.core/rest","cljs.core/assoc-in","cljs.core/dissoc","wf","cljs.core/empty?","last-event","cljs.core/last","G__29001"],"sourcesContent":["(ns intemporal.store\n (:require [intemporal.protocol :as p]))\n\n;; ============================================================================\n;; In-Memory Store Implementation\n;; ============================================================================\n\n(defrecord InMemoryStore [state]\n p/IStore\n (load-history [_ workflow-id]\n (get-in @state [:workflows workflow-id :history] []))\n\n (save-event [_ workflow-id event]\n (swap! state update-in [:workflows workflow-id :history]\n (fnil conj []) event)\n event)\n\n (save-events [_ workflow-id events]\n (when (seq events)\n (swap! state update-in [:workflows workflow-id :history]\n (fnil into []) events))\n events)\n\n (find-event [this worfklow-id event-type seq-num]\n (let [history (p/load-history this worfklow-id)]\n (->> history\n (filter #(and (= (:event-type %) event-type)\n (= (:seq %) seq-num)))\n first)))\n\n (get-pending-signals [_ workflow-id]\n (get-in @state [:workflows workflow-id :signals] {}))\n\n (add-signal [this workflow-id signal-name signal-data]\n (swap! state update-in [:workflows workflow-id :signals signal-name]\n (fnil conj []) signal-data)\n ;; Check if there's a callback registered for this signal\n (when-let [callback (get-in @state [:workflows workflow-id :signal-callbacks signal-name])]\n ;; Invoke callback asynchronously\n #?(:clj (future (callback))\n :cljs (js/setTimeout callback 0)))\n signal-data)\n\n (consume-signal [_ workflow-id signal-name]\n (let [result (atom nil)]\n (swap! state\n (fn [s]\n (let [signals (get-in s [:workflows workflow-id :signals signal-name])]\n (if (seq signals)\n (do\n (reset! result (first signals))\n (update-in s [:workflows workflow-id :signals signal-name]\n (comp vec rest)))\n s))))\n @result))\n\n (register-signal-callback [_ workflow-id signal-name callback]\n (swap! state assoc-in [:workflows workflow-id :signal-callbacks signal-name] callback))\n\n (unregister-signal-callback [_ workflow-id signal-name]\n (swap! state update-in [:workflows workflow-id :signal-callbacks] dissoc signal-name))\n\n (is-cancelled? [_ workflow-id]\n (get-in @state [:workflows workflow-id :cancelled] false))\n\n (mark-cancelled [_ workflow-id]\n (swap! state assoc-in [:workflows workflow-id :cancelled] true))\n\n (get-workflow-status [_ workflow-id]\n (let [wf (get-in @state [:workflows workflow-id])]\n (cond\n (:cancelled wf) :cancelled\n (empty? (:history wf)) :not-found\n :else (let [last-event (last (:history wf))]\n (case (:event-type last-event)\n :workflow-completed :completed\n :workflow-failed :failed\n :running))))))\n"]} \ No newline at end of file diff --git a/public/js/cljs-runtime/taoensso.encore.js b/public/js/cljs-runtime/taoensso.encore.js index e3f0a07..1ee303f 100644 --- a/public/js/cljs-runtime/taoensso.encore.js +++ b/public/js/cljs-runtime/taoensso.encore.js @@ -6,7 +6,7 @@ goog.scope(function(){ /** * See `assert-min-encore-version` */ -taoensso.encore.encore_version = new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),(153),(1)], null); +taoensso.encore.encore_version = new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),(159),(0)], null); /** * Private, don't use. * Returns true if given a list or Cons (=> possible call form). @@ -19,8 +19,8 @@ return ((cljs.core.list_QMARK_(x)) || ((x instanceof cljs.core.Cons))); * with support for `defn` style `?docstring` and `?attrs-map`. */ taoensso.encore.name_with_attrs = (function taoensso$encore$name_with_attrs(var_args){ -var G__48213 = arguments.length; -switch (G__48213) { +var G__33790 = arguments.length; +switch (G__33790) { case 2: return taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -40,19 +40,19 @@ return taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3(sym,args,nu })); (taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3 = (function (sym,args,attrs_merge){ -var vec__48223 = ((((typeof cljs.core.first(args) === 'string') && (cljs.core.next(args))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args], null)); -var _QMARK_docstring = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48223,(0),null); -var args__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48223,(1),null); -var vec__48226 = ((((cljs.core.map_QMARK_(cljs.core.first(args__$1))) && (cljs.core.next(args__$1))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$1),cljs.core.next(args__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentArrayMap.EMPTY,args__$1], null)); -var attrs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48226,(0),null); -var args__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48226,(1),null); -var vec__48229 = ((((typeof cljs.core.first(args__$2) === 'string') && (cljs.core.next(args__$2))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$2),cljs.core.next(args__$2)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_docstring,args__$2], null)); -var _QMARK_docstring__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48229,(0),null); -var args__$3 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48229,(1),null); +var vec__33791 = ((((typeof cljs.core.first(args) === 'string') && (cljs.core.next(args))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args], null)); +var _QMARK_docstring = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33791,(0),null); +var args__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33791,(1),null); +var vec__33794 = ((((cljs.core.map_QMARK_(cljs.core.first(args__$1))) && (cljs.core.next(args__$1))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$1),cljs.core.next(args__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentArrayMap.EMPTY,args__$1], null)); +var attrs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33794,(0),null); +var args__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33794,(1),null); +var vec__33797 = ((((typeof cljs.core.first(args__$2) === 'string') && (cljs.core.next(args__$2))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$2),cljs.core.next(args__$2)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_docstring,args__$2], null)); +var _QMARK_docstring__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33797,(0),null); +var args__$3 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33797,(1),null); var attrs__$1 = (cljs.core.truth_(_QMARK_docstring__$1)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(attrs,new cljs.core.Keyword(null,"doc","doc",1913296891),_QMARK_docstring__$1):attrs); -var attrs__$2 = (function (){var b2__43681__auto__ = cljs.core.meta(sym); -if(cljs.core.truth_(b2__43681__auto__)){ -var m = b2__43681__auto__; +var attrs__$2 = (function (){var b2__30646__auto__ = cljs.core.meta(sym); +if(cljs.core.truth_(b2__30646__auto__)){ +var m = b2__30646__auto__; return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(m,attrs__$1); } else { return attrs__$1; @@ -79,6 +79,44 @@ return null; } } })()); +/** + * Returns human-readable type name for given arb value. + */ +taoensso.encore.type_name = (function taoensso$encore$type_name(x){ +if((x == null)){ +return "nil"; +} else { +if((void 0 === x)){ +return "undefined"; +} else { +var ctor = cljs.core.type(x); +var or__5025__auto__ = ctor.name; +if(cljs.core.truth_(or__5025__auto__)){ +return or__5025__auto__; +} else { +var or__5025__auto____$1 = ctor.displayName; +if(cljs.core.truth_(or__5025__auto____$1)){ +return or__5025__auto____$1; +} else { +var or__5025__auto____$2 = goog.typeOf(x); +if(cljs.core.truth_(or__5025__auto____$2)){ +return or__5025__auto____$2; +} else { +var or__5025__auto____$3 = (function (){try{return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ctor], 0)); +}catch (e33803){var _ = e33803; +return null; +}})(); +if(cljs.core.truth_(or__5025__auto____$3)){ +return or__5025__auto____$3; +} else { +return "unknown"; +} +} +} +} +} +} +}); taoensso.encore.nempty_str_QMARK_ = (function taoensso$encore$nempty_str_QMARK_(x){ return ((typeof x === 'string') && ((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,""))))); }); @@ -490,9 +528,9 @@ return null; taoensso.encore.as__QMARK_qname = (function taoensso$encore$as__QMARK_qname(x){ if(taoensso.encore.named_QMARK_(x)){ var n = cljs.core.name(x); -var b2__43681__auto__ = cljs.core.namespace(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var ns = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.namespace(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var ns = b2__30646__auto__; return [ns,"/",n].join(''); } else { return n; @@ -557,9 +595,9 @@ return null; }); taoensso.encore.as__QMARK_nat_int = (function taoensso$encore$as__QMARK_nat_int(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_int(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var n = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_int(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var n = b2__30646__auto__; if((n < (0))){ return null; } else { @@ -571,9 +609,9 @@ return null; }); taoensso.encore.as__QMARK_pos_int = (function taoensso$encore$as__QMARK_pos_int(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_int(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var n = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_int(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var n = b2__30646__auto__; if((n > (0))){ return n; } else { @@ -585,9 +623,9 @@ return null; }); taoensso.encore.as__QMARK_nat_float = (function taoensso$encore$as__QMARK_nat_float(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_float(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var n = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_float(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var n = b2__30646__auto__; if((n < (0))){ return null; } else { @@ -599,9 +637,9 @@ return null; }); taoensso.encore.as__QMARK_pos_float = (function taoensso$encore$as__QMARK_pos_float(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_float(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var n = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_float(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var n = b2__30646__auto__; if((n > (0))){ return n; } else { @@ -613,9 +651,9 @@ return null; }); taoensso.encore.as__QMARK_pnum = (function taoensso$encore$as__QMARK_pnum(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_float(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var f = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_float(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var f = b2__30646__auto__; if((f > 1.0)){ return 1.0; } else { @@ -631,9 +669,9 @@ return null; }); taoensso.encore.as__QMARK_rnum = (function taoensso$encore$as__QMARK_rnum(x){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_float(x); -if(cljs.core.truth_(b2__43681__auto__)){ -var f = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_float(x); +if(cljs.core.truth_(b2__30646__auto__)){ +var f = b2__30646__auto__; if((f > 1.0)){ return 1.0; } else { @@ -664,10 +702,10 @@ return null; } }); -var regex_50771 = /^[^\s@]+@[^\s@]+\.\S*[^\.]$/; +var regex_34586 = /^[^\s@]+@[^\s@]+\.\S*[^\.]$/; taoensso.encore.as__QMARK_email = (function taoensso$encore$as__QMARK_email(var_args){ -var G__48614 = arguments.length; -switch (G__48614) { +var G__33811 = arguments.length; +switch (G__33811) { case 1: return taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -687,17 +725,17 @@ return taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2((320),_QMAR })); (taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2 = (function (max_len,_QMARK_s){ -var b2__43681__auto__ = (function (){var and__5023__auto__ = _QMARK_s; +var b2__30646__auto__ = (function (){var and__5023__auto__ = _QMARK_s; if(cljs.core.truth_(and__5023__auto__)){ return clojure.string.trim(_QMARK_s); } else { return and__5023__auto__; } })(); -if(cljs.core.truth_(b2__43681__auto__)){ -var s = b2__43681__auto__; +if(cljs.core.truth_(b2__30646__auto__)){ +var s = b2__30646__auto__; if((cljs.core.count(s) <= max_len)){ -return cljs.core.re_find(regex_50771,s); +return cljs.core.re_find(regex_34586,s); } else { return null; } @@ -711,8 +749,8 @@ return null; taoensso.encore.as__QMARK_nemail = (function taoensso$encore$as__QMARK_nemail(var_args){ -var G__48634 = arguments.length; -switch (G__48634) { +var G__33813 = arguments.length; +switch (G__33813) { case 1: return taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -728,9 +766,9 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1 = (function (_QMARK_s){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(_QMARK_s); -if(cljs.core.truth_(b2__43681__auto__)){ -var email = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(_QMARK_s); +if(cljs.core.truth_(b2__30646__auto__)){ +var email = b2__30646__auto__; return clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email))); } else { return null; @@ -738,9 +776,9 @@ return null; })); (taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2 = (function (max_len,_QMARK_s){ -var b2__43681__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(max_len,_QMARK_s); -if(cljs.core.truth_(b2__43681__auto__)){ -var email = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(max_len,_QMARK_s); +if(cljs.core.truth_(b2__30646__auto__)){ +var email = b2__30646__auto__; return clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email))); } else { return null; @@ -751,15 +789,15 @@ return null; taoensso.encore._as_throw = (function taoensso$encore$_as_throw(kind,x){ -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1006,3], null),["[encore/as-",cljs.core.name(kind),"] failed against arg: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"pred-kind","pred-kind",138885083),kind,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1026,3], null),["[encore/as-",cljs.core.name(kind),"] failed against arg: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"pred-kind","pred-kind",138885083),kind,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null)], null),null); }); -var _as_throw_50776 = taoensso.encore._as_throw; +var _as_throw_34589 = taoensso.encore._as_throw; taoensso.encore.as_nblank = (function taoensso$encore$as_nblank(x){ var or__5025__auto__ = taoensso.encore.as__QMARK_nblank(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nblank","nblank",626815585),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nblank","nblank",626815585),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nblank","nblank",626815585),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nblank","nblank",626815585),x)); } }); @@ -768,7 +806,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nblank_trim(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nblank-trim","nblank-trim",-1443525862),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nblank-trim","nblank-trim",-1443525862),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nblank-trim","nblank-trim",-1443525862),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nblank-trim","nblank-trim",-1443525862),x)); } }); @@ -777,7 +815,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nempty_str(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nempty-str","nempty-str",-215700100),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nempty-str","nempty-str",-215700100),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nempty-str","nempty-str",-215700100),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nempty-str","nempty-str",-215700100),x)); } }); @@ -786,7 +824,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_name(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"name","name",1843675177),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"name","name",1843675177),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"name","name",1843675177),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"name","name",1843675177),x)); } }); @@ -795,7 +833,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_qname(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"qname","qname",-1983612179),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"qname","qname",-1983612179),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"qname","qname",-1983612179),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"qname","qname",-1983612179),x)); } }); @@ -804,7 +842,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nzero(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nzero","nzero",2053173656),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nzero","nzero",2053173656),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nzero","nzero",2053173656),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nzero","nzero",2053173656),x)); } }); @@ -813,13 +851,13 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_kw(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"kw","kw",1158308175),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"kw","kw",1158308175),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"kw","kw",1158308175),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"kw","kw",1158308175),x)); } }); taoensso.encore.as_email = (function taoensso$encore$as_email(var_args){ -var G__48722 = arguments.length; -switch (G__48722) { +var G__33815 = arguments.length; +switch (G__33815) { case 1: return taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -839,7 +877,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$ari if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"email","email",1415816706),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"email","email",1415816706),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"email","email",1415816706),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"email","email",1415816706),x)); } })); @@ -848,7 +886,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$ari if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"email","email",1415816706),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"email","email",1415816706),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"email","email",1415816706),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"email","email",1415816706),x)); } })); @@ -856,8 +894,8 @@ return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$cor taoensso.encore.as_nemail = (function taoensso$encore$as_nemail(var_args){ -var G__48728 = arguments.length; -switch (G__48728) { +var G__33817 = arguments.length; +switch (G__33817) { case 1: return taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -877,7 +915,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$ar if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nemail","nemail",318708381),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nemail","nemail",318708381),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nemail","nemail",318708381),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nemail","nemail",318708381),x)); } })); @@ -886,7 +924,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$ar if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nemail","nemail",318708381),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nemail","nemail",318708381),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nemail","nemail",318708381),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nemail","nemail",318708381),x)); } })); @@ -898,7 +936,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_int(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"int","int",-1741416922),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"int","int",-1741416922),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"int","int",-1741416922),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"int","int",-1741416922),x)); } }); @@ -907,7 +945,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nat_int(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nat-int","nat-int",313429715),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nat-int","nat-int",313429715),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nat-int","nat-int",313429715),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nat-int","nat-int",313429715),x)); } }); @@ -916,7 +954,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_pos_int(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pos-int","pos-int",15030207),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"pos-int","pos-int",15030207),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pos-int","pos-int",15030207),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"pos-int","pos-int",15030207),x)); } }); @@ -925,7 +963,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_float(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"float","float",-1732389368),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"float","float",-1732389368),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"float","float",-1732389368),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"float","float",-1732389368),x)); } }); @@ -934,7 +972,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_nat_float(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nat-float","nat-float",-371030973),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"nat-float","nat-float",-371030973),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"nat-float","nat-float",-371030973),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"nat-float","nat-float",-371030973),x)); } }); @@ -943,7 +981,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_pos_float(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pos-float","pos-float",-715200084),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"pos-float","pos-float",-715200084),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pos-float","pos-float",-715200084),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"pos-float","pos-float",-715200084),x)); } }); @@ -952,7 +990,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_pnum(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pnum","pnum",-602522434),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"pnum","pnum",-602522434),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pnum","pnum",-602522434),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"pnum","pnum",-602522434),x)); } }); @@ -961,7 +999,7 @@ var or__5025__auto__ = taoensso.encore.as__QMARK_rnum(x); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rnum","rnum",-783850724),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"rnum","rnum",-783850724),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rnum","rnum",-783850724),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"rnum","rnum",-783850724),x)); } }); @@ -969,7 +1007,7 @@ taoensso.encore.as_pnum_BANG_ = (function taoensso$encore$as_pnum_BANG_(x){ if(cljs.core.truth_(taoensso.encore.pnum_QMARK_(x))){ return x; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pnum!","pnum!",837651383),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"pnum!","pnum!",837651383),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pnum!","pnum!",837651383),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"pnum!","pnum!",837651383),x)); } }); @@ -977,14 +1015,14 @@ taoensso.encore.as_rnum_BANG_ = (function taoensso$encore$as_rnum_BANG_(x){ if(cljs.core.truth_(taoensso.encore.rnum_QMARK_(x))){ return x; } else { -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rnum!","rnum!",-567516079),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"rnum!","rnum!",-567516079),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rnum!","rnum!",-567516079),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"rnum!","rnum!",-567516079),x)); } }); taoensso.encore.as_bool = (function taoensso$encore$as_bool(x){ var _QMARK_b = taoensso.encore.as__QMARK_bool(x); if((_QMARK_b == null)){ -return (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"bool","bool",1444635321),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,"bool","bool",1444635321),x)); +return (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"bool","bool",1444635321),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,"bool","bool",1444635321),x)); } else { return _QMARK_b; } @@ -1013,10 +1051,10 @@ return result; * Like `reduce-kv` but takes a flat sequence of kv pairs. */ taoensso.encore.reduce_kvs = (function taoensso$encore$reduce_kvs(rf,init,kvs){ -return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1((2)),cljs.core.completing.cljs$core$IFn$_invoke$arity$1((function (acc,p__48829){ -var vec__48832 = p__48829; -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48832,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48832,(1),null); +return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1((2)),cljs.core.completing.cljs$core$IFn$_invoke$arity$1((function (acc,p__33818){ +var vec__33819 = p__33818; +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33819,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33819,(1),null); return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v)); })),init,kvs); }); @@ -1024,8 +1062,8 @@ return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc, * No longer useful with Clojure 1.7+, just use (reduce f init (range ...)). */ taoensso.encore.reduce_n = (function taoensso$encore$reduce_n(var_args){ -var G__48840 = arguments.length; -switch (G__48840) { +var G__33823 = arguments.length; +switch (G__33823) { case 3: return taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -1065,10 +1103,10 @@ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cl taoensso.encore.reduce_indexed = (function taoensso$encore$reduce_indexed(rf,init,coll){ var c = (taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 ? taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0() : taoensso.encore.counter.call(null)); return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ -var G__48849 = acc; -var G__48850 = (c.cljs$core$IFn$_invoke$arity$0 ? c.cljs$core$IFn$_invoke$arity$0() : c.call(null)); -var G__48851 = in$; -return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__48849,G__48850,G__48851) : rf.call(null,G__48849,G__48850,G__48851)); +var G__33824 = acc; +var G__33825 = (c.cljs$core$IFn$_invoke$arity$0 ? c.cljs$core$IFn$_invoke$arity$0() : c.call(null)); +var G__33826 = in$; +return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33824,G__33825,G__33826) : rf.call(null,G__33824,G__33825,G__33826)); }),init,coll); }); /** @@ -1076,48 +1114,48 @@ return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__4 */ taoensso.encore.reduce_obj = (function taoensso$encore$reduce_obj(f,init,o){ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){ -var G__48857 = acc; -var G__48858 = k; -var G__48859 = taoensso.encore.goog$module$goog$object.get(o,k,null); -return (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__48857,G__48858,G__48859) : f.call(null,G__48857,G__48858,G__48859)); +var G__33827 = acc; +var G__33828 = k; +var G__33829 = taoensso.encore.goog$module$goog$object.get(o,k,null); +return (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__33827,G__33828,G__33829) : f.call(null,G__33827,G__33828,G__33829)); }),init,cljs.core.js_keys(o)); }); taoensso.encore.run_BANG_ = (function taoensso$encore$run_BANG_(proc,coll){ -cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48867_SHARP_,p2__48866_SHARP_){ -return (proc.cljs$core$IFn$_invoke$arity$1 ? proc.cljs$core$IFn$_invoke$arity$1(p2__48866_SHARP_) : proc.call(null,p2__48866_SHARP_)); +cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__33831_SHARP_,p2__33830_SHARP_){ +return (proc.cljs$core$IFn$_invoke$arity$1 ? proc.cljs$core$IFn$_invoke$arity$1(p2__33830_SHARP_) : proc.call(null,p2__33830_SHARP_)); }),null,coll); return null; }); taoensso.encore.run_kv_BANG_ = (function taoensso$encore$run_kv_BANG_(proc,m){ -cljs.core.reduce_kv((function (p1__48870_SHARP_,p2__48868_SHARP_,p3__48869_SHARP_){ -return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48868_SHARP_,p3__48869_SHARP_) : proc.call(null,p2__48868_SHARP_,p3__48869_SHARP_)); +cljs.core.reduce_kv((function (p1__33834_SHARP_,p2__33832_SHARP_,p3__33833_SHARP_){ +return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33832_SHARP_,p3__33833_SHARP_) : proc.call(null,p2__33832_SHARP_,p3__33833_SHARP_)); }),null,m); return null; }); taoensso.encore.run_kvs_BANG_ = (function taoensso$encore$run_kvs_BANG_(proc,kvs){ -taoensso.encore.reduce_kvs((function (p1__48873_SHARP_,p2__48871_SHARP_,p3__48872_SHARP_){ -return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48871_SHARP_,p3__48872_SHARP_) : proc.call(null,p2__48871_SHARP_,p3__48872_SHARP_)); +taoensso.encore.reduce_kvs((function (p1__33837_SHARP_,p2__33835_SHARP_,p3__33836_SHARP_){ +return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33835_SHARP_,p3__33836_SHARP_) : proc.call(null,p2__33835_SHARP_,p3__33836_SHARP_)); }),null,kvs); return null; }); taoensso.encore.run_obj_BANG_ = (function taoensso$encore$run_obj_BANG_(proc,obj){ -taoensso.encore.reduce_obj((function (p1__48877_SHARP_,p2__48875_SHARP_,p3__48876_SHARP_){ -return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48875_SHARP_,p3__48876_SHARP_) : proc.call(null,p2__48875_SHARP_,p3__48876_SHARP_)); +taoensso.encore.reduce_obj((function (p1__33840_SHARP_,p2__33838_SHARP_,p3__33839_SHARP_){ +return (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33838_SHARP_,p3__33839_SHARP_) : proc.call(null,p2__33838_SHARP_,p3__33839_SHARP_)); }),null,obj); return null; }); -var rf_50782 = (function (pred){ +var rf_34607 = (function (pred){ return (function (_acc,in$){ -var b2__43681__auto__ = (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)); -if(cljs.core.truth_(b2__43681__auto__)){ -var p = b2__43681__auto__; +var b2__30646__auto__ = (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)); +if(cljs.core.truth_(b2__30646__auto__)){ +var p = b2__30646__auto__; return cljs.core.reduced(p); } else { return null; @@ -1129,8 +1167,8 @@ return null; * Like `core/some` but faster and supports transducers. */ taoensso.encore.rsome = (function taoensso$encore$rsome(var_args){ -var G__48894 = arguments.length; -switch (G__48894) { +var G__33842 = arguments.length; +switch (G__33842) { case 2: return taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -1146,34 +1184,34 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2 = (function (pred,coll){ -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50782(pred),null,coll); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34607(pred),null,coll); })); (taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$3 = (function (xform,pred,coll){ -return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50782(pred)),null,coll); +return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34607(pred)),null,coll); })); (taoensso.encore.rsome.cljs$lang$maxFixedArity = 3); -var rf_50784 = (function (pred){ +var rf_34615 = (function (pred){ return (function (_acc,k,v){ -var b2__43681__auto__ = (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)); -if(cljs.core.truth_(b2__43681__auto__)){ -var p = b2__43681__auto__; +var b2__30646__auto__ = (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)); +if(cljs.core.truth_(b2__30646__auto__)){ +var p = b2__30646__auto__; return cljs.core.reduced(p); } else { return null; } }); }); -var tf_50785 = (function (pred){ -return (function (_acc,p__48914){ -var vec__48917 = p__48914; -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48917,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48917,(1),null); -var b2__43681__auto__ = (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)); -if(cljs.core.truth_(b2__43681__auto__)){ -var p = b2__43681__auto__; +var tf_34616 = (function (pred){ +return (function (_acc,p__33843){ +var vec__33844 = p__33843; +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33844,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33844,(1),null); +var b2__30646__auto__ = (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)); +if(cljs.core.truth_(b2__30646__auto__)){ +var p = b2__30646__auto__; return cljs.core.reduced(p); } else { return null; @@ -1185,9 +1223,9 @@ return null; * Like `core/some` but faster and takes kvs. */ taoensso.encore.rsome_kv = (function taoensso$encore$rsome_kv(pred,coll){ -return cljs.core.reduce_kv(rf_50784(pred),null,coll); +return cljs.core.reduce_kv(rf_34615(pred),null,coll); }); -var rf_50786 = (function (pred){ +var rf_34617 = (function (pred){ return (function (_acc,in$){ if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){ return cljs.core.reduced(in$); @@ -1200,8 +1238,8 @@ return null; * Returns nil, or first x in coll with truthy (pred x). */ taoensso.encore.rfirst = (function taoensso$encore$rfirst(var_args){ -var G__48932 = arguments.length; -switch (G__48932) { +var G__33848 = arguments.length; +switch (G__33848) { case 2: return taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -1217,34 +1255,34 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2 = (function (pred,coll){ -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50786(pred),null,coll); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34617(pred),null,coll); })); (taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$3 = (function (xform,pred,coll){ -return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50786(pred)),null,coll); +return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34617(pred)),null,coll); })); (taoensso.encore.rfirst.cljs$lang$maxFixedArity = 3); -var entry_50788 = (function (k,v){ +var entry_34621 = (function (k,v){ return (new cljs.core.MapEntry(k,v,null)); }); -var rf_50789 = (function (pred){ +var rf_34622 = (function (pred){ return (function (_acc,k,v){ if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){ -return cljs.core.reduced(entry_50788(k,v)); +return cljs.core.reduced(entry_34621(k,v)); } else { return null; } }); }); -var tf_50790 = (function (pred){ -return (function (_acc,p__48952){ -var vec__48954 = p__48952; -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48954,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48954,(1),null); +var tf_34623 = (function (pred){ +return (function (_acc,p__33849){ +var vec__33850 = p__33849; +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33850,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33850,(1),null); if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){ -return cljs.core.reduced(entry_50788(k,v)); +return cljs.core.reduced(entry_34621(k,v)); } else { return null; } @@ -1254,9 +1292,9 @@ return null; * Returns nil, or first [k v] entry in associative coll with truthy (pred k v). */ taoensso.encore.rfirst_kv = (function taoensso$encore$rfirst_kv(pred,coll){ -return cljs.core.reduce_kv(rf_50789(pred),null,coll); +return cljs.core.reduce_kv(rf_34622(pred),null,coll); }); -var rf_50791 = (function (pred){ +var rf_34624 = (function (pred){ return (function (_acc,in$){ if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){ return true; @@ -1270,8 +1308,8 @@ return cljs.core.reduced(false); * Like `core/every?` but faster and supports transducers. */ taoensso.encore.revery_QMARK_ = (function taoensso$encore$revery_QMARK_(var_args){ -var G__48968 = arguments.length; -switch (G__48968) { +var G__33854 = arguments.length; +switch (G__33854) { case 2: return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -1287,16 +1325,16 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2 = (function (pred,coll){ -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50791(pred),true,coll); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34624(pred),true,coll); })); (taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (xform,pred,coll){ -return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50791(pred)),true,coll); +return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34624(pred)),true,coll); })); (taoensso.encore.revery_QMARK_.cljs$lang$maxFixedArity = 3); -var rf_50793 = (function (pred){ +var rf_34626 = (function (pred){ return (function (_acc,k,v){ if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){ return true; @@ -1305,11 +1343,11 @@ return cljs.core.reduced(false); } }); }); -var tf_50794 = (function (pred){ -return (function (_acc,p__48994){ -var vec__48996 = p__48994; -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48996,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48996,(1),null); +var tf_34627 = (function (pred){ +return (function (_acc,p__33855){ +var vec__33856 = p__33855; +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33856,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33856,(1),null); if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){ return true; } else { @@ -1321,7 +1359,7 @@ return cljs.core.reduced(false); * Returns true iff (pred k v) is truthy for every kv in associative coll. */ taoensso.encore.revery_kv_QMARK_ = (function taoensso$encore$revery_kv_QMARK_(pred,coll){ -return cljs.core.reduce_kv(rf_50793(pred),true,coll); +return cljs.core.reduce_kv(rf_34626(pred),true,coll); }); /** * Reduces given sequential xs and ys as pairs (e.g. key-val pairs). @@ -1330,8 +1368,8 @@ return cljs.core.reduce_kv(rf_50793(pred),true,coll); * Useful, among other things, as a more flexible version of `zipmap`. */ taoensso.encore.reduce_zip = (function taoensso$encore$reduce_zip(var_args){ -var G__49006 = arguments.length; -switch (G__49006) { +var G__33862 = arguments.length; +switch (G__33862) { case 4: return taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); @@ -1360,10 +1398,10 @@ var y__5111__auto__ = cljs.core.count(ys); return ((x__5110__auto__ > y__5111__auto__) ? x__5110__auto__ : y__5111__auto__); })()); return taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,idx){ -var G__49019 = acc; -var G__49020 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(xs,idx,not_found); -var G__49021 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(ys,idx,not_found); -return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__49019,G__49020,G__49021) : rf.call(null,G__49019,G__49020,G__49021)); +var G__33863 = acc; +var G__33864 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(xs,idx,not_found); +var G__33865 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(ys,idx,not_found); +return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33863,G__33864,G__33865) : rf.call(null,G__33863,G__33864,G__33865)); }),init,n); } else { var not_found_QMARK_ = (!(cljs.core.keyword_identical_QMARK_(not_found,new cljs.core.Keyword("taoensso.encore","skip","taoensso.encore/skip",-726061459)))); @@ -1372,32 +1410,32 @@ var xs__$1 = cljs.core.seq(xs); var ys__$1 = cljs.core.seq(ys); while(true){ if(((not_found_QMARK_)?((xs__$1) || (ys__$1)):((xs__$1) && (ys__$1)))){ -var result = (function (){var G__49032 = acc; -var G__49033 = cljs.core.first((function (){var or__5025__auto__ = xs__$1; +var result = (function (){var G__33866 = acc; +var G__33867 = cljs.core.first((function (){var or__5025__auto__ = xs__$1; if(or__5025__auto__){ return or__5025__auto__; } else { return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null); } })()); -var G__49034 = cljs.core.first((function (){var or__5025__auto__ = ys__$1; +var G__33868 = cljs.core.first((function (){var or__5025__auto__ = ys__$1; if(or__5025__auto__){ return or__5025__auto__; } else { return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null); } })()); -return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__49032,G__49033,G__49034) : rf.call(null,G__49032,G__49033,G__49034)); +return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33866,G__33867,G__33868) : rf.call(null,G__33866,G__33867,G__33868)); })(); if(cljs.core.reduced_QMARK_(result)){ return cljs.core.deref(result); } else { -var G__50798 = result; -var G__50799 = cljs.core.next(xs__$1); -var G__50800 = cljs.core.next(ys__$1); -acc = G__50798; -xs__$1 = G__50799; -ys__$1 = G__50800; +var G__34631 = result; +var G__34632 = cljs.core.next(xs__$1); +var G__34633 = cljs.core.next(ys__$1); +acc = G__34631; +xs__$1 = G__34632; +ys__$1 = G__34633; continue; } } else { @@ -1474,8 +1512,8 @@ return (new taoensso.encore.Tup3(x,y,z)); * times. */ taoensso.encore.reduce_multi = (function taoensso$encore$reduce_multi(var_args){ -var G__49071 = arguments.length; -switch (G__49071) { +var G__33870 = arguments.length; +switch (G__33870) { case 3: return taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -1553,12 +1591,12 @@ return (function (tuple,in$){ if(cljs.core.empty_QMARK_(in$)){ return tuple; } else { -var vec__49123 = in$; -var seq__49124 = cljs.core.seq(vec__49123); -var first__49125 = cljs.core.first(seq__49124); -var seq__49124__$1 = cljs.core.next(seq__49124); -var in1 = first__49125; -var next_in = seq__49124__$1; +var vec__33871 = in$; +var seq__33872 = cljs.core.seq(vec__33871); +var first__33873 = cljs.core.first(seq__33872); +var seq__33872__$1 = cljs.core.next(seq__33872); +var in1 = first__33873; +var next_in = seq__33872__$1; var acc__$1 = tuple.x; var ncs = tuple.y; var res = (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc__$1,in1) : rf.call(null,acc__$1,in1)); @@ -1579,10 +1617,10 @@ return cljs.core.PersistentVector.EMPTY; var acc__$1 = tuple.x; var next_colls = tuple.y; if(cljs.core.truth_(next_colls)){ -var G__50802 = acc__$1; -var G__50803 = next_colls; -acc = G__50802; -colls__$1 = G__50803; +var G__34637 = acc__$1; +var G__34638 = next_colls; +acc = G__34637; +colls__$1 = G__34638; continue; } else { return acc__$1; @@ -1591,16 +1629,16 @@ break; } } }); -var map_like_QMARK__50804 = (function (p1__49126_SHARP_){ -return ((cljs.core.map_QMARK_(p1__49126_SHARP_)) || (cljs.core.record_QMARK_(p1__49126_SHARP_))); +var map_like_QMARK__34639 = (function (p1__33874_SHARP_){ +return ((cljs.core.map_QMARK_(p1__33874_SHARP_)) || (cljs.core.record_QMARK_(p1__33874_SHARP_))); }); /** * Private, don't use. * Simpler, faster `clojure.walk/postwalk`. */ taoensso.encore.postwalk = (function taoensso$encore$postwalk(var_args){ -var G__49132 = arguments.length; -switch (G__49132) { +var G__33878 = arguments.length; +switch (G__33878) { case 2: return taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -1621,28 +1659,28 @@ return taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(false,x,f); (taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3 = (function (preserve_seqs_QMARK_,x,f){ var ps = (cljs.core.truth_(preserve_seqs_QMARK_)?cljs.core.seq:cljs.core.identity); -var pw = (function (p1__49127_SHARP_,p2__49128_SHARP_){ -return taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(preserve_seqs_QMARK_,p1__49127_SHARP_,p2__49128_SHARP_); +var pw = (function (p1__33875_SHARP_,p2__33876_SHARP_){ +return taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(preserve_seqs_QMARK_,p1__33875_SHARP_,p2__33876_SHARP_); }); -if(map_like_QMARK__50804(x)){ -var G__49144 = cljs.core.reduce_kv((function (acc,k,v){ +if(map_like_QMARK__34639(x)){ +var G__33879 = cljs.core.reduce_kv((function (acc,k,v){ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,pw(k,f),pw(v,f)); }),cljs.core.PersistentArrayMap.EMPTY,x); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49144) : f.call(null,G__49144)); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33879) : f.call(null,G__33879)); } else { if(cljs.core.seq_QMARK_(x)){ -var G__49145 = (function (){var G__49146 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ +var G__33880 = (function (){var G__33881 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f)); }),cljs.core.PersistentVector.EMPTY,x); -return (ps.cljs$core$IFn$_invoke$arity$1 ? ps.cljs$core$IFn$_invoke$arity$1(G__49146) : ps.call(null,G__49146)); +return (ps.cljs$core$IFn$_invoke$arity$1 ? ps.cljs$core$IFn$_invoke$arity$1(G__33881) : ps.call(null,G__33881)); })(); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49145) : f.call(null,G__49145)); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33880) : f.call(null,G__33880)); } else { if(cljs.core.coll_QMARK_(x)){ -var G__49149 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ +var G__33882 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f)); }),cljs.core.empty(x),x); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49149) : f.call(null,G__49149)); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33882) : f.call(null,G__33882)); } else { return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x)); } @@ -1660,13 +1698,13 @@ if(cljs.core.truth_(c)){ var max_idx = cljs.core.count(c); var start_idx__$1 = cljs.core.long$(start_idx); if((start_idx__$1 < max_idx)){ -var G__49165 = c; -var G__49166 = (function (){var x__5110__auto__ = start_idx__$1; +var G__33884 = c; +var G__33885 = (function (){var x__5110__auto__ = start_idx__$1; var y__5111__auto__ = (0); return ((x__5110__auto__ > y__5111__auto__) ? x__5110__auto__ : y__5111__auto__); })(); -var G__49167 = max_idx; -return (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(G__49165,G__49166,G__49167) : by_idx_fn.call(null,G__49165,G__49166,G__49167)); +var G__33886 = max_idx; +return (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(G__33884,G__33885,G__33886) : by_idx_fn.call(null,G__33884,G__33885,G__33886)); } else { return null; } @@ -1697,9 +1735,9 @@ var taoensso$encore$subfn_$_subfn_STAR___4 = (function (c,kind,start,end){ if(cljs.core.truth_(c)){ var max_end = cljs.core.count(c); var end__$1 = ((cljs.core.keyword_identical_QMARK_(end,new cljs.core.Keyword(null,"max","max",61366548)))?max_end:end); -var G__49183 = kind; -var G__49183__$1 = (((G__49183 instanceof cljs.core.Keyword))?G__49183.fqn:null); -switch (G__49183__$1) { +var G__33887 = kind; +var G__33887__$1 = (((G__33887 instanceof cljs.core.Keyword))?G__33887.fqn:null); +switch (G__33887__$1) { case "by-idx": return taoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$3(c,start,end__$1); @@ -1739,7 +1777,7 @@ return null; break; default: -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1368,12], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"kind","kind",923265724,null),new cljs.core.Keyword(null,"context","context",-830191113),context,new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"by-idx","by-idx",-1997587605),null,new cljs.core.Keyword(null,"by-len","by-len",587837753),null], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1388,12], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"kind","kind",923265724,null),new cljs.core.Keyword(null,"context","context",-830191113),context,new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"by-idx","by-idx",-1997587605),null,new cljs.core.Keyword(null,"by-len","by-len",587837753),null], null), null)], null)); } } else { @@ -1801,8 +1839,8 @@ return (x instanceof cljs.core.PersistentQueue); * Returns a new `PersistentQueue`. */ taoensso.encore.queue = (function taoensso$encore$queue(var_args){ -var G__49208 = arguments.length; -switch (G__49208) { +var G__33889 = arguments.length; +switch (G__33889) { case 1: return taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -1832,14 +1870,14 @@ return cljs.core.PersistentQueue.EMPTY; */ taoensso.encore.queue_STAR_ = (function taoensso$encore$queue_STAR_(var_args){ var args__5755__auto__ = []; -var len__5749__auto___50810 = arguments.length; -var i__5750__auto___50811 = (0); +var len__5749__auto___34645 = arguments.length; +var i__5750__auto___34646 = (0); while(true){ -if((i__5750__auto___50811 < len__5749__auto___50810)){ -args__5755__auto__.push((arguments[i__5750__auto___50811])); +if((i__5750__auto___34646 < len__5749__auto___34645)){ +args__5755__auto__.push((arguments[i__5750__auto___34646])); -var G__50812 = (i__5750__auto___50811 + (1)); -i__5750__auto___50811 = G__50812; +var G__34647 = (i__5750__auto___34646 + (1)); +i__5750__auto___34646 = G__34647; continue; } else { } @@ -1857,9 +1895,9 @@ return taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1(items); (taoensso.encore.queue_STAR_.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ -(taoensso.encore.queue_STAR_.cljs$lang$applyTo = (function (seq49225){ +(taoensso.encore.queue_STAR_.cljs$lang$applyTo = (function (seq33890){ var self__5735__auto__ = this; -return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq49225)); +return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq33890)); })); taoensso.encore.ensure_vec = (function taoensso$encore$ensure_vec(x){ @@ -1882,22 +1920,22 @@ return cljs.core.set(x); taoensso.encore.oset = (function taoensso$encore$oset(o,k,v){ return taoensso.encore.goog$module$goog$object.set((((o == null))?({}):o),cljs.core.name(k),v); }); -var sentinel_50813 = ({}); +var sentinel_34648 = ({}); /** * Experimental, subject to change without notice. * Like `assoc-in` for JS objects. */ taoensso.encore.oset_in = (function taoensso$encore$oset_in(o,ks,v){ var o__$1 = (((o == null))?({}):o); -var b2__43681__auto__ = cljs.core.seq(ks); -if(b2__43681__auto__){ -var ks__$1 = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.seq(ks); +if(b2__30646__auto__){ +var ks__$1 = b2__30646__auto__; var o_next = o__$1; var ks_next = ks__$1; while(true){ var k1 = cljs.core.name(cljs.core.first(ks_next)); -var o_next__$1 = (function (){var o_next_STAR_ = taoensso.encore.goog$module$goog$object.get(o_next,k1,sentinel_50813); -if((o_next_STAR_ === sentinel_50813)){ +var o_next__$1 = (function (){var o_next_STAR_ = taoensso.encore.goog$module$goog$object.get(o_next,k1,sentinel_34648); +if((o_next_STAR_ === sentinel_34648)){ var new_obj = ({}); taoensso.encore.goog$module$goog$object.set(o_next,k1,new_obj); @@ -1906,13 +1944,13 @@ return new_obj; return o_next_STAR_; } })(); -var b2__43681__auto____$1 = cljs.core.next(ks_next); -if(b2__43681__auto____$1){ -var ks_next__$1 = b2__43681__auto____$1; -var G__50814 = o_next__$1; -var G__50815 = ks_next__$1; -o_next = G__50814; -ks_next = G__50815; +var b2__30646__auto____$1 = cljs.core.next(ks_next); +if(b2__30646__auto____$1){ +var ks_next__$1 = b2__30646__auto____$1; +var G__34649 = o_next__$1; +var G__34650 = ks_next__$1; +o_next = G__34649; +ks_next = G__34650; continue; } else { taoensso.encore.goog$module$goog$object.set(o_next__$1,k1,v); @@ -1929,8 +1967,8 @@ return o__$1; * Like `get` for JS objects. */ taoensso.encore.oget = (function taoensso$encore$oget(var_args){ -var G__49247 = arguments.length; -switch (G__49247) { +var G__33902 = arguments.length; +switch (G__33902) { case 1: return taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -1950,9 +1988,9 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1 = (function (k){ -var b2__43681__auto__ = taoensso.encore.js__QMARK_window; -if(cljs.core.truth_(b2__43681__auto__)){ -var o = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.js__QMARK_window; +if(cljs.core.truth_(b2__30646__auto__)){ +var o = b2__30646__auto__; return taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k)); } else { return null; @@ -1977,13 +2015,13 @@ return not_found; (taoensso.encore.oget.cljs$lang$maxFixedArity = 3); -var sentinel_50817 = ({}); +var sentinel_34656 = ({}); /** * Like `get-in` for JS objects. */ taoensso.encore.oget_in = (function taoensso$encore$oget_in(var_args){ -var G__49254 = arguments.length; -switch (G__49254) { +var G__33906 = arguments.length; +switch (G__33906) { case 1: return taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -2016,14 +2054,14 @@ var o__$1 = o; var ks__$1 = cljs.core.seq(ks); while(true){ if(ks__$1){ -var o__$2 = taoensso.encore.goog$module$goog$object.get(o__$1,cljs.core.name(cljs.core.first(ks__$1)),sentinel_50817); -if((o__$2 === sentinel_50817)){ +var o__$2 = taoensso.encore.goog$module$goog$object.get(o__$1,cljs.core.name(cljs.core.first(ks__$1)),sentinel_34656); +if((o__$2 === sentinel_34656)){ return not_found; } else { -var G__50819 = o__$2; -var G__50820 = cljs.core.next(ks__$1); -o__$1 = G__50819; -ks__$1 = G__50820; +var G__34660 = o__$2; +var G__34661 = cljs.core.next(ks__$1); +o__$1 = G__34660; +ks__$1 = G__34661; continue; } } else { @@ -2043,8 +2081,8 @@ return not_found; * Useful for key aliases or fallbacks. See also `get*`. */ taoensso.encore.get1 = (function taoensso$encore$get1(var_args){ -var G__49256 = arguments.length; -switch (G__49256) { +var G__33908 = arguments.length; +switch (G__33908) { case 2: return taoensso.encore.get1.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -2076,7 +2114,7 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k,not_found); })); (taoensso.encore.get1.cljs$core$IFn$_invoke$arity$4 = (function (m,k1,k2,not_found){ -var b2__43681__auto__ = (function (){var and__5023__auto__ = m; +var b2__30646__auto__ = (function (){var and__5023__auto__ = m; if(cljs.core.truth_(and__5023__auto__)){ var or__5025__auto__ = cljs.core.find(m,k1); if(cljs.core.truth_(or__5025__auto__)){ @@ -2088,8 +2126,8 @@ return cljs.core.find(m,k2); return and__5023__auto__; } })(); -if(cljs.core.truth_(b2__43681__auto__)){ -var e = b2__43681__auto__; +if(cljs.core.truth_(b2__30646__auto__)){ +var e = b2__30646__auto__; return cljs.core.val(e); } else { return not_found; @@ -2097,7 +2135,7 @@ return not_found; })); (taoensso.encore.get1.cljs$core$IFn$_invoke$arity$5 = (function (m,k1,k2,k3,not_found){ -var b2__43681__auto__ = (function (){var and__5023__auto__ = m; +var b2__30646__auto__ = (function (){var and__5023__auto__ = m; if(cljs.core.truth_(and__5023__auto__)){ var or__5025__auto__ = cljs.core.find(m,k1); if(cljs.core.truth_(or__5025__auto__)){ @@ -2114,8 +2152,8 @@ return cljs.core.find(m,k3); return and__5023__auto__; } })(); -if(cljs.core.truth_(b2__43681__auto__)){ -var e = b2__43681__auto__; +if(cljs.core.truth_(b2__30646__auto__)){ +var e = b2__30646__auto__; return cljs.core.val(e); } else { return not_found; @@ -2128,8 +2166,8 @@ return not_found; * Conjoins each non-nil value. */ taoensso.encore.conj_some = (function taoensso$encore$conj_some(var_args){ -var G__49276 = arguments.length; -switch (G__49276) { +var G__33918 = arguments.length; +switch (G__33918) { case 0: return taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$0(); @@ -2144,14 +2182,14 @@ return taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]), break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50823 = arguments.length; -var i__5750__auto___50824 = (0); +var len__5749__auto___34664 = arguments.length; +var i__5750__auto___34665 = (0); while(true){ -if((i__5750__auto___50824 < len__5749__auto___50823)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50824])); +if((i__5750__auto___34665 < len__5749__auto___34664)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34665])); -var G__50825 = (i__5750__auto___50824 + (1)); -i__5750__auto___50824 = G__50825; +var G__34666 = (i__5750__auto___34665 + (1)); +i__5750__auto___34665 = G__34666; continue; } else { } @@ -2185,13 +2223,13 @@ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_some, })); /** @this {Function} */ -(taoensso.encore.conj_some.cljs$lang$applyTo = (function (seq49272){ -var G__49274 = cljs.core.first(seq49272); -var seq49272__$1 = cljs.core.next(seq49272); -var G__49275 = cljs.core.first(seq49272__$1); -var seq49272__$2 = cljs.core.next(seq49272__$1); +(taoensso.encore.conj_some.cljs$lang$applyTo = (function (seq33915){ +var G__33916 = cljs.core.first(seq33915); +var seq33915__$1 = cljs.core.next(seq33915); +var G__33917 = cljs.core.first(seq33915__$1); +var seq33915__$2 = cljs.core.next(seq33915__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49274,G__49275,seq49272__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33916,G__33917,seq33915__$2); })); (taoensso.encore.conj_some.cljs$lang$maxFixedArity = (2)); @@ -2201,8 +2239,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49274,G__49275 * Conjoins each truthy value. */ taoensso.encore.conj_when = (function taoensso$encore$conj_when(var_args){ -var G__49292 = arguments.length; -switch (G__49292) { +var G__33923 = arguments.length; +switch (G__33923) { case 0: return taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$0(); @@ -2217,14 +2255,14 @@ return taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]), break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50827 = arguments.length; -var i__5750__auto___50828 = (0); +var len__5749__auto___34670 = arguments.length; +var i__5750__auto___34671 = (0); while(true){ -if((i__5750__auto___50828 < len__5749__auto___50827)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50828])); +if((i__5750__auto___34671 < len__5749__auto___34670)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34671])); -var G__50829 = (i__5750__auto___50828 + (1)); -i__5750__auto___50828 = G__50829; +var G__34672 = (i__5750__auto___34671 + (1)); +i__5750__auto___34671 = G__34672; continue; } else { } @@ -2258,13 +2296,13 @@ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_when, })); /** @this {Function} */ -(taoensso.encore.conj_when.cljs$lang$applyTo = (function (seq49289){ -var G__49290 = cljs.core.first(seq49289); -var seq49289__$1 = cljs.core.next(seq49289); -var G__49291 = cljs.core.first(seq49289__$1); -var seq49289__$2 = cljs.core.next(seq49289__$1); +(taoensso.encore.conj_when.cljs$lang$applyTo = (function (seq33920){ +var G__33921 = cljs.core.first(seq33920); +var seq33920__$1 = cljs.core.next(seq33920); +var G__33922 = cljs.core.first(seq33920__$1); +var seq33920__$2 = cljs.core.next(seq33920__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49290,G__49291,seq49289__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33921,G__33922,seq33920__$2); })); (taoensso.encore.conj_when.cljs$lang$maxFixedArity = (2)); @@ -2273,8 +2311,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49290,G__49291 * Assocs each kv to given ?map iff its value is not nil. */ taoensso.encore.assoc_some = (function taoensso$encore$assoc_some(var_args){ -var G__49307 = arguments.length; -switch (G__49307) { +var G__33929 = arguments.length; +switch (G__33929) { case 3: return taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -2285,14 +2323,14 @@ return taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50831 = arguments.length; -var i__5750__auto___50832 = (0); +var len__5749__auto___34676 = arguments.length; +var i__5750__auto___34677 = (0); while(true){ -if((i__5750__auto___50832 < len__5749__auto___50831)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50832])); +if((i__5750__auto___34677 < len__5749__auto___34676)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34677])); -var G__50833 = (i__5750__auto___50832 + (1)); -i__5750__auto___50832 = G__50833; +var G__34678 = (i__5750__auto___34677 + (1)); +i__5750__auto___34677 = G__34678; continue; } else { } @@ -2322,15 +2360,15 @@ return taoensso.encore.reduce_kvs(taoensso.encore.assoc_some,taoensso.encore.ass })); /** @this {Function} */ -(taoensso.encore.assoc_some.cljs$lang$applyTo = (function (seq49303){ -var G__49304 = cljs.core.first(seq49303); -var seq49303__$1 = cljs.core.next(seq49303); -var G__49305 = cljs.core.first(seq49303__$1); -var seq49303__$2 = cljs.core.next(seq49303__$1); -var G__49306 = cljs.core.first(seq49303__$2); -var seq49303__$3 = cljs.core.next(seq49303__$2); +(taoensso.encore.assoc_some.cljs$lang$applyTo = (function (seq33925){ +var G__33926 = cljs.core.first(seq33925); +var seq33925__$1 = cljs.core.next(seq33925); +var G__33927 = cljs.core.first(seq33925__$1); +var seq33925__$2 = cljs.core.next(seq33925__$1); +var G__33928 = cljs.core.first(seq33925__$2); +var seq33925__$3 = cljs.core.next(seq33925__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49304,G__49305,G__49306,seq49303__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33926,G__33927,G__33928,seq33925__$3); })); (taoensso.encore.assoc_some.cljs$lang$maxFixedArity = (3)); @@ -2339,8 +2377,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49304,G__49305 * Assocs each kv to given ?map iff its val is truthy. */ taoensso.encore.assoc_when = (function taoensso$encore$assoc_when(var_args){ -var G__49327 = arguments.length; -switch (G__49327) { +var G__33935 = arguments.length; +switch (G__33935) { case 3: return taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -2351,14 +2389,14 @@ return taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50835 = arguments.length; -var i__5750__auto___50836 = (0); +var len__5749__auto___34680 = arguments.length; +var i__5750__auto___34681 = (0); while(true){ -if((i__5750__auto___50836 < len__5749__auto___50835)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50836])); +if((i__5750__auto___34681 < len__5749__auto___34680)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34681])); -var G__50837 = (i__5750__auto___50836 + (1)); -i__5750__auto___50836 = G__50837; +var G__34682 = (i__5750__auto___34681 + (1)); +i__5750__auto___34681 = G__34682; continue; } else { } @@ -2388,15 +2426,15 @@ return taoensso.encore.reduce_kvs(taoensso.encore.assoc_when,taoensso.encore.ass })); /** @this {Function} */ -(taoensso.encore.assoc_when.cljs$lang$applyTo = (function (seq49322){ -var G__49323 = cljs.core.first(seq49322); -var seq49322__$1 = cljs.core.next(seq49322); -var G__49324 = cljs.core.first(seq49322__$1); -var seq49322__$2 = cljs.core.next(seq49322__$1); -var G__49325 = cljs.core.first(seq49322__$2); -var seq49322__$3 = cljs.core.next(seq49322__$2); +(taoensso.encore.assoc_when.cljs$lang$applyTo = (function (seq33931){ +var G__33932 = cljs.core.first(seq33931); +var seq33931__$1 = cljs.core.next(seq33931); +var G__33933 = cljs.core.first(seq33931__$1); +var seq33931__$2 = cljs.core.next(seq33931__$1); +var G__33934 = cljs.core.first(seq33931__$2); +var seq33931__$3 = cljs.core.next(seq33931__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49323,G__49324,G__49325,seq49322__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33932,G__33933,G__33934,seq33931__$3); })); (taoensso.encore.assoc_when.cljs$lang$maxFixedArity = (3)); @@ -2405,8 +2443,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49323,G__49324 * Assocs each kv to given ?map iff its key doesn't already exist. */ taoensso.encore.assoc_nx = (function taoensso$encore$assoc_nx(var_args){ -var G__49341 = arguments.length; -switch (G__49341) { +var G__33941 = arguments.length; +switch (G__33941) { case 3: return taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -2417,14 +2455,14 @@ return taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),( break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50839 = arguments.length; -var i__5750__auto___50840 = (0); +var len__5749__auto___34684 = arguments.length; +var i__5750__auto___34685 = (0); while(true){ -if((i__5750__auto___50840 < len__5749__auto___50839)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50840])); +if((i__5750__auto___34685 < len__5749__auto___34684)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34685])); -var G__50841 = (i__5750__auto___50840 + (1)); -i__5750__auto___50840 = G__50841; +var G__34686 = (i__5750__auto___34685 + (1)); +i__5750__auto___34685 = G__34686; continue; } else { } @@ -2454,15 +2492,15 @@ return taoensso.encore.reduce_kvs(taoensso.encore.assoc_nx,taoensso.encore.assoc })); /** @this {Function} */ -(taoensso.encore.assoc_nx.cljs$lang$applyTo = (function (seq49335){ -var G__49336 = cljs.core.first(seq49335); -var seq49335__$1 = cljs.core.next(seq49335); -var G__49337 = cljs.core.first(seq49335__$1); -var seq49335__$2 = cljs.core.next(seq49335__$1); -var G__49338 = cljs.core.first(seq49335__$2); -var seq49335__$3 = cljs.core.next(seq49335__$2); +(taoensso.encore.assoc_nx.cljs$lang$applyTo = (function (seq33937){ +var G__33938 = cljs.core.first(seq33937); +var seq33937__$1 = cljs.core.next(seq33937); +var G__33939 = cljs.core.first(seq33937__$1); +var seq33937__$2 = cljs.core.next(seq33937__$1); +var G__33940 = cljs.core.first(seq33937__$2); +var seq33937__$3 = cljs.core.next(seq33937__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49336,G__49337,G__49338,seq49335__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33938,G__33939,G__33940,seq33937__$3); })); (taoensso.encore.assoc_nx.cljs$lang$maxFixedArity = (3)); @@ -2471,8 +2509,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49336,G__49337 * Assocs each kv to given ?map if its value is nil, otherwise dissocs it. */ taoensso.encore.reassoc_some = (function taoensso$encore$reassoc_some(var_args){ -var G__49358 = arguments.length; -switch (G__49358) { +var G__33947 = arguments.length; +switch (G__33947) { case 3: return taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -2483,14 +2521,14 @@ return taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50843 = arguments.length; -var i__5750__auto___50844 = (0); +var len__5749__auto___34688 = arguments.length; +var i__5750__auto___34689 = (0); while(true){ -if((i__5750__auto___50844 < len__5749__auto___50843)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50844])); +if((i__5750__auto___34689 < len__5749__auto___34688)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34689])); -var G__50845 = (i__5750__auto___50844 + (1)); -i__5750__auto___50844 = G__50845; +var G__34690 = (i__5750__auto___34689 + (1)); +i__5750__auto___34689 = G__34690; continue; } else { } @@ -2520,15 +2558,15 @@ return taoensso.encore.reduce_kvs(taoensso.encore.reassoc_some,taoensso.encore.r })); /** @this {Function} */ -(taoensso.encore.reassoc_some.cljs$lang$applyTo = (function (seq49354){ -var G__49355 = cljs.core.first(seq49354); -var seq49354__$1 = cljs.core.next(seq49354); -var G__49356 = cljs.core.first(seq49354__$1); -var seq49354__$2 = cljs.core.next(seq49354__$1); -var G__49357 = cljs.core.first(seq49354__$2); -var seq49354__$3 = cljs.core.next(seq49354__$2); +(taoensso.encore.reassoc_some.cljs$lang$applyTo = (function (seq33943){ +var G__33944 = cljs.core.first(seq33943); +var seq33943__$1 = cljs.core.next(seq33943); +var G__33945 = cljs.core.first(seq33943__$1); +var seq33943__$2 = cljs.core.next(seq33943__$1); +var G__33946 = cljs.core.first(seq33943__$2); +var seq33943__$3 = cljs.core.next(seq33943__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49355,G__49356,G__49357,seq49354__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33944,G__33945,G__33946,seq33943__$3); })); (taoensso.encore.reassoc_some.cljs$lang$maxFixedArity = (3)); @@ -2537,8 +2575,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49355,G__49356 * Assocs each kv to given ?map if its value is truthy, otherwise dissocs it. */ taoensso.encore.reassoc_when = (function taoensso$encore$reassoc_when(var_args){ -var G__49371 = arguments.length; -switch (G__49371) { +var G__33953 = arguments.length; +switch (G__33953) { case 3: return taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -2549,14 +2587,14 @@ return taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50847 = arguments.length; -var i__5750__auto___50848 = (0); +var len__5749__auto___34692 = arguments.length; +var i__5750__auto___34693 = (0); while(true){ -if((i__5750__auto___50848 < len__5749__auto___50847)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50848])); +if((i__5750__auto___34693 < len__5749__auto___34692)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34693])); -var G__50849 = (i__5750__auto___50848 + (1)); -i__5750__auto___50848 = G__50849; +var G__34694 = (i__5750__auto___34693 + (1)); +i__5750__auto___34693 = G__34694; continue; } else { } @@ -2586,15 +2624,15 @@ return taoensso.encore.reduce_kvs(taoensso.encore.reassoc_when,taoensso.encore.r })); /** @this {Function} */ -(taoensso.encore.reassoc_when.cljs$lang$applyTo = (function (seq49367){ -var G__49368 = cljs.core.first(seq49367); -var seq49367__$1 = cljs.core.next(seq49367); -var G__49369 = cljs.core.first(seq49367__$1); -var seq49367__$2 = cljs.core.next(seq49367__$1); -var G__49370 = cljs.core.first(seq49367__$2); -var seq49367__$3 = cljs.core.next(seq49367__$2); +(taoensso.encore.reassoc_when.cljs$lang$applyTo = (function (seq33949){ +var G__33950 = cljs.core.first(seq33949); +var seq33949__$1 = cljs.core.next(seq33949); +var G__33951 = cljs.core.first(seq33949__$1); +var seq33949__$2 = cljs.core.next(seq33949__$1); +var G__33952 = cljs.core.first(seq33949__$2); +var seq33949__$3 = cljs.core.next(seq33949__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49368,G__49369,G__49370,seq49367__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33950,G__33951,G__33952,seq33949__$3); })); (taoensso.encore.reassoc_when.cljs$lang$maxFixedArity = (3)); @@ -2624,8 +2662,8 @@ return null; taoensso.encore.vsplit_first = (function taoensso$encore$vsplit_first(v){ var c = cljs.core.count(v); if((c > (0))){ -var vec__49395 = v; -var v1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49395,(0),null); +var vec__33954 = v; +var v1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33954,(0),null); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v1,(((c > (1)))?cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1)):null)], null); } else { return null; @@ -2647,25 +2685,25 @@ return null; */ taoensso.encore.fsplit_last = (function taoensso$encore$fsplit_last(xs,f){ if(cljs.core.vector_QMARK_(xs)){ -var vec__49408 = taoensso.encore.vsplit_last(xs); -var vn = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49408,(0),null); -var vl = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49408,(1),null); +var vec__33957 = taoensso.encore.vsplit_last(xs); +var vn = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33957,(0),null); +var vl = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33957,(1),null); return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(vn,vl) : f.call(null,vn,vl)); } else { var butlast = cljs.core.PersistentVector.EMPTY; var xs__$1 = xs; while(true){ -var vec__49419 = xs__$1; -var seq__49420 = cljs.core.seq(vec__49419); -var first__49421 = cljs.core.first(seq__49420); -var seq__49420__$1 = cljs.core.next(seq__49420); -var x1 = first__49421; -var xn = seq__49420__$1; +var vec__33963 = xs__$1; +var seq__33964 = cljs.core.seq(vec__33963); +var first__33965 = cljs.core.first(seq__33964); +var seq__33964__$1 = cljs.core.next(seq__33964); +var x1 = first__33965; +var xn = seq__33964__$1; if(xn){ -var G__50850 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(butlast,x1); -var G__50851 = xn; -butlast = G__50850; -xs__$1 = G__50851; +var G__34695 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(butlast,x1); +var G__34696 = xn; +butlast = G__34695; +xs__$1 = G__34696; continue; } else { return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(butlast,x1) : f.call(null,butlast,x1)); @@ -2698,14 +2736,14 @@ taoensso.encore.seq_kvs = cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.c */ taoensso.encore.mapply = (function taoensso$encore$mapply(var_args){ var args__5755__auto__ = []; -var len__5749__auto___50852 = arguments.length; -var i__5750__auto___50853 = (0); +var len__5749__auto___34697 = arguments.length; +var i__5750__auto___34698 = (0); while(true){ -if((i__5750__auto___50853 < len__5749__auto___50852)){ -args__5755__auto__.push((arguments[i__5750__auto___50853])); +if((i__5750__auto___34698 < len__5749__auto___34697)){ +args__5755__auto__.push((arguments[i__5750__auto___34698])); -var G__50854 = (i__5750__auto___50853 + (1)); -i__5750__auto___50853 = G__50854; +var G__34699 = (i__5750__auto___34698 + (1)); +i__5750__auto___34698 = G__34699; continue; } else { } @@ -2725,33 +2763,33 @@ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(xs,taoensso.encore.seq_kvs (taoensso.encore.mapply.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.mapply.cljs$lang$applyTo = (function (seq49429){ -var G__49430 = cljs.core.first(seq49429); -var seq49429__$1 = cljs.core.next(seq49429); +(taoensso.encore.mapply.cljs$lang$applyTo = (function (seq33966){ +var G__33967 = cljs.core.first(seq33966); +var seq33966__$1 = cljs.core.next(seq33966); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49430,seq49429__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33967,seq33966__$1); })); /** * Like `into` but supports multiple "from"s. */ taoensso.encore.into_all = (function taoensso$encore$into_all(var_args){ -var G__49440 = arguments.length; -switch (G__49440) { +var G__33972 = arguments.length; +switch (G__33972) { case 2: return taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50856 = arguments.length; -var i__5750__auto___50857 = (0); +var len__5749__auto___34701 = arguments.length; +var i__5750__auto___34702 = (0); while(true){ -if((i__5750__auto___50857 < len__5749__auto___50856)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50857])); +if((i__5750__auto___34702 < len__5749__auto___34701)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34702])); -var G__50858 = (i__5750__auto___50857 + (1)); -i__5750__auto___50857 = G__50858; +var G__34703 = (i__5750__auto___34702 + (1)); +i__5750__auto___34702 = G__34703; continue; } else { } @@ -2775,13 +2813,13 @@ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,acc,i })); /** @this {Function} */ -(taoensso.encore.into_all.cljs$lang$applyTo = (function (seq49437){ -var G__49438 = cljs.core.first(seq49437); -var seq49437__$1 = cljs.core.next(seq49437); -var G__49439 = cljs.core.first(seq49437__$1); -var seq49437__$2 = cljs.core.next(seq49437__$1); +(taoensso.encore.into_all.cljs$lang$applyTo = (function (seq33969){ +var G__33970 = cljs.core.first(seq33969); +var seq33969__$1 = cljs.core.next(seq33969); +var G__33971 = cljs.core.first(seq33969__$1); +var seq33969__$2 = cljs.core.next(seq33969__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49438,G__49439,seq49437__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33970,G__33971,seq33969__$2); })); (taoensso.encore.into_all.cljs$lang$maxFixedArity = (2)); @@ -2802,8 +2840,8 @@ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(f.cljs$core$IFn$_invoke } }); taoensso.encore.update_BANG_ = (function taoensso$encore$update_BANG_(m,k,f){ -return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__49449 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49449) : f.call(null,G__49449)); +return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__33973 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33973) : f.call(null,G__33973)); })()); }); /** @@ -2811,8 +2849,8 @@ return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__494 * `persist!` when done. Useful as a performance optimization in some cases. */ taoensso.encore.into_BANG_ = (function taoensso$encore$into_BANG_(var_args){ -var G__49452 = arguments.length; -switch (G__49452) { +var G__33975 = arguments.length; +switch (G__33975) { case 1: return taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -2850,8 +2888,8 @@ return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.conj_BA * key function. Retains only items with distinct (keyfn ). */ taoensso.encore.xdistinct = (function taoensso$encore$xdistinct(var_args){ -var G__49461 = arguments.length; -switch (G__49461) { +var G__33977 = arguments.length; +switch (G__33977) { case 0: return taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$0(); @@ -2874,14 +2912,14 @@ return cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(); return (function (rf){ var seen_ = cljs.core.volatile_BANG_(cljs.core.transient$(cljs.core.PersistentHashSet.EMPTY)); return (function() { -var G__50862 = null; -var G__50862__0 = (function (){ +var G__34708 = null; +var G__34708__0 = (function (){ return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null)); }); -var G__50862__1 = (function (acc){ +var G__34708__1 = (function (acc){ return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc)); }); -var G__50862__2 = (function (acc,in$){ +var G__34708__2 = (function (acc,in$){ var k = (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$)); if(cljs.core.contains_QMARK_(cljs.core.deref(seen_),k)){ return acc; @@ -2891,21 +2929,21 @@ seen_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.conj_BANG_.cljs$c return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$)); } }); -G__50862 = function(acc,in$){ +G__34708 = function(acc,in$){ switch(arguments.length){ case 0: -return G__50862__0.call(this); +return G__34708__0.call(this); case 1: -return G__50862__1.call(this,acc); +return G__34708__1.call(this,acc); case 2: -return G__50862__2.call(this,acc,in$); +return G__34708__2.call(this,acc,in$); } throw(new Error('Invalid arity: ' + arguments.length)); }; -G__50862.cljs$core$IFn$_invoke$arity$0 = G__50862__0; -G__50862.cljs$core$IFn$_invoke$arity$1 = G__50862__1; -G__50862.cljs$core$IFn$_invoke$arity$2 = G__50862__2; -return G__50862; +G__34708.cljs$core$IFn$_invoke$arity$0 = G__34708__0; +G__34708.cljs$core$IFn$_invoke$arity$1 = G__34708__1; +G__34708.cljs$core$IFn$_invoke$arity$2 = G__34708__2; +return G__34708; })() }); })); @@ -2934,13 +2972,13 @@ return null; * Like `invert-map` but throws on non-unique vals. */ taoensso.encore.invert_map_BANG_ = (function taoensso$encore$invert_map_BANG_(m){ -var b2__43681__auto__ = taoensso.encore.invert_map(m); -if(cljs.core.truth_(b2__43681__auto__)){ -var im = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.invert_map(m); +if(cljs.core.truth_(b2__30646__auto__)){ +var im = b2__30646__auto__; if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(im),cljs.core.count(m))){ return im; } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1690,7], null),"[encore/invert-map!] Non-unique map vals",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),m,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(m)], null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1710,7], null),"[encore/invert-map!] Non-unique map vals",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),m,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(m)], null)], null),null); } } else { return null; @@ -3059,9 +3097,9 @@ return m; } else { if((cljs.core.count(m) > cljs.core.count(replacements))){ return cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,new_k){ -var b2__43681__auto__ = cljs.core.find(m,old_k); -if(cljs.core.truth_(b2__43681__auto__)){ -var e = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.find(m,old_k); +if(cljs.core.truth_(b2__30646__auto__)){ +var e = b2__30646__auto__; return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),new_k,cljs.core.val(e)); } else { return acc; @@ -3069,9 +3107,9 @@ return acc; }),cljs.core.transient$(m),replacements)); } else { return cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,v){ -var b2__43681__auto__ = cljs.core.find(replacements,old_k); -if(cljs.core.truth_(b2__43681__auto__)){ -var e = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.find(replacements,old_k); +if(cljs.core.truth_(b2__30646__auto__)){ +var e = b2__30646__auto__; return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),cljs.core.val(e),v); } else { return acc; @@ -3094,15 +3132,15 @@ return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,(f.cljs$core$IFn$ } }); taoensso.encore.ks_nnil_QMARK_ = (function taoensso$encore$ks_nnil_QMARK_(ks,m){ -return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49498_SHARP_){ -return (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__49498_SHARP_) == null))); +return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33978_SHARP_){ +return (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__33978_SHARP_) == null))); }),ks); }); taoensso.encore.ks_EQ_ = (function taoensso$encore$ks_EQ_(ks,m){ var and__5023__auto__ = (cljs.core.count(m) === cljs.core.count(ks)); if(and__5023__auto__){ -return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49502_SHARP_){ -return cljs.core.contains_QMARK_(m,p1__49502_SHARP_); +return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33979_SHARP_){ +return cljs.core.contains_QMARK_(m,p1__33979_SHARP_); }),ks); } else { return and__5023__auto__; @@ -3111,8 +3149,8 @@ return and__5023__auto__; taoensso.encore.ks_GT__EQ_ = (function taoensso$encore$ks_GT__EQ_(ks,m){ var and__5023__auto__ = (cljs.core.count(m) >= cljs.core.count(ks)); if(and__5023__auto__){ -return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49508_SHARP_){ -return cljs.core.contains_QMARK_(m,p1__49508_SHARP_); +return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33980_SHARP_){ +return cljs.core.contains_QMARK_(m,p1__33980_SHARP_); }),ks); } else { return and__5023__auto__; @@ -3141,8 +3179,8 @@ return and__5023__auto__; * - Adds support for special return vals: `:update/dissoc`, `:update/abort`. */ taoensso.encore.update_in = (function taoensso$encore$update_in(var_args){ -var G__49521 = arguments.length; -switch (G__49521) { +var G__33982 = arguments.length; +switch (G__33982) { case 3: return taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -3167,9 +3205,9 @@ return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(m) : f } else { var old = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m,ks,not_found); var new$ = (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(old) : f.call(null,old)); -var G__49534 = new$; -var G__49534__$1 = (((G__49534 instanceof cljs.core.Keyword))?G__49534.fqn:null); -switch (G__49534__$1) { +var G__33983 = new$; +var G__33983__$1 = (((G__33983 instanceof cljs.core.Keyword))?G__33983.fqn:null); +switch (G__33983__$1) { case "update/abort": case "swap/abort": return m; @@ -3198,8 +3236,8 @@ return cljs.core.assoc_in(m,ks,new$); (taoensso.encore.update_in.cljs$lang$maxFixedArity = 4); taoensso.encore.contains_in_QMARK_ = (function taoensso$encore$contains_in_QMARK_(var_args){ -var G__49541 = arguments.length; -switch (G__49541) { +var G__33985 = arguments.length; +switch (G__33985) { case 3: return taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -3231,8 +3269,8 @@ return taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3(coll,ks_ (taoensso.encore.contains_in_QMARK_.cljs$lang$maxFixedArity = 3); taoensso.encore.dissoc_in = (function taoensso$encore$dissoc_in(var_args){ -var G__49557 = arguments.length; -switch (G__49557) { +var G__33991 = arguments.length; +switch (G__33991) { case 3: return taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -3243,14 +3281,14 @@ return taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]), break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50879 = arguments.length; -var i__5750__auto___50880 = (0); +var len__5749__auto___34731 = arguments.length; +var i__5750__auto___34732 = (0); while(true){ -if((i__5750__auto___50880 < len__5749__auto___50879)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50880])); +if((i__5750__auto___34732 < len__5749__auto___34731)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34732])); -var G__50881 = (i__5750__auto___50880 + (1)); -i__5750__auto___50880 = G__50881; +var G__34734 = (i__5750__auto___34732 + (1)); +i__5750__auto___34732 = G__34734; continue; } else { } @@ -3284,15 +3322,15 @@ return new cljs.core.Keyword("update","abort","update/abort",-250474569); })); /** @this {Function} */ -(taoensso.encore.dissoc_in.cljs$lang$applyTo = (function (seq49551){ -var G__49552 = cljs.core.first(seq49551); -var seq49551__$1 = cljs.core.next(seq49551); -var G__49555 = cljs.core.first(seq49551__$1); -var seq49551__$2 = cljs.core.next(seq49551__$1); -var G__49556 = cljs.core.first(seq49551__$2); -var seq49551__$3 = cljs.core.next(seq49551__$2); +(taoensso.encore.dissoc_in.cljs$lang$applyTo = (function (seq33987){ +var G__33988 = cljs.core.first(seq33987); +var seq33987__$1 = cljs.core.next(seq33987); +var G__33989 = cljs.core.first(seq33987__$1); +var seq33987__$2 = cljs.core.next(seq33987__$1); +var G__33990 = cljs.core.first(seq33987__$2); +var seq33987__$3 = cljs.core.next(seq33987__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49552,G__49555,G__49556,seq49551__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33988,G__33989,G__33990,seq33987__$3); })); (taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2 = (function (m,ks){ @@ -3311,8 +3349,8 @@ return taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3(m,ks__$1,lk); * Private, don't use. */ taoensso.encore.node_paths = (function taoensso$encore$node_paths(var_args){ -var G__49581 = arguments.length; -switch (G__49581) { +var G__33993 = arguments.length; +switch (G__33993) { case 1: return taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -3366,8 +3404,8 @@ return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.conj.clj * rather than shortest coll has been consumed). */ taoensso.encore.interleave_all = (function taoensso$encore$interleave_all(var_args){ -var G__49601 = arguments.length; -switch (G__49601) { +var G__33998 = arguments.length; +switch (G__33998) { case 0: return taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$0(); @@ -3382,14 +3420,14 @@ return taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2((arguments[( break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50885 = arguments.length; -var i__5750__auto___50886 = (0); +var len__5749__auto___34751 = arguments.length; +var i__5750__auto___34753 = (0); while(true){ -if((i__5750__auto___50886 < len__5749__auto___50885)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50886])); +if((i__5750__auto___34753 < len__5749__auto___34751)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34753])); -var G__50887 = (i__5750__auto___50886 + (1)); -i__5750__auto___50886 = G__50887; +var G__34754 = (i__5750__auto___34753 + (1)); +i__5750__auto___34753 = G__34754; continue; } else { } @@ -3440,13 +3478,13 @@ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IF })); /** @this {Function} */ -(taoensso.encore.interleave_all.cljs$lang$applyTo = (function (seq49596){ -var G__49597 = cljs.core.first(seq49596); -var seq49596__$1 = cljs.core.next(seq49596); -var G__49598 = cljs.core.first(seq49596__$1); -var seq49596__$2 = cljs.core.next(seq49596__$1); +(taoensso.encore.interleave_all.cljs$lang$applyTo = (function (seq33995){ +var G__33996 = cljs.core.first(seq33995); +var seq33995__$1 = cljs.core.next(seq33995); +var G__33997 = cljs.core.first(seq33995__$1); +var seq33995__$2 = cljs.core.next(seq33995__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49597,G__49598,seq49596__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33996,G__33997,seq33995__$2); })); (taoensso.encore.interleave_all.cljs$lang$maxFixedArity = (2)); @@ -3460,8 +3498,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49597,G__49598 * Single-arity version takes a coll of colls. */ taoensso.encore.vinterleave_all = (function taoensso$encore$vinterleave_all(var_args){ -var G__49615 = arguments.length; -switch (G__49615) { +var G__34004 = arguments.length; +switch (G__34004) { case 1: return taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -3476,14 +3514,14 @@ return taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$3((arguments[ break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50889 = arguments.length; -var i__5750__auto___50890 = (0); +var len__5749__auto___34764 = arguments.length; +var i__5750__auto___34766 = (0); while(true){ -if((i__5750__auto___50890 < len__5749__auto___50889)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50890])); +if((i__5750__auto___34766 < len__5749__auto___34764)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34766])); -var G__50891 = (i__5750__auto___50890 + (1)); -i__5750__auto___50890 = G__50891; +var G__34767 = (i__5750__auto___34766 + (1)); +i__5750__auto___34766 = G__34767; continue; } else { } @@ -3510,12 +3548,12 @@ var s1 = cljs.core.seq(c1); var s2 = cljs.core.seq(c2); while(true){ if(((s1) && (s2))){ -var G__50892 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,cljs.core.first(s1)),cljs.core.first(s2)); -var G__50893 = cljs.core.next(s1); -var G__50894 = cljs.core.next(s2); -v = G__50892; -s1 = G__50893; -s2 = G__50894; +var G__34770 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,cljs.core.first(s1)),cljs.core.first(s2)); +var G__34771 = cljs.core.next(s1); +var G__34772 = cljs.core.next(s2); +v = G__34770; +s1 = G__34771; +s2 = G__34772; continue; } else { if(s1){ @@ -3541,15 +3579,15 @@ return taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1(cljs.core.i })); /** @this {Function} */ -(taoensso.encore.vinterleave_all.cljs$lang$applyTo = (function (seq49611){ -var G__49612 = cljs.core.first(seq49611); -var seq49611__$1 = cljs.core.next(seq49611); -var G__49613 = cljs.core.first(seq49611__$1); -var seq49611__$2 = cljs.core.next(seq49611__$1); -var G__49614 = cljs.core.first(seq49611__$2); -var seq49611__$3 = cljs.core.next(seq49611__$2); +(taoensso.encore.vinterleave_all.cljs$lang$applyTo = (function (seq34000){ +var G__34001 = cljs.core.first(seq34000); +var seq34000__$1 = cljs.core.next(seq34000); +var G__34002 = cljs.core.first(seq34000__$1); +var seq34000__$2 = cljs.core.next(seq34000__$1); +var G__34003 = cljs.core.first(seq34000__$2); +var seq34000__$3 = cljs.core.next(seq34000__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49612,G__49613,G__49614,seq49611__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34001,G__34002,G__34003,seq34000__$3); })); (taoensso.encore.vinterleave_all.cljs$lang$maxFixedArity = (3)); @@ -3561,12 +3599,12 @@ return cljs.core.persistent_BANG_(m); return m; } }); -var nx_50895 = ({}); -var min_transient_card_50896 = (64); -var dissoc_QMARK__50897 = (function (v){ -var G__49629 = v; -var G__49629__$1 = (((G__49629 instanceof cljs.core.Keyword))?G__49629.fqn:null); -switch (G__49629__$1) { +var nx_34778 = ({}); +var min_transient_card_34779 = (64); +var dissoc_QMARK__34780 = (function (v){ +var G__34007 = v; +var G__34007__$1 = (((G__34007 instanceof cljs.core.Keyword))?G__34007.fqn:null); +switch (G__34007__$1) { case "merge/dissoc": case "swap/dissoc": return true; @@ -3577,7 +3615,7 @@ return false; } }); -var dissoc_STAR__50898 = (function (m,k){ +var dissoc_STAR__34781 = (function (m,k){ if(taoensso.encore.transient_QMARK_(m)){ return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k); } else { @@ -3589,8 +3627,8 @@ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k); * Optimized for reasonable worst-case performance. */ taoensso.encore.merge_with_STAR_ = (function taoensso$encore$merge_with_STAR_(var_args){ -var G__49632 = arguments.length; -switch (G__49632) { +var G__34009 = arguments.length; +switch (G__34009) { case 3: return taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -3623,10 +3661,10 @@ return null; } } } else { -var b2__43681__auto__ = cljs.core.find(m2,new cljs.core.Keyword("merge","replace?","merge/replace?",-914523787)); -if(cljs.core.truth_(b2__43681__auto__)){ -var e = b2__43681__auto__; -var m2__$1 = dissoc_STAR__50898(m2,new cljs.core.Keyword("merge","replace?","merge/replace?",-914523787)); +var b2__30646__auto__ = cljs.core.find(m2,new cljs.core.Keyword("merge","replace?","merge/replace?",-914523787)); +if(cljs.core.truth_(b2__30646__auto__)){ +var e = b2__30646__auto__; +var m2__$1 = dissoc_STAR__34781(m2,new cljs.core.Keyword("merge","replace?","merge/replace?",-914523787)); if(cljs.core.truth_(cljs.core.val(e))){ return m2__$1; } else { @@ -3635,10 +3673,10 @@ return taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(nest_QMARK } else { var n1 = cljs.core.count(m1); if((n1 >= n2)){ -var m1_STAR_ = ((taoensso.encore.transient_QMARK_(m1))?m1:(((n1 >= min_transient_card_50896))?cljs.core.transient$(m1):m1)); +var m1_STAR_ = ((taoensso.encore.transient_QMARK_(m1))?m1:(((n1 >= min_transient_card_34779))?cljs.core.transient$(m1):m1)); var assoc_STAR_ = ((taoensso.encore.transient_QMARK_(m1_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc); return cljs.core.reduce_kv((function (m1_STAR___$1,k2,v2){ -var v1 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m1,k2,nx_50895); +var v1 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m1,k2,nx_34778); if(cljs.core.truth_((function (){var and__5023__auto__ = nest_QMARK_; if(cljs.core.truth_(and__5023__auto__)){ return ((cljs.core.map_QMARK_(v1)) && (cljs.core.map_QMARK_(v2))); @@ -3646,21 +3684,21 @@ return ((cljs.core.map_QMARK_(v1)) && (cljs.core.map_QMARK_(v2))); return and__5023__auto__; } })())){ -var G__49642 = m1_STAR___$1; -var G__49643 = k2; -var G__49644 = taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2)); -return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__49642,G__49643,G__49644) : assoc_STAR_.call(null,G__49642,G__49643,G__49644)); +var G__34010 = m1_STAR___$1; +var G__34011 = k2; +var G__34012 = taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2)); +return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__34010,G__34011,G__34012) : assoc_STAR_.call(null,G__34010,G__34011,G__34012)); } else { -if((v1 === nx_50895)){ +if((v1 === nx_34778)){ return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v2) : assoc_STAR_.call(null,m1_STAR___$1,k2,v2)); } else { -if(cljs.core.truth_(dissoc_QMARK__50897(v2))){ -return dissoc_STAR__50898(m1_STAR___$1,k2); +if(cljs.core.truth_(dissoc_QMARK__34780(v2))){ +return dissoc_STAR__34781(m1_STAR___$1,k2); } else { if(cljs.core.truth_(f)){ var v3 = (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2)); -if(cljs.core.truth_(dissoc_QMARK__50897(v3))){ -return dissoc_STAR__50898(m1_STAR___$1,k2); +if(cljs.core.truth_(dissoc_QMARK__34780(v3))){ +return dissoc_STAR__34781(m1_STAR___$1,k2); } else { return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v3) : assoc_STAR_.call(null,m1_STAR___$1,k2,v3)); } @@ -3673,7 +3711,7 @@ return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_i }),m1_STAR_,taoensso.encore.p_BANG_(m2)); } else { var m2_STAR_ = ((taoensso.encore.transient_QMARK_(m2))?m2:(function (){var m2__$1 = cljs.core.with_meta(m2,cljs.core.meta(m1)); -if((n2 >= min_transient_card_50896)){ +if((n2 >= min_transient_card_34779)){ return cljs.core.transient$(m2__$1); } else { return m2__$1; @@ -3681,7 +3719,7 @@ return m2__$1; })()); var assoc_STAR_ = ((taoensso.encore.transient_QMARK_(m2_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc); return cljs.core.reduce_kv((function (m2_STAR___$1,k1,v1){ -var v2 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m2,k1,nx_50895); +var v2 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m2,k1,nx_34778); if(cljs.core.truth_((function (){var and__5023__auto__ = nest_QMARK_; if(cljs.core.truth_(and__5023__auto__)){ return ((cljs.core.map_QMARK_(v1)) && (cljs.core.map_QMARK_(v2))); @@ -3689,21 +3727,21 @@ return ((cljs.core.map_QMARK_(v1)) && (cljs.core.map_QMARK_(v2))); return and__5023__auto__; } })())){ -var G__49650 = m2_STAR___$1; -var G__49651 = k1; -var G__49652 = taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2)); -return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__49650,G__49651,G__49652) : assoc_STAR_.call(null,G__49650,G__49651,G__49652)); +var G__34013 = m2_STAR___$1; +var G__34014 = k1; +var G__34015 = taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2)); +return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__34013,G__34014,G__34015) : assoc_STAR_.call(null,G__34013,G__34014,G__34015)); } else { -if((v2 === nx_50895)){ +if((v2 === nx_34778)){ return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v1) : assoc_STAR_.call(null,m2_STAR___$1,k1,v1)); } else { -if(cljs.core.truth_(dissoc_QMARK__50897(v2))){ -return dissoc_STAR__50898(m2_STAR___$1,k1); +if(cljs.core.truth_(dissoc_QMARK__34780(v2))){ +return dissoc_STAR__34781(m2_STAR___$1,k1); } else { if(cljs.core.truth_(f)){ var v3 = (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2)); -if(cljs.core.truth_(dissoc_QMARK__50897(v3))){ -return dissoc_STAR__50898(m2_STAR___$1,k1); +if(cljs.core.truth_(dissoc_QMARK__34780(v3))){ +return dissoc_STAR__34781(m2_STAR___$1,k1); } else { return (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v3) : assoc_STAR_.call(null,m2_STAR___$1,k1,v3)); } @@ -3727,8 +3765,8 @@ return m2_STAR___$1; * - Often faster, with much better worst-case performance. */ taoensso.encore.merge = (function taoensso$encore$merge(var_args){ -var G__49678 = arguments.length; -switch (G__49678) { +var G__34021 = arguments.length; +switch (G__34021) { case 0: return taoensso.encore.merge.cljs$core$IFn$_invoke$arity$0(); @@ -3747,14 +3785,14 @@ return taoensso.encore.merge.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arg break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50908 = arguments.length; -var i__5750__auto___50909 = (0); +var len__5749__auto___34799 = arguments.length; +var i__5750__auto___34800 = (0); while(true){ -if((i__5750__auto___50909 < len__5749__auto___50908)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50909])); +if((i__5750__auto___34800 < len__5749__auto___34799)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34800])); -var G__50910 = (i__5750__auto___50909 + (1)); -i__5750__auto___50909 = G__50910; +var G__34801 = (i__5750__auto___34800 + (1)); +i__5750__auto___34800 = G__34801; continue; } else { } @@ -3788,15 +3826,15 @@ return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_i })); /** @this {Function} */ -(taoensso.encore.merge.cljs$lang$applyTo = (function (seq49672){ -var G__49673 = cljs.core.first(seq49672); -var seq49672__$1 = cljs.core.next(seq49672); -var G__49675 = cljs.core.first(seq49672__$1); -var seq49672__$2 = cljs.core.next(seq49672__$1); -var G__49676 = cljs.core.first(seq49672__$2); -var seq49672__$3 = cljs.core.next(seq49672__$2); +(taoensso.encore.merge.cljs$lang$applyTo = (function (seq34017){ +var G__34018 = cljs.core.first(seq34017); +var seq34017__$1 = cljs.core.next(seq34017); +var G__34019 = cljs.core.first(seq34017__$1); +var seq34017__$2 = cljs.core.next(seq34017__$1); +var G__34020 = cljs.core.first(seq34017__$2); +var seq34017__$3 = cljs.core.next(seq34017__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49673,G__49675,G__49676,seq49672__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34018,G__34019,G__34020,seq34017__$3); })); (taoensso.encore.merge.cljs$lang$maxFixedArity = (3)); @@ -3808,8 +3846,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49673,G__49675 * - Often faster, with much better worst-case performance. */ taoensso.encore.nested_merge = (function taoensso$encore$nested_merge(var_args){ -var G__49703 = arguments.length; -switch (G__49703) { +var G__34027 = arguments.length; +switch (G__34027) { case 0: return taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$0(); @@ -3828,14 +3866,14 @@ return taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$3((arguments[(0) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50914 = arguments.length; -var i__5750__auto___50915 = (0); +var len__5749__auto___34804 = arguments.length; +var i__5750__auto___34805 = (0); while(true){ -if((i__5750__auto___50915 < len__5749__auto___50914)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50915])); +if((i__5750__auto___34805 < len__5749__auto___34804)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34805])); -var G__50916 = (i__5750__auto___50915 + (1)); -i__5750__auto___50915 = G__50916; +var G__34806 = (i__5750__auto___34805 + (1)); +i__5750__auto___34805 = G__34806; continue; } else { } @@ -3869,15 +3907,15 @@ return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_i })); /** @this {Function} */ -(taoensso.encore.nested_merge.cljs$lang$applyTo = (function (seq49698){ -var G__49700 = cljs.core.first(seq49698); -var seq49698__$1 = cljs.core.next(seq49698); -var G__49701 = cljs.core.first(seq49698__$1); -var seq49698__$2 = cljs.core.next(seq49698__$1); -var G__49702 = cljs.core.first(seq49698__$2); -var seq49698__$3 = cljs.core.next(seq49698__$2); +(taoensso.encore.nested_merge.cljs$lang$applyTo = (function (seq34023){ +var G__34024 = cljs.core.first(seq34023); +var seq34023__$1 = cljs.core.next(seq34023); +var G__34025 = cljs.core.first(seq34023__$1); +var seq34023__$2 = cljs.core.next(seq34023__$1); +var G__34026 = cljs.core.first(seq34023__$2); +var seq34023__$3 = cljs.core.next(seq34023__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49700,G__49701,G__49702,seq49698__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34024,G__34025,G__34026,seq34023__$3); })); (taoensso.encore.nested_merge.cljs$lang$maxFixedArity = (3)); @@ -3888,8 +3926,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49700,G__49701 * - Often faster, with much better worst-case performance. */ taoensso.encore.merge_with = (function taoensso$encore$merge_with(var_args){ -var G__49735 = arguments.length; -switch (G__49735) { +var G__34034 = arguments.length; +switch (G__34034) { case 1: return taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -3908,14 +3946,14 @@ return taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$4((arguments[(0)]) break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50918 = arguments.length; -var i__5750__auto___50919 = (0); +var len__5749__auto___34812 = arguments.length; +var i__5750__auto___34813 = (0); while(true){ -if((i__5750__auto___50919 < len__5749__auto___50918)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50919])); +if((i__5750__auto___34813 < len__5749__auto___34812)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34813])); -var G__50920 = (i__5750__auto___50919 + (1)); -i__5750__auto___50919 = G__50920; +var G__34814 = (i__5750__auto___34813 + (1)); +i__5750__auto___34813 = G__34814; continue; } else { } @@ -3949,17 +3987,17 @@ return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_i })); /** @this {Function} */ -(taoensso.encore.merge_with.cljs$lang$applyTo = (function (seq49728){ -var G__49729 = cljs.core.first(seq49728); -var seq49728__$1 = cljs.core.next(seq49728); -var G__49730 = cljs.core.first(seq49728__$1); -var seq49728__$2 = cljs.core.next(seq49728__$1); -var G__49731 = cljs.core.first(seq49728__$2); -var seq49728__$3 = cljs.core.next(seq49728__$2); -var G__49732 = cljs.core.first(seq49728__$3); -var seq49728__$4 = cljs.core.next(seq49728__$3); +(taoensso.encore.merge_with.cljs$lang$applyTo = (function (seq34029){ +var G__34030 = cljs.core.first(seq34029); +var seq34029__$1 = cljs.core.next(seq34029); +var G__34031 = cljs.core.first(seq34029__$1); +var seq34029__$2 = cljs.core.next(seq34029__$1); +var G__34032 = cljs.core.first(seq34029__$2); +var seq34029__$3 = cljs.core.next(seq34029__$2); +var G__34033 = cljs.core.first(seq34029__$3); +var seq34029__$4 = cljs.core.next(seq34029__$3); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49729,G__49730,G__49731,G__49732,seq49728__$4); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34030,G__34031,G__34032,G__34033,seq34029__$4); })); (taoensso.encore.merge_with.cljs$lang$maxFixedArity = (4)); @@ -3971,8 +4009,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49729,G__49730 * - Often faster, with much better worst-case performance. */ taoensso.encore.nested_merge_with = (function taoensso$encore$nested_merge_with(var_args){ -var G__49757 = arguments.length; -switch (G__49757) { +var G__34041 = arguments.length; +switch (G__34041) { case 1: return taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -3991,14 +4029,14 @@ return taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$4((argument break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50922 = arguments.length; -var i__5750__auto___50923 = (0); +var len__5749__auto___34817 = arguments.length; +var i__5750__auto___34818 = (0); while(true){ -if((i__5750__auto___50923 < len__5749__auto___50922)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50923])); +if((i__5750__auto___34818 < len__5749__auto___34817)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34818])); -var G__50924 = (i__5750__auto___50923 + (1)); -i__5750__auto___50923 = G__50924; +var G__34819 = (i__5750__auto___34818 + (1)); +i__5750__auto___34818 = G__34819; continue; } else { } @@ -4032,22 +4070,22 @@ return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_i })); /** @this {Function} */ -(taoensso.encore.nested_merge_with.cljs$lang$applyTo = (function (seq49751){ -var G__49752 = cljs.core.first(seq49751); -var seq49751__$1 = cljs.core.next(seq49751); -var G__49753 = cljs.core.first(seq49751__$1); -var seq49751__$2 = cljs.core.next(seq49751__$1); -var G__49754 = cljs.core.first(seq49751__$2); -var seq49751__$3 = cljs.core.next(seq49751__$2); -var G__49755 = cljs.core.first(seq49751__$3); -var seq49751__$4 = cljs.core.next(seq49751__$3); +(taoensso.encore.nested_merge_with.cljs$lang$applyTo = (function (seq34036){ +var G__34037 = cljs.core.first(seq34036); +var seq34036__$1 = cljs.core.next(seq34036); +var G__34038 = cljs.core.first(seq34036__$1); +var seq34036__$2 = cljs.core.next(seq34036__$1); +var G__34039 = cljs.core.first(seq34036__$2); +var seq34036__$3 = cljs.core.next(seq34036__$2); +var G__34040 = cljs.core.first(seq34036__$3); +var seq34036__$4 = cljs.core.next(seq34036__$3); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49752,G__49753,G__49754,G__49755,seq49751__$4); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34037,G__34038,G__34039,G__34040,seq34036__$4); })); (taoensso.encore.nested_merge_with.cljs$lang$maxFixedArity = (4)); -var mf_50925 = (function (x,y){ +var mf_34821 = (function (x,y){ return x; }); /** @@ -4057,8 +4095,8 @@ return x; * - Often faster, with much better worst-case performance. */ taoensso.encore.merge_nx = (function taoensso$encore$merge_nx(var_args){ -var G__49783 = arguments.length; -switch (G__49783) { +var G__34047 = arguments.length; +switch (G__34047) { case 0: return taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$0(); @@ -4077,14 +4115,14 @@ return taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),( break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50927 = arguments.length; -var i__5750__auto___50928 = (0); +var len__5749__auto___34824 = arguments.length; +var i__5750__auto___34825 = (0); while(true){ -if((i__5750__auto___50928 < len__5749__auto___50927)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50928])); +if((i__5750__auto___34825 < len__5749__auto___34824)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34825])); -var G__50929 = (i__5750__auto___50928 + (1)); -i__5750__auto___50928 = G__50929; +var G__34826 = (i__5750__auto___34825 + (1)); +i__5750__auto___34825 = G__34826; continue; } else { } @@ -4106,27 +4144,27 @@ return taoensso.encore.p_BANG_(m1); })); (taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$2 = (function (m1,m2){ -return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2)); +return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2)); })); (taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3 = (function (m1,m2,m3){ -return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2),m3)); +return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2),m3)); })); (taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$variadic = (function (m1,m2,m3,more){ -return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,mf_50925,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2),m3),more))); +return taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,mf_34821,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2),m3),more))); })); /** @this {Function} */ -(taoensso.encore.merge_nx.cljs$lang$applyTo = (function (seq49779){ -var G__49780 = cljs.core.first(seq49779); -var seq49779__$1 = cljs.core.next(seq49779); -var G__49781 = cljs.core.first(seq49779__$1); -var seq49779__$2 = cljs.core.next(seq49779__$1); -var G__49782 = cljs.core.first(seq49779__$2); -var seq49779__$3 = cljs.core.next(seq49779__$2); +(taoensso.encore.merge_nx.cljs$lang$applyTo = (function (seq34043){ +var G__34044 = cljs.core.first(seq34043); +var seq34043__$1 = cljs.core.next(seq34043); +var G__34045 = cljs.core.first(seq34043__$1); +var seq34043__$2 = cljs.core.next(seq34043__$1); +var G__34046 = cljs.core.first(seq34043__$2); +var seq34043__$3 = cljs.core.next(seq34043__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49780,G__49781,G__49782,seq49779__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34044,G__34045,G__34046,seq34043__$3); })); (taoensso.encore.merge_nx.cljs$lang$maxFixedArity = (3)); @@ -4218,8 +4256,8 @@ return clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qna * Private, don't use. */ taoensso.encore.merge_keywords = (function taoensso$encore$merge_keywords(var_args){ -var G__49817 = arguments.length; -switch (G__49817) { +var G__34049 = arguments.length; +switch (G__34049) { case 1: return taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -4264,9 +4302,52 @@ return null; (taoensso.encore.merge_keywords.cljs$lang$maxFixedArity = 2); +/** + * Private, don't use. + */ +taoensso.encore.get_ctor = (function taoensso$encore$get_ctor(name){ +if((typeof globalThis !== 'undefined')){ +return (globalThis[name]); +} else { +return null; +} +}); +var encoder_34834 = (function (){var b2__30646__auto__ = taoensso.encore.get_ctor("TextEncoder"); +if(cljs.core.truth_(b2__30646__auto__)){ +var ctor = b2__30646__auto__; +return (new ctor()); +} else { +return null; +} +})(); +/** + * Returns UTF-8 encoded Uint8Array for given string. + */ +taoensso.encore.str__GT_utf8_ba = (cljs.core.truth_(encoder_34834)?(function (s){ +return encoder_34834.encode(s); +}):(function (_){ +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2146,20], null),"`js/TextEncoder` not available",null,null); +})); + +var decoder_34835 = (function (){var b2__30646__auto__ = taoensso.encore.get_ctor("TextDecoder"); +if(cljs.core.truth_(b2__30646__auto__)){ +var ctor = b2__30646__auto__; +return (new ctor("utf-8")); +} else { +return null; +} +})(); +/** + * Returns string for given UTF-8 encoded Uint8Array. + */ +taoensso.encore.utf8_ba__GT_str = (cljs.core.truth_(decoder_34835)?(function (u8s){ +return decoder_34835.decode(u8s); +}):(function (_){ +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2153,20], null),"`js/TextDecoder` not available",null,null); +})); taoensso.encore.approx_EQ__EQ_ = (function taoensso$encore$approx_EQ__EQ_(var_args){ -var G__49827 = arguments.length; -switch (G__49827) { +var G__34053 = arguments.length; +switch (G__34053) { case 2: return taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -4353,8 +4434,8 @@ return n; * - `precision` - Number of decimal places to include (default `nil` => none) */ taoensso.encore.round = (function taoensso$encore$round(var_args){ -var G__49853 = arguments.length; -switch (G__49853) { +var G__34066 = arguments.length; +switch (G__34066) { case 1: return taoensso.encore.round.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -4393,9 +4474,9 @@ var n = a3; var modifier = (cljs.core.truth_(a2)?Math.pow(10.0,a2):null); var n_STAR_ = (cljs.core.truth_(modifier)?(n * modifier):n); var rounded = (function (){var kind = a1; -var G__49856 = kind; -var G__49856__$1 = (((G__49856 instanceof cljs.core.Keyword))?G__49856.fqn:null); -switch (G__49856__$1) { +var G__34067 = kind; +var G__34067__$1 = (((G__34067 instanceof cljs.core.Keyword))?G__34067.fqn:null); +switch (G__34067__$1) { case "round": return Math.round(n_STAR_); @@ -4413,7 +4494,7 @@ return cljs.core.long$(n_STAR_); break; default: -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2269,16], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"kind","kind",923265724,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","round","taoensso.encore/round",716371329,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"ceil","ceil",-1824929952),null,new cljs.core.Keyword(null,"trunc","trunc",-256146097),null,new cljs.core.Keyword(null,"round","round",2009433328),null,new cljs.core.Keyword(null,"floor","floor",1882041021),null], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2306,16], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"kind","kind",923265724,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","round","taoensso.encore/round",716371329,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"ceil","ceil",-1824929952),null,new cljs.core.Keyword(null,"trunc","trunc",-256146097),null,new cljs.core.Keyword(null,"round","round",2009433328),null,new cljs.core.Keyword(null,"floor","floor",1882041021),null], null), null)], null)); } })(); @@ -4459,8 +4540,8 @@ return (Math.round((n * p)) / p); * Returns binary exponential backoff value for n<=36. */ taoensso.encore.exp_backoff = (function taoensso$encore$exp_backoff(var_args){ -var G__49879 = arguments.length; -switch (G__49879) { +var G__34069 = arguments.length; +switch (G__34069) { case 1: return taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -4479,12 +4560,12 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( return taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2(n_attempt,null); })); -(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2 = (function (n_attempt,p__49886){ -var map__49887 = p__49886; -var map__49887__$1 = cljs.core.__destructure_map(map__49887); -var min = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49887__$1,new cljs.core.Keyword(null,"min","min",444991522)); -var max = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49887__$1,new cljs.core.Keyword(null,"max","max",61366548)); -var factor = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__49887__$1,new cljs.core.Keyword(null,"factor","factor",-2103172748),(1000)); +(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2 = (function (n_attempt,p__34070){ +var map__34071 = p__34070; +var map__34071__$1 = cljs.core.__destructure_map(map__34071); +var min = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34071__$1,new cljs.core.Keyword(null,"min","min",444991522)); +var max = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34071__$1,new cljs.core.Keyword(null,"max","max",61366548)); +var factor = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34071__$1,new cljs.core.Keyword(null,"factor","factor",-2103172748),(1000)); var n = (((n_attempt > (36)))?(36):n_attempt); var b = Math.pow((2),n); var t = cljs.core.long$((((b + cljs.core.rand.cljs$core$IFn$_invoke$arity$1(b)) * 0.5) * factor)); @@ -4515,8 +4596,8 @@ return x; * Returns true iff given args are equal AND non-nil. */ taoensso.encore.some_EQ_ = (function taoensso$encore$some_EQ_(var_args){ -var G__49911 = arguments.length; -switch (G__49911) { +var G__34077 = arguments.length; +switch (G__34077) { case 1: return taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -4527,14 +4608,14 @@ return taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),( break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50938 = arguments.length; -var i__5750__auto___50939 = (0); +var len__5749__auto___34860 = arguments.length; +var i__5750__auto___34861 = (0); while(true){ -if((i__5750__auto___50939 < len__5749__auto___50938)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50939])); +if((i__5750__auto___34861 < len__5749__auto___34860)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34861])); -var G__50940 = (i__5750__auto___50939 + (1)); -i__5750__auto___50939 = G__50940; +var G__34862 = (i__5750__auto___34861 + (1)); +i__5750__auto___34861 = G__34862; continue; } else { } @@ -4560,8 +4641,8 @@ var and__5023__auto__ = (!((x == null))); if(and__5023__auto__){ var and__5023__auto____$1 = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y); if(and__5023__auto____$1){ -return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49904_SHARP_){ -return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p1__49904_SHARP_,x); +return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__34072_SHARP_){ +return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p1__34072_SHARP_,x); }),more); } else { return and__5023__auto____$1; @@ -4572,13 +4653,13 @@ return and__5023__auto__; })); /** @this {Function} */ -(taoensso.encore.some_EQ_.cljs$lang$applyTo = (function (seq49908){ -var G__49909 = cljs.core.first(seq49908); -var seq49908__$1 = cljs.core.next(seq49908); -var G__49910 = cljs.core.first(seq49908__$1); -var seq49908__$2 = cljs.core.next(seq49908__$1); +(taoensso.encore.some_EQ_.cljs$lang$applyTo = (function (seq34074){ +var G__34075 = cljs.core.first(seq34074); +var seq34074__$1 = cljs.core.next(seq34074); +var G__34076 = cljs.core.first(seq34074__$1); +var seq34074__$2 = cljs.core.next(seq34074__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49909,G__49910,seq49908__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34075,G__34076,seq34074__$2); })); (taoensso.encore.some_EQ_.cljs$lang$maxFixedArity = (2)); @@ -4587,8 +4668,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49909,G__49910 * Returns first non-nil arg, or nil. */ taoensso.encore.nnil = (function taoensso$encore$nnil(var_args){ -var G__49938 = arguments.length; -switch (G__49938) { +var G__34083 = arguments.length; +switch (G__34083) { case 0: return taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$0(); @@ -4607,14 +4688,14 @@ return taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(argu break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50942 = arguments.length; -var i__5750__auto___50943 = (0); +var len__5749__auto___34864 = arguments.length; +var i__5750__auto___34865 = (0); while(true){ -if((i__5750__auto___50943 < len__5749__auto___50942)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50943])); +if((i__5750__auto___34865 < len__5749__auto___34864)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34865])); -var G__50944 = (i__5750__auto___50943 + (1)); -i__5750__auto___50943 = G__50944; +var G__34866 = (i__5750__auto___34865 + (1)); +i__5750__auto___34865 = G__34866; continue; } else { } @@ -4672,33 +4753,33 @@ return x; })); /** @this {Function} */ -(taoensso.encore.nnil.cljs$lang$applyTo = (function (seq49932){ -var G__49933 = cljs.core.first(seq49932); -var seq49932__$1 = cljs.core.next(seq49932); -var G__49934 = cljs.core.first(seq49932__$1); -var seq49932__$2 = cljs.core.next(seq49932__$1); -var G__49935 = cljs.core.first(seq49932__$2); -var seq49932__$3 = cljs.core.next(seq49932__$2); +(taoensso.encore.nnil.cljs$lang$applyTo = (function (seq34079){ +var G__34080 = cljs.core.first(seq34079); +var seq34079__$1 = cljs.core.next(seq34079); +var G__34081 = cljs.core.first(seq34079__$1); +var seq34079__$2 = cljs.core.next(seq34079__$1); +var G__34082 = cljs.core.first(seq34079__$2); +var seq34079__$3 = cljs.core.next(seq34079__$2); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49933,G__49934,G__49935,seq49932__$3); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34080,G__34081,G__34082,seq34079__$3); })); (taoensso.encore.nnil.cljs$lang$maxFixedArity = (3)); taoensso.encore.parse_version = (function taoensso$encore$parse_version(x){ -var vec__49956 = clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),/-/,(2)); -var s_version = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49956,(0),null); -var _QMARK_s_qualifier = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49956,(1),null); -return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"version","version",425292698),(function (){var b2__43681__auto__ = cljs.core.re_seq(/\d+/,s_version); -if(cljs.core.truth_(b2__43681__auto__)){ -var s = b2__43681__auto__; +var vec__34084 = clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),/-/,(2)); +var s_version = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34084,(0),null); +var _QMARK_s_qualifier = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34084,(1),null); +return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"version","version",425292698),(function (){var b2__30646__auto__ = cljs.core.re_seq(/\d+/,s_version); +if(cljs.core.truth_(b2__30646__auto__)){ +var s = b2__30646__auto__; return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_int,s); } else { return null; } -})(),new cljs.core.Keyword(null,"qualifier","qualifier",125841738),(function (){var b2__43681__auto__ = _QMARK_s_qualifier; -if(cljs.core.truth_(b2__43681__auto__)){ -var s = b2__43681__auto__; +})(),new cljs.core.Keyword(null,"qualifier","qualifier",125841738),(function (){var b2__30646__auto__ = _QMARK_s_qualifier; +if(cljs.core.truth_(b2__30646__auto__)){ +var s = b2__30646__auto__; return clojure.string.lower_case(s); } else { return null; @@ -4739,10 +4820,10 @@ return Date.now(); /** * Returns current value of best-resolution time source as nanoseconds. */ -taoensso.encore.now_nano = (function (){var b2__43681__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,"performance"); -if(cljs.core.truth_(b2__43681__auto__)){ -var perf = b2__43681__auto__; -var b2__43681__auto____$1 = (function (){var or__5025__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,"now"); +taoensso.encore.now_nano = (function (){var b2__30646__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,"performance"); +if(cljs.core.truth_(b2__30646__auto__)){ +var perf = b2__30646__auto__; +var b2__30646__auto____$1 = (function (){var or__5025__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,"now"); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { @@ -4764,8 +4845,8 @@ return taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,"oNow"); } } })(); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var pf = b2__43681__auto____$1; +if(cljs.core.truth_(b2__30646__auto____$1)){ +var pf = b2__30646__auto____$1; return (function (){ return Math.floor((1000000.0 * pf.call(perf))); }); @@ -4884,8 +4965,8 @@ return taoensso.encore._as_throw(new cljs.core.Keyword(null,"udt","udt",20117127 * including the default (`DateTimeFormatter/ISO_INSTANT`)! */ taoensso.encore.format_inst_fn = (function taoensso$encore$format_inst_fn(var_args){ -var G__50024 = arguments.length; -switch (G__50024) { +var G__34096 = arguments.length; +switch (G__34096) { case 0: return taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0(); @@ -4904,10 +4985,10 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( return taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1(null); })); -(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1 = (function (p__50025){ -var map__50026 = p__50025; -var map__50026__$1 = cljs.core.__destructure_map(map__50026); -var formatter = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50026__$1,new cljs.core.Keyword(null,"formatter","formatter",-483008823)); +(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1 = (function (p__34097){ +var map__34098 = p__34097; +var map__34098__$1 = cljs.core.__destructure_map(map__34098); +var formatter = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34098__$1,new cljs.core.Keyword(null,"formatter","formatter",-483008823)); if(cljs.core.truth_(formatter)){ return (function taoensso$encore$format_instant(instant){ return formatter.format(instant); @@ -4921,14 +5002,14 @@ return instant.toISOString(); (taoensso.encore.format_inst_fn.cljs$lang$maxFixedArity = 1); -var default_fn_50948 = taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0(); +var default_fn_34872 = taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0(); /** * Takes a platform instant (`java.time.Instant` or `js/Date`) and * returns a formatted human-readable string in `ISO8601` format * (`YYYY-MM-DDTHH:mm:ss.sssZ`), e.g. "2011-12-03T10:15:130Z". */ taoensso.encore.format_inst = (function taoensso$encore$format_inst(inst){ -return (default_fn_50948.cljs$core$IFn$_invoke$arity$1 ? default_fn_50948.cljs$core$IFn$_invoke$arity$1(inst) : default_fn_50948.call(null,inst)); +return (default_fn_34872.cljs$core$IFn$_invoke$arity$1 ? default_fn_34872.cljs$core$IFn$_invoke$arity$1(inst) : default_fn_34872.call(null,inst)); }); taoensso.encore.secs__GT_ms = (function taoensso$encore$secs__GT_ms(secs){ return (cljs.core.long$(secs) * (1000)); @@ -4940,8 +5021,8 @@ return cljs.core.quot(cljs.core.long$(ms),(1000)); * Returns ~number of milliseconds in period defined by given args. */ taoensso.encore.ms = (function taoensso$encore$ms(var_args){ -var G__50064 = arguments.length; -switch (G__50064) { +var G__34117 = arguments.length; +switch (G__34117) { case 1: return taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -4956,14 +5037,14 @@ return taoensso.encore.ms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(argume break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50950 = arguments.length; -var i__5750__auto___50951 = (0); +var len__5749__auto___34875 = arguments.length; +var i__5750__auto___34876 = (0); while(true){ -if((i__5750__auto___50951 < len__5749__auto___50950)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50951])); +if((i__5750__auto___34876 < len__5749__auto___34875)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34876])); -var G__50952 = (i__5750__auto___50951 + (1)); -i__5750__auto___50951 = G__50952; +var G__34885 = (i__5750__auto___34876 + (1)); +i__5750__auto___34876 = G__34885; continue; } else { } @@ -4976,18 +5057,18 @@ return taoensso.encore.ms.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]), } }); -(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1 = (function (p__50066){ -var map__50067 = p__50066; -var map__50067__$1 = cljs.core.__destructure_map(map__50067); -var ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"ms","ms",-1152709733)); -var weeks = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"weeks","weeks",1844596125)); -var msecs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"msecs","msecs",1711980553)); -var months = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"months","months",-45571637)); -var secs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"secs","secs",1532330091)); -var mins = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"mins","mins",467369676)); -var days = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"days","days",-1394072564)); -var hours = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"hours","hours",58380855)); -var years = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,"years","years",-1298579689)); +(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1 = (function (p__34118){ +var map__34119 = p__34118; +var map__34119__$1 = cljs.core.__destructure_map(map__34119); +var ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"ms","ms",-1152709733)); +var weeks = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"weeks","weeks",1844596125)); +var msecs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"msecs","msecs",1711980553)); +var months = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"months","months",-45571637)); +var secs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"secs","secs",1532330091)); +var mins = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"mins","mins",467369676)); +var days = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"days","days",-1394072564)); +var hours = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"hours","hours",58380855)); +var years = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,"years","years",-1298579689)); return taoensso.encore.round0((((((((((cljs.core.truth_(years)?(years * (31536000000)):0.0) + (cljs.core.truth_(months)?(months * 2.551392E9):0.0)) + (cljs.core.truth_(weeks)?(weeks * (604800000)):0.0)) + (cljs.core.truth_(days)?(days * (86400000)):0.0)) + (cljs.core.truth_(hours)?(hours * (3600000)):0.0)) + (cljs.core.truth_(mins)?(mins * (60000)):0.0)) + (cljs.core.truth_(secs)?(secs * (1000)):0.0)) + (cljs.core.truth_(msecs)?msecs:0.0)) + (cljs.core.truth_(ms)?ms:0.0))); })); @@ -5004,17 +5085,17 @@ return taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(taoensso.encore.reduce_k })); /** @this {Function} */ -(taoensso.encore.ms.cljs$lang$applyTo = (function (seq50058){ -var G__50059 = cljs.core.first(seq50058); -var seq50058__$1 = cljs.core.next(seq50058); -var G__50060 = cljs.core.first(seq50058__$1); -var seq50058__$2 = cljs.core.next(seq50058__$1); -var G__50061 = cljs.core.first(seq50058__$2); -var seq50058__$3 = cljs.core.next(seq50058__$2); -var G__50062 = cljs.core.first(seq50058__$3); -var seq50058__$4 = cljs.core.next(seq50058__$3); +(taoensso.encore.ms.cljs$lang$applyTo = (function (seq34112){ +var G__34113 = cljs.core.first(seq34112); +var seq34112__$1 = cljs.core.next(seq34112); +var G__34114 = cljs.core.first(seq34112__$1); +var seq34112__$2 = cljs.core.next(seq34112__$1); +var G__34115 = cljs.core.first(seq34112__$2); +var seq34112__$3 = cljs.core.next(seq34112__$2); +var G__34116 = cljs.core.first(seq34112__$3); +var seq34112__$4 = cljs.core.next(seq34112__$3); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50059,G__50060,G__50061,G__50062,seq50058__$4); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34113,G__34114,G__34115,G__34116,seq34112__$4); })); (taoensso.encore.ms.cljs$lang$maxFixedArity = (4)); @@ -5023,8 +5104,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50059,G__50060 * Returns ~number of seconds in period defined by given args. */ taoensso.encore.secs = (function taoensso$encore$secs(var_args){ -var G__50087 = arguments.length; -switch (G__50087) { +var G__34126 = arguments.length; +switch (G__34126) { case 1: return taoensso.encore.secs.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -5039,14 +5120,14 @@ return taoensso.encore.secs.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(argu break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50954 = arguments.length; -var i__5750__auto___50955 = (0); +var len__5749__auto___34895 = arguments.length; +var i__5750__auto___34896 = (0); while(true){ -if((i__5750__auto___50955 < len__5749__auto___50954)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50955])); +if((i__5750__auto___34896 < len__5749__auto___34895)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34896])); -var G__50956 = (i__5750__auto___50955 + (1)); -i__5750__auto___50955 = G__50956; +var G__34898 = (i__5750__auto___34896 + (1)); +i__5750__auto___34896 = G__34898; continue; } else { } @@ -5076,17 +5157,17 @@ return taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arit })); /** @this {Function} */ -(taoensso.encore.secs.cljs$lang$applyTo = (function (seq50080){ -var G__50082 = cljs.core.first(seq50080); -var seq50080__$1 = cljs.core.next(seq50080); -var G__50083 = cljs.core.first(seq50080__$1); -var seq50080__$2 = cljs.core.next(seq50080__$1); -var G__50084 = cljs.core.first(seq50080__$2); -var seq50080__$3 = cljs.core.next(seq50080__$2); -var G__50085 = cljs.core.first(seq50080__$3); -var seq50080__$4 = cljs.core.next(seq50080__$3); +(taoensso.encore.secs.cljs$lang$applyTo = (function (seq34121){ +var G__34122 = cljs.core.first(seq34121); +var seq34121__$1 = cljs.core.next(seq34121); +var G__34123 = cljs.core.first(seq34121__$1); +var seq34121__$2 = cljs.core.next(seq34121__$1); +var G__34124 = cljs.core.first(seq34121__$2); +var seq34121__$3 = cljs.core.next(seq34121__$2); +var G__34125 = cljs.core.first(seq34121__$3); +var seq34121__$4 = cljs.core.next(seq34121__$3); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50082,G__50083,G__50084,G__50085,seq50080__$4); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34122,G__34123,G__34124,G__34125,seq34121__$4); })); (taoensso.encore.secs.cljs$lang$maxFixedArity = (4)); @@ -5106,8 +5187,8 @@ return (x instanceof goog.string.StringBuffer); * See also `sb-append`. */ taoensso.encore.str_builder = (function taoensso$encore$str_builder(var_args){ -var G__50115 = arguments.length; -switch (G__50115) { +var G__34128 = arguments.length; +switch (G__34128) { case 0: return taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(); @@ -5146,22 +5227,22 @@ return sb.getLength(); * Appends given string/s to given string builder. See also `str-builder.` */ taoensso.encore.sb_append = (function taoensso$encore$sb_append(var_args){ -var G__50140 = arguments.length; -switch (G__50140) { +var G__34133 = arguments.length; +switch (G__34133) { case 2: return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: var args_arr__5774__auto__ = []; -var len__5749__auto___50959 = arguments.length; -var i__5750__auto___50960 = (0); +var len__5749__auto___34944 = arguments.length; +var i__5750__auto___34946 = (0); while(true){ -if((i__5750__auto___50960 < len__5749__auto___50959)){ -args_arr__5774__auto__.push((arguments[i__5750__auto___50960])); +if((i__5750__auto___34946 < len__5749__auto___34944)){ +args_arr__5774__auto__.push((arguments[i__5750__auto___34946])); -var G__50961 = (i__5750__auto___50960 + (1)); -i__5750__auto___50960 = G__50961; +var G__34948 = (i__5750__auto___34946 + (1)); +i__5750__auto___34946 = G__34948; continue; } else { } @@ -5189,13 +5270,13 @@ return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$); })); /** @this {Function} */ -(taoensso.encore.sb_append.cljs$lang$applyTo = (function (seq50136){ -var G__50137 = cljs.core.first(seq50136); -var seq50136__$1 = cljs.core.next(seq50136); -var G__50138 = cljs.core.first(seq50136__$1); -var seq50136__$2 = cljs.core.next(seq50136__$1); +(taoensso.encore.sb_append.cljs$lang$applyTo = (function (seq34130){ +var G__34131 = cljs.core.first(seq34130); +var seq34130__$1 = cljs.core.next(seq34130); +var G__34132 = cljs.core.first(seq34130__$1); +var seq34130__$2 = cljs.core.next(seq34130__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50137,G__50138,seq50136__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34131,G__34132,seq34130__$2); })); (taoensso.encore.sb_append.cljs$lang$maxFixedArity = (2)); @@ -5208,8 +5289,8 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50137,G__50138 * - Returns the underlying string builder. */ taoensso.encore.sb_appender = (function taoensso$encore$sb_appender(var_args){ -var G__50155 = arguments.length; -switch (G__50155) { +var G__34135 = arguments.length; +switch (G__34135) { case 0: return taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$0(); @@ -5266,7 +5347,7 @@ return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x); } }); var taoensso$encore$a_sb_appender__2 = (function() { -var G__50963__delegate = function (x,more){ +var G__34957__delegate = function (x,more){ if(cljs.core.truth_((function (){var and__5023__auto__ = (x == null); if(and__5023__auto__){ return taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,more); @@ -5283,22 +5364,22 @@ return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$); }),taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x),more); } }; -var G__50963 = function (x,var_args){ +var G__34957 = function (x,var_args){ var more = null; if (arguments.length > 1) { -var G__50964__i = 0, G__50964__a = new Array(arguments.length - 1); -while (G__50964__i < G__50964__a.length) {G__50964__a[G__50964__i] = arguments[G__50964__i + 1]; ++G__50964__i;} - more = new cljs.core.IndexedSeq(G__50964__a,0,null); +var G__34958__i = 0, G__34958__a = new Array(arguments.length - 1); +while (G__34958__i < G__34958__a.length) {G__34958__a[G__34958__i] = arguments[G__34958__i + 1]; ++G__34958__i;} + more = new cljs.core.IndexedSeq(G__34958__a,0,null); } -return G__50963__delegate.call(this,x,more);}; -G__50963.cljs$lang$maxFixedArity = 1; -G__50963.cljs$lang$applyTo = (function (arglist__50965){ -var x = cljs.core.first(arglist__50965); -var more = cljs.core.rest(arglist__50965); -return G__50963__delegate(x,more); -}); -G__50963.cljs$core$IFn$_invoke$arity$variadic = G__50963__delegate; -return G__50963; +return G__34957__delegate.call(this,x,more);}; +G__34957.cljs$lang$maxFixedArity = 1; +G__34957.cljs$lang$applyTo = (function (arglist__34959){ +var x = cljs.core.first(arglist__34959); +var more = cljs.core.rest(arglist__34959); +return G__34957__delegate(x,more); +}); +G__34957.cljs$core$IFn$_invoke$arity$variadic = G__34957__delegate; +return G__34957; })() ; taoensso$encore$a_sb_appender = function(x,var_args){ @@ -5309,13 +5390,13 @@ return taoensso$encore$a_sb_appender__0.call(this); case 1: return taoensso$encore$a_sb_appender__1.call(this,x); default: -var G__50966 = null; +var G__34962 = null; if (arguments.length > 1) { -var G__50967__i = 0, G__50967__a = new Array(arguments.length - 1); -while (G__50967__i < G__50967__a.length) {G__50967__a[G__50967__i] = arguments[G__50967__i + 1]; ++G__50967__i;} -G__50966 = new cljs.core.IndexedSeq(G__50967__a,0,null); +var G__34963__i = 0, G__34963__a = new Array(arguments.length - 1); +while (G__34963__i < G__34963__a.length) {G__34963__a[G__34963__i] = arguments[G__34963__i + 1]; ++G__34963__i;} +G__34962 = new cljs.core.IndexedSeq(G__34963__a,0,null); } -return taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic(x, G__50966); +return taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic(x, G__34962); } throw(new Error('Invalid arity: ' + arguments.length)); }; @@ -5334,8 +5415,8 @@ return taoensso$encore$a_sb_appender; * String builder reducing fn. */ taoensso.encore.str_rf = (function taoensso$encore$str_rf(var_args){ -var G__50159 = arguments.length; -switch (G__50159) { +var G__34137 = arguments.length; +switch (G__34137) { case 0: return taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$0(); @@ -5376,8 +5457,8 @@ return taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1(acc).append(in$ * Like `str-rf` but presumes string builder init value. */ taoensso.encore.sb_rf = (function taoensso$encore$sb_rf(var_args){ -var G__50161 = arguments.length; -switch (G__50161) { +var G__34139 = arguments.length; +switch (G__34139) { case 0: return taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$0(); @@ -5418,8 +5499,8 @@ return sb.append(in$.toString()); * Faster generalization of `clojure.string/join` with transducer support. */ taoensso.encore.str_join = (function taoensso$encore$str_join(var_args){ -var G__50165 = arguments.length; -switch (G__50165) { +var G__34141 = arguments.length; +switch (G__34141) { case 1: return taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -5490,8 +5571,8 @@ return null; * Returns (first/last) ?index of substring if it exists within given string. */ taoensso.encore.str__QMARK_index = (function taoensso$encore$str__QMARK_index(var_args){ -var G__50179 = arguments.length; -switch (G__50179) { +var G__34143 = arguments.length; +switch (G__34143) { case 2: return taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -5560,8 +5641,8 @@ return and__5023__auto__; * `norm-form` is ∈ #{:nfc :nfkc :nfd :nfkd} (default `:nfc` as per W3C). */ taoensso.encore.norm_str = (function taoensso$encore$norm_str(var_args){ -var G__50185 = arguments.length; -switch (G__50185) { +var G__34145 = arguments.length; +switch (G__34145) { case 1: return taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -5581,9 +5662,9 @@ return taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyw })); (taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2 = (function (norm_form,s){ -var norm_form__$1 = (function (){var G__50188 = norm_form; -var G__50188__$1 = (((G__50188 instanceof cljs.core.Keyword))?G__50188.fqn:null); -switch (G__50188__$1) { +var norm_form__$1 = (function (){var G__34146 = norm_form; +var G__34146__$1 = (((G__34146 instanceof cljs.core.Keyword))?G__34146.fqn:null); +switch (G__34146__$1) { case "nfc": return "NFC"; @@ -5601,7 +5682,7 @@ return "NFKD"; break; default: -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2973,14], null),norm_form,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"norm-form","norm-form",-1587703891,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","norm-str","taoensso.encore/norm-str",-56716920,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"nfc","nfc",1898291461),null,new cljs.core.Keyword(null,"nfkc","nfkc",1301302858),null,new cljs.core.Keyword(null,"nfkd","nfkd",-445525140),null,new cljs.core.Keyword(null,"nfd","nfd",-1770233195),null], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2939,14], null),norm_form,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"norm-form","norm-form",-1587703891,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","norm-str","taoensso.encore/norm-str",-56716920,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"nfc","nfc",1898291461),null,new cljs.core.Keyword(null,"nfkc","nfkc",1301302858),null,new cljs.core.Keyword(null,"nfkd","nfkd",-445525140),null,new cljs.core.Keyword(null,"nfd","nfd",-1770233195),null], null), null)], null)); } @@ -5628,30 +5709,30 @@ return s.replace((new RegExp(goog.string.regExpEscape(match),"g")),replacement); if((match instanceof RegExp)){ var flags = ["g",(cljs.core.truth_(match.ignoreCase)?"i":null),(cljs.core.truth_(match.multiline)?"m":null)].join(''); var replacement__$1 = ((typeof replacement === 'string')?replacement:(function() { -var G__50976__delegate = function (args){ -var G__50193 = cljs.core.vec(args); -return (replacement.cljs$core$IFn$_invoke$arity$1 ? replacement.cljs$core$IFn$_invoke$arity$1(G__50193) : replacement.call(null,G__50193)); +var G__34988__delegate = function (args){ +var G__34147 = cljs.core.vec(args); +return (replacement.cljs$core$IFn$_invoke$arity$1 ? replacement.cljs$core$IFn$_invoke$arity$1(G__34147) : replacement.call(null,G__34147)); }; -var G__50976 = function (var_args){ +var G__34988 = function (var_args){ var args = null; if (arguments.length > 0) { -var G__50977__i = 0, G__50977__a = new Array(arguments.length - 0); -while (G__50977__i < G__50977__a.length) {G__50977__a[G__50977__i] = arguments[G__50977__i + 0]; ++G__50977__i;} - args = new cljs.core.IndexedSeq(G__50977__a,0,null); +var G__34989__i = 0, G__34989__a = new Array(arguments.length - 0); +while (G__34989__i < G__34989__a.length) {G__34989__a[G__34989__i] = arguments[G__34989__i + 0]; ++G__34989__i;} + args = new cljs.core.IndexedSeq(G__34989__a,0,null); } -return G__50976__delegate.call(this,args);}; -G__50976.cljs$lang$maxFixedArity = 0; -G__50976.cljs$lang$applyTo = (function (arglist__50978){ -var args = cljs.core.seq(arglist__50978); -return G__50976__delegate(args); -}); -G__50976.cljs$core$IFn$_invoke$arity$variadic = G__50976__delegate; -return G__50976; +return G__34988__delegate.call(this,args);}; +G__34988.cljs$lang$maxFixedArity = 0; +G__34988.cljs$lang$applyTo = (function (arglist__34990){ +var args = cljs.core.seq(arglist__34990); +return G__34988__delegate(args); +}); +G__34988.cljs$core$IFn$_invoke$arity$variadic = G__34988__delegate; +return G__34988; })() ); return s.replace((new RegExp(match.source,flags)),replacement__$1); } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3011,14], null),["Invalid match arg: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join(''),null,null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2977,14], null),["Invalid match arg: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join(''),null,null); } } }); @@ -5664,8 +5745,8 @@ return x; }); taoensso.encore.format_STAR_ = (function taoensso$encore$format_STAR_(var_args){ -var G__50197 = arguments.length; -switch (G__50197) { +var G__34149 = arguments.length; +switch (G__34149) { case 2: return taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -5705,14 +5786,14 @@ return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,fmt,args */ taoensso.encore.format = (function taoensso$encore$format(var_args){ var args__5755__auto__ = []; -var len__5749__auto___50980 = arguments.length; -var i__5750__auto___50981 = (0); +var len__5749__auto___35002 = arguments.length; +var i__5750__auto___35003 = (0); while(true){ -if((i__5750__auto___50981 < len__5749__auto___50980)){ -args__5755__auto__.push((arguments[i__5750__auto___50981])); +if((i__5750__auto___35003 < len__5749__auto___35002)){ +args__5755__auto__.push((arguments[i__5750__auto___35003])); -var G__50982 = (i__5750__auto___50981 + (1)); -i__5750__auto___50981 = G__50982; +var G__35004 = (i__5750__auto___35003 + (1)); +i__5750__auto___35003 = G__35004; continue; } else { } @@ -5730,11 +5811,11 @@ return taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,args); (taoensso.encore.format.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.format.cljs$lang$applyTo = (function (seq50199){ -var G__50201 = cljs.core.first(seq50199); -var seq50199__$1 = cljs.core.next(seq50199); +(taoensso.encore.format.cljs$lang$applyTo = (function (seq34150){ +var G__34151 = cljs.core.first(seq34150); +var seq34150__$1 = cljs.core.next(seq34150); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50201,seq50199__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34151,seq34150__$1); })); /** @@ -5791,14 +5872,14 @@ return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1); }); taoensso.encore.path = (function taoensso$encore$path(var_args){ var args__5755__auto__ = []; -var len__5749__auto___50986 = arguments.length; -var i__5750__auto___50987 = (0); +var len__5749__auto___35007 = arguments.length; +var i__5750__auto___35008 = (0); while(true){ -if((i__5750__auto___50987 < len__5749__auto___50986)){ -args__5755__auto__.push((arguments[i__5750__auto___50987])); +if((i__5750__auto___35008 < len__5749__auto___35007)){ +args__5755__auto__.push((arguments[i__5750__auto___35008])); -var G__50988 = (i__5750__auto___50987 + (1)); -i__5750__auto___50987 = G__50988; +var G__35009 = (i__5750__auto___35008 + (1)); +i__5750__auto___35008 = G__35009; continue; } else { } @@ -5816,9 +5897,9 @@ return taoensso.encore.str_join_once("/",parts); (taoensso.encore.path.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ -(taoensso.encore.path.cljs$lang$applyTo = (function (seq50211){ +(taoensso.encore.path.cljs$lang$applyTo = (function (seq34152){ var self__5735__auto__ = this; -return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50211)); +return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34152)); })); /** @@ -5840,14 +5921,14 @@ return cljs.core.count(clojure.string.split.cljs$core$IFn$_invoke$arity$2(s,/\s+ */ taoensso.encore.into_str = (function taoensso$encore$into_str(var_args){ var args__5755__auto__ = []; -var len__5749__auto___50989 = arguments.length; -var i__5750__auto___50990 = (0); +var len__5749__auto___35011 = arguments.length; +var i__5750__auto___35012 = (0); while(true){ -if((i__5750__auto___50990 < len__5749__auto___50989)){ -args__5755__auto__.push((arguments[i__5750__auto___50990])); +if((i__5750__auto___35012 < len__5749__auto___35011)){ +args__5755__auto__.push((arguments[i__5750__auto___35012])); -var G__50991 = (i__5750__auto___50990 + (1)); -i__5750__auto___50990 = G__50991; +var G__35013 = (i__5750__auto___35012 + (1)); +i__5750__auto___35012 = G__35013; continue; } else { } @@ -5871,9 +5952,9 @@ return taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.str (taoensso.encore.into_str.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ -(taoensso.encore.into_str.cljs$lang$applyTo = (function (seq50217){ +(taoensso.encore.into_str.cljs$lang$applyTo = (function (seq34153){ var self__5735__auto__ = this; -return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50217)); +return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34153)); })); /** @@ -5931,8 +6012,8 @@ return (function (n){ return nf.format(n); }); }); -var fmt0_50995 = taoensso.encore.format_num_fn((0),(0)); -var fmt2_50996 = taoensso.encore.format_num_fn((2),(2)); +var fmt0_35017 = taoensso.encore.format_num_fn((0),(0)); +var fmt2_35018 = taoensso.encore.format_num_fn((2),(2)); /** * Returns given nanoseconds (long) as formatted human-readable string. * Example outputs: "1.00m", "4.20s", "340ms", "822μs", etc. @@ -5940,18 +6021,18 @@ var fmt2_50996 = taoensso.encore.format_num_fn((2),(2)); taoensso.encore.format_nsecs = (function taoensso$encore$format_nsecs(nanosecs){ var ns = nanosecs; if((ns >= 6.0E10)){ -return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_50996((ns / 6.0E10))),"m"].join(''); +return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_35018((ns / 6.0E10))),"m"].join(''); } else { if((ns >= 1.0E9)){ -return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_50996((ns / 1.0E9))),"s"].join(''); +return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_35018((ns / 1.0E9))),"s"].join(''); } else { if((ns >= 1000000.0)){ -return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995((ns / 1000000.0))),"ms"].join(''); +return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017((ns / 1000000.0))),"ms"].join(''); } else { if((ns >= 1000.0)){ -return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995((ns / 1000.0))),"\u03BCs"].join(''); +return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017((ns / 1000.0))),"\u03BCs"].join(''); } else { -return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995(ns)),"ns"].join(''); +return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017(ns)),"ns"].join(''); } } } @@ -5967,8 +6048,8 @@ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995(ns)),"ns"].join(' * (abbreviate-ns 0 :foo.bar/baz) => :f.b/baz */ taoensso.encore.abbreviate_ns = (function taoensso$encore$abbreviate_ns(var_args){ -var G__50229 = arguments.length; -switch (G__50229) { +var G__34155 = arguments.length; +switch (G__34155) { case 1: return taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -5988,23 +6069,23 @@ return taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2((1),x); })); (taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2 = (function (n_full,x){ -var n_full__$1 = cljs.core.long$((function (){var error50241 = (function (){try{if(cljs.core.truth_(taoensso.encore.nat_int_QMARK_(n_full))){ +var n_full__$1 = cljs.core.long$((function (){var error34163 = (function (){try{if(cljs.core.truth_(taoensso.encore.nat_int_QMARK_(n_full))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50243){var e = e50243; +}catch (e34165){var e = e34165; return e; }})(); -if(cljs.core.truth_(error50241)){ -return taoensso.truss.failed_assertion_BANG_("taoensso.encore",3190,23,new cljs.core.Symbol("taoensso.encore","nat-int?","taoensso.encore/nat-int?",2095181418,null),new cljs.core.Symbol(null,"n-full","n-full",797009712,null),n_full,null,error50241); +if(cljs.core.truth_(error34163)){ +return taoensso.truss.failed_assertion_BANG_("taoensso.encore",3156,23,new cljs.core.Symbol("taoensso.encore","nat-int?","taoensso.encore/nat-int?",2095181418,null),new cljs.core.Symbol(null,"n-full","n-full",797009712,null),n_full,null,error34163); } else { return n_full; } })()); -var vec__50234 = clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(x),/\//); -var p1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50234,(0),null); -var p2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50234,(1),null); +var vec__34156 = clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(x),/\//); +var p1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34156,(0),null); +var p2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34156,(1),null); if(cljs.core.truth_(p2)){ var name_part = p2; var ns_parts = clojure.string.split.cljs$core$IFn$_invoke$arity$2(p1,/\./); @@ -6042,126 +6123,126 @@ return x; (taoensso.encore.abbreviate_ns.cljs$lang$maxFixedArity = 2); -var as__QMARK_qname_50998 = taoensso.encore.as__QMARK_qname; -var always_50999 = (function taoensso$encore$always(_in){ +var as__QMARK_qname_35023 = taoensso.encore.as__QMARK_qname; +var always_35024 = (function taoensso$encore$always(_in){ return true; }); -var never_51000 = (function taoensso$encore$never(_in){ +var never_35025 = (function taoensso$encore$never(_in){ return false; }); -var ns_QMARK__51001 = (function (x){ +var ns_QMARK__35026 = (function (x){ return (x instanceof cljs.core.Namespace); }); -var input_str_BANG__51002 = (function (x){ -var or__5025__auto__ = (as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1(x) : as__QMARK_qname_50998.call(null,x)); +var input_str_BANG__35027 = (function (x){ +var or__5025__auto__ = (as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1(x) : as__QMARK_qname_35023.call(null,x)); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { if((x == null)){ return ""; } else { -if(ns_QMARK__51001(x)){ +if(ns_QMARK__35026(x)){ return cljs.core.str.cljs$core$IFn$_invoke$arity$1(x); } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3233,13], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","name-filter","taoensso.encore/name-filter",-2070485905,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"filter-input-arg","filter-input-arg",1147690060,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,"null",new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),"null",new cljs.core.Symbol(null,"symbol","symbol",601958831,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null",new cljs.core.Symbol(null,"keyword","keyword",-1843046022,null),"null"], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3199,13], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","name-filter","taoensso.encore/name-filter",-2070485905,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"filter-input-arg","filter-input-arg",1147690060,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,"null",new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),"null",new cljs.core.Symbol(null,"symbol","symbol",601958831,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null",new cljs.core.Symbol(null,"keyword","keyword",-1843046022,null),"null"], null), null)], null)); } } } }); -var wild_str__GT__QMARK_re_pattern_51003 = (function (s){ +var wild_str__GT__QMARK_re_pattern_35028 = (function (s){ if(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(s,"*"))){ return cljs.core.re_pattern(clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace(["^",cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),"$"].join(''),"(.*)","__OR_CHILDREN__"),".","\\."),"*",".*"),"__OR_CHILDREN__","(\\..*)?")); } else { return null; } }); -var compile__GT_match_fn_51004 = (function taoensso$encore$compile__GT_match_fn(spec,cache_QMARK_){ +var compile__GT_match_fn_35029 = (function taoensso$encore$compile__GT_match_fn(spec,cache_QMARK_){ while(true){ -if(cljs.core.truth_((function (){var fexpr__50255 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["*",null,new cljs.core.Keyword(null,"any","any",1705907423),null], null), null); -return (fexpr__50255.cljs$core$IFn$_invoke$arity$1 ? fexpr__50255.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__50255.call(null,spec)); +if(cljs.core.truth_((function (){var fexpr__34167 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["*",null,new cljs.core.Keyword(null,"any","any",1705907423),null], null), null); +return (fexpr__34167.cljs$core$IFn$_invoke$arity$1 ? fexpr__34167.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__34167.call(null,spec)); })())){ -return always_50999; +return always_35024; } else { -if(cljs.core.truth_((function (){var fexpr__50257 = cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"none","none",1333468478)]); -return (fexpr__50257.cljs$core$IFn$_invoke$arity$1 ? fexpr__50257.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__50257.call(null,spec)); +if(cljs.core.truth_((function (){var fexpr__34168 = cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"none","none",1333468478)]); +return (fexpr__34168.cljs$core$IFn$_invoke$arity$1 ? fexpr__34168.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__34168.call(null,spec)); })())){ -return never_51000; +return never_35025; } else { if(taoensso.encore.re_pattern_QMARK_(spec)){ -return ((function (spec,cache_QMARK_,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +return ((function (spec,cache_QMARK_,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){ -return cljs.core.re_find(spec,input_str_BANG__51002(in$)); +return cljs.core.re_find(spec,input_str_BANG__35027(in$)); }); -;})(spec,cache_QMARK_,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +;})(spec,cache_QMARK_,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) } else { -if(ns_QMARK__51001(spec)){ -var G__51005 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec); -var G__51006 = cache_QMARK_; -spec = G__51005; -cache_QMARK_ = G__51006; +if(ns_QMARK__35026(spec)){ +var G__35040 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec); +var G__35041 = cache_QMARK_; +spec = G__35040; +cache_QMARK_ = G__35041; continue; } else { -var b2__43681__auto__ = (as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1(spec) : as__QMARK_qname_50998.call(null,spec)); -if(cljs.core.truth_(b2__43681__auto__)){ -var str_spec = b2__43681__auto__; -var b2__43681__auto____$1 = wild_str__GT__QMARK_re_pattern_51003(str_spec); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var re_pattern = b2__43681__auto____$1; -var G__51008 = re_pattern; -var G__51009 = cache_QMARK_; -spec = G__51008; -cache_QMARK_ = G__51009; +var b2__30646__auto__ = (as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1(spec) : as__QMARK_qname_35023.call(null,spec)); +if(cljs.core.truth_(b2__30646__auto__)){ +var str_spec = b2__30646__auto__; +var b2__30646__auto____$1 = wild_str__GT__QMARK_re_pattern_35028(str_spec); +if(cljs.core.truth_(b2__30646__auto____$1)){ +var re_pattern = b2__30646__auto____$1; +var G__35043 = re_pattern; +var G__35044 = cache_QMARK_; +spec = G__35043; +cache_QMARK_ = G__35044; continue; } else { -return ((function (spec,cache_QMARK_,b2__43681__auto____$1,str_spec,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +return ((function (spec,cache_QMARK_,b2__30646__auto____$1,str_spec,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){ -return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(str_spec,input_str_BANG__51002(in$)); +return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(str_spec,input_str_BANG__35027(in$)); }); -;})(spec,cache_QMARK_,b2__43681__auto____$1,str_spec,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +;})(spec,cache_QMARK_,b2__30646__auto____$1,str_spec,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) } } else { if(((cljs.core.vector_QMARK_(spec)) || (cljs.core.set_QMARK_(spec)))){ -if(cljs.core.truth_((function (){var fexpr__50259 = cljs.core.set(spec); -return (fexpr__50259.cljs$core$IFn$_invoke$arity$1 ? fexpr__50259.cljs$core$IFn$_invoke$arity$1("*") : fexpr__50259.call(null,"*")); +if(cljs.core.truth_((function (){var fexpr__34169 = cljs.core.set(spec); +return (fexpr__34169.cljs$core$IFn$_invoke$arity$1 ? fexpr__34169.cljs$core$IFn$_invoke$arity$1("*") : fexpr__34169.call(null,"*")); })())){ -return always_50999; +return always_35024; } else { if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(spec),(1))){ -var G__51010 = cljs.core.first(spec); -var G__51011 = cache_QMARK_; -spec = G__51010; -cache_QMARK_ = G__51011; +var G__35047 = cljs.core.first(spec); +var G__35048 = cache_QMARK_; +spec = G__35047; +cache_QMARK_ = G__35048; continue; } else { -var vec__50260 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (spec,cache_QMARK_,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ -return (function (p__50264,spec__$1){ -var vec__50265 = p__50264; -var fixed_strs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50265,(0),null); -var re_patterns = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50265,(1),null); -var spec__$2 = ((ns_QMARK__51001(spec__$1))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec__$1):taoensso.encore.as_qname(spec__$1)); -var b2__43681__auto____$1 = ((taoensso.encore.re_pattern_QMARK_(spec__$2))?spec__$2:wild_str__GT__QMARK_re_pattern_51003(spec__$2)); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var re_pattern = b2__43681__auto____$1; +var vec__34170 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (spec,cache_QMARK_,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ +return (function (p__34173,spec__$1){ +var vec__34174 = p__34173; +var fixed_strs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34174,(0),null); +var re_patterns = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34174,(1),null); +var spec__$2 = ((ns_QMARK__35026(spec__$1))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec__$1):taoensso.encore.as_qname(spec__$1)); +var b2__30646__auto____$1 = ((taoensso.encore.re_pattern_QMARK_(spec__$2))?spec__$2:wild_str__GT__QMARK_re_pattern_35028(spec__$2)); +if(cljs.core.truth_(b2__30646__auto____$1)){ +var re_pattern = b2__30646__auto____$1; return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [fixed_strs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(re_patterns,re_pattern)], null); } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(fixed_strs,spec__$2),re_patterns], null); } -});})(spec,cache_QMARK_,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +});})(spec,cache_QMARK_,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) ,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentHashSet.EMPTY,cljs.core.PersistentVector.EMPTY], null),spec); -var fixed_strs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50260,(0),null); -var re_patterns = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50260,(1),null); +var fixed_strs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34170,(0),null); +var re_patterns = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34170,(1),null); var fx_match = cljs.core.not_empty(fixed_strs); -var re_match = (function (){var b2__43681__auto____$1 = cljs.core.not_empty(re_patterns); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var re_patterns__$1 = b2__43681__auto____$1; -var f = ((function (spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +var re_match = (function (){var b2__30646__auto____$1 = cljs.core.not_empty(re_patterns); +if(cljs.core.truth_(b2__30646__auto____$1)){ +var re_patterns__$1 = b2__30646__auto____$1; +var f = ((function (spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in_str){ -return taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2(((function (spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ -return (function (p1__50248_SHARP_){ -return cljs.core.re_find(p1__50248_SHARP_,in_str); -});})(spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +return taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2(((function (spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ +return (function (p1__34166_SHARP_){ +return cljs.core.re_find(p1__34166_SHARP_,in_str); +});})(spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) ,re_patterns__$1); -});})(spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +});})(spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) ; if(cljs.core.truth_(cache_QMARK_)){ return (taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1(f) : taoensso.encore.fmemoize.call(null,f)); @@ -6179,9 +6260,9 @@ return re_match; return and__5023__auto__; } })())){ -return ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +return ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){ -var in_str = input_str_BANG__51002(in$); +var in_str = input_str_BANG__35027(in$); var or__5025__auto__ = (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(in_str) : fx_match.call(null,in_str)); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; @@ -6189,23 +6270,23 @@ return or__5025__auto__; return (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(in_str) : re_match.call(null,in_str)); } }); -;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) } else { if(cljs.core.truth_(fx_match)){ -return ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +return ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){ -var G__50271 = input_str_BANG__51002(in$); -return (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(G__50271) : fx_match.call(null,G__50271)); +var G__34177 = input_str_BANG__35027(in$); +return (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(G__34177) : fx_match.call(null,G__34177)); }); -;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) } else { if(cljs.core.truth_(re_match)){ -return ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){ +return ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){ return (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){ -var G__50272 = input_str_BANG__51002(in$); -return (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(G__50272) : re_match.call(null,G__50272)); +var G__34178 = input_str_BANG__35027(in$); +return (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(G__34178) : re_match.call(null,G__34178)); }); -;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003)) +;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028)) } else { throw taoensso.truss.ex_info_STAR_("taoensso.encore",null,"[encore/cond!] No matching clause",null,null); } @@ -6214,7 +6295,7 @@ throw taoensso.truss.ex_info_STAR_("taoensso.encore",null,"[encore/cond!] No mat } } } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3296,11], null),spec,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","name-filter","taoensso.encore/name-filter",-2070485905,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"filter-spec","filter-spec",539212879,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,"set","set",1945134081,null),"null",new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),"null",new cljs.core.Symbol(null,"symbol","symbol",601958831,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null",new cljs.core.Symbol(null,"keyword","keyword",-1843046022,null),"null",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow","allow",-1857325745),new cljs.core.Symbol(null,"","",1165019597,null),new cljs.core.Keyword(null,"disallow","disallow",-861898595),new cljs.core.Symbol(null,"","",1165019597,null)], null),"null",new cljs.core.Symbol(null,"regex","regex",-1714946913,null),"null"], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3262,11], null),spec,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","name-filter","taoensso.encore/name-filter",-2070485905,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"filter-spec","filter-spec",539212879,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,"set","set",1945134081,null),"null",new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),"null",new cljs.core.Symbol(null,"symbol","symbol",601958831,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null",new cljs.core.Symbol(null,"keyword","keyword",-1843046022,null),"null",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow","allow",-1857325745),new cljs.core.Symbol(null,"","",1165019597,null),new cljs.core.Keyword(null,"disallow","disallow",-861898595),new cljs.core.Symbol(null,"","",1165019597,null)], null),"null",new cljs.core.Symbol(null,"regex","regex",-1714946913,null),"null"], null), null)], null)); } } } @@ -6272,27 +6353,27 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(nu } } })(); -var allow = (function (){var b2__43681__auto__ = allow_spec; -if(cljs.core.truth_(b2__43681__auto__)){ -var as = b2__43681__auto__; -return compile__GT_match_fn_51004(as,cache_QMARK_); +var allow = (function (){var b2__30646__auto__ = allow_spec; +if(cljs.core.truth_(b2__30646__auto__)){ +var as = b2__30646__auto__; +return compile__GT_match_fn_35029(as,cache_QMARK_); } else { return null; } })(); -var disallow = (function (){var b2__43681__auto__ = disallow_spec; -if(cljs.core.truth_(b2__43681__auto__)){ -var ds = b2__43681__auto__; -return compile__GT_match_fn_51004(ds,cache_QMARK_); +var disallow = (function (){var b2__30646__auto__ = disallow_spec; +if(cljs.core.truth_(b2__30646__auto__)){ +var ds = b2__30646__auto__; +return compile__GT_match_fn_35029(ds,cache_QMARK_); } else { return null; } })(); -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,always_50999)){ -return never_51000; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,always_35024)){ +return never_35025; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,never_51000)){ -return never_51000; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,never_35025)){ +return never_35025; } else { if(cljs.core.truth_((function (){var and__5023__auto__ = allow; if(cljs.core.truth_(and__5023__auto__)){ @@ -6301,7 +6382,7 @@ return disallow; return and__5023__auto__; } })())){ -return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){ +return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){ return (function taoensso$encore$name_filter_$_match_QMARK_(in$){ if((allow.cljs$core$IFn$_invoke$arity$1 ? allow.cljs$core$IFn$_invoke$arity$1(in$) : allow.call(null,in$))){ if((disallow.cljs$core$IFn$_invoke$arity$1 ? disallow.cljs$core$IFn$_invoke$arity$1(in$) : disallow.call(null,in$))){ @@ -6313,13 +6394,13 @@ return true; return false; } }); -;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004)) +;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029)) } else { if(cljs.core.truth_(allow)){ -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,always_50999)){ -return always_50999; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,always_35024)){ +return always_35024; } else { -return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){ +return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){ return (function taoensso$encore$name_filter_$_match_QMARK_(in$){ if(allow(in$)){ return true; @@ -6327,14 +6408,14 @@ return true; return false; } }); -;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004)) +;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029)) } } else { if(cljs.core.truth_(disallow)){ -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,never_51000)){ -return always_50999; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,never_35025)){ +return always_35024; } else { -return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){ +return ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){ return (function taoensso$encore$name_filter_$_match_QMARK_(in$){ if(disallow(in$)){ return false; @@ -6342,18 +6423,18 @@ return false; return true; } }); -;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004)) +;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029)) } } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3347,11], null),"[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow-spec","allow-spec",448749872),allow_spec,new cljs.core.Keyword(null,"disallow-spec","disallow-spec",-16464308),disallow_spec], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3313,11], null),"[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow-spec","allow-spec",448749872),allow_spec,new cljs.core.Keyword(null,"disallow-spec","disallow-spec",-16464308),disallow_spec], null),null); } } } } } } else { -var G__51015 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow","allow",-1857325745),spec,new cljs.core.Keyword(null,"disallow","disallow",-861898595),null], null); -spec = G__51015; +var G__35060 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"allow","allow",-1857325745),spec,new cljs.core.Keyword(null,"disallow","disallow",-861898595),null], null); +spec = G__35060; continue; } break; @@ -6440,24 +6521,24 @@ return and__5023__auto__; })())){ return taoensso.encore.x__GT_str(true,false,false,x); } else { -var _STAR_print_level_STAR__orig_val__50285 = cljs.core._STAR_print_level_STAR_; -var _STAR_print_length_STAR__orig_val__50286 = cljs.core._STAR_print_length_STAR_; -var _STAR_print_readably_STAR__orig_val__50287 = cljs.core._STAR_print_readably_STAR_; -var _STAR_print_level_STAR__temp_val__50288 = null; -var _STAR_print_length_STAR__temp_val__50289 = null; -var _STAR_print_readably_STAR__temp_val__50290 = true; -(cljs.core._STAR_print_level_STAR_ = _STAR_print_level_STAR__temp_val__50288); +var _STAR_print_level_STAR__orig_val__34179 = cljs.core._STAR_print_level_STAR_; +var _STAR_print_length_STAR__orig_val__34180 = cljs.core._STAR_print_length_STAR_; +var _STAR_print_readably_STAR__orig_val__34181 = cljs.core._STAR_print_readably_STAR_; +var _STAR_print_level_STAR__temp_val__34182 = null; +var _STAR_print_length_STAR__temp_val__34183 = null; +var _STAR_print_readably_STAR__temp_val__34184 = true; +(cljs.core._STAR_print_level_STAR_ = _STAR_print_level_STAR__temp_val__34182); -(cljs.core._STAR_print_length_STAR_ = _STAR_print_length_STAR__temp_val__50289); +(cljs.core._STAR_print_length_STAR_ = _STAR_print_length_STAR__temp_val__34183); -(cljs.core._STAR_print_readably_STAR_ = _STAR_print_readably_STAR__temp_val__50290); +(cljs.core._STAR_print_readably_STAR_ = _STAR_print_readably_STAR__temp_val__34184); try{return taoensso.encore.x__GT_str(true,false,false,x); -}finally {(cljs.core._STAR_print_readably_STAR_ = _STAR_print_readably_STAR__orig_val__50287); +}finally {(cljs.core._STAR_print_readably_STAR_ = _STAR_print_readably_STAR__orig_val__34181); -(cljs.core._STAR_print_length_STAR_ = _STAR_print_length_STAR__orig_val__50286); +(cljs.core._STAR_print_length_STAR_ = _STAR_print_length_STAR__orig_val__34180); -(cljs.core._STAR_print_level_STAR_ = _STAR_print_level_STAR__orig_val__50285); +(cljs.core._STAR_print_level_STAR_ = _STAR_print_level_STAR__orig_val__34179); }} }); /** @@ -6470,8 +6551,8 @@ return taoensso.encore.x__GT_str(true,false,false,x); * Reads given edn string to return a Clj/s value. */ taoensso.encore.read_edn = (function taoensso$encore$read_edn(var_args){ -var G__50294 = arguments.length; -switch (G__50294) { +var G__34186 = arguments.length; +switch (G__34186) { case 1: return taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -6502,7 +6583,7 @@ var default$__$1 = ((cljs.core.keyword_identical_QMARK_(default$,new cljs.core.K var opts__$1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(opts,new cljs.core.Keyword(null,"readers","readers",-2118263030),readers__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"default","default",-1987822328),default$__$1], 0)); return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(opts__$1,s); } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3506,6], null),"[encore/read-edn] Unexpected arg type (expected string or nil)",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),s,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(s)], null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3472,6], null),"[encore/read-edn] Unexpected arg type (expected string or nil)",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),s,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(s)], null)], null),null); } } })); @@ -6513,8 +6594,8 @@ throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVec * Private, don't use. */ taoensso.encore.str_impl = (function taoensso$encore$str_impl(var_args){ -var G__50298 = arguments.length; -switch (G__50298) { +var G__34188 = arguments.length; +switch (G__34188) { case 2: return taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -6547,15 +6628,15 @@ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(class_name),"[",cljs.core.st * See also `uuid-str`, `nanoid`, `rand-id-fn`. */ taoensso.encore.uuid = (function taoensso$encore$uuid(){ -var b2__43681__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_crypto,"randomUUID"); -if(cljs.core.truth_(b2__43681__auto__)){ -var f = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_crypto,"randomUUID"); +if(cljs.core.truth_(b2__30646__auto__)){ +var f = b2__30646__auto__; return f.call(taoensso.encore.js__QMARK_crypto); } else { var quad_hex = (function (){ var unpadded_hex = cljs.core.rand_int((65536)).toString((16)); -var G__50302 = ((unpadded_hex).length); -switch (G__50302) { +var G__34189 = ((unpadded_hex).length); +switch (G__34189) { case (1): return ["000",unpadded_hex].join(''); @@ -6583,8 +6664,8 @@ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cl * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`. */ taoensso.encore.uuid_str = (function taoensso$encore$uuid_str(var_args){ -var G__50308 = arguments.length; -switch (G__50308) { +var G__34191 = arguments.length; +switch (G__34191) { case 1: return taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -6619,25 +6700,25 @@ return taoensso.encore.uuid(); */ taoensso.encore.rand_bytes = (function taoensso$encore$rand_bytes(prefer_secure_QMARK_,size){ var ba = (new Uint8Array(size)); -var b2__43681__auto___51020 = (function (){var and__5023__auto__ = prefer_secure_QMARK_; +var b2__30646__auto___35069 = (function (){var and__5023__auto__ = prefer_secure_QMARK_; if(cljs.core.truth_(and__5023__auto__)){ return taoensso.encore.js__QMARK_crypto; } else { return and__5023__auto__; } })(); -if(cljs.core.truth_(b2__43681__auto___51020)){ -var crypto_51021 = b2__43681__auto___51020; -crypto_51021.getRandomValues(ba); +if(cljs.core.truth_(b2__30646__auto___35069)){ +var crypto_35070 = b2__30646__auto___35069; +crypto_35070.getRandomValues(ba); } else { -var n__5616__auto___51022 = size; -var i_51023 = (0); +var n__5616__auto___35071 = size; +var i_35073 = (0); while(true){ -if((i_51023 < n__5616__auto___51022)){ -(ba[i_51023] = Math.floor(((256) * Math.random()))); +if((i_35073 < n__5616__auto___35071)){ +(ba[i_35073] = Math.floor(((256) * Math.random()))); -var G__51024 = (i_51023 + (1)); -i_51023 = G__51024; +var G__35075 = (i_35073 + (1)); +i_35073 = G__35075; continue; } else { } @@ -6656,15 +6737,15 @@ return ba; * * See also `uuid-str`, `nano-id`. */ -taoensso.encore.rand_id_fn = (function taoensso$encore$rand_id_fn(p__50314){ -var map__50315 = p__50314; -var map__50315__$1 = cljs.core.__destructure_map(map__50315); -var chars = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,"chars","chars",-1094630317),new cljs.core.Keyword(null,"nanoid","nanoid",-90964628)); -var len = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,"len","len",1423657078),(21)); -var rand_bytes_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,"rand-bytes-fn","rand-bytes-fn",501267911),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true)); -var chars__$1 = (function (){var G__50317 = chars; -var G__50317__$1 = (((G__50317 instanceof cljs.core.Keyword))?G__50317.fqn:null); -switch (G__50317__$1) { +taoensso.encore.rand_id_fn = (function taoensso$encore$rand_id_fn(p__34192){ +var map__34193 = p__34192; +var map__34193__$1 = cljs.core.__destructure_map(map__34193); +var chars = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,"chars","chars",-1094630317),new cljs.core.Keyword(null,"nanoid","nanoid",-90964628)); +var len = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,"len","len",1423657078),(21)); +var rand_bytes_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,"rand-bytes-fn","rand-bytes-fn",501267911),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true)); +var chars__$1 = (function (){var G__34194 = chars; +var G__34194__$1 = (((G__34194 instanceof cljs.core.Keyword))?G__34194.fqn:null); +switch (G__34194__$1) { case "alphanumeric": return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; @@ -6701,7 +6782,7 @@ default: if(typeof chars === 'string'){ return chars; } else { -return taoensso.truss.failed_assertion_BANG_("taoensso.encore",3689,11,new cljs.core.Symbol("cljs.core","string?","cljs.core/string?",-2072921719,null),new cljs.core.Symbol(null,"chars","chars",545901210,null),chars,null,null); +return taoensso.truss.failed_assertion_BANG_("taoensso.encore",3654,11,new cljs.core.Symbol("cljs.core","string?","cljs.core/string?",-2072921719,null),new cljs.core.Symbol(null,"chars","chars",545901210,null),chars,null,null); } } @@ -6722,9 +6803,9 @@ var idx = (0); var max_idx = (step1 - (1)); var rand_bytes = (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(step1) : rand_bytes_fn.call(null,step1)); while(true){ -var possible_ch_idx_51026 = ((rand_bytes[idx]) & mask); -if((possible_ch_idx_51026 <= max_char_idx)){ -sb.append((chars__$2[possible_ch_idx_51026])); +var possible_ch_idx_35084 = ((rand_bytes[idx]) & mask); +if((possible_ch_idx_35084 <= max_char_idx)){ +sb.append((chars__$2[possible_ch_idx_35084])); } else { } @@ -6732,20 +6813,20 @@ if((sb.length() === len)){ return cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb); } else { if((idx === max_idx)){ -var G__51027 = (0); -var G__51028 = (stepn - (1)); -var G__51029 = (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(stepn) : rand_bytes_fn.call(null,stepn)); -idx = G__51027; -max_idx = G__51028; -rand_bytes = G__51029; +var G__35085 = (0); +var G__35086 = (stepn - (1)); +var G__35087 = (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(stepn) : rand_bytes_fn.call(null,stepn)); +idx = G__35085; +max_idx = G__35086; +rand_bytes = G__35087; continue; } else { -var G__51030 = (idx + (1)); -var G__51031 = max_idx; -var G__51032 = rand_bytes; -idx = G__51030; -max_idx = G__51031; -rand_bytes = G__51032; +var G__35088 = (idx + (1)); +var G__35089 = max_idx; +var G__35090 = rand_bytes; +idx = G__35088; +max_idx = G__35089; +rand_bytes = G__35090; continue; } } @@ -6753,7 +6834,7 @@ break; } }); }); -var chars_51033 = (function (){var s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_"; +var chars_35091 = (function (){var s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_"; return cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(s); })(); /** @@ -6763,8 +6844,8 @@ return cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(s); * See also `uuid-str`, `rand-id-fn`. */ taoensso.encore.nanoid = (function taoensso$encore$nanoid(var_args){ -var G__50333 = arguments.length; -switch (G__50333) { +var G__34202 = arguments.length; +switch (G__34202) { case 0: return taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$0(); @@ -6795,13 +6876,13 @@ return taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(true,len); var sb = taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(); var ba = taoensso.encore.rand_bytes(prefer_secure_QMARK_,len); var max_idx = (len - (1)); -var idx_51035 = (0); +var idx_35094 = (0); while(true){ -sb.append((chars_51033[((ba[idx_51035]) & (63))])); +sb.append((chars_35091[((ba[idx_35094]) & (63))])); -if((idx_51035 < max_idx)){ -var G__51036 = (idx_51035 + (1)); -idx_51035 = G__51036; +if((idx_35094 < max_idx)){ +var G__35096 = (idx_35094 + (1)); +idx_35094 = G__35096; continue; } else { } @@ -6849,8 +6930,8 @@ return (t__$1.cljs$core$IFn$_invoke$arity$1 ? t__$1.cljs$core$IFn$_invoke$arity$ (taoensso.encore.LightAtom.prototype.call = (function (unused__11804__auto__){ var self__ = this; var self__ = this; -var G__50341 = (arguments.length - (1)); -switch (G__50341) { +var G__34204 = (arguments.length - (1)); +switch (G__34204) { case (0): return self__.cljs$core$IFn$_invoke$arity$0(); @@ -6869,10 +6950,10 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( } })); -(taoensso.encore.LightAtom.prototype.apply = (function (self__,args50337){ +(taoensso.encore.LightAtom.prototype.apply = (function (self__,args34203){ var self__ = this; var self____$1 = this; -return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50337))); +return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34203))); })); (taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$0 = (function (){ @@ -6894,8 +6975,8 @@ return new$; var self__ = this; var _ = this; var old_map = self__.state; -var new_val = (function (){var G__50342 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,k); -return (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(G__50342) : swap_fn.call(null,G__50342)); +var new_val = (function (){var G__34205 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,k); +return (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(G__34205) : swap_fn.call(null,G__34205)); })(); var new_map = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old_map,k,new_val); (self__.state = new_map); @@ -6951,11 +7032,11 @@ while(true){ var m0 = cljs.core.deref(atom_); var m1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1); if(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){ -var G__50352 = m0; -var G__50353 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found); -var G__50354 = m1; -var G__50355 = v1; -return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50352,G__50353,G__50354,G__50355) : return$.call(null,G__50352,G__50353,G__50354,G__50355)); +var G__34206 = m0; +var G__34207 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found); +var G__34208 = m1; +var G__34209 = v1; +return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34206,G__34207,G__34208,G__34209) : return$.call(null,G__34206,G__34207,G__34208,G__34209)); } else { continue; } @@ -6966,19 +7047,19 @@ break; * Impln. for n-key resets */ taoensso.encore._reset_kn_BANG_ = (function taoensso$encore$_reset_kn_BANG_(return$,atom_,ks,not_found,v1){ -var b2__43681__auto__ = cljs.core.seq(ks); -if(b2__43681__auto__){ -var ks_seq = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.seq(ks); +if(b2__30646__auto__){ +var ks_seq = b2__30646__auto__; if(cljs.core.next(ks_seq)){ while(true){ var m0 = cljs.core.deref(atom_); var m1 = cljs.core.assoc_in(m0,ks,v1); if(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){ -var G__50359 = m0; -var G__50360 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found); -var G__50361 = m1; -var G__50362 = v1; -return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50359,G__50360,G__50361,G__50362) : return$.call(null,G__50359,G__50360,G__50361,G__50362)); +var G__34210 = m0; +var G__34211 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found); +var G__34212 = m1; +var G__34213 = v1; +return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34210,G__34211,G__34212,G__34213) : return$.call(null,G__34210,G__34211,G__34212,G__34213)); } else { continue; } @@ -6991,15 +7072,15 @@ return taoensso.encore._reset_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn return taoensso.encore._reset_k0_BANG_(return$,atom_,v1); } }); -var return_51038 = (function (m0,v0,m1,v1){ +var return_35116 = (function (m0,v0,m1,v1){ return v0; }); /** * Like `reset!` but supports `update-in` semantics, returns . */ taoensso.encore.reset_in_BANG_ = (function taoensso$encore$reset_in_BANG_(var_args){ -var G__50369 = arguments.length; -switch (G__50369) { +var G__34215 = arguments.length; +switch (G__34215) { case 2: return taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -7019,15 +7100,15 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (atom_,val){ -return taoensso.encore._reset_k0_BANG_(return_51038,atom_,val); +return taoensso.encore._reset_k0_BANG_(return_35116,atom_,val); })); (taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,ks,val){ -return taoensso.encore._reset_kn_BANG_(return_51038,atom_,ks,null,val); +return taoensso.encore._reset_kn_BANG_(return_35116,atom_,ks,null,val); })); (taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,ks,not_found,val){ -return taoensso.encore._reset_kn_BANG_(return_51038,atom_,ks,not_found,val); +return taoensso.encore._reset_kn_BANG_(return_35116,atom_,ks,not_found,val); })); (taoensso.encore.reset_in_BANG_.cljs$lang$maxFixedArity = 4); @@ -7037,8 +7118,8 @@ return taoensso.encore._reset_kn_BANG_(return_51038,atom_,ks,not_found,val); * Like `reset-in!` but optimized for single-key case. Returns . */ taoensso.encore.reset_val_BANG_ = (function taoensso$encore$reset_val_BANG_(var_args){ -var G__50377 = arguments.length; -switch (G__50377) { +var G__34217 = arguments.length; +switch (G__34217) { case 3: return taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -7054,25 +7135,25 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,k,val){ -return taoensso.encore._reset_k1_BANG_(return_51038,atom_,k,null,val); +return taoensso.encore._reset_k1_BANG_(return_35116,atom_,k,null,val); })); (taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,k,not_found,val){ -return taoensso.encore._reset_k1_BANG_(return_51038,atom_,k,not_found,val); +return taoensso.encore._reset_k1_BANG_(return_35116,atom_,k,not_found,val); })); (taoensso.encore.reset_val_BANG_.cljs$lang$maxFixedArity = 4); -var sentinel_51042 = ({}); -var return_51043 = (function (m0,v0,m1,v1){ +var sentinel_35126 = ({}); +var return_35127 = (function (m0,v0,m1,v1){ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,v1); }); /** * Like `reset-in!` but returns true iff the atom's value changed. */ taoensso.encore.reset_in_BANG__QMARK_ = (function taoensso$encore$reset_in_BANG__QMARK_(var_args){ -var G__50385 = arguments.length; -switch (G__50385) { +var G__34221 = arguments.length; +switch (G__34221) { case 2: return taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -7092,15 +7173,15 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2 = (function (atom_,val){ -return taoensso.encore._reset_k0_BANG_(return_51043,atom_,val); +return taoensso.encore._reset_k0_BANG_(return_35127,atom_,val); })); (taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,ks,val){ -return taoensso.encore._reset_kn_BANG_(return_51043,atom_,ks,sentinel_51042,val); +return taoensso.encore._reset_kn_BANG_(return_35127,atom_,ks,sentinel_35126,val); })); (taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,ks,not_found,val){ -return taoensso.encore._reset_kn_BANG_(return_51043,atom_,ks,not_found,val); +return taoensso.encore._reset_kn_BANG_(return_35127,atom_,ks,not_found,val); })); (taoensso.encore.reset_in_BANG__QMARK_.cljs$lang$maxFixedArity = 4); @@ -7111,8 +7192,8 @@ return taoensso.encore._reset_kn_BANG_(return_51043,atom_,ks,not_found,val); * Returns true iff the atom's value changed. */ taoensso.encore.reset_val_BANG__QMARK_ = (function taoensso$encore$reset_val_BANG__QMARK_(var_args){ -var G__50388 = arguments.length; -switch (G__50388) { +var G__34223 = arguments.length; +switch (G__34223) { case 3: return taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -7128,7 +7209,7 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,k,new_val){ -var v0 = taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,sentinel_51042,new_val); +var v0 = taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,sentinel_35126,new_val); return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,new_val); })); @@ -7221,9 +7302,9 @@ return (x instanceof taoensso.encore.Swapped); taoensso.encore.return_swapped = (function taoensso$encore$return_swapped(sw,m0,m1){ var rv = sw.returnv; -var G__50404 = rv; -var G__50404__$1 = (((G__50404 instanceof cljs.core.Keyword))?G__50404.fqn:null); -switch (G__50404__$1) { +var G__34224 = rv; +var G__34224__$1 = (((G__34224 instanceof cljs.core.Keyword))?G__34224.fqn:null); +switch (G__34224__$1) { case "swap/changed?": return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(m1,m0); @@ -7279,11 +7360,11 @@ while(true){ var m0 = cljs.core.deref(atom_); var m1 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m0,k); if(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){ -var G__50414 = m0; -var G__50415 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found); -var G__50416 = m1; -var G__50417 = new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782); -return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50414,G__50415,G__50416,G__50417) : return$.call(null,G__50414,G__50415,G__50416,G__50417)); +var G__34225 = m0; +var G__34226 = cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found); +var G__34227 = m1; +var G__34228 = new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782); +return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34225,G__34226,G__34227,G__34228) : return$.call(null,G__34225,G__34226,G__34227,G__34228)); } else { continue; } @@ -7322,20 +7403,20 @@ break; * Impln. for n-key swaps */ taoensso.encore._swap_kn_BANG_ = (function taoensso$encore$_swap_kn_BANG_(return$,atom_,ks,not_found,f){ -var b2__43681__auto__ = cljs.core.seq(ks); -if(b2__43681__auto__){ -var ks_seq = b2__43681__auto__; +var b2__30646__auto__ = cljs.core.seq(ks); +if(b2__30646__auto__){ +var ks_seq = b2__30646__auto__; if(cljs.core.next(ks_seq)){ if(cljs.core.keyword_identical_QMARK_(f,new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782))){ while(true){ var m0 = cljs.core.deref(atom_); var m1 = taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2(m0,ks); if(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){ -var G__50421 = m0; -var G__50422 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found); -var G__50423 = m1; -var G__50424 = new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782); -return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50421,G__50422,G__50423,G__50424) : return$.call(null,G__50421,G__50422,G__50423,G__50424)); +var G__34229 = m0; +var G__34230 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found); +var G__34231 = m1; +var G__34232 = new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782); +return (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34229,G__34230,G__34231,G__34232) : return$.call(null,G__34229,G__34230,G__34231,G__34232)); } else { continue; } @@ -7376,7 +7457,7 @@ return taoensso.encore._swap_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn$ return taoensso.encore._swap_k0_BANG_(return$,atom_,f); } }); -var return_51053 = (function (m0,v0,m1,v1){ +var return_35146 = (function (m0,v0,m1,v1){ return v1; }); /** @@ -7387,8 +7468,8 @@ return v1; * (fn [old] (swapped (inc old) old))) => 5 */ taoensso.encore.swap_in_BANG_ = (function taoensso$encore$swap_in_BANG_(var_args){ -var G__50427 = arguments.length; -switch (G__50427) { +var G__34234 = arguments.length; +switch (G__34234) { case 2: return taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -7408,15 +7489,15 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (atom_,f){ -return taoensso.encore._swap_k0_BANG_(return_51053,atom_,f); +return taoensso.encore._swap_k0_BANG_(return_35146,atom_,f); })); (taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,ks,f){ -return taoensso.encore._swap_kn_BANG_(return_51053,atom_,ks,null,f); +return taoensso.encore._swap_kn_BANG_(return_35146,atom_,ks,null,f); })); (taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,ks,not_found,f){ -return taoensso.encore._swap_kn_BANG_(return_51053,atom_,ks,not_found,f); +return taoensso.encore._swap_kn_BANG_(return_35146,atom_,ks,not_found,f); })); (taoensso.encore.swap_in_BANG_.cljs$lang$maxFixedArity = 4); @@ -7430,8 +7511,8 @@ return taoensso.encore._swap_kn_BANG_(return_51053,atom_,ks,not_found,f); * (fn [old] (swapped (inc old) old))) => 5 */ taoensso.encore.swap_val_BANG_ = (function taoensso$encore$swap_val_BANG_(var_args){ -var G__50429 = arguments.length; -switch (G__50429) { +var G__34236 = arguments.length; +switch (G__34236) { case 3: return taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -7447,11 +7528,11 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,k,f){ -return taoensso.encore._swap_k1_BANG_(return_51053,atom_,k,null,f); +return taoensso.encore._swap_k1_BANG_(return_35146,atom_,k,null,f); })); (taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,k,not_found,f){ -return taoensso.encore._swap_k1_BANG_(return_51053,atom_,k,not_found,f); +return taoensso.encore._swap_k1_BANG_(return_35146,atom_,k,not_found,f); })); (taoensso.encore.swap_val_BANG_.cljs$lang$maxFixedArity = 4); @@ -7462,8 +7543,8 @@ return taoensso.encore._swap_k1_BANG_(return_51053,atom_,k,not_found,f); * [(pull-val! a :k) @a]) => [:v {}] */ taoensso.encore.pull_val_BANG_ = (function taoensso$encore$pull_val_BANG_(var_args){ -var G__50431 = arguments.length; -switch (G__50431) { +var G__34238 = arguments.length; +switch (G__34238) { case 2: return taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -7483,8 +7564,12 @@ return taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3(atom_,k,null })); (taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,k,not_found){ -return taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,not_found,(function (v0){ +return taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,new cljs.core.Keyword("taoensso.encore","nx","taoensso.encore/nx",1544906500),(function (v0){ +if(cljs.core.keyword_identical_QMARK_(v0,new cljs.core.Keyword("taoensso.encore","nx","taoensso.encore/nx",1544906500))){ +return taoensso.encore.swapped(new cljs.core.Keyword("swap","abort","swap/abort",508048993),not_found); +} else { return taoensso.encore.swapped(new cljs.core.Keyword("swap","dissoc","swap/dissoc",-605373782),v0); +} })); })); @@ -7538,31 +7623,31 @@ return (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) })); }); var taoensso$encore$memoize_last_$_memoized_fn__4 = (function() { -var G__51062__delegate = function (x,y,z,more){ +var G__35169__delegate = function (x,y,z,more){ return call(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y,z,more], null),(function (){ return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,more); })); }; -var G__51062 = function (x,y,z,var_args){ +var G__35169 = function (x,y,z,var_args){ var more = null; if (arguments.length > 3) { -var G__51063__i = 0, G__51063__a = new Array(arguments.length - 3); -while (G__51063__i < G__51063__a.length) {G__51063__a[G__51063__i] = arguments[G__51063__i + 3]; ++G__51063__i;} - more = new cljs.core.IndexedSeq(G__51063__a,0,null); +var G__35170__i = 0, G__35170__a = new Array(arguments.length - 3); +while (G__35170__i < G__35170__a.length) {G__35170__a[G__35170__i] = arguments[G__35170__i + 3]; ++G__35170__i;} + more = new cljs.core.IndexedSeq(G__35170__a,0,null); } -return G__51062__delegate.call(this,x,y,z,more);}; -G__51062.cljs$lang$maxFixedArity = 3; -G__51062.cljs$lang$applyTo = (function (arglist__51064){ -var x = cljs.core.first(arglist__51064); -arglist__51064 = cljs.core.next(arglist__51064); -var y = cljs.core.first(arglist__51064); -arglist__51064 = cljs.core.next(arglist__51064); -var z = cljs.core.first(arglist__51064); -var more = cljs.core.rest(arglist__51064); -return G__51062__delegate(x,y,z,more); -}); -G__51062.cljs$core$IFn$_invoke$arity$variadic = G__51062__delegate; -return G__51062; +return G__35169__delegate.call(this,x,y,z,more);}; +G__35169.cljs$lang$maxFixedArity = 3; +G__35169.cljs$lang$applyTo = (function (arglist__35171){ +var x = cljs.core.first(arglist__35171); +arglist__35171 = cljs.core.next(arglist__35171); +var y = cljs.core.first(arglist__35171); +arglist__35171 = cljs.core.next(arglist__35171); +var z = cljs.core.first(arglist__35171); +var more = cljs.core.rest(arglist__35171); +return G__35169__delegate(x,y,z,more); +}); +G__35169.cljs$core$IFn$_invoke$arity$variadic = G__35169__delegate; +return G__35169; })() ; taoensso$encore$memoize_last_$_memoized_fn = function(x,y,z,var_args){ @@ -7577,13 +7662,13 @@ return taoensso$encore$memoize_last_$_memoized_fn__2.call(this,x,y); case 3: return taoensso$encore$memoize_last_$_memoized_fn__3.call(this,x,y,z); default: -var G__51065 = null; +var G__35172 = null; if (arguments.length > 3) { -var G__51066__i = 0, G__51066__a = new Array(arguments.length - 3); -while (G__51066__i < G__51066__a.length) {G__51066__a[G__51066__i] = arguments[G__51066__i + 3]; ++G__51066__i;} -G__51065 = new cljs.core.IndexedSeq(G__51066__a,0,null); +var G__35173__i = 0, G__35173__a = new Array(arguments.length - 3); +while (G__35173__i < G__35173__a.length) {G__35173__a[G__35173__i] = arguments[G__35173__i + 3]; ++G__35173__i;} +G__35172 = new cljs.core.IndexedSeq(G__35173__a,0,null); } -return taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__51065); +return taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__35172); } throw(new Error('Invalid arity: ' + arguments.length)); }; @@ -7687,8 +7772,8 @@ return (new taoensso.encore.TickedCacheEntry(delay,udt,tick_lru,tick_lfu)); * See also `defn-cached`, `fmemoize`, `memoize-last`. */ taoensso.encore.cache = (function taoensso$encore$cache(var_args){ -var G__50439 = arguments.length; -switch (G__50439) { +var G__34246 = arguments.length; +switch (G__34246) { case 1: return taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -7709,9 +7794,9 @@ var get_sentinel = ({}); return (function() { var taoensso$encore$cached__delegate = function (xs){ var x1 = cljs.core.first(xs); -var G__50442 = x1; -var G__50442__$1 = (((G__50442 instanceof cljs.core.Keyword))?G__50442.fqn:null); -switch (G__50442__$1) { +var G__34249 = x1; +var G__34249__$1 = (((G__34249 instanceof cljs.core.Keyword))?G__34249.fqn:null); +switch (G__34249__$1) { case "cache/del": case "mem/del": var xn = cljs.core.next(xs); @@ -7750,14 +7835,14 @@ return v; var taoensso$encore$cached = function (var_args){ var xs = null; if (arguments.length > 0) { -var G__51076__i = 0, G__51076__a = new Array(arguments.length - 0); -while (G__51076__i < G__51076__a.length) {G__51076__a[G__51076__i] = arguments[G__51076__i + 0]; ++G__51076__i;} - xs = new cljs.core.IndexedSeq(G__51076__a,0,null); +var G__35184__i = 0, G__35184__a = new Array(arguments.length - 0); +while (G__35184__i < G__35184__a.length) {G__35184__a[G__35184__i] = arguments[G__35184__i + 0]; ++G__35184__i;} + xs = new cljs.core.IndexedSeq(G__35184__a,0,null); } return taoensso$encore$cached__delegate.call(this,xs);}; taoensso$encore$cached.cljs$lang$maxFixedArity = 0; -taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__51078){ -var xs = cljs.core.seq(arglist__51078); +taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__35185){ +var xs = cljs.core.seq(arglist__35185); return taoensso$encore$cached__delegate(xs); }); taoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic = taoensso$encore$cached__delegate; @@ -7766,73 +7851,73 @@ return taoensso$encore$cached; ; })); -(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2 = (function (p__50443,f){ -var map__50444 = p__50443; -var map__50444__$1 = cljs.core.__destructure_map(map__50444); -var opts = map__50444__$1; -var size = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,"size","size",1098693007)); -var ttl_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875)); -var gc_every = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691)); -var error50450_51079 = (function (){try{if(cljs.core.truth_((function (arg50445){ -return taoensso.truss.impl.ks_LT__EQ_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),null,new cljs.core.Keyword(null,"size","size",1098693007),null,new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875),null], null), null),arg50445); +(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2 = (function (p__34250,f){ +var map__34251 = p__34250; +var map__34251__$1 = cljs.core.__destructure_map(map__34251); +var opts = map__34251__$1; +var size = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,"size","size",1098693007)); +var ttl_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875)); +var gc_every = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691)); +var error34257_35186 = (function (){try{if(cljs.core.truth_((function (arg34252){ +return taoensso.truss.impl.ks_LT__EQ_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),null,new cljs.core.Keyword(null,"size","size",1098693007),null,new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875),null], null), null),arg34252); })(opts))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50452){var e = e50452; +}catch (e34259){var e = e34259; return e; }})(); -if(cljs.core.truth_(error50450_51079)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4357,4,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ks<=","ks<=",1664853833),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),"null",new cljs.core.Keyword(null,"size","size",1098693007),"null",new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875),"null"], null), null)], null),new cljs.core.Symbol(null,"opts","opts",1795607228,null),opts,null,error50450_51079); +if(cljs.core.truth_(error34257_35186)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4325,4,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ks<=","ks<=",1664853833),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),"null",new cljs.core.Keyword(null,"size","size",1098693007),"null",new cljs.core.Keyword(null,"ttl-ms","ttl-ms",1305262875),"null"], null), null)], null),new cljs.core.Symbol(null,"opts","opts",1795607228,null),opts,null,error34257_35186); } else { } -var ps50454_51086 = new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"or","or",235744169),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"pos-num?","pos-num?",976533390,null)], null); -var pf50455_51087 = (function (arg50453){ -if((arg50453 == null)){ +var ps34261_35190 = new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"or","or",235744169),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"pos-num?","pos-num?",976533390,null)], null); +var pf34262_35191 = (function (arg34260){ +if((arg34260 == null)){ return true; } else { -return taoensso.encore.pos_num_QMARK_(arg50453); +return taoensso.encore.pos_num_QMARK_(arg34260); } }); -var df50456_51088 = null; -var error50458_51089 = (function (){try{if(cljs.core.truth_(pf50455_51087(size))){ +var df34263_35192 = null; +var error34265_35194 = (function (){try{if(cljs.core.truth_(pf34262_35191(size))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50460){var e = e50460; +}catch (e34267){var e = e34267; return e; }})(); -if(cljs.core.truth_(error50458_51089)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4358,4,ps50454_51086,new cljs.core.Symbol(null,"size","size",-1555742762,null),size,df50456_51088,error50458_51089); +if(cljs.core.truth_(error34265_35194)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4326,4,ps34261_35190,new cljs.core.Symbol(null,"size","size",-1555742762,null),size,df34263_35192,error34265_35194); } else { } -var error50461_51091 = (function (){try{if(cljs.core.truth_(pf50455_51087(ttl_ms))){ +var error34268_35204 = (function (){try{if(cljs.core.truth_(pf34262_35191(ttl_ms))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50463){var e = e50463; +}catch (e34270){var e = e34270; return e; }})(); -if(cljs.core.truth_(error50461_51091)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4358,4,ps50454_51086,new cljs.core.Symbol(null,"ttl-ms","ttl-ms",-1349172894,null),ttl_ms,df50456_51088,error50461_51091); +if(cljs.core.truth_(error34268_35204)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4326,4,ps34261_35190,new cljs.core.Symbol(null,"ttl-ms","ttl-ms",-1349172894,null),ttl_ms,df34263_35192,error34268_35204); } else { } -var error50464_51092 = (function (){try{if(cljs.core.truth_(pf50455_51087(gc_every))){ +var error34271_35209 = (function (){try{if(cljs.core.truth_(pf34262_35191(gc_every))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50466){var e = e50466; +}catch (e34273){var e = e34273; return e; }})(); -if(cljs.core.truth_(error50464_51092)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4358,4,ps50454_51086,new cljs.core.Symbol(null,"gc-every","gc-every",-21013164,null),gc_every,df50456_51088,error50464_51092); +if(cljs.core.truth_(error34271_35209)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4326,4,ps34261_35190,new cljs.core.Symbol(null,"gc-every","gc-every",-21013164,null),gc_every,df34263_35192,error34271_35209); } else { } @@ -7861,16 +7946,16 @@ return taoensso.encore.clamp_int((1000),(16000),size__$1); return (function() { var taoensso$encore$cached__delegate = function (args){ var a1 = cljs.core.first(args); -var G__50467 = a1; -var G__50467__$1 = (((G__50467 instanceof cljs.core.Keyword))?G__50467.fqn:null); -switch (G__50467__$1) { +var G__34274 = a1; +var G__34274__$1 = (((G__34274 instanceof cljs.core.Keyword))?G__34274.fqn:null); +switch (G__34274__$1) { case "cache/del": case "mem/del": var argn = cljs.core.next(args); var a2 = cljs.core.first(argn); -if(cljs.core.truth_((function (){var G__50468 = a2; -var G__50468__$1 = (((G__50468 instanceof cljs.core.Keyword))?G__50468.fqn:null); -switch (G__50468__$1) { +if(cljs.core.truth_((function (){var G__34275 = a2; +var G__34275__$1 = (((G__34275 instanceof cljs.core.Keyword))?G__34275.fqn:null); +switch (G__34275__$1) { case "cache/all": case "mem/all": return true; @@ -7883,10 +7968,10 @@ return false; })())){ cljs.core.reset_BANG_(cache_,null); } else { -var G__50469_51099 = (function (p1__50436_SHARP_){ -return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50436_SHARP_,argn); +var G__34276_35220 = (function (p1__34243_SHARP_){ +return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34243_SHARP_,argn); }); -(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50469_51099) : cache_.call(null,G__50469_51099)); +(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34276_35220) : cache_.call(null,G__34276_35220)); } return null; @@ -7896,13 +7981,13 @@ default: var tick = (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null)); var instant = ((ttl_QMARK_)?taoensso.encore.now_udt():(0)); if((((cljs.core.rem(tick,gc_every__$1) === (0))) && ((cljs.core.count((cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null))) >= (1.1 * size__$1))))){ -var latch_51102 = null; -var udt_floor_51103 = (instant - ttl_ms__$1); -if(cljs.core.compare_and_set_BANG_(latch_,null,latch_51102)){ +var latch_35222 = null; +var udt_floor_35223 = (instant - ttl_ms__$1); +if(cljs.core.compare_and_set_BANG_(latch_,null,latch_35222)){ if(ttl_QMARK_){ -var G__50470_51104 = (function taoensso$encore$cached_$_swap_fn(m){ +var G__34277_35224 = (function taoensso$encore$cached_$_swap_fn(m){ return cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){ -if((e.udt < udt_floor_51103)){ +if((e.udt < udt_floor_35223)){ return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k); } else { return acc; @@ -7915,22 +8000,22 @@ return cljs.core.PersistentArrayMap.EMPTY; } })()),m)); }); -(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50470_51104) : cache_.call(null,G__50470_51104)); +(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34277_35224) : cache_.call(null,G__34277_35224)); } else { } -var snapshot_51107 = (cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null)); -var n_to_gc_51108 = (cljs.core.count(snapshot_51107) - size__$1); -if((n_to_gc_51108 >= (0.1 * size__$1))){ -var ks_to_gc_51109 = (function (){var G__50471 = n_to_gc_51108; -var G__50472 = (function (k){ -var e = cljs.core.get.cljs$core$IFn$_invoke$arity$2(snapshot_51107,k); +var snapshot_35225 = (cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null)); +var n_to_gc_35226 = (cljs.core.count(snapshot_35225) - size__$1); +if((n_to_gc_35226 >= (0.1 * size__$1))){ +var ks_to_gc_35228 = (function (){var G__34278 = n_to_gc_35226; +var G__34279 = (function (k){ +var e = cljs.core.get.cljs$core$IFn$_invoke$arity$2(snapshot_35225,k); return (e.tick_lru + e.tick_lfu); }); -var G__50473 = cljs.core.keys(snapshot_51107); -return (taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 ? taoensso.encore.top.cljs$core$IFn$_invoke$arity$3(G__50471,G__50472,G__50473) : taoensso.encore.top.call(null,G__50471,G__50472,G__50473)); +var G__34280 = cljs.core.keys(snapshot_35225); +return (taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 ? taoensso.encore.top.cljs$core$IFn$_invoke$arity$3(G__34278,G__34279,G__34280) : taoensso.encore.top.call(null,G__34278,G__34279,G__34280)); })(); -var G__50474_51111 = (function taoensso$encore$cached_$_swap_fn(m){ +var G__34281_35230 = (function taoensso$encore$cached_$_swap_fn(m){ return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){ return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,in$); }),cljs.core.transient$((function (){var or__5025__auto__ = m; @@ -7939,9 +8024,9 @@ return or__5025__auto__; } else { return cljs.core.PersistentArrayMap.EMPTY; } -})()),ks_to_gc_51109)); +})()),ks_to_gc_35228)); }); -(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50474_51111) : cache_.call(null,G__50474_51111)); +(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34281_35230) : cache_.call(null,G__34281_35230)); } else { } @@ -7950,9 +8035,9 @@ return cljs.core.PersistentArrayMap.EMPTY; } else { } -var fresh_QMARK_ = (function (){var G__50475 = a1; -var G__50475__$1 = (((G__50475 instanceof cljs.core.Keyword))?G__50475.fqn:null); -switch (G__50475__$1) { +var fresh_QMARK_ = (function (){var G__34282 = a1; +var G__34282__$1 = (((G__34282 instanceof cljs.core.Keyword))?G__34282.fqn:null); +switch (G__34282__$1) { case "cache/fresh": case "mem/fresh": return true; @@ -7965,8 +8050,8 @@ return false; })(); var args__$1 = (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args); var _ = null; -var e = (function (){var G__50476 = args__$1; -var G__50477 = (function taoensso$encore$cached_$_swap_fn(_QMARK_e){ +var e = (function (){var G__34283 = args__$1; +var G__34284 = (function taoensso$encore$cached_$_swap_fn(_QMARK_e){ if(cljs.core.truth_((function (){var or__5025__auto__ = (_QMARK_e == null); if(or__5025__auto__){ return or__5025__auto__; @@ -7987,7 +8072,7 @@ var e = _QMARK_e; return (new taoensso.encore.TickedCacheEntry(e.delay,e.udt,tick,(e.tick_lfu + (1)))); } }); -return (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__50476,G__50477) : cache_.call(null,G__50476,G__50477)); +return (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__34283,G__34284) : cache_.call(null,G__34283,G__34284)); })(); return cljs.core.deref(e.delay); @@ -7996,14 +8081,14 @@ return cljs.core.deref(e.delay); var taoensso$encore$cached = function (var_args){ var args = null; if (arguments.length > 0) { -var G__51113__i = 0, G__51113__a = new Array(arguments.length - 0); -while (G__51113__i < G__51113__a.length) {G__51113__a[G__51113__i] = arguments[G__51113__i + 0]; ++G__51113__i;} - args = new cljs.core.IndexedSeq(G__51113__a,0,null); +var G__35237__i = 0, G__35237__a = new Array(arguments.length - 0); +while (G__35237__i < G__35237__a.length) {G__35237__a[G__35237__i] = arguments[G__35237__i + 0]; ++G__35237__i;} + args = new cljs.core.IndexedSeq(G__35237__a,0,null); } return taoensso$encore$cached__delegate.call(this,args);}; taoensso$encore$cached.cljs$lang$maxFixedArity = 0; -taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__51114){ -var args = cljs.core.seq(arglist__51114); +taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__35238){ +var args = cljs.core.seq(arglist__35238); return taoensso$encore$cached__delegate(args); }); taoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic = taoensso$encore$cached__delegate; @@ -8028,16 +8113,16 @@ return (1.0 / cljs.core.long$(gce)); return (function() { var taoensso$encore$cached__delegate = function (args){ var a1 = cljs.core.first(args); -var G__50478 = a1; -var G__50478__$1 = (((G__50478 instanceof cljs.core.Keyword))?G__50478.fqn:null); -switch (G__50478__$1) { +var G__34285 = a1; +var G__34285__$1 = (((G__34285 instanceof cljs.core.Keyword))?G__34285.fqn:null); +switch (G__34285__$1) { case "cache/del": case "mem/del": var argn = cljs.core.next(args); var a2 = cljs.core.first(argn); -if(cljs.core.truth_((function (){var G__50479 = a2; -var G__50479__$1 = (((G__50479 instanceof cljs.core.Keyword))?G__50479.fqn:null); -switch (G__50479__$1) { +if(cljs.core.truth_((function (){var G__34286 = a2; +var G__34286__$1 = (((G__34286 instanceof cljs.core.Keyword))?G__34286.fqn:null); +switch (G__34286__$1) { case "cache/all": case "mem/all": return true; @@ -8050,10 +8135,10 @@ return false; })())){ cljs.core.reset_BANG_(cache_,null); } else { -var G__50480_51120 = (function (p1__50437_SHARP_){ -return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50437_SHARP_,argn); +var G__34287_35241 = (function (p1__34244_SHARP_){ +return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34244_SHARP_,argn); }); -(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50480_51120) : cache_.call(null,G__50480_51120)); +(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34287_35241) : cache_.call(null,G__34287_35241)); } return null; @@ -8062,9 +8147,9 @@ break; default: var instant = taoensso.encore.now_udt(); if(cljs.core.truth_((gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1 ? gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1(gc_rate) : gc_now_QMARK_.call(null,gc_rate)))){ -var latch_51121 = null; -if(cljs.core.compare_and_set_BANG_(latch_,null,latch_51121)){ -var G__50481_51122 = (function taoensso$encore$cached_$_swap_fn(m){ +var latch_35243 = null; +if(cljs.core.compare_and_set_BANG_(latch_,null,latch_35243)){ +var G__34288_35244 = (function taoensso$encore$cached_$_swap_fn(m){ return cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){ if(((instant - e.udt) > ttl_ms__$1)){ return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k); @@ -8079,16 +8164,16 @@ return cljs.core.PersistentArrayMap.EMPTY; } })()),m)); }); -(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50481_51122) : cache_.call(null,G__50481_51122)); +(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34288_35244) : cache_.call(null,G__34288_35244)); } else { } } else { } -var fresh_QMARK_ = (function (){var G__50482 = a1; -var G__50482__$1 = (((G__50482 instanceof cljs.core.Keyword))?G__50482.fqn:null); -switch (G__50482__$1) { +var fresh_QMARK_ = (function (){var G__34289 = a1; +var G__34289__$1 = (((G__34289 instanceof cljs.core.Keyword))?G__34289.fqn:null); +switch (G__34289__$1) { case "cache/fresh": case "mem/fresh": return true; @@ -8101,8 +8186,8 @@ return false; })(); var args__$1 = (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args); var _ = null; -var e = (function (){var G__50483 = args__$1; -var G__50484 = (function taoensso$encore$cached_$_swap_fn(_QMARK_e){ +var e = (function (){var G__34290 = args__$1; +var G__34291 = (function taoensso$encore$cached_$_swap_fn(_QMARK_e){ if(cljs.core.truth_((function (){var or__5025__auto__ = (_QMARK_e == null); if(or__5025__auto__){ return or__5025__auto__; @@ -8122,7 +8207,7 @@ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args__$1); return _QMARK_e; } }); -return (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__50483,G__50484) : cache_.call(null,G__50483,G__50484)); +return (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__34290,G__34291) : cache_.call(null,G__34290,G__34291)); })(); return cljs.core.deref(e.delay); @@ -8131,14 +8216,14 @@ return cljs.core.deref(e.delay); var taoensso$encore$cached = function (var_args){ var args = null; if (arguments.length > 0) { -var G__51125__i = 0, G__51125__a = new Array(arguments.length - 0); -while (G__51125__i < G__51125__a.length) {G__51125__a[G__51125__i] = arguments[G__51125__i + 0]; ++G__51125__i;} - args = new cljs.core.IndexedSeq(G__51125__a,0,null); +var G__35250__i = 0, G__35250__a = new Array(arguments.length - 0); +while (G__35250__i < G__35250__a.length) {G__35250__a[G__35250__i] = arguments[G__35250__i + 0]; ++G__35250__i;} + args = new cljs.core.IndexedSeq(G__35250__a,0,null); } return taoensso$encore$cached__delegate.call(this,args);}; taoensso$encore$cached.cljs$lang$maxFixedArity = 0; -taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__51126){ -var args = cljs.core.seq(arglist__51126); +taoensso$encore$cached.cljs$lang$applyTo = (function (arglist__35252){ +var args = cljs.core.seq(arglist__35252); return taoensso$encore$cached__delegate(args); }); taoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic = taoensso$encore$cached__delegate; @@ -8158,8 +8243,8 @@ return taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1(f); * See `cache` docstring for details. */ taoensso.encore.memoize = (function taoensso$encore$memoize(var_args){ -var G__50486 = arguments.length; -switch (G__50486) { +var G__34293 = arguments.length; +switch (G__34293) { case 1: return taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -8216,7 +8301,7 @@ return true; } }); var taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1 = (function (req_id){ -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4580,17], null),"[encore/rate-limiter] Basic rate limiters don't support request ids",cljs.core.PersistentArrayMap.EMPTY,null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4548,17], null),"[encore/rate-limiter] Basic rate limiters don't support request ids",cljs.core.PersistentArrayMap.EMPTY,null); }); taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per = function(req_id){ switch(arguments.length){ @@ -8317,33 +8402,33 @@ taoensso.encore.__GT_LimitHits = (function taoensso$encore$__GT_LimitHits(m,wors return (new taoensso.encore.LimitHits(m,worst_lid,worst_ms)); }); -var limit_spec_51132 = (function (n,ms){ -var ps50487_51133 = new cljs.core.Symbol("taoensso.encore","pos-int?","taoensso.encore/pos-int?",186070635,null); -var pf50488_51134 = taoensso.encore.pos_int_QMARK_; -var df50489_51135 = null; -var error50491_51136 = (function (){try{if(cljs.core.truth_((pf50488_51134.cljs$core$IFn$_invoke$arity$1 ? pf50488_51134.cljs$core$IFn$_invoke$arity$1(n) : pf50488_51134.call(null,n)))){ +var limit_spec_35266 = (function (n,ms){ +var ps34294_35267 = new cljs.core.Symbol("taoensso.encore","pos-int?","taoensso.encore/pos-int?",186070635,null); +var pf34295_35268 = taoensso.encore.pos_int_QMARK_; +var df34296_35269 = null; +var error34298_35270 = (function (){try{if(cljs.core.truth_((pf34295_35268.cljs$core$IFn$_invoke$arity$1 ? pf34295_35268.cljs$core$IFn$_invoke$arity$1(n) : pf34295_35268.call(null,n)))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50493){var e = e50493; +}catch (e34300){var e = e34300; return e; }})(); -if(cljs.core.truth_(error50491_51136)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4590,29,ps50487_51133,new cljs.core.Symbol(null,"n","n",-2092305744,null),n,df50489_51135,error50491_51136); +if(cljs.core.truth_(error34298_35270)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4558,29,ps34294_35267,new cljs.core.Symbol(null,"n","n",-2092305744,null),n,df34296_35269,error34298_35270); } else { } -var error50494_51138 = (function (){try{if(cljs.core.truth_((pf50488_51134.cljs$core$IFn$_invoke$arity$1 ? pf50488_51134.cljs$core$IFn$_invoke$arity$1(ms) : pf50488_51134.call(null,ms)))){ +var error34301_35272 = (function (){try{if(cljs.core.truth_((pf34295_35268.cljs$core$IFn$_invoke$arity$1 ? pf34295_35268.cljs$core$IFn$_invoke$arity$1(ms) : pf34295_35268.call(null,ms)))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50496){var e = e50496; +}catch (e34303){var e = e34303; return e; }})(); -if(cljs.core.truth_(error50494_51138)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",4590,29,ps50487_51133,new cljs.core.Symbol(null,"ms","ms",487821794,null),ms,df50489_51135,error50494_51138); +if(cljs.core.truth_(error34301_35272)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",4558,29,ps34294_35267,new cljs.core.Symbol(null,"ms","ms",487821794,null),ms,df34296_35269,error34301_35272); } else { } @@ -8352,29 +8437,29 @@ return (new taoensso.encore.LimitSpec(n,ms)); }); taoensso.encore.coerce_limit_spec = (function taoensso$encore$coerce_limit_spec(x){ if(cljs.core.map_QMARK_(x)){ -return cljs.core.reduce_kv((function (acc,lid,p__50497){ -var vec__50498 = p__50497; -var n = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50498,(0),null); -var ms = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50498,(1),null); -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,limit_spec_51132(n,ms)); +return cljs.core.reduce_kv((function (acc,lid,p__34304){ +var vec__34305 = p__34304; +var n = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34305,(0),null); +var ms = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34305,(1),null); +return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,limit_spec_35266(n,ms)); }),cljs.core.PersistentArrayMap.EMPTY,x); } else { if(cljs.core.vector_QMARK_(x)){ -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__50501){ -var vec__50502 = p__50501; -var n = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(0),null); -var ms = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(1),null); -var _QMARK_lid = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(2),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__34308){ +var vec__34309 = p__34308; +var n = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(0),null); +var ms = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(1),null); +var _QMARK_lid = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(2),null); return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,(function (){var or__5025__auto__ = _QMARK_lid; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [n,ms], null); } -})(),limit_spec_51132(n,ms)); +})(),limit_spec_35266(n,ms)); }),cljs.core.PersistentArrayMap.EMPTY,x); } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4602,7], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","rate-limiter","taoensso.encore/rate-limiter",1705152470,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"rate-limiter-spec","rate-limiter-spec",1678589253,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"vector","vector",-751469611,null),"null"], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4570,7], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","rate-limiter","taoensso.encore/rate-limiter",1705152470,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"rate-limiter-spec","rate-limiter-spec",1678589253,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"vector","vector",-751469611,null),"null"], null), null)], null)); } } }); @@ -8397,8 +8482,8 @@ return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core * (limiter-fn :rl/reset = (e.udt0 + s.ms))){ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,lid); } else { @@ -8502,7 +8587,7 @@ return cljs.core.PersistentArrayMap.EMPTY; } })()),reqs)); }); -(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__50510_51148) : reqs_.call(null,G__50510_51148)); +(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__34317_35298) : reqs_.call(null,G__34317_35298)); } else { } @@ -8512,11 +8597,11 @@ return cljs.core.PersistentArrayMap.EMPTY; while(true){ var reqs = (reqs_.cljs$core$IFn$_invoke$arity$0 ? reqs_.cljs$core$IFn$_invoke$arity$0() : reqs_.call(null)); var entries = cljs.core.get.cljs$core$IFn$_invoke$arity$2(reqs,rid); -var _QMARK_hits = (cljs.core.truth_(entries)?cljs.core.reduce_kv(((function (reqs,entries,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_){ +var _QMARK_hits = (cljs.core.truth_(entries)?cljs.core.reduce_kv(((function (reqs,entries,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_){ return (function (acc,lid,e){ -var b2__43681__auto____$1 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var s = b2__43681__auto____$1; +var b2__30646__auto____$1 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid); +if(cljs.core.truth_(b2__30646__auto____$1)){ +var s = b2__30646__auto____$1; if(((e.n + delta) <= s.n)){ return acc; } else { @@ -8538,7 +8623,7 @@ return (new taoensso.encore.LimitHits(cljs.core.assoc.cljs$core$IFn$_invoke$arit } else { return acc; } -});})(reqs,entries,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_)) +});})(reqs,entries,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_)) ,null,entries):null); if(cljs.core.truth_((function (){var or__5025__auto__ = peek_QMARK_; if(cljs.core.truth_(or__5025__auto__)){ @@ -8547,24 +8632,24 @@ return or__5025__auto__; return _QMARK_hits; } })())){ -var b2__43681__auto____$1 = _QMARK_hits; -if(cljs.core.truth_(b2__43681__auto____$1)){ -var h = b2__43681__auto____$1; +var b2__30646__auto____$1 = _QMARK_hits; +if(cljs.core.truth_(b2__30646__auto____$1)){ +var h = b2__30646__auto____$1; return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [h.worst_lid,h.worst_ms,h.m], null); } else { return null; } } else { -var b2__43681__auto____$1 = (latch_.cljs$core$IFn$_invoke$arity$0 ? latch_.cljs$core$IFn$_invoke$arity$0() : latch_.call(null)); -if(cljs.core.truth_(b2__43681__auto____$1)){ -var l = b2__43681__auto____$1; +var b2__30646__auto____$1 = (latch_.cljs$core$IFn$_invoke$arity$0 ? latch_.cljs$core$IFn$_invoke$arity$0() : latch_.call(null)); +if(cljs.core.truth_(b2__30646__auto____$1)){ +var l = b2__30646__auto____$1; return null; } else { -var new_entries = cljs.core.reduce_kv(((function (b2__43681__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_){ +var new_entries = cljs.core.reduce_kv(((function (b2__30646__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_){ return (function (acc,lid,s){ -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,(function (){var b2__43681__auto____$2 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(entries,lid); -if(cljs.core.truth_(b2__43681__auto____$2)){ -var e = b2__43681__auto____$2; +return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,(function (){var b2__30646__auto____$2 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(entries,lid); +if(cljs.core.truth_(b2__30646__auto____$2)){ +var e = b2__30646__auto____$2; var udt0 = e.udt0; if((instant >= (udt0 + s.ms))){ return (new taoensso.encore.LimitEntry(delta,instant)); @@ -8575,7 +8660,7 @@ return (new taoensso.encore.LimitEntry((delta + e.n),udt0)); return (new taoensso.encore.LimitEntry(delta,instant)); } })()); -});})(b2__43681__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_)) +});})(b2__30646__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_)) ,entries,spec__$1); if(cljs.core.compare_and_set_BANG_(reqs_,reqs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(reqs,rid,new_entries))){ return null; @@ -8596,14 +8681,14 @@ var taoensso$encore$a_rate_limiter__1 = (function (req_id){ return f1(req_id,(1),false); }); var taoensso$encore$a_rate_limiter__2 = (function (cmd,req_id){ -var G__50511 = cmd; -var G__50511__$1 = (((G__50511 instanceof cljs.core.Keyword))?G__50511.fqn:null); -switch (G__50511__$1) { +var G__34318 = cmd; +var G__34318__$1 = (((G__34318 instanceof cljs.core.Keyword))?G__34318.fqn:null); +switch (G__34318__$1) { case "rl/reset": case "limiter/reset": -if(cljs.core.truth_((function (){var G__50512 = req_id; -var G__50512__$1 = (((G__50512 instanceof cljs.core.Keyword))?G__50512.fqn:null); -switch (G__50512__$1) { +if(cljs.core.truth_((function (){var G__34319 = req_id; +var G__34319__$1 = (((G__34319 instanceof cljs.core.Keyword))?G__34319.fqn:null); +switch (G__34319__$1) { case "rl/all": case "limiter/all": return true; @@ -8616,10 +8701,10 @@ return false; })())){ cljs.core.reset_BANG_(reqs_,null); } else { -var G__50513_51155 = (function (p1__50505_SHARP_){ -return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50505_SHARP_,req_id); +var G__34320_35322 = (function (p1__34312_SHARP_){ +return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34312_SHARP_,req_id); }); -(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__50513_51155) : reqs_.call(null,G__50513_51155)); +(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__34320_35322) : reqs_.call(null,G__34320_35322)); } return null; @@ -8634,7 +8719,7 @@ default: if(typeof cmd === 'number'){ return f1(req_id,cljs.core.long$(cmd),false); } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4764,14], null),cmd,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","rate-limiter","taoensso.encore/rate-limiter",1705152470,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"rate-limiter-command","rate-limiter-command",1767414198,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("rl","reset","rl/reset",-800926172),null,new cljs.core.Keyword("rl","peek","rl/peek",-291391771),null], null), null),new cljs.core.Keyword(null,"req-id","req-id",-471642231),req_id], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4732,14], null),cmd,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.encore","rate-limiter","taoensso.encore/rate-limiter",1705152470,null),new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"rate-limiter-command","rate-limiter-command",1767414198,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("rl","reset","rl/reset",-800926172),null,new cljs.core.Keyword("rl","peek","rl/peek",-291391771),null], null), null),new cljs.core.Keyword(null,"req-id","req-id",-471642231),req_id], null)); } } @@ -8687,8 +8772,8 @@ return self__.c; (taoensso.encore.Counter.prototype.call = (function (unused__11804__auto__){ var self__ = this; var self__ = this; -var G__50515 = (arguments.length - (1)); -switch (G__50515) { +var G__34322 = (arguments.length - (1)); +switch (G__34322) { case (0): return self__.cljs$core$IFn$_invoke$arity$0(); @@ -8707,10 +8792,10 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( } })); -(taoensso.encore.Counter.prototype.apply = (function (self__,args50514){ +(taoensso.encore.Counter.prototype.apply = (function (self__,args34321){ var self__ = this; var self____$1 = this; -return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50514))); +return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34321))); })); (taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$0 = (function (){ @@ -8734,9 +8819,9 @@ return o; (taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$2 = (function (action,n){ var self__ = this; var _ = this; -var G__50516 = action; -var G__50516__$1 = (((G__50516 instanceof cljs.core.Keyword))?G__50516.fqn:null); -switch (G__50516__$1) { +var G__34323 = action; +var G__34323__$1 = (((G__34323 instanceof cljs.core.Keyword))?G__34323.fqn:null); +switch (G__34323__$1) { case "add": (self__.c = (self__.c + n)); @@ -8780,7 +8865,7 @@ return self__.c; break; default: -throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__50516__$1)].join(''))); +throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34323__$1)].join(''))); } })); @@ -8813,8 +8898,8 @@ return (new taoensso.encore.Counter(c)); * {:add :set :set-get :get-set :get-add :add-get}. */ taoensso.encore.counter = (function taoensso$encore$counter(var_args){ -var G__50518 = arguments.length; -switch (G__50518) { +var G__34325 = arguments.length; +switch (G__34325) { case 0: return taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0(); @@ -8881,8 +8966,8 @@ this.cljs$lang$protocol_mask$partition1$ = 0; (taoensso.encore.RollingCounter.prototype.call = (function (unused__11804__auto__){ var self__ = this; var self__ = this; -var G__50524 = (arguments.length - (1)); -switch (G__50524) { +var G__34331 = (arguments.length - (1)); +switch (G__34331) { case (0): return self__.cljs$core$IFn$_invoke$arity$0(); @@ -8893,20 +8978,20 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( } })); -(taoensso.encore.RollingCounter.prototype.apply = (function (self__,args50523){ +(taoensso.encore.RollingCounter.prototype.apply = (function (self__,args34330){ var self__ = this; var self____$1 = this; -return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50523))); +return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34330))); })); (taoensso.encore.RollingCounter.prototype.cljs$core$IFn$_invoke$arity$0 = (function (){ var self__ = this; var this$ = this; -var t1_51171 = taoensso.encore.now_udt(); -var G__50525_51172 = (function (p1__50521_SHARP_){ -return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__50521_SHARP_,t1_51171); +var t1_35347 = taoensso.encore.now_udt(); +var G__34332_35349 = (function (p1__34328_SHARP_){ +return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__34328_SHARP_,t1_35347); }); -(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__50525_51172) : self__.ts_.call(null,G__50525_51172)); +(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__34332_35349) : self__.ts_.call(null,G__34332_35349)); return this$; })); @@ -8915,10 +9000,10 @@ return this$; var self__ = this; var ___$1 = this; return taoensso.encore.rc_deref(self__.msecs,self__.ts_,self__.n_skip_,(function taoensso$encore$gc(n_skip1){ -var G__50526_51173 = (function (p1__50522_SHARP_){ -return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(p1__50522_SHARP_,n_skip1); +var G__34333_35351 = (function (p1__34329_SHARP_){ +return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(p1__34329_SHARP_,n_skip1); }); -(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__50526_51173) : self__.ts_.call(null,G__50526_51173)); +(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__34333_35351) : self__.ts_.call(null,G__34333_35351)); return cljs.core.reset_BANG_(self__.n_skip_,(0)); })); @@ -8950,16 +9035,16 @@ return (new taoensso.encore.RollingCounter(msecs,ts_,n_skip_)); * - Deref to return count in last `msecs` window. */ taoensso.encore.rolling_counter = (function taoensso$encore$rolling_counter(msecs){ -return (new taoensso.encore.RollingCounter(cljs.core.long$((function (){var error50531 = (function (){try{if(cljs.core.truth_(taoensso.encore.pos_int_QMARK_(msecs))){ +return (new taoensso.encore.RollingCounter(cljs.core.long$((function (){var error34338 = (function (){try{if(cljs.core.truth_(taoensso.encore.pos_int_QMARK_(msecs))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50533){var e = e50533; +}catch (e34340){var e = e34340; return e; }})(); -if(cljs.core.truth_(error50531)){ -return taoensso.truss.failed_assertion_BANG_("taoensso.encore",4905,11,new cljs.core.Symbol("taoensso.encore","pos-int?","taoensso.encore/pos-int?",186070635,null),new cljs.core.Symbol(null,"msecs","msecs",-942455216,null),msecs,null,error50531); +if(cljs.core.truth_(error34338)){ +return taoensso.truss.failed_assertion_BANG_("taoensso.encore",4873,11,new cljs.core.Symbol("taoensso.encore","pos-int?","taoensso.encore/pos-int?",186070635,null),new cljs.core.Symbol(null,"msecs","msecs",-942455216,null),msecs,null,error34338); } else { return msecs; } @@ -8975,8 +9060,8 @@ return msecs; * See also `rolling-list` (Clj only). */ taoensso.encore.rolling_vector = (function taoensso$encore$rolling_vector(var_args){ -var G__50535 = arguments.length; -switch (G__50535) { +var G__34342 = arguments.length; +switch (G__34342) { case 1: return taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -8995,11 +9080,11 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( return taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2(nmax,null); })); -(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2 = (function (nmax,p__50536){ -var map__50537 = p__50536; -var map__50537__$1 = cljs.core.__destructure_map(map__50537); -var gc_every = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50537__$1,new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),16000.0); -var init_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50537__$1,new cljs.core.Keyword(null,"init-val","init-val",-70272968)); +(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2 = (function (nmax,p__34343){ +var map__34344 = p__34343; +var map__34344__$1 = cljs.core.__destructure_map(map__34344); +var gc_every = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34344__$1,new cljs.core.Keyword(null,"gc-every","gc-every",-1661544691),16000.0); +var init_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34344__$1,new cljs.core.Keyword(null,"init-val","init-val",-70272968)); var nmax__$1 = cljs.core.long$(nmax); var acc_ = taoensso.encore.latom(cljs.core.vec(init_val)); var gc_every__$1 = (cljs.core.truth_(gc_every)?cljs.core.long$(gc_every):null); @@ -9012,20 +9097,20 @@ return (acc_.cljs$core$IFn$_invoke$arity$0 ? acc_.cljs$core$IFn$_invoke$arity$0( }); var taoensso$encore$rolling_vec_fn__1 = (function (x){ if(cljs.core.truth_(gc_every__$1)){ -var tick_51176 = (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null)); -var b2__43681__auto___51177 = (cljs.core.rem(tick_51176,gc_every__$1) === (0)); -if(b2__43681__auto___51177){ -var gc_now_QMARK__51178 = b2__43681__auto___51177; -var G__50538_51179 = (function taoensso$encore$rolling_vec_fn_$_swap_fn(sv){ +var tick_35369 = (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null)); +var b2__30646__auto___35371 = (cljs.core.rem(tick_35369,gc_every__$1) === (0)); +if(b2__30646__auto___35371){ +var gc_now_QMARK__35375 = b2__30646__auto___35371; +var G__34345_35377 = (function taoensso$encore$rolling_vec_fn_$_swap_fn(sv){ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,sv); }); -(acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__50538_51179) : acc_.call(null,G__50538_51179)); +(acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__34345_35377) : acc_.call(null,G__34345_35377)); } else { } } else { } -var G__50539 = (function taoensso$encore$rolling_vec_fn_$_swap_fn(acc){ +var G__34346 = (function taoensso$encore$rolling_vec_fn_$_swap_fn(acc){ var new$ = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,x); if((cljs.core.count(new$) > nmax__$1)){ return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(new$,(1)); @@ -9033,7 +9118,7 @@ return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(new$,(1)); return new$; } }); -return (acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__50539) : acc_.call(null,G__50539)); +return (acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__34346) : acc_.call(null,G__34346)); }); taoensso$encore$rolling_vec_fn = function(x){ switch(arguments.length){ @@ -9065,8 +9150,8 @@ return cljs.core.compare(y,x); * - An optional `keyfn` may be provided, as in `core/sort-by`. */ taoensso.encore.sortv = (function taoensso$encore$sortv(var_args){ -var G__50541 = arguments.length; -switch (G__50541) { +var G__34348 = arguments.length; +switch (G__34348) { case 1: return taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -9095,9 +9180,9 @@ return taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3(null,comparator,coll) (taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3 = (function (_QMARK_keyfn,comparator,coll){ if(cljs.core.seq(coll)){ -var comparator__$1 = (function (){var G__50542 = comparator; -var G__50542__$1 = (((G__50542 instanceof cljs.core.Keyword))?G__50542.fqn:null); -switch (G__50542__$1) { +var comparator__$1 = (function (){var G__34349 = comparator; +var G__34349__$1 = (((G__34349 instanceof cljs.core.Keyword))?G__34349.fqn:null); +switch (G__34349__$1) { case "asc": return cljs.core.compare; @@ -9114,13 +9199,13 @@ return comparator; } })(); -var comparator__$2 = (function (){var b2__43681__auto__ = ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(_QMARK_keyfn,cljs.core.identity))?_QMARK_keyfn:null); -if(cljs.core.truth_(b2__43681__auto__)){ -var kfn = b2__43681__auto__; +var comparator__$2 = (function (){var b2__30646__auto__ = ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(_QMARK_keyfn,cljs.core.identity))?_QMARK_keyfn:null); +if(cljs.core.truth_(b2__30646__auto__)){ +var kfn = b2__30646__auto__; return (function (x,y){ -var G__50543 = (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(x) : kfn.call(null,x)); -var G__50544 = (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(y) : kfn.call(null,y)); -return (comparator__$1.cljs$core$IFn$_invoke$arity$2 ? comparator__$1.cljs$core$IFn$_invoke$arity$2(G__50543,G__50544) : comparator__$1.call(null,G__50543,G__50544)); +var G__34350 = (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(x) : kfn.call(null,x)); +var G__34351 = (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(y) : kfn.call(null,y)); +return (comparator__$1.cljs$core$IFn$_invoke$arity$2 ? comparator__$1.cljs$core$IFn$_invoke$arity$2(G__34350,G__34351) : comparator__$1.call(null,G__34350,G__34351)); }); } else { return comparator__$1; @@ -9137,16 +9222,16 @@ return cljs.core.PersistentVector.EMPTY; (taoensso.encore.sortv.cljs$lang$maxFixedArity = 3); -var sentinel_51184 = ({}); -var nil__GT_sentinel_51185 = (function (x){ +var sentinel_35400 = ({}); +var nil__GT_sentinel_35401 = (function (x){ if((x == null)){ -return sentinel_51184; +return sentinel_35400; } else { return x; } }); -var sentinel__GT_nil_51186 = (function (x){ -if((x === sentinel_51184)){ +var sentinel__GT_nil_35402 = (function (x){ +if((x === sentinel_35400)){ return null; } else { return x; @@ -9157,8 +9242,8 @@ return x; * Clj impln is O(N.logn) vs O(N.logN) for (take n (sort-by ...)). */ taoensso.encore.reduce_top = (function taoensso$encore$reduce_top(var_args){ -var G__50549 = arguments.length; -switch (G__50549) { +var G__34356 = arguments.length; +switch (G__34356) { case 4: return taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); @@ -9204,8 +9289,8 @@ return init; * Conjoins the top `n` items from `coll` into `to` using `reduce-top`. */ taoensso.encore.top_into = (function taoensso$encore$top_into(var_args){ -var G__50551 = arguments.length; -switch (G__50551) { +var G__34358 = arguments.length; +switch (G__34358) { case 3: return taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -9246,8 +9331,8 @@ return taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cmp,cljs * Returns a sorted vector of the top `n` items from `coll` using `reduce-top`. */ taoensso.encore.top = (function taoensso$encore$top(var_args){ -var G__50553 = arguments.length; -switch (G__50553) { +var G__34360 = arguments.length; +switch (G__34360) { case 2: return taoensso.encore.top.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -9302,7 +9387,7 @@ taoensso.encore._valid_unstub_impl = (function taoensso$encore$_valid_unstub_imp if(cljs.core.fn_QMARK_(x)){ return x; } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6065,5], null),"[encore/stubfn] Unexpected unstub implementation ",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.Symbol(null,"fn","fn",465265323,null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6078,5], null),"[encore/stubfn] Unexpected unstub implementation ",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.Symbol(null,"fn","fn",465265323,null)], null),null); } }); /** @@ -9314,16 +9399,16 @@ throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVec * (cljs.test/use-fixtures :once f)) */ taoensso.encore.test_fixtures = (function taoensso$encore$test_fixtures(fixtures_map){ -var error50574_51194 = (function (){try{if(cljs.core.map_QMARK_(fixtures_map)){ +var error34381_35416 = (function (){try{if(cljs.core.map_QMARK_(fixtures_map)){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50576){var e = e50576; +}catch (e34383){var e = e34383; return e; }})(); -if(cljs.core.truth_(error50574_51194)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",6128,3,new cljs.core.Symbol("cljs.core","map?","cljs.core/map?",-1390345523,null),new cljs.core.Symbol(null,"fixtures-map","fixtures-map",732147048,null),fixtures_map,null,error50574_51194); +if(cljs.core.truth_(error34381_35416)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",6141,3,new cljs.core.Symbol("cljs.core","map?","cljs.core/map?",-1390345523,null),new cljs.core.Symbol(null,"fixtures-map","fixtures-map",732147048,null),fixtures_map,null,error34381_35416); } else { } @@ -9335,7 +9420,7 @@ return fixtures_map; */ taoensso.encore.ITimeoutImpl = function(){}; -var taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_51195 = (function (_,msecs,f){ +var taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_35420 = (function (_,msecs,f){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore._schedule_timeout[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9353,7 +9438,7 @@ taoensso.encore._schedule_timeout = (function taoensso$encore$_schedule_timeout( if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3 == null)))))){ return _.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3(_,msecs,f); } else { -return taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_51195(_,msecs,f); +return taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_35420(_,msecs,f); } }); @@ -9410,7 +9495,7 @@ return (new taoensso.encore.DefaultTimeoutImpl()); */ taoensso.encore.ITimeoutFuture = function(){}; -var taoensso$encore$ITimeoutFuture$tf_state$dyn_51197 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_state$dyn_35426 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_state[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9431,11 +9516,11 @@ taoensso.encore.tf_state = (function taoensso$encore$tf_state(_){ if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_state$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_state$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_state$dyn_51197(_); +return taoensso$encore$ITimeoutFuture$tf_state$dyn_35426(_); } }); -var taoensso$encore$ITimeoutFuture$tf_poll$dyn_51199 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_poll$dyn_35428 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_poll[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9456,11 +9541,11 @@ taoensso.encore.tf_poll = (function taoensso$encore$tf_poll(_){ if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_poll$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_poll$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_poll$dyn_51199(_); +return taoensso$encore$ITimeoutFuture$tf_poll$dyn_35428(_); } }); -var taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_51201 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_35431 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_done_QMARK_[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9481,11 +9566,11 @@ taoensso.encore.tf_done_QMARK_ = (function taoensso$encore$tf_done_QMARK_(_){ if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_51201(_); +return taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_35431(_); } }); -var taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_51202 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_35434 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_pending_QMARK_[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9506,11 +9591,11 @@ taoensso.encore.tf_pending_QMARK_ = (function taoensso$encore$tf_pending_QMARK_( if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_51202(_); +return taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_35434(_); } }); -var taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_51204 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_35438 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9531,11 +9616,11 @@ taoensso.encore.tf_cancelled_QMARK_ = (function taoensso$encore$tf_cancelled_QMA if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_51204(_); +return taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_35438(_); } }); -var taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_51206 = (function (_){ +var taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_35443 = (function (_){ var x__5373__auto__ = (((_ == null))?null:_); var m__5374__auto__ = (taoensso.encore.tf_cancel_BANG_[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -9556,7 +9641,7 @@ taoensso.encore.tf_cancel_BANG_ = (function taoensso$encore$tf_cancel_BANG_(_){ if((((!((_ == null)))) && ((!((_.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1 == null)))))){ return _.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1(_); } else { -return taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_51206(_); +return taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_35443(_); } }); @@ -9658,8 +9743,8 @@ return (x instanceof taoensso.encore.TimeoutFuture); * See `ITimeoutImpl` for extending to arbitrary timer implementations. */ taoensso.encore.call_after_timeout = (function taoensso$encore$call_after_timeout(var_args){ -var G__50584 = arguments.length; -switch (G__50584) { +var G__34391 = arguments.length; +switch (G__34391) { case 2: return taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -9692,8 +9777,8 @@ return cljs.core.deref(result_); return null; } }); -var impl_51213 = cljs.core.force(impl_); -taoensso.encore._schedule_timeout(impl_51213,msecs__$1,cas_f); +var impl_35458 = cljs.core.force(impl_); +taoensso.encore._schedule_timeout(impl_35458,msecs__$1,cas_f); return (new taoensso.encore.TimeoutFuture(f,result__,udt)); })); @@ -9701,50 +9786,50 @@ return (new taoensso.encore.TimeoutFuture(f,result__,udt)); (taoensso.encore.call_after_timeout.cljs$lang$maxFixedArity = 3); taoensso.encore.console_log = (((typeof console !== 'undefined'))?(function() { -var G__51214__delegate = function (xs){ -var b2__43681__auto__ = console.log; -if(cljs.core.truth_(b2__43681__auto__)){ -var f = b2__43681__auto__; +var G__35459__delegate = function (xs){ +var b2__30646__auto__ = console.log; +if(cljs.core.truth_(b2__30646__auto__)){ +var f = b2__30646__auto__; return f.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(xs)); } else { return null; } }; -var G__51214 = function (var_args){ +var G__35459 = function (var_args){ var xs = null; if (arguments.length > 0) { -var G__51217__i = 0, G__51217__a = new Array(arguments.length - 0); -while (G__51217__i < G__51217__a.length) {G__51217__a[G__51217__i] = arguments[G__51217__i + 0]; ++G__51217__i;} - xs = new cljs.core.IndexedSeq(G__51217__a,0,null); +var G__35462__i = 0, G__35462__a = new Array(arguments.length - 0); +while (G__35462__i < G__35462__a.length) {G__35462__a[G__35462__i] = arguments[G__35462__i + 0]; ++G__35462__i;} + xs = new cljs.core.IndexedSeq(G__35462__a,0,null); } -return G__51214__delegate.call(this,xs);}; -G__51214.cljs$lang$maxFixedArity = 0; -G__51214.cljs$lang$applyTo = (function (arglist__51218){ -var xs = cljs.core.seq(arglist__51218); -return G__51214__delegate(xs); -}); -G__51214.cljs$core$IFn$_invoke$arity$variadic = G__51214__delegate; -return G__51214; +return G__35459__delegate.call(this,xs);}; +G__35459.cljs$lang$maxFixedArity = 0; +G__35459.cljs$lang$applyTo = (function (arglist__35464){ +var xs = cljs.core.seq(arglist__35464); +return G__35459__delegate(xs); +}); +G__35459.cljs$core$IFn$_invoke$arity$variadic = G__35459__delegate; +return G__35459; })() :(function() { -var G__51219__delegate = function (xs){ +var G__35465__delegate = function (xs){ return null; }; -var G__51219 = function (var_args){ +var G__35465 = function (var_args){ var xs = null; if (arguments.length > 0) { -var G__51220__i = 0, G__51220__a = new Array(arguments.length - 0); -while (G__51220__i < G__51220__a.length) {G__51220__a[G__51220__i] = arguments[G__51220__i + 0]; ++G__51220__i;} - xs = new cljs.core.IndexedSeq(G__51220__a,0,null); +var G__35466__i = 0, G__35466__a = new Array(arguments.length - 0); +while (G__35466__i < G__35466__a.length) {G__35466__a[G__35466__i] = arguments[G__35466__i + 0]; ++G__35466__i;} + xs = new cljs.core.IndexedSeq(G__35466__a,0,null); } -return G__51219__delegate.call(this,xs);}; -G__51219.cljs$lang$maxFixedArity = 0; -G__51219.cljs$lang$applyTo = (function (arglist__51221){ -var xs = cljs.core.seq(arglist__51221); -return G__51219__delegate(xs); -}); -G__51219.cljs$core$IFn$_invoke$arity$variadic = G__51219__delegate; -return G__51219; +return G__35465__delegate.call(this,xs);}; +G__35465.cljs$lang$maxFixedArity = 0; +G__35465.cljs$lang$applyTo = (function (arglist__35467){ +var xs = cljs.core.seq(arglist__35467); +return G__35465__delegate(xs); +}); +G__35465.cljs$core$IFn$_invoke$arity$variadic = G__35465__delegate; +return G__35465; })() ); @@ -9752,14 +9837,14 @@ taoensso.encore.log = taoensso.encore.console_log; taoensso.encore.logp = (function taoensso$encore$logp(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51222 = arguments.length; -var i__5750__auto___51223 = (0); +var len__5749__auto___35468 = arguments.length; +var i__5750__auto___35469 = (0); while(true){ -if((i__5750__auto___51223 < len__5749__auto___51222)){ -args__5755__auto__.push((arguments[i__5750__auto___51223])); +if((i__5750__auto___35469 < len__5749__auto___35468)){ +args__5755__auto__.push((arguments[i__5750__auto___35469])); -var G__51224 = (i__5750__auto___51223 + (1)); -i__5750__auto___51223 = G__51224; +var G__35470 = (i__5750__auto___35469 + (1)); +i__5750__auto___35469 = G__35470; continue; } else { } @@ -9777,22 +9862,22 @@ return taoensso.encore.console_log(taoensso.encore.str_join.cljs$core$IFn$_invok (taoensso.encore.logp.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ -(taoensso.encore.logp.cljs$lang$applyTo = (function (seq50585){ +(taoensso.encore.logp.cljs$lang$applyTo = (function (seq34392){ var self__5735__auto__ = this; -return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50585)); +return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34392)); })); taoensso.encore.sayp = (function taoensso$encore$sayp(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51226 = arguments.length; -var i__5750__auto___51227 = (0); +var len__5749__auto___35474 = arguments.length; +var i__5750__auto___35475 = (0); while(true){ -if((i__5750__auto___51227 < len__5749__auto___51226)){ -args__5755__auto__.push((arguments[i__5750__auto___51227])); +if((i__5750__auto___35475 < len__5749__auto___35474)){ +args__5755__auto__.push((arguments[i__5750__auto___35475])); -var G__51228 = (i__5750__auto___51227 + (1)); -i__5750__auto___51227 = G__51228; +var G__35476 = (i__5750__auto___35475 + (1)); +i__5750__auto___35475 = G__35476; continue; } else { } @@ -9810,22 +9895,22 @@ return alert(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(" ",cljs.cor (taoensso.encore.sayp.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ -(taoensso.encore.sayp.cljs$lang$applyTo = (function (seq50586){ +(taoensso.encore.sayp.cljs$lang$applyTo = (function (seq34393){ var self__5735__auto__ = this; -return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50586)); +return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34393)); })); taoensso.encore.logf = (function taoensso$encore$logf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51229 = arguments.length; -var i__5750__auto___51230 = (0); +var len__5749__auto___35477 = arguments.length; +var i__5750__auto___35478 = (0); while(true){ -if((i__5750__auto___51230 < len__5749__auto___51229)){ -args__5755__auto__.push((arguments[i__5750__auto___51230])); +if((i__5750__auto___35478 < len__5749__auto___35477)){ +args__5755__auto__.push((arguments[i__5750__auto___35478])); -var G__51231 = (i__5750__auto___51230 + (1)); -i__5750__auto___51230 = G__51231; +var G__35479 = (i__5750__auto___35478 + (1)); +i__5750__auto___35478 = G__35479; continue; } else { } @@ -9843,24 +9928,24 @@ return taoensso.encore.console_log(taoensso.encore.format_STAR_.cljs$core$IFn$_i (taoensso.encore.logf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.logf.cljs$lang$applyTo = (function (seq50587){ -var G__50588 = cljs.core.first(seq50587); -var seq50587__$1 = cljs.core.next(seq50587); +(taoensso.encore.logf.cljs$lang$applyTo = (function (seq34394){ +var G__34395 = cljs.core.first(seq34394); +var seq34394__$1 = cljs.core.next(seq34394); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50588,seq50587__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34395,seq34394__$1); })); taoensso.encore.sayf = (function taoensso$encore$sayf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51233 = arguments.length; -var i__5750__auto___51234 = (0); +var len__5749__auto___35485 = arguments.length; +var i__5750__auto___35486 = (0); while(true){ -if((i__5750__auto___51234 < len__5749__auto___51233)){ -args__5755__auto__.push((arguments[i__5750__auto___51234])); +if((i__5750__auto___35486 < len__5749__auto___35485)){ +args__5755__auto__.push((arguments[i__5750__auto___35486])); -var G__51235 = (i__5750__auto___51234 + (1)); -i__5750__auto___51234 = G__51235; +var G__35487 = (i__5750__auto___35486 + (1)); +i__5750__auto___35486 = G__35487; continue; } else { } @@ -9878,11 +9963,11 @@ return alert(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,xs)) (taoensso.encore.sayf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.sayf.cljs$lang$applyTo = (function (seq50589){ -var G__50590 = cljs.core.first(seq50589); -var seq50589__$1 = cljs.core.next(seq50589); +(taoensso.encore.sayf.cljs$lang$applyTo = (function (seq34396){ +var G__34397 = cljs.core.first(seq34396); +var seq34396__$1 = cljs.core.next(seq34396); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50590,seq50589__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34397,seq34396__$1); })); /** @@ -9890,9 +9975,9 @@ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50590,seq50589 * {:keys [href protocol hostname host pathname search hash]}. */ taoensso.encore.get_win_loc = (function taoensso$encore$get_win_loc(){ -var b2__43681__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,"location"); -if(cljs.core.truth_(b2__43681__auto__)){ -var loc = b2__43681__auto__; +var b2__30646__auto__ = taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,"location"); +if(cljs.core.truth_(b2__30646__auto__)){ +var loc = b2__30646__auto__; return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"href","href",-793805698),loc.href,new cljs.core.Keyword(null,"protocol","protocol",652470118),loc.protocol,new cljs.core.Keyword(null,"hostname","hostname",2105669933),loc.hostname,new cljs.core.Keyword(null,"host","host",-1558485167),loc.host,new cljs.core.Keyword(null,"pathname","pathname",-1420497528),loc.pathname,new cljs.core.Keyword(null,"search","search",1564939822),loc.search,new cljs.core.Keyword(null,"hash","hash",-13781596),loc.hash], null); } else { return null; @@ -9930,36 +10015,36 @@ return (new goog.net.XhrIoPool()); * :abort :http-error :exception :xhr-pool-depleted :bad-edn} * (js/alert (str "Ajax response: " resp-map))))) */ -taoensso.encore.ajax_call = (function taoensso$encore$ajax_call(url,p__50592,callback_fn){ -var map__50593 = p__50592; -var map__50593__$1 = cljs.core.__destructure_map(map__50593); -var opts = map__50593__$1; -var resp_type = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,"resp-type","resp-type",1050675962),new cljs.core.Keyword(null,"auto","auto",-566279492)); -var xhr_pool = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,"xhr-pool","xhr-pool",1499305499),taoensso.encore.default_xhr_pool_); -var body = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,"body","body",-2049205669)); -var timeout_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,"timeout-ms","timeout-ms",754221406),(10000)); -var xhr_timeout_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,"xhr-timeout-ms","xhr-timeout-ms",89157982),(2500)); -var method = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"get","get",1683182755)); -var xhr_cb_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,"xhr-cb-fn","xhr-cb-fn",1569050954)); -var params = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,"params","params",710516235)); -var headers = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,"headers","headers",-835030129)); -var with_credentials_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,"with-credentials?","with-credentials?",-1773202222)); -var error50599_51237 = (function (){try{if(cljs.core.truth_((function (arg50594){ -if((arg50594 == null)){ +taoensso.encore.ajax_call = (function taoensso$encore$ajax_call(url,p__34399,callback_fn){ +var map__34400 = p__34399; +var map__34400__$1 = cljs.core.__destructure_map(map__34400); +var opts = map__34400__$1; +var resp_type = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,"resp-type","resp-type",1050675962),new cljs.core.Keyword(null,"auto","auto",-566279492)); +var xhr_pool = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,"xhr-pool","xhr-pool",1499305499),taoensso.encore.default_xhr_pool_); +var body = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,"body","body",-2049205669)); +var timeout_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,"timeout-ms","timeout-ms",754221406),(10000)); +var xhr_timeout_ms = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,"xhr-timeout-ms","xhr-timeout-ms",89157982),(2500)); +var method = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"get","get",1683182755)); +var xhr_cb_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,"xhr-cb-fn","xhr-cb-fn",1569050954)); +var params = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,"params","params",710516235)); +var headers = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,"headers","headers",-835030129)); +var with_credentials_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,"with-credentials?","with-credentials?",-1773202222)); +var error34406_35501 = (function (){try{if(cljs.core.truth_((function (arg34401){ +if((arg34401 == null)){ return true; } else { -return taoensso.encore.nat_int_QMARK_(arg50594); +return taoensso.encore.nat_int_QMARK_(arg34401); } })(timeout_ms))){ return null; } else { return taoensso.truss.impl.FalsePredError; } -}catch (e50601){var e = e50601; +}catch (e34408){var e = e34408; return e; }})(); -if(cljs.core.truth_(error50599_51237)){ -taoensso.truss.failed_assertion_BANG_("taoensso.encore",6401,13,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"or","or",235744169),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"nat-int?","nat-int?",-1879663400,null)], null),new cljs.core.Symbol(null,"timeout-ms","timeout-ms",-1900214363,null),timeout_ms,null,error50599_51237); +if(cljs.core.truth_(error34406_35501)){ +taoensso.truss.failed_assertion_BANG_("taoensso.encore",6414,13,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"or","or",235744169),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"nat-int?","nat-int?",-1879663400,null)], null),new cljs.core.Symbol(null,"timeout-ms","timeout-ms",-1900214363,null),timeout_ms,null,error34406_35501); } else { } @@ -9972,29 +10057,29 @@ return or__5025__auto__; return timeout_ms; } })(); -var map__50604 = (((function (){var G__50605 = method; -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"get","get",1683182755),G__50605)){ +var map__34411 = (((function (){var G__34412 = method; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"get","get",1683182755),G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"head","head",-771383919),G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"head","head",-771383919),G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"options","options",99638489),G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"options","options",99638489),G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"trace","trace",-1082747415),G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"trace","trace",-1082747415),G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("GET",G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("GET",G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("HEAD",G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("HEAD",G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("OPTIONS",G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("OPTIONS",G__34412)){ return true; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("TRACE",G__50605)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("TRACE",G__34412)){ return true; } else { return false; @@ -10016,57 +10101,57 @@ return (v instanceof Blob); return and__5023__auto__; } })())?(function (){var form_data = (new FormData()); -var seq__50606_51248 = cljs.core.seq(params); -var chunk__50607_51249 = null; -var count__50608_51250 = (0); -var i__50609_51251 = (0); +var seq__34413_35509 = cljs.core.seq(params); +var chunk__34414_35510 = null; +var count__34415_35511 = (0); +var i__34416_35512 = (0); while(true){ -if((i__50609_51251 < count__50608_51250)){ -var vec__50616_51252 = chunk__50607_51249.cljs$core$IIndexed$_nth$arity$2(null,i__50609_51251); -var k_51253 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50616_51252,(0),null); -var v_51254 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50616_51252,(1),null); -form_data.append(cljs.core.name(k_51253),v_51254); - - -var G__51255 = seq__50606_51248; -var G__51256 = chunk__50607_51249; -var G__51257 = count__50608_51250; -var G__51258 = (i__50609_51251 + (1)); -seq__50606_51248 = G__51255; -chunk__50607_51249 = G__51256; -count__50608_51250 = G__51257; -i__50609_51251 = G__51258; +if((i__34416_35512 < count__34415_35511)){ +var vec__34423_35513 = chunk__34414_35510.cljs$core$IIndexed$_nth$arity$2(null,i__34416_35512); +var k_35514 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34423_35513,(0),null); +var v_35515 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34423_35513,(1),null); +form_data.append(cljs.core.name(k_35514),v_35515); + + +var G__35516 = seq__34413_35509; +var G__35517 = chunk__34414_35510; +var G__35518 = count__34415_35511; +var G__35519 = (i__34416_35512 + (1)); +seq__34413_35509 = G__35516; +chunk__34414_35510 = G__35517; +count__34415_35511 = G__35518; +i__34416_35512 = G__35519; continue; } else { -var temp__5825__auto___51259 = cljs.core.seq(seq__50606_51248); -if(temp__5825__auto___51259){ -var seq__50606_51260__$1 = temp__5825__auto___51259; -if(cljs.core.chunked_seq_QMARK_(seq__50606_51260__$1)){ -var c__5548__auto___51261 = cljs.core.chunk_first(seq__50606_51260__$1); -var G__51262 = cljs.core.chunk_rest(seq__50606_51260__$1); -var G__51263 = c__5548__auto___51261; -var G__51264 = cljs.core.count(c__5548__auto___51261); -var G__51265 = (0); -seq__50606_51248 = G__51262; -chunk__50607_51249 = G__51263; -count__50608_51250 = G__51264; -i__50609_51251 = G__51265; +var temp__5825__auto___35520 = cljs.core.seq(seq__34413_35509); +if(temp__5825__auto___35520){ +var seq__34413_35522__$1 = temp__5825__auto___35520; +if(cljs.core.chunked_seq_QMARK_(seq__34413_35522__$1)){ +var c__5548__auto___35529 = cljs.core.chunk_first(seq__34413_35522__$1); +var G__35530 = cljs.core.chunk_rest(seq__34413_35522__$1); +var G__35531 = c__5548__auto___35529; +var G__35532 = cljs.core.count(c__5548__auto___35529); +var G__35533 = (0); +seq__34413_35509 = G__35530; +chunk__34414_35510 = G__35531; +count__34415_35511 = G__35532; +i__34416_35512 = G__35533; continue; } else { -var vec__50619_51266 = cljs.core.first(seq__50606_51260__$1); -var k_51267 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50619_51266,(0),null); -var v_51268 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50619_51266,(1),null); -form_data.append(cljs.core.name(k_51267),v_51268); +var vec__34426_35535 = cljs.core.first(seq__34413_35522__$1); +var k_35536 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34426_35535,(0),null); +var v_35537 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34426_35535,(1),null); +form_data.append(cljs.core.name(k_35536),v_35537); -var G__51269 = cljs.core.next(seq__50606_51260__$1); -var G__51270 = null; -var G__51271 = (0); -var G__51272 = (0); -seq__50606_51248 = G__51269; -chunk__50607_51249 = G__51270; -count__50608_51250 = G__51271; -i__50609_51251 = G__51272; +var G__35539 = cljs.core.next(seq__34413_35522__$1); +var G__35540 = null; +var G__35541 = (0); +var G__35542 = (0); +seq__34413_35509 = G__35539; +chunk__34414_35510 = G__35540; +count__34415_35511 = G__35541; +i__34416_35512 = G__35542; continue; } } else { @@ -10077,18 +10162,18 @@ break; return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"content","content",15833224),form_data], null); })():new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"content","content",15833224),cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params))),new cljs.core.Keyword(null,"content-type","content-type",-508222634),"application/x-www-form-urlencoded;charset=UTF-8"], null))))); -var map__50604__$1 = cljs.core.__destructure_map(map__50604); -var url_PLUS_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,"url+","url+",185078960)); -var content = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,"content","content",15833224)); -var content_type = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,"content-type","content-type",-508222634)); -var headers__$1 = taoensso.encore.map_keys((function (p1__50591_SHARP_){ -return clojure.string.lower_case(cljs.core.name(p1__50591_SHARP_)); +var map__34411__$1 = cljs.core.__destructure_map(map__34411); +var url_PLUS_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,"url+","url+",185078960)); +var content = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,"content","content",15833224)); +var content_type = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,"content-type","content-type",-508222634)); +var headers__$1 = taoensso.encore.map_keys((function (p1__34398_SHARP_){ +return clojure.string.lower_case(cljs.core.name(p1__34398_SHARP_)); }),headers); var headers__$2 = taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$1,"x-requested-with",cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$1,"x-requested-with","XMLHTTPRequest")); var headers__$3 = taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$2,"content-type",cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$2,"content-type",content_type)); -var progress_listener = (function (){var b2__43681__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,"progress-fn","progress-fn",-1146547855)); -if(cljs.core.truth_(b2__43681__auto__)){ -var pf = b2__43681__auto__; +var progress_listener = (function (){var b2__30646__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,"progress-fn","progress-fn",-1146547855)); +if(cljs.core.truth_(b2__30646__auto__)){ +var pf = b2__30646__auto__; xhr.setProgressEventsEnabled(true); return goog.events.listen(xhr,goog.net.EventType.PROGRESS,(function (ev){ @@ -10102,8 +10187,8 @@ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(total,(0)); return and__5023__auto__; } })())?(loaded / total):null); -var G__50622 = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"length-computable?","length-computable?",1915473276),length_computable_QMARK_,new cljs.core.Keyword(null,"?ratio","?ratio",-1275760831),_QMARK_ratio,new cljs.core.Keyword(null,"loaded","loaded",-1246482293),loaded,new cljs.core.Keyword(null,"total","total",1916810418),total,new cljs.core.Keyword(null,"ev","ev",-406827324),ev], null); -return (pf.cljs$core$IFn$_invoke$arity$1 ? pf.cljs$core$IFn$_invoke$arity$1(G__50622) : pf.call(null,G__50622)); +var G__34429 = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"length-computable?","length-computable?",1915473276),length_computable_QMARK_,new cljs.core.Keyword(null,"?ratio","?ratio",-1275760831),_QMARK_ratio,new cljs.core.Keyword(null,"loaded","loaded",-1246482293),loaded,new cljs.core.Keyword(null,"total","total",1916810418),total,new cljs.core.Keyword(null,"ev","ev",-406827324),ev], null); +return (pf.cljs$core$IFn$_invoke$arity$1 ? pf.cljs$core$IFn$_invoke$arity$1(G__34429) : pf.call(null,G__34429)); })); } else { return null; @@ -10116,7 +10201,7 @@ return xhr_pool__$1.releaseObject(xhr); goog.events.listenOnce(xhr,goog.net.EventType.COMPLETE,(function taoensso$encore$ajax_call_$_wrapped_callback(resp){ var success_QMARK_ = xhr.isSuccess(); var status = xhr.getStatus(); -var vec__50623 = ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(status,(-1)))?(function (){var content_type__$1 = xhr.getResponseHeader("content-type"); +var vec__34430 = ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(status,(-1)))?(function (){var content_type__$1 = xhr.getResponseHeader("content-type"); var resp_type__$1 = ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(resp_type,new cljs.core.Keyword(null,"auto","auto",-566279492)))?resp_type:(((content_type__$1 == null))?new cljs.core.Keyword(null,"text","text",-1790561697):(function (){var ct = clojure.string.lower_case(content_type__$1); if(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,"/edn"))){ return new cljs.core.Keyword(null,"edn","edn",1317840885); @@ -10132,9 +10217,9 @@ return new cljs.core.Keyword(null,"text","text",-1790561697); } } })())); -var vec__50626 = (function (){var G__50629 = resp_type__$1; -var G__50629__$1 = (((G__50629 instanceof cljs.core.Keyword))?G__50629.fqn:null); -switch (G__50629__$1) { +var vec__34433 = (function (){var G__34436 = resp_type__$1; +var G__34436__$1 = (((G__34436 instanceof cljs.core.Keyword))?G__34436.fqn:null); +switch (G__34436__$1) { case "text": return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseText()], null); @@ -10148,11 +10233,11 @@ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMP break; case "edn": -var b2__43681__auto__ = xhr.getResponseText(); -if(cljs.core.truth_(b2__43681__auto__)){ -var edn = b2__43681__auto__; +var b2__30646__auto__ = xhr.getResponseText(); +if(cljs.core.truth_(b2__30646__auto__)){ +var edn = b2__30646__auto__; try{return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1(edn)], null); -}catch (e50630){var _ = e50630; +}catch (e34437){var _ = e34437; return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [edn,new cljs.core.Keyword(null,"bad-edn","bad-edn",1465533855)], null); }} else { return null; @@ -10164,14 +10249,14 @@ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMP } })(); -var content__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50626,(0),null); -var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50626,(1),null); +var content__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34433,(0),null); +var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34433,(1),null); return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [status,content_type__$1,content__$1,error], null); })():null); -var status__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(0),null); -var content_type__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(1),null); -var content__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(2),null); -var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(3),null); +var status__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(0),null); +var content_type__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(1),null); +var content__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(2),null); +var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(3),null); var success_QMARK___$1 = (function (){var and__5023__auto__ = success_QMARK_; if(cljs.core.truth_(and__5023__auto__)){ return cljs.core.not(error); @@ -10184,20 +10269,20 @@ goog.events.unlistenByKey(progress_listener); } else { } -var G__50631 = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"raw-resp","raw-resp",-1924342506),resp,new cljs.core.Keyword(null,"xhr","xhr",-177710851),xhr,new cljs.core.Keyword(null,"success?","success?",-122854052),success_QMARK___$1,new cljs.core.Keyword(null,"?status","?status",938730360),status__$1,new cljs.core.Keyword(null,"?content-type","?content-type",-2129759049),content_type__$1,new cljs.core.Keyword(null,"?content","?content",1697782054),content__$1,new cljs.core.Keyword(null,"?error","?error",1070752222),(cljs.core.truth_(success_QMARK___$1)?null:(cljs.core.truth_(error)?error:(cljs.core.truth_(status__$1)?status__$1:(function (){var G__50632 = xhr.getLastErrorCode(); -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","NO_ERROR","goog.net.ErrorCode/NO_ERROR",-376372140,null),G__50632)){ +var G__34438 = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"raw-resp","raw-resp",-1924342506),resp,new cljs.core.Keyword(null,"xhr","xhr",-177710851),xhr,new cljs.core.Keyword(null,"success?","success?",-122854052),success_QMARK___$1,new cljs.core.Keyword(null,"?status","?status",938730360),status__$1,new cljs.core.Keyword(null,"?content-type","?content-type",-2129759049),content_type__$1,new cljs.core.Keyword(null,"?content","?content",1697782054),content__$1,new cljs.core.Keyword(null,"?error","?error",1070752222),(cljs.core.truth_(success_QMARK___$1)?null:(cljs.core.truth_(error)?error:(cljs.core.truth_(status__$1)?status__$1:(function (){var G__34439 = xhr.getLastErrorCode(); +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","NO_ERROR","goog.net.ErrorCode/NO_ERROR",-376372140,null),G__34439)){ return null; } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","EXCEPTION","goog.net.ErrorCode/EXCEPTION",-1644416342,null),G__50632)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","EXCEPTION","goog.net.ErrorCode/EXCEPTION",-1644416342,null),G__34439)){ return new cljs.core.Keyword(null,"exception","exception",-335277064); } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","HTTP_ERROR","goog.net.ErrorCode/HTTP_ERROR",1765210984,null),G__50632)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","HTTP_ERROR","goog.net.ErrorCode/HTTP_ERROR",1765210984,null),G__34439)){ return new cljs.core.Keyword(null,"http-error","http-error",-1040049553); } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","ABORT","goog.net.ErrorCode/ABORT",-1128881702,null),G__50632)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","ABORT","goog.net.ErrorCode/ABORT",-1128881702,null),G__34439)){ return new cljs.core.Keyword(null,"abort","abort",521193198); } else { -if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","TIMEOUT","goog.net.ErrorCode/TIMEOUT",2036132238,null),G__50632)){ +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("goog.net.ErrorCode","TIMEOUT","goog.net.ErrorCode/TIMEOUT",2036132238,null),G__34439)){ return new cljs.core.Keyword(null,"timeout","timeout",-318625318); } else { return new cljs.core.Keyword(null,"unknown","unknown",-935977881); @@ -10208,7 +10293,7 @@ return new cljs.core.Keyword(null,"unknown","unknown",-935977881); } } })())))], null); -return (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50631) : callback_fn.call(null,G__50631)); +return (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34438) : callback_fn.call(null,G__34438)); })); xhr.setTimeoutInterval((function (){var or__5025__auto__ = timeout_ms__$1; @@ -10219,42 +10304,44 @@ return (0); } })()); -if(cljs.core.truth_(with_credentials_QMARK_)){ -xhr.setWithCredentials(true); -} else { -} - -var G__50633_51276 = resp_type; -var G__50633_51277__$1 = (((G__50633_51276 instanceof cljs.core.Keyword))?G__50633_51276.fqn:null); -switch (G__50633_51277__$1) { -case "auto": -case "text": -case "edn": - -break; -case "json": -xhr.setResponseType("json"); +xhr.setWithCredentials(cljs.core.boolean$(with_credentials_QMARK_)); -break; -case "xml": -xhr.setResponseType("document"); - -break; -case "bin/array-buffer": -xhr.setResponseType("arraybuffer"); - -break; -case "bin/blob": -xhr.setResponseType("blob"); - -break; -default: -if(cljs.core.truth_(resp_type)){ -xhr.setResponseType(resp_type); +xhr.setResponseType((function (){var G__34440 = resp_type; +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"auto","auto",-566279492),G__34440)){ +return ""; } else { -} +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__34440)){ +return ""; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"text","text",-1790561697),G__34440)){ +return "text"; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"edn","edn",1317840885),G__34440)){ +return "text"; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"json","json",1279968570),G__34440)){ +return "json"; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"xml","xml",-1170142052),G__34440)){ +return "document"; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("bin","array-buffer","bin/array-buffer",519107969),G__34440)){ +return "arraybuffer"; +} else { +if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("bin","blob","bin/blob",1636652666),G__34440)){ +return "blob"; +} else { +return resp_type; } +} +} +} +} +} +} +} +})()); xhr.send((function (){var or__5025__auto__ = url_PLUS_; if(cljs.core.truth_(or__5025__auto__)){ @@ -10264,26 +10351,26 @@ return url; } })(),cljs.core.name(method),content,cljs.core.clj__GT_js(headers__$3)); -var b2__43681__auto___51279 = xhr_cb_fn; -if(cljs.core.truth_(b2__43681__auto___51279)){ -var cb_51280 = b2__43681__auto___51279; -try{(cb_51280.cljs$core$IFn$_invoke$arity$1 ? cb_51280.cljs$core$IFn$_invoke$arity$1(xhr) : cb_51280.call(null,xhr)); -}catch (e50634){var __51281 = e50634; +var b2__30646__auto___35572 = xhr_cb_fn; +if(cljs.core.truth_(b2__30646__auto___35572)){ +var cb_35573 = b2__30646__auto___35572; +try{(cb_35573.cljs$core$IFn$_invoke$arity$1 ? cb_35573.cljs$core$IFn$_invoke$arity$1(xhr) : cb_35573.call(null,xhr)); +}catch (e34441){var __35574 = e34441; }} else { } return xhr; -}catch (e50602){var e = e50602; +}catch (e34409){var e = e34409; xhr_pool__$1.releaseObject(xhr); -var G__50603_51282 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),e], null); -(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50603_51282) : callback_fn.call(null,G__50603_51282)); +var G__34410_35576 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),e], null); +(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34410_35576) : callback_fn.call(null,G__34410_35576)); return null; }}); -var b2__43681__auto__ = xhr_pool__$1.getObject(); -if(cljs.core.truth_(b2__43681__auto__)){ -var xhr = b2__43681__auto__; +var b2__30646__auto__ = xhr_pool__$1.getObject(); +if(cljs.core.truth_(b2__30646__auto__)){ +var xhr = b2__30646__auto__; return with_xhr(xhr); } else { if(((function (){var or__5025__auto__ = xhr_timeout_ms; @@ -10293,16 +10380,16 @@ return or__5025__auto__; return (0); } })() === (0))){ -var G__50635_51283 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),new cljs.core.Keyword(null,"xhr-pool-depleted","xhr-pool-depleted",-1812092376)], null); -(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50635_51283) : callback_fn.call(null,G__50635_51283)); +var G__34442_35578 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),new cljs.core.Keyword(null,"xhr-pool-depleted","xhr-pool-depleted",-1812092376)], null); +(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34442_35578) : callback_fn.call(null,G__34442_35578)); return null; } else { var done_QMARK__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false); setTimeout((function taoensso$encore$ajax_call_$_xhr_timeout(){ if(cljs.core.compare_and_set_BANG_(done_QMARK__,false,true)){ -var G__50636 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),new cljs.core.Keyword(null,"xhr-pool-timeout","xhr-pool-timeout",-70669609)], null); -return (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50636) : callback_fn.call(null,G__50636)); +var G__34443 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"?error","?error",1070752222),new cljs.core.Keyword(null,"xhr-pool-timeout","xhr-pool-timeout",-70669609)], null); +return (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34443) : callback_fn.call(null,G__34443)); } else { return null; } @@ -10335,14 +10422,14 @@ return null; */ taoensso.encore.url_decode = (function taoensso$encore$url_decode(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51286 = arguments.length; -var i__5750__auto___51287 = (0); +var len__5749__auto___35587 = arguments.length; +var i__5750__auto___35588 = (0); while(true){ -if((i__5750__auto___51287 < len__5749__auto___51286)){ -args__5755__auto__.push((arguments[i__5750__auto___51287])); +if((i__5750__auto___35588 < len__5749__auto___35587)){ +args__5755__auto__.push((arguments[i__5750__auto___35588])); -var G__51288 = (i__5750__auto___51287 + (1)); -i__5750__auto___51287 = G__51288; +var G__35590 = (i__5750__auto___35588 + (1)); +i__5750__auto___35588 = G__35590; continue; } else { } @@ -10353,9 +10440,9 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic = (function (s,p__50639){ -var vec__50640 = p__50639; -var encoding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50640,(0),null); +(taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic = (function (s,p__34446){ +var vec__34447 = p__34446; +var encoding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34447,(0),null); if(cljs.core.truth_(s)){ return decodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)); } else { @@ -10366,11 +10453,11 @@ return null; (taoensso.encore.url_decode.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.url_decode.cljs$lang$applyTo = (function (seq50637){ -var G__50638 = cljs.core.first(seq50637); -var seq50637__$1 = cljs.core.next(seq50637); +(taoensso.encore.url_decode.cljs$lang$applyTo = (function (seq34444){ +var G__34445 = cljs.core.first(seq34444); +var seq34444__$1 = cljs.core.next(seq34444); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50638,seq50637__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34445,seq34444__$1); })); taoensso.encore.format_query_string = (function taoensso$encore$format_query_string(m){ @@ -10389,25 +10476,25 @@ return clojure.string.join.cljs$core$IFn$_invoke$arity$2("&",strs); if(cljs.core.empty_QMARK_(m)){ return ""; } else { -return join((function (){var iter__5503__auto__ = (function taoensso$encore$format_query_string_$_iter__50643(s__50644){ +return join((function (){var iter__5503__auto__ = (function taoensso$encore$format_query_string_$_iter__34450(s__34451){ return (new cljs.core.LazySeq(null,(function (){ -var s__50644__$1 = s__50644; +var s__34451__$1 = s__34451; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__50644__$1); +var temp__5825__auto__ = cljs.core.seq(s__34451__$1); if(temp__5825__auto__){ -var s__50644__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__50644__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__50644__$2); +var s__34451__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__34451__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__34451__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__50646 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__50645 = (0); +var b__34453 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__34452 = (0); while(true){ -if((i__50645 < size__5502__auto__)){ -var vec__50647 = cljs.core._nth(c__5501__auto__,i__50645); -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50647,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50647,(1),null); +if((i__34452 < size__5502__auto__)){ +var vec__34454 = cljs.core._nth(c__5501__auto__,i__34452); +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34454,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34454,(1),null); if((!((v == null)))){ -cljs.core.chunk_append(b__50646,((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ = cljs.core.seq(v); +cljs.core.chunk_append(b__34453,((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ = cljs.core.seq(v); if(or__5025__auto__){ return or__5025__auto__; } else { @@ -10415,12 +10502,12 @@ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMP } })())):param(k,v))); -var G__51301 = (i__50645 + (1)); -i__50645 = G__51301; +var G__35597 = (i__34452 + (1)); +i__34452 = G__35597; continue; } else { -var G__51302 = (i__50645 + (1)); -i__50645 = G__51302; +var G__35598 = (i__34452 + (1)); +i__34452 = G__35598; continue; } } else { @@ -10429,14 +10516,14 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__50646),taoensso$encore$format_query_string_$_iter__50643(cljs.core.chunk_rest(s__50644__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__34453),taoensso$encore$format_query_string_$_iter__34450(cljs.core.chunk_rest(s__34451__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__50646),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__34453),null); } } else { -var vec__50650 = cljs.core.first(s__50644__$2); -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50650,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50650,(1),null); +var vec__34457 = cljs.core.first(s__34451__$2); +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34457,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34457,(1),null); if((!((v == null)))){ return cljs.core.cons(((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ = cljs.core.seq(v); if(or__5025__auto__){ @@ -10444,10 +10531,10 @@ return or__5025__auto__; } else { return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [""], null); } -})())):param(k,v)),taoensso$encore$format_query_string_$_iter__50643(cljs.core.rest(s__50644__$2))); +})())):param(k,v)),taoensso$encore$format_query_string_$_iter__34450(cljs.core.rest(s__34451__$2))); } else { -var G__51305 = cljs.core.rest(s__50644__$2); -s__50644__$1 = G__51305; +var G__35599 = cljs.core.rest(s__34451__$2); +s__34451__$1 = G__35599; continue; } } @@ -10463,9 +10550,9 @@ return iter__5503__auto__(m); } }); taoensso.encore.assoc_conj = (function taoensso$encore$assoc_conj(m,k,v){ -return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var b2__43681__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k); -if(cljs.core.truth_(b2__43681__auto__)){ -var cur = b2__43681__auto__; +return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var b2__30646__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k); +if(cljs.core.truth_(b2__30646__auto__)){ +var cur = b2__30646__auto__; if(cljs.core.vector_QMARK_(cur)){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cur,v); } else { @@ -10481,14 +10568,14 @@ return v; */ taoensso.encore.parse_query_params = (function taoensso$encore$parse_query_params(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51308 = arguments.length; -var i__5750__auto___51309 = (0); +var len__5749__auto___35600 = arguments.length; +var i__5750__auto___35601 = (0); while(true){ -if((i__5750__auto___51309 < len__5749__auto___51308)){ -args__5755__auto__.push((arguments[i__5750__auto___51309])); +if((i__5750__auto___35601 < len__5749__auto___35600)){ +args__5755__auto__.push((arguments[i__5750__auto___35601])); -var G__51310 = (i__5750__auto___51309 + (1)); -i__5750__auto___51309 = G__51310; +var G__35602 = (i__5750__auto___35601 + (1)); +i__5750__auto___35601 = G__35602; continue; } else { } @@ -10499,20 +10586,20 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic = (function (s,p__50655){ -var vec__50656 = p__50655; -var keywordize_QMARK_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50656,(0),null); -var encoding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50656,(1),null); +(taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic = (function (s,p__34462){ +var vec__34463 = p__34462; +var keywordize_QMARK_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34463,(0),null); +var encoding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34463,(1),null); if(((clojure.string.blank_QMARK_(s)) || (cljs.core.not(taoensso.encore.str_contains_QMARK_(s,"="))))){ return cljs.core.PersistentArrayMap.EMPTY; } else { var s__$1 = (cljs.core.truth_(taoensso.encore.str_starts_with_QMARK_(s,"?"))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(1)):s); var m = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,param){ -var b2__43681__auto__ = clojure.string.split.cljs$core$IFn$_invoke$arity$3(param,/=/,(2)); -if(cljs.core.truth_(b2__43681__auto__)){ -var vec__50659 = b2__43681__auto__; -var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50659,(0),null); -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50659,(1),null); +var b2__30646__auto__ = clojure.string.split.cljs$core$IFn$_invoke$arity$3(param,/=/,(2)); +if(cljs.core.truth_(b2__30646__auto__)){ +var vec__34466 = b2__30646__auto__; +var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34466,(0),null); +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34466,(1),null); return taoensso.encore.assoc_conj(m,taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(k,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0)),taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(v,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0))); } else { return m; @@ -10529,22 +10616,22 @@ return m; (taoensso.encore.parse_query_params.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.parse_query_params.cljs$lang$applyTo = (function (seq50653){ -var G__50654 = cljs.core.first(seq50653); -var seq50653__$1 = cljs.core.next(seq50653); +(taoensso.encore.parse_query_params.cljs$lang$applyTo = (function (seq34460){ +var G__34461 = cljs.core.first(seq34460); +var seq34460__$1 = cljs.core.next(seq34460); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50654,seq50653__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34461,seq34460__$1); })); taoensso.encore.merge_url_with_query_string = (function taoensso$encore$merge_url_with_query_string(url,m){ -var vec__50662 = clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),/\?/,(2)); -var url__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50662,(0),null); -var _QMARK_qstr = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50662,(1),null); +var vec__34469 = clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),/\?/,(2)); +var url__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34469,(0),null); +var _QMARK_qstr = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34469,(1),null); var qmap = taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(_QMARK_qstr)?taoensso.encore.map_keys(cljs.core.keyword,taoensso.encore.parse_query_params(_QMARK_qstr)):null),taoensso.encore.map_keys(cljs.core.keyword,m)); var _QMARK_qstr__$1 = taoensso.encore.as__QMARK_nblank(taoensso.encore.format_query_string(qmap)); -var b2__43681__auto__ = _QMARK_qstr__$1; -if(cljs.core.truth_(b2__43681__auto__)){ -var qstr = b2__43681__auto__; +var b2__30646__auto__ = _QMARK_qstr__$1; +if(cljs.core.truth_(b2__30646__auto__)){ +var qstr = b2__30646__auto__; return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(url__$1),"?",qstr].join(''); } else { return url__$1; @@ -10560,8 +10647,8 @@ return JSON.stringify(cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic( * Reads given JSON string to return a Cljs value. */ taoensso.encore.read_json = (function taoensso$encore$read_json(var_args){ -var G__50666 = arguments.length; -switch (G__50666) { +var G__34473 = arguments.length; +switch (G__34473) { case 1: return taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -10591,7 +10678,7 @@ return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(JSON.parse(s),c return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(JSON.parse(s)); } } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6751,9], null),"[encore/read-json] Unexpected arg type (expected string or nil)",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),s,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(s)], null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6764,9], null),"[encore/read-json] Unexpected arg type (expected string or nil)",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),s,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(s)], null)], null),null); } } })); @@ -10605,8 +10692,8 @@ throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVec taoensso.encore._swap_val_BANG_ = (function taoensso$encore$_swap_val_BANG_(atom_,k,f){ while(true){ var m0 = cljs.core.deref(atom_); -var v1 = (function (){var G__50674 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m0,k); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__50674) : f.call(null,G__50674)); +var v1 = (function (){var G__34481 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m0,k); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__34481) : f.call(null,G__34481)); })(); var m1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1); if(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){ @@ -10716,12 +10803,12 @@ taoensso.encore.as__QMARK_pval = taoensso.encore.as__QMARK_pnum; taoensso.encore.as_pval = taoensso.encore.as_pnum; -var nolist_QMARK__51358 = (function (p1__50667_SHARP_){ -return cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.createAsIfByAssoc([null,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY]),p1__50667_SHARP_); +var nolist_QMARK__35608 = (function (p1__34474_SHARP_){ +return cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.createAsIfByAssoc([null,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY]),p1__34474_SHARP_); }); taoensso.encore.compile_ns_filter = (function taoensso$encore$compile_ns_filter(var_args){ -var G__50676 = arguments.length; -switch (G__50676) { +var G__34483 = arguments.length; +switch (G__34483) { case 1: return taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -10741,7 +10828,7 @@ return taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2(ns_patter })); (taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2 = (function (whitelist,blacklist){ -if(((nolist_QMARK__51358(whitelist)) && (nolist_QMARK__51358(blacklist)))){ +if(((nolist_QMARK__35608(whitelist)) && (nolist_QMARK__35608(blacklist)))){ return (function (_){ return true; }); @@ -10770,8 +10857,8 @@ return clojure.string.join.cljs$core$IFn$_invoke$arity$2(" ",cljs.core.mapv.cljs }); taoensso.encore.approx_EQ_ = (function taoensso$encore$approx_EQ_(var_args){ -var G__50678 = arguments.length; -switch (G__50678) { +var G__34485 = arguments.length; +switch (G__34485) { case 2: return taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -10799,14 +10886,14 @@ return taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3(signf,x,y); taoensso.encore.join_once = (function taoensso$encore$join_once(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51369 = arguments.length; -var i__5750__auto___51370 = (0); +var len__5749__auto___35613 = arguments.length; +var i__5750__auto___35614 = (0); while(true){ -if((i__5750__auto___51370 < len__5749__auto___51369)){ -args__5755__auto__.push((arguments[i__5750__auto___51370])); +if((i__5750__auto___35614 < len__5749__auto___35613)){ +args__5755__auto__.push((arguments[i__5750__auto___35614])); -var G__51371 = (i__5750__auto___51370 + (1)); -i__5750__auto___51370 = G__51371; +var G__35615 = (i__5750__auto___35614 + (1)); +i__5750__auto___35614 = G__35615; continue; } else { } @@ -10824,11 +10911,11 @@ return taoensso.encore.str_join_once(sep,coll); (taoensso.encore.join_once.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.join_once.cljs$lang$applyTo = (function (seq50679){ -var G__50680 = cljs.core.first(seq50679); -var seq50679__$1 = cljs.core.next(seq50679); +(taoensso.encore.join_once.cljs$lang$applyTo = (function (seq34486){ +var G__34487 = cljs.core.first(seq34486); +var seq34486__$1 = cljs.core.next(seq34486); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50680,seq50679__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34487,seq34486__$1); })); @@ -10856,14 +10943,14 @@ taoensso.encore.logging_level = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new taoensso.encore.set_exp_backoff_timeout_BANG_ = (function taoensso$encore$set_exp_backoff_timeout_BANG_(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51372 = arguments.length; -var i__5750__auto___51374 = (0); +var len__5749__auto___35616 = arguments.length; +var i__5750__auto___35617 = (0); while(true){ -if((i__5750__auto___51374 < len__5749__auto___51372)){ -args__5755__auto__.push((arguments[i__5750__auto___51374])); +if((i__5750__auto___35617 < len__5749__auto___35616)){ +args__5755__auto__.push((arguments[i__5750__auto___35617])); -var G__51376 = (i__5750__auto___51374 + (1)); -i__5750__auto___51374 = G__51376; +var G__35618 = (i__5750__auto___35617 + (1)); +i__5750__auto___35617 = G__35618; continue; } else { } @@ -10874,9 +10961,9 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (nullary_f,p__50683){ -var vec__50684 = p__50683; -var nattempt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50684,(0),null); +(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (nullary_f,p__34490){ +var vec__34491 = p__34490; +var nattempt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34491,(0),null); return setTimeout(nullary_f,taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ = nattempt; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; @@ -10889,11 +10976,11 @@ return (0); (taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$applyTo = (function (seq50681){ -var G__50682 = cljs.core.first(seq50681); -var seq50681__$1 = cljs.core.next(seq50681); +(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$applyTo = (function (seq34488){ +var G__34489 = cljs.core.first(seq34488); +var seq34488__$1 = cljs.core.next(seq34488); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50682,seq50681__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34489,seq34488__$1); })); @@ -10910,14 +10997,14 @@ return ((__GT_n.cljs$core$IFn$_invoke$arity$1 ? __GT_n.cljs$core$IFn$_invoke$ari taoensso.encore.tracef = (function taoensso$encore$tracef(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51378 = arguments.length; -var i__5750__auto___51380 = (0); +var len__5749__auto___35620 = arguments.length; +var i__5750__auto___35621 = (0); while(true){ -if((i__5750__auto___51380 < len__5749__auto___51378)){ -args__5755__auto__.push((arguments[i__5750__auto___51380])); +if((i__5750__auto___35621 < len__5749__auto___35620)){ +args__5755__auto__.push((arguments[i__5750__auto___35621])); -var G__51381 = (i__5750__auto___51380 + (1)); -i__5750__auto___51380 = G__51381; +var G__35622 = (i__5750__auto___35621 + (1)); +i__5750__auto___35621 = G__35622; continue; } else { } @@ -10939,24 +11026,24 @@ return null; (taoensso.encore.tracef.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.tracef.cljs$lang$applyTo = (function (seq50687){ -var G__50688 = cljs.core.first(seq50687); -var seq50687__$1 = cljs.core.next(seq50687); +(taoensso.encore.tracef.cljs$lang$applyTo = (function (seq34494){ +var G__34495 = cljs.core.first(seq34494); +var seq34494__$1 = cljs.core.next(seq34494); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50688,seq50687__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34495,seq34494__$1); })); taoensso.encore.debugf = (function taoensso$encore$debugf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51382 = arguments.length; -var i__5750__auto___51383 = (0); +var len__5749__auto___35624 = arguments.length; +var i__5750__auto___35625 = (0); while(true){ -if((i__5750__auto___51383 < len__5749__auto___51382)){ -args__5755__auto__.push((arguments[i__5750__auto___51383])); +if((i__5750__auto___35625 < len__5749__auto___35624)){ +args__5755__auto__.push((arguments[i__5750__auto___35625])); -var G__51384 = (i__5750__auto___51383 + (1)); -i__5750__auto___51383 = G__51384; +var G__35626 = (i__5750__auto___35625 + (1)); +i__5750__auto___35625 = G__35626; continue; } else { } @@ -10978,24 +11065,24 @@ return null; (taoensso.encore.debugf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.debugf.cljs$lang$applyTo = (function (seq50689){ -var G__50690 = cljs.core.first(seq50689); -var seq50689__$1 = cljs.core.next(seq50689); +(taoensso.encore.debugf.cljs$lang$applyTo = (function (seq34496){ +var G__34497 = cljs.core.first(seq34496); +var seq34496__$1 = cljs.core.next(seq34496); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50690,seq50689__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34497,seq34496__$1); })); taoensso.encore.infof = (function taoensso$encore$infof(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51386 = arguments.length; -var i__5750__auto___51387 = (0); +var len__5749__auto___35627 = arguments.length; +var i__5750__auto___35628 = (0); while(true){ -if((i__5750__auto___51387 < len__5749__auto___51386)){ -args__5755__auto__.push((arguments[i__5750__auto___51387])); +if((i__5750__auto___35628 < len__5749__auto___35627)){ +args__5755__auto__.push((arguments[i__5750__auto___35628])); -var G__51388 = (i__5750__auto___51387 + (1)); -i__5750__auto___51387 = G__51388; +var G__35630 = (i__5750__auto___35628 + (1)); +i__5750__auto___35628 = G__35630; continue; } else { } @@ -11017,24 +11104,24 @@ return null; (taoensso.encore.infof.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.infof.cljs$lang$applyTo = (function (seq50691){ -var G__50692 = cljs.core.first(seq50691); -var seq50691__$1 = cljs.core.next(seq50691); +(taoensso.encore.infof.cljs$lang$applyTo = (function (seq34498){ +var G__34499 = cljs.core.first(seq34498); +var seq34498__$1 = cljs.core.next(seq34498); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50692,seq50691__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34499,seq34498__$1); })); taoensso.encore.warnf = (function taoensso$encore$warnf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51389 = arguments.length; -var i__5750__auto___51390 = (0); +var len__5749__auto___35631 = arguments.length; +var i__5750__auto___35632 = (0); while(true){ -if((i__5750__auto___51390 < len__5749__auto___51389)){ -args__5755__auto__.push((arguments[i__5750__auto___51390])); +if((i__5750__auto___35632 < len__5749__auto___35631)){ +args__5755__auto__.push((arguments[i__5750__auto___35632])); -var G__51392 = (i__5750__auto___51390 + (1)); -i__5750__auto___51390 = G__51392; +var G__35633 = (i__5750__auto___35632 + (1)); +i__5750__auto___35632 = G__35633; continue; } else { } @@ -11056,24 +11143,24 @@ return null; (taoensso.encore.warnf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.warnf.cljs$lang$applyTo = (function (seq50693){ -var G__50694 = cljs.core.first(seq50693); -var seq50693__$1 = cljs.core.next(seq50693); +(taoensso.encore.warnf.cljs$lang$applyTo = (function (seq34500){ +var G__34501 = cljs.core.first(seq34500); +var seq34500__$1 = cljs.core.next(seq34500); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50694,seq50693__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34501,seq34500__$1); })); taoensso.encore.errorf = (function taoensso$encore$errorf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51393 = arguments.length; -var i__5750__auto___51394 = (0); +var len__5749__auto___35635 = arguments.length; +var i__5750__auto___35636 = (0); while(true){ -if((i__5750__auto___51394 < len__5749__auto___51393)){ -args__5755__auto__.push((arguments[i__5750__auto___51394])); +if((i__5750__auto___35636 < len__5749__auto___35635)){ +args__5755__auto__.push((arguments[i__5750__auto___35636])); -var G__51395 = (i__5750__auto___51394 + (1)); -i__5750__auto___51394 = G__51395; +var G__35637 = (i__5750__auto___35636 + (1)); +i__5750__auto___35636 = G__35637; continue; } else { } @@ -11095,24 +11182,24 @@ return null; (taoensso.encore.errorf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.errorf.cljs$lang$applyTo = (function (seq50695){ -var G__50696 = cljs.core.first(seq50695); -var seq50695__$1 = cljs.core.next(seq50695); +(taoensso.encore.errorf.cljs$lang$applyTo = (function (seq34502){ +var G__34503 = cljs.core.first(seq34502); +var seq34502__$1 = cljs.core.next(seq34502); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50696,seq50695__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34503,seq34502__$1); })); taoensso.encore.fatalf = (function taoensso$encore$fatalf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51396 = arguments.length; -var i__5750__auto___51397 = (0); +var len__5749__auto___35638 = arguments.length; +var i__5750__auto___35639 = (0); while(true){ -if((i__5750__auto___51397 < len__5749__auto___51396)){ -args__5755__auto__.push((arguments[i__5750__auto___51397])); +if((i__5750__auto___35639 < len__5749__auto___35638)){ +args__5755__auto__.push((arguments[i__5750__auto___35639])); -var G__51398 = (i__5750__auto___51397 + (1)); -i__5750__auto___51397 = G__51398; +var G__35640 = (i__5750__auto___35639 + (1)); +i__5750__auto___35639 = G__35640; continue; } else { } @@ -11134,24 +11221,24 @@ return null; (taoensso.encore.fatalf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.fatalf.cljs$lang$applyTo = (function (seq50697){ -var G__50698 = cljs.core.first(seq50697); -var seq50697__$1 = cljs.core.next(seq50697); +(taoensso.encore.fatalf.cljs$lang$applyTo = (function (seq34504){ +var G__34505 = cljs.core.first(seq34504); +var seq34504__$1 = cljs.core.next(seq34504); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50698,seq50697__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34505,seq34504__$1); })); taoensso.encore.reportf = (function taoensso$encore$reportf(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51399 = arguments.length; -var i__5750__auto___51400 = (0); +var len__5749__auto___35643 = arguments.length; +var i__5750__auto___35644 = (0); while(true){ -if((i__5750__auto___51400 < len__5749__auto___51399)){ -args__5755__auto__.push((arguments[i__5750__auto___51400])); +if((i__5750__auto___35644 < len__5749__auto___35643)){ +args__5755__auto__.push((arguments[i__5750__auto___35644])); -var G__51401 = (i__5750__auto___51400 + (1)); -i__5750__auto___51400 = G__51401; +var G__35645 = (i__5750__auto___35644 + (1)); +i__5750__auto___35644 = G__35645; continue; } else { } @@ -11173,24 +11260,24 @@ return null; (taoensso.encore.reportf.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.reportf.cljs$lang$applyTo = (function (seq50699){ -var G__50700 = cljs.core.first(seq50699); -var seq50699__$1 = cljs.core.next(seq50699); +(taoensso.encore.reportf.cljs$lang$applyTo = (function (seq34506){ +var G__34507 = cljs.core.first(seq34506); +var seq34506__$1 = cljs.core.next(seq34506); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50700,seq50699__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34507,seq34506__$1); })); taoensso.encore.greatest = (function taoensso$encore$greatest(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51403 = arguments.length; -var i__5750__auto___51404 = (0); +var len__5749__auto___35646 = arguments.length; +var i__5750__auto___35647 = (0); while(true){ -if((i__5750__auto___51404 < len__5749__auto___51403)){ -args__5755__auto__.push((arguments[i__5750__auto___51404])); +if((i__5750__auto___35647 < len__5749__auto___35646)){ +args__5755__auto__.push((arguments[i__5750__auto___35647])); -var G__51406 = (i__5750__auto___51404 + (1)); -i__5750__auto___51404 = G__51406; +var G__35648 = (i__5750__auto___35647 + (1)); +i__5750__auto___35647 = G__35648; continue; } else { } @@ -11201,9 +11288,9 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic = (function (coll,p__50703){ -var vec__50704 = p__50703; -var _QMARK_comparator = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50704,(0),null); +(taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic = (function (coll,p__34510){ +var vec__34511 = p__34510; +var _QMARK_comparator = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34511,(0),null); var comparator = (function (){var or__5025__auto__ = _QMARK_comparator; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; @@ -11211,11 +11298,11 @@ return or__5025__auto__; return taoensso.encore.rcompare; } })(); -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__50669_SHARP_,p2__50670_SHARP_){ -if((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__50669_SHARP_,p2__50670_SHARP_) : comparator.call(null,p1__50669_SHARP_,p2__50670_SHARP_))) > (0))){ -return p2__50670_SHARP_; +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__34476_SHARP_,p2__34477_SHARP_){ +if((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__34476_SHARP_,p2__34477_SHARP_) : comparator.call(null,p1__34476_SHARP_,p2__34477_SHARP_))) > (0))){ +return p2__34477_SHARP_; } else { -return p1__50669_SHARP_; +return p1__34476_SHARP_; } }),coll); })); @@ -11223,24 +11310,24 @@ return p1__50669_SHARP_; (taoensso.encore.greatest.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.greatest.cljs$lang$applyTo = (function (seq50701){ -var G__50702 = cljs.core.first(seq50701); -var seq50701__$1 = cljs.core.next(seq50701); +(taoensso.encore.greatest.cljs$lang$applyTo = (function (seq34508){ +var G__34509 = cljs.core.first(seq34508); +var seq34508__$1 = cljs.core.next(seq34508); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50702,seq50701__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34509,seq34508__$1); })); taoensso.encore.least = (function taoensso$encore$least(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51411 = arguments.length; -var i__5750__auto___51412 = (0); +var len__5749__auto___35650 = arguments.length; +var i__5750__auto___35651 = (0); while(true){ -if((i__5750__auto___51412 < len__5749__auto___51411)){ -args__5755__auto__.push((arguments[i__5750__auto___51412])); +if((i__5750__auto___35651 < len__5749__auto___35650)){ +args__5755__auto__.push((arguments[i__5750__auto___35651])); -var G__51414 = (i__5750__auto___51412 + (1)); -i__5750__auto___51412 = G__51414; +var G__35652 = (i__5750__auto___35651 + (1)); +i__5750__auto___35651 = G__35652; continue; } else { } @@ -11251,9 +11338,9 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic = (function (coll,p__50709){ -var vec__50710 = p__50709; -var _QMARK_comparator = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50710,(0),null); +(taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic = (function (coll,p__34516){ +var vec__34517 = p__34516; +var _QMARK_comparator = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34517,(0),null); var comparator = (function (){var or__5025__auto__ = _QMARK_comparator; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; @@ -11261,11 +11348,11 @@ return or__5025__auto__; return taoensso.encore.rcompare; } })(); -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__50671_SHARP_,p2__50672_SHARP_){ -if((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__50671_SHARP_,p2__50672_SHARP_) : comparator.call(null,p1__50671_SHARP_,p2__50672_SHARP_))) < (0))){ -return p2__50672_SHARP_; +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__34478_SHARP_,p2__34479_SHARP_){ +if((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__34478_SHARP_,p2__34479_SHARP_) : comparator.call(null,p1__34478_SHARP_,p2__34479_SHARP_))) < (0))){ +return p2__34479_SHARP_; } else { -return p1__50671_SHARP_; +return p1__34478_SHARP_; } }),coll); })); @@ -11273,11 +11360,11 @@ return p1__50671_SHARP_; (taoensso.encore.least.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.least.cljs$lang$applyTo = (function (seq50707){ -var G__50708 = cljs.core.first(seq50707); -var seq50707__$1 = cljs.core.next(seq50707); +(taoensso.encore.least.cljs$lang$applyTo = (function (seq34514){ +var G__34515 = cljs.core.first(seq34514); +var seq34514__$1 = cljs.core.next(seq34514); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50708,seq50707__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34515,seq34514__$1); })); @@ -11299,20 +11386,20 @@ return cljs.core.PersistentArrayMap.EMPTY; taoensso.encore.distinct_by = (function taoensso$encore$distinct_by(keyfn,coll){ var step = (function taoensso$encore$distinct_by_$_step(xs,seen){ return (new cljs.core.LazySeq(null,(function (){ -return (function (p__50713,seen__$1){ +return (function (p__34520,seen__$1){ while(true){ -var vec__50714 = p__50713; -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50714,(0),null); -var xs__$1 = vec__50714; -var b2__43681__auto__ = cljs.core.seq(xs__$1); -if(b2__43681__auto__){ -var s = b2__43681__auto__; +var vec__34521 = p__34520; +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34521,(0),null); +var xs__$1 = vec__34521; +var b2__30646__auto__ = cljs.core.seq(xs__$1); +if(b2__30646__auto__){ +var s = b2__30646__auto__; var v_STAR_ = (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(v) : keyfn.call(null,v)); if(cljs.core.contains_QMARK_(seen__$1,v_STAR_)){ -var G__51417 = cljs.core.rest(s); -var G__51418 = seen__$1; -p__50713 = G__51417; -seen__$1 = G__51418; +var G__35655 = cljs.core.rest(s); +var G__35656 = seen__$1; +p__34520 = G__35655; +seen__$1 = G__35656; continue; } else { return cljs.core.cons(v,taoensso$encore$distinct_by_$_step(cljs.core.rest(s),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen__$1,v_STAR_))); @@ -11332,8 +11419,8 @@ return step(coll,cljs.core.PersistentHashSet.EMPTY); * Prefer `xdistinct`. */ taoensso.encore.distinctv = (function taoensso$encore$distinctv(var_args){ -var G__50718 = arguments.length; -switch (G__50718) { +var G__34525 = arguments.length; +switch (G__34525) { case 1: return taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -11353,10 +11440,10 @@ return taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2(cljs.core.identit })); (taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2 = (function (keyfn,coll){ -var tr = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__50719,in$){ -var vec__50720 = p__50719; -var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50720,(0),null); -var seen = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50720,(1),null); +var tr = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__34526,in$){ +var vec__34527 = p__34526; +var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34527,(0),null); +var seen = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34527,(1),null); var in_STAR_ = (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$)); if(cljs.core.contains_QMARK_(seen,in_STAR_)){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,seen], null); @@ -11391,14 +11478,14 @@ return cljs.core.PersistentArrayMap.EMPTY; taoensso.encore.as_map = (function taoensso$encore$as_map(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51425 = arguments.length; -var i__5750__auto___51426 = (0); +var len__5749__auto___35660 = arguments.length; +var i__5750__auto___35661 = (0); while(true){ -if((i__5750__auto___51426 < len__5749__auto___51425)){ -args__5755__auto__.push((arguments[i__5750__auto___51426])); +if((i__5750__auto___35661 < len__5749__auto___35660)){ +args__5755__auto__.push((arguments[i__5750__auto___35661])); -var G__51427 = (i__5750__auto___51426 + (1)); -i__5750__auto___51426 = G__51427; +var G__35662 = (i__5750__auto___35661 + (1)); +i__5750__auto___35661 = G__35662; continue; } else { } @@ -11409,10 +11496,10 @@ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.I return taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); -(taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic = (function (kvs,p__50725){ -var vec__50726 = p__50725; -var kf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50726,(0),null); -var vf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50726,(1),null); +(taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic = (function (kvs,p__34532){ +var vec__34533 = p__34532; +var kf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34533,(0),null); +var vf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34533,(1),null); if(cljs.core.empty_QMARK_(kvs)){ return cljs.core.PersistentArrayMap.EMPTY; @@ -11434,11 +11521,11 @@ return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,(kf__$1.cljs$core$I (taoensso.encore.as_map.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.as_map.cljs$lang$applyTo = (function (seq50723){ -var G__50724 = cljs.core.first(seq50723); -var seq50723__$1 = cljs.core.next(seq50723); +(taoensso.encore.as_map.cljs$lang$applyTo = (function (seq34530){ +var G__34531 = cljs.core.first(seq34530); +var seq34530__$1 = cljs.core.next(seq34530); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50724,seq50723__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34531,seq34530__$1); })); @@ -11456,14 +11543,14 @@ return ((cljs.core.vector_QMARK_(x)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$ar taoensso.encore.memoized = (function taoensso$encore$memoized(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51438 = arguments.length; -var i__5750__auto___51439 = (0); +var len__5749__auto___35666 = arguments.length; +var i__5750__auto___35667 = (0); while(true){ -if((i__5750__auto___51439 < len__5749__auto___51438)){ -args__5755__auto__.push((arguments[i__5750__auto___51439])); +if((i__5750__auto___35667 < len__5749__auto___35666)){ +args__5755__auto__.push((arguments[i__5750__auto___35667])); -var G__51440 = (i__5750__auto___51439 + (1)); -i__5750__auto___51439 = G__51440; +var G__35669 = (i__5750__auto___35667 + (1)); +i__5750__auto___35667 = G__35669; continue; } else { } @@ -11493,13 +11580,13 @@ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args); (taoensso.encore.memoized.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ -(taoensso.encore.memoized.cljs$lang$applyTo = (function (seq50729){ -var G__50730 = cljs.core.first(seq50729); -var seq50729__$1 = cljs.core.next(seq50729); -var G__50731 = cljs.core.first(seq50729__$1); -var seq50729__$2 = cljs.core.next(seq50729__$1); +(taoensso.encore.memoized.cljs$lang$applyTo = (function (seq34536){ +var G__34537 = cljs.core.first(seq34536); +var seq34536__$1 = cljs.core.next(seq34536); +var G__34538 = cljs.core.first(seq34536__$1); +var seq34536__$2 = cljs.core.next(seq34536__$1); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50730,G__50731,seq50729__$2); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34537,G__34538,seq34536__$2); })); @@ -11548,8 +11635,8 @@ return cljs.core.not(cljs.core.next(coll)); taoensso.encore.__GT__QMARK_singleton = (function taoensso$encore$__GT__QMARK_singleton(coll){ if(taoensso.encore.singleton_QMARK_(coll)){ -var vec__50734 = coll; -var c1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50734,(0),null); +var vec__34541 = coll; +var c1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34541,(0),null); return c1; } else { return null; @@ -11574,12 +11661,12 @@ var ks__$1 = cljs.core.seq(ks); var vs__$1 = cljs.core.seq(vs); while(true){ if(((ks__$1) && (vs__$1))){ -var G__51444 = cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,cljs.core.first(ks__$1),cljs.core.first(vs__$1)); -var G__51445 = cljs.core.next(ks__$1); -var G__51446 = cljs.core.next(vs__$1); -m = G__51444; -ks__$1 = G__51445; -vs__$1 = G__51446; +var G__35670 = cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,cljs.core.first(ks__$1),cljs.core.first(vs__$1)); +var G__35671 = cljs.core.next(ks__$1); +var G__35672 = cljs.core.next(vs__$1); +m = G__35670; +ks__$1 = G__35671; +vs__$1 = G__35672; continue; } else { return cljs.core.persistent_BANG_(m); @@ -11640,14 +11727,14 @@ taoensso.encore.every = taoensso.encore.revery; taoensso.encore.replace_in = (function taoensso$encore$replace_in(var_args){ var args__5755__auto__ = []; -var len__5749__auto___51447 = arguments.length; -var i__5750__auto___51448 = (0); +var len__5749__auto___35674 = arguments.length; +var i__5750__auto___35675 = (0); while(true){ -if((i__5750__auto___51448 < len__5749__auto___51447)){ -args__5755__auto__.push((arguments[i__5750__auto___51448])); +if((i__5750__auto___35675 < len__5749__auto___35674)){ +args__5755__auto__.push((arguments[i__5750__auto___35675])); -var G__51449 = (i__5750__auto___51448 + (1)); -i__5750__auto___51448 = G__51449; +var G__35676 = (i__5750__auto___35675 + (1)); +i__5750__auto___35675 = G__35676; continue; } else { } @@ -11661,10 +11748,10 @@ return taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic((argument (taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic = (function (m,ops){ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m__$1,_QMARK_op){ if(cljs.core.truth_(_QMARK_op)){ -var vec__50739 = _QMARK_op; -var type = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(0),null); -var ks = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(1),null); -var valf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(2),null); +var vec__34546 = _QMARK_op; +var type = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(0),null); +var ks = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(1),null); +var valf = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(2),null); var f = ((cljs.core.keyword_identical_QMARK_(type,new cljs.core.Keyword(null,"reset","reset",-800929946)))?(function (_){ return valf; }):valf); @@ -11678,23 +11765,23 @@ return m__$1; (taoensso.encore.replace_in.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ -(taoensso.encore.replace_in.cljs$lang$applyTo = (function (seq50737){ -var G__50738 = cljs.core.first(seq50737); -var seq50737__$1 = cljs.core.next(seq50737); +(taoensso.encore.replace_in.cljs$lang$applyTo = (function (seq34544){ +var G__34545 = cljs.core.first(seq34544); +var seq34544__$1 = cljs.core.next(seq34544); var self__5734__auto__ = this; -return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50738,seq50737__$1); +return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34545,seq34544__$1); })); -var return_51452 = (function (m0,v0,m1,v1){ +var return_35677 = (function (m0,v0,m1,v1){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v0,v1], null); }); /** * Prefer `swap-in!` with `swapped` return value. */ taoensso.encore.swap_in_BANG__STAR_ = (function taoensso$encore$swap_in_BANG__STAR_(var_args){ -var G__50743 = arguments.length; -switch (G__50743) { +var G__34550 = arguments.length; +switch (G__34550) { case 2: return taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -11714,15 +11801,15 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2 = (function (atom_,f){ -return taoensso.encore._swap_k0_BANG_(return_51452,atom_,f); +return taoensso.encore._swap_k0_BANG_(return_35677,atom_,f); })); (taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,ks,f){ -return taoensso.encore._swap_kn_BANG_(return_51452,atom_,ks,null,f); +return taoensso.encore._swap_kn_BANG_(return_35677,atom_,ks,null,f); })); (taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,ks,not_found,f){ -return taoensso.encore._swap_kn_BANG_(return_51452,atom_,ks,not_found,f); +return taoensso.encore._swap_kn_BANG_(return_35677,atom_,ks,not_found,f); })); (taoensso.encore.swap_in_BANG__STAR_.cljs$lang$maxFixedArity = 4); @@ -11732,8 +11819,8 @@ return taoensso.encore._swap_kn_BANG_(return_51452,atom_,ks,not_found,f); * Prefer `swap-val!` with `swapped` return value. */ taoensso.encore.swap_val_BANG__STAR_ = (function taoensso$encore$swap_val_BANG__STAR_(var_args){ -var G__50745 = arguments.length; -switch (G__50745) { +var G__34552 = arguments.length; +switch (G__34552) { case 3: return taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); @@ -11749,11 +11836,11 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 = (function (atom_,k,f){ -return taoensso.encore._swap_k1_BANG_(return_51452,atom_,k,null,f); +return taoensso.encore._swap_k1_BANG_(return_35677,atom_,k,null,f); })); (taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 = (function (atom_,k,not_found,f){ -return taoensso.encore._swap_k1_BANG_(return_51452,atom_,k,not_found,f); +return taoensso.encore._swap_k1_BANG_(return_35677,atom_,k,not_found,f); })); (taoensso.encore.swap_val_BANG__STAR_.cljs$lang$maxFixedArity = 4); @@ -11789,8 +11876,8 @@ taoensso.encore._matching_error = taoensso.truss.matching_error; * Prefer `rate-limiter`. */ taoensso.encore.rate_limiter_STAR_ = (function taoensso$encore$rate_limiter_STAR_(var_args){ -var G__50747 = arguments.length; -switch (G__50747) { +var G__34554 = arguments.length; +switch (G__34554) { case 1: return taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -11865,7 +11952,7 @@ taoensso.encore.ajax_lite = taoensso.encore.ajax_call; * Prefer `ex-map`. */ taoensso.encore.error_data = (function taoensso$encore$error_data(x){ -var b2__43681__auto__ = (function (){var and__5023__auto__ = x; +var b2__30646__auto__ = (function (){var and__5023__auto__ = x; if(cljs.core.truth_(and__5023__auto__)){ var or__5025__auto__ = cljs.core.ex_data(x); if(cljs.core.truth_(or__5025__auto__)){ @@ -11877,8 +11964,8 @@ return cljs.core.PersistentArrayMap.EMPTY; return and__5023__auto__; } })(); -if(cljs.core.truth_(b2__43681__auto__)){ -var data_map = b2__43681__auto__; +if(cljs.core.truth_(b2__30646__auto__)){ +var data_map = b2__30646__auto__; var base_map = (function (){var err = x; return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"err-type","err-type",-116717722),cljs.core.type(err),new cljs.core.Keyword(null,"err-msg","err-msg",-1158512684),err.message,new cljs.core.Keyword(null,"err-cause","err-cause",897008749),err.cause], null); })(); @@ -11893,7 +11980,7 @@ return null; */ taoensso.encore.when_QMARK_ = (function taoensso$encore$when_QMARK_(pred,x){ if(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x)); -}catch (e50748){var _ = e50748; +}catch (e34555){var _ = e34555; return null; }})())){ return x; @@ -11913,8 +12000,8 @@ return taoensso.encore.list_form_QMARK_(x); * Prefer `subvec`. */ taoensso.encore.get_subvec = (function taoensso$encore$get_subvec(var_args){ -var G__50750 = arguments.length; -switch (G__50750) { +var G__34557 = arguments.length; +switch (G__34557) { case 2: return taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -11954,8 +12041,8 @@ return cljs.core.PersistentVector.EMPTY; * Prefer `subvec`. */ taoensso.encore.get_subvector = (function taoensso$encore$get_subvector(var_args){ -var G__50752 = arguments.length; -switch (G__50752) { +var G__34559 = arguments.length; +switch (G__34559) { case 2: return taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -11995,8 +12082,8 @@ return cljs.core.PersistentVector.EMPTY; * Prefer `substr`. */ taoensso.encore.get_substr_by_idx = (function taoensso$encore$get_substr_by_idx(var_args){ -var G__50754 = arguments.length; -switch (G__50754) { +var G__34561 = arguments.length; +switch (G__34561) { case 2: return taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -12043,8 +12130,8 @@ return taoensso.encore.substr(s,new cljs.core.Keyword(null,"by-idx","by-idx",-19 * Prefer `substr`. */ taoensso.encore.get_substr_by_len = (function taoensso$encore$get_substr_by_len(var_args){ -var G__50756 = arguments.length; -switch (G__50756) { +var G__34563 = arguments.length; +switch (G__34563) { case 2: return taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -12092,8 +12179,8 @@ return new cljs.core.Keyword(null,"max","max",61366548); * Prefer `substr`. */ taoensso.encore.get_substr = (function taoensso$encore$get_substr(var_args){ -var G__50758 = arguments.length; -switch (G__50758) { +var G__34565 = arguments.length; +switch (G__34565) { case 2: return taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -12133,8 +12220,8 @@ return ""; * Prefer `substr`. */ taoensso.encore.get_substring = (function taoensso$encore$get_substring(var_args){ -var G__50760 = arguments.length; -switch (G__50760) { +var G__34567 = arguments.length; +switch (G__34567) { case 2: return taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -12297,8 +12384,8 @@ return null; taoensso.encore.some_QMARK_ = cljs.core.some_QMARK_; taoensso.encore.is_BANG_ = (function taoensso$encore$is_BANG_(var_args){ -var G__50766 = arguments.length; -switch (G__50766) { +var G__34573 = arguments.length; +switch (G__34573) { case 1: return taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -12327,12 +12414,12 @@ return taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3(pred,x,null); (taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (pred,x,data){ if(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x)); -}catch (e50767){var _ = e50767; +}catch (e34574){var _ = e34574; return null; }})())){ return x; } else { -throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [7349,8], null),["[encore/is!] ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(pred)," failed against arg: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(''),taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"pred","pred",1927423397),pred,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null)], null),new cljs.core.Keyword(null,"data","data",-232669377),data),null); +throw taoensso.truss.ex_info_STAR_("taoensso.encore",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [7362,8], null),["[encore/is!] ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(pred)," failed against arg: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(''),taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"pred","pred",1927423397),pred,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),x,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(x)], null)], null),new cljs.core.Keyword(null,"data","data",-232669377),data),null); } })); diff --git a/public/js/cljs-runtime/taoensso.encore.js.map b/public/js/cljs-runtime/taoensso.encore.js.map index 2c8200e..f8ff395 100644 --- a/public/js/cljs-runtime/taoensso.encore.js.map +++ b/public/js/cljs-runtime/taoensso.encore.js.map @@ -1 +1 @@ -{"version":3,"sources":["taoensso/encore.cljc"],"mappings":";;;;;AA4HA;;;iCAAA,mFAAA,IAAA,MAAA,9HAAKA;AAEL,AAAA,AAEA,AAoIA,AAOA;;;;mCAAA,nCAAeC,8EAIZC;AAJH,AAIM,SAAI,AAACC,sBAAMD,QAAG,cAA2CE,bAAgBF;;AAE/E,AAAA,AAkIA,AAmBA,AAQA,AAAA;;;;kCAAA,0CAAAG,5EAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,gEAAA,hEAAMD,2EAGFE,IAAIC;AAHR,AAG0B,8EAAA,vEAACC,8DAAgBF,IAAIC;;;AAH/C,CAAA,gEAAA,hEAAMH,2EAIFE,IAAIC,KAAKE;AAJb,AAKG,IAAAC,aAAwB,2EAAA,sIAAA,mFAAA,lSAAI,EAAK,OAAS,AAACK,gBAAMR,wBAAO,AAACS,eAAKT,4FAAQ,AAACQ,gBAAMR,MAAM,AAACS,eAAKT,sGAAmBA;uBAA5G,AAAAI,4CAAAD,WAAA,IAAA,9EAAOI;eAAP,AAAAH,4CAAAD,WAAA,IAAA,tEAAkBH;IAAlBK,aACwB,qFAAA,8IAAA,mFAAA,pTAAI,EAAK,AAACM,qBAAQ,AAACH,gBAAMR,gBAAO,AAACS,eAAKT,gGAAQ,AAACQ,gBAAMR,UAAM,AAACS,eAAKT,wIAAmBA;YAD5G,AAAAI,4CAAAC,WAAA,IAAA,nEACOK;eADP,AAAAN,4CAAAC,WAAA,IAAA,tEACkBL;IADlBM,aAEwB,mFAAA,8IAAA,/NAAI,EAAK,OAAS,AAACE,gBAAMR,4BAAO,AAACS,eAAKT,gGAAQ,AAACQ,gBAAMR,UAAM,AAACS,eAAKT,qGAAQO,iBAAWP;2BAF5G,AAAAI,4CAAAE,WAAA,IAAA,lFAEOC;eAFP,AAAAH,4CAAAE,WAAA,IAAA,tEAEkBN;IAEZU,YAAM,kBAAIH,sBAAW,oDAAA,pDAACK,8CAAMF,yDAAWH,sBAAYG;IACnDA,YAAM,iBAAAG,oBAAW,AAACE,eAAKhB;AAAjB,AAAA,oBAAAc;AAAA,QAAAA,JAASC;AAAT,AAAuB,OAACE,6CAAKF,EAAEJ;;AAAOA;;;IAC5CA,YAAM,AAACM,6CAAKN,UAAMR;AANxB,AAAA,0FAQG,AAACe,oBAAUlB,IAAIW,WAAOV,SAAKU;;;AAbjC,CAAA,0DAAA,1DAAMb;;AAAN,AAwBA,AAyIA,AA8FA,AA0CA,AAoBA,AAQS,AAAsBqB,qCAAa,0EAAA,1EAACC,6CAAEC;AACtC,AAAcC,6CAAqB,0EAAA,1EAACF,6CAAEC;AACtC,AAAcE,mCAAY,4FAAA,OAAA,jGAAM,EAAK,GAAKD,kDAAsB,QAAAE,2BAAqBA;AACrF,AAAcC,oCAAY,oCAAA,QAAA,1CAAM,QAAAC,0BAAqBA;AACrD,AAAcC,mCACZ,8CAAA,KAAA,jDAAUL,iDACR,iBAAAM,mBACE,mCAAA,OAAA,xCAAM,QAAAC,yBAAoBA;AAD5B,AAAA,oBAAAD;AAAAA;;AAEE,GAAM,QAAAJ;AAAN,AAA0B,0DAAA,nDAACM,4CAASN;;AAApC;;;;AAKf,AAEW,oCAAA,pCAAeO,gFAAatC;AAA5B,AAA+B,SAAK,OAASA,oBAAG,GAAK,+CAAA,/CAAC2B,6CAAE3B;;;AAExD,iCAAA,jCAAeuC,0EAAavC;AAA5B,AAA+B,SAAI,AAAOA,gBAAG,AAAQA;;;AAErD,iCAAA,jCAAewC,0EAAaxC;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAAgCA;AAAhC,GAAA,EAAA,CAAA,wCAAA,WAAA,CAAAyC,gCAAA,pFAAgCzC,oFAAAA;AAAhC;;AAAA;;;AAAA;;;;AAE/B,+BAAA,/BAAe0C,sEAAa1C;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAA8BA;AAA9B,GAAA,EAAA,CAAA,wCAAA,aAAA,CAAAyC,gCAAA,tFAA8BzC,sFAAAA;AAA9B;;AAAA;;;AAAA;;;;AAE/B,kCAAA,lCAAe2C,4EAAa3C;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAA4CA;AAA5C,GAAA,EAAA,CAAA,wCAAA,UAAA,CAAAyC,gCAAA,nFAA4CzC,mFAAAA;AAA5C;;AAAA;;;AAAA;;;;AAE/B,mCAAA,nCAAe4C,8EAAa5C;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAA+BA;AAA/B,GAAA,EAAA,CAAA,wCAAA,cAAA,CAAAyC,gCAAA,vFAA+BzC,uFAAAA;AAA/B;;AAAA;;;AAAA;;;;AAE/B,8BAAA,9BAAe6C,oEAAa7C;AAA5B,AAA+B,qBAAwB8C,bAAK9C;;;AAE5D,mCAAA,nCAAe+C,8EAAa/C;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAA6CA;AAA7C,GAAA,EAAA,CAAA,wCAAA,UAAA,CAAAyC,gCAAA,nFAA6CzC,mFAAAA;AAA7C;;AAAA;;;AAAA;;;;AAE/B,kCAAA,lCAAegD,4EAAahD;AAA5B,AAA+B,qBAAwBiD,bAAQjD;;;AAE/D,oCAAA,pCAAekD,gFAAalD;AAA5B,AAA+B,qBAAWmD,bAAwBnD;;;AAElE,kCAAA,lCAAeoD,4EAAapD;AAA5B,AAA+B,GAAA,GAAA,MAAA,LAA6BA;AAA7B,GAAA,EAAA,CAAA,wCAAA,eAAA,CAAAyC,gCAAA,xFAA6BzC,wFAAAA;AAA7B;;AAAA;;;AAAA;;;;AAMxC,iCAAA,jCAAMqD,0EAA8CrD;AAApD,AAAuD,SAAK,cAAAsD,bAAUtD,qCAAG,OAASA;;;AAClF,+BAAA,/BAAMuD,sEAA8CvD;AAApD,AAAuD,SAAK,cAAAsD,bAAUtD,qCAAG,cAAAwD,bAASxD;;;AAClF,kCAAA,lCAAMyD,4EAA8CzD;AAApD,AAAuD,SAAK,AAAC0C,6BAAS1C,QAAG,OAASA;;;AAClF,sCAAA,tCAAM0D,oFAA8C1D;AAApD,AAAuD,IAAA2D,oBAAK,AAACJ,6BAASvD;AAAf,AAAA,oBAAA2D;AAAkB,kCAAA,1BAAM,AAACC,oBAAU5D;;AAAnC2D;;;;AACvD,yCAAA,zCAAME,0FAA8C7D;AAApD,AAAuD,IAAA2D,oBAAK,AAACJ,6BAASvD;AAAf,AAAA,oBAAA2D;AAAA,IAAAA,wBAAwB,AAACC,oBAAU5D;AAAnC,AAAA,oBAAA2D;AAAA;;AAAAA;;;AAAAA;;;;AACvD,uCAAA,vCAAMG,sFAA8C9D;AAApD,AAAuD,SAAK,cAAAwD,bAAUxD,oCAAG,2BAAA,1BAAM,AAAC4D,oBAAU5D;;;AAC1F,0CAAA,1CAAM+D,4FAA8C/D;AAApD,AAAuD,IAAA2D,oBAAK,cAAAH,bAAUxD;AAAf,AAAA,GAAA2D;AAAA,IAAAA,wBAAwB,AAACC,oBAAU5D;AAAnC,AAAA,oBAAA2D;AAAA;;AAAAA;;;AAAAA;;;;AACvD,wCAAA,xCAAMK,wFAA8ChE;AAApD,AAAuD,SAAK,cAAAsD,bAAUtD,qCAAG,2BAAA,1BAAM,AAAC4D,oBAAU5D;;;AAC1F,2CAAA,3CAAMiE,8FAA8CjE;AAApD,AAAuD,IAAA2D,oBAAK,cAAAL,bAAUtD;AAAf,AAAA,GAAA2D;AAAA,IAAAA,wBAAwB,AAACC,oBAAU5D;AAAnC,AAAA,oBAAA2D;AAAA;;AAAAA;;;AAAAA;;;;AACvD,8BAAA,9BAAMO,oEAA8ClE;AAApD,AAAuD,SAAK,AAACmE,wBAAQnE,QAAG,gEAAA,hEAAC2B,6CAAE,AAACyC,gBAAMpE;;;AAClF,8BAAA,9BAAMqE,oEAA8CrE;AAApD,AAAuD,SAAK,AAACmE,wBAAQnE,QAAG,gEAAA,hEAAC2B,6CAAE,AAACyC,gBAAMpE;;;AAClF,oCAAA,pCAAMsE,gFAA8CtE;AAApD,AAAuD,SAAK,OAASA,oBAAG,GAAK,AAACuE,4BAAWvE;;;AACzF,gCAAA,hCAAMwE,wEAA8CxE;AAApD,AAAwE,UAAK,AAACuE,4BAAWvE;;AAE3F;;;AAAAyE,+BAAUC;AACV,AAAA,AAEA;;;8BAAA,9BAAMC,oEAGH3E;AAHH,AAKW,qBAAW4E,bAAkE5E;;AAGxF,AAUA;;;4BAAA,5BAAM6E,gEAAoC7E;AAA1C,AAA6C,GAAI,AAAC4C,iCAAW5C;AAAG,OAAC8E,gBAAM9E;;AAAGA;;;AAC1E;;;4BAAA,5BAAM+E,gEAAoC/E;AAA1C,AAA6C,GAAI,AAACgF,qBAAWhF;AAAG,OAAC8E,gBAAM9E;;AAAGA;;;AAa1E;;;;oCAAA,pCAAMiF,gFAIHjF;AAJH,AAMW,OAACkF,gBAAmBlF;;AAQ/B;;;;6BAAA,7BAAMmF,kEAIHnF;AAJH,AAaK,IAAA2D,oBAEE,AAACsB,kCAAYjF;AAFf,AAAA,oBAAA2D;AAGE,QAAI,AAACyB,WAAcpF,OAAG,WAAA,XAACqF,SAAYrF;;AAHrC2D;;;AAKL;;;;+BAAA,/BAAM2B,sEAIHtF;AAJH,AAOK,SACE,OAAgBA,oBAEhB,GAAK,CAAI,AAACoF,WAAcpF,OAAG,WAAA,XAACqF,SAAYrF;;AAE/C,AAEA,AACE,8BAAA,9BAAWuF,oEAAiCvF;AAA5C,AAA+C,UAAK,KAAA,JAASA;;;AAC7D,kCAAA,lCAAOwF,4EAAqCxF;AAA5C,AAA+C,SAAK,OAASA,oBAAQ,OAAA,NAAOA;;;AAC5E,mCAAA,nCAAMyF,8EAAsCzF;AAA5C,AAA+C,SAAK,OAASA,oBAAG,GAAK,OAAA,NAAOA;;;AAE5E,iCAAA,jCAAM0F,0EAAsC1F;AAA5C,AAA+C,SAAK,OAASA,oBAAG,GAAK,KAAA,JAAMA;;;AAC3E,iCAAA,jCAAM2F,0EAAsC3F;AAA5C,AAA+C,SAAK,OAASA,oBAAQ,KAAA,JAAMA;;;AAC3E,iCAAA,jCAAM4F,0EAAsC5F;AAA5C,AAA+C,SAAK,OAASA,oBAAQ,KAAA,JAAMA;;;AAE3E,iCAAA,jCAAM6F,0EAAsC7F;AAA5C,AAA+C,IAAA2D,oBAAK,AAACwB,2BAAKnF;AAAX,AAAA,oBAAA2D;AAAc,UAAK,KAAA,JAAM3D;;AAAzB2D;;;;AAC/C,iCAAA,jCAAMmC,0EAAsC9F;AAA5C,AAA+C,IAAA2D,oBAAK,AAACwB,2BAAKnF;AAAX,AAAA,oBAAA2D;AAAmB,YAAA,JAAM3D;;AAAzB2D;;;;AAC/C,iCAAA,jCAAMoC,0EAAsC/F;AAA5C,AAA+C,IAAA2D,oBAAK,AAACwB,2BAAKnF;AAAX,AAAA,oBAAA2D;AAAmB,YAAA,JAAM3D;;AAAzB2D;;;;AAE/C,mCAAA,nCAAMqC,8EAAsChG;AAA5C,AAA+C,IAAA2D,oBAAK,AAAC2B,6BAAOtF;AAAb,AAAA,oBAAA2D;AAAgB,UAAK,KAAA,JAAM3D;;AAA3B2D;;;;AAC/C,mCAAA,nCAAMsC,8EAAsCjG;AAA5C,AAA+C,IAAA2D,oBAAK,AAAC2B,6BAAOtF;AAAb,AAAA,oBAAA2D;AAAqB,YAAA,JAAM3D;;AAA3B2D;;;;AAC/C,mCAAA,nCAAMuC,8EAAsClG;AAA5C,AAA+C,IAAA2D,oBAAK,AAAC2B,6BAAOtF;AAAb,AAAA,oBAAA2D;AAAqB,YAAA,JAAM3D;;AAA3B2D;;;AAEjD;;;8BAAA,9BAAMwC,oEAGHnG;AAHH,AAGM,IAAA2D,oBAAK,OAAS3D;AAAd,AAAA,GAAA2D;AAAiB,IAAMyC,IAAUpG;AAAhB,AAAoB,SAAK,MAAA,LAAIoG,eAAO,MAAA,LAAIA;;AAAzDzC;;;AAEN;;;8BAAA,9BAAM0C,oEAGHrG;AAHH,AAGM,IAAA2D,oBAAK,OAAS3D;AAAd,AAAA,GAAA2D;AAAiB,IAAMyC,IAAUpG;AAAhB,AAAoB,SAAK,MAAA,LAAIoG,gBAAQ,MAAA,LAAIA;;AAA1DzC;;;AAMN,AAAa2C,2BAAsCC;AACnD,AAAaC,2BAAsCC;AAEnD,iCAAA,jCAAOC,0EAAUC;AAAjB,AAAoB,4BAAA,rBAACC,gCAAuBD;;AACnC,iCAAA,jCAAOE,0EAAgBF;AAAvB,AAA0B,IAAM3G,IAAE,AAACoF,WAAcuB;AAAvB,AAA2B,oBAAU,AAACG,MAAS9G;AAApB;;AAAA,AAAuBA;;;AAElF,+BAAA,/BAAM+G,sEAAcJ;AAApB,AACE,oBAAM,AAACD,+BAASC;AAAhB,AACE,IAAM3G,IAAE,WAAA,XAACqF,SAAYsB;AAArB,AACE,GAAM,+BAAA,7BACE,AAACK,cAAI,AAACF,MAAS9G,WACf,CAAIA,KAAEsG,+BACN,CAAItG,KAAEwG;AAHd,AAIExG;;AAJF;;;AAFJ;;;AAQL,AACE,kCAAA,lCAAMiH,4EAAYjH;AAAlB,AAAqB,GAAM,OAAUA;AAAhB,AAAmB,GAAI,OAAA,NAAYA;AAAhB;;AAAuBA;;;AAA1C;;;;AACrB,mCAAA,nCAAMkH,8EAAYlH;AAAlB,AAAqB,GAAM,OAAUA;AAAhB,AAAmB,GAAI,AAACuE,4BAAWvE;AAAhB;;AAAuBA;;;AAA1C;;;;AACrB,+BAAA,/BAAMmH,sEAAYnH;AAAlB,AAAqB,GAAM,cAAAsD,bAAUtD;AAASA;;AAAzB,GAA4B,OAASA;AAAG,OAACoH,gDAAQpH;;AAAjD;;;;;AACrB,iCAAA,jCAAMqH,0EAAYrH;AAAlB,AAAqB,GAAM,AAAC0C,6BAAS1C;AAAG,OAACsH,eAAKtH;;AAAzB,GAA4B,OAASA;AAAYA;;AAAjD;;;;;AACrB,kCAAA,lCAAMuH,4EAAYvH;AAAlB,AACE,GACE,AAAC0C,6BAAQ1C;AAAG,IAAMoG,IAAE,AAACkB,eAAKtH;AAAd,AAAkB,IAAAqB,oBAAY,AAACuC,oBAAU5D;AAAvB,AAAA,oBAAAqB;AAAA,SAAAA,LAASmG;AAAT,AAA2B,WAAA,HAAKA,OAAOpB;;AAAGA;;;AAD1E,GAEE,OAASpG;AAAGA;;AAFd;;;;;AAIF,uCAAA,vCAAMyH,sFAAiBzH;AAAvB,AAA0B,GAAM,OAASA;AAAf,AAAwC,GAAuC,+CAAA,/CAAC2B,6CAAE3B;AAA1C;;AAAqDA;;;AAA7F;;;;AAC1B,wCAAA,xCAAM0H,wFAAiB1H;AAAvB,AAA0B,GAAM,OAASA;AAAf,AAAkB,IAAM2G,IAAE,AAACgB,oBAAS3H;AAAlB,AAAsB,GAAuC,+CAAA,/CAAC2B,6CAAEgF;AAA1C;;AAAqDA;;;AAA7F;;;;AAE1B;AAEA,gCAAA,hCAAMiB,wEAAS5H;AAAf,AACE,GACE,OAASA;AAAG,OAAC6H,gBAAK7H;;AADpB,GAEE,OAASA;AACA,OAAC+G,6BAAa/G;;AAHzB;;;;;AAUF,kCAAA,lCAAM8H,4EAAW9H;AAAjB,AACE,GACE,OAASA;AAAWA;;AADtB,GAEE,OAASA;AACA,OAAC6G,+BAAe7G;;AAH3B;;;;;AAMF,oCAAA,pCAAM+H,gFAAe/H;AAArB,AAAwB,IAAAqB,oBAAa,AAACuG,8BAAU5H;AAAxB,AAAA,oBAAAqB;AAAA,QAAAA,JAAW+E;AAAX,AAAA,AAA4B,GAAU,KAAA,JAAcA;AAAxB;;AAAA,AAA2BA;;;AAAvD;;;;AACxB,oCAAA,pCAAM4B,gFAAehI;AAArB,AAAwB,IAAAqB,oBAAa,AAACuG,8BAAU5H;AAAxB,AAAA,oBAAAqB;AAAA,QAAAA,JAAW+E;AAAX,AAAA,AAA4B,GAAU,KAAA,JAAcA;AAAxB,AAA2BA;;AAA3B;;;AAA5B;;;;AACxB,sCAAA,tCAAM6B,oFAAejI;AAArB,AAAwB,IAAAqB,oBAAa,AAACyG,gCAAU9H;AAAxB,AAAA,oBAAAqB;AAAA,QAAAA,JAAW+E;AAAX,AAAA,AAA4B,GAAU,KAAA,JAAcA;AAAxB;;AAAA,AAA2BA;;;AAAvD;;;;AACxB,sCAAA,tCAAM8B,oFAAelI;AAArB,AAAwB,IAAAqB,oBAAa,AAACyG,gCAAU9H;AAAxB,AAAA,oBAAAqB;AAAA,QAAAA,JAAW+E;AAAX,AAAA,AAA4B,GAAU,KAAA,JAAcA;AAAxB,AAA2BA;;AAA3B;;;AAA5B;;;;AAExB,iCAAA,jCAAM+B,0EAAenI;AAArB,AAAwB,IAAAqB,oBAAqB,AAACyG,gCAAU9H;AAAhC,AAAA,oBAAAqB;AAAA,QAAAA,JAAmB+G;AAAnB,AAAA,AAAoC,GAAI,KAAA,JAAGA;AAAP;;AAAkB,GAAI,KAAA,JAAGA;AAAP;;AAAoBA;;;;AAA1E;;;;AACxB,iCAAA,jCAAMC,0EAAerI;AAArB,AAAwB,IAAAqB,oBAAqB,AAACyG,gCAAU9H;AAAhC,AAAA,oBAAAqB;AAAA,QAAAA,JAAmB+G;AAAnB,AAAA,AAAoC,GAAI,KAAA,JAAGA;AAAP;;AAAkB,GAAI,KAAA,JAAGA;AAAP;;AAAoBA;;;;AAA1E;;;;AAExB,iCAAA,jCAAME,0EAAUtI;AAAhB,AACE,GACE,kBAAA,hBAAI,AAAOA,kBAAG,AAAQA,iBAAG,MAAA,LAAMA;AAAIA;;AADrC,GAEE,2DAAA,+DAAA,xHAAI,+CAAA,/CAAC2B,6CAAE3B,cAAK,+CAAA,/CAAC2B,6CAAE3B,kBAAW,+CAAA,/CAAC2B,6CAAE3B,gBAAW,+CAAA,/CAAC2B,6CAAE3B;AAF7C;;AAAA,GAGE,2DAAA,8DAAA,vHAAI,+CAAA,/CAAC2B,6CAAE3B,cAAK,+CAAA,/CAAC2B,6CAAE3B,iBAAW,+CAAA,/CAAC2B,6CAAE3B,eAAW,+CAAA,/CAAC2B,6CAAE3B;AAH7C;;AAAA;;;;;;AAKF,kBAAA,dACMuI;AADN,AAEE,AAAA,kCAAA,0CAAApI,5EAAMsI;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,8DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAnI,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,gEAAA,hEAAMmI,2EACMC;AADZ,AACgB,qEAAA,9DAACC,oEAAcD;;;AAD/B,CAAA,gEAAA,hEAAMD,2EAEFG,QAAQF;AAFZ,AAGG,IAAArH,oBAAa,iBAAAsC,oBAAK+E;AAAL,AAAA,oBAAA/E;AAAQ,OAACgE,oBAASe;;AAAlB/E;;;AAAb,AAAA,oBAAAtC;AAAA,QAAAA,JAAWsF;AAAX,AAAA,AACE,GAAM,CAAI,AAACvC,gBAAMuC,MAASiC;AAA1B,AACE,OAACC,kBAAQN,YAAM5B;;AADjB;;;AADF;;;;AAHH,CAAA,0DAAA,1DAAM8B;;AAAN;AAOF,AAAA;AACA,AAAA,mCAAA,2CAAAtI,9EAAM4I;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,+DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAzI,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,iEAAA,jEAAMyI,4EACML;AADZ,AACgB,IAAArH,oBAAiB,AAACsH,8DAAkBD;AAApC,AAAA,oBAAArH;AAAA,YAAAA,RAAW2H;AAAX,AAAA,AAAyC,OAACC,0BAAe,CAACC,yDAAAA,gEAAAA,TAASF,4CAAAA;;AAAnE;;;;AADhB,CAAA,iEAAA,jEAAMD,4EAEFH,QAAQF;AAFZ,AAEgB,IAAArH,oBAAiB,AAACsH,8DAAUC,QAAQF;AAApC,AAAA,oBAAArH;AAAA,YAAAA,RAAW2H;AAAX,AAAA,AAAyC,OAACC,0BAAe,CAACC,yDAAAA,gEAAAA,TAASF,4CAAAA;;AAAnE;;;;AAFhB,CAAA,2DAAA,3DAAMD;;AAAN;AAIA,AAMF,4BAAA,5BAAeI,gEAAWC,KAAKpJ;AAA/B,AACE,MAAA,AAAAqJ,6BAAA,kBAAA,mFAAA,KAAA,iMAAA,2CAAA,mEAAA,8OAAA,nhBAAgB,CAAA,mCAAA,rBAAmB,AAAC/B,eAAK8B,+BAA+B,AAACE,wGAAOtJ,2HAClEoJ,yDACN,2CAAA,wDAAA,qDAAA,AAAAG,vDAAWvJ,sEAAAA;;AAErB,IAAMwJ,kBAAUL;AAAhB,AACE,4BAAA,5BAAMM,gEAAsDzJ;AAA5D,AAA+D,IAAAmC,mBAAI,AAAC+E,iCAAgBlH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,uFAAA,rLAACqH,gDAAAA,2GAAAA,LAAuBxJ,uFAAAA;;;;AAC/G,iCAAA,jCAAM0J,0EAAsD1J;AAA5D,AAA+D,IAAAmC,mBAAI,AAACuF,sCAAgB1H;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,mGAAA,jMAACqH,gDAAAA,uHAAAA,LAAuBxJ,mGAAAA;;;;AAC/G,gCAAA,hCAAM2J,wEAAsD3J;AAA5D,AAA+D,IAAAmC,mBAAI,AAACsF,qCAAgBzH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,gGAAA,9LAACqH,gDAAAA,oHAAAA,LAAuBxJ,gGAAAA;;;;AAC/G,0BAAA,1BAAM4J,4DAAsD5J;AAA5D,AAA+D,IAAAmC,mBAAI,AAACkF,+BAAgBrH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,oFAAA,lLAACqH,gDAAAA,wGAAAA,LAAuBxJ,oFAAAA;;;;AAC/G,2BAAA,3BAAM6J,8DAAsD7J;AAA5D,AAA+D,IAAAmC,mBAAI,AAACoF,gCAAgBvH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,uFAAA,rLAACqH,gDAAAA,2GAAAA,LAAuBxJ,uFAAAA;;;;AAC/G,2BAAA,3BAAM8J,8DAAsD9J;AAA5D,AAA+D,IAAAmC,mBAAI,AAAC8E,gCAAgBjH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,sFAAA,pLAACqH,gDAAAA,0GAAAA,LAAuBxJ,sFAAAA;;;;AAC/G,wBAAA,xBAAM+J,wDAAsD/J;AAA5D,AAA+D,IAAAmC,mBAAI,AAACgF,6BAAgBnH;AAArB,AAAA,oBAAAmC;AAAAA;;AAAwB,sGAAA,gFAAA,9KAACqH,gDAAAA,oGAAAA,LAAuBxJ,gFAAAA;;;;AAE/G,AAAA,2BAAA,mCAAAG,9DAAM8J;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3J,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAM2J,oEAEAjK;AAFN,AAES,IAAAmC,mBAAI,AAACwG,8DAAY3I;AAAjB,AAAA,oBAAAmC;AAAAA;;AAAoB,sGAAA,sFAAA,pLAACqH,gDAAAA,0GAAAA,LAAiBxJ,sFAAAA;;;;AAF/C,CAAA,yDAAA,zDAAMiK,oEAGF7D,EAAEpG;AAHN,AAGS,IAAAmC,mBAAI,AAACwG,8DAAUvC,EAAEpG;AAAjB,AAAA,oBAAAmC;AAAAA;;AAAoB,sGAAA,sFAAA,pLAACqH,gDAAAA,0GAAAA,LAAiBxJ,sFAAAA;;;;AAH/C,CAAA,mDAAA,nDAAMiK;;AAAN;AAKA,AAAA,4BAAA,oCAAA9J,hEAAMgK;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7J,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAM6J,qEAEAnK;AAFN,AAES,IAAAmC,mBAAI,AAACiI,+DAAapK;AAAlB,AAAA,oBAAAmC;AAAAA;;AAAqB,sGAAA,uFAAA,rLAACqH,gDAAAA,2GAAAA,LAAkBxJ,uFAAAA;;;;AAFjD,CAAA,0DAAA,1DAAMmK,qEAGF/D,EAAEpG;AAHN,AAGS,IAAAmC,mBAAI,AAACiI,+DAAWhE,EAAEpG;AAAlB,AAAA,oBAAAmC;AAAAA;;AAAqB,sGAAA,uFAAA,rLAACqH,gDAAAA,2GAAAA,LAAkBxJ,uFAAAA;;;;AAHjD,CAAA,oDAAA,pDAAMmK;;AAAN;AAMS,yBAAA,zBAAcE,0DAAkBrK;AAAhC,AAAmC,IAAAmC,mBAAI,AAACyF,8BAAY5H;AAAjB,AAAA,oBAAAmC;AAAAA;;AAAoB,sGAAA,mFAAA,jLAACqH,gDAAAA,uGAAAA,LAAmBxJ,mFAAAA;;;;AAE3E,6BAAA,7BAAcsK,kEAAkBtK;AAAhC,AAAmC,IAAAmC,mBAAI,AAAC4F,kCAAY/H;AAAjB,AAAA,oBAAAmC;AAAAA;;AAAoB,sGAAA,yFAAA,vLAACqH,gDAAAA,6GAAAA,LAAmBxJ,yFAAAA;;;;AAE3E,6BAAA,7BAAcuK,kEAAkBvK;AAAhC,AAAmC,IAAAmC,mBAAI,AAAC6F,kCAAYhI;AAAjB,AAAA,oBAAAmC;AAAAA;;AAAoB,sGAAA,wFAAA,tLAACqH,gDAAAA,4GAAAA,LAAmBxJ,wFAAAA;;;;AAG3E,2BAAA,3BAAcwK,8DAAsBxK;AAApC,AAAuC,IAAAmC,mBAAI,AAAC2F,gCAAc9H;AAAnB,AAAA,oBAAAmC;AAAAA;;AAAsB,sGAAA,uFAAA,rLAACqH,gDAAAA,2GAAAA,LAAqBxJ,uFAAAA;;;;AAEnF,+BAAA,/BAAcyK,sEAAsBzK;AAApC,AAAuC,IAAAmC,mBAAI,AAAC8F,oCAAcjI;AAAnB,AAAA,oBAAAmC;AAAAA;;AAAsB,sGAAA,8FAAA,5LAACqH,gDAAAA,kHAAAA,LAAqBxJ,8FAAAA;;;;AAEnF,+BAAA,/BAAc0K,sEAAsB1K;AAApC,AAAuC,IAAAmC,mBAAI,AAAC+F,oCAAclI;AAAnB,AAAA,oBAAAmC;AAAAA;;AAAsB,sGAAA,8FAAA,5LAACqH,gDAAAA,kHAAAA,LAAqBxJ,8FAAAA;;;;AAGnF,0BAAA,1BAAc2K,4DAAiB3K;AAA/B,AAAkC,IAAAmC,mBAAI,AAACgG,+BAASnI;AAAd,AAAA,oBAAAmC;AAAAA;;AAAiB,sGAAA,oFAAA,lLAACqH,gDAAAA,wGAAAA,LAAgBxJ,oFAAAA;;;;AAEpE,0BAAA,1BAAc4K,4DAAiB5K;AAA/B,AAAkC,IAAAmC,mBAAI,AAACkG,+BAASrI;AAAd,AAAA,oBAAAmC;AAAAA;;AAAiB,sGAAA,oFAAA,lLAACqH,gDAAAA,wGAAAA,LAAgBxJ,oFAAAA;;;;AAGpE,gCAAA,hCAAc6K,wEAAkB7K;AAAhC,AAAmC,oBAAI,AAACmG,4BAAMnG;AAAWA;;AAAG,sGAAA,qFAAA,nLAACwJ,gDAAAA,yGAAAA,LAAiBxJ,qFAAAA;;;;AAE9E,gCAAA,hCAAc8K,wEAAkB9K;AAAhC,AAAmC,oBAAI,AAACqG,4BAAMrG;AAAWA;;AAAG,sGAAA,sFAAA,pLAACwJ,gDAAAA,0GAAAA,LAAiBxJ,sFAAAA;;;;AAEvF,0BAAA,1BAAqC+K,4DAAU/K;AAA/C,AACE,IAAMgL,WAAG,AAAC1C,+BAAStI;AAAnB,AAAuB,GAAQ,aAAA,ZAAMgL;AAAO,sGAAA,oFAAA,lLAACxB,gDAAAA,wGAAAA,LAAgBxJ,oFAAAA;;AAApBgL;;;AAI7C,iCAAA,jCAAQC,0EAAgBjL;AAAxB,AAA2B,GAAI,AAACkL,yBAASlL;AAAG,OAACmL,kBAAQnL;;AAAGA;;;AACxD;;;mCAAA,nCAAMoL,8EAEHC;AAFH,AAGE,kBAAKC,IAAIC;AAAT,AACE,IAAMC,SAAO,CAACH,mCAAAA,4CAAAA,XAAGC,wBAAAA,pBAAIC,wBAAAA;AAArB,AACE,GAAI,AAACL,yBAASM;AACZ,OAACL,kBAAQK;;AACT,AAASA;;;;AAEjB;;;6BAAA,7BAAMC,kEAEHJ,GAAGK,KAAKC;AAFX,AAGE,OAACC,kDAAU,sDAAA,tDAACC,2DACV,AAACC,mDAAW,eAAAC,JAAKT;AAAL,AAAA,IAAAU,aAAAD;QAAA,AAAAnL,4CAAAoL,WAAA,IAAA,/DAAUC;QAAV,AAAArL,4CAAAoL,WAAA,IAAA,/DAAYE;AAAZ,AAAgB,QAACb,mCAAAA,4CAAAA,XAAGC,wBAAAA,pBAAIW,wBAAAA,tBAAEC,wBAAAA;IAAKR,KAAKC;;AAEpD,AAAA;;;2BAAA,mCAAAxL,9DAAMiM;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9L,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAM8L,oEAEFf,GAAGK,KAAWW;AAFlB,AAE4B,OAACC,+CAAOjB,GAAGK,KAAK,AAACa,8CAAYF;;;AAFzD,CAAA,yDAAA,zDAAMD,oEAGFf,GAAGK,KAAKc,MAAMH;AAHlB,AAG4B,OAACC,+CAAOjB,GAAGK,KAAK,AAACa,8CAAMC,MAAMH;;;AAHzD,CAAA,yDAAA,zDAAMD,oEAIFf,GAAGK,KAAKc,MAAMH,IAAII;AAJtB,AAI4B,OAACH,+CAAOjB,GAAGK,KAAK,AAACa,8CAAMC,MAAMH,IAAII;;;AAJ7D,CAAA,mDAAA,nDAAML;;AAAN,AAMA,AAEA,AAAA,AACA;;;;iCAAA,jCAAMM,0EAGHrB,GAAGK,KAAKiB;AAHX,AAIE,IAAMC,IAAE,CAACC,wDAAAA,0DAAAA;AAAT,AACE,OAACP,+CAAO,WAAKhB,IAAIC;AAAT,AAAa,IAAAuB,WAAIxB;IAAJyB,WAAQ,CAACH,kCAAAA,oCAAAA;IAATI,WAAYzB;AAAZ,AAAA,4EAAAuB,SAAAC,SAAAC,yBAAAF,SAAAC,SAAAC,jIAAC3B,mCAAAA,+DAAAA;GAAgBK,KAAKiB;;AAE/C,AAKG;;;6BAAA,7BAAMM,kEACH7E,EAAEsD,KAAKwB;AADV,AACa,OAACZ,+CAAO,WAAKhB,IAAIW;AAAT,AAAY,IAAAkB,WAAG7B;IAAH8B,WAAOnB;IAAPoB,WAAS,gDAAA,hDAAChL,4CAAS6K,EAAEjB;AAArB,AAAA,0EAAAkB,SAAAC,SAAAC,wBAAAF,SAAAC,SAAAC,9HAACjF,kCAAAA,8DAAAA;GAA6BsD,KAAK,AAAC4B,kBAAQJ;;AAEhF,AACW,4BAAA,5BAAMK,gEAAUC,KAAKb;AAArB,AAA2B,+CAAA,WAAAc,iBAAAC,3EAACpB;AAAD,AAAa,gFAAAoB,mCAAAA,3GAACF,qCAAAA,uDAAAA;GAAd,KAA8Bb;;AAAzD;;;AACA,+BAAA,/BAAMgB,sEAAUH,KAAQlM;AAAxB,AAA2B,oBAAA,WAAAsM,iBAAAC,iBAAAC,jEAACC;AAAD,AAAa,gFAAAF,iBAAAC,mCAAAD,iBAAAC,7IAACN,qCAAAA,wEAAAA;GAAd,KAAiClM;;AAA5D;;;AACA,gCAAA,hCAAM0M,wEAAUR,KAAM7B;AAAtB,AAA2B,2BAAA,WAAAsC,iBAAAC,iBAAAC,xEAAC1C;AAAD,AAAa,gFAAAyC,iBAAAC,mCAAAD,iBAAAC,7IAACX,qCAAAA,wEAAAA;GAAd,KAA+B7B;;AAA1D;;;AACA,gCAAA,hCAAMyC,wEAAUZ,KAAMa;AAAtB,AAA2B,2BAAA,WAAAC,iBAAAC,iBAAAC,xEAACvB;AAAD,AAAa,gFAAAsB,iBAAAC,mCAAAD,iBAAAC,7IAAChB,qCAAAA,wEAAAA;GAAd,KAA+Ba;;AAA1D;;AAEX,IAAMhD,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAKnD;AAAV,AAAc,IAAAlK,oBAAa,CAACoN,qCAAAA,0CAAAA,PAAKlD,sBAAAA;AAAnB,AAAA,oBAAAlK;AAAA,QAAAA,JAAWsN;AAAX,AAAA,AAAwB,OAACxD,kBAAQwD;;AAAjC;;;;AAAlC,AACE,AAAA;;;;wBAAA,gCAAAxO,xDAAM0O;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAvO,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAMuO,iEAGIJ,KAAK9B;AAHf,AAGqB,qEAAA,9DAACL,+CAA4B,AAACjB,SAAGoD,WAAW9B;;;AAHjE,CAAA,sDAAA,tDAAMkC,iEAIFC,MAAML,KAAK9B;AAJf,AAIqB,kIAAA,3HAACf,kDAAUkD,MAAM,AAAChD,mDAAW,AAACT,SAAGoD,YAAW9B;;;AAJjE,CAAA,gDAAA,hDAAMkC;;AAAN,AAMF,IAAMxD,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAMzC,EAAEC;AAAb,AAAiB,IAAA7K,oBAAa,CAACoN,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAArB,AAAA,oBAAA7K;AAAA,QAAAA,JAAWsN;AAAX,AAAA,AAAyB,OAACxD,kBAAQwD;;AAAlC;;;;IAC/BI,WAAG,WAAKN;AAAL,AAAW,uBAAAO,LAAKN;AAAL,AAAA,IAAAO,aAAAD;QAAA,AAAApO,4CAAAqO,WAAA,IAAA,/DAAWhD;QAAX,AAAArL,4CAAAqO,WAAA,IAAA,/DAAa/C;AAAb,AAAiB,IAAA7K,oBAAa,CAACoN,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAArB,AAAA,oBAAA7K;AAAA,QAAAA,JAAWsN;AAAX,AAAA,AAAyB,OAACxD,kBAAQwD;;AAAlC;;;;AADrC,AAEE;;;;2BAAA,3BAAMO,8DAGMT,KAAK9B;AAHjB,AAGuB,0CAAA,nCAACoB,oBAA4B,AAAC1C,SAAGoD,WAAW9B;;AAGrE,IAAMtB,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAKnD;AAAV,AAAc,oBAAM,CAACkD,qCAAAA,0CAAAA,PAAKlD,sBAAAA;AAAZ,AAAgB,OAACJ,kBAAQI;;AAAzB;;;;AAAlC,AACE,AAAA;;;yBAAA,iCAAApL,1DAAMiP;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,qDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9O,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,uDAAA,vDAAM8O,kEAEIX,KAAK9B;AAFf,AAEqB,qEAAA,9DAACL,+CAA4B,AAACjB,SAAGoD,WAAW9B;;;AAFjE,CAAA,uDAAA,vDAAMyC,kEAGFN,MAAML,KAAK9B;AAHf,AAGqB,kIAAA,3HAACf,kDAAUkD,MAAM,AAAChD,mDAAW,AAACT,SAAGoD,YAAW9B;;;AAHjE,CAAA,iDAAA,jDAAMyC;;AAAN,AAKF,IAAMC,cAES,WAAKpD,EAAEC;AAAP,AAAuB,YAAAoD,uBAAA,JAAiBrD,EAAEC;;IAEnDb,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAMzC,EAAEC;AAAb,AAAiB,oBAAM,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAd,AAAiB,OAACf,kBAAQ,AAACkE,YAAMpD,EAAEC;;AAAnC;;;;IAC/B6C,WAAG,WAAKN;AAAL,AAAW,uBAAAc,LAAKb;AAAL,AAAA,IAAAc,aAAAD;QAAA,AAAA3O,4CAAA4O,WAAA,IAAA,/DAAWvD;QAAX,AAAArL,4CAAA4O,WAAA,IAAA,/DAAatD;AAAb,AAAiB,oBAAM,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAd,AAAiB,OAACf,kBAAQ,AAACkE,YAAMpD,EAAEC;;AAAnC;;;;AALrC,AAOE;;;4BAAA,5BAAMuD,gEAEMhB,KAAK9B;AAFjB,AAEuB,0CAAA,nCAACoB,oBAA4B,AAAC1C,SAAGoD,WAAW9B;;AAGrE,IAAMtB,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAKnD;AAAV,AAAc,oBAAI,CAACkD,qCAAAA,0CAAAA,PAAKlD,sBAAAA;AAAV;;AAAmB,yBAAA,lBAACJ;;;;AAAtD,AACE,AAAA;;;;gCAAA,wCAAAhL,xEAAMwP;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAArP,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAMqP,yEAIIlB,KAAK9B;AAJf,AAIqB,qEAAA,9DAACL,+CAA4B,AAACjB,SAAGoD,WAAY9B;;;AAJlE,CAAA,8DAAA,9DAAMgD,yEAKFb,MAAML,KAAK9B;AALf,AAKqB,kIAAA,3HAACf,kDAAUkD,MAAM,AAAChD,mDAAW,AAACT,SAAGoD,YAAY9B;;;AALlE,CAAA,wDAAA,xDAAMgD;;AAAN,AAOF,IAAMtE,WAAG,WAAKoD;AAAL,AAAW,kBAAKC,KAAMzC,EAAEC;AAAb,AAAiB,oBAAI,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAZ;;AAAoB,yBAAA,lBAACf;;;;IACpD4D,WAAG,WAAKN;AAAL,AAAW,uBAAAmB,LAAKlB;AAAL,AAAA,IAAAmB,aAAAD;QAAA,AAAAhP,4CAAAiP,WAAA,IAAA,/DAAW5D;QAAX,AAAArL,4CAAAiP,WAAA,IAAA,/DAAa3D;AAAb,AAAiB,oBAAI,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAZ;;AAAoB,yBAAA,lBAACf;;;;AAD1D,AAEE;;;mCAAA,nCAAM2E,8EAGMrB,KAAK9B;AAHjB,AAGuB,0CAAA,nCAACoB,oBAA4B,AAAC1C,SAAGoD,WAAY9B;;AAGtE,AAuBA,AAAA;;;;;;6BAAA,qCAAAxM,lEAAM6P;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1P,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAM0P,sEAKF3E,GAAGK,KAAKuE,GAAGC;AALf,AAK6B,8EAAA,vEAACC,yDAAW9E,GAAGK,KAAKuE,GAAGC;;;AALpD,CAAA,2DAAA,3DAAMF,sEAMF3E,GAAGK,KAAKuE,GAAGC,GAAGE;AANlB,AAOG,GAAI,EACE,AAACjM,wBAAQ8L,SACT,AAAC9L,wBAAQ+L;AAEb,IAAM9J,IACA,EAAI,AAAAiK,6CAAA,VAAeD,8FACjB,iBAAAE,kBAAK,AAAClM,gBAAM6L;IAAZM,kBAAgB,AAACnM,gBAAM8L;AAAvB,AAAA,SAAAI,kBAAAC,mBAAAD,kBAAAC;KACA,iBAAAC,kBAAK,AAACpM,gBAAM6L;IAAZQ,kBAAgB,AAACrM,gBAAM8L;AAAvB,AAAA,SAAAM,kBAAAC,mBAAAD,kBAAAC;;AAHR,AAKE,OAACC,uDACC,WAAKpF,IAAIqF;AAAT,AACE,IAAAC,WAAItF;IAAJuF,WACE,AAACE,4CAAId,GAAGU,IAAIP;IADdU,WAEE,AAACC,4CAAIb,GAAGS,IAAIP;AAFd,AAAA,4EAAAQ,SAAAC,SAAAC,yBAAAF,SAAAC,SAAAC,jIAACzF,mCAAAA,+DAAAA;GAGHK,KAAKtF;;AAET,IAAM4K,mBAAW,GAAK,AAAAX,6CAAA,VAAeD;AAArC,AACE,IAAO9E,MAAII;IACJuE,SAAG,AAACgB,cAAIhB;IACRC,SAAG,AAACe,cAAIf;;AAFf,AAIE,GAAI,EAAIc,kBAAW,EAAIf,YAAGC,SAAI,EAAKD,YAAGC;AAEpC,IAAM1E,SACA,iBAAA0F,WAAI5F;IAAJ6F,WACE,AAACnQ,gBAAM,iBAAAmB,mBAAI8N;AAAJ,AAAA,GAAA9N;AAAAA;;AAAA,0FAAQiO;;;IADjBgB,WAEE,AAACpQ,gBAAM,iBAAAmB,mBAAI+N;AAAJ,AAAA,GAAA/N;AAAAA;;AAAA,0FAAQiO;;;AAFjB,AAAA,4EAAAc,SAAAC,SAAAC,yBAAAF,SAAAC,SAAAC,jIAAC/F,mCAAAA,+DAAAA;;AADP,AAKE,GAAI,AAACH,yBAASM;AACZ,OAAC1G,gBAAM0G;;AACP,eAAOA;eACL,AAACvK,eAAKgP;eACN,AAAChP,eAAKiP;;;;;;;AACZ5E;;;;;;;AAxCX,CAAA,qDAAA,rDAAM0E;;AAAN,AA0CA,AACE,AAAA;;;;;;;;AAAA;AAAA,CAAA,gCAAA,hCAAkByB;AAAlB,AAAA,AAAA;;;AAAA,CAAA,sCAAA,tCAAkBA;;AAAlB,CAAA,yCAAA,zCAAkBA;;AAAlB,CAAA,8CAAA,WAAAJ,mBAAAC,qBAAAC,jGAAkBE;AAAlB,AAAA,OAAAD,iBAAAF,qBAAA;;;AAAA;;;4BAAA,5BAAkBI,gEAAM1R,EAAE2R;AAA1B,AAAA,YAAAF,qBAAwBzR,EAAE2R;;;AAARF;AAClB,AAAA;;;;;;;;;AAAA;AAAA,CAAA,gCAAA,hCAAkBG;AAAlB,AAAA,AAAA;;;AAAA,CAAA,sCAAA,tCAAkBA;;AAAlB,CAAA,yCAAA,zCAAkBA;;AAAlB,CAAA,8CAAA,WAAAP,mBAAAC,qBAAAC,jGAAkBK;AAAlB,AAAA,OAAAJ,iBAAAF,qBAAA;;;AAAA;;;4BAAA,5BAAkBO,gEAAM7R,EAAE2R,EAAEG;AAA5B,AAAA,YAAAF,qBAAwB5R,EAAE2R,EAAEG;;;AAAVF,AAEpB,AAAA;;;;;+BAAA,uCAAAzR,tEAAM6R;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1R,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,6DAAA,7DAAM0R,wEAKF3G,GAAIK,KAAgBiB;AALxB,AAK8B,OAACL,+CAAOjB,GAAGK,KAAKiB;;;AAL9C,CAAA,6DAAA,7DAAMqF,wEAMFC,IAAIC,MAAMC,IAAIC,MAAMzF;AANxB,AAOG,IAAY0F,QACN,AAAC/F,+CACC,WAAW+F,MAAM9G;AAAjB,AACE,IAAMvL,IAAI,AAAKqS;IACTV,IAAI,AAAKU;IACTC,YAAI,AAACpH,yBAASlL;IACduS,YAAI,AAACrH,yBAASyG;AAHpB,AAKE,GAAI,EAAKW,eAAIC;AACX,OAACpH,kBAAQkH;;AACT,IAAMrS,QAAE,EAAIsS,WAAItS,EAAE,CAACiS,oCAAAA,2CAAAA,TAAIjS,uBAAAA,rBAAEuL,uBAAAA;IACnBoG,QAAE,EAAIY,WAAIZ,EAAE,CAACQ,oCAAAA,2CAAAA,TAAIR,uBAAAA,rBAAEpG,uBAAAA;AADzB,AAEE,YAAAkG,qBAAOzR,MAAE2R;;GACjB,KAAAF,qBAAOS,MAAME,QACbzF;AAdR,AAAA,0FAgBG,AAAC6F,oBAAU,AAAKH,SAChB,AAACG,oBAAU,AAAKH;;;AAxBtB,CAAA,6DAAA,7DAAML,wEA0BFC,IAAIC,MAAMC,IAAIC,MAAMK,IAAIC,MAAM/F;AA1BlC,AA2BG,IAAY0F,QACN,AAAC/F,+CACC,WAAW+F,MAAM9G;AAAjB,AACE,IAAMvL,IAAI,AAAKqS;IACTV,IAAI,AAAKU;IACTP,IAAI,AAAKO;IACTC,YAAI,AAACpH,yBAASlL;IACduS,YAAI,AAACrH,yBAASyG;IACdgB,YAAI,AAACzH,yBAAS4G;AALpB,AAOE,GAAI,iBAAA,fAAKQ,iBAAIC,eAAII;AACf,OAACxH,kBAAQkH;;AACT,IAAMrS,QAAE,EAAIsS,WAAItS,EAAE,CAACiS,oCAAAA,2CAAAA,TAAIjS,uBAAAA,rBAAEuL,uBAAAA;IACnBoG,QAAE,EAAIY,WAAIZ,EAAE,CAACQ,oCAAAA,2CAAAA,TAAIR,uBAAAA,rBAAEpG,uBAAAA;IACnBuG,QAAE,EAAIa,WAAIb,EAAE,CAACW,oCAAAA,2CAAAA,TAAIX,uBAAAA,rBAAEvG,uBAAAA;AAFzB,AAGE,YAAAqG,qBAAO5R,MAAE2R,MAAEG;;GACnB,KAAAF,qBAAOM,MAAME,MAAMM,QACnB/F;AAjBR,AAAA,0FAmBG,AAAC6F,oBAAU,AAAKH,SAChB,AAACG,oBAAU,AAAKH,SAChB,AAACG,oBAAU,AAAKH;;;AAhDtB,CAAA,uDAAA,vDAAML;;AAAN,AAkDA;;;;wCAAA,xCAAMY,wFAGHvH,GAAGK,KAAKmH;AAHX,AAIE,GAAI,AAACC,uBAAOD;AACVnH;;AACA,IAAOJ,MAAII;IAAMmH,YAAMA;;AAAvB,AACE,IAAYR,QACN,AAAC/F,+CACC;kBAAW+F,MAAM9G;AAAjB,AACE,GAAI,AAACuH,uBAAOvH;AACV8G;;AACA,IAAAU,aAAsBxH;IAAtByH,aAAA,AAAA/B,cAAA8B;IAAAE,eAAA,AAAAjS,gBAAAgS;IAAAA,iBAAA,AAAA/R,eAAA+R;UAAAC,NAAOC;cAAPF,VAAaG;IACP7H,UAAI,AAAK+G;IACTe,MAAI,AAAKf;IACTgB,MAAI,CAAChI,mCAAAA,gDAAAA,fAAGC,4BAAAA,pBAAI4H,4BAAAA;AAHlB,AAKE,GAAI,AAAChI,yBAASmI;AACZ,OAAClI,kBAAQ,KAAAsG,qBAAA,AAAA3M,qBAAA,LAAQuO;;AACjB,AAAS,YAAA5B,qBAAQ4B,IACN,EAAIF,SACF,AAAC3R,6CAAK,iBAAAW,mBAAIiR;AAAJ,AAAA,oBAAAjR;AAAAA;;AAAA;;KAAYgR,SAClB,AAAUC;;;;CAC/B,KAAA3B,yBAAA,JAAOnG,WACPuH;IAEFvH,UAAW,AAAK+G;IAChBiB,aAAW,AAAKjB;AApBtB,AAsBE,oBAAIiB;AACF,eAAOhI;eAAIgI;;;;;AACX,AAAOhI;;;;;;AAEjB,4BAAA,WAAAiI,nCAAMC;AAAN,AAAiB,SAAI,qBAAAD,rBAACpS,4CAAQ,wBAAAoS,xBAACE;;AAA/B,AACE,AAAA;;;;2BAAA,mCAAAtT,9DAAewT;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAArT,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAeqT,oEAGI3T,EAAEoI;AAHrB,AAGwB,8DAAA,vDAACwL,6DAAe5T,EAAEoI;;;AAH1C,CAAA,yDAAA,zDAAeuL,oEAIXE,qBAAe7T,EAAEoI;AAJrB,AAKG,IAAM4L,KAAG,kBAAIH,sBAAe5C,cAAIgD;SAAhC,WAAAH,iBAAAC,jCACMG;AADN,AACU,mFAAAJ,iBAAAC,7FAACH,uDAASC;;AADpB,AAEE,GACE,AAACL,sBAAUxT;AAAG,IAAAmU,WAAO,AAACpG,oBAAU,WAAKzC,IAAIW,EAAEC;AAAX,AAAc,OAAC9K,8CAAMkK,IAAI,AAAC4I,GAAGjI,EAAG7D,GAAG,AAAC8L,GAAGhI,EAAE9D;GAApD,mCAA4DpI;AAAnE,AAAA,0EAAAmU,wBAAAA,1FAAC/L,kCAAAA,4CAAAA;;AADjB,GAEE,AAACgM,qBAAUpU;AAAG,IAAAqU,WAAG,iBAAAC,WAAI,AAAChI,+CAAU,WAAKhB,IAAKC;AAAV,AAAc,OAAC/J,6CAAM8J,IAAI,AAAC4I,GAAG3I,IAAGnD;GAA3C,iCAA4DpI;AAAhE,AAAA,4EAAAsU,yBAAAA,7FAACN,mCAAAA,6CAAAA;;AAAJ,AAAA,0EAAAK,wBAAAA,1FAACjM,kCAAAA,4CAAAA;;AAFjB,GAGE,AAACmM,sBAAUvU;AAAG,IAAAwU,WAAO,AAAClI,+CAAU,WAAKhB,IAAKC;AAAV,AAAc,OAAC/J,6CAAM8J,IAAI,AAAC4I,GAAG3I,IAAGnD;GAAO,AAACqM,gBAAMzU,GAAGA;AAAnE,AAAA,0EAAAwU,wBAAAA,1FAACpM,kCAAAA,4CAAAA;;AACD,QAACA,kCAAAA,qCAAAA,LAAEpI,iBAAAA;;;;;;AAXxB,CAAA,mDAAA,nDAAe2T;;AAAf,AAaF,AASA,wBAAA,xBAAOe,wDAAOC,QAAQC;AAAtB,AACE;;wDACIhI,EAAEiI;AADN,AAEG,oBAAMjI;AAAN,AACE,IAAMkI,UAAU,AAAC1Q,gBAAMwI;IACjBiI,gBAAU,AAAChN,gBAAKgN;AADtB,AAEE,GAAiB,CAAGA,gBAAaC;AAAjC,AACE,IAAAC,WAAWnI;IAAXoI,WAAa,iBAAAxE,kBAAKqE;IAALpE,kBAAA;AAAA,AAAA,SAAAD,kBAAAC,mBAAAD,kBAAAC;;IAAbwE,WAA+BH;AAA/B,AAAA,0FAAAC,SAAAC,SAAAC,gCAAAF,SAAAC,SAAAC,tJAACL,0CAAAA,sEAAAA;;AADH;;;AAHJ;;;wDAMChI,EAAEiI,UAAUK;AARhB,AASG,oBAAMtI;AAAN,AACE,IAAMiI,gBAAU,iBAAArE,kBAAK,AAAC3I,gBAAKgN;IAAXpE,kBAAA;AAAA,AAAA,SAAAD,kBAAAC,mBAAAD,kBAAAC;;IACVyE,cAAU,iBAAA5E,kBAAK,AAACzI,gBAAKqN;IAAX3E,kBAAsB,AAACnM,gBAAMwI;AAA7B,AAAA,SAAA0D,kBAAAC,mBAAAD,kBAAAC;;AADhB,AAEE,GAAY,CAAGsE,gBAAUK;AAAzB,AACE,QAACN,0CAAAA,uEAAAA,/BAAUhI,mDAAAA,jDAAEiI,mDAAAA,rCAAUK,mDAAAA;;AADzB;;;AAHJ;;;wDAMCtI,EAAExD,KAAKoD,MAAMH;AAfjB,AAgBG,oBAAMO;AAAN,AACE,IAAMuI,UAAQ,AAAC/Q,gBAAMwI;IACfP,UAAI,EAAI,AAAAgE,uCAAA,JAAehE,uDAAU8I,QAAQ9I;AAD/C,AAGE,IAAA+I,WAAMhM;IAANgM,eAAA,EAAA,CAAAA,oBAAA9R,oBAAA,AAAA8R,aAAA;AAAA,AAAA,QAAAA;KAAA;AACU,OAACC,kEAAOzI,EAAEJ,MAAMH;;;KAD1B;AAGE,IACQiJ,MAAI,AAACzN,gBAAKwE;AADlB,AAAA,GAEE,QAAA,PAAMiJ;AAFR;;AAAA,IAIQT,YAAU,AAAChN,gBAAK2E;AAJxB,AAAA,GAKE,aAAA,ZAAMqI;AACN,IAAMA,gBAAU,iBAAArE,kBAAK,CAAGqE,YAAUM;IAAlB1E,kBAAA;AAAA,AAAA,SAAAD,kBAAAC,mBAAAD,kBAAAC;;IACVyE,UAAU,iBAAA5E,kBAAK,CAAGuE,gBAAcS;IAAtB/E,kBAA2B4E;AAA3B,AAAA,SAAA7E,kBAAAC,mBAAAD,kBAAAC;;AADhB,AAEE,GAAY,CAAGsE,gBAAUK;AAAzB,AACE,QAACN,0CAAAA,mEAAAA,3BAAUhI,+CAAAA,7CAAEiI,+CAAAA,jCAAUK,+CAAAA;;AADzB;;;AAIF,IAAMA,UAAQ,iBAAA5E,kBAAK,CAAGuE,YAAUS;IAAlB/E,kBAAuB4E;AAAvB,AAAA,SAAA7E,kBAAAC,mBAAAD,kBAAAC;;AAAd,AACE,GAAY,CAAGsE,YAAUK;AAAzB,AACE,QAACN,0CAAAA,+DAAAA,vBAAUhI,2CAAAA,zCAAEiI,2CAAAA,jCAAUK,2CAAAA;;AADzB;;;;;;;AAGJ,OAAAK,0CAAA,kBAAA,mFAAA,KAAA,gBAAA,2CAAA,uDAAA,AAAA,wDAAA,mEAAA,6DAAA,iFAAA,+DAAA,/aAAuBnM,0NAEVuL;;;;AAzBnB;;;+CADC/H,EAAExD,KAAKoD,MAAMH;;;wDAAbO,EAAExD;;wDAAFwD,EAAExD,KAAKoD;;wDAAPI,EAAExD,KAAKoD,MAAMH;;;;;;;;;;AA6BnB;;;;;;;;;AAAMmJ,yBASJ,sBAAA,AAAA,tBAACd,gHAAce;AAEjB;;;;;;;;;AAAMC,yBASJ,sBAAA,AAAA,tBAAChB,+GAAc,WAAK/N,EAAEgP,GAAGC;AAAV,AAAc,OAAoCjP,YAAGgP,GAAGC;;AAEzE,AAOA;;;4BAAA,5BAAMC,gEAGH5J,EAAEC;AAHL,AAKwB,YAAAoD,uBAAA,JAAiBrD,EAAEC;;AAE3C;;;+BAAA,/BAAM4J,sEAGH9V;AAHH,AAKW,qBAAc+V,bAA0B/V;;AAEnD,AAAA;;;wBAAA,gCAAAG,xDAAM8V;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA;;;;AAAA,MAAA,KAAA3V,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAM2V,iEAEFtJ;AAFJ,AAEU,OAACuJ,6CAAK,AAACC,sDAAOxJ;;;AAFxB,CAAA,sDAAA,tDAAMsJ;AAAN,AAKc,OAAAF;;;AALd,CAAA,gDAAA,hDAAME;;AAAN,AAOA,AAAA;;;8BAAA,sCAAA9V,pEAAMsW;AAAN,AAAA,IAAAL,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAK,iEAAAF;;;AAAA,AAAA,CAAA,mEAAA,nEAAME,8EAEDG;AAFL,AAEY,OAACT,oDAAMS;;;AAFnB,CAAA,sDAAA,tDAAMH;;AAAN;AAAA,CAAA,gDAAA,WAAAC,3DAAMD;AAAN,AAAA,IAAAE,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAA1F,cAAAyF;;;AAAA,AAIA,6BAAA,7BAAMG,kEAAY7W;AAAlB,AAAqB,GAAI,AAACmE,wBAAQnE;AAAGA;;AAAE,OAAC8W,cAAI9W;;;AAC5C,6BAAA,7BAAM+W,kEAAY/W;AAAlB,AAAqB,GAAI,AAACgX,qBAAQhX;AAAGA;;AAAE,OAACiX,cAAIjX;;;AAGzC;;;uBAAA,vBAAMkX,sDACHhK,EAAEjB,EAAEC;AADP,AACU,OAACiL,4CAAS,EAAI,MAAA,LAAMjK,YAAG,KAASA,GAAG,AAAC5F,eAAK2E,GAAGC;;AAGtD,IAAMkL,iBAAS;AAAf,AACE;;;;0BAAA,1BAAMC,4DAGHnK,EAAEoK,GAAGpL;AAHR,AAIE,IAAMgB,QAAE,EAAI,MAAA,LAAMA,YAAG,KAASA;AAA9B,AACE,IAAA7L,oBAAY,AAAC4P,cAAIqG;AAAjB,AAAA,GAAAjW;AAAA,aAAAA,TAASiW;AAAT,AACE,IAAOC,SAAOrK;IAAGsK,UAAQF;;AAAzB,AACE,IAAMG,KAAG,AAACnQ,eAAK,AAACtG,gBAAMwW;IAChBD,aACA,iBAAMG,eAAQ,AAACrV,4CAASkV,OAAOE,GAAGL;AAAlC,AACE,GAAI,CAAYM,iBAAQN;AACtB,IAAMO,UAAQ;AAAd,AACE,AACE,AAACR,4CAASI,OAAOE,GAAGE;;AACpB,AAAoBA;;AACxBD;;;AARV,AAUE,IAAArW,wBAAiB,AAACJ,eAAKuW;AAAvB,AAAA,GAAAnW;AAAA,kBAAAA,dAASmW;AAAT,AACE,eAAcD;eAAOC;;;;;AACrB,AAAI,AAACL,4CAASI,WAAOE,GAAGvL;;AAAGgB;;;;;AAEjCA;;;AAGR,AAAA;;;uBAAA,+BAAA/M,tDAAM0X;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,mDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAvX,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,qDAAA,rDAAMuX,gEACA5L;AADN,AACmB,IAAA5K,oBAAaS;AAAb,AAAA,oBAAAT;AAAA,QAAAA,JAAW6L;AAAX,AAAA,AAAyB,OAAC7K,4CAAS6K,EAAE,AAAC5F,eAAK2E;;AAA3C;;;;AADnB,CAAA,qDAAA,rDAAM4L,gEAEF3K,EAAEjB;AAFN,AAEmB,oBAAWiB;AAAX,AAAyB,uEAAA,hEAAC7K,4CAAS6K,EAAE,AAAC5F,eAAK2E;;AAA3C;;;;AAFnB,CAAA,qDAAA,rDAAM4L,gEAGF3K,EAAEjB,EAAEmE;AAHR,AAGmB,oBAAWlD;AAAc,OAAC7K,4CAAS6K,EAAE,AAAC5F,eAAK2E,GAAGmE;;AAAWA;;;;AAH5E,CAAA,+CAAA,/CAAMyH;;AAAN,AAMA,IAAMT,iBAAS;AAAf,AAEE,AAAA;;;0BAAA,kCAAAjX,5DAAM4X;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAzX,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAMyX,mEACAT;AADN,AACoB,iGAAA,1FAACU,sDAAQlW,iCAAWwV;;;AADxC,CAAA,wDAAA,xDAAMS,mEAEF7K,EAAEoK;AAFN,AAEoB,kEAAA,3DAACU,sDAAQ9K,EAAWoK;;;AAFxC,CAAA,wDAAA,xDAAMS,mEAGF7K,EAAEoK,GAAGlH;AAHT,AAIG,oBAAIlD;AACF,IAAOA,QAAEA;IAAGoK,SAAG,AAACrG,cAAIqG;;AAApB,AACE,GAAIA;AACF,IAAMpK,QAAE,AAAC7K,4CAAS6K,MAAE,AAAC5F,eAAK,AAACtG,gBAAMsW,SAAKF;AAAtC,AACE,GAAI,CAAYlK,UAAEkK;AAChBhH;;AACA,eAAOlD;eAAE,AAACjM,eAAKqW;;;;;;AACnBpK;;;;;AACJkD;;;;AAZL,CAAA,kDAAA,lDAAM2H;;AAAN,AAcL,AAAA;;;;uBAAA,+BAAA5X,tDAAM+X;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA5X,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,qDAAA,rDAAM4X,gEAGF5W,EAAE2K;AAHN,AAG0B,OAAC8E,4CAAIzP,EAAE2K;;;AAHjC,CAAA,qDAAA,rDAAMiM,gEAIF5W,EAAE2K,EAASmE;AAJf,AAI0B,OAACW,4CAAIzP,EAAE2K,EAAEmE;;;AAJnC,CAAA,qDAAA,rDAAM8H,gEAKF5W,EAAEmW,GAAGU,GAAM/H;AALf,AAK0B,IAAA/O,oBAAW,iBAAAsC,oBAAKrC;AAAL,AAAA,oBAAAqC;AAAO,IAAAxB,mBAAI,AAACkW,eAAK/W,EAAEmW;AAAZ,AAAA,oBAAAtV;AAAAA;;AAAgB,OAACkW,eAAK/W,EAAE6W;;;AAA/BxU;;;AAAX,AAAA,oBAAAtC;AAAA,QAAAA,JAAS+W;AAAT,AAA6D,OAACE,cAAIF;;AAAGhI;;;;AAL/F,CAAA,qDAAA,rDAAM8H,gEAMF5W,EAAEmW,GAAGU,GAAGI,GAAGnI;AANf,AAM0B,IAAA/O,oBAAW,iBAAAsC,oBAAKrC;AAAL,AAAA,oBAAAqC;AAAO,IAAAxB,mBAAI,AAACkW,eAAK/W,EAAEmW;AAAZ,AAAA,oBAAAtV;AAAAA;;AAAA,IAAAA,uBAAgB,AAACkW,eAAK/W,EAAE6W;AAAxB,AAAA,oBAAAhW;AAAAA;;AAA4B,OAACkW,eAAK/W,EAAEiX;;;;AAA3C5U;;;AAAX,AAAA,oBAAAtC;AAAA,QAAAA,JAAS+W;AAAT,AAA6D,OAACE,cAAIF;;AAAGhI;;;;AAN/F,CAAA,+CAAA,/CAAM8H;;AAAN,AAqDA,AACE,AAAA;;;4BAAA,oCAAA/X,hEAAMsY;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAC,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAD,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAE;;;;;AAAA,CAAA,0DAAA,1DAAMF;AAAN,AAAA;;;AAAA,CAAA,0DAAA,1DAAMA,qEAEF9L;AAFJ,AAEmBA;;;AAFnB,CAAA,0DAAA,1DAAM8L,qEAGF9L,KAAK3M;AAHT,AAGmB,GAAI,MAAA,LAAMA;AAAG2M;;AAAK,OAACnL,6CAAKmL,KAAK3M;;;;AAHhD,AAAA,CAAA,iEAAA,jEAAMyY,4EAIF9L,KAAK3M,EAAIgZ;AAJb,AAImB,OAAC1M,+CAAOmM,0BAAU,AAACQ,wDAAUtM,KAAK3M,GAAGgZ;;;AAJxD;AAAA,CAAA,8CAAA,WAAAJ,zDAAMH;AAAN,AAAA,IAAAI,WAAA,AAAA7X,gBAAA4X;IAAAA,eAAA,AAAA3X,eAAA2X;IAAAE,WAAA,AAAA9X,gBAAA4X;IAAAA,eAAA,AAAA3X,eAAA2X;AAAA,AAAA,IAAAG,qBAAA;AAAA,AAAA,OAAAA,wDAAAF,SAAAC,SAAAF;;;AAAA,CAAA,oDAAA,pDAAMH;;AAAN;AAMA,AAAA;;;4BAAA,oCAAAtY,hEAAMgZ;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAT,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAS,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAR;;;;;AAAA,CAAA,0DAAA,1DAAMQ;AAAN,AAAA;;;AAAA,CAAA,0DAAA,1DAAMA,qEAEFxM;AAFJ,AAEmBA;;;AAFnB,CAAA,0DAAA,1DAAMwM,qEAGFxM,KAAK3M;AAHT,AAGmB,oBAAIA;AAAE,OAACwB,6CAAKmL,KAAK3M;;AAAG2M;;;;AAHvC,AAAA,CAAA,iEAAA,jEAAMwM,4EAIFxM,KAAK3M,EAAIgZ;AAJb,AAImB,OAAC1M,+CAAO6M,0BAAU,AAACI,wDAAU5M,KAAK3M,GAAGgZ;;;AAJxD;AAAA,CAAA,8CAAA,WAAAI,zDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAArY,gBAAAoY;IAAAA,eAAA,AAAAnY,eAAAmY;IAAAE,WAAA,AAAAtY,gBAAAoY;IAAAA,eAAA,AAAAnY,eAAAmY;AAAA,AAAA,IAAAL,qBAAA;AAAA,AAAA,OAAAA,wDAAAM,SAAAC,SAAAF;;;AAAA,CAAA,oDAAA,pDAAMD;;AAAN,AAMF,AAEA,AAAA;;;6BAAA,qCAAAhZ,lEAAMsZ;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAe,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAd;;;;;AAAA,CAAA,2DAAA,3DAAMc,sEAEFnY,EAAE2K,EAAEC;AAFR,AAEiB,GAAQ,MAAA,LAAMA;AAAiB5K;;AAAd,OAACF,8CAAME,EAAE2K,EAAEC;;;;AAF7C,CAAA,2DAAA,3DAAMuN,sEAGFnY,EAAMwY;AAHV,AAGiB,OAAC/L,oBAAW0L,2BAAuBnY,EAAKwY;;;AAHzD,AAAA,CAAA,kEAAA,lEAAML,6EAIFnY,EAAE2K,EAAEC,EAAIP;AAJZ,AAIiB,OAACF,2BAAWgO,2BAAW,AAACM,yDAAWzY,EAAE2K,EAAEC,GAAGP;;;AAJ3D;AAAA,CAAA,+CAAA,WAAA+N,1DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA3Y,gBAAA0Y;IAAAA,eAAA,AAAAzY,eAAAyY;IAAAE,WAAA,AAAA5Y,gBAAA0Y;IAAAA,eAAA,AAAAzY,eAAAyY;IAAAG,WAAA,AAAA7Y,gBAAA0Y;IAAAA,eAAA,AAAAzY,eAAAyY;AAAA,AAAA,IAAAX,qBAAA;AAAA,AAAA,OAAAA,wDAAAY,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,qDAAA,rDAAMD;;AAAN,AAMA,AAAA;;;6BAAA,qCAAAtZ,lEAAM8Z;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAvB,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAuB,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAtB;;;;;AAAA,CAAA,2DAAA,3DAAMsB,sEAEF3Y,EAAE2K,EAAEC;AAFR,AAEiB,oBAAIA;AAAE,OAAC9K,8CAAME,EAAE2K,EAAEC;;AAAG5K;;;;AAFrC,CAAA,2DAAA,3DAAM2Y,sEAGF3Y,EAAMwY;AAHV,AAGiB,OAAC/L,oBAAWkM,2BAAuB3Y,EAAKwY;;;AAHzD,AAAA,CAAA,kEAAA,lEAAMG,6EAIF3Y,EAAE2K,EAAEC,EAAIP;AAJZ,AAIiB,OAACF,2BAAWwO,2BAAW,AAACK,yDAAWhZ,EAAE2K,EAAEC,GAAGP;;;AAJ3D;AAAA,CAAA,+CAAA,WAAAuO,1DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAnZ,gBAAAkZ;IAAAA,eAAA,AAAAjZ,eAAAiZ;IAAAE,WAAA,AAAApZ,gBAAAkZ;IAAAA,eAAA,AAAAjZ,eAAAiZ;IAAAG,WAAA,AAAArZ,gBAAAkZ;IAAAA,eAAA,AAAAjZ,eAAAiZ;AAAA,AAAA,IAAAnB,qBAAA;AAAA,AAAA,OAAAA,wDAAAoB,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,qDAAA,rDAAMD;;AAAN,AAMA,AAAA;;;2BAAA,mCAAA9Z,9DAAMqa;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA8B,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA7B;;;;;AAAA,CAAA,yDAAA,zDAAM6B,oEAEFlZ,EAAE2K,EAAEC;AAFR,AAEiB,GAAQ,AAAC2O,0BAAUvZ,EAAE2K;AAAiB3K;;AAAd,OAACF,8CAAME,EAAE2K,EAAEC;;;;AAFpD,CAAA,yDAAA,zDAAMsO,oEAGFlZ,EAAMwY;AAHV,AAGiB,OAAC/L,oBAAWyM,yBAAmBlZ,EAAKwY;;;AAHrD,AAAA,CAAA,gEAAA,hEAAMU,2EAIFlZ,EAAE2K,EAAEC,EAAIP;AAJZ,AAIiB,OAACF,2BAAW+O,yBAAS,AAACM,uDAASxZ,EAAE2K,EAAEC,GAAGP;;;AAJvD;AAAA,CAAA,6CAAA,WAAA8O,xDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA1Z,gBAAAyZ;IAAAA,eAAA,AAAAxZ,eAAAwZ;IAAAE,WAAA,AAAA3Z,gBAAAyZ;IAAAA,eAAA,AAAAxZ,eAAAwZ;IAAAG,WAAA,AAAA5Z,gBAAAyZ;IAAAA,eAAA,AAAAxZ,eAAAwZ;AAAA,AAAA,IAAA1B,qBAAA;AAAA,AAAA,OAAAA,wDAAA2B,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,mDAAA,nDAAMD;;AAAN,AAMA,AAAA;;;+BAAA,uCAAAra,tEAAM6a;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAtC,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAsC,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAArC;;;;;AAAA,CAAA,6DAAA,7DAAMqC,wEAEF1Z,EAAE2K,EAAEC;AAFR,AAEiB,GAAQ,MAAA,LAAMA;AAAiB,OAACmP,+CAAO/Z,EAAE2K;;AAAxB,OAAC7K,8CAAME,EAAE2K,EAAEC;;;;AAF7C,CAAA,6DAAA,7DAAM8O,wEAGF1Z,EAAMwY;AAHV,AAGiB,OAAC/L,oBAAWiN,6BAA2B1Z,EAAKwY;;;AAH7D,AAAA,CAAA,oEAAA,pEAAMkB,+EAIF1Z,EAAE2K,EAAEC,EAAIP;AAJZ,AAIiB,OAACF,2BAAWuP,6BAAa,AAACM,2DAAaha,EAAE2K,EAAEC,GAAGP;;;AAJ/D;AAAA,CAAA,iDAAA,WAAAsP,5DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAla,gBAAAia;IAAAA,eAAA,AAAAha,eAAAga;IAAAE,WAAA,AAAAna,gBAAAia;IAAAA,eAAA,AAAAha,eAAAga;IAAAG,WAAA,AAAApa,gBAAAia;IAAAA,eAAA,AAAAha,eAAAga;AAAA,AAAA,IAAAlC,qBAAA;AAAA,AAAA,OAAAA,wDAAAmC,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,uDAAA,vDAAMD;;AAAN,AAMA,AAAA;;;+BAAA,uCAAA7a,tEAAMqb;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA9C,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA8C,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA7C;;;;;AAAA,CAAA,6DAAA,7DAAM6C,wEAEFla,EAAE2K,EAAEC;AAFR,AAEiB,oBAAIA;AAAE,OAAC9K,8CAAME,EAAE2K,EAAEC;;AAAG,OAACmP,+CAAO/Z,EAAE2K;;;;AAF/C,CAAA,6DAAA,7DAAMuP,wEAGFla,EAAMwY;AAHV,AAGiB,OAAC/L,oBAAWyN,6BAA2Bla,EAAKwY;;;AAH7D,AAAA,CAAA,oEAAA,pEAAM0B,+EAIFla,EAAE2K,EAAEC,EAAIP;AAJZ,AAIiB,OAACF,2BAAW+P,6BAAa,AAACK,2DAAava,EAAE2K,EAAEC,GAAGP;;;AAJ/D;AAAA,CAAA,iDAAA,WAAA8P,5DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA1a,gBAAAya;IAAAA,eAAA,AAAAxa,eAAAwa;IAAAE,WAAA,AAAA3a,gBAAAya;IAAAA,eAAA,AAAAxa,eAAAwa;IAAAG,WAAA,AAAA5a,gBAAAya;IAAAA,eAAA,AAAAxa,eAAAwa;AAAA,AAAA,IAAA1C,qBAAA;AAAA,AAAA,OAAAA,wDAAA2C,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,uDAAA,vDAAMD;;AAAN,AAMA,AAQA,wBAAA,xBAAMM,wDAAgB5P;AAAtB,AAAyB,GAAM,sBAAA,rBAAG,AAAC9H,gBAAM8H;AAAhB,AAAsB,wDAAA,jDAAC6P,+CAAY7P;;AAAnC;;;AACzB,wBAAA,xBAAM8P,wDAAgB9P;AAAtB,AAAyB,GAAM,sBAAA,rBAAG,AAAC9H,gBAAM8H;AAAM,wDAAA,jDAAC6P,+CAAY7P;;AAAnC;;;AACzB,8BAAA,9BAAM+P,oEAAgB/P;AAAtB,AAAyB,IAAMU,IAAE,AAACxI,gBAAM8H;AAAf,AAAmB,GAAM,KAAA,JAAGU;AAAT,AAAA,0FAAe,aAAA,iBAAA,5BAAM,KAAA,JAAGA,UAAK,AAACsP,cAAIhQ,SAAI,AAACiQ,eAAKjQ;;AAA5C;;;AAC5C,+BAAA,/BAAMkQ,sEAAgBlQ;AAAtB,AAAyB,IAAMU,IAAE,AAACxI,gBAAM8H;AAAf,AAAmB,GAAM,KAAA,JAAGU;AAAT,AAAc,IAAAyP,aAAWnQ;SAAX,AAAAtL,4CAAAyb,WAAA,IAAA,hEAAOC;AAAP,AAAA,0FAAeA,GAAG,aAAA,sDAAA,jEAAM,KAAA,JAAG1P,UAAK,iDAAA,jDAACmP,+CAAY7P;;AAA3D;;;AAC5C,iCAAA,jCAAMqQ,0EAAgBvc;AAAtB,AAAyB,oBAAMA;AAAN,AAAQ,GAAI,AAACuU,sBAAMvU;AAAG,OAACwc,oBAAUxc;;AAAGA;;;AAApC;;;AAEzB,AAIA;;;8BAAA,9BAAOyc,oEAEJxM,GAAG7H;AAFN,AAGE,GAAI,AAACjE,wBAAQ8L;AACX,IAAAyM,aAAc,AAACT,4BAAYhM;SAA3B,AAAArP,4CAAA8b,WAAA,IAAA,hEAAOC;SAAP,AAAA/b,4CAAA8b,WAAA,IAAA,hEAAUE;AAAV,AAAgC,QAACxU,kCAAAA,yCAAAA,TAAEuU,qBAAAA,lBAAGC,qBAAAA;;AACtC,cAAA,VAAOC;IAAW5M,SAAGA;;AAArB,AACE,IAAA6M,aAAgB7M;IAAhB8M,aAAA,AAAA9L,cAAA6L;IAAAE,eAAA,AAAAhc,gBAAA+b;IAAAA,iBAAA,AAAA9b,eAAA8b;SAAAC,LAAOC;SAAPF,LAAYG;AAAZ,AACE,GAAIA;AACF,eAAO,AAAC1b,6CAAKqb,QAAQI;eAAIC;;;;;AACzB,QAAC9U,kCAAAA,8CAAAA,dAAEyU,0BAAAA,lBAAQI,0BAAAA;;;;;;AAErB,AAEA,wBAAA,xBAAME,wDAAO/W,EAAEuG;AAAf,AAAqB,GAAI,AAACxI,wBAAQwI;AAAM,IAAAxK,mBAAI,4BAAA,wDAAA,pFAACqT,uBAAO7I,iEAAevG;AAA3B,AAAA,oBAAAjE;AAAAA;;AAAA;;;AAAkC,oDAAA,7CAAC+T,8EAAQ,AAACkH,6CAAKhX,GAAGuG;;;AAE5F,2CAAA,3CAAM0Q,8FAEHrd;AAFH,AAEM,SAAI,AAACgX,qBAAKhX,QAAG,AAAC2B,6CAAE,AAACyC,gBAAMpE,GAAG,AAACoE,gBAAM,AAAC2S,2BAAW/W;;AAEnD;;;AAAKsd,0BAAwC,AAACC,gDAAQC,iBAAOC;AAC7D,AAAA;;;yBAAA,iCAAAtd,1DAAMud;AAAN,AAAA,IAAAtH,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAsH,4DAAA,CAAA,UAAA,MAAAnH;;;AAAA,AAAA,CAAA,8DAAA,9DAAMmH,yEACHtV,EAAI5H;AADP,AACa,OAACqd,8CAAMzV,EAAE,AAACqU,4BAAYjc,KAAK,WAAKyP,GAAG6N;AAAR,AAAY,OAACC,+CAAO9N,GAAG,AAACqN,wBAAQQ;;;;AADxE,CAAA,iDAAA,jDAAMJ;;AAAN;AAAA,CAAA,2CAAA,WAAAC,tDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA5c,gBAAA2c;IAAAA,eAAA,AAAA1c,eAAA0c;AAAA,AAAA,IAAA5E,qBAAA;AAAA,AAAA,OAAAA,wDAAA6E,SAAAD;;;AAAA,AAGA,AAEA,AAAA;;;2BAAA,mCAAAxd,9DAAM8d;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAvF,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAuF,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAtF;;;;;AAAA,CAAA,yDAAA,zDAAMsF,oEACFI,GAAGC;AADP,AACoB,OAACpI,6CAAKmI,GAAGC;;;AAD7B,AAAA,CAAA,gEAAA,hEAAML,2EAEFI,GAAGC,KAAOtF;AAFd,AAGG,OAACuF,2BACC,AAACjS,+CAAO,WAAKhB,IAAIC;AAAT,AAAa,OAACe,+CAAOkS,qBAAMlT,IAAIC;GACrC,AAACkT,qBAAUJ,IACX,AAACK,eAAKJ,KAAKtF;;;AANlB;AAAA,CAAA,6CAAA,WAAAkF,xDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAnd,gBAAAkd;IAAAA,eAAA,AAAAjd,eAAAid;IAAAE,WAAA,AAAApd,gBAAAkd;IAAAA,eAAA,AAAAjd,eAAAid;AAAA,AAAA,IAAAnF,qBAAA;AAAA,AAAA,OAAAA,wDAAAoF,SAAAC,SAAAF;;;AAAA,CAAA,mDAAA,nDAAMD;;AAAN,AAQA,qCAAA,rCAAuBU;AAOvB;;;kCAAA,lCAAMC,4EAEHjS,KAAWvG,EAAEgC;AAFhB,AAGE,GAAI,EAAA,MAAA,OAAA,AAAAzF,sCAAA,lDAAgByD,4CAAEuG;AACpB,OAAC4R,2BAAY,AAAC7N,uDAAS,WAAKpF,IAAIuT;AAAT,AAAY,OAACC,mDAAMxT,IAAI,CAAClD,kCAAAA,oCAAAA;GAAK,AAACqW,qBAAU9R,MAAMvG;;AACrE,AAAa,OAACsK,uDAAS,WAAKpF,IAAIuT;AAAT,AAAY,OAACrd,6CAAM8J,IAAI,CAAClD,kCAAAA,oCAAAA;GAAgBuE,KAAMvG;;;AAEzE,AAEA,+BAAA,/BAAM2Y,sEAASzd,EAAE2K,EAAE7D;AAAnB,AAAsB,OAAC4W,oDAAO1d,EAAE2K,EAAE,iBAAAgT,WAAG,AAAClO,4CAAIzP,EAAE2K;AAAV,AAAA,0EAAAgT,wBAAAA,1FAAC7W,kCAAAA,4CAAAA;;;AACnC,AAAA;;;;6BAAA,qCAAAjI,lEAAMgf;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7e,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAM6e,sEAIFC;AAJJ,AAI2CA;;;AAJ3C,CAAA,2DAAA,3DAAMD,sEAKFC,SAAUd;AALd,AAKoB,OAAChS,+CAAgBkS,qBAAMY,SAAId;;;AAL/C,CAAA,2DAAA,3DAAMa,sEAMFC,SAAItQ,MAAMwP;AANd,AAMoB,OAAC1S,kDAAUkD,MAAM0P,qBAAMY,SAAId;;;AAN/C,CAAA,qDAAA,rDAAMa;;AAAN,AAQA,AAAA;;;;4BAAA,oCAAAhf,hEAAMmf;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAhf,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAMgf;AAAN,AAGW,OAACC;;;AAHZ,CAAA,0DAAA,1DAAMD,qEAIFE;AAJJ,AAKG,kBAAKnU;AAAL,AACE,IAAMoU,QAAM,AAACC,yBAAU,qBAAA,rBAACjB;AAAxB,AACE;;;AAAA,AACY,QAACpT,mCAAAA,qCAAAA;;6BACTC;AAFJ,AAEY,QAACD,mCAAAA,wCAAAA,PAAGC,oBAAAA;;6BACZA,IAAIC;AAHR,AAIG,IAAMU,IAAE,CAACuT,sCAAAA,2CAAAA,PAAMjU,uBAAAA;AAAf,AACE,GAAI,0BAAA,AAAAzG,1BAAC+V,0CAAW4E,OAAMxT;AACpBX;;AACA,AACE,qDAAA,mDAAA,xGAAQmU,wGAAAA,nDAAMX,+FAAM7S;;AACpB,QAACZ,mCAAAA,4CAAAA,XAAGC,wBAAAA,pBAAIC,wBAAAA;;;oBANbD,IAAIC;;;;;6BAAJD;;6BAAAA,IAAIC;;;;;;;;;;;;AAVf,CAAA,oDAAA,pDAAM+T;;AAAN,AAkBA,AAEA;;;6BAAA,7BAAMK,kEAEHre;AAFH,AAGE,oBAAMA;AAAN,AACE,GAAI,CAAG,AAAC8C,gBAAM9C,KAAGqd,AAAA;AACf,OAACJ,2BAAY,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC8S,oDAAO1d,MAAE4K,EAAED;GAAI,qBAAA,rBAACwS,yDAAcnd;;AACnE,AAAa,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC9K,8CAAOE,MAAE4K,EAAED;GAAnC,mCAAsD3K;;;AAHvE;;;AAKF;;;mCAAA,nCAAMse,8EAEHte;AAFH,AAGE,IAAAD,oBAAc,AAACse,2BAAWre;AAA1B,AAAA,oBAAAD;AAAA,SAAAA,LAAWwe;AAAX,AAAA,AACE,GAAI,AAACle,6CAAE,AAACyC,gBAAMyb,IAAI,AAACzb,gBAAM9C;AACvBue;;AACA,MAAA,AAAAxW,6BAAA,kBAAA,mFAAA,KAAA,UAAA,2CAAA,2CAAA,gPAAA,1LACU,2CAAA,wDAAA,qDAAA,AAAAE,vDAAWjI,sEAAAA;;;AAJzB;;;AAMF;;;2BAAA,3BAAMwe,8DAEHC,OAAOze;AAFV,AAGE,oBAAMA;AAAN,AACE,GAAI,CAAG,AAAC8C,gBAAM9C,KAAGqd,AAAA;AACf,OAACJ,2BAAY,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC8S,oDAAO1d,MAAE,CAACye,uCAAAA,0CAAAA,LAAO9T,sBAAAA,IAAGC;GAAI,qBAAA,rBAACuS,yDAAcnd;;AAC5E,AAAa,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC9K,8CAAOE,MAAE,CAACye,uCAAAA,0CAAAA,LAAO9T,sBAAAA,IAAGC;GAA5C,mCAA+D5K;;;AAHhF;;;AAKF;;;2BAAA,3BAAM0e,8DAEHC,OAAO3e;AAFV,AAGE,oBAAMA;AAAN,AACE,GAAI,EAAA,AAAAqB,oCAAA,CAAA,AAAAyB,sBAAA,MAAA,jCAAgB9C,qBAAAA;AAClB,OAACid,2BAAY,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC8S,oDAAO1d,MAAE2K,EAAE,CAACgU,uCAAAA,0CAAAA,LAAO/T,sBAAAA;GAAK,AAACuS,qBAAUnd,GAAGA;;AAC3E,AAAa,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC9K,8CAAOE,MAAE2K,EAAE,CAACgU,uCAAAA,0CAAAA,LAAO/T,sBAAAA;GAAgB5K,EAAGA;;;AAH/E;;;AAKF;;;8BAAA,9BAAM4e,oEAEHC,SAAS7e;AAFZ,AAGE,oBAAMA;AAAN,AACE,GAAI,EAAA,AAAAqB,oCAAA,CAAA,AAAAyB,sBAAA,MAAA,jCAAgB9C,qBAAAA;AAClB,OAACid,2BAAY,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAE4S;AAAT,AAAY,oBAAI,CAACsB,yCAAAA,4CAAAA,LAASlU,wBAAAA;AAAG3K;;AAAE,OAAC8e,qDAAQ9e,MAAE2K;;GAAK,AAACwS,qBAAWnd,GAAGA;;AACtF,AAAa,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAE4S;AAAT,AAAY,oBAAI,CAACsB,yCAAAA,4CAAAA,LAASlU,wBAAAA;AAAG3K;;AAAE,OAAC+Z,+CAAQ/Z,MAAE2K;;GAAiB3K,EAAGA;;;AAH1F;;;AAKF;;;8BAAA,9BAAM+e,oEAEHC,SAAShf;AAFZ,AAGE,oBAAMA;AAAN,AACE,GAAI,EAAA,AAAAqB,oCAAA,CAAA,AAAAyB,sBAAA,MAAA,jCAAgB9C,qBAAAA;AAClB,OAACid,2BAAY,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,oBAAI,CAACoU,yCAAAA,4CAAAA,LAASpU,wBAAAA;AAAG5K;;AAAE,OAAC8e,qDAAQ9e,MAAE2K;;GAAK,AAACwS,qBAAWnd,GAAGA;;AACtF,AAAa,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,oBAAI,CAACoU,yCAAAA,4CAAAA,LAASpU,wBAAAA;AAAG5K;;AAAE,OAAC+Z,+CAAQ/Z,MAAE2K;;GAAiB3K,EAAGA;;;AAH1F;;;AAKF;;;8BAAA,9BAAMif,oEAAuFJ,SAAS7e;AAAtG,AAAyG,OAAC4e,4BAAY,AAACM,qBAAWL,UAAU7e;;AAC5I;;;8BAAA,9BAAMmf,oEAAuFH,SAAShf;AAAtG,AAAyG,OAAC+e,4BAAY,AAACG,qBAAWF,UAAUhf;;AAC5I;;;;8BAAA,9BAAMof,oEAGHC,aAAarf;AAHhB,AAIE,GACE,AAACwR,uBAAOxR;AAAcA;;AADxB,GAEE,AAACwR,uBAAO6N;AAAcrf;;AAFxB,GAIE,CAAG,AAAC8C,gBAAM9C,KAAG,AAAC8C,gBAAMuc;AACpB,OAACpC,2BACC,AAACxQ,oBACC,WAAKzC,IAAIsV,MAAMC;AAAf,AACE,IAAAxf,oBAAW,AAACgX,eAAK/W,EAAEsf;AAAnB,AAAA,oBAAAvf;AAAA,QAAAA,JAAS+W;AAAT,AACE,OAAC4G,oDAAO,AAACoB,qDAAQ9U,IAAIsV,OAAOC,MAAM,AAACvI,cAAIF;;AACvC,AAAiB9M;;GACrB,AAACmT,qBAAUnd,GACXqf;;AAGJ,OAACpC,2BACC,AAACxQ,oBACC,WAAKzC,IAAIsV,MAAM1U;AAAf,AACE,IAAA7K,oBAAW,AAACgX,eAAKsI,aAAaC;AAA9B,AAAA,oBAAAvf;AAAA,QAAAA,JAAS+W;AAAT,AACE,OAAC4G,oDAAO,AAACoB,qDAAQ9U,IAAIsV,OAAO,AAACtI,cAAIF,GAAGlM;;AACpC,AAAiBZ;;GACrB,AAACmT,qBAAUnd,GACX,AAAWA;;;;;AAEnB,AAEA;;;0BAAA,1BAAMwf,4DAEH1Y,EAAEuE;AAFL,AAGE,GAAU,AAACmG,uBAAOnG;AAAlB;;AAAA,AACE,OAAC4R,2BACC,AAACjS,+CAAO,WAAKhB,IAAItL;AAAT,AAAY,OAACgf,oDAAO1T,IAAI,CAAClD,kCAAAA,qCAAAA,LAAEpI,iBAAAA,IAAGA;GACpC,qBAAA,rBAACye,yDAAc9R;;;AAEvB,AAEA,iCAAA,jCAAMoU,0EAAoCzJ,GAAGhW;AAA7C,AAAgD,mEAAA,WAAA0f,vEAACC;AAAD,AAAU,UAAA,oEAAA,nEAAY,8CAAAD,9CAACjQ,4CAAIzP;GAAMgW;;AACjF,yBAAA,zBAAM4J,0DAAoC5J,GAAGhW;AAA7C,AAAgD,IAAAqC,oBAAK,CAAI,AAACS,gBAAM9C,OAAG,AAAC8C,gBAAMkT;AAA1B,AAAA,GAAA3T;AAA+B,mEAAA,WAAAwd,vEAACF;AAAD,AAAU,mCAAAE,5BAACtG,0BAAUvZ;GAAKgW;;AAAzD3T;;;AAChD,6BAAA,7BAAMyd,kEAAoC9J,GAAGhW;AAA7C,AAAgD,IAAAqC,oBAAK,CAAI,AAACS,gBAAM9C,MAAG,AAAC8C,gBAAMkT;AAA1B,AAAA,GAAA3T;AAA+B,mEAAA,WAAA0d,vEAACJ;AAAD,AAAU,mCAAAI,5BAACxG,0BAAUvZ;GAAKgW;;AAAzD3T;;;AAChD,6BAAA,7BAAM2d,kEAAoChK,GAAGhW;AAA7C,AACE,IAAMigB,aAAW,EAAI,AAACC,yBAASlK,KAAIA,GAAG,AAACL,cAAIK;AAA3C,AACE,IAAA3T,oBACE,CAAI,AAACS,gBAAM9C,MAAO,AAAC8C,gBAAMmd;AAD3B,AAAA,GAAA5d;AAEE,IAAM8d,SAAO,AAAC1K,2BAAWwK;AAAzB,AACE,OAACxT,oBAAU,WAAK8Q,EAAE5S,EAAEC;AAAT,AAAY,GAAI,AAAC2O,0BAAU4G,OAAOxV;AAAtB;;AAA8B,yBAAA,lBAACd;;GAAtD,KAA4E7J;;AAHhFqC;;;AAKJ,AAAA,AACA,AAAA;;;;;;4BAAA,oCAAAxD,hEAAMwhB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAArhB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAMqhB,qEAKFrgB,EAAEgW,GAAalP;AALnB,AAKsB,oEAAA,7DAACwZ,wDAAUtgB,EAAEgW,QAAOlP;;;AAL1C,CAAA,0DAAA,1DAAMuZ,qEAMFrgB,EAAEgW,GAAGlH,UAAUhI;AANnB,AAOG,GAAI,AAAC0K,uBAAOwE;AACV,QAAClP,kCAAAA,qCAAAA,LAAE9G,iBAAAA;;AACH,IAAMugB,MAAI,AAACC,+CAAOxgB,EAAEgW,GAAGlH;IACjB2R,OAAI,CAAC3Z,kCAAAA,uCAAAA,PAAEyZ,mBAAAA;AADb,AAEE,IAAAG,WAAMD;IAANC,eAAA,EAAA,CAAAA,oBAAA1e,oBAAA,AAAA0e,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAC+B1gB;;;KAD/B;KAAA;AAGE,OAACmb,4BAAYnF,GACX,WAAKA,OAAG2K;AAAR,AACE,wEAAA,jEAACL,wDAAUtgB,EAAEgW,YACX,WAAKpL;AAAL,AACE,oBAAIA;AACF,OAACmP,+CAAOnP,EAAE+V;;AADZ;;;;;;;AAIR,OAACC,mBAAS5gB,EAAEgW,GAAGyK;;;;;;AAtBxB,CAAA,oDAAA,pDAAMJ;;AAAN,AAwBA,AAAA,qCAAA,6CAAAxhB,lFAAMiiB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,iEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,iEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9hB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,mEAAA,nEAAM8hB,8EAEFzV,KAAK2K,GAAGrL;AAFZ,AAEe,OAAC4O,0BAAU,AAACiH,+CAAOnV,KAAK2K,IAAIrL;;;AAF3C,CAAA,mEAAA,nEAAMmW,8EAGFzV,KAAK2K;AAHT,AAIG,GAAI,AAACxE,uBAAOwE;AAAZ;;AAEE,OAACmF,4BAAYnF,GAAG,WAAKA,OAAG2K;AAAR,AAAY,OAACI,iEAAa1V,KAAK2K,OAAG2K;;;;;AANvD,CAAA,6DAAA,7DAAMG;;AAAN,AAQA,AAAA,4BAAA,oCAAAjiB,hEAAMoiB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA7J,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA6J,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA5J;;;;;AAAA,CAAA,0DAAA,1DAAM4J,qEACFjhB,EAAEgW,GAAGsL;AADT,AAC0B,oEAAA,7DAAChB,wDAAUtgB,EAAEgW,QAAO,WAAKhW;AAAL,AAAQ,oBAAIA;AAAE,OAAC+Z,+CAAO/Z,MAAEshB;;AAAhB;;;;;AADtD,AAAA,CAAA,iEAAA,jEAAML,4EAEFjhB,EAAEgW,GAAGsL,SAAW5J;AAFpB,AAGG,oEAAA,7DAAC4I,wDAAUtgB,EAAEgW,QACX,WAAKhW;AAAL,AACE,oBAAIA;AACF,OAACgL,+CAAOuW,iBAAO,AAACxH,+CAAO/Z,MAAEshB,UAAU5J;;AADrC;;;;;AALP;AAAA,CAAA,8CAAA,WAAAwJ,zDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAzhB,gBAAAwhB;IAAAA,eAAA,AAAAvhB,eAAAuhB;IAAAE,WAAA,AAAA1hB,gBAAAwhB;IAAAA,eAAA,AAAAvhB,eAAAuhB;IAAAG,WAAA,AAAA3hB,gBAAAwhB;IAAAA,eAAA,AAAAvhB,eAAAuhB;AAAA,AAAA,IAAAzJ,qBAAA;AAAA,AAAA,OAAAA,wDAAA0J,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,0DAAA,1DAAMD,qEASFjhB,EAAEgW;AATN,AAUG,GAAI,AAACxE,uBAAOxR;AACV,AAAUA;;AACV,OAACmb,4BAAYnF,GAAG,WAAKA,OAAG2K;AAAR,AAAY,OAACa,wDAAUxhB,EAAEgW,OAAG2K;;;;;AAZjD,CAAA,oDAAA,pDAAMM;;AAAN,AAcA,AAAA;;;6BAAA,qCAAApiB,lEAAe6iB;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1iB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAe0iB,sEAED1hB;AAFd,AAEuB,+FAAA,xFAAC2hB,yDAAWC,6BAAa5hB;;;AAFhD,CAAA,2DAAA,3DAAe0hB,sEAGXG,UAAU7hB;AAHd,AAGuB,4EAAA,rEAAC2hB,yDAAWE,UAAa7hB;;;AAHhD,CAAA,2DAAA,3DAAe0hB,sEAIXG,UAAU7hB,EAAE8hB;AAJhB,AAKG,IAAMA,YAAM,iBAAAjhB,mBAAIihB;AAAJ,AAAA,oBAAAjhB;AAAAA;;AAAA;;;AAAZ,AACE,OAACoc,2BACC,AAACxQ,oBACC,WAAKzC,IAAIW,EAAEC;AAAX,AACE,oBAAQ,CAACiX,0CAAAA,6CAAAA,LAAUjX,yBAAAA;AAEjB,IAAMmX,mBAAiB,AAACJ,yDAAWE,UAAUjX,EAAE,AAAC1K,6CAAK4hB,UAAMnX;AAA3D,AACE,OAACK,+CAAO,WAAKhB,QAAIC;AAAT,AAAa,OAACuT,mDAAMxT,QAAIC;GAAKD,IAAI+X;;AAF3C,OAACvE,mDAAMxT,IAAI,AAAC9J,oDAAK4hB,UAAMnX,oDAAEC;;GAG7B,qBAAA,rBAACuS,uDACDnd;;;AAdT,CAAA,qDAAA,rDAAe0hB;;AAAf,AAgBA,AAIA,AAAA;;;;iCAAA,yCAAA7iB,1EAAMojB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA7K,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA6K,oEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA5K;;;;;AAAA,CAAA,+DAAA,/DAAM4K;AAAN,AAAA,AAAA;;;AAAA,CAAA,+DAAA,/DAAMA,0EAIFI;AAJJ,AAIW,YAAA1gB,kBAAA,KAAA;AAAA,AAAU0gB;GAAV,KAAA;;;AAJX,CAAA,+DAAA,/DAAMJ,0EAKFI,GAAGC;AALP,AAMK,YAAA3gB,kBAAA,KAAA;AAAA,AACC,IAAM4gB,KAAG,AAAC5S,cAAI0S;IAAIG,KAAG,AAAC7S,cAAI2S;AAA1B,AACE,GACC,EAAKC,QAAGC;AACR,OAACpF,eAAK,AAAC1d,gBAAM6iB,IAAI,AAACnF,eAAK,AAAC1d,gBAAM8iB,IACP,AAACC,6DAAe,AAACC,eAAKH,IAAI,AAACG,eAAKF;;AAHxD,GAICD;AAAGA;;AAJJ,GAKCC;AAAGA;;AALJ;;;;GAFH,KAAA;;;AANL,AAAA,CAAA,sEAAA,tEAAMP,iFAeFI,GAAGC,GAAK/Q;AAfZ,AAgBG,YAAA5P,kBAAA,KAAA;AAAA,AACG,IAAMghB,KAAG,AAACC,+CAAOjQ,mBAAS,AAACkQ,4CAAIlT,cAAI,AAACzP,oDAAKqR,MAAM+Q,qDAAGD;AAAlD,AACE,OAAC5F,+CAAO,AAACoG,4CAAInjB,gBAAMijB,IACX,AAACpG,8CAAM0F,+BAAe,AAACY,4CAAIH,eAAKC;GAH7C,KAAA;;;AAhBH;AAAA,CAAA,mDAAA,WAAAT,9DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAziB,gBAAAwiB;IAAAA,eAAA,AAAAviB,eAAAuiB;IAAAE,WAAA,AAAA1iB,gBAAAwiB;IAAAA,eAAA,AAAAviB,eAAAuiB;AAAA,AAAA,IAAAzK,qBAAA;AAAA,AAAA,OAAAA,wDAAA0K,SAAAC,SAAAF;;;AAAA,CAAA,yDAAA,zDAAMD;;AAAN,AAqBA,AAEA,AAAA;;;;;;;;kCAAA,0CAAApjB,5EAAMkkB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,8DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA3L,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA2L,qEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA1L;;;;;AAAA,CAAA,gEAAA,hEAAM0L,2EAOFxR;AAPJ,AAOW,GAAI,AAACC,uBAAOD;AAAZ;;AAAsB,OAAC0L,2BAAY,AAAC3L,sCAAsB4L,qBAAM,qBAAA,rBAACC,uDAAc5L;;;;AAP1F,CAAA,gEAAA,hEAAMwR,2EAQFV,GAAGC;AARP,AASG,IAAO1X,IAAE,qBAAA,rBAACuS;IAAcoF,KAAG,AAAC5S,cAAI0S;IAAIG,KAAG,AAAC7S,cAAI2S;;AAA5C,AACE,GACE,EAAKC,QAAGC;AACR,eAAO,AAAChF,mDAAM,AAACA,mDAAM5S,EAAE,AAAClL,gBAAM6iB,KAAK,AAAC7iB,gBAAM8iB;eAAK,AAAC7iB,eAAK4iB;eAAI,AAAC5iB,eAAK6iB;;;;;;AAFjE,GAGED;AAAM,OAACtF,2BAAY,AAACjS,+CAAOkS,qBAAMtS,EAAE2X;;AAHrC,GAIEC;AAAM,OAACvF,2BAAY,AAACjS,+CAAOkS,qBAAMtS,EAAE4X;;AAC7B,OAACvF,2BAAYrS;;;;;;;;AAf1B,CAAA,gEAAA,hEAAMmY,2EAiBFV,GAAGC,GAAGc;AAjBV,AAiBsB,qEAAA,9DAACC,iJAAuBhB,GAAGC,GAAGc;;;AAjBpD,AAAA,CAAA,uEAAA,vEAAML,kFAkBFV,GAAGC,GAAGc,GAAK7R;AAlBf,AAkBsB,OAAC8R,8DAAgB,6CAAA,7CAACzO,gIAAMyN,GAAGC,GAAGc,WAAI7R;;;AAlBxD;AAAA,CAAA,oDAAA,WAAAyR,/DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAvjB,gBAAAsjB;IAAAA,eAAA,AAAArjB,eAAAqjB;IAAAE,WAAA,AAAAxjB,gBAAAsjB;IAAAA,eAAA,AAAArjB,eAAAqjB;IAAAG,WAAA,AAAAzjB,gBAAAsjB;IAAAA,eAAA,AAAArjB,eAAAqjB;AAAA,AAAA,IAAAvL,qBAAA;AAAA,AAAA,OAAAA,wDAAAwL,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,0DAAA,1DAAMD;;AAAN,AAoBA,AAKA,0BAAA,1BAAOO,4DAAItjB;AAAX,AAAc,GAAI,AAACyB,iCAAWzB;AAAG,OAACid,2BAAYjd;;AAAGA;;;AAEjD,IAAMujB,WAAG;+BAAT,3BACMC;IACAC,sBAAQ,WAAK7Y;AAAL,AAAU,IAAA8Y,WAAM9Y;IAAN8Y,eAAA,EAAA,CAAAA,oBAAA1hB,oBAAA,AAAA0hB,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;IAClBC,qBAAQ,WAAK3jB,EAAE2K;AAAP,AAAU,GAAI,AAAClJ,iCAAWzB;AAAG,OAAC8e,qDAAQ9e,EAAE2K;;AAAG,OAACoP,+CAAO/Z,EAAE2K;;;AAHnE,AAKE,AAAA;;;;mCAAA,2CAAA9L,9EAAeglB;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7kB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,iEAAA,jEAAe6kB,4EAGXC,YAAMhd,EAAEid;AAHZ,AAGkB,sJAAA,/IAAC/Y,+CAAO,AAACiR,gDAAQ4H,iCAAYC,YAAMhd,QAAOid;;;AAH5D,CAAA,iEAAA,jEAAeF,4EAIXC,YAAMhd,EAAEkd,GAAGC;AAJf,AAKG,IACS3P,KAAI,AAACxR,gBAAMmhB;AADpB,AAAA,GAEE,QAAA,PAAO3P;AAAI,IAAAzT,mBAAImjB;AAAJ,AAAA,oBAAAnjB;AAAAA;;AAAO,GAAM,AAACiB,gCAAUmiB;AAAjB,AAAqB,8BAAA,vBAAC9jB,oBAAU8jB;;AAAhC;;;;AAFpB,IAAAlkB,oBAIc,kBAAA,lBAACgX,eAAKkN;AAJpB,AAAA,oBAAAlkB;AAAA,QAAAA,JAIW+W;AAJX,AAKE,IAAMmN,SAAG,sBAAA,tBAACN,mBAAQM;AAAlB,AACE,oBAAI,AAACjN,cAAIF;AACP,AAAwBmN;;AACxB,OAACC,+DAAYJ,YAAMhd,EAAEkd,GAAGC;;;AAR9B,IAUQ5P,KAAG,AAACvR,gBAAMkhB;AAVlB,AAAA,GAYE,CAAI3P,MAAGC;AACP,IAAM6P,WAAO,EAAI,AAAC1iB,iCAAWuiB,KAAIA,GAAG,EAAI,CAAI3P,MAAGmP,2BAAoB,AAACrG,qBAAU6G,IAAIA;IAC5EI,cAAO,EAAI,AAAC3iB,iCAAW0iB,WAAKE,sBAAOC;AADzC,AAGE,OAAC7X,oBACC,WAAK0X,aAAItN,GAAG0N;AAAZ,AACE,IAAMvJ,KAAG,AAACvL,4CAAIuU,GAAGnN,GAAG0M;AAApB,AACE,oBACE,iBAAAlhB,oBAAKyhB;AAAL,AAAA,oBAAAzhB;AAAA,SAAW,AAACxC,qBAAKmb,SAAI,AAACnb,qBAAK0kB;;AAA3BliB;;;AAAgC,IAAAmiB,WAASL;IAATM,WAAa5N;IAAb6N,WAAgB,AAACpB,wBAAG,+DAAA,/DAACY,oEAAiBpd,EAAEkU,GAAGuJ;AAA3C,AAAA,8FAAAC,SAAAC,SAAAC,kCAAAF,SAAAC,SAAAC,5JAACN,4CAAAA,wEAAAA;;AADnC,GAEE,CAAYpJ,OAAGuI;AAAiB,QAACa,4CAAAA,gEAAAA,tBAAQD,4CAAAA,/BAAItN,4CAAAA,zCAA8B0N,4CAAAA;;AAF7E,oBAGE,AAACd,oBAAWc;AAAoB,OAACZ,mBAAQQ,aAAItN;;AAH/C,oBAIE/P;AACA,IAAM6d,KAAG,CAAC7d,kCAAAA,yCAAAA,TAAEkU,qBAAAA,lBAAGuJ,qBAAAA;AAAf,AACE,oBAAI,AAACd,oBAAQkB;AACX,OAAChB,mBAASQ,aAAItN;;AACd,QAACuN,4CAAAA,gEAAAA,tBAASD,4CAAAA,/BAAItN,4CAAAA,zCAAG8N,4CAAAA;;;AACf,QAACP,4CAAAA,gEAAAA,tBAAOD,4CAAAA,/BAAItN,4CAAAA,zCAAG0N,4CAAAA;;;;;GAC3BJ,SAAI,AAACb,wBAAGW;;AAGZ,IAAMW,WACA,EAAI,AAACnjB,iCAAWwiB,KACdA,GACA,iBAAMA,SAAG,AAAC9jB,oBAAU8jB,GAAG,AAAChkB,eAAK+jB;AAA7B,AACE,GAAI,CAAI1P,MAAGkP;AACT,OAACrG,qBAAU8G;;AACX,AAAWA;;;IAEjBG,cAAO,EAAI,AAAC3iB,iCAAWmjB,WAAKP,sBAAOC;AARzC,AAUE,OAAC7X,oBACC,WAAKmY,aAAIzO,GAAG6E;AAAZ,AACE,IAAMuJ,KAAG,AAAC9U,4CAAIwU,GAAG9N,GAAGoN;AAApB,AACE,oBACE,iBAAAlhB,oBAAKyhB;AAAL,AAAA,oBAAAzhB;AAAA,SAAW,AAACxC,qBAAKmb,SAAI,AAACnb,qBAAK0kB;;AAA3BliB;;;AAAgC,IAAAwiB,WAASD;IAATE,WAAa3O;IAAb4O,WAAgB,AAACzB,wBAAG,+DAAA,/DAACY,oEAAiBpd,EAAEkU,GAAGuJ;AAA3C,AAAA,8FAAAM,SAAAC,SAAAC,kCAAAF,SAAAC,SAAAC,5JAACX,4CAAAA,wEAAAA;;AADnC,GAEE,CAAYG,OAAGhB;AAAiB,QAACa,4CAAAA,gEAAAA,tBAAQQ,4CAAAA,/BAAIzO,4CAAAA,zCAA2B6E,4CAAAA;;AAF1E,oBAGE,AAACyI,oBAAWc;AAAoB,OAACZ,mBAAQiB,aAAIzO;;AAH/C,oBAIErP;AACA,IAAM6d,KAAG,CAAC7d,kCAAAA,yCAAAA,TAAEkU,qBAAAA,lBAAGuJ,qBAAAA;AAAf,AACE,oBAAI,AAACd,oBAAQkB;AACX,OAAChB,mBAAQiB,aAAIzO;;AACb,QAACiO,4CAAAA,gEAAAA,tBAAQQ,4CAAAA,/BAAIzO,4CAAAA,zCAAGwO,4CAAAA;;;AACPC;;;;;GACnBA,SAAI,AAACtB,wBAAGU;;;;;;AA5DjB,CAAA,2DAAA,3DAAeH;;AAAf,AA8DF,AAAA;;;;;wBAAA,gCAAAhlB,xDAAMomB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA7N,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA6N,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA5N;;;;;AAAA,CAAA,sDAAA,tDAAM4N;AAAN,AAAA;;;AAAA,CAAA,sDAAA,tDAAMA,iEAKFjB;AALJ,AAKqB,OAACV,wBAAGU;;;AALzB,CAAA,sDAAA,tDAAMiB,iEAMFjB,GAAGC;AANP,AAMqB,OAACX,wBAAuD,+DAAA,MAAA,rEAACY,0EAAsBF,GAAGC;;;AANvG,CAAA,sDAAA,tDAAMgB,iEAOFjB,GAAGC,GAAGqB;AAPV,AAOqB,OAAChC,wBAAgC,+DAAA,MAAA,rEAACY,0EAAsB,+DAAA,MAAA,rEAACA,0EAAsBF,GAAGC,IAAIqB;;;AAP3G,AAAA,CAAA,6DAAA,7DAAML,wEAQFjB,GAAGC,GAAGqB,GAAK5N;AARf,AAQqB,OAAC4L,wBAAG,+DAAA,MAAA,rEAACY,0EAAsB,AAAC9G,eAAK,+DAAA,MAAA,rEAAC8G,0EAAsB,+DAAA,MAAA,rEAACA,0EAAsBF,GAAGC,IAAIqB,IAAI5N;;;AAR/G;AAAA,CAAA,0CAAA,WAAAwN,rDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAzlB,gBAAAwlB;IAAAA,eAAA,AAAAvlB,eAAAulB;IAAAE,WAAA,AAAA1lB,gBAAAwlB;IAAAA,eAAA,AAAAvlB,eAAAulB;IAAAG,WAAA,AAAA3lB,gBAAAwlB;IAAAA,eAAA,AAAAvlB,eAAAulB;AAAA,AAAA,IAAAzN,qBAAA;AAAA,AAAA,OAAAA,wDAAA0N,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,gDAAA,hDAAMD;;AAAN,AAUA,AAAA;;;;;;+BAAA,uCAAApmB,tEAAM2mB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAApO,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAoO,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAnO;;;;;AAAA,CAAA,6DAAA,7DAAMmO;AAAN,AAAA;;;AAAA,CAAA,6DAAA,7DAAMA,wEAMFxB;AANJ,AAMqB,OAACV,wBAAGU;;;AANzB,CAAA,6DAAA,7DAAMwB,wEAOFxB,GAAGC;AAPP,AAOqB,OAACX,wBAAqD,+DAAA,KAAA,pEAACY,yEAAqBF,GAAGC;;;AAPpG,CAAA,6DAAA,7DAAMuB,wEAQFxB,GAAGC,GAAGqB;AARV,AAQqB,OAAChC,wBAA+B,+DAAA,KAAA,pEAACY,yEAAqB,+DAAA,KAAA,pEAACA,yEAAqBF,GAAGC,IAAIqB;;;AARxG,AAAA,CAAA,oEAAA,pEAAME,+EASFxB,GAAGC,GAAGqB,GAAK5N;AATf,AASqB,OAAC4L,wBAAG,+DAAA,KAAA,pEAACY,yEAAqB,AAAC9G,eAAK,+DAAA,KAAA,pEAAC8G,yEAAqB,+DAAA,KAAA,pEAACA,yEAAqBF,GAAGC,IAAIqB,IAAI5N;;;AAT5G;AAAA,CAAA,iDAAA,WAAA+N,5DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAhmB,gBAAA+lB;IAAAA,eAAA,AAAA9lB,eAAA8lB;IAAAE,WAAA,AAAAjmB,gBAAA+lB;IAAAA,eAAA,AAAA9lB,eAAA8lB;IAAAG,WAAA,AAAAlmB,gBAAA+lB;IAAAA,eAAA,AAAA9lB,eAAA8lB;AAAA,AAAA,IAAAhO,qBAAA;AAAA,AAAA,OAAAA,wDAAAiO,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,uDAAA,vDAAMD;;AAAN,AAWA,AAAA;;;;;6BAAA,qCAAA3mB,lEAAMinB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA1O,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA0O,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAzO;;;;;AAAA,CAAA,2DAAA,3DAAMyO,sEAIFhf;AAJJ,AAAA;;;AAAA,CAAA,2DAAA,3DAAMgf,sEAKFhf,EAAEkd;AALN,AAKuB,OAACV,wBAAGU;;;AAL3B,CAAA,2DAAA,3DAAM8B,sEAMFhf,EAAEkd,GAAGC;AANT,AAMuB,OAACX,wBAAmD,+DAAA,/DAACY,qEAAkBpd,EAAEkd,GAAGC;;;AANnG,CAAA,2DAAA,3DAAM6B,sEAOFhf,EAAEkd,GAAGC,GAAGqB;AAPZ,AAOuB,OAAChC,wBAA8B,+DAAA,/DAACY,qEAAkBpd,EAAE,+DAAA,/DAACod,qEAAkBpd,EAAEkd,GAAGC,IAAIqB;;;AAPvG,AAAA,CAAA,kEAAA,lEAAMQ,6EAQFhf,EAAEkd,GAAGC,GAAGqB,GAAK5N;AARjB,AAQuB,OAAC4L,wBAAG,+DAAA,/DAACY,qEAAkBpd,EAAE,AAACsW,eAAK,+DAAA,/DAAC8G,qEAAkBpd,EAAE,+DAAA,/DAACod,qEAAkBpd,EAAEkd,GAAGC,IAAIqB,IAAI5N;;;AAR3G;AAAA,CAAA,+CAAA,WAAAqO,1DAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAtmB,gBAAAqmB;IAAAA,eAAA,AAAApmB,eAAAomB;IAAAE,WAAA,AAAAvmB,gBAAAqmB;IAAAA,eAAA,AAAApmB,eAAAomB;IAAAG,WAAA,AAAAxmB,gBAAAqmB;IAAAA,eAAA,AAAApmB,eAAAomB;IAAAI,WAAA,AAAAzmB,gBAAAqmB;IAAAA,eAAA,AAAApmB,eAAAomB;AAAA,AAAA,IAAAtO,qBAAA;AAAA,AAAA,OAAAA,wDAAAuO,SAAAC,SAAAC,SAAAC,SAAAJ;;;AAAA,CAAA,qDAAA,rDAAMD;;AAAN,AAUA,AAAA;;;;;;oCAAA,4CAAAjnB,hFAAMwnB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,gEAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAjP,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAiP,uEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAhP;;;;;AAAA,CAAA,kEAAA,lEAAMgP,6EAKFvf;AALJ,AAAA;;;AAAA,CAAA,kEAAA,lEAAMuf,6EAMFvf,EAAEkd;AANN,AAMuB,OAACV,wBAAGU;;;AAN3B,CAAA,kEAAA,lEAAMqC,6EAOFvf,EAAEkd,GAAGC;AAPT,AAOuB,OAACX,wBAAiD,+DAAA,/DAACY,oEAAiBpd,EAAEkd,GAAGC;;;AAPhG,CAAA,kEAAA,lEAAMoC,6EAQFvf,EAAEkd,GAAGC,GAAGqB;AARZ,AAQuB,OAAChC,wBAA6B,+DAAA,/DAACY,oEAAiBpd,EAAE,+DAAA,/DAACod,oEAAiBpd,EAAEkd,GAAGC,IAAIqB;;;AARpG,AAAA,CAAA,yEAAA,zEAAMe,oFASFvf,EAAEkd,GAAGC,GAAGqB,GAAK5N;AATjB,AASuB,OAAC4L,wBAAG,+DAAA,/DAACY,oEAAiBpd,EAAE,AAACsW,eAAK,+DAAA,/DAAC8G,oEAAiBpd,EAAE,+DAAA,/DAACod,oEAAiBpd,EAAEkd,GAAGC,IAAIqB,IAAI5N;;;AATxG;AAAA,CAAA,sDAAA,WAAA4O,jEAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA7mB,gBAAA4mB;IAAAA,eAAA,AAAA3mB,eAAA2mB;IAAAE,WAAA,AAAA9mB,gBAAA4mB;IAAAA,eAAA,AAAA3mB,eAAA2mB;IAAAG,WAAA,AAAA/mB,gBAAA4mB;IAAAA,eAAA,AAAA3mB,eAAA2mB;IAAAI,WAAA,AAAAhnB,gBAAA4mB;IAAAA,eAAA,AAAA3mB,eAAA2mB;AAAA,AAAA,IAAA7O,qBAAA;AAAA,AAAA,OAAAA,wDAAA8O,SAAAC,SAAAC,SAAAC,SAAAJ;;;AAAA,CAAA,4DAAA,5DAAMD;;AAAN,AAWA,IAAMM,WAAG,WAAKjoB,EAAE2R;AAAP,AAAU3R;;AAAnB,AACE,AAAA;;;;;;2BAAA,mCAAAG,9DAAMgoB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAzP,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAyP,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAxP;;;;;AAAA,CAAA,yDAAA,zDAAMwP;AAAN,AAAA;;;AAAA,CAAA,yDAAA,zDAAMA,oEAMF7C;AANJ,AAMqB,OAACV,wBAAGU;;;AANzB,CAAA,yDAAA,zDAAM6C,oEAOF7C,GAAGC;AAPP,AAOqB,OAACX,wBAAqD,+DAAA,/DAACY,qEAAkByC,SAAG3C,GAAGC;;;AAPpG,CAAA,yDAAA,zDAAM4C,oEAQF7C,GAAGC,GAAGqB;AARV,AAQqB,OAAChC,wBAA+B,+DAAA,/DAACY,qEAAkByC,SAAG,+DAAA,/DAACzC,qEAAkByC,SAAG3C,GAAGC,IAAIqB;;;AARxG,AAAA,CAAA,gEAAA,hEAAMuB,2EASF7C,GAAGC,GAAGqB,GAAK5N;AATf,AASqB,OAAC4L,wBAAG,+DAAA,/DAACY,qEAAkByC,SAAG,AAACvJ,eAAK,+DAAA,/DAAC8G,qEAAkByC,SAAG,+DAAA,/DAACzC,qEAAkByC,SAAG3C,GAAGC,IAAIqB,IAAI5N;;;AAT5G;AAAA,CAAA,6CAAA,WAAAoP,xDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAArnB,gBAAAonB;IAAAA,eAAA,AAAAnnB,eAAAmnB;IAAAE,WAAA,AAAAtnB,gBAAAonB;IAAAA,eAAA,AAAAnnB,eAAAmnB;IAAAG,WAAA,AAAAvnB,gBAAAonB;IAAAA,eAAA,AAAAnnB,eAAAmnB;AAAA,AAAA,IAAArP,qBAAA;AAAA,AAAA,OAAAA,wDAAAsP,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,mDAAA,nDAAMD;;AAAN,AAWF,AAcA;;;;;;;;;;;;AAAAK,gCAAUC;AAEV;;;;;iCAAA,jCAAMC,0EAIHrD,KAAKsD;AAJR,AAKE,GAAI,CAAG,AAACvkB,gBAAMukB,QAAM,AAACvkB,gBAAMihB;AAA3B;;AAEE,OAAClV,yDAAW,WAAK7E,IAAIhK,EAAEsnB;AAAX,AAAgB,IAAAzmB,mBAAI,CAACqmB,8DAAAA,qEAAAA,TAAQlnB,iDAAAA,/CAAEsnB,iDAAAA;AAAf,AAAA,oBAAAzmB;AAAAA;;AAAoB,yBAAA,lBAACgJ;;GAAjD,eAAA,VACOka,KAAKsD;;;AAEhB;;;;;;;;;;;;;;;;qCAAA,rCAAME,kFAeHC,QAAQC;AAfX,AAgBE,GAAI,EAAI,AAACjW,uBAAOgW,cAAS,AAAChW,uBAAOiW;AAAjC;;AAEE,OAACxK,2BACC,AAACjS,+CACC,kDAAQhB,IAAI0d;AAAZ,AACE,GAAI,AAAC7nB,qBAAK6nB;AAER,OAACjb,oBACC,WAAKzC,QAAIW,EAAEgd;AAAX,AACE,GAAI,AAACpO,0BAAUiO,QAAQ7c;AACrB,IAAMid,UAAQ,AAACnY,4CAAI+X,QAAQ7c;AAA3B,AACE,GAAI,AAAC9K,qBAAK+nB;AACR,OAAClK,oDAAO1T,QAAIW,EAAE,CAAC4c,mEAAAA,2FAAAA,1BAAmBK,uEAAAA,/DAAQD,uEAAAA;;AAC1C,OAACjK,oDAAO1T,QAAIW,EAAsBid;;;AACtC5d;;GACJA,IAAI0d;;AAEN,IAAM/c,IAAE+c;AAAR,AACE,GAAI,AAACnO,0BAAUiO,QAAQ7c;AACrB,OAAC+S,oDAAQ1T,IAAIW,EAAE,AAAC8E,4CAAI+X,QAAQ7c;;AAC5B,AAASX;;;GAEjB,qBAAA,rBAACmT,yDAAcsK;;;AAEvB,AAOA;;;kCAAA,lCAAeI,4EAEZld;AAFH,AAEM,sFAAA,/EAACmd,mDAAU,AAACvf,yBAASoC;;AAE3B,AAEA,AAAA;;;iCAAA,yCAAA9L,1EAAempB;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAhpB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAegpB,0EAEXhS;AAFJ,AAEoB,uEAAA,hEAACiS,6DAAejS;;;AAFpC,CAAA,+DAAA,/DAAegS,0EAGXhS,GAAGkS;AAHP,AAIG,GAAM,AAACvY,cAAIqG;AAAX,AACE,IAAMmS,QACA,AAACnd,+CACC,WAAKhB,IAAIC;AAAT,AACE,GAAI,QAAA,PAAMA;AACRD;;AACA,OAACgB,+CAAOod,eAAKpe,IAAI,AAAC6d,gCAAgB5d;;GAJxC,iCAKK+L;AANX,AAQE,GAAM,AAACrG,cAAIwY;AAAX,AACE,oBAAID;AACF,OAACpiB,gDAAQ,kDAAA,lDAACuiB,sDAAaF;;AACvB,IAAMG,OAAK,AAAC1N,cAAIuN;AAAhB,AACE,OAACriB,gDAAQ,uBAAA,4DAAA,jFAAM,AAAC6J,cAAI2Y,OAAM,kDAAA,lDAACD,sDAAaC,YACtC,AAACzN,eAAKsN;;;AALd;;;AATJ;;;;AAJH,CAAA,yDAAA,zDAAeH;;AAAf,AAoBA,AAwEA,AAIA,AAAA,iCAAA,yCAAAnpB,1EAAM2pB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxpB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAMwpB,0EAEI9pB,EAAE2R;AAFZ,AAEe,4BAAA,pBAAG,AAACoY,SAAS,CAAW/pB,IAAW2R;;;AAFlD,CAAA,+DAAA,/DAAMmY,0EAGFE,MAAMhqB,EAAE2R;AAHZ,AAGe,QAAG,AAACoY,SAAS,CAAW/pB,IAAW2R,MAAaqY;;;AAH/D,CAAA,yDAAA,zDAAMF;;AAAN,AAKA,AAEA,wBAAA,xBAAMG,wDAAqBC,KAAKC,KAAK/jB;AAArC,AAAoG,GAAI,CAAGA,IAAE8jB;AAAMA;;AAAK,GAAI,CAAG9jB,IAAE+jB;AAAMA;;AAAK/jB;;;;AAC5I,4BAAA,5BAAMgkB,gEAAqBF,KAAKC,KAAK/jB;AAArC,AAAwC,IAAM8jB,WAAK,AAACriB,gBAAOqiB;IAAOC,WAAK,AAACtiB,gBAAOsiB;IAAO/jB,QAAE,AAACyB,gBAAOzB;AAAxD,AAA4D,GAAI,CAAGA,QAAE8jB;AAAMA;;AAAK,GAAI,CAAG9jB,QAAE+jB;AAAMA;;AAAK/jB;;;;AAC5I,8BAAA,9BAAMikB,oEAAqBH,KAAKC,KAAK/jB;AAArC,AAAwC,IAAM8jB,WAAaA;IAAOC,WAAaA;IAAO/jB,QAAUA;AAAxD,AAA4D,GAAI,CAAGA,QAAE8jB;AAAMA;;AAAK,GAAI,CAAG9jB,QAAE+jB;AAAMA;;AAAK/jB;;;;AAE5I,kCAAA,lCAASkkB,4EAAyBC;AAAlC,AAAwC,QAAA,MAAeA;;AACvD,qCAAA,rCAAMC,kFAA4BxqB;AAAlC,AAAwC,QAAA,MAAO,AAAC2K,wBAAU3K;;AAmC1D,AAIA,sBAAA,tBAAMyqB,oDAAKrkB,EAAEskB;AAAb,AAAkB,OAACC,SAASvkB,EAAEskB;;AAC9B,sBAAA,tBAAME,oDAAKxkB;AAAX,AAAkB,GAAI,KAAA,JAAMA;AAAG,UAAGA;;AAAGA;;;AAErC,AAAA;;;;;;wBAAA,gCAAAjG,xDAAM2qB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxqB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAMwqB,iEAMF1kB;AANJ,AAMO,2DAAA,uDAAA,3GAAC2kB,gHAAiB3kB;;;AANzB,CAAA,sDAAA,tDAAM0kB,iEAOFE,GAAGC;AAPP,AAQG,GAAI,eAAA3nB,dAAU2nB;AACZ,8DAAA,vDAACF,oDAAME,QAAOD;;AACd,8DAAA,vDAACD,oDAAMC,QAAOC;;;;AAVnB,CAAA,sDAAA,tDAAMH,iEAYFE,GAAGC,GAAGC;AAZV,AAaG,GAAI,eAAA5nB,dAAU2nB;AACZ,OAACF,oDAAME,GAAGC,GAAGF;;AACb,IAAM5kB,IAAiB8kB;IACjBC,WAAS,sBAAA,kBAAA,tBAAMF,IAAG,SAAA,TAACN,cAAcM;IACjCG,UAAS,kBAAID,UAAS,CAAG/kB,IAAU+kB,UAAU/kB;IAC7CilB,UACA,iBAAMjiB,OAAK4hB;AAAX,AACE,IAAAM,WAAMliB;IAANkiB,eAAA,EAAA,CAAAA,oBAAAhoB,oBAAA,AAAAgoB,aAAA;AAAA,AAAA,QAAAA;KAAA;AACS,OAACC,WAAWH;;;KADrB;AAES,OAACI,WAAWJ;;;KAFrB;AAGS,OAACK,UAAWL;;;KAHrB;AAIS,OAACvjB,gBAAWujB;;;;AACnB,OAAA7V,0CAAA,kBAAA,mFAAA,KAAA,gBAAA,2CAAA,uDAAA,AAAA,wDAAA,2DAAA,AAAA,uFAAA,6DAAA,iFAAA,2DAAA,4DAAA,4DAAA,lnBAAuBnM;;;;AAVjC,AAeE,oBAAQ+hB;AAEN,QAAYE,UAAiBF;;AAD7B,AAAI,OAACtjB,gBAAOwjB;;;;;AA/BrB,CAAA,gDAAA,hDAAMP;;AAAN,AAmCA,AACE,uBAAA,vBAAMY,sDAAgBtlB,EAAEulB;AAAxB,AAAoC,OAACJ,WAAW,iBAAA,hBAAG,CAAWnlB,IAAWulB;;;AACzE,yBAAA,zBAAMC,0DAAgBxlB;AAAtB,AAAoC,OAACmlB,WAAsBnlB;;;AAC3D,yBAAA,zBAAMylB,0DAAgBzlB;AAAtB,AAAyB,iCAAA,zBAAW,AAACmlB,WAAW,KAAA,JAAWnlB;;;AAC3D,yBAAA,zBAAM0lB,0DAAgB1lB;AAAtB,AAAyB,kCAAA,1BAAW,AAACmlB,WAAW,KAAA,JAAWnlB;;;AAC3D,yBAAA,zBAAM2lB,0DAAgB3lB;AAAtB,AAAyB,mCAAA,3BAAW,AAACmlB,WAAW,KAAA,JAAWnlB;;;AAC3D,yBAAA,zBAAM4lB,0DAAgB5lB;AAAtB,AAAyB,oCAAA,5BAAW,AAACmlB,WAAW,KAAA,JAAWnlB;;;AAC3D,yBAAA,zBAAM6lB,0DAAgBC,UAAU9lB;AAAhC,AACE,IAAMuI,IAAE,SAAA,TAACgc,cAAc,AAAC9iB,gBAAKqkB;AAA7B,AACE,QAAW,AAACX,WAAW,CAAWnlB,IAAGuI,MAAKA;;AAEhD,AAAA;;;8BAAA,sCAAAxO,pEAAMisB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,0DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9rB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,4DAAA,5DAAM8rB,uEACII;AADV,AACqB,2EAAA,pEAACC,0DAAYD;;;AADlC,CAAA,4DAAA,qBAAAH,jFAAMD,uEAEII;AAFV,AAAA,IAAAF,aAAAD;IAAAC,iBAAA,AAAAC,4BAAAD;UAAA,AAAAvb,4CAAAub,eAAA,jEAE4BI;UAF5B,AAAA3b,4CAAAub,eAAA,jEAEgCK;aAFhC,AAAA5b,4CAAAub,eAAA,0DAAA,9HAEoCM;AAFpC,AAGG,IAAMxmB,IAAE,sBAAA,pBAAI,aAAA,ZAAGomB,wBAAiBA;IAC1BK,IAAE,SAAA,TAAClC,aAAWvkB;IACd0mB,IAAE,AAACjlB,gBAAK,CAAA,yDAAA,xDAAG,CAAGglB,IAAE,AAASE,6CAAKF,aAAgBD;IAC9CE,QAAE,AAACjlB,gBAAK,kBAAI6kB,KAAI,EAAI,CAAGI,IAAQJ,MAAKA,IAAII,GAAGA;IAC3CA,QAAE,AAACjlB,gBAAK,kBAAI8kB,KAAI,EAAI,CAAGG,QAAQH,MAAKA,IAAIG,OAAGA;AAJjD,AAKEA;;;AARL,CAAA,sDAAA,tDAAMV;;AAAN,AAUA,AAEA;;;yBAAA,zBAAMY,0DASHC;AATH,AASS,QAAG,AAACC,gBAAqBD;;AAElC,AASA,6BAAA,7BAAME,kEAAcntB,EAAEsB;AAAtB,AAAyB,OAACG,oBAAUzB,EAAE,AAACotB,oDAAM,AAAC7rB,eAAKvB,GAAGsB;;AACtD,+BAAA,/BAAM+rB,sEAAcrtB;AAApB,AAAuB,oBAAI,AAACuB,eAAKvB;AAAG,6BAAA,tBAACyB,oBAAUzB;;AAAOA;;;AAEtD,AAAA;;;2BAAA,mCAAAG,9DAAMotB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAA7U,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA6U,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA5U;;;;;AAAA,CAAA,yDAAA,zDAAM4U,oEAGFvtB;AAHJ,AAGqB,UAAA,MAAA,LAAYA;;;AAHjC,CAAA,yDAAA,zDAAMutB,oEAIFvtB,EAAE2R;AAJN,AAIgB,SAAK,GAAA,MAAA,LAAY3R,kBAAG,AAAC2B,6CAAE3B,EAAE2R;;;AAJzC,AAAA,CAAA,gEAAA,hEAAM4b,2EAKFvtB,EAAE2R,EAAIqH;AALV,AAKgB,IAAArV,oBAAK,GAAA,MAAA,LAAY3D;AAAjB,AAAA,GAAA2D;AAAA,IAAAA,wBAAoB,AAAChC,6CAAE3B,EAAE2R;AAAzB,AAAA,GAAAhO;AAA4B,mEAAA,WAAAgqB,vEAAC1M;AAAD,AAAU,oDAAA0M,7CAAChsB,8DAAI3B;GAAGgZ;;AAA9CrV;;;AAAAA;;;;AALhB;AAAA,CAAA,6CAAA,WAAA6pB,xDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAzsB,gBAAAwsB;IAAAA,eAAA,AAAAvsB,eAAAusB;IAAAE,WAAA,AAAA1sB,gBAAAwsB;IAAAA,eAAA,AAAAvsB,eAAAusB;AAAA,AAAA,IAAAzU,qBAAA;AAAA,AAAA,OAAAA,wDAAA0U,SAAAC,SAAAF;;;AAAA,CAAA,mDAAA,nDAAMD;;AAAN,AAOA,AAEA,AAAA;;;uBAAA,+BAAAptB,tDAAM0tB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAnV,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAmV,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAlV;;;;;AAAA,CAAA,qDAAA,rDAAMkV;AAAN,AAAA;;;AAAA,CAAA,qDAAA,rDAAMA,gEAGF7tB;AAHJ,AAGkBA;;;AAHlB,CAAA,qDAAA,rDAAM6tB,gEAIF7tB,EAAE2R;AAJN,AAIkB,GAAI,MAAA,LAAM3R;AAAG2R;;AAAE3R;;;;AAJjC,CAAA,qDAAA,rDAAM6tB,gEAKF7tB,EAAE2R,EAAEG;AALR,AAKkB,GAAI,MAAA,LAAM9R;AAAG,GAAI,MAAA,LAAM2R;AAAGG;;AAAEH;;;AAAG3R;;;;AALjD,AAAA,CAAA,4DAAA,5DAAM6tB,uEAMF7tB,EAAE2R,EAAEG,EAAIkH;AANZ,AAMkB,GAAI,MAAA,LAAMhZ;AAAG,GAAI,MAAA,LAAM2R;AAAG,GAAI,MAAA,LAAMG;AAAG,OAACoc,qDAAOC,sBAAWnV;;AAAMlH;;;AAAGH;;;AAAG3R;;;;AANxF;AAAA,CAAA,yCAAA,WAAA8tB,pDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA/sB,gBAAA8sB;IAAAA,eAAA,AAAA7sB,eAAA6sB;IAAAE,WAAA,AAAAhtB,gBAAA8sB;IAAAA,eAAA,AAAA7sB,eAAA6sB;IAAAG,WAAA,AAAAjtB,gBAAA8sB;IAAAA,eAAA,AAAA7sB,eAAA6sB;AAAA,AAAA,IAAA/U,qBAAA;AAAA,AAAA,OAAAA,wDAAAgV,SAAAC,SAAAC,SAAAH;;;AAAA,CAAA,+CAAA,/CAAMD;;AAAN,AAQA,AAKA,gCAAA,hCAAMO,wEAAepuB;AAArB,AACE,IAAAquB,aAA+B,kGAAA,IAAA,tGAACjF,mDAAU,4CAAKppB;gBAA/C,AAAAY,4CAAAytB,WAAA,IAAA,vEAAOC;yBAAP,AAAA1tB,4CAAAytB,WAAA,IAAA,hFAAiBE;AAAjB,AAAA,kDAAA,0DACc,iBAAAltB,oBAAa,iBAAA,jBAACmtB,uBAAcF;AAA5B,AAAA,oBAAAjtB;AAAA,QAAAA,JAAWsF;AAAX,AAAA,AAAwC,OAAC8nB,6CAAK7mB,8BAAQjB;;AAAtD;;KADd,8DAEc,iBAAAtF,oBAAaktB;AAAb,AAAA,oBAAAltB;AAAA,QAAAA,JAAWsF;AAAX,AAAA,AAA2B,OAACsC,0BAAetC;;AAA3C;;;;AAEhB,AAoBA,AA8BA,AAgBA,AAEA;;;AAAa+nB,yCAEX;AAwCF,AAcA;;;8BAAA,9BAAMC,oEAGH3uB;AAHH,AAKW,qBAAW4uB,bAAkB5uB;;AAmCrC,AACE;;;2BAAA,3BAAM6uB;AAAN,AAAoF,YAAAD;;;AACpF;;;yBAAA,zBAAME;AAAN,AAAoF,YAAAF;;;AACpF;;;0BAAA,1BAAMK;AAAN,AAAoF,OAACC;;;AACrF;;;AAAMC,2BACJ,iBAAA9tB,oBAAc,oFAAA,pFAACguB,mDAAKvtB;AAApB,AAAA,oBAAAT;AAAA,WAAAA,PAAS+tB;AAAT,AAAA,IAAA/tB,wBACc,iBAAAc,mBACE,wDAAA,xDAACktB,mDAAKD;AADR,AAAA,oBAAAjtB;AAAAA;;AAAA,IAAAA,uBACsB,wDAAA,xDAACktB,mDAAKD;AAD5B,AAAA,oBAAAjtB;AAAAA;;AAAA,IAAAA,uBAC2C,wDAAA,xDAACktB,mDAAKD;AADjD,AAAA,oBAAAjtB;AAAAA;;AAAA,IAAAA,uBAEE,wDAAA,xDAACktB,mDAAKD;AAFR,AAAA,oBAAAjtB;AAAAA;;AAEsB,+DAAA,xDAACktB,mDAAKD;;;;;;AAH1C,AAAA,oBAAA/tB;AAAA,SAAAA,LACSiuB;AADT,AAIE;AAAA,AAAO,OAAC9D,WAAW,CAAA,YAAO,AAAO8D,QAAGF;;;AACpC;AAAA,AAAmB,QAAA,YAAO,AAACF;;;;AAA3B;AAAA,AAAmB,QAAA,YAAO,AAACA;;;;;AAE/B;;;+BAAA,/BAAMK,sEAAuEC;AAA7E,AAAmF,OAAUA;;;AAC7F;;;+BAAA,/BAAMC,sEAAuEC;AAA7E,AAAgG,YAAAd,KAAUc;;AAE/G,6BAAA,7BAAMC,kEAAgC3vB;AAAtC,AAAyC,OAACmF,2BAAKnF;;AAE/C;;;iCAAA,jCAAM4vB,0EAEH5vB;AAFH,AAWK,GACE,cAAW4uB,bAAQ5uB;AAAGA;;AADxB,GAEE,OAAmBA;AAAG,YAAA4uB,KAAU5uB;;AAFlC,GAGE,OAAmBA;AACnB,IAAMA,QAAE,KAAA4uB,KAAU5uB;AAAlB,AACE,oBAAU,AAAC8G,MAAS9G;AAApB;;AAAA,AACEA;;;AANN;;;;;AAqBL;;;gCAAA,hCAAM6vB,wEAEH7vB;AAFH,AAgBK,GACE,cAAW4uB,bAAQ5uB;AAAG,OAAUA;;AADlC,GAEE,OAAmBA;AAAGA;;AAFxB,GAGE,OAAmBA;AACnB,IAAAmC,mBACE,AAAC4E,6BAAa/G;AADhB,AAAA,oBAAAmC;AAAAA;;AAGE,IAAQnC,QAAE,AAAC8vB,WAAc9vB;AAAzB,AAA6B,oBAAU,AAAC8G,MAAS9G;AAApB;;AAAA,AAAuBA;;;;AAPxD;;;;;AASL,AAAQ,0BAAA,1BAAM+vB,4DAAkB/vB;AAAxB,AAAwD,IAAAmC,mBAAI,AAACytB,+BAAS5vB;AAAd,AAAA,oBAAAmC;AAAAA;;AAAiB,iCAAA,1BAACgH,8EAAgBnJ;;;AAElG,AAAQ,yBAAA,zBAAMgwB,0DAAkBhwB;AAAxB,AAAwD,IAAAmC,mBAAI,AAAC0tB,8BAAS7vB;AAAd,AAAA,oBAAAmC;AAAAA;;AAAiB,iCAAA,1BAACgH,6EAAgBnJ;;;AAQlG,AAAA;;;;;;;;;;;;;;;;;;;iCAAA,yCAAAG,1EAAM+vB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA5vB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAM4vB;AAAN,AAmBM,oEAAA,7DAACG;;;AAnBP,CAAA,+DAAA,WAAAF,1EAAMD;AAAN,AAAA,IAAAE,aAAAD;IAAAC,iBAAA,AAAA7D,4BAAA6D;gBAAA,AAAArf,4CAAAqf,eAAA,vEAqBeE;AArBf,AAuBM,oBAAIA;AACF,gDAAoBC;AAApB,AAA6B,OAASD,iBAAUC;;;AAChD,gDAAoBA;AAApB,AAA6B,OAAmBA;;;;;AAzBxD,CAAA,yDAAA,zDAAML;;AAAN,AAmDA,AAMA,IAAMM,mBAAW,AAACH;AAAlB,AACE;;;;;8BAAA,9BAAMI,oEAKHjB;AALH,AAKS,QAACgB,iDAAAA,uDAAAA,RAAWhB,mCAAAA;;AAEvB,AAIA,8BAAA,9BAAMkB,oEAAgBC;AAAtB,AAA4B,gCAAA,xBAAG,AAAC9oB,gBAAK8oB;;AACrC,8BAAA,9BAAMC,oEAAgBC;AAAtB,AAA4B,0CAAA,nCAACC,eAAK,AAACjpB,gBAAKgpB;;AACxC,AAAA;;;qBAAA,6BAAA1wB,lDAAM6wB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,iDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,iDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,iDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAtY,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAsY,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAArY;;;;;AAAA,CAAA,mDAAA,WAAAsY,9DAAMD;AAAN,AAAA,IAAAE,aAAAD;IAAAC,iBAAA,AAAA3E,4BAAA2E;SAAA,AAAAngB,4CAAAmgB,eAAA,hEAGgEL;YAHhE,AAAA9f,4CAAAmgB,eAAA,nEAG+BQ;YAH/B,AAAA3gB,4CAAAmgB,eAAA,nEAG0DY;aAH1D,AAAA/gB,4CAAAmgB,eAAA,pEAGwBO;WAHxB,AAAA1gB,4CAAAmgB,eAAA,lEAGqDP;WAHrD,AAAA5f,4CAAAmgB,eAAA,lEAGgDW;WAHhD,AAAA9gB,4CAAAmgB,eAAA,lEAGqCS;YAHrC,AAAA5gB,4CAAAmgB,eAAA,nEAG0CU;YAH1C,AAAA7gB,4CAAAmgB,eAAA,nEAGkBM;AAHlB,AAIG,OAAC5F,uBACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,iDAAA,/BAAI4F,OAAO,SAAA,RAAWA,8BACtB,gDAAA,9BAAIC,QAAO,UAAA,TAAWA,6BACtB,+CAAA,7BAAIC,OAAO,SAAA,RAAWA,6BACtB,4CAAA,1BAAIC,MAAO,QAAA,PAAWA,2BACtB,6CAAA,3BAAIC,OAAO,SAAA,RAAWA,2BACtB,yCAAA,vBAAIC,MAAO,QAAA,PAAWA,wBACtB,wCAAA,tBAAIlB,MAAO,QAAA,PAAWA,uBACtB,+BAAA,bAAImB,OAAkBA,cACtB,yBAAA,PAAIjB,IAAkBA;;;AAd7B,CAAA,mDAAA,nDAAMG,8DAgBIvZ,GAAG6E;AAhBb,AAgB8B,wDAAA,jDAACyV,iGAAIta,GAAG6E;;;AAhBtC,CAAA,mDAAA,nDAAM0U,8DAiBIvZ,GAAG6E,GAAGnE,GAAG0N;AAjBnB,AAiB8B,wDAAA,jDAACkM,iGAAIta,GAAG6E,GAAInE,GAAG0N;;;AAjB7C,AAAA,CAAA,0DAAA,1DAAMmL,qEAkBIvZ,GAAG6E,GAAGnE,GAAG0N,GAAK7M;AAlBxB,AAkB8B,OAAC+Y,iDAAG,2CAAA,3CAACtmB,2BAAWma,gEAAOnO,GAAG6E,GAAGnE,GAAG0N,KAAI7M;;;AAlBlE;AAAA,CAAA,uCAAA,WAAAmY,lDAAMH;AAAN,AAAA,IAAAI,WAAA,AAAApwB,gBAAAmwB;IAAAA,eAAA,AAAAlwB,eAAAkwB;IAAAE,WAAA,AAAArwB,gBAAAmwB;IAAAA,eAAA,AAAAlwB,eAAAkwB;IAAAG,WAAA,AAAAtwB,gBAAAmwB;IAAAA,eAAA,AAAAlwB,eAAAkwB;IAAAI,WAAA,AAAAvwB,gBAAAmwB;IAAAA,eAAA,AAAAlwB,eAAAkwB;AAAA,AAAA,IAAApY,qBAAA;AAAA,AAAA,OAAAA,wDAAAqY,SAAAC,SAAAC,SAAAC,SAAAJ;;;AAAA,CAAA,6CAAA,7CAAMH;;AAAN,AAoBA,AAAA;;;uBAAA,+BAAA7wB,tDAAM8xB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,mDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAvZ,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAuZ,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAtZ;;;;;AAAA,CAAA,qDAAA,rDAAMsZ,gEAGIM;AAHV,AAG8B,OAAC3B,4BAAS,AAACmB,iDAAGQ;;;AAH5C,CAAA,qDAAA,rDAAMN,gEAIIxa,GAAG6E;AAJb,AAI8B,OAACsU,4BAAS,iDAAA,jDAACmB,iGAAIta,GAAG6E;;;AAJhD,CAAA,qDAAA,rDAAM2V,gEAKIxa,GAAG6E,GAAGnE,GAAG0N;AALnB,AAK8B,OAAC+K,4BAAS,iDAAA,jDAACmB,iGAAIta,GAAG6E,GAAInE,GAAG0N;;;AALvD,AAAA,CAAA,4DAAA,5DAAMoM,uEAMIxa,GAAG6E,GAAGnE,GAAG0N,GAAK7M;AANxB,AAM8B,OAAC4X,4BAAS,AAACmB,iDAAG,2CAAA,3CAACtmB,2BAAWma,gEAAOnO,GAAG6E,GAAGnE,GAAG0N,KAAI7M;;;AAN5E;AAAA,CAAA,yCAAA,WAAAkZ,pDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAnxB,gBAAAkxB;IAAAA,eAAA,AAAAjxB,eAAAixB;IAAAE,WAAA,AAAApxB,gBAAAkxB;IAAAA,eAAA,AAAAjxB,eAAAixB;IAAAG,WAAA,AAAArxB,gBAAAkxB;IAAAA,eAAA,AAAAjxB,eAAAixB;IAAAI,WAAA,AAAAtxB,gBAAAkxB;IAAAA,eAAA,AAAAjxB,eAAAixB;AAAA,AAAA,IAAAnZ,qBAAA;AAAA,AAAA,OAAAA,wDAAAoZ,SAAAC,SAAAC,SAAAC,SAAAJ;;;AAAA,CAAA,+CAAA,/CAAMD;;AAAN,AAQA,AAaA,AA0CA,AAIA;;;6BAAA,7BAAaO;AAIb,qCAAA,rCAAMC,kFAEHzyB;AAFH,AAIW,qBAAW0yB,bAA0B1yB;;AAEhD,AAAA;;;;;;;8BAAA,sCAAAG,pEAAMyyB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAtyB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,4DAAA,5DAAMsyB;AAAN,AAOkC,YAAAF;;;AAPlC,CAAA,4DAAA,5DAAME,uEASsBlnB;AAT5B,AASkC,GAAI,iBAAWgnB,hBAAyBhnB;AAAMA;;AAAK,YAAAgnB,yBAA2B,4CAAKhnB;;;;AATrH,CAAA,sDAAA,tDAAMknB;;AAAN,AAWA;;;4BAAA,5BAAMC,gEAE+DC;AAFrE,AAIW,OAAYA;;AAEvB,AAAA;;;4BAAA,oCAAA3yB,hEAAM6yB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,IAAAta,yBAAA;AAAA,AAAA,IAAArC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAqC,4BAAA,CAAA,UAAApC;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAqC,uBAAA,EAAA,CAAA,MAAA,AAAAD,gCAAA,AAAA,KAAAlC,qBAAA,AAAAkC,6BAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAsa,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAra;;;;;AAAA,CAAA,0DAAA,1DAAMqa,qEAGoCI,YAAYpzB;AAHtD,AAII,GAAI,MAAA,LAAMA;AACR,AAASozB;;AACT,OAASA,mBAEE,AAAmBpzB;;;;AARpC,AAAA,CAAA,iEAAA,jEAAMgzB,4EAWqCI,YAAYpzB,EAAIgZ;AAX3D,AAYI,OAAC1M,+CACC,WAAKhB,IAAIC;AAAT,AAAa,OAAC8nB,wDAAU/nB,IAAIC;GAC5B,AAAC8nB,wDAAUD,YAAYpzB,GAAGgZ;;;AAdhC;AAAA,CAAA,8CAAA,WAAAia,zDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAlyB,gBAAAiyB;IAAAA,eAAA,AAAAhyB,eAAAgyB;IAAAE,WAAA,AAAAnyB,gBAAAiyB;IAAAA,eAAA,AAAAhyB,eAAAgyB;AAAA,AAAA,IAAAla,qBAAA;AAAA,AAAA,OAAAA,wDAAAma,SAAAC,SAAAF;;;AAAA,CAAA,oDAAA,pDAAMD;;AAAN,AAgBA,AAEA,AAAA;;;;;;;8BAAA,sCAAA7yB,pEAAeozB;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,0DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAjzB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,4DAAA,5DAAeizB;AAAf,AAMkB,6HAAA,tHAACC,0DAAY,AAACC;;;AANhC,CAAA,4DAAA,5DAAeF,uEAORG;AAPP,AAOkB,OAACF,0DAAY,AAACC,4DAAaC;;;AAP7C,CAAA,4DAAA,5DAAeH,uEAQXT,GAAGY;AARP,AASG,IACMC,YACA,iBAAMC,MAAU,4CAAKF;IACfG,kBAAU,yBAAA,zBAACnU;AADjB,AAEE;AAAA,AACE,oBAAA,AAAA5a,gBAAK+uB;AACH,AAAI,AAASf,UAAGc;;AAAhB;;AACA,AAAI,uCAAA,vCAACE,uBAAQD;;AAAb;;;;AAPZ,AASE;;;AAAA,AACcf;;kDACV9yB;AAFJ,AAEc,GAAI,MAAA,LAAMA;AAAG8yB;;AAAG,AAAI,AAACa;;AAAM,OAACN,wDAAUP,GAAG9yB;;;;mCACnDA,EAAIgZ;AAHR,AAIG,oBAAI,iBAAArV,oBAAK,MAAA,LAAM3D;AAAX,AAAA,GAAA2D;AAAc,OAACsd,4DAAQ8S,qBAAK/a;;AAA5BrV;;;AAAJ;;AAEE,AACE,AAACgwB;;AACD,OAACrnB,+CACC,WAAKhB,IAAIC;AAAT,AAAa,OAAC8nB,wDAAU/nB,IAAIC;GAC5B,AAAC8nB,wDAAUP,GAAG9yB,GAAGgZ;;;yBAPtBhZ;IAAIgZ;;;;EAAAA;;oCAAJhZ,EAAIgZ;;;IAAJhZ;IAAIgZ;0BAAJhZ,EAAIgZ;;;;;;yCAAJhZ;IAAIgZ;;;;;kDAAJhZ;;;;;;;;6EAAAA;;;;;;;;;;;;;AArBT,CAAA,sDAAA,tDAAeuzB;;AAAf,AA8BA,AAEA,AAAA;;;yBAAA,iCAAApzB,1DAAM8zB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,qDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3zB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,uDAAA,vDAAM2zB;AAAN,AAEY,OAACR;;;AAFb,CAAA,uDAAA,vDAAMQ,kEAGF3oB;AAHJ,AAGY,mDAAKA;;;AAHjB,CAAA,uDAAA,vDAAM2oB,kEAIF3oB,IAAIC;AAJR,AAKG,GAAI,QAAA,PAAMA;AACRD;;AACA,OAAS,AAACmoB,0DAAYnoB,YAEX,AAAmBC;;;;AATnC,CAAA,iDAAA,jDAAM0oB;;AAAN,AAWA,AAAA;;;wBAAA,gCAAA9zB,xDAAOg0B;AAAP,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7zB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAO6zB;AAAP,AAEW,OAACV;;;AAFZ,CAAA,sDAAA,tDAAOU,iEAGHrB;AAHJ,AAGW,mDAAKA;;;AAHhB,CAAA,sDAAA,tDAAOqB,iEAIHrB,GAAGvnB;AAJP,AAKG,GAAI,QAAA,PAAMA;AACRunB;;AAES,OAAwBA,UAAG,AAAmBvnB;;;;AAR5D,CAAA,gDAAA,hDAAO4oB;;AAAP,AAUA,AAMA,AAAA;;;2BAAA,mCAAAh0B,9DAAMk0B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/zB,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAM+zB,oEAGcpkB;AAHpB,AAGwB,8DAAA,KAAA,5DAACqkB,iEAAuBrkB;;;AAHhD,CAAA,yDAAA,zDAAMokB,oEAIFX,UAAgBzjB;AAJpB,AAIwB,wEAAA,jEAACqkB,uDAASZ,eAAczjB;;;AAJhD,CAAA,yDAAA,zDAAMokB,oEAKFX,UAAU5kB,MAAMmB;AALpB,AAMG,oBAAI,iBAAAtM,oBAAK+vB;AAAL,AAAA,oBAAA/vB;AAAe,iEAAA,1DAAC4wB,gDAAKb;;AAArB/vB;;;AACF,IAAM+vB,gBAAW,4CAAMA;AAAvB,AACE,oBAAI5kB;AACF,OAAClD,kDAAU,AAAC4oB,6CAAK1lB,MAAM,AAAC2lB,kDAAUf,gBAAYS,sBAAM,AAACV,4DAAaxjB;;AAClE,OAACrE,kDAAsB,AAAC6oB,kDAAUf,eAAYS,sBAAM,AAACV,4DAAaxjB;;;AAEtE,oBAAInB;AACF,AAAK,OAAClD,kDAAUkD,MAAMqlB,sBAAM,AAACV,4DAAaxjB;;AAC1C,mDAAK,AAAC3D,+CAAgB6nB,sBAAM,AAACV,4DAAaxjB;;;;;AAdjD,CAAA,mDAAA,nDAAMokB;;AAAN,AAgBA,AAUA,sCAAA,tCAAMK,oFAEH/tB,EAAEguB;AAFL,AAIW,uDAAA,hDAACJ,qDAAQ,AAAU5tB,UAAEguB;;AAEhC,yCAAA,zCAAMC,0FAEHjuB,EAAEguB;AAFL,AAIW,8BAAA,tBAAO,AAAUhuB,UAAEguB;;AAE9B,uCAAA,vCAAME,sFAEHluB,EAAEguB;AAFL,AAKK,IAAMG,QAAW,AAAUnuB;IACrBouB,aAAW,AAAUJ;AAD3B,AAEE,GAAM,CAAIG,SAAMC;AAAhB,AACE,uDAAA,hDAACR,qDAAQ,AAAU5tB,UAAEguB,OAAO,CAAGG,QAAMC;;AADvC;;;AAGP,AAAA;;;mCAAA,2CAAA50B,9EAAM80B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA30B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,iEAAA,jEAAM20B,4EAEFtuB,EAAEguB;AAFN,AAEwB,+EAAA,IAAA,5EAACO,+DAAWvuB,EAAEguB;;;AAFtC,CAAA,iEAAA,jEAAMM,4EAGFtuB,EAAEguB,OAAO9f;AAHb,AAGwB,yFAAA,lFAACqgB,+DAAWvuB,EAAEguB,OAAO9f;;;AAH7C,CAAA,iEAAA,jEAAMogB,4EAIFtuB,EAAEguB,OAAO9f,UAAUsgB;AAJvB,AAKG,IAAM3pB,SACA,kBAAI2pB,aAEO,AAAsBxuB,cAAUguB,OAAa9f,WAE7C,AAAsBlO,UAAUguB,OAAa9f;AAL9D,AAOE,GAAM,uDAAA,vDAAC0f,gDAAK/oB;AAAZ,AAAuBA;;AAAvB;;;;AAZL,CAAA,2DAAA,3DAAMypB;;AAAN,AAcA,AAEA;;;2CAAA,3CAAMG,8FAKHvR,GAAGC;AALN,AAQK,IAAA3hB,mBACE,CAAY0hB,OAAGC;AADjB,AAAA,GAAA3hB;AAAAA;;AAEE,IAAMkzB,KAAG,AAAUxR;IACbyR,KAAG,AAAUxR;AADnB,AAEE,IAAAngB,oBACE,CAAI0xB,OAAGC;AADT,AAAA,GAAA3xB;AAIE,OAAC+M,uDACC,WAAKpF,IAAIqF;AAAT,AACE,IAAMgT,KAAG,AAAc,AAASE,UAAGlT;IAC7BiT,KAAG,AAAc,AAASE,UAAGnT;AADnC,AAEE,GAAI,AAAChP,6CAAEgiB,GAAGC;AAAV;;AAAmB,yBAAA,lBAACzY;;GAJ1B,KAAA,IAOEkqB;;AAXJ1xB;;;;AAaT,AAQA,AAAA;;;;2BAAA,mCAAAxD,9DAAM+I;AAAN,AAAA,IAAAqsB,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAArsB,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA5I,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAM4I,oEAIQvC;AAJd,AAIiB,8DAAA,vDAAC6uB,0GAAc7uB;;;AAJhC,CAAA,yDAAA,zDAAMuC,oEAKFusB,UAAU9uB;AALd,AAMG,IAAM8uB,gBACA,iBAAAC,WAAMD;IAANC,eAAA,EAAA,CAAAA,oBAAApyB,oBAAA,AAAAoyB,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;;AAKE,AAEE,OAAAngB,0CAAA,kBAAA,mFAAA,KAAA,qBAAA,2CAAA,uDAAA,AAAA,oEAAA,2DAAA,AAAA,6FAAA,6DAAA,iFAAA,wDAAA,0DAAA,0DAAA,loBAAuBkgB;;;;;AARjC,AAcW,OAAwC9uB,YAAE8uB;;;AApBxD,CAAA,mDAAA,nDAAMvsB;;AAAN,AAsBA,AAEA;;;;;;;;;;8BAAA,9BAAMysB,oEAUHhvB,EAAEivB,MAAMC;AAVX,AAaK,GACE,OAASD;AACT,OAAUjvB,UAAE,KAAAxD,uCAAA,hCAAY,AAAC2yB,yBAAkBF,aAAYC;;AAFzD,GAKE,kBAAW1yB,jBAAUyyB;AACrB,IAAMG,QAAM,CAAA,IAAS,oCAAA,AAAA,IAAA,tBAAM,AAAcH,4BACpB,mCAAA,AAAA,IAAA,rBAAM,AAAcA;IACnCC,kBACA,EAAI,OAASA,0BACXA,YAGA;mCAAOr1B;AAAP,AAAa,IAAAw1B,WAAa,AAAClf,cAAItW;AAAlB,AAAA,8FAAAw1B,kCAAAA,xHAACH,4CAAAA,sDAAAA;;;IAAPr1B;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;;AAPf,AAQE,OAAUmG,UAAE,KAAAxD,OAAY,AAAUyyB,aAAOG,QAAOF;;AAC5C,MAAA,AAAAxsB,6BAAA,kBAAA,mFAAA,KAAA,+FAAA,KAAA,zFAAgB,CAAA,kEAA2BusB;;;;AAExD,AACE,8BAAA,9BAAeK,oEAAUj2B;AAAzB,AAA4B,GAAI,MAAA,LAAMA;AAAV;;AAAmBA;;;;AAE/C,AAAA,+BAAA,uCAAAG,tEAAMg2B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA71B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,6DAAA,7DAAM61B,wEAGaC,IAAI51B;AAHvB,AAG8B,OAAC61B,2DAAQJ,4BAASG,IAAI51B;;;AAHpD,CAAA,6DAAA,7DAAM21B,wEAKOrnB,MAAMsnB,IAAI51B;AALvB,AAMI,GAAI,QAAA,PAAM41B;AAAV;;AAEE,IAAM51B,WAAK,kBAAIsO,OAAM,AAAC2f,6CAAK3f,MAAMtO,MAAMA;AAAvC,AAEW,OAACqd,8CAAMyY,mBAAYF,IAAc51B;;;;AAVlD,CAAA,uDAAA,vDAAM21B;;AAAN;AAYA,AAAA;;;;;;;yBAAA,iCAAAh2B,1DAAMo2B;AAAN,AAAA,IAAAngB,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAmgB,4DAAA,CAAA,UAAA,MAAAhgB;;;AAAA,AAAA,CAAA,8DAAA,9DAAMggB,yEAOHH,IAAM51B;AAPT,AAOe,OAAC61B,2DAAQD,IAAI51B;;;AAP5B,CAAA,iDAAA,jDAAM+1B;;AAAN;AAAA,CAAA,2CAAA,WAAAC,tDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAz1B,gBAAAw1B;IAAAA,eAAA,AAAAv1B,eAAAu1B;AAAA,AAAA,IAAAzd,qBAAA;AAAA,AAAA,OAAAA,wDAAA0d,SAAAD;;;AAAA,AASF;;;gCAAA,hCAAME,wEAGHhD,UAAU/mB;AAHb,AAIE,IAAMinB,MAAIF;AAAV,AACE,GAAI,AAACnvB,4BAAWqvB;AACd,mDAAK,sEAAA,tEAACtnB,+CAAO2nB,0BAAUtnB;;AACvB,IAAMgqB,4BAAoB,yBAAA,zBAACjX;IACrBkX,oBAAoB,yBAAA,zBAAClX;AAD3B,AAEE,mDACE,AAACpT,+CACC,WAAKhB,IAAIC;AAAT,AACE,IAAMA,UAAG,4CAAKA;IACRsrB,kBAAU,qDAAA,rDAACl1B,6CAAE4J;IACburB,4BAAoB,AAAClC,uCAAiBrpB,QAAGqoB;IACzCmD,0BAAoB,AAAClC,qCAAiBtpB,QAAGqoB;+BAH/C,AAAA9uB,3BAIMkyB,2CAAqBL;uBAJ3B,AAAA7xB,nBAKMmyB,mCAAqBL;AAL3B,AAOE,AAAC9C,uBAAQ6C,0BAAoBI;;AAC7B,oBAAME;AAAN,AAAiB,AAACnD,uBAAQ8C,kBAAYC;;AAAtC;;AAEA,oBAAIG;AACF,oBAAIF;AACF,OAACzD,wDAAU/nB,IAAI,kBAAA,lBAAYC;;AAC3B,OAAC8nB,wDAAU/nB,IAAIC;;;AAEjB,oBAAIurB;AACF,OAACzD,wDAAU/nB,IAAIC;;AACf,oBAAI,iBAAApJ,mBAAI80B;AAAJ,AAAA,oBAAA90B;AAAAA;;AAAe00B;;;AACjB,OAACxD,wDAAU/nB,IAAIC;;AACf,AAAI,AAAC8nB,wDAAU/nB,IAAIsoB;;AACf,OAACP,wDAAU/nB,IAAIC;;;;GAC7B,AAACkoB,4DACD9mB;;;AAEZ,AAAA,uBAAA,+BAAAxM,tDAAM+2B;AAAN,AAAA,IAAA9gB,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA8gB,0DAAA3gB;;;AAAA,AAAA,CAAA,4DAAA,5DAAM2gB,uEAEDzN;AAFL,AAEY,qCAAA,9BAACiN,kCAAkBjN;;;AAF/B,CAAA,+CAAA,/CAAMyN;;AAAN;AAAA,CAAA,yCAAA,WAAAC,pDAAMD;AAAN,AAAA,IAAAvgB,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAA1F,cAAAkmB;;;AAAA,AAIA,AAEA;;;;mCAAA,nCAAMC,8EAIHzwB;AAJH,AAIM,6EAAA,MAAA,5EAAC0wB,uBAAY,4CAAK1wB;;AAExB,8BAAA,9BAAM2wB,oEAAmB3wB;AAAzB,AAA4B,GAAI,AAACpC,4BAAWoC;AAAhB;;AAAqB,OAACvC,gBAAM,qDAAA,rDAACglB,mDAAUziB;;;AACnE,AAEA,AAAA;;;2BAAA,mCAAAxG,9DAAMo3B;AAAN,AAAA,IAAAnhB,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAmhB,8DAAAhhB;;;AAAA,AAAA,CAAA,gEAAA,hEAAMghB,2EAGDtnB;AAHL,AAIE,mDACE,AAAC3D,+CACC,6BAAQhB,IAAIC;AAAZ,AACE,GAAI,AAACksB,4BAAYlsB;AACf,OAACe,+CAAOjB,mBAAGC,IAAIC;;AACf,OAAC8nB,wDAAU/nB,IAAI,4CAAKC;;GACxB,AAACkoB,4DACDxjB;;;AAXN,CAAA,mDAAA,nDAAMsnB;;AAAN;AAAA,CAAA,6CAAA,WAAAC,xDAAMD;AAAN,AAAA,IAAA5gB,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAA1F,cAAAumB;;;AAAA,AAaA,AAKA;;;;gCAAA,hCAAME,wEAGH7T,GAAGC;AAHN,AAIE,oBAAM,iBAAAngB,oBAAKkgB;AAAL,AAAA,oBAAAlgB;AAAQmgB;;AAARngB;;;AAAN,AAGK,SAAA,mFAAA,IAAA,5FAAMg0B;IACArb,KAAG,AAACxF,cAAM+M;IACVgC,KAAG,AAAC/O,cAAMgN;IACVnO,KAAG,AAACvR,gBAAMkY;IACV1G,KAAG,AAACxR,gBAAMyhB;IACVsE,OAAK,iBAAA3Z,kBAAKmF;IAALlF,kBAAQmF;AAAR,AAAA,SAAApF,kBAAAC,mBAAAD,kBAAAC;;IACLyZ,OAAK,iBAAA5Z,kBAAKqF;IAALpF,kBAAQqF;AAAR,AAAA,SAAAtF,kBAAAC,mBAAAD,kBAAAC;;AANX,AAQE,OAACG,uDACC,WAAKpF,IAAIqF;AAAT,AACE,GAAI,CAAIA,OAAIuZ;AACV,IAAAvmB,oBAAK,AAAChC,6CAAE,+CAAA,/CAACoP,4CAAI4mB,QAAQ,+CAAA,/CAAC5mB,4CAAI4mB;AAA1B,AAAA,GAAAh0B;AAAmC2H;;AAAnC3H;;;AACA,IAAAA,oBAAK,AAAChC,6CAAE,AAACoP,4CAAIuL,GAAG3L,KAAK,AAACI,4CAAI8U,GAAGlV;AAA7B,AAAA,GAAAhN;AAAmC2H;;AAAnC3H;;;GAJN,KAMEwmB;;AAjBT;;;AAmBF,AAEA;;;gCAAA,hCAAeyN,wEAEZC,SAASC;AAFZ,AAoBK,IAAMC,KACA,KAAAC,kBAAA,QAAA,uFAAA,5DAC6BH,mCACAC;AAHnC,AAME,kBAAK1xB;AAAL,AAAQ,OAAS2xB,UAAG3xB;;;AAE3B,AAEA,IAAM6xB,aAAK,8BAAA,IAAA,lCAACL;IACNM,aAAK,8BAAA,IAAA,lCAACN;AADZ,AAGE;;;;+BAAA,/BAAMO,sEAIHC;AAJH,AAKE,IAAM5wB,KAAW4wB;AAAjB,AACE,GACE,OAAA,NAAI5wB;AAAS,+EAAA,3BAAK,AAAC0wB,WAAK,MAAA,LAAG1wB;;AAD7B,GAEE,OAAA,NAAIA;AAAS,8EAAA,1BAAK,AAAC0wB,WAAK,MAAA,LAAG1wB;;AAF7B,GAGE,OAAA,NAAIA;AAAS,kFAAA,9BAAK,AAACywB,WAAK,MAAA,LAAGzwB;;AAH7B,GAIE,OAAA,NAAIA;AAAS,+EAAA,3BAAK,AAACywB,WAAK,MAAA,LAAGzwB;;AACd,oEAAA,hBAAK,AAACywB,WAAQzwB;;;;;;AAEnC,AAEA,AAAA;;;;;;;;;gCAAA,wCAAArH,xEAAMm4B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAh4B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAMg4B,yEASKt4B;AATX,AASc,mEAAA,5DAACu4B,gEAAgBv4B;;;AAT/B,CAAA,8DAAA,9DAAMs4B,yEAUFE,OAAOx4B;AAVX,AAWG,IAAMw4B,aAAO,AAAC3wB,gBAAK,iBAAA6wB,aAAA,iBAAA,AAAA,oBAAA,AAAA7yB,+BAAqB2yB;AAArB;;AAAAG;;gBAAA,IAAAvgB,IAAAwgB;AAAA,AAAAxgB;;AAAA,AAAA,oBAAAsgB;AAAA,OAAAG,sCAAA,kBAAA,KAAA,GAAA,AAAA,8FAAA,AAAA,mEAAA,KAAAH,ZAAqBF;;AAAAA;;;IAAxCC,aACc,+EAAA,/EAACrP,mDAAU,AAACvf,yBAAS7J;SADnC,AAAAY,4CAAA63B,WAAA,IAAA,hEACOK;SADP,AAAAl4B,4CAAA63B,WAAA,IAAA,hEACUM;AADV,AAEE,oBAAQA;AAEN,IAAMC,YAAUD;IACVE,WAAU,sDAAA,tDAAC7P,mDAAU0P;IACrBI,YAAU,CAAG,AAAC90B,gBAAM60B,YAAUT;IAC9B1F,KACA,AAACpmB,+BACC,WAAKomB,GAASniB,IAAqCpF;AAAnD,AACE,GAAU,SAAA,RAAOoF;AAAjB;AAAA,AAAsB,2DAAA,3DAAC0iB,wDAAUP;;;AACjC,GAAI,CAAGniB,MAAIuoB;AACT,OAAC7F,wDAAUP,GAAG,cAAA,IAAA,lBAAYvnB;;AAC1B,OAAC8nB,wDAAUP,GAAevnB;;GAC9B,AAACkoB,4DACDwF;AAXR,AAaE,2DAAA,3DAAC5F,wDAAUP;;AACX,AAACO,wDAAUP,GAAGkG;;AAEd,IAAMryB,IAAE,4CAAKmsB;AAAb,AACE,GACE,cAAAxvB,bAAUtD;AAAG,OAACoH,gDAAQT;;AADxB,GAEE,cAAAnD,bAAUxD;AAAG,OAACm5B,+CAAQxyB;;AACAA;;;;AArB5B3G;;;;AAdP,CAAA,wDAAA,xDAAMs4B;;AAAN,AAuCA,AAAA,AAEA,IAAMc,wBAAU7xB;IACV8xB,eAAO,iCAAYC;AAAZ,AAAA;;IACPC,cAAO,gCAAYD;AAAZ,AAAA;;IACPE,kBAAO,WAAKx5B;AAAL,AAAQ,qBAAgDy5B,bAAWz5B;;IAE1E05B,wBACA,WAAK15B;AAAL,AACE,IAAAmC,mBACE,CAACi3B,sDAAAA,yDAAAA,LAAUp5B,qCAAAA;AADb,AAAA,oBAAAmC;AAAAA;;AAEE,GACE,MAAA,LAAMnC;AADR;;AAAA,GAEE,AAACw5B,gBAAKx5B;AAAG,mDAAKA;;AAEd,OAAAuV,0CAAA,kBAAA,mFAAA,KAAA,aAAA,2CAAA,2DAAA,AAAA,qGAAA,uDAAA,AAAA,iFAAA,6DAAA,AAAA,lZAAuBvV;;;;;IAK7B25B,uCACA,WAAKhzB;AAAL,AACE,oBAAM,sCAAA,tCAAC+tB,oCAAc/tB;AAArB,AACE,OAACizB,iHACK,CAAA,mDAAA,HAASjzB,xEACX,yFAAA,OAAA,hGAAC0wB,vBACD,0IAAA,IAAA,9IAACA,vBACD,4KAAA,IAAA,hLAACA,vBACD,6MAAA,kBAAA,/NAACA;;AANP;;;IAQFwC,6BACA,+CACGC,KAAKC;;AADR,AAEE,oBACE,iBAAAC,eAAA,iFAAA,SAAA;AAAA,AAAA,QAAAA,6CAAAA,mDAAAA,RAAiBF,+BAAAA;;AAAMT;;AADzB,oBAEE,iBAAAY,eAAA,+CAAA,iCAAA,kCAAA;AAAA,AAAA,QAAAA,6CAAAA,mDAAAA,RAAiBH,+BAAAA;;AAAMP;;AAFzB,GAGE,AAACr2B,kCAAgB42B;AAAM;qEAAYvuB;AAAZ,AAAgB,OAAC1C,kBAAQixB,KAAK,AAACJ,sBAAWnuB;;;;AAHnE,GAIE,AAACiuB,gBAAgBM;AAAM,eAAO,4CAAKA;eAAMC;;;;;AAJ3C,IAAA14B,oBAMoB,CAAC+3B,sDAAAA,4DAAAA,RAAUU,wCAAAA;AAN/B,AAAA,oBAAAz4B;AAAA,eAAAA,XAMW64B;AANX,AAOE,IAAA74B,wBAAoB,AAACs4B,qCAAsBO;AAA3C,AAAA,oBAAA74B;AAAA,iBAAAA,bAAS84B;AAAT,AACE,eAAOA;eAAWJ;;;;;AAClB;qEAAYxuB;AAAZ,AAAgB,OAAC5J,6CAAEu4B,SAAS,AAACR,sBAAWnuB;;;;;AAT5C,GAWE,EAAI,AAACpH,wBAAQ21B,WAAM,AAAC9iB,qBAAK8iB;AACzB,oBAEE,iBAAAM,eAAC,AAACnjB,cAAI6iB;AAAN,AAAA,QAAAM,6CAAAA,2CAAA,OAAAA,uBAAA;;AAAiBf;;AAFnB,GAGE,mEAAA,nEAAC13B,6CAAE,AAACyC,gBAAM01B;AAAS,eAAO,AAAC94B,gBAAM84B;eAAMC;;;;;AAEvC,IAAAM,aACM,AAAC/tB,+CACC;kBAAAkuB,SAA8BV;AAA9B,AAAA,IAAAW,aAAAD;iBAAA,AAAA55B,4CAAA65B,WAAA,IAAA,xEAAMH;kBAAN,AAAA15B,4CAAA65B,WAAA,IAAA,zEAAiBF;AAAjB,AACE,IAAMT,WAAK,EAAI,AAACN,gBAAIM,WAAM,4CAAKA,UAAM,AAACjwB,yBAASiwB;AAA/C,AACE,IAAAz4B,wBAAoB,EAAI,AAAC6B,kCAAY42B,WAAMA,SAAK,AAACH,qCAAsBG;AAAvE,AAAA,oBAAAz4B;AAAA,iBAAAA,bAAS84B;AAAT,AAAA,0FACSG,WAAiB,AAAC94B,6CAAK+4B,YAAYJ;;AAD5C,0FAEG,AAAC34B,6CAAK84B,WAAWR,UAAYS;;;CALtC,mFAAA,kCAAA,yCAOET;iBARR,AAAAl5B,4CAAAy5B,WAAA,IAAA,xEAAOC;kBAAP,AAAA15B,4CAAAy5B,WAAA,IAAA,zEAAkBE;IAUZG,WAAS,AAACle,oBAAU8d;IACpBK,WACA,iBAAAt5B,wBAAuB,AAACmb,oBAAU+d;AAAlC,AAAA,oBAAAl5B;AAAA,sBAAAA,lBAAWk5B;AAAX,AAAA,AACE,IAAMnyB,IAAE;qEAAYwyB;AAAZ,AAAoB,2DAAA,pDAACE;kBAADD;AAAA,AAAQ,yBAAAA,lBAAChyB,mCAAU+xB;;CAAQL;;;AAAvD,AACE,oBAAIR;AAAO,QAACgB,yDAAAA,4DAAAA,LAAS3yB,wCAAAA;;AAAGA;;;AAF5B;;;AAZN,AAgBE,oBACE,iBAAAzE,oBAAK+2B;AAAL,AAAA,oBAAA/2B;AAAcg3B;;AAAdh3B;;;AACA;qEAAY4H;AAAZ,AACE,IAAMqvB,SAAO,AAAClB,sBAAWnuB;AAAzB,AACE,IAAApJ,mBACE,CAACu4B,yCAAAA,iDAAAA,VAASE,6BAAAA;AADZ,AAAA,oBAAAz4B;AAAAA;;AAEE,QAACw4B,yCAAAA,iDAAAA,VAASC,6BAAAA;;;;;AANlB,oBAQEF;AAAS;qEAAYnvB;AAAZ,AAAgB,IAAAyvB,WAAU,AAACtB,sBAAWnuB;AAAtB,AAAA,wFAAAyvB,+BAAAA,/GAACN,yCAAAA,mDAAAA;;;;AAR5B,oBASEC;AAAS;qEAAYpvB;AAAZ,AAAgB,IAAA0vB,WAAU,AAACvB,sBAAWnuB;AAAtB,AAAA,wFAAA0vB,+BAAAA,/GAACN,yCAAAA,mDAAAA;;;;AAT5B,MAAA,AAAAtxB,6BAAA,kBAAA,KAAA,oCAAA,KAAA;;;;;;;AAYJ,OAAAkM,0CAAA,kBAAA,mFAAA,KAAA,gBAAA,2CAAA,2DAAA,AAAA,qGAAA,uDAAA,AAAA,sEAAA,6DAAA,AAAA,1YAAuBukB;;;;;;;;;;AA5EjC,AAkFE;;;;;;;;;;;;;;;;;;;;;;;;;8BAAA,9BAAMoB,oEAyBHpB;;AAzBH,AA0BE,GAAQ,AAAC34B,qBAAK24B;AAEZ,IAAMC,eAAkB,iDAAA,jDAAChpB,4CAAI+oB;IACvBqB,aAAc,iBAAAh5B,mBAAI,iDAAA,jDAAC4O,4CAAI+oB;AAAT,AAAA,oBAAA33B;AAAAA;;AAAyB,wDAAA,jDAAC4O,4CAAI+oB;;;IAC5CsB,gBAAc,iBAAAj5B,mBAAI,iDAAA,jDAAC4O,4CAAI+oB;AAAT,AAAA,oBAAA33B;AAAAA;;AAAA,IAAAA,uBAAyB,iDAAA,jDAAC4O,4CAAI+oB;AAA9B,AAAA,oBAAA33B;AAAAA;;AAA+C,wDAAA,jDAAC4O,4CAAI+oB;;;;IAElEuB,QAAU,iBAAAh6B,oBAAiB85B;AAAjB,AAAA,oBAAA95B;AAAA,SAAAA,LAAWi6B;AAAX,AAAA,AAA6B,OAACzB,2BAAkByB,GAAGvB;;AAAnD;;;IACVwB,WAAU,iBAAAl6B,oBAAc+5B;AAAd,AAAA,oBAAA/5B;AAAA,SAAAA,LAAWm6B;AAAX,AAAA,AAA6B,OAAC3B,2BAAkB2B,GAAGzB;;AAAnD;;;AALhB,AAOE,GACE,AAACp4B,6CAAE45B,SAASlC;AAAQE;;AADtB,GAEE,AAAC53B,6CAAK05B,MAAM9B;AAAQA;;AAFtB,oBAIE,iBAAA51B,oBAAK03B;AAAL,AAAA,oBAAA13B;AAAW43B;;AAAX53B;;;AACA;4DAAY4H;AAAZ,AAAgB,GAAI,CAAU8vB,sCAAAA,2CAAAA,PAAM9vB,uBAAAA;AAAI,GAAI,CAAUgwB,yCAAAA,8CAAAA,PAAShwB,0BAAAA;AAAvB;;AAAA;;;AAAxB;;;;;AALlB,oBAOE8vB;AAAS,GAAI,AAAC15B,6CAAE05B,MAAShC;AAAQA;;AAAO;4DAAY9tB;AAAZ,AAAgB,GAAI,AAAU8vB,MAAS9vB;AAAvB;;AAAA;;;;;;AAP1D,oBAQEgwB;AAAS,GAAI,AAAC55B,6CAAE45B,SAAShC;AAAQF;;AAAO;4DAAY9tB;AAAZ,AAAgB,GAAI,AAAUgwB,SAAShwB;AAAvB;;AAAA;;;;;;AAExD,MAAA,AAAAlC,6BAAA,kBAAA,mFAAA,KAAA,WAAA,2EAAA,2CAAA,2EAAA,4FAAA,vGACe8xB,iFAA0BC;;;;;;;AAnB7C,eAAA,2CAAA,6DAAA,6DAAA,lEAAetB;;;;;;;AAqBrB,AAiBA,AAEA;;;0BAAA,1BAAc2B;AACd;;;AAAcC,2BAAiC,CAAKD,AAAA,KAAQA,AAAA;AAW5D;;;4BAAA,5BAAeE,gEAGZC,sBAAgBC,iBAAWC,mBAAa97B;AAH3C,AAKK,oBAAI47B;AACF,oBAAIE;AAAa,OAACC,yGAAY/7B;;AAAG,OAACsJ,wGAAUtJ;;;AAC5C,oBAAI87B;AAAa,OAACE,6GAAYh8B;;AAAG,OAACi8B,2GAAUj8B;;;;AAoBnD;;;6BAAA,7BAAek8B,kEAGZN,sBAAgBC,iBAAWC,mBAAa7rB;AAH3C,AAKK,oBAAI2rB;AACF,oBAAIE;AAAa,OAACje,8CAAMse,kBAAYlsB;;AAAI,OAAC4N,8CAAMue,iBAAUnsB;;;AACzD,oBAAI6rB;AAAa,OAACje,8CAAMwe,sBAAYpsB;;AAAI,OAAC4N,8CAAMye,oBAAUrsB;;;;AA2B7D,AACE;;;AAAMssB,qBAAuCC;;AAC7C;;;AAAMC,sBAAuCC;;AAC7C;;;AAAMC,wBAAuCC;;AAC7C;;;AAAMC,0BAAuCC;AA0BlD;;;yBAAA,zBAAMC,0DAGH/8B;AAHH,AAGM,oBAAA,iBAAA2D,oBAAA,CAAAq5B,qCAAA;AAAA,AAAA,GAAAr5B;AAAA,IAAAA,wBAAA,CAAAs5B,sCAAA;AAAA,AAAA,GAAAt5B;AAAAu5B;;AAAAv5B;;;AAAAA;;;AAAyB,iCAAA,KAAA,MAAA,rCAACg4B,2CAAwB37B;;AAAlD,IAAAm9B,0CAAAH;IAAAI,2CAAAH;IAAAI,6CAAAH;IAAAI,0CAAA;IAAAC,2CAAA;IAAAC,6CAAA;AAAA,AAAA,CAAAR,oCAAAM;;AAAA,CAAAL,qCAAAM;;AAAA,CAAAL,uCAAAM;;AAAA,IAAA,AAAyB,iCAAA,KAAA,MAAA,rCAAC7B,2CAAwB37B;UAAlD,AAAA,CAAAk9B,uCAAAG;;AAAA,CAAAJ,qCAAAG;;AAAA,CAAAJ,oCAAAG;;;AAEN;;;+BAAA,/BAAeM,sEAGZz9B;AAHH,AAGM,iCAAA,KAAA,MAAA,rCAAC27B,2CAAwB37B;;AAE/B,AASA,AAAA;;;2BAAA,mCAAAG,9DAAMw9B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAr9B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAMq9B,oEASGh3B;AATT,AASY,8DAAA,vDAACi3B,4DAAaj3B;;;AAT1B,CAAA,yDAAA,zDAAMg3B,oEAUFpL,KAAK5rB;AAVT,AAWG,GAEE,EAAI,MAAA,LAAMA,gBAAG,+CAAA,/CAAChF,6CAAEgF;AAFlB;;AAAA,GAGO,OAASA;AAKd,IAAMk3B,UAAQ,iDAAA,4DAAA,7GAAC9sB,4CAAIwhB;IACbsL,cACA,wIAAA,AAAA/4B,tIAAQ,AAAAuL,2CAAA,RAAewtB,sJACrBA,nCAEUC;IAEZC,WAAQ,iDAAA,4DAAA,7GAAChtB,4CAAIwhB;IACbwL,eACA,yIAAA,AAAAj5B,vIAAQ,AAAAuL,4CAAA,TAAe0tB,oKACrBA,hDAEUC;IAEZzL,WAAK,0DAAA,0HAAA,pLAACnxB,qDAAMmxB,iEAAcsL,0HAAiBE;AAdjD,AAiBa,OAACE,gEAAkC1L,SAAK5rB;;AArBrD,MAAA,AAAA0C,6BAAA,kBAAA,mFAAA,KAAA,UAAA,iEAAA,2CAAA,8OAAA,1LACQ,2CAAA,wDAAA,qDAAA,AAAAE,vDAAW5C,sEAAAA;;;;;AAhBxB,CAAA,mDAAA,nDAAMg3B;;AAAN,AAsCA,AAyBA,AAAA;;;2BAAA,mCAAAx9B,9DAAeg+B;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA79B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAe69B,oEAEXn+B,EAAEo+B;AAFN,AAEuB,mDAAKA;;;AAF5B,CAAA,yDAAA,zDAAeD,oEAGXn+B,EAAEo+B,WAAWC;AAHjB,AAGuB,gEAAA,sDAAA,lEAAKD,4DAAeC;;;AAH3C,CAAA,mDAAA,nDAAeF;;AAAf,AAKA,AAQA;;;;;;;uBAAA,vBAAMG;AAAN,AAUM,IAAAj9B,oBAAW,oFAAA,pFAACguB,mDAAKntB;AAAjB,AAAA,oBAAAb;AAAA,QAAAA,JAAS+G;AAAT,AACE,OAAOA,OAAElG;;AACT,IAAcq8B,WACR;AAAA,AACE,IAAMC,eAAa,qCAAA,rCAAmB,mBAAA,nBAACC;AAAvC,AACE,IAAAC,WAAM,EAASF;AAAf,AAAA,QAAAE;KAAA;AACI,QAAA,MAAWF;;;KADf;AAEI,QAAA,KAAWA;;;KAFf;AAGI,QAAA,IAAWA;;;;AACX,AAAWA;;;;IAEnBG,eAAa,4DAAA,5DAAmB,CAAA,UAAe,CAAA,SAAgB,mBAAA,nBAACF;IAChEG,eAAa,6DAAA,7DAAmB,CAAA,UAAe,CAAA,UAAgB,mBAAA,nBAACH;AAVtE,AAYE,wHAAA,4DAAA,iBAAA,iBAAA,lKAAK,AAACF,wDAAU,AAACA,4DAAc,AAACA,gBAAcI,iBAAiBC,6DAC1D,AAACL,wDAAU,AAACA,wDAAU,AAACA;;;AAEtC,AAAA;;;;2BAAA,mCAAAp+B,9DAAM2+B;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA;;;;AAAA,MAAA,KAAAx+B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAMw+B,oEAKFl2B;AALJ,AAKa,IAAAzG,mBAAI,gFAAA,wDAAA,xIAACuT,uBAAO,AAACqpB,qHAAoBn2B;AAAjC,AAAA,oBAAAzG;AAAAA;;AAAA;;;;AALb,CAAA,yDAAA,zDAAM28B;AAAN,AAQgB,OAACR;;;AARjB,CAAA,mDAAA,nDAAMQ;;AAAN,AAUA,AA0CA;;;6BAAA,7BAAME,kEAEiCC,qBAAeC;AAFtD,AAWK,IAAMC,KAAG,KAAAC,WAAgBF;AAAzB,AACE,IAAA79B,0BAAgB,iBAAAsC,oBAAKs7B;AAAL,AAAA,oBAAAt7B;AAAoBzB;;AAApByB;;;AAAhB,AAAA,oBAAAtC;AAAA,mBAAAA,fAASg+B;AAAT,AACE,AAAkBA,6BAAOF;;AACzB,IAAAG,wBAAYJ;AAAZ,AAAA,cAAA,VAAUK;;AAAV,AAAA,GAAA,WAAAD,VAAUC;AAAV,AAAkB,CAAMJ,GAAGI,WAAE,AAAC/T,WAAW,CAAA,QAAO,AAACgU;;AAAjD,eAAA,WAAA,VAAUD;;;;AAAV;;;;;AACFJ;;AAEP,AAEA;;;;;;;;;6BAAA,qCAAAM,lEAAME;AAAN,AAAA,IAAAD,aAAAD;IAAAC,iBAAA,AAAAnT,4BAAAmT;YAAA,AAAA3uB,4CAAA2uB,eAAA,wDAAA,3HAQWE;UARX,AAAA7uB,4CAAA2uB,eAAA,mDAAA,pHAQuBpqB;oBARvB,AAAAvE,4CAAA2uB,eAAA,3EAQ2BG,iJAIR,2EAAA,3EAACtiB,gDAAQyhB;AAZ5B,AAcE,IAAMY,YACA,iBAAAE,WAAMF;IAANE,eAAA,EAAA,CAAAA,oBAAAx8B,oBAAA,AAAAw8B,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;KAAA;AAAA;;;;AASE,GAAA,OAAoBF;AAAAA;;AAApB,OAAA/G,sCAAA,kBAAA,KAAA,GAAA,AAAA,iFAAA,AAAA,gEAAA,KAAA,XAAoB+G;;;;;IAEtBG,SAAa,AAAC37B,gBAAMw7B;IACpBI,eAAa,UAAA,TAAMD;IACnBH,YAES,AAACK,qDAAkBL;IAM5BM,OACA,CAAA,OACE,2EAAA,1EACE,CAAA,OACE,0DAAA,zDAAK,AAAC1U,WAAW,CAAG,AAAC2U,SAAS,UAAA,TAAKJ,iBAAS,SAAA,TAACI;IAGnDC,YAAkB,CAAG,CAAGF,OAAK5qB,OAAKyqB;IAClCM,QAAU,CAAK,iBAAA7vB,kBAAA;IAAAC,kBAAO,AAACgb,UAAU,CAAA,MAAO2U;AAAzB,AAAA,SAAA5vB,kBAAAC,mBAAAD,kBAAAC;OAAL;IACV6vB,QACA,sFAAA,rFACE,EAAI,yCAAA,xCAAO,+BAAA,9BAAK,cAAA,dAACC,oBAAQR,yBACvBzqB,IACA,AAACmW,UAAU,CAAA,MAAO2U;AAnC5B,AAqCE;AAAA,AACE,IAAMtN,KAAG,AAACW;AAAV,AACE,UAAA,NAAO9iB;IAAOmE,UAAQ,SAAA,RAAKwrB;IAAeE,aAAW,CAACX,8CAAAA,qDAAAA,TAAcS,iCAAAA;;AAApE,AAEE,IAAMG,wBAAgB,CAAS,CAAMD,WAAW7vB,QAAKuvB;AAArD,AACE,GAAM,CAAIO,yBAAgBT;AAA1B,AACE,AAASlN,UAAG,CAAM8M,UAAMa;;AAD1B;;AAGF,GACE,CAAI,AAAS3N,gBAAIxd;AAAK,mDAAKwd;;AAD7B,GAEE,CAAIniB,QAASmE;AAAS,eAAA;eAAS,SAAA,RAAKurB;eAAO,CAACR,8CAAAA,qDAAAA,TAAcQ,iCAAAA;;;;;;AACpD,eAAO,OAAA,NAAe1vB;eAAKmE;eAAQ0rB;;;;;;;;;;;AAErD,AAYA,IAAMZ,cACA,qBAAA,JAAMj5B;AAAN,AACiC,OAACs5B,qDAAat5B;;AAFrD,AAIE,AAAA;;;;;;yBAAA,iCAAAxG,1DAAMwgC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC;;;KAAA;AAAA,OAAAA,qDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAArgC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,uDAAA,vDAAMqgC;AAAN,AAMS,4DAAA,KAAA,1DAACC;;;AANV,CAAA,uDAAA,vDAAMD,kEAOFrrB;AAPJ,AAOS,4DAAA,rDAACsrB,0DAAYtrB;;;AAPtB,CAAA,uDAAA,vDAAMqrB,kEAeC1B,qBAAe3pB;AAftB,AAgBM,IAAMwd,KAAG,AAACW;IACJ0L,KAAG,AAACH,2BAAWC,qBAAe3pB;IAC9BR,UAAQ,OAAA,NAAKQ;AAFnB,AAIE,gBAAA,ZAAO3E;;AAAP,AAGE,AAASmiB,UAAG,CAAM8M,YAAM,mBAAA,lBAAS,CAAMT,GAAGxuB;;AAC1C,GAAM,CAAGA,YAAImE;AAAb,AAAsB,eAAO,aAAA,ZAAenE;;;;AAA5C;;;;AAEF,mDAAKmiB;;;AA1Bb,CAAA,iDAAA,jDAAM6N;;AAAN,AA4BF,AA0DA,AAQG,AAAA;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,sEAAA,tEAASO,iFACUriB;;AADnB,AAAA,YAAA,RACmBA;AADnB,AACoCuiB;;;AADpC,CAAA,AAAA,4EAAA,5EAASF,uFAEUriB,EAAMkD;;AAFzB,AAAA,YAAA,RAEmBlD;AAFnB,AAE8B,CAAMuiB,eAAMrf;;AAAKA;;;AAF/C,CAAA,AAAA,0EAAA,1EAASmf,qFAGUpU,EAAEuU;;AAHrB,AAAA,YAAA,RAGmBvU;AAHnB,AAG8B,QAACA,sCAAAA,+CAAAA,XAAEuU,2BAAAA;;;AAHjC,CAAA,AAAA,2CAAA,WAAAR,tDAASK;;AAAT,AAAA,IAAAJ,SAAA;AAAA,AAAA,IAAAC,WAAA,CAAA,AAAA,mBAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAD;;;KAAA;AAAA,OAAAA,qCAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qCAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxgC,MAAA,CAAA,8DAAA,CAAA,AAAA,mBAAA;;;;;AAAA,CAAA,AAAA,4CAAA,WAAAwgC,OAAAE,9DAASE;;AAAT,AAAA,IAAAJ,aAAA;AAAA,AAAA,OAAA,AAAAA,sBAAAA,WAAA,AAAA,CAAAA,mBAAA,AAAAG,iBAAAD;;;AAAA,CAAA,AAAA,oEAAA,pEAASE;;AAAT,AAAA,QAAA,JAKYriB;AALZ,AAKyBuiB;;;AALzB,CAAA,AAAA,oEAAA,pEAASF,+EAMOG;;AANhB,AAAA,QAAA,JAMYxiB;AANZ,AAMyB,IAAMkD,OAAI,CAACsf,wCAAAA,sDAAAA,hBAAQD,kCAAAA;AAAnB,AAA2B,CAAMA,eAAMrf;;AAAKA;;;AANrE,CAAA,AAAA,oEAAA,pEAASmf,+EAOKj1B,EAAEo1B;;AAPhB,AAAA,QAAA,JAOYxiB;AAPZ,AAQI,IAAMyiB,UAAQF;IACRG,UAAQ,iBAAAC,WAAS,AAACzwB,4CAAIuwB,QAAQr1B;AAAtB,AAAA,sFAAAu1B,8BAAAA,5GAACH,wCAAAA,kDAAAA;;IACTI,UAAQ,AAACrgC,8CAAMkgC,QAAQr1B,EAAEs1B;AAF/B,AAGE,CAAMH,eAAMK;;AACZ,AAAYF;;;AAZlB,CAAA,qCAAA,rCAASL;AAAT,AAAA,AAAA;;;AAAA,CAAA,2CAAA,3CAASA;;AAAT,CAAA,8CAAA,9CAASA;;AAAT,CAAA,mDAAA,WAAA7vB,mBAAAC,qBAAAC,tGAAS2vB;AAAT,AAAA,OAAA1vB,iBAAAF,qBAAA;;;AAAA;;;iCAAA,jCAAS6vB,0EAAqBC;AAA9B,AAAA,YAAAF,0BAA8BE;;;AAArBF,AA0CZ;;;;wBAAA,xBAA0BQ,wDAGvBC;AAHH,AAIE,YAAAT,0BAE4BS;;AAE9B,AA+CA,AAEA;;;kCAAA,lCAAOC,4EAEJC,QAAOC,MAAMxc;AAFhB,AAGE;AAAA,AACE,SAAA,AAAAxgB,LAAMi9B,qBAAID;AAAV,AACE,GAAI,AAAAE,gCAAQF,MAAMC,GAAGzc;AACnB,QAACuc,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGA,iCAAAA,9BAAGzc,iCAAAA,9BAAGA,iCAAAA;;AACjB;;;;;AAER;;;kCAAA,lCAAO2c,4EAEJJ,QAAOC,MAAM71B,EAAEmE,UAAUkM;AAF5B,AAGE;AAAA,AACE,SAAA,AAAAxX,LAAMi9B,qBAAID;IACJxc,KAAG,AAAClkB,8CAAM2gC,GAAG91B,EAAEqQ;AADrB,AAEE,GAAI,AAAA0lB,gCAAQF,MAAMC,GAAGzc;AACnB,IAAA4c,WAAQH;IAARI,WAAW,AAACpxB,4CAAIgxB,GAAG91B,EAAEmE;IAArBgyB,WAAgC9c;IAAhC+c,WAAmC/lB;AAAnC,AAAA,sFAAA4lB,SAAAC,SAAAC,SAAAC,8BAAAH,SAAAC,SAAAC,SAAAC,lKAACR,wCAAAA,6EAAAA;;AACD;;;;;AAER;;;kCAAA,lCAAOS,4EAEJT,QAAOC,MAAMxqB,GAAGlH,UAAUkM;AAF7B,AAGE,IAAAjb,oBAAgB,AAAC4P,cAAIqG;AAArB,AAAA,GAAAjW;AAAA,aAAAA,TAASkhC;AAAT,AACE,GAAI,AAACthC,eAAKshC;AACR;AAAA,AACE,SAAA,AAAAz9B,LAAMi9B,qBAAID;IACJxc,KAAG,AAACpD,mBAAS6f,GAAGzqB,GAAGgF;AADzB,AAEE,GAAI,AAAA0lB,gCAAQF,MAAMC,GAAGzc;AACnB,IAAAkd,WAAQT;IAARU,WAAW,AAAC3gB,+CAAOigB,GAAGzqB,GAAGlH;IAAzBsyB,WAAoCpd;IAApCqd,WAAuCrmB;AAAvC,AAAA,sFAAAkmB,SAAAC,SAAAC,SAAAC,8BAAAH,SAAAC,SAAAC,SAAAC,lKAACd,wCAAAA,6EAAAA;;AACD;;;;;AAEN,OAACI,gCAAWJ,QAAOC,MAAM,+CAAA,/CAAClhC,4CAAI0W,QAAMlH,UAAUkM;;;AAChD,OAACslB,gCAAaC,QAAOC,MAA2BxlB;;;AAEpD,IAAMulB,eAAO,WAAKE,GAAGa,GAAGtd,GAAGhJ;AAAd,AAAkBsmB;;AAA/B,AAEE,AAAA;;;iCAAA,yCAAAziC,1EAAM2iC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxiC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAMwiC,0EAEFhB,MAAmBiB;AAFvB,AAE4B,OAACnB,gCAAWC,aAAOC,MAAmBiB;;;AAFlE,CAAA,+DAAA,/DAAMD,0EAGFhB,MAAMxqB,GAAayrB;AAHvB,AAG4B,6DAAA,tDAACT,gCAAWT,aAAOC,MAAMxqB,QAAayrB;;;AAHlE,CAAA,+DAAA,/DAAMD,0EAIFhB,MAAMxqB,GAAGlH,UAAU2yB;AAJvB,AAI4B,OAACT,gCAAWT,aAAOC,MAAMxqB,GAAGlH,UAAU2yB;;;AAJlE,CAAA,yDAAA,zDAAMD;;AAAN;AAMA,AAAA;;;kCAAA,0CAAA3iC,5EAAM8iC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3iC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,gEAAA,hEAAM2iC,2EAEFnB,MAAM71B,EAAY82B;AAFtB,AAE2B,4DAAA,rDAACd,gCAAWJ,aAAOC,MAAM71B,OAAY82B;;;AAFhE,CAAA,gEAAA,hEAAME,2EAGFnB,MAAM71B,EAAEmE,UAAU2yB;AAHtB,AAG2B,OAACd,gCAAWJ,aAAOC,MAAM71B,EAAEmE,UAAU2yB;;;AAHhE,CAAA,0DAAA,1DAAME;;AAAN,AAKF,IAAM7rB,iBAAS;IACTyqB,eAAO,WAAKE,GAAGa,GAAGtd,GAAGhJ;AAAd,AAAkB,OAACiY,gDAAKqO,GAAGtmB;;AADxC,AAGE,AAAA;;;wCAAA,gDAAAnc,xFAAMgjC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7iC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sEAAA,tEAAM6iC,iFAEFrB,MAAmBiB;AAFvB,AAE4B,OAACnB,gCAAWC,aAAOC,MAAmBiB;;;AAFlE,CAAA,sEAAA,tEAAMI,iFAGFrB,MAAMxqB,GAAayrB;AAHvB,AAG4B,OAACT,gCAAWT,aAAOC,MAAMxqB,GAAGF,eAAU2rB;;;AAHlE,CAAA,sEAAA,tEAAMI,iFAIFrB,MAAMxqB,GAAGlH,UAAU2yB;AAJvB,AAI4B,OAACT,gCAAWT,aAAOC,MAAMxqB,GAAGlH,UAAU2yB;;;AAJlE,CAAA,gEAAA,hEAAMI;;AAAN;AAMA,AAAA;;;;yCAAA,iDAAAhjC,1FAAMkjC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,qEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/iC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,uEAAA,vEAAM+iC,kFAGFvB,MAAM71B,EAAYs1B;AAHtB,AAG+B,IAAMqB,KAAG,AAACU,8DAAWxB,MAAM71B,EAAEmL,eAAUmqB;AAAvC,AAAiD,OAAChN,gDAAKqO,GAAGrB;;;AAHzF,CAAA,uEAAA,vEAAM8B,kFAIFvB,MAAM71B,EAAEmE,UAAUmxB;AAJtB,AAI+B,IAAMqB,KAAG,AAACU,8DAAWxB,MAAM71B,EAAEmE,UAAUmxB;AAAvC,AAAiD,OAAChN,gDAAKqO,GAAGrB;;;AAJzF,CAAA,iEAAA,jEAAM8B;;AAAN,AAMF,AAIA;;;;qCAAA,rCAAME,kFAGHzB,MAAMiB;AAHT,AAIE;AAAA,AACE,UAAA,AAAAj+B,NAAM+c,sBAAKigB;AAAX,AACE,GAAI,AAACngC,6CAAEkgB,IAAIkhB;AAAX;;AAEE,GAAI,AAAAf,gCAAQF,MAAMjgB,IAAIkhB;AAAtB;;AAEE;;;;;;AAEV,AAEA,AACE,AAAA;;;;;;;;AAAA;AAAA,CAAA,mCAAA,nCAASS;AAAT,AAAA,AAAA;;;AAAA,CAAA,yCAAA,zCAASA;;AAAT,CAAA,4CAAA,5CAASA;;AAAT,CAAA,iDAAA,WAAAnyB,mBAAAC,qBAAAC,pGAASiyB;AAAT,AAAA,OAAAhyB,iBAAAF,qBAAA;;;AAAA;;;+BAAA,/BAASmyB,sEAASC,KAAKC;AAAvB,AAAA,YAAAH,wBAAkBE,KAAKC;;;AAAdH;AACT;;;;;;;;;;0BAAA,1BAASI,4DAUerC,QAAQsC;AAVhC,AAU6C,YAAAL,wBAA2BjC,QAASsC;;;AAEjF;;;8BAAA,9BAAeC,oEAEZ9jC;AAFH,AAGE,GAAI,cAAWwjC,bAAQxjC;AAAvB,0FACG,AAAiBA,OAAG,AAAoBA;;AAD3C,0FAEGA,EAAEA;;;;AAEP;;;iCAAA,jCAAM+jC,0EAImB/jC;AAJzB,AAI6B,qBAAWwjC,bAAyBxjC;;;AAEjE,AAEF,iCAAA,jCAAOgkC,0EAAyBC,GAAGlC,GAAGzc;AAAtC,AACE,IAAM4e,KAAG,AAAWD;AAApB,AACE,IAAAE,WAAMD;IAANC,eAAA,EAAA,CAAAA,oBAAA7gC,oBAAA,AAAA6gC,aAAA;AAAA,AAAA,QAAAA;KAAA;AACiB,OAAC5P,gDAAKjP,GAAGyc;;;KAD1B;AAEuBzc;;;KAFvB;AAG0Byc;;;;AACxBmC;;;;AAEN;;;iCAAA,jCAAOE,0EAEJvC,QAAOC,MAAM15B;AAFhB,AAGE;AAAA,AACE,SAAA,AAAAtD,LAAMi9B,qBAAKD;IACLje,KAAI,CAACzb,kCAAAA,sCAAAA,NAAE25B,kBAAAA;IACPsC,YAAI,eAAWb,dAAQ3f;IACvByB,KAAI,EAAI+e,WAAI,AAAiBxgB,QAAIA;AAHvC,AAKE,GAAI,AAAAxT,sCAAA,HAAeiV;AACjB,GAAI+e;AACF,OAACL,+BAAengB,GAAGke,GAAGzc;;AACtB,QAACuc,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGA,iCAAAA,9BAAGA,iCAAAA,9BAAGA,iCAAAA;;;AAEnB,GAAI,AAAAC,gCAAQF,MAAMC,GAAGzc;AACnB,GAAI+e;AACF,OAACL,+BAAengB,GAAGke,GAAGzc;;AACtB,QAACuc,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGA,iCAAAA,9BAAGzc,iCAAAA,9BAAGA,iCAAAA;;;AACnB;;;;;;AAEV;;;iCAAA,jCAAOgf,0EAEJzC,QAAOC,MAAM71B,EAAEmE,UAAUhI;AAF5B,AAGE,GAAI,AAAAiI,qCAAA,FAAejI;AACjB;AAAA,AACE,SAAA,AAAAtD,LAAMi9B,qBAAID;IACJxc,KAAG,AAACjK,+CAAO0mB,GAAG91B;AADpB,AAEE,GAAI,AAAA+1B,gCAAQF,MAAMC,GAAGzc;AACnB,IAAAif,WAAQxC;IAARyC,WAAW,AAACzzB,4CAAIgxB,GAAG91B,EAAEmE;IAArBq0B,WAAgCnf;IAAhCof,WAAA;AAAA,AAAA,sFAAAH,SAAAC,SAAAC,SAAAC,8BAAAH,SAAAC,SAAAC,SAAAC,lKAAC7C,wCAAAA,6EAAAA;;AACD;;;;;AAEN;AAAA,AACE,SAAA,AAAA/8B,LAAMi9B,qBAAKD;IACLc,KAAI,AAAC7xB,4CAAIgxB,GAAG91B,EAAEmE;IACdyT,KAAI,CAACzb,kCAAAA,sCAAAA,NAAEw6B,kBAAAA;IACPyB,YAAI,eAAWb,dAAQ3f;IACvBvH,KAAI,EAAI+nB,WAAI,AAAiBxgB,QAAIA;AAJvC,AAME,GAAI,AAAAxT,sCAAA,HAAeiM;AACjB,GAAI+nB;AACF,OAACL,+BAAengB,GAAGke,GAAGA;;AACtB,QAACF,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGa,iCAAAA,9BAAGb,iCAAAA,9BAAGa,iCAAAA;;;AAEnB,IAAMtd,KACA,EAAI,AAAAjV,sCAAA,HAAeiM,qEACjB,AAACjB,+CAAO0mB,GAAG91B,GACX,AAAC7K,8CAAO2gC,GAAG91B,EAAEqQ;AAHrB,AAKE,GAAI,AAAA0lB,gCAAQF,MAAMC,GAAGzc;AACnB,GAAI+e;AACF,OAACL,+BAAengB,GAAGke,GAAGzc;;AACtB,QAACuc,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGa,iCAAAA,9BAAGtd,iCAAAA,9BAAGhJ,iCAAAA;;;AACnB;;;;;;;AAEd;;;iCAAA,jCAAOqoB,0EAEJ9C,QAAOC,MAAMxqB,GAAGlH,UAAUhI;AAF7B,AAGE,IAAA/G,oBAAgB,AAAC4P,cAAIqG;AAArB,AAAA,GAAAjW;AAAA,aAAAA,TAASkhC;AAAT,AACE,GAAI,AAACthC,eAAKshC;AAER,GAAI,AAAAlyB,qCAAA,FAAejI;AACjB;AAAA,AACE,SAAA,AAAAtD,LAAMi9B,qBAAID;IACJxc,KAAG,AAACxC,wDAAUif,GAAGzqB;AADvB,AAEE,GAAI,AAAA0qB,gCAAQF,MAAMC,GAAGzc;AACnB,IAAAsf,WAAQ7C;IAAR8C,WAAW,AAAC/iB,+CAAOigB,GAAGzqB,GAAGlH;IAAzB00B,WAAoCxf;IAApCyf,WAAA;AAAA,AAAA,sFAAAH,SAAAC,SAAAC,SAAAC,8BAAAH,SAAAC,SAAAC,SAAAC,lKAAClD,wCAAAA,6EAAAA;;AACD;;;;;AAEN;AAAA,AACE,SAAA,AAAA/8B,LAAMi9B,qBAAKD;IACLc,KAAI,AAAC9gB,+CAAOigB,GAAGzqB,GAAGlH;IAClByT,KAAI,CAACzb,kCAAAA,sCAAAA,NAAEw6B,kBAAAA;IACPyB,YAAI,eAAWb,dAAQ3f;IACvBvH,KAAI,EAAI+nB,WAAI,AAAiBxgB,QAAIA;AAJvC,AAME,GAAI,AAAAxT,sCAAA,HAAeiM;AACjB,GAAI+nB;AACF,OAACL,+BAAengB,GAAGke,GAAGA;;AACtB,QAACF,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGa,iCAAAA,9BAAGb,iCAAAA,9BAAGa,iCAAAA;;;AAEnB,IAAMtd,KACA,EAAI,AAAAjV,sCAAA,HAAeiM,qEACjB,AAACwG,wDAAUif,GAAGzqB,IACd,AAAC4K,mBAAU6f,GAAGzqB,GAAGgF;AAHzB,AAKE,GAAI,AAAA0lB,gCAAQF,MAAMC,GAAGzc;AACnB,GAAI+e;AACF,OAACL,+BAAengB,GAAGke,GAAGzc;;AACtB,QAACuc,wCAAAA,qDAAAA,fAAOE,iCAAAA,9BAAGa,iCAAAA,9BAAGtd,iCAAAA,9BAAGhJ,iCAAAA;;;AACnB;;;;;;;AAEZ,OAACgoB,+BAAUzC,QAAOC,MAAM,+CAAA,/CAAClhC,4CAAI0W,QAAMlH,UAAUhI;;;AAC/C,OAACg8B,+BAAYvC,QAAOC,MAA2B15B;;;AAEnD,IAAMy5B,eAAO,WAAKE,GAAGa,GAAGtd,GAAGhJ;AAAd,AAAkBA;;AAA/B,AACE,AAAA;;;;;;;gCAAA,wCAAAnc,xEAAM8kC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3kC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAM2kC,yEAMFnD,MAAmB15B;AANvB,AAM0B,OAACg8B,+BAAUvC,aAAOC,MAAmB15B;;;AAN/D,CAAA,8DAAA,9DAAM68B,yEAOFnD,MAAMxqB,GAAalP;AAPvB,AAO0B,4DAAA,rDAACu8B,+BAAU9C,aAAOC,MAAMxqB,QAAalP;;;AAP/D,CAAA,8DAAA,9DAAM68B,yEAQFnD,MAAMxqB,GAAGlH,UAAUhI;AARvB,AAQ0B,OAACu8B,+BAAU9C,aAAOC,MAAMxqB,GAAGlH,UAAUhI;;;AAR/D,CAAA,wDAAA,xDAAM68B;;AAAN;AAUA,AAAA;;;;;;;iCAAA,yCAAA9kC,1EAAMglC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7kC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAM6kC,0EAMFrD,MAAM71B,EAAY7D;AANtB,AAMyB,2DAAA,pDAACk8B,+BAAUzC,aAAOC,MAAM71B,OAAY7D;;;AAN7D,CAAA,+DAAA,/DAAM+8B,0EAOFrD,MAAM71B,EAAEmE,UAAUhI;AAPtB,AAOyB,OAACk8B,+BAAUzC,aAAOC,MAAM71B,EAAEmE,UAAUhI;;;AAP7D,CAAA,yDAAA,zDAAM+8B;;AAAN,AASF,AAAA;;;;;iCAAA,yCAAAhlC,1EAAMklC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/kC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAM+kC,0EAIFvD,MAAM71B;AAJV,AAIuB,4EAAA,rEAACq5B,6DAAUxD,MAAM71B;;;AAJxC,CAAA,+DAAA,/DAAMo5B,0EAKFvD,MAAM71B,EAAEmE;AALZ,AAMG,OAACm1B,6DAAUzD,MAAM71B,EAAEmE,UACjB,WAAKwyB;AAAL,AAAS,+BAAA,xBAACgB,wFAAqBhB;;;;AAPpC,CAAA,yDAAA,zDAAMyC;;AAAN,AASA,AAUA,AACA,AAEA;;;;;+BAAA,/BAAMG,sEAIHp9B;AAJH,AAKE,IAAMgP,WAAS;IACTquB,OAEG,iBAAMC,MAAK,AAAChmB,yBAAU;IAChBimB,OAAK,yBAAA,zBAACjmB;AADZ,AAEE,kBAAKkmB,SAAIC;AAAT,AACE;AAAA,AACE,GAAI,sDAAA,AAAA/gC,tDAACnD,6CAAEikC,yBAAKF;AAAZ,OAAA5gC,gBACG6gC;;AACD,IAAMG,MAAI,CAACD,mCAAAA,qCAAAA;AAAX,AACE,AAAC/R,uBAAQ4R,IAAKE;;AACd,AAAC9R,uBAAQ6R,KAAKG;;AACdA;;;;;;AAZnB,AAwBE;;;AAAA,AACkB,OAACL,KAAKruB,SAAsB;AAAA,AAAO,QAAChP,kCAAAA,oCAAAA;;;+DAClDpI;AAFJ,AAEkB,OAACylC,KAAKzlC,EAAsB;AAAA,AAAO,QAACoI,kCAAAA,qCAAAA,LAAEpI,iBAAAA;;;+DACpDA,EAAE2R;AAHN,AAGkB,YAAA,LAAC8zB,wFAAMruB,SAASpX,EAAE2R,UAAU;AAAA,AAAO,QAACvJ,kCAAAA,uCAAAA,PAAEpI,mBAAAA,jBAAE2R,mBAAAA;;;+DACtD3R,EAAE2R,EAAEG;AAJR,AAIkB,YAAA,LAAC2zB,wFAAMruB,SAASpX,EAAE2R,EAAEG,UAAQ;AAAA,AAAO,QAAC1J,kCAAAA,yCAAAA,TAAEpI,qBAAAA,nBAAE2R,qBAAAA,nBAAEG,qBAAAA;;;;mCACxD9R,EAAE2R,EAAEG,EAAIkH;AALZ,AAKkB,YAAA,LAACysB,wFAAMruB,SAASpX,EAAE2R,EAAEG,EAAEkH,aAAM;AAAA,AAAO,OAAC6E,8CAAMzV,EAAEpI,EAAE2R,EAAEG,EAAEkH;;;yBAAhEhZ,EAAE2R,EAAEG;IAAIkH;;;;EAAAA;;oCAARhZ,EAAE2R,EAAEG,EAAIkH;;;IAARhZ;;IAAE2R;;IAAEG;IAAIkH;0BAARhZ,EAAE2R,EAAEG,EAAIkH;;;;;;sDAARhZ,EAAE2R,EAAEG;IAAIkH;;;;;+DAARhZ;;+DAAAA,EAAE2R;;+DAAF3R,EAAE2R,EAAEG;;;;;;;;0FAAJ9R,EAAE2R,EAAEG;;;;;;;;;;;;;;AAEZ,AAEA;;;;2BAAA,3BAAMipB,8DAGH3yB;AAHH,AAIW,OAAC29B,kBAAkB39B;;AAyB9B,AAQA,gCAAA,hCAAO49B,wEAASC;AAAhB,AAEW,QAAU,AAASC,iBAAiBD;;AAE/C,AAEA,AAAA;;;;;;;;AAAA;AAAA,CAAA,4CAAA,5CAASE;AAAT,AAAA,AAAA;;;AAAA,CAAA,kDAAA,lDAASA;;AAAT,CAAA,qDAAA,rDAASA;;AAAT,CAAA,0DAAA,WAAA90B,mBAAAC,qBAAAC,7GAAS40B;AAAT,AAAA,OAAA30B,iBAAAF,qBAAA;;;AAAA;;;wCAAA,xCAAS80B,wFAAkBC,MAAYC;AAAvC,AAAA,YAAAH,iCAA2BE,MAAYC;;;AAA9BH,AACT,AAAA;;;;;;;;;;AAAA;AAAA,CAAA,4CAAA,5CAASI;AAAT,AAAA,AAAA;;;AAAA,CAAA,kDAAA,lDAASA;;AAAT,CAAA,qDAAA,rDAASA;;AAAT,CAAA,0DAAA,WAAAl1B,mBAAAC,qBAAAC,7GAASg1B;AAAT,AAAA,OAAA/0B,iBAAAF,qBAAA;;;AAAA;;;wCAAA,xCAASk1B,wFAAkBH,MAAYC,IAAUG,SAAeC;AAAhE,AAAA,YAAAH,iCAA2BF,MAAYC,IAAUG,SAAeC;;;AAAvDH,AAET,AAAA,AAEA,AAAA;;;;;;;;;;;;;;;;;;;;;wBAAA,gCAAApmC,xDAAMymC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAtmC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAMsmC,iEAqBFx+B;AArBJ,AAuBM,IAAM2+B,SAAO,yBAAA,zBAACrnB;IACRsnB,eAAa;AADnB,AAGE;iDAAc/2B;AAAd,AACE,IAAMgN,KAAG,AAACjc,gBAAMiP;AAAhB,AACE,IAAAg3B,WAAMhqB;IAANgqB,eAAA,EAAA,CAAAA,oBAAA3jC,oBAAA,AAAA2jC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAGE,IAAM/pB,KAAG,AAACjc,eAAMgP;IACVi3B,KAAG,AAAClmC,gBAAMkc;AADhB,AAEE,GAAI,AAAA7M,sCAAA,HAAe62B;AACjB,8BAAA,9BAACpT,uBAAQiT;;AACT,sDAAA,+CAAA,rGAASA,qGAAAA,/CAAO1rB,4FAAO6B;;;AAJ3B;;;KAHF;KAAA;AAWE,IAAMA,KAAG,AAACjc,eAAKgP;IACT/D,IAAG,AAAC2R,8CAAMzV,EAAE8U;AADlB,AAEE,sDAAA,8CAAA,pGAAQ6pB,oGAAAA,9CAAO3lC,2FAAM8b,GAAGhR;;AAAGA;;;;AAE7B,IAAMA,IAAE,4CAAA,AAAApH,5CAACiM,4DAAKg2B,QAAO92B,GAAG+2B;AAAxB,AACE,GAAI,CAAY96B,MAAE86B;AAChB,IAAM96B,QAAE,AAAC2R,8CAAMzV,EAAE6H;AAAjB,AAAsB,sDAAA,8CAAA,pGAAQ82B,oGAAAA,9CAAO3lC,2FAAM6O,GAAG/D;;AAAGA;;AACjDA;;;;;;IApBI+D;;;;EAAAA;;kDAAAA;;;IAAAA;wCAAAA;;;;;;;;AA1BtB,CAAA,sDAAA,WAAA42B,jEAAMD,0EA8EsCx+B;AA9E5C,AAAA,IAAA0+B,aAAAD;IAAAC,iBAAA,AAAAva,4BAAAua;WAAAA,PA8EsCvU;WA9EtC,AAAAxhB,4CAAA+1B,eAAA,lEA8EY5H;aA9EZ,AAAAnuB,4CAAA+1B,eAAA,pEA8EiBK;eA9EjB,AAAAp2B,4CAAA+1B,eAAA,tEA8EwBM;AA9ExB,AAgFG,IAAAC,mBAAA,iBAAA,AAAA,oBAAA,AAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAA,iFAAA,mEAAA,0DAAA,6EAAAD;GAAgD/U;AAAhD;;AAAAoG;;gBAAA,IAAAvgB,IAAAovB;AAAA,AAAApvB;;AAAA,AAAA,oBAAAivB;AAAA,AAAAxO,sCAAA,kBAAA,KAAA,EAAA,AAAA,ibAAA,AAAA,8DAAA,KAAAwO,VAAgD9U;;AAAhD;;AACA,IAAAkV,gBAAA,AAAA;IAAAC,gBAAA,WAAAC;AAAA,AAAA,GAAA,CAAAA,YAAA;AAAA;;AAAA,OAAAhiC,+BAAAgiC;;;IAAAC,gBAAA;AAAA,AAAA,AAAA,IAAAC,mBAAA,iBAAA,AAAA,oBAAA,AAAAH,cAAiCxI;AAAjC;;AAAAvG;;gBAAA,IAAAvgB,IAAA0vB;AAAA,AAAA1vB;;AAAA,AAAA,oBAAAyvB;AAAA,AAAAhP,sCAAA,kBAAA,KAAA,EAAA4O,cAAA,AAAA,+DAAAG,cAAAC,nBAAiC3I;;AAAjC;;AAAA,IAAA6I,mBAAA,iBAAA,AAAA,oBAAA,AAAAL,cAAsCP;AAAtC;;AAAAxO;;gBAAA,IAAAvgB,IAAA4vB;AAAA,AAAA5vB;;AAAA,AAAA,oBAAA2vB;AAAA,AAAAlP,sCAAA,kBAAA,KAAA,EAAA4O,cAAA,AAAA,qEAAAG,cAAAG,rBAAsCZ;;AAAtC;;AAAA,IAAAc,mBAAA,iBAAA,AAAA,oBAAA,AAAAP,cAA6CN;AAA7C;;AAAAzO;;gBAAA,IAAAvgB,IAAA8vB;AAAA,AAAA9vB;;AAAA,AAAA,oBAAA6vB;AAAA,AAAApP,sCAAA,kBAAA,KAAA,EAAA4O,cAAA,AAAA,yEAAAG,cAAAK,vBAA6Cb;;AAA7C;;AAAA;AAEA,oBACElI;AACA,IAAMiJ,gBAASnC;IACToC,SAAS,CAACv7B,wDAAAA,0DAAAA;IACVk6B,SAAS,sBAAA,tBAACrF;IACV2G,SAAS,sBAAA,tBAAC3G;IACVyF,aAAS,AAACt/B,gBAAK,iBAAA1F,mBAAIglC;AAAJ,AAAA,oBAAAhlC;AAAAA;;AAAA;;;IACfmmC,aAAS,GAAK,gBAAA,fAAOnB;IACrBjI,WAAS,AAACr3B,gBAAKq3B;IACfkI,eAAS,AAACv/B,gBAAK,iBAAA1F,mBAAIilC;AAAJ,AAAA,oBAAAjlC;AAAAA;;AAAa,iCAAA,OAAA,jCAACioB,yCAAqB8U;;;AAPxD,AASE;iDAAc1+B;AAAd,AACE,IAAMwqB,KAAG,AAAChqB,gBAAMR;AAAhB,AACE,IAAA+nC,WAAMvd;IAANud,eAAA,EAAA,CAAAA,oBAAAjlC,oBAAA,AAAAilC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAEE,IAAMC,OAAK,AAACvnC,eAAKT;IACXyqB,KAAK,AAACjqB,gBAAMwnC;AADlB,AAEE,oBAAI,iBAAAC,WAAMxd;IAANwd,eAAA,EAAA,CAAAA,oBAAAnlC,oBAAA,AAAAmlC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;AACF,6BAAA,7BAACC,sBAAO3B;;AACR,IAAA4B,iBAAA,WAAAC;AAAA,AAAS,sDAAAA,/CAACvtB,gEAASmtB;;AAAnB,AAAA,6EAAAG,mCAAAA,/GAAC5B,uCAAAA,uDAAAA;;;AAJL;;;;AAOA,IAAY8B,OAAK,CAACT,uCAAAA,yCAAAA;IACZ7X,UAAQ,wCAAA,tCAAI+X,YAAK,AAACrZ;AADxB,AAGE,GAAM,EAGE,sCAAA,rCAAI,AAAC6Z,cAAID,KAAKzB,4BACd,CAAI,AAAChjC,gBAAM,CAAC2iC,uCAAAA,yCAAAA,uBAAS,CAAA,MAAO7H;AAJpC,AAME,kBAAA,dAAM6J;IACAC,kBAAU,CAAGzY,UAAQ4W;AAD3B,AAGE,GAAM,AAAAnF,uCAAA,PAAQqG,YAAWU;AAAzB,AAEE,GAAMT;AAAN,AACE,IAAAW,iBACE,2CAAa3nC;AAAb,AACE,OAACid,2BACC,AAACxQ,oBACC,WAAKzC,IAAIW,EAAoBmM;AAA7B,AACE,GAAI,CAAG,AAAOA,QAAG4wB;AACf,OAAC5oB,qDAAQ9U,IAAIW;;AACbX;;GACJ,AAACmT,qBAAU,iBAAAtc,mBAAIb;AAAJ,AAAA,oBAAAa;AAAAA;;AAAA;;MACXb;;AATR,AAAA,6EAAA2nC,mCAAAA,/GAAClC,uCAAAA,uDAAAA;;AADH;;AAaA,IAAMmC,iBAAS,CAACnC,uCAAAA,yCAAAA;IACVoC,gBAAS,CAAG,AAAC/kC,gBAAM8kC,kBAAUhK;AADnC,AAGE,GAAM,CAAIiK,iBAAQ,CAAA,MAAOjK;AAAzB,AACE,IAAMkK,iBACA,iBAAAC,WAAKF;IAALG,WACE,WAAKr9B;AAAL,AACE,IAAMmM,IAAE,AAAmBrH,4CAAIm4B,eAASj9B;AAAxC,AACE,QAAG,AAAYmM,aAAG,AAAYA;;IAHpCmxB,WAIE,AAACE,eAAKP;AAJR,AAAA,8GAAAG,SAAAC,SAAAC,0CAAAF,SAAAC,SAAAC,pLAACC,oDAAAA,gFAAAA;;AADP,AAOE,IAAAE,iBACE,2CAAapoC;AAAb,AACE,OAACid,2BACC,AAACjS,+CAAO,WAAKhB,IAAIC;AAAT,AAAa,OAAC6U,qDAAQ9U,IAAIC;GAChC,AAACkT,qBAAU,iBAAAtc,mBAAIb;AAAJ,AAAA,oBAAAa;AAAAA;;AAAA;;MAAWinC;;AAJ9B,AAAA,6EAAAM,mCAAAA,/GAAC3C,uCAAAA,uDAAAA;;AARL;;AAlBJ;AAAA;;AATJ;;AAgDA,IAAM4C,eAAO,iBAAAC,WAAM5e;IAAN4e,eAAA,EAAA,CAAAA,oBAAAtmC,oBAAA,AAAAsmC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;IACPppC,WAAO,kBAAImpC,cAAO,AAAC1oC,eAAKT,MAAMA;QADpC,JAGMqe;IACkBzG,IAClB,iBAAAyxB,WAAQrpC;IAARspC,WACE,2CAAaC;AAAb,AACE,oBAAI,iBAAA5nC,mBAAI,aAAA,ZAAM4nC;AAAV,AAAA,GAAA5nC;AAAAA;;AAAA,IAAAA,uBAAcwnC;AAAd,AAAA,oBAAAxnC;AAAAA;;AACI,QAAG,CAAGouB,UAAQ,AAAyBwZ,gBAAK5C;;;;AAClD,YAAAZ,iCAAmB,KAAAyD,gBAAA;AAAA,AAAO,OAACnsB,8CAAMzV,EAAE5H;uBAAnC,pBAAmB,OAAuB+vB,QAAQsY;;AAClD,IAAMzwB,IAAoB2xB;AAA1B,AACE,YAAAxD,iCAAmB,AAASnuB,QAAG,AAAOA,MACpCywB,KAAK,cAAA,bAAK,AAAYzwB;;;AAPhC,AAAA,oFAAAyxB,SAAAC,6BAAAD,SAAAC,3HAAC/C,uCAAAA,0DAAAA;;AALP,AAAA,OAAAjiC,gBAcG,AAASsT;;;;;IA5EN5X;;;;EAAAA;;kDAAAA;;;IAAAA;wCAAAA;;;;;;;AAXlB,oBAyFE2mC;AACA,IAAMgB,gBAAQnC;IACRe,SAAQ,sBAAA,tBAACrF;IACT2G,SAAQ,sBAAA,tBAAC3G;IACTyF,aAAQ,AAACt/B,gBAAKs/B;IACd8C,UACA,iBAAMC,MAAI,iBAAA/nC,mBAAIilC;AAAJ,AAAA,oBAAAjlC;AAAAA;;AAAA;;;AAAV,AACE,QAAA,MAAO,AAAC0F,gBAAKqiC;;AANrB,AAQE;iDAAc1pC;AAAd,AACE,IAAMwqB,KAAG,AAAChqB,gBAAMR;AAAhB,AACE,IAAA2pC,WAAMnf;IAANmf,eAAA,EAAA,CAAAA,oBAAA7mC,oBAAA,AAAA6mC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAEE,IAAM3B,OAAK,AAACvnC,eAAMT;IACZyqB,KAAK,AAACjqB,gBAAMwnC;AADlB,AAEE,oBAAI,iBAAA4B,WAAMnf;IAANmf,eAAA,EAAA,CAAAA,oBAAA9mC,oBAAA,AAAA8mC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;AACF,6BAAA,7BAAC1B,sBAAO3B;;AACR,IAAAsD,iBAAA,WAAAC;AAAA,AAAS,sDAAAA,/CAACjvB,gEAASmtB;;AAAnB,AAAA,6EAAA6B,mCAAAA,/GAACtD,uCAAAA,uDAAAA;;;AAJL;;;;AAOA,IAAMxW,UAAQ,AAACtB;AAAf,AAEE,oBAAM,CAACkZ,8CAAAA,uDAAAA,XAAQ8B,mCAAAA;AAAf,AACE,kBAAA,dAAMlB;AAAN,AACE,GAAM,AAAA/G,uCAAA,PAAQqG,YAAWU;AAAzB,AACE,IAAAwB,iBACE,2CAAajpC;AAAb,AACE,OAACid,2BACC,AAACxQ,oBACC,WAAKzC,IAAIW,EAAoBmM;AAA7B,AACE,GAAI,CAAG,CAAGmY,UAAQ,AAAOnY,SAAI+uB;AAC3B,OAAC/mB,qDAAQ9U,IAAIW;;AACbX;;GACJ,AAACmT,qBAAU,iBAAAtc,mBAAIb;AAAJ,AAAA,oBAAAa;AAAAA;;AAAA;;MACXb;;AATR,AAAA,6EAAAipC,mCAAAA,/GAACxD,uCAAAA,uDAAAA;;AADH;AAAA;;AAFJ;;AAqBA,IAAM4C,eAAO,iBAAAa,WAAMxf;IAANwf,eAAA,EAAA,CAAAA,oBAAAlnC,oBAAA,AAAAknC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;IACPhqC,WAAO,kBAAImpC,cAAO,AAAC1oC,eAAKT,MAAMA;QADpC,JAEMqe;IACkBzG,IAClB,iBAAAqyB,WAAQjqC;IAARkqC,WACE,2CAAaX;AAAb,AACE,oBAAI,iBAAA5nC,mBAAI,aAAA,ZAAM4nC;AAAV,AAAA,GAAA5nC;AAAAA;;AAAA,IAAAA,uBAAcwnC;AAAd,AAAA,oBAAAxnC;AAAAA;;AACI,QAAG,CAAGouB,UAAQ,AAAyBwZ,gBAAK5C;;;;AAClD,YAAAhB,iCAAmB,KAAA6D,gBAAA;AAAA,AAAO,OAACnsB,8CAAMzV,EAAE5H;GAAhB,OAAuB+vB;;AAC1CwZ;;;AALN,AAAA,oFAAAU,SAAAC,6BAAAD,SAAAC,3HAAC3D,uCAAAA,0DAAAA;;AAJP,AAAA,OAAAjiC,gBAUG,AAASsT;;;;;IA5CN5X;;;;EAAAA;;kDAAAA;;;IAAAA;wCAAAA;;;;;;;AA8CV,OAACmqC,oDAAMviC;;;;;AAnOlB,CAAA,gDAAA,hDAAMw+B;;AAAN,AAqOA,AAAA;;;;0BAAA,kCAAAzmC,5DAAM0qC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAvqC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAMuqC,mEAIUziC;AAJhB,AAImB,OAACuiC,oDAAkCviC;;;AAJtD,CAAA,wDAAA,xDAAMyiC,mEAKG1D,OAAO/+B;AALhB,AAKmB,2DAAA,2CAAA,/FAACuiC,wJAA0BxD,eAAQ/+B;;;AALtD,CAAA,wDAAA,xDAAMyiC,mEAMF3L,KAAKiI,OAAO/+B;AANhB,AAMmB,2DAAA,2CAAA,0DAAA,zJAACuiC,oJAAazL,8DAAaiI,eAAQ/+B;;;AANtD,CAAA,kDAAA,lDAAMyiC;;AAAN,AAQA,AAsDA;;;;;;;;wCAAA,xCAAeC,wFAOZhZ;AAPH,AAQE,IAAMiZ,QAAM,yBAAA,zBAACrrB;IACPoS,YAAM,AAACjqB,gBAAKiqB;AADlB,AAGE;;;AAAA,AAGG,IAAMmZ,KAAG,AAAA/b;AAAT,AAEW,GAAI,CAAG,MAAA,AAAApqB,LAAGmmC,qBAAiBF,UAAQjZ;AAAO,AAAI,AAACgC,uBAAQiX,MAAME;;AAAnB;;AAA1C;;;oFAJVD;AADJ,AACY,MAAA,AAAA3hC,6BAAA,kBAAA,mFAAA,KAAA,WAAA,sEAAA,mCAAA;;2EAAR2hC;;;;;oFAAAA;;;;;;;;;AAMR,AAAA;;;;;;;;AAAA;AAAA,CAAA,qCAAA,rCAASE;AAAT,AAAA,AAAA;;;AAAA,CAAA,2CAAA,3CAASA;;AAAT,CAAA,8CAAA,9CAASA;;AAAT,CAAA,mDAAA,WAAA75B,mBAAAC,qBAAAC,tGAAS25B;AAAT,AAAA,OAAA15B,iBAAAF,qBAAA;;;AAAA;;;iCAAA,jCAAS65B,0EAAkB/kC,EAAQyqB;AAAnC,AAAA,YAAAqa,0BAA2B9kC,EAAQyqB;;;AAA1Bqa,AACT,AAAA;;;;;;;;AAAA;AAAA,CAAA,sCAAA,tCAASE;AAAT,AAAA,AAAA;;;AAAA,CAAA,4CAAA,5CAASA;;AAAT,CAAA,+CAAA,/CAASA;;AAAT,CAAA,oDAAA,WAAA/5B,mBAAAC,qBAAAC,vGAAS65B;AAAT,AAAA,OAAA55B,iBAAAF,qBAAA;;;AAAA;;;kCAAA,lCAAS+5B,4EAAkBjlC,EAAQklC;AAAnC,AAAA,YAAAF,2BAA2BhlC,EAAQklC;;;AAA1BF,AACT,AAAA;;;;;;;;;AAAA;AAAA,CAAA,qCAAA,rCAASG;AAAT,AAAA,AAAA;;;AAAA,CAAA,2CAAA,3CAASA;;AAAT,CAAA,8CAAA,9CAASA;;AAAT,CAAA,mDAAA,WAAAl6B,mBAAAC,qBAAAC,tGAASg6B;AAAT,AAAA,OAAA/5B,iBAAAF,qBAAA;;;AAAA;;;iCAAA,jCAASk6B,0EAAYlqC,EAAEmqC,UAAgBC;AAAvC,AAAA,YAAAH,0BAAqBjqC,EAAEmqC,UAAgBC;;;AAA9BH,AAET,IAAMI,mBAAW,WAAKvlC,EAAEyqB;AAAP,AAAW,IAAA+a,gBAAA,AAAA;IAAAC,gBAAA/lC;IAAAgmC,gBAAA;AAAA,AAAA,AAAA,IAAAC,mBAAA,iBAAA,AAAA,oBAAA,CAAAF,8CAAAA,iDAAAA,LAAsBzlC,6BAAAA;AAAtB;;AAAAuyB;;gBAAA,IAAAvgB,IAAA4zB;AAAA,AAAA5zB;;AAAA,AAAA,oBAAA2zB;AAAA,AAAAlT,sCAAA,kBAAA,KAAA,GAAA+S,cAAA,AAAA,sDAAAE,cAAAC,hBAAsB3lC;;AAAtB;;AAAA,IAAA6lC,mBAAA,iBAAA,AAAA,oBAAA,CAAAJ,8CAAAA,kDAAAA,NAAwBhb,8BAAAA;AAAxB;;AAAA8H;;gBAAA,IAAAvgB,IAAA8zB;AAAA,AAAA9zB;;AAAA,AAAA,oBAAA6zB;AAAA,AAAApT,sCAAA,kBAAA,KAAA,GAAA+S,cAAA,AAAA,uDAAAE,cAAAG,jBAAwBpb;;AAAxB;;AAAA;AAA4B,YAAAqa,0BAAY9kC,EAAEyqB;;AAAtE,AACE,oCAAA,pCAAOsb,gFAAmBnsC;AAA1B,AACE,GACE,AAACmB,qBAAQnB;AAAG,OAAC+N,oBAAU,mBAAAq+B,RAAK9gC,IAAIghC;AAAT,AAAA,IAAAD,aAAAD;QAAA,AAAAxrC,4CAAAyrC,WAAA,IAAA,/DAAcjmC;SAAd,AAAAxF,4CAAAyrC,WAAA,IAAA,hEAAgBxb;AAAhB,AAAqB,OAACzvB,8CAAMkK,IAAIghC,IAAI,AAACX,iBAAWvlC,EAAEyqB;GAA7D,mCAAsE7wB;;AADpF,GAEE,AAACmE,wBAAQnE;AACT,OAACsM,+CACC,eAAAigC,JAAKjhC;AAAL,AAAA,IAAAkhC,aAAAD;QAAA,AAAA3rC,4CAAA4rC,WAAA,IAAA,/DAAUpmC;SAAV,AAAAxF,4CAAA4rC,WAAA,IAAA,hEAAY3b;iBAAZ,AAAAjwB,4CAAA4rC,WAAA,IAAA,xEAAeC;AAAf,AACE,OAACrrC,8CAAMkK,IACL,iBAAAnJ,mBAAIsqC;AAAJ,AAAA,oBAAAtqC;AAAAA;;AAAA,0FAAUiE,EAAEyqB;;KACZ,AAAC8a,iBAAWvlC,EAAEyqB;GAJpB,mCAKK7wB;;AAEL,OAAAuV,0CAAA,kBAAA,mFAAA,KAAA,YAAA,2CAAA,2DAAA,AAAA,sGAAA,uDAAA,AAAA,mFAAA,6DAAA,AAAA,rZAAuBvV;;;;AAK7B,AAEA,AAAA;;;;;;;;;;;;;;;;;;+BAAA,uCAAAG,tEAAMwsC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,2DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,2DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAArsC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,6DAAA,7DAAMqsC,wEAkBG7S;AAlBT,AAkBe,kEAAA,3DAAC8S,gEAAiB9S;;;AAlBjC,CAAA,6DAAA,7DAAM6S,wEAmBFpa,KAAKuH;AAnBT,AAoBG,IAAA+S,aAC8Bta;IAD9Bsa,iBAAA,AAAAtgB,4BAAAsgB;wBAAA,AAAA97B,4CAAA87B,eAAA,/EACgBE;AADhB,AAAA,GAGE,AAACj6B,uBAAOgnB;AACR,oBAAIiT;AAAJ,0FAAA,KACO,qBAAA,rBAACC;;AACN,AAAK,4BAAA,rBAACA;;;AANV,IAQQlT,WAAK,AAACqS,kCAAkBrS;AARhC,AAAA,IAAAz4B,oBAYG,iBAAAsC,oBACE,iDAAA,jDAACoN,4CAAIwhB;AADP,AAAA,oBAAA5uB;AAAA,IAAAA,wBAEE,uEAAA,vEAAChC,6CAAE,AAACyC,gBAAM01B;AAFZ,AAAA,GAAAn2B;AAGE,IAAiBgD,IAAE,AAAC2R,cAAI,AAACtX,gBAAM84B;AAA/B,AACE,GAAM,SAAA,RAAI,AAAKnzB;AAAf,AAAqB,OAAMA;;AAA3B;;;AAJJhD;;;AAAAA;;;AAZH,AAAA,oBAAAtC;AAAA,qBAAAA,jBAWG4rC;AAXH,AAkBE,oBAAIF;AAAJ,0FAAA,KACO,AAACjC,sCAAsBmC;;AAC5B,AAAK,OAACnC,sCAAsBmC;;;AApBhC,IAuBG5E,SAAO,sBAAA,tBAAC3G;IACRwL,QAAO,sBAAA,tBAACxL;IAxBXoL,aA0B2Cva;IA1B3Cua,iBAAA,AAAAvgB,4BAAAugB;eAAA,AAAA/7B,4CAAA+7B,eAAA,8DAAA,pIA0BW1F;IAERe,gBAAQnC;IACRiE,UAAQ,iBAAMC,MAAI,AAACriC,gBAAKu/B;AAAhB,AAA2B,QAAA,MAAO8C;;IAE1CiD,KACA,WAAKC,IAAUC,MAAMC;AAArB,AACE,IAAM/c,UAAQ,AAACtB;AAAf,AACE,oBAAM,iBAAAtrB,oBAAK,AAACqD,cAAIsmC;AAAV,AAAA,GAAA3pC;AAAiB,QAACwkC,8CAAAA,uDAAAA,XAAQ8B,mCAAAA;;AAA1BtmC;;;AAAN,AACE,kBAAA,dAAMolC;AAAN,AACE,GAAM,AAAA/G,uCAAA,PAAQqG,YAAWU;AAAzB,AACE,IAAAwE,iBACE,kCAAaC;AAAb,AACE,OAACjvB,2BACC,AAACxQ,oBACC,WAAKzC,IAAI8hC,QAAIK;AAAb,AACE,IAAMC,cACA,AAAC3/B,oBACC,WAAKzC,QAAIghC,IAAgBl0B;AAAzB,AACE,IAAA/W,wBAAsB,AAAC0P,4CAAI+oB,SAAKwS;AAAhC,AAAA,oBAAAjrC;AAAA,QAAAA,JAAoBsF;AAApB,AACE,GAAI,CAAI4pB,WAAQ,CAAG,AAAQnY,SAAG,AAAMzR;AAClC,OAAC0U,+CAAO/P,QAAIghC;;AACZ,AAAQhhC;;;AACV,OAAC+P,+CAAO/P,QAAIghC;;GAChBmB,QACAA;AATR,AAUE,GAAI,AAAC36B,uBAAO46B;AACV,OAACttB,qDAAQ9U,IAAI8hC;;AACb,OAACpuB,oDAAQ1T,IAAI8hC,QAAIM;;GACvB,AAACjvB,qBAAU,iBAAAtc,mBAAIqrC;AAAJ,AAAA,oBAAArrC;AAAAA;;AAAA;;MACX,AAAeqrC;;AAnBvB,AAAA,2EAAAD,kCAAAA,5GAACL,sCAAAA,sDAAAA;;AADH;AAAA;;AAFJ;;AAgCA;AAAA,AACE,IAAMM,OAAY,CAACN,sCAAAA,wCAAAA;IACbO,UAAQ,AAAC18B,4CAAIy8B,KAAKJ;IAClBO,cACA,2BAAA,TAAMF,SACJ,AAAC1/B,oBACC;kBAAgBzC,IAAIghC,IAAgBl0B;AAApC,AACE,IAAA/W,wBAAsB,AAAC0P,4CAAI+oB,SAAKwS;AAAhC,AAAA,oBAAAjrC;AAAA,QAAAA,JAAoBsF;AAApB,AACE,GAAI,CAAI,CAAG,AAAKyR,MAAGi1B,UAAO,AAAK1mC;AAC7B2E;;AACA,IAAMsiC,SAAO,CAAG,CAAG,AAAQx1B,SAAG,AAAMzR,QAAI4pB;AAAxC,AACE,GAAI,WAAA,VAAIqd;AACNtiC;;AACA,GACE,QAAA,PAAMA;AAAK,YAAAigC,0BAAA,gDAAae,IAAIsB,SAAQtB,IAAIsB;;AAD1C,GAGE,CAAGA,SAAO,AAAYtiC;AACtB,YAAAigC,0BAAY,AAACnqC,8CAAM,AAAKkK,MAAKghC,IAAIsB,QAAQtB,IAAIsB;;AAG7C,YAAArC,0BAAY,AAACnqC,8CAAM,AAAKkK,MAAKghC,IAAIsB,QAC/B,AAAatiC,cACb,AAAaA;;;;;;AACvBA;;;eAnBR,dACE,KAoBEmiC;AAxBV,AA0BE,oBAAI,iBAAAtrC,mBAAImrC;AAAJ,AAAA,oBAAAnrC;AAAAA;;AAAUwrC;;;AAEZ,IAAAtsC,wBAAwBssC;AAAxB,AAAA,oBAAAtsC;AAAA,QAAAA,JAAsBwsC;AAAtB,AAAA,AAAA,0FACG,AAAaA,YAAG,AAAYA,WAAG,AAAKA;;AADvC;;;AAIA,IAAAxsC,wBAAW,CAACgnC,uCAAAA,yCAAAA;AAAZ,AAAA,oBAAAhnC;AAAA,QAAAA,JAASysC;AAAT,AAAA;;AAEE,IAAMJ,cACA,AAAC3/B,oBACC;kBAAKzC,IAAIghC,IAAe3lC;AAAxB,AACE,OAACvF,8CAAMkK,IAAIghC,IACT,iBAAAjrC,wBAAuB,AAAC0P,4CAAI08B,QAAQnB;AAApC,AAAA,oBAAAjrC;AAAA,QAAAA,JAAqB+W;AAArB,AACE,IAAMkzB,OAAK,AAAQlzB;AAAnB,AACE,GAAI,CAAImY,WAAQ,CAAG+a,OAAK,AAAM3kC;AAC5B,YAAAykC,2BAAgBiC,MAAe9c;;AAC/B,YAAA6a,2BAAa,CAAGiC,QAAM,AAAKj1B,KAAIkzB;;;AACnC,AAAI,YAAAF,2BAAgBiC,MAAe9c;;;;CACzCkd,QACA3T;AAXR,AAaE,GAAI,AAAAkI,gCAAQkL,MAAMM,KAAK,AAACpsC,8CAAMosC,KAAKJ,IAAIM;AAAvC;;AAEE;;;;;;;IAEhBK,aACA;;;AAAA,AACgB,UAAA,KAAA,IAAA,ZAACZ;;mDACTnC;AAFR,AAEgB,iBAAA,IAAA,dAACmC,GAAGnC;;mDAChBgD,IAAIhD;AAHR,AAIG,IAAAiD,WAAMD;IAANC,eAAA,EAAA,CAAAA,oBAAA3qC,oBAAA,AAAA2qC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAEE,AACE,oBAAI,iBAAAC,WAAMlD;IAANkD,eAAA,EAAA,CAAAA,oBAAA5qC,oBAAA,AAAA4qC,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAAA;;;;AAAA;;;;AACF,4BAAA,5BAACxF,sBAAOwE;;AACR,IAAAiB,iBAAA,WAAAC;AAAA,AAAQ,sDAAAA,/CAAC/yB,gEAAS2vB;;AAAlB,AAAA,2EAAAmD,kCAAAA,5GAACjB,sCAAAA,sDAAAA;;;AAHL;;;KAFF;KAAA;AAQ2B,iBAAA,IAAA,dAACC,GAAGnC;;;;AAE7B,GAAI,OAASgD;AACX,sCAAA,/BAACb,GAAGnC,OAAO,AAACnjC,gBAAKmmC;;AACjB,OAAAz4B,0CAAA,kBAAA,mFAAA,KAAA,eAAA,2CAAA,2DAAA,AAAA,sGAAA,uDAAA,AAAA,yFAAA,6DAAA,iFAAA,+DAAA,4EAAA,znBAAuBy4B,krBAIVhD;;;;;0CAjBhBgD,IAAIhD;;;;;mDAAJgD;;mDAAAA,IAAIhD;;;;;;;;;;AA1HX,AA8IE,oBAAI+B;AAAJ,0FACGG,MAAMa;;AACP,AAAOA;;;;;;AApKd,CAAA,uDAAA,vDAAMpB;;AAAN,AAsKA,AAkCG,AAAA;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,oEAAA,pEAAS4B,+EACS1vB;;AADlB,AAAA,YAAA,RACkBA;AADlB,AACqBjS;;;AADrB,CAAA,AAAA,yCAAA,WAAAi0B,pDAAS0N;;AAAT,AAAA,IAAAzN,SAAA;AAAA,AAAA,IAAAuN,WAAA,CAAA,AAAA,mBAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAvN;;;KAAA;AAAA,OAAAA,qCAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,qCAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxgC,MAAA,CAAA,8DAAA,CAAA,AAAA,mBAAA;;;;;AAAA,CAAA,AAAA,0CAAA,WAAAwgC,OAAAwN,5DAASC;;AAAT,AAAA,IAAAzN,aAAA;AAAA,AAAA,OAAA,AAAAA,sBAAAA,WAAA,AAAA,CAAAA,mBAAA,AAAAG,iBAAAqN;;;AAAA,CAAA,AAAA,kEAAA,lEAASC;;AAAT,AAAA,QAAA,JAGY1vB;AAHZ,AAGmB,IAAM3R,IAAEN;AAAR,AAAW,CAAMA,WAAE,YAAA,XAAKA;;AAAMM;;;AAHjD,CAAA,AAAA,kEAAA,lEAASqhC,6EAIKE;;AAJd,AAAA,QAAA,JAIY5vB;AAJZ,AAImB,IAAM3R,IAAEN;AAAR,AAAW,CAAMA,WAAE,CAAGA,WAAE6hC;;AAAMvhC;;;AAJjD,CAAA,AAAA,kEAAA,lEAASqhC,6EAKKG,OAAOtoC;;AALrB,AAAA,QAAA,JAKYyY;AALZ,AAMI,IAAA8vB,WAAMD;IAANC,eAAA,EAAA,CAAAA,oBAAArrC,oBAAA,AAAAqrC,aAAA;AAAA,AAAA,QAAAA;KAAA;AACmB,AAAW,CAAM/hC,WAAE,CAAGA,WAAExG;;AAAxB;;;KADnB;AAEmB,AAAW,CAAMwG,WAAExG;;AAAnB;;;KAFnB;KAAA;AAGmB,AAAW,CAAMwG,WAAExG;;AAAGA;;;KAHzC;KAAA;AAImB,IAAM8G,IAAEN;AAAR,AAAW,CAAMA,WAAExG;;AAAG8G;;;KAJzC;KAAA;AAKmB,IAAMA,IAAEN;AAAR,AAAW,CAAMA,WAAE,CAAGA,WAAExG;;AAAI8G;;;KAL/C;KAAA;AAMmB,AAAW,CAAMN,WAAE,CAAGA,WAAExG;;AAAIwG;;;;AAN/C,MAAA,KAAAtM,MAAA,CAAA,mEAAAquC;;;;;AANJ,CAAA,mCAAA,nCAASJ;AAAT,AAAA,AAAA;;;AAAA,CAAA,yCAAA,zCAASA;;AAAT,CAAA,4CAAA,5CAASA;;AAAT,CAAA,iDAAA,WAAAl9B,mBAAAC,qBAAAC,pGAASg9B;AAAT,AAAA,OAAA/8B,iBAAAF,qBAAA;;;AAAA;;;+BAAA,/BAASk9B,sEAAmB5hC;AAA5B,AAAA,YAAA2hC,wBAA4B3hC;;;AAAnB2hC,AAcZ,AAAA;;;;;;;;0BAAA,kCAAApuC,5DAAM0M;AAAN,AAAA,IAAA+hC,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAA/hC;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAvM,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAMuM;AAAN,AAOU,6DAAA,tDAACgiC;;;AAPX,CAAA,wDAAA,xDAAMhiC,mEAQFnB;AARJ,AAUY,YAAA6iC,wBAAmD,AAAC1mC,gBAAK6D;;;AAVrE,CAAA,kDAAA,lDAAMmB;;AAAN,AAYA,AAEA,2BAAA,3BAAOiiC,8DAAgBhd,MAAMid,IAAIC,QAAQC;AAAzC,AACE,IAAMhE,KAAG,AAAChc;IACEigB,UAAS,CAACF,wCAAAA,0CAAAA;IAChBG,KAAe,CAACJ,oCAAAA,sCAAAA;IAChBK,UAAS,AAAChrC,gBAAM+qC;IACVE,WACN,AAAC/iC,+CACC,WAAWlG,EAAQkpC;AAAnB,AACE,GAAI,CAAI,CAAGrE,KAAGqE,OAAIxd;AAChB,YAAA,JAAK1rB;;AACL,AAAKA;;GAJX,IAME,AAAC2V,+CAAYozB,GAAGD;IAElBK,UAAQ,CAAGH,UAAQC;AAbzB,AAgBE,GAAM,CAAgBH,UAAQK;AAA9B,AACE,GAAI,AAAAvN,gCAAQgN,QAAQE,QAAQK;AAC1B,GAAM,WAAA,VAAGA;AAAT,AACE,CAACN,sCAAAA,+CAAAA,XAAMM,2BAAAA;;AADT;;AADF;;AADF;;AAKAF;;AAyBD,AAAA;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,gDAAA,WAAAxO,3DAAS6O;;AAAT,AAAA,IAAA5O,SAAA;AAAA,AAAA,IAAA0O,WAAA,CAAA,AAAA,mBAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAA1O;;;;AAAA,MAAA,KAAAxgC,MAAA,CAAA,8DAAA,CAAA,AAAA,mBAAA;;;;;AAAA,CAAA,AAAA,iDAAA,WAAAwgC,OAAA2O,nEAASC;;AAAT,AAAA,IAAA5O,aAAA;AAAA,AAAA,OAAA,AAAAA,sBAAAA,WAAA,AAAA,CAAAA,mBAAA,AAAAG,iBAAAwO;;;AAAA,CAAA,AAAA,yEAAA,zEAASC;;AAAT,AAAA,YAAA,RAEYE;AAFZ,AAGI,IAAM3E,WAAG,AAAChc;AAAV,AAAoB,IAAA4gB,iBAAA,WAAAC;AAAA,AAAM,oDAAAA,7CAACtuC,8DAAOypC;;AAAd,AAAA,qFAAA4E,uCAAAA,3HAACd,2CAAAA,2DAAAA;;AACrBa;;;AAJJ,CAAA,AAAA,2EAAA,3EAASF,sFAQE7wB;;AARX,AAAA,YAAA,RAQWA;AARX,AASI,OAACiwB,yBAAShd,aAAMid,WAAIC,eAClB,6BAAQO;AAAR,AACE,IAAAQ,iBAAA,WAAAC;AAAA,AAAM,sDAAAA,/CAACj0B,gEAAcwzB;;AAArB,AAAA,qFAAAQ,uCAAAA,3HAAChB,2CAAAA,2DAAAA;;AACD,4CAAA,rCAACrG,sBAAOsG;;;;AAZhB,CAAA,0CAAA,1CAASU;AAAT,AAAA,AAAA;;;AAAA,CAAA,gDAAA,hDAASA;;AAAT,CAAA,mDAAA,nDAASA;;AAAT,CAAA,wDAAA,WAAAr+B,mBAAAC,qBAAAC,3GAASm+B;AAAT,AAAA,OAAAl+B,iBAAAF,qBAAA;;;AAAA;;;sCAAA,tCAASq+B,oFAAsB7d,MAAMid,IAAIC;AAAzC,AAAA,YAAAU,+BAA+B5d,MAAMid,IAAIC;;;AAAhCU,AAcZ;;;;;;kCAAA,lCAAMO,4EAKHne;AALH,AAME,YAAA4d,+BACE,AAAC7nC,gBAAK,iBAAAqoC,aAAA,iBAAA,AAAA,oBAAA,AAAApqC,+BAAqBgsB;AAArB;;AAAA6G;;gBAAA,IAAAvgB,IAAA+3B;AAAA,AAAA/3B;;AAAA,AAAA,oBAAA83B;AAAA,OAAArX,sCAAA,kBAAA,KAAA,GAAA,AAAA,6FAAA,AAAA,iEAAA,KAAAqX,XAAqBpe;;AAAAA;;MAC3B,sBAAA,tBAAC4P,wDACD,sBAAA,tBAACA;;AAGL,AAOA,AAAA;;;;;;;;;iCAAA,yCAAAvhC,1EAAMkwC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/vC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAM+vC,0EAQFlmB;AARJ,AAQoC,yEAAA,lEAACqmB,6DAAermB;;;AARpD,CAAA,+DAAA,gBAAAmmB,/EAAMD,0EASFlmB;AATJ,AAAA,IAAAomB,aAAAD;IAAAC,iBAAA,AAAAhkB,4BAAAgkB;eAAA,AAAAx/B,4CAAAw/B,eAAA,8DAAA,pIASiBnJ;eATjB,AAAAr2B,4CAAAw/B,eAAA,tEAS0BE;AAT1B,AAYG,IAAMtmB,WAAS,AAACtiB,gBAAKsiB;IACfumB,OAAS,AAAChP,sBAAM,AAAC5qB,cAAI25B;IACrBrJ,eAAS,4BAAA,0BAAA,pCAAMA,UAAS,AAACv/B,gBAAKu/B;IAC9BgB,SAAS,gCAAA,wDAAA,tEAAMhB,cAAS,AAACyH;IACzBxG,SAAS,gCAAA,4BAAA,1CAAMjB,cAAS,sBAAA,tBAAC1F;AAJ/B,AAME;;;AAAA,AACO,QAACgP,qCAAAA,uCAAAA;;mDACJ1wC;AAFJ,AAGG,oBAAMonC;AAAN,AAGE,IAAYyB,aAAK,CAACT,uCAAAA,yCAAAA;AAAlB,AACE,IAAA/mC,0BAAmB,4CAAA,3CAAI,AAACynC,cAAID,WAAWzB;AAAvC,AAAA,GAAA/lC;AAAA,0BAAAA,tBAAW8mC;AAAX,AAAA,AACW,IAAAwI,iBAAM,mDAAaC;AAAb,AAAiB,oDAAA,7CAAC16B,8EAAQ06B;;AAAhC,AAAA,yEAAAD,iCAAAA,zGAACD,qCAAAA,qDAAAA;;AADZ;;AAJJ;;AAaA,IAAAG,WACE,mDAAavlC;AAAb,AACE,IAAMyW,OAAI,AAACvgB,6CAAK8J,IAAItL;AAApB,AACE,GAAI,CAAG,AAACoE,gBAAM2d,QAAKoI;AACjB,2DAAA,pDAACpO,+CAAYgG;;AACb,AAAaA;;;AALrB,AAAA,gFAAA8uB,2BAAAA,nGAACH,qCAAAA,+CAAAA;;0CAdA1wC;;;;;mDAAAA;;;;;;;;;;AApBT,CAAA,yDAAA,zDAAMqwC;;AAAN,AAyCA,AA0BA,AAIS;;;2BAAA,3BAAMS,8DAAgC9wC,EAAE2R;AAAxC,AAA2C,OAACo/B,kBAAQp/B,EAAE3R;;AAK/D,AAAA;;;;;;wBAAA,gCAAAG,xDAAM8wC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,oDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,oDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3wC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,sDAAA,tDAAM2wC,iEAMgBtkC;AANtB,AAM4B,2DAAA,KAAA,zDAACukC,2GAAqBvkC;;;AANlD,CAAA,sDAAA,tDAAMskC,iEAOKE,WAAWxkC;AAPtB,AAO4B,2DAAA,pDAACukC,yDAAUC,WAAWxkC;;;AAPlD,CAAA,sDAAA,tDAAMskC,iEAQFG,aAAOD,WAAWxkC;AARtB,AASG,GAAQ,AAACsE,cAAItE;AAEX,IAAMwkC,iBACA,iBAAAE,WAAMF;IAANE,eAAA,EAAA,CAAAA,oBAAA/tC,oBAAA,AAAA+tC,aAAA;AAAA,AAAA,QAAAA;KAAA;AAC0BN;;;KAD1B;KAAA;AAEe,kBAAK/wC,EAAE2R;AAAP,AAAU,OAACo/B,kBAAQp/B,EAAE3R;;;;;AAClCmxC;;;;IAEFA,iBACA,iBAAA9vC,oBAAa,oFAAA,aAAA,/FAAM,AAACkzB,gDAAK6c,aAAOn9B,qBAAUm9B;AAA1C,AAAA,oBAAA/vC;AAAA,UAAAA,NAASiwC;AAAT,AACE,kBAAKtxC,EAAE2R;AAAP,AAAU,IAAA4/B,WAAY,CAACD,oCAAAA,uCAAAA,LAAItxC,mBAAAA;IAAjBwxC,WAAoB,CAACF,oCAAAA,uCAAAA,LAAI3/B,mBAAAA;AAAzB,AAAA,oGAAA4/B,SAAAC,qCAAAD,SAAAC,nJAACL,+CAAAA,kEAAAA;;;AACXA;;;IAEFM,IAAE,AAACC,mBAAS/kC;AAXlB,AAcW,AAACglC,kDAAsBF,EAAE,AAACG,4BAAqBT;;AAExD,OAAC1vC,oBAAU,AAACqV,cAAI26B,GAAG,AAAClwC,eAAKoL;;AAlB7B;;;;AATH,CAAA,gDAAA,hDAAMskC;;AAAN,AA6BA,AAIA,IAAM75B,iBAAS;IACTy6B,yBAAc,WAAK7xC;AAAL,AAAQ,GAAI,MAAA,LAAMA;AAAGoX;;AAASpX;;;IAC5C8xC,yBAAc,WAAK9xC;AAAL,AAAQ,GAAI,CAAYA,MAAEoX;AAAlB;;AAAgCpX;;;AAF5D,AAIE,AAAA;;;;6BAAA,qCAAAG,lEAAM6xC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1xC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAM0xC,sEAGF5rC,EAAYiF,GAAGK,KAAKiB;AAHxB,AAG8B,OAACslC,yDAAW7rC,EAAE6N,mBAAS88B,kBAAQ1lC,GAAGK,KAAKiB;;;AAHrE,CAAA,2DAAA,3DAAMqlC,sEAIF5rC,EAAEoZ,MAAUnU,GAAGK,KAAKiB;AAJxB,AAI8B,OAACslC,yDAAW7rC,EAAEoZ,MAASuxB,kBAAQ1lC,GAAGK,KAAKiB;;;AAJrE,CAAA,2DAAA,3DAAMqlC,sEAKF5rC,EAAEoZ,MAAM0yB,IAAI7mC,GAAGK,KAAKiB;AALxB,AAMG,IAAMwlC,YAAU,AAAC/tC,gBAAMuI;IACjBvG,QAAE,AAACyB,gBAAK,iBAAAyI,kBAAK6hC;IAAL5hC,kBAAe,AAAC1I,gBAAKzB;AAArB,AAAA,SAAAkK,kBAAAC,mBAAAD,kBAAAC;;AADd,AAGE,GAAQ,SAAA,RAAMnK;AAGT,OAACwF,kDAAU,AAACwR,6CAAKhX,OAAG,AAAC0F,mDAAWT,IAAIK,KAClC,AAAC0mC,gDAAQ5yB,MAAM0yB,IAAIvlC;;AAHxBjB;;;;AAVP,CAAA,qDAAA,rDAAMsmC;;AAAN,AA0BF,AAAA;;;2BAAA,mCAAA7xC,9DAAMmyC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAhyC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAMgyC,oEAEFj0B,GAAGjY,EAAYuG;AAFnB,AAEyB,OAAC4lC,uDAASl0B,GAAGjY,EAAE6N,mBAAS88B,kBAAQpkC;;;AAFzD,CAAA,yDAAA,zDAAM2lC,oEAGFj0B,GAAGjY,EAAEoZ,MAAU7S;AAHnB,AAGyB,OAAC4lC,uDAASl0B,GAAGjY,EAAEoZ,MAASuxB,kBAAQpkC;;;AAHzD,CAAA,yDAAA,zDAAM2lC,oEAIFj0B,GAAGjY,EAAEoZ,MAAM0yB,IAAIvlC;AAJnB,AAKG,GAAI,EAAA,MAAA,OAAA,AAAAhK,oCAAA,hDAAsByD,4CAAEiY;AAC1B,OAACE,2BAAY,AAAC0zB,yDAAW7rC,EAAEoZ,MAAM0yB,IAAI1zB,qBAAM,AAACC,qBAAUJ,IAAI1R;;AAC1D,AAAa,OAACslC,yDAAW7rC,EAAEoZ,MAAM0yB,IAAIxoB,eAAiBrL,GAAI1R;;;;AAP/D,CAAA,mDAAA,nDAAM2lC;;AAAN,AASA,AAAA;;;sBAAA,8BAAAnyC,pDAAMqpC;AAAN,AAAA,IAAAgJ,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAhJ,kDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,kDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,kDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAlpC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,oDAAA,pDAAMkpC,+DAEFpjC,EAAYuG;AAFhB,AAEsB,8DAAA,vDAAC4lC,wFAAYnsC,EAAE6N,mBAAS88B,kBAAQpkC;;;AAFtD,CAAA,oDAAA,pDAAM68B,+DAGFpjC,EAAEoZ,MAAU7S;AAHhB,AAGsB,8DAAA,vDAAC4lC,wFAAYnsC,EAAEoZ,MAASuxB,kBAAQpkC;;;AAHtD,CAAA,oDAAA,pDAAM68B,+DAIFpjC,EAAEoZ,MAAM0yB,IAAIvlC;AAJhB,AAIsB,8DAAA,vDAAC4lC,wFAAYnsC,EAAEoZ,MAAS0yB,IAAQvlC;;;AAJtD,CAAA,8CAAA,9CAAM68B;;AAAN,AAMA,AAiDA,AA+BA,AAmBA,AA0BA,AAmBA,AAYA,AA8BA,AAkDA,AAsCA,AAsDA,AA4CA,AAgDA,AA6KA,AAOA;;;;;;;4BAAA,5BAAeiJ,gEAMZ3gB;AANH,AAQW,IAAMwd,KAAG,AAAApgB;AAAT,AAAqB;AAAA,AAAS,GAAM,CAAG,CAAG,AAAAA,aAAWogB,MAAIxd;AAA3B,AAAkC;;AAAlC;;;;;AAEzC,AAeA,AAyEA,AAkBA,AAkBA,AAqCA,AA+JA,AAuCA,AAgBA,AAMA,qCAAA,rCAAe4gB,kFAAoB1yC;AAAnC,AACE,GAA8B,AAAC2yC,oBAAI3yC;AACjCA;;AACA,MAAA,AAAAqJ,6BAAA,kBAAA,mFAAA,KAAA,UAAA,oDAAA,2CAAA,wOAAA,6DAAA,AAAA,4DAAA,3SACa,2CAAA,wDAAA,qDAAA,AAAAE,vDAAWvJ,sEAAAA;;;AAqD5B;;;;;;;;gCAAA,hCAAM4yC,wEAQHC;AARH,AASE,IAAAC,mBAAA,iBAAA,AAAA,GAAA,AAAA3xC,qBAA0C0xC;AAA1C;;AAAAla;;gBAAA,IAAAvgB,IAAA26B;AAAA,AAAA36B;;AAAA,AAAA,oBAAA06B;AAAA,AAAAja,sCAAA,kBAAA,KAAA,EAAA,AAAA,2EAAA,AAAA,qFAAA,KAAAia,lBAA0CD;;AAA1C;;AAGSA;;AAQX,AA+CA,AA6BA,AACE,AAAA;AAAA;;;+BAAA,/BAAeU;;AAAf,IAAAP,2DAAA,WAAgDn0B,EAAEiT,MAAM1pB;AAAxD,AAAA,IAAA6qC,kBAAA,EAAA,MAAA,OAAA,ZAAgDp0B,iBAAAA;IAAhDq0B,kBAAA,CAAAC,kCAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,2DAAAA,bAAgDr0B,uCAAAA,rCAAEiT,uCAAAA,jCAAM1pB,uCAAAA;;AAAxD,IAAAirC,kBAAA,CAAAF,kCAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,2DAAAA,bAAgDx0B,uCAAAA,rCAAEiT,uCAAAA,jCAAM1pB,uCAAAA;;AAAxD,MAAA,AAAAkrC,2BAAA,iCAAgDz0B;;;;AAAhD,AAAA,oCAAA,pCAA6Bs0B,gFAAmBt0B,EAAEiT,MAAM1pB;AAAxD,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,4DAAA,lFAAgDyW,sBAAAA;AAAhD,OAAgDA,yDAAAA,EAAEiT,MAAM1pB;;AAAxD,OAAA4qC,yDAAgDn0B,EAAEiT,MAAM1pB;;;;AAAxD;AACA,AAAA;;;;;;;AAAA,AAAA,CAAA,AAAA,6EAAA3F,7EAAS+wC;;AAAT,CAAA,AAAA,sGAAA,tGAASA,iHAEa30B,EAAEiT,MAAM1pB;;AAF9B,AAAA,YAAA,RAEsByW;AAFtB,AAGa,OAAC60B,WAActrC,EAAE0pB;;;AAH9B,CAAA,8CAAA,9CAAS0hB;AAAT,AAAA,AAAA;;;AAAA,CAAA,oDAAA,pDAASA;;AAAT,CAAA,uDAAA,vDAASA;;AAAT,CAAA,4DAAA,WAAAniC,mBAAAC,qBAAAC,/GAASiiC;AAAT,AAAA,OAAAhiC,iBAAAF,qBAAA;;;AAAA;;;0CAAA,1CAASmiC;AAAT,AAAA,YAAAD;;;AAASA;AAST,GAAA,QAAAG,qCAAAC,4CAAAC;AAAA;AAAA,AAAA;;;;;AAASC,wCAIP,KAAA9J,gBAAA;AAAA,AACE,YAAAwJ;GADF;;AAIJ,AAAA;AAAA;;;iCAAA,jCAAamB;;AAAb,IAAAZ,oDAAA,WACkBl1B;AADlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZACkBp0B,iBAAAA;IADlBq0B,kBAAA,CAAAc,yBAAA,AAAAZ,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LACkBr0B,+BAAAA;;AADlB,IAAAw0B,kBAAA,CAAAW,yBAAA;AAAA,AAAA,GAAA,GAAA,CAAAX,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LACkBx0B,+BAAAA;;AADlB,MAAA,AAAAy0B,2BAAA,0BACkBz0B;;;;AADlB,AAAA;;;2BAAA,3BACGm1B,8DAAen1B;AADlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,qDAAA,3EACkBA,sBAAAA;AADlB,OACkBA,kDAAAA;;AADlB,OAAAk1B,kDACkBl1B;;;;AADlB,IAAAo1B,mDAAA,WAEkBp1B;AAFlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZAEkBp0B,iBAAAA;IAFlBq0B,kBAAA,CAAAgB,wBAAA,AAAAd,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAEkBr0B,+BAAAA;;AAFlB,IAAAw0B,kBAAA,CAAAa,wBAAA;AAAA,AAAA,GAAA,GAAA,CAAAb,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAEkBx0B,+BAAAA;;AAFlB,MAAA,AAAAy0B,2BAAA,yBAEkBz0B;;;;AAFlB,AAAA;;;0BAAA,1BAEGq1B,4DAAer1B;AAFlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,oDAAA,1EAEkBA,sBAAAA;AAFlB,OAEkBA,iDAAAA;;AAFlB,OAAAo1B,iDAEkBp1B;;;;AAFlB,IAAAs1B,0DAAA,WAGkBt1B;AAHlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZAGkBp0B,iBAAAA;IAHlBq0B,kBAAA,CAAAkB,+BAAA,AAAAhB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAGkBr0B,+BAAAA;;AAHlB,IAAAw0B,kBAAA,CAAAe,+BAAA;AAAA,AAAA,GAAA,GAAA,CAAAf,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAGkBx0B,+BAAAA;;AAHlB,MAAA,AAAAy0B,2BAAA,0BAGkBz0B;;;;AAHlB,AAAA;;;iCAAA,jCAGGu1B,0EAAev1B;AAHlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,2DAAA,jFAGkBA,sBAAAA;AAHlB,OAGkBA,wDAAAA;;AAHlB,OAAAs1B,wDAGkBt1B;;;;AAHlB,IAAAw1B,6DAAA,WAIkBx1B;AAJlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZAIkBp0B,iBAAAA;IAJlBq0B,kBAAA,CAAAoB,kCAAA,AAAAlB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAIkBr0B,+BAAAA;;AAJlB,IAAAw0B,kBAAA,CAAAiB,kCAAA;AAAA,AAAA,GAAA,GAAA,CAAAjB,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAIkBx0B,+BAAAA;;AAJlB,MAAA,AAAAy0B,2BAAA,6BAIkBz0B;;;;AAJlB,AAAA;;;oCAAA,pCAIGy1B,gFAAez1B;AAJlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,8DAAA,pFAIkBA,sBAAAA;AAJlB,OAIkBA,2DAAAA;;AAJlB,OAAAw1B,2DAIkBx1B;;;;AAJlB,IAAA01B,+DAAA,WAKkB11B;AALlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZAKkBp0B,iBAAAA;IALlBq0B,kBAAA,CAAAsB,oCAAA,AAAApB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAKkBr0B,+BAAAA;;AALlB,IAAAw0B,kBAAA,CAAAmB,oCAAA;AAAA,AAAA,GAAA,GAAA,CAAAnB,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAKkBx0B,+BAAAA;;AALlB,MAAA,AAAAy0B,2BAAA,+BAKkBz0B;;;;AALlB,AAAA;;;sCAAA,tCAKG21B,oFAAe31B;AALlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,gEAAA,tFAKkBA,sBAAAA;AALlB,OAKkBA,6DAAAA;;AALlB,OAAA01B,6DAKkB11B;;;;AALlB,IAAA41B,2DAAA,WAMkB51B;AANlB,AAAA,IAAAo0B,kBAAA,EAAA,MAAA,OAAA,ZAMkBp0B,iBAAAA;IANlBq0B,kBAAA,CAAAwB,gCAAA,AAAAtB,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAMkBr0B,+BAAAA;;AANlB,IAAAw0B,kBAAA,CAAAqB,gCAAA;AAAA,AAAA,GAAA,GAAA,CAAArB,mBAAA;AAAA,QAAAA,gDAAAA,mDAAAA,LAMkBx0B,+BAAAA;;AANlB,MAAA,AAAAy0B,2BAAA,4BAMkBz0B;;;;AANlB,AAAA;;;kCAAA,lCAMG61B,4EAAe71B;AANlB,AAAA,GAAA,EAAA,GAAA,MAAA,aAAA,GAAA,CAAA,4DAAA,lFAMkBA,sBAAAA;AANlB,OAMkBA,yDAAAA;;AANlB,OAAA41B,yDAMkB51B;;;;AANlB,AASG,AAAA;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,0EAAApc,1EAASmyC;;AAAT,CAAA,AAAA,0FAAA,1FAASA,qGAES/1B;;AAFlB,AAAA,YAAA,RAEkBA;AAFlB,AAAA,kDAAA,2DAAA,TAE0BzW,4DAAOk+B;;;AAFjC,CAAA,AAAA,yFAAA,zFAASsO,oGAGS/1B;;AAHlB,AAAA,YAAA,RAGkBA;AAHlB,AAAA,OAAA/Z,gBAG0CgwC;;;AAH1C,CAAA,AAAA,gGAAA,hGAASF,2GAIS/1B;;AAJlB,AAAA,YAAA,RAIkBA;AAJlB,AAIqB,UAAK,AAAAxO,mCAAA,AAAAvL,iCAAA,jBAAgBgwC;;;AAJ1C,CAAA,AAAA,mGAAA,nGAASF,8GAKS/1B;;AALlB,AAAA,YAAA,RAKkBA;AALlB,AAK0B,OAAAxO,mCAAA,AAAAvL,iCAAA,jBAAgBgwC;;;AAL1C,CAAA,AAAA,qGAAA,rGAASF,gHAMS/1B;;AANlB,AAAA,YAAA,RAMkBA;AANlB,AAM0B,OAAAxO,mCAAA,AAAAvL,iCAAA,jBAAgBgwC;;;AAN1C,CAAA,AAAA,iGAAA,jGAASF,4GAOS/1B;;AAPlB,AAAA,YAAA,RAOkBA;AAPlB,AAOqB,OAAAmjB,gDAAA,yEAAA,zFAAQ8S;;;AAP7B,CAAA,AAAA,sFAAA,tFAASF,iGASgB9nB;;AATzB,AAAA,YAAA,RASyBA;AATzB,AAS4B,OAAUA;;;AATtC,CAAA,AAAA,0EAAA,1EAAS8nB,qFAUgB9nB;;AAVzB,AAAA,YAAA,RAUyBA;AAVzB,AAU4B,OAAUA;;;AAVtC,CAAA,yCAAA,zCAAS8nB;AAAT,AAAA,AAAA;;;AAAA,CAAA,+CAAA,/CAASA;;AAAT,CAAA,kDAAA,lDAASA;;AAAT,CAAA,uDAAA,WAAAvjC,mBAAAC,qBAAAC,1GAASqjC;AAAT,AAAA,OAAApjC,iBAAAF,qBAAA;;;AAAA;;;qCAAA,rCAASujC,kFAAezsC,EAAE0sC,SAASxO;AAAnC,AAAA,YAAAsO,8BAAwBxsC,EAAE0sC,SAASxO;;;AAA1BsO,AAuCZ,wCAAA,xCAAMG,wFAA2C/0C;AAAjD,AAAoD,qBAAW40C,bAAc50C;;AAE7E,AAAA;;;;;;;;;;;qCAAA,6CAAAG,lFAAM80C;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,iEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,iEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA30C,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,mEAAA,nEAAM20C,8EAaInjB,MAAM1pB;AAbhB,AAamB,OAAC8sC,iEAAmBpB,sCAAsBhiB,MAAM1pB;;;AAbnE,CAAA,mEAAA,nEAAM6sC,8EAcFE,MAAMrjB,MAAM1pB;AAdhB,AAeG,IAAM0pB,YAAM,AAACjqB,gBAAKiqB;IACZwU,MAAM,CAAG,AAACrX,4BAAS6C;IACnBgjB,WAAS,sBAAA,tBAACpT;IAEV0T,QACA;AAAA,AACE,IAAMC,UAAQ,KAAArL,gBAAA;AAAA,AAAO,QAAC5hC,kCAAAA,oCAAAA;GAAR;AAAd,AACE,GAAM,AAAA45B,yCAAA,TAAQ8S,kFAA0BO;AAAxC,AAAA,OAAAvwC,gBACGuwC;;AADH;;;AAPV,AAWE,IAAMC,aAAK,AAACC,gBAAMJ;AAAlB,AAA0B,AAAChC,kCAAkBmC,WAAKxjB,UAAMsjB;;AACxD,YAAAR,8BAAgBxsC,EAAE0sC,SAASxO;;;AA3BhC,CAAA,6DAAA,7DAAM2O;;AAAN,AAoCA,AASG,AACE,AAAeO,8BACb,EAAQ,QAAAC,0BAEN;mCAAOxlC;AAAP,AAAW,IAAA5O,oBAAaq0C;AAAb,AAAA,oBAAAr0C;AAAA,QAAAA,JAAW+G;AAAX,AAAA,AACE,OAAQA,QAAGqtC,QAAW,AAACE,mDAAW1lC;;AADpC;;;;IAAJA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;CADP;mCAAOA;AAAP,AAAA;;;IAAOA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;;;AAIX,AAAM2lC,sBAAIJ;;AACV,AAAA,uBAAA,+BAAAr1C,tDAAM01C;AAAN,AAAA,IAAAz/B,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAy/B,0DAAAt/B;;;AAAA,AAAA,CAAA,4DAAA,5DAAMs/B,uEAAY5lC;AAAlB,AAAsB,OAACulC,4BAAY,uDAAA,vDAAClhB,2DAAa,AAACnQ,4CAAI8R,6BAAUhmB;;;AAAhE,CAAA,+CAAA,/CAAM4lC;;AAAN;AAAA,CAAA,yCAAA,WAAAC,pDAAMD;AAAN,AAAA,IAAAl/B,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAA1F,cAAA6kC;;;AAAA;AACA,AAAA,uBAAA,+BAAA31C,tDAAM41C;AAAN,AAAA,IAAA3/B,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA2/B,0DAAAx/B;;;AAAA,AAAA,CAAA,4DAAA,5DAAMw/B,uEAAY9lC;AAAlB,AAAsB,OAACgmC,MAAY,uDAAA,vDAAC3hB,2DAAa,AAACnQ,4CAAI8R,6BAAUhmB;;;AAAhE,CAAA,+CAAA,/CAAM8lC;;AAAN;AAAA,CAAA,yCAAA,WAAAC,pDAAMD;AAAN,AAAA,IAAAp/B,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAA1F,cAAA+kC;;;AAAA;AACA,AAAA,uBAAA,+BAAA71C,tDAAM+1C;AAAN,AAAA,IAAA9/B,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA8/B,0DAAA,CAAA,UAAA,MAAA3/B;;;AAAA,AAAA,CAAA,4DAAA,5DAAM2/B,uEAAM9f,IAAMnmB;AAAlB,AAAsB,OAACulC,4BAAY,AAACnf,2DAAQD,IAAInmB;;;AAAhD,CAAA,+CAAA,/CAAMimC;;AAAN;AAAA,CAAA,yCAAA,WAAAC,pDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAp1C,gBAAAm1C;IAAAA,eAAA,AAAAl1C,eAAAk1C;AAAA,AAAA,IAAAp9B,qBAAA;AAAA,AAAA,OAAAA,wDAAAq9B,SAAAD;;;AAAA;AACA,AAAA,uBAAA,+BAAAh2C,tDAAMk2C;AAAN,AAAA,IAAAjgC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAigC,0DAAA,CAAA,UAAA,MAAA9/B;;;AAAA,AAAA,CAAA,4DAAA,5DAAM8/B,uEAAMjgB,IAAMnmB;AAAlB,AAAsB,OAACgmC,MAAY,AAAC5f,2DAAQD,IAAInmB;;;AAAhD,CAAA,+CAAA,/CAAMomC;;AAAN;AAAA,CAAA,yCAAA,WAAAC,pDAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAv1C,gBAAAs1C;IAAAA,eAAA,AAAAr1C,eAAAq1C;AAAA,AAAA,IAAAv9B,qBAAA;AAAA,AAAA,OAAAA,wDAAAw9B,SAAAD;;;AAAA,AAGF;;;;8BAAA,9BAAME;AAAN,AAIE,IAAAn1C,oBAAe,oFAAA,pFAACguB,mDAAKvtB;AAArB,AAAA,oBAAAT;AAAA,UAAAA,NAAWo1C;AAAX,AAAA,AAAA,kDAAA,8DAAA,yEAAA,0EAAA,+DAAA,2EAAA,oEAAA,1WAEa,AAAYA,qEACZ,AAAYA,0EACZ,AAAYA,mEACZ,AAAYA,uEACZ,AAAYA,sEACZ,AAAYA,+DACZ,AAAYA;;AARzB;;;AAWI,AAAeC,oCAAkB,KAAA1M,gBAAA;AAAA,AAAO,YAAA2M;GAAP;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,wCAAAC,pEAAME,gEA4BHC,aAUAW;AAtCH,AAAA,IAAAb,aAAAD;IAAAC,iBAAA,AAAAtqB,4BAAAsqB;WAAAA,PA8BkDtkB;gBA9BlD,AAAAxhB,4CAAA8lC,eAAA,+DAAA,tIA6BiDQ;eA7BjD,AAAAtmC,4CAAA8lC,eAAA,tEA8BWU,mIAKSb;WAnCpB,AAAA3lC,4CAAA8lC,eAAA,lEA6BkBI;iBA7BlB,AAAAlmC,4CAAA8lC,eAAA,gEAAA,xIA6BsCO;qBA7BtC,AAAArmC,4CAAA8lC,eAAA,uEAAA,nJA8B8BY;aA9B9B,AAAA1mC,4CAAA8lC,eAAA,uDAAA,3HA6BWG;gBA7BX,AAAAjmC,4CAAA8lC,eAAA,vEA8BoBW;aA9BpB,AAAAzmC,4CAAA8lC,eAAA,pEA6BuBK;cA7BvB,AAAAnmC,4CAAA8lC,eAAA,rEA6B8BM;8BA7B9B,AAAApmC,4CAAA8lC,eAAA,rFA6B2DS;AA7B3D,AAwCE,AACO,IAAAK,mBAAA,iBAAA,AAAA,oBAAA,AAAA,WAAAC;AAAA,AAAA,GAAA,CAAAA,YAAA;AAAA;;AAAA,OAAA/xC,+BAAA+xC;;GAAiCR;AAAjC;;AAAAze;;gBAAA,IAAAvgB,IAAAy/B;AAAA,AAAAz/B;;AAAA,AAAA,oBAAAu/B;AAAA,AAAA9e,sCAAA,kBAAA,KAAA,GAAA,AAAA,sQAAA,AAAA,iFAAA,KAAA8e,hBAAiCP;;AAAjC;;AADP,IAE4BG,eAAS,AAAChC,gBAAMgC;AAF5C,AAAA,IAIGO,WACA,WAAqBC;AAArB,AACE,IAAA,AACE,IAAMX,iBAAW,iBAAAj1C,mBAAI,iDAAA,jDAAC4O,4CAAIwhB;AAAT,AAAA,oBAAApwB;AAAAA;;AAAwBi1C;;;IAAzCa,aAGM,EACE,iBAAAI,WAAMrB;AAAN,AAAA,GAAA,AAAAr1C,6CAAA,mDAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,qDAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,yDAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,wDAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,MAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,OAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,UAAA02C;AAAA;;AAAA,GAAA,AAAA12C,6CAAA,QAAA02C;AAAA;;AAAA,AAAA;;;;;;;;;;iUADF,6fAAA,2EAAA,2CAAA,wEAAA,t/BAEE,kCAAA,KAAA,AAAA,2CAAA,hFAAU,AAACvlC,uBAAOokC,6GACT,kDAAA,LAAKH,qDAAQ,AAACuB,iCAA0B,AAACC,qBAAQrB,+CAE1DD,MACA,kCAAA,2CAAA,sEAAA,2CAAA,8DAAA,1PAAI,AAACnkC,uBAAOokC,6GACAD,iHACAA,yDAAY,kDAAA,LAAKF,qDAAQ,AAACuB,iCAA0B,AAACC,qBAAQrB,+BAEzE,EAAK,QAAAsB,+BAAsB,mBAAWA,lBAAYtB,mIACxCA,iCAEV,iBAAAvzC,oBAAQ,QAAA60C;AAAR,AAAA,GAAA70C;AAA8B,OAACuL,yBAAS,WAAK2P,EAAE3S;AAAP,AAAU,qBAAWusC,bAAQvsC;GAAIgrC;;AAAzEvzC;;MACA,iBAAM+0C,YAAU,KAAAF;AAAhB,AACE,IAAAG,mBAAA,AAAA1nC,cAAcimC;IAAd0B,qBAAA;IAAAC,qBAAA;IAAAC,iBAAA;;AAAA,AAAA,GAAA,AAAA,CAAAA,iBAAAD;AAAA,IAAAE,mBAAA,AAAAH,wDAAAE;cAAA,AAAAl4C,4CAAAm4C,iBAAA,IAAA,3EAAS9sC;cAAT,AAAArL,4CAAAm4C,iBAAA,IAAA,3EAAW7sC;AAAX,AAAA,AAAsB,AAASwsC,iBAAU,AAACpxC,eAAK2E,SAAGC;;AAAlD;AAAA,eAAAysC;eAAAC;eAAAC;eAAA,CAAAC,iBAAA;;;;;;;AAAA,IAAAE,2BAAA,AAAA/nC,cAAA0nC;AAAA,AAAA,GAAAK;AAAA,AAAA,IAAAL,uBAAAK;AAAA,AAAA,GAAA,AAAAC,6BAAAN;AAAA,IAAAO,wBAAA,AAAAnqB,sBAAA4pB;AAAA,AAAA,eAAA,AAAAQ,qBAAAR;eAAAO;eAAA,AAAA90C,gBAAA80C;eAAA;;;;;;;AAAA,IAAAE,mBAAA,AAAAp4C,gBAAA23C;cAAA,AAAA/3C,4CAAAw4C,iBAAA,IAAA,3EAASntC;cAAT,AAAArL,4CAAAw4C,iBAAA,IAAA,3EAAWltC;AAAX,AAAA,AAAsB,AAASwsC,iBAAU,AAACpxC,eAAK2E,SAAGC;;AAAlD;AAAA,eAAA,AAAAjL,eAAA03C;eAAA;eAAA;eAAA;;;;;;;;AAAA;;;;;AADF,kDAAA,yDAEYD;KAhBd,2CAAA,qKAAA,qEAAA,jLAmBY,4CAAK,AAACJ,iCAA0B,AAACC,qBAAQrB;IAtB3De,iBAAA,AAAA1rB,4BAAA0rB;gBAAA,AAAAlnC,4CAAAknC,eAAA,vEAEcC;cAFd,AAAAnnC,4CAAAknC,eAAA,rEAEmBE;mBAFnB,AAAApnC,4CAAAknC,eAAA,1EAE2BG;IAuBrBjB,cAAQ,yBAAA,WAAAkC,pCAACv5B;AAAD,AAAW,OAAC7W,0BAAe,eAAAowC,fAAC/xC;GAAS6vC;IAC7CA,cAAQ,qEAAA,rEAACp9B,yDAAWo9B,+BACV,wDAAA,mBAAA,3EAACpmC,4CAASomC;IACpBA,cAAQ,qEAAA,rEAACp9B,yDAAWo9B,2BACV,wDAAA,xDAACpmC,4CAASomC,2BAAuBiB;IAE3CkB,oBACA,iBAAAj4C,oBAAc,iDAAA,jDAAC0P,4CAAIwhB;AAAnB,AAAA,oBAAAlxB;AAAA,SAAAA,LAAWiuB;AAAX,AAAA,AACE,6BAAA,7BAA2ByoB;;AAC3B,OAACwB,mBAAexB,IAAIyB,4BAClB,WAAKC;AAAL,AACE,IAAMC,2BAAmB,AAAoBD;IACvCE,SAAO,AAAUF;IACjBG,QAAO,AAAUH;IACjBI,eAAO,kBAAM,iBAAAl2C,oBAAK+1C;AAAL,AAAA,oBAAA/1C;AAAwB,6DAAA,tDAAC4wB,gDAAKqlB;;AAA9Bj2C;;MAAN,iBAAA,jBACE,CAAGg2C,SAAOC;AAJzB,AAKE,IAAAE,WAAA,2CAAA,0GAAA,uEAAA,iEAAA,6DAAA,9NACuBJ,mFACZG,uEACAF,8DACAC,uDACAH;AALX,AAAA,4EAAAK,yBAAAA,7FAACxqB,mCAAAA,6CAAAA;;;AATT;;;AAhCN,AAgDE,AAACyqB,uBAAmBhC,IAAIiC,yBACtB,WAAKn7B;AAAL,AAAQ,OAAgB04B,2BAASQ;;;AAEnC,AAACgC,uBAAmBhC,IAAIkC,4BACtB,uDAAsBC;AAAtB,AACE,IAAME,iBAAS,AAAYrC;IACrBsC,SAAS,AAAYtC;IAD3BoC,aAIM,gEAAA,9DAAM,uDAAA,vDAAC5lB,gDAAK8lB,cACV,iBAAMjC,mBAAa,sBAAA,tBAAoBL;IACjCV,gBACA,6HAAA,8BAAA,zJACE,0DAAA,1DAAC9iB,gDAAK8iB,iEAAiBA,YACvB,qBAAA,pBAAMe,iFAEN,iBAAMoC,KAAG,AAACvxC,0BAAemvC;AAAzB,AACE,oBACE,uCAAA,vCAAC1jB,oCAAc8lB;AADjB;;AAAA,oBAEE,uCAAA,vCAAC9lB,oCAAc8lB;AAFjB;;AAAA,oBAGE,uCAAA,vCAAC9lB,oCAAc8lB;AAHjB;;AAAA;;;;;IAPVD,aAcM,iBAAAE,WAAMpD;IAANoD,eAAA,EAAA,CAAAA,oBAAAn3C,oBAAA,AAAAm3C,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,0FACS,AAAkB1C;;;KAD3B;AAAA,0FAES,AAAkBA;;;KAF3B;AAAA,0FAGS,AAAkBA;;;KAH3B;AAKE,IAAA12C,oBAAe,AAAkB02C;AAAjC,AAAA,oBAAA12C;AAAA,UAAAA,NAAWq5C;AAAX,AAAA,AACE,IAAA,AAAA,0FACG,AAAC9c,uDAAS8c;gBADb,QAAAC,JAEc97B;AAFd,AAAA,8FAAA,JAEiB67B;;AAHnB;;;;;AALF,0FAUG,AAAc3C;;;;kBAxBvB,AAAAn3C,4CAAA25C,WAAA,IAAA,zEAaOpC;YAbP,AAAAv3C,4CAAA25C,WAAA,IAAA,nEAaeD;AAbf,AAAA,0FA0BGD,OAAOjC,iBAAaD,YAAQmC;KA3BjC;iBAJN,AAAA15C,4CAAAu5C,WAAA,IAAA,xEAGOE;uBAHP,AAAAz5C,4CAAAu5C,WAAA,IAAA,9EAGc/B;kBAHd,AAAAx3C,4CAAAu5C,WAAA,IAAA,zEAG2BhC;YAH3B,AAAAv3C,4CAAAu5C,WAAA,IAAA,nEAGmCG;IA8B7BF,qBAAS,iBAAAz2C,oBAAKy2C;AAAL,AAAA,oBAAAz2C;AAAc,OAACqD,cAAIszC;;AAAnB32C;;;AAjCf,AAmCE,oBAAM21C;AAAN,AACE,AAACsB,0BAAsBtB;;AADzB;;AAGA,IAAAuB,WAAA,2CAAA,mEAAA,uDAAA,gFAAA,qEAAA,yFAAA,yEAAA,nXACkBX,wDACAnC,iEACAqC,6EACAC,mFACAjC,8EACAD,qEAEf,sCAAA,pBAAIiC,yBAEF,+BAAA,bACEE,OAAOA,wBACPD,YAAOA,WAEP,iBAAAS,WAAM,AAAmB/C;AAAzB,AAAA,GAAA,AAAAp2C,6CAAA,AAAA,oGAAAm5C;AAAA;;AAAA,GAAA,AAAAn5C,6CAAA,AAAA,uGAAAm5C;AAAA;;AAAA,GAAA,AAAAn5C,6CAAA,AAAA,wGAAAm5C;AAAA;;AAAA,GAAA,AAAAn5C,6CAAA,AAAA,+FAAAm5C;AAAA;;AAAA,GAAA,AAAAn5C,6CAAA,AAAA,kGAAAm5C;AAAA;;AAAA,AAME,AAAA;;;;;;;;AApBT,AAAA,8FAAAD,kCAAAA,xHAACnD,4CAAAA,sDAAAA;;;AAsBP,AAAqBK,uBAAI,iBAAA51C,mBAAIi1C;AAAJ,AAAA,oBAAAj1C;AAAAA;;AAAA;;;;AACzB,oBAAMm1C;AAAN,AACE,uBAAA,vBAAqBS;;AADvB;;AAGA,IAAAgD,iBAAM1D;IAAN0D,qBAAA,EAAA,CAAAA,0BAAAz3C,oBAAA,AAAAy3C,mBAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;KAAA;AAAA;;KAAA;AAEqB,oBAAA,pBAAkBhD;;;KAFvC;AAGqB,oBAAA,pBAAkBA;;;KAHvC;AAIqB,oBAAA,pBAAkBA;;;KAJvC;AAKqB,oBAAA,pBAAkBA;;;;AACrC,oBAAMV;AAAN,AAAmB,AAAkBU,oBAAIV;;AAAzC;;;;AAEF,AAAOU,SAAI,iBAAA51C,mBAAI+1C;AAAJ,AAAA,oBAAA/1C;AAAAA;;AAAS40C;;KAAK,AAACzvC,eAAK0vC,QAAQmB,QAAQ,AAACI,qBAAQpB;;AAExD,IAAA91C,0BAAcm2C;AAAd,AAAA,oBAAAn2C;AAAA,eAAAA,XAAW25C;AAAX,AAAA,AAAyB,IAAA,AAAgB,CAACA,yCAAAA,8CAAAA,PAAGjD,0BAAAA;gBAApB,IAAAl5B,UAAAo8B;AAAA,AAAA;AAAzB;;AACAlD;gBAjIJ,QAAAC,JAmIc5/B;AAnId,AAoII,AAAgBm/B,2BAASQ;;AACzB,IAAAmD,iBAAA,2CAAA,yDAAsB9iC;AAAtB,AAAA,uFAAA8iC,wCAAAA,9HAACxD,4CAAAA,4DAAAA;;AArIL;;AANL,AAAA,IAAAr2C,oBA8Ie,AAAYk2C;AA9I3B,AAAA,oBAAAl2C;AAAA,UAAAA,NA8IW02C;AA9IX,AA+IE,OAACD,SAASC;;AA/IZ,GAiJE,CAAO,iBAAA51C,mBAAIs1C;AAAJ,AAAA,oBAAAt1C;AAAAA;;AAAA;;SAAP;AACA,AAAI,IAAAg5C,iBAAA,2CAAA,yDAAA;AAAA,AAAA,uFAAAA,wCAAAA,9HAACzD,4CAAAA,4DAAAA;;AAAL;;AAGA,IAAM0D,eAAO,6CAAA,7CAACC;AAAd,AAEE,AAAC3H,WACC;AAAA,AACE,GAAM,6CAAA,MAAA,nDAAC1R,gCAAiBoZ;AAAxB,AACE,IAAAE,WAAA,2CAAA,yDAAA;AAAA,AAAA,8FAAAA,kCAAAA,xHAAC5D,4CAAAA,sDAAAA;;AADH;;GAEFD;;AAEF,AAAYF,uBACV,6CAAYQ;AAAZ,AAEE,GAAI,6CAAA,MAAA,nDAAC/V,gCAAiBoZ;AACpB,OAACtD,SAAwBC;;AACzB,OAAgBR,2BAASQ;;;;AAbjC;;;;AAoCP,AA6BA,AAcA,AAmBA,AAEA;;;6BAAA,7BAAMwD,kEAE6B50C;AAFnC,AAGE,oBAAMA;AAAN,iDAMe,4CAAKA,/DACP,AAAC60C,kEAAsB70C,hGACvB,mGAAA,IAAA,hGAAC0wB;;AARd;;;AAUF,AAAA;;;6BAAA,qCAAAl3B,lEAAMs7C;AAAN,AAAA,IAAArlC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAqlC,gEAAA,CAAA,UAAA,MAAAllC;;;AAAA,AAAA,CAAA,kEAAA,aAAAmlC,/EAAMD,6EAEH90C;AAFH,AAAA,IAAAg1C,aAAAD;eAAA,AAAA96C,4CAAA+6C,WAAA,IAAA,tEAEQG;AAFR,AAGE,oBAAMn1C;AAAN,AAEW,OAACo1C,mBAA2B,4CAAKp1C;;AAF5C;;;;AAHF,CAAA,qDAAA,rDAAM80C;;AAAN;AAAA,CAAA,+CAAA,WAAAG,1DAAMH;AAAN,AAAA,IAAAI,WAAA,AAAA76C,gBAAA46C;IAAAA,eAAA,AAAA36C,eAAA26C;AAAA,AAAA,IAAA7iC,qBAAA;AAAA,AAAA,OAAAA,wDAAA8iC,SAAAD;;;AAAA,AAOA,AAIA,sCAAA,tCAAMI,oFAAqB16C;AAA3B,AACE,IAAM26C,QAAM,WAAKhwC,EAAEC;AAAP,AAAW,gEAAA,xDAAK,AAACqvC,2BAAW,AAAC1xC,yBAASoC,QACtB,AAACsvC,2BAAW,iBAAAp5C,mBAAI,AAACoF,gCAAU2E;AAAf,AAAA,oBAAA/J;AAAAA;;AAAkB,mDAAK+J;;;;IACzDgwC,OAAM,WAAKC;AAAL,AAAW,yDAAA,lDAACxyB,sDAAawyB;;AAFrC,AAGE,GAAI,AAACrpC,uBAAOxR;AAAZ;;AAEE,OAAC46C,KACC,iBAAAE,qBAAA,4DAAAptB;AAAA,AAAA,YAAA/rB,kBAAA,KAAA;AAAA,AAAA,IAAA+rB,eAAAA;;AAAA,AAAA,IAAAgqB,qBAAA,AAAA/nC,cAAA+d;AAAA,AAAA,GAAAgqB;AAAA,AAAA,IAAAhqB,eAAAgqB;AAAA,AAAA,GAAA,AAAAC,6BAAAjqB;sBAlkI2C,AAAAD,sBAAAC,5CAkkI3C,IAAAqtB;IAAAC,qBAAA,AAAAl4C,gBAAAi4C;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,IAAAI,aAAA,AAAAC,eAAAN,gBAAAI;QAAA,AAAA77C,4CAAA87C,WAAA,IAAA,/DAAOzwC;QAAP,AAAArL,4CAAA87C,WAAA,IAAA,/DAASxwC;AAAT,AAAA,GAAoB,GAAA,MAAA,LAAYA;AAAhC,AAAA,AAAA0wC,uBAAAL,SACE,EAAI,AAAC9kB,4BAAYvrB,IACf,AAACgwC,KAAK,AAACztB,6CAAK,AAAClR,gDAAQ0+B,MAAMhwC,GAAG,iBAAA9J,mBAAI,AAAC8O,cAAI/E;AAAT,AAAA,GAAA/J;AAAAA;;AAAA,0FAAA;;OAC9B,AAAC85C,MAAMhwC,EAAEC;;AAHb,eAAA,CAAAuwC,WAAA;;;;AAAA,eAAA,CAAAA,WAAA;;;;;AAAA;;;;;AAAA,OAAAI,qBAAA,AAAAC,gBAAAP,UAAA,AAAAQ,kDAAA,AAAA5D,qBAAAnqB;;AAAA,OAAA6tB,qBAAA,AAAAC,gBAAAP,UAAA;;;AAAA,IAAAS,aAAA,AAAAh8C,gBAAAguB;QAAA,AAAApuB,4CAAAo8C,WAAA,IAAA,/DAAO/wC;QAAP,AAAArL,4CAAAo8C,WAAA,IAAA,/DAAS9wC;AAAT,AAAA,GAAoB,GAAA,MAAA,LAAYA;AAAhC,OAAAwS,eACE,EAAI,AAAC+Y,4BAAYvrB,IACf,AAACgwC,KAAK,AAACztB,6CAAK,AAAClR,gDAAQ0+B,MAAMhwC,GAAG,iBAAA9J,mBAAI,AAAC8O,cAAI/E;AAAT,AAAA,GAAA/J;AAAAA;;AAAA,0FAAA;;mBAFlC,AAAA46C,kDAAA,AAAA/4B,eAAAgL,7EAGI,AAACitB,MAAMhwC,EAAEC;;AAHb,eAAA,AAAA8X,eAAAgL;;;;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAotB,mBAAY96C;;;;AAKpB,AAOA,6BAAA,7BAAO27C,kEAAY37C,EAAE2K,EAAEC;AAAvB,AACE,OAAC9K,8CAAME,EAAE2K,EAAE,iBAAA5K,oBAAa,AAAC0P,4CAAIzP,EAAE2K;AAApB,AAAA,oBAAA5K;AAAA,UAAAA,NAAS67C;AAAT,AAAwB,GAAI,AAAC/4C,wBAAQ+4C;AAAK,OAAC17C,6CAAK07C,IAAIhxC;;AAA5B,0FAAgCgxC,IAAIhxC;;;AAAIA;;;;AAE7E,AAEA,AAAA;;;qCAAA,6CAAA/L,lFAAMg9C;AAAN,AAAA,IAAA/mC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA+mC,wEAAA,CAAA,UAAA,MAAA5mC;;;AAAA,AAAA,CAAA,0EAAA,aAAA6mC,vFAAMD,qFAEHx2C;AAFH,AAAA,IAAA02C,aAAAD;wBAAA,AAAAx8C,4CAAAy8C,WAAA,IAAA,/EAEQG;eAFR,AAAA58C,4CAAAy8C,WAAA,IAAA,tEAEoBvB;AAFpB,AAGE,GAAI,EAAI,AAACv3C,4BAAWoC,QAAG,AAACK,cAAI,sCAAA,tCAAC0tB,oCAAc/tB;AAA3C;;AAEE,IACMA,QAAE,kBAAI,yCAAA,zCAACiuB,uCAAiBjuB,QAAO,+CAAA,/CAAC82C,6CAAK92C,OAAKA;IAC1CrF,IAAE,AAACgL,+CACC,WAAKhL,EAAE26C;AAAP,AACE,IAAA56C,oBAAe,yDAAA,IAAA,7DAAC+nB,mDAAU6yB;AAA1B,AAAA,oBAAA56C;AAAA,IAAAq8C,aAAAr8C;QAAA,AAAAT,4CAAA88C,WAAA,IAAA,/DAAUzxC;QAAV,AAAArL,4CAAA88C,WAAA,IAAA,/DAAYxxC;AAAZ,AACE,OAAC+wC,2BAAW37C,EAAE,AAACq8C,gEAAW1xC,oDAAE6vC,eAAU,AAAC6B,gEAAWzxC,oDAAE4vC;;AACpDx6C;;GAJN,mCAME,yDAAA,zDAAC8nB,mDAAUziB;AARrB,AASE,oBAAQ62C;AAEN,OAAC19B,yBAAS89B,kBAAQt8C;;AADlBA;;;;;AAfR,CAAA,6DAAA,7DAAM67C;;AAAN;AAAA,CAAA,uDAAA,WAAAG,lEAAMH;AAAN,AAAA,IAAAI,WAAA,AAAAv8C,gBAAAs8C;IAAAA,eAAA,AAAAr8C,eAAAq8C;AAAA,AAAA,IAAAvkC,qBAAA;AAAA,AAAA,OAAAA,wDAAAwkC,SAAAD;;;AAAA,AAkBA,AAOA,8CAAA,9CAAMO,oGAA6B9G,IAAIz1C;AAAvC,AACE,IAAAw8C,aAAkB,oGAAA,KAAA,zGAAC10B,mDAAU,4CAAK2tB;cAAlC,AAAAn2C,4CAAAk9C,WAAA,IAAA,rEAAO/G;kBAAP,AAAAn2C,4CAAAk9C,WAAA,IAAA,zEAAWC;IACLC,OAAM,AAAC5wB,oDACC,+BAAA,4FAAA,zGAAM2wB,aAAM,AAACj+B,yBAAS89B,kBAAQ,AAACT,mCAAmBY,oBAClD,AAACj+B,yBAAS89B,kBAAQt8C;IAC1By8C,kBAAM,AAAC72C,iCAAW,AAAC80C,oCAAoBgC;AAJ7C,AAKE,IAAA38C,oBAAc08C;AAAd,AAAA,oBAAA18C;AAAA,WAAAA,PAAS48C;AAAT,AAAqB,6DAAA,TAAKlH,aAAQkH;;AAAMlH;;;AAE5C,AASG;;;0BAAA,1BAAcmH,4DAEXl+C;AAFH,AAEM,OAAYm+C,eAAQ,8GAAA,9GAACC,0DAAQp+C,oHAAc6J;;AAGjD,AAAA;;;4BAAA,oCAAA1J,hEAAMm+C;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAh+C,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAMg+C,qEAEO33C;AAFb,AAEgB,+DAAA,xDAAC43C,8DAAgB53C;;;AAFjC,CAAA,0DAAA,1DAAM23C,qEAGFE,eAAS73C;AAHb,AAIG,GACE,EAAI,MAAA,LAAMA,gBAAG,+CAAA,/CAAChF,6CAAEgF;AADlB;;AAAA,GAEO,OAASA;AAKd,oBAAI63C;AACF,iIAAA,2EAAA,rMAACC,0DAAQ,AAACC,WAAc/3C;;AACxB,OAAC83C,mDAAQ,AAACC,WAAc/3C;;;AAN1B,MAAA,AAAA0C,6BAAA,kBAAA,mFAAA,KAAA,UAAA,kEAAA,2CAAA,8OAAA,1LACQ,2CAAA,wDAAA,qDAAA,AAAAE,vDAAW5C,sEAAAA;;;;;AARxB,CAAA,oDAAA,pDAAM23C;;AAAN,AA4BH,AAAA;AACE;;;kCAAA,lCAAeK,4EAGZ7c,MAAM71B,EAAE7D;AAHX,AAIE;AAAA,AACE,SAAA,AAAAtD,LAAMi9B,qBAAID;IACJxlB,KAAG,iBAAAsiC,WAAG,AAAC7tC,4CAAIgxB,GAAG91B;AAAX,AAAA,0EAAA2yC,wBAAAA,1FAACx2C,kCAAAA,4CAAAA;;IACJkd,KAAG,AAAClkB,8CAAO2gC,GAAG91B,EAAEqQ;AAFtB,AAGE,GAAI,AAAA0lB,gCAAQF,MAAMC,GAAGzc;AACnBhJ;;AACA;;;;;;AAEC,AAA2BuiC,gCAAoB/8C;;AAC/C,AAA2Bg9C,qCAAoB75C;;AAC/C,AAA2B85C,sCAAoBvI;;AAExD,AAA2BwI,qCAAgBzxC;;AAC3C,AAA2B0xC,0BAAgBp1C;;AAC3C,AAA2Bq1C,wBAAgBr1C;;AAC3C,AAA2Bs1C,kCAAgBx3B;;AAC3C,AAA2By3B,6BAAgBt4B;;AAC3C,AAA2Bu4B,6BAAgB/2C;;AAC3C,AAA2Bg3C,4BAAgB13C;;AAC3C,AAA2B23C,8BAAgBz3C;;AAC3C,AAA2B03C,gCAAgB5b;;AAC3C,AAA2B6b,8BAAgB5U;;AAC3C,AAA2B6U,8BAAgB7U;;AAC3C,AAA2B8U,8BAAgB9U;;AAC3C,AAA2B+U,8BAAgB/U;;AAC3C,AAA2BgV,4BAAgBra;;AAC3C,AAA2Bsa,2BAAgBta;;AAC3C,AAA2Bua,gCAAgBlV;;AAC3C,AAA2BmV,2BAAgBnV;;AAC3C,AAA2BoV,8BAAgB9xB;;AAC3C,AAA2B+xB,kCAAgBx6C;;AAC3C,AAA2By6C,kCAAgBt6C;;AAC3C,AAA2Bu6C,oCAAgBp6C;;AAC3C,AAA2Bq6C,8BAAgBx6C;;AAC3C,AAA2By6C,8BAAgBx6C;;AAC3C,AAA2By6C,2BAAgBhzB;;AAC3C,AAA2BizB,iCAAgBz4C;;AAC3C,AAA2B04C,iCAAgBz4C;;AAC3C,AAA2B04C,mCAAgBz4C;;AAC3C,AAA2B04C,mCAAgBz4C;;AAC3C,AAA2B04C,0BAAgBt2C;;AAC3C,AAA2Bu2C,0BAAgBt2C;;AAC3C,AAA2Bu2C,4BAAgBr2C;;AAC3C,AAA2Bs2C,4BAAgBr2C;;AAC3C,AAA2Bs2C,kCAAgBzzC;;AAC3C,AAA2B0zC,4BAAgB9xB;;AAC3C,AAA2B+xB,oCAAgBvC;;AAC3C,AAA2BwC,6BAAgBrd;;AAC3C,AAA2Bsd,4BAAgBtd;;AAC3C,AAA2Bud,gCAAgB1C;;AAC3C,AAA2B2C,kCAAgB3/B;;AAC3C,AAA2B4/B,yBAAgB10C;;AAC3C,AAA2B20C,4BAAgB3qC;;AAC3C,AAA2B4qC,4BAAgB1qC;;AAC3C,0CAAA,1CAA2B2qC;;AAE3B,AAA+BC,8BAASx7C;;AACxC,AAA2By7C,iCAASz5C;;AACpC,AAA4B05C,0BAASl3C;;AAGrC,0BAAA,WAAAm3C,jCAAMC;AAAN,AAAe,iCAAA,+CAAA,KAAA,iCAAA,oCAAAD,nJAACjnC;;AAAhB,AACE,AAAA,oCAAA,4CAAA1a,hFAA4B8hD;AAA5B,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,gEAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA3hD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,kEAAA,lEAA4B2hD,6EACxBC;AADJ,AACyB,kFAAA,3EAAsBC,gEAAkBD;;;AADjE,CAAA,kEAAA,lEAA4BD,6EAExBG,UAAUC;AAFd,AAGG,GAAI,EAAK,AAACN,oBAAQK,gBAAW,AAACL,oBAAQM;AACpC,kBAAKxjC;AAAL,AAAA;;;AACA,mCAAA,2CAAA,kEAAA,zIAACqc,+HAAoBknB,uEAAoBC;;;;AAL9C,CAAA,4DAAA,5DAA4BJ;;AAA5B;AAsDO,oCAAA,pCAA4BK,gFAAgBtiD;AAA5C,AAA+C,GAAI,YAAYA;AAAhB;;AAAuBA;;;;AAC/E,uCAAA,vCAA4BuiD,sFAAsBtyC;AAAlD,AAAsD,yDAAA,lDAAC0Z,sDAAa,AAAC8E,6CAAKwH,4BAAShmB;;;AACnF,6BAAA,7BAA4BuyC,kEAAYvyC;AAAxC,AAA4C,yDAAA,lDAAC0Z,sDAA8B,AAAC8E,6CAAK6zB,kCAAeryC;;;AAGhG,AAAA,6BAAA,qCAAA9P,lEAA4BuiD;AAA5B,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAApiD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAA4BoiD,sEACxB1iD,EAAE2R;AADN,AACe,OAACgxC,6DAAe3iD,EAAE2R;;;AADjC,CAAA,2DAAA,3DAA4B+wC,sEAExB1iD,EAAE2R,EAAEqY;AAFR,AAEe,OAAC24B,6DAAS34B,MAAMhqB,EAAE2R;;;AAFjC,CAAA,qDAAA,rDAA4B+wC;;AAA5B;AAKA,AAAA,4BAAA,oCAAAviD,hEAA4ByiD;AAA5B,AAAA,IAAAxsC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAwsC,+DAAA,CAAA,UAAA,MAAArsC;;;AAAA,AAAA,CAAA,iEAAA,jEAA4BqsC,4EAAWhvB,IAAMjnB;AAA7C,AAAmD,OAAC+pB,8BAAc9C,IAAIjnB;;;AAAtE,CAAA,oDAAA,pDAA4Bi2C;;AAA5B;AAAA,CAAA,8CAAA,WAAAC,zDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAA9hD,gBAAA6hD;IAAAA,eAAA,AAAA5hD,eAAA4hD;AAAA,AAAA,IAAA9pC,qBAAA;AAAA,AAAA,OAAAA,wDAAA+pC,SAAAD;;;AAAA;AAQA,2BAAA,3BAA4BE,8DAAU/iD;AAAtC,AAAyC,kFAAA,3EAACgjD,6CAAK,AAACjsC,2BAAW/W;;;AAG3D,2BAAA,3BAA4BijD,8DAAY3hD,EAAEgW;AAA1C,AAA8C,OAAC4J,uBAAS5J,GAAGhW;;;AAC3D,+BAAA,/BAA4B4hD,sEAAY5hD,EAAEgW;AAA1C,AAA8C,OAACgK,2BAAShK,GAAGhW;;;AAC3D,+BAAA,/BAA4B6hD,sEAAY7hD,EAAEgW;AAA1C,AAA8C,OAAC8J,2BAAS9J,GAAGhW;;;AAC3D,sCAAA,tCAA4B8hD,oFAAY9hD,EAAEgW;AAA1C,AAA8C,OAACyJ,+BAASzJ,GAAGhW;;;AAG3D,AAA2B+hD,gCAAc,6CAAA,7CAAChI;;AAGvC,AAAA,gDAAA,wDAAAl7C,xGAA4BmjD;AAA5B,AAAA,IAAAltC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAktC,mFAAA,CAAA,UAAA,MAAA/sC;;;AAAA,AAAA,CAAA,qFAAA,qBAAAgtC,1GAA4BD,gGAA0BK;AAAtD,AAAA,IAAAH,aAAAD;eAAA,AAAA3iD,4CAAA4iD,WAAA,IAAA,tEAAmEI;AAAnE,AACE,OAAClQ,WAAciQ,UAAU,AAACl3B,0DAAY,iBAAAtqB,mBAAIyhD;AAAJ,AAAA,oBAAAzhD;AAAAA;;AAAA;;;;;AADxC,CAAA,wEAAA,xEAA4BmhD;;AAA5B;AAAA,CAAA,kEAAA,WAAAG,7EAA4BH;AAA5B,AAAA,IAAAI,WAAA,AAAA1iD,gBAAAyiD;IAAAA,eAAA,AAAAxiD,eAAAwiD;AAAA,AAAA,IAAA1qC,qBAAA;AAAA,AAAA,OAAAA,wDAAA2qC,SAAAD;;;AAAA;AAIA,AACE,GAAA,QAAA9P,qCAAAC,4CAAAiQ;AAAA;AAAA,AAAA,wCAAA,xCAAyCC;;;AACzC,AAAeC,6BACb,0BAAA,2CAAA,wDAAA,IAAA,wDAAA,IAAA,qDAAA,IAAA,qDAAA,IAAA,uDAAA,IAAA,uDAAA,IAAA,yDAAA,7cAAMC;AAAN,AACE,kBAAKC;AAAL,AAAY,QAAI,CAACD,uCAAAA,8CAAAA,TAAIC,0BAAAA,WAAO,CAACD,uCAAAA,8EAAAA,zCAAIF,0DAAAA;;;;AAErC,AAAA,yBAAA,iCAAA3jD,1DAA4B+jD;AAA5B,AAAA,IAAA9tC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA8tC,4DAAA,CAAA,UAAA,MAAA3tC;;;AAAA,AAAA,CAAA,8DAAA,9DAA4B2tC,yEAAS9tB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK9f,IAAInmB;;AAArC;;;;AAA/C,CAAA,iDAAA,jDAA4Bi0C;;AAA5B;AAAA,CAAA,2CAAA,WAAAC,tDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAApjD,gBAAAmjD;IAAAA,eAAA,AAAAljD,eAAAkjD;AAAA,AAAA,IAAAprC,qBAAA;AAAA,AAAA,OAAAA,wDAAAqrC,SAAAD;;;AAAA;AACA,AAAA,yBAAA,iCAAAhkD,1DAA4BkkD;AAA5B,AAAA,IAAAjuC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAiuC,4DAAA,CAAA,UAAA,MAAA9tC;;;AAAA,AAAA,CAAA,8DAAA,9DAA4B8tC,yEAASjuB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK9f,IAAInmB;;AAArC;;;;AAA/C,CAAA,iDAAA,jDAA4Bo0C;;AAA5B;AAAA,CAAA,2CAAA,WAAAC,tDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAvjD,gBAAAsjD;IAAAA,eAAA,AAAArjD,eAAAqjD;AAAA,AAAA,IAAAvrC,qBAAA;AAAA,AAAA,OAAAA,wDAAAwrC,SAAAD;;;AAAA;AACA,AAAA,wBAAA,gCAAAnkD,xDAA4BqkD;AAA5B,AAAA,IAAApuC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAouC,2DAAA,CAAA,UAAA,MAAAjuC;;;AAAA,AAAA,CAAA,6DAAA,7DAA4BiuC,wEAASpuB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK9f,IAAInmB;;AAArC;;;;AAA/C,CAAA,gDAAA,hDAA4Bu0C;;AAA5B;AAAA,CAAA,0CAAA,WAAAC,rDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAA1jD,gBAAAyjD;IAAAA,eAAA,AAAAxjD,eAAAwjD;AAAA,AAAA,IAAA1rC,qBAAA;AAAA,AAAA,OAAAA,wDAAA2rC,SAAAD;;;AAAA;AACA,AAAA,wBAAA,gCAAAtkD,xDAA4BwkD;AAA5B,AAAA,IAAAvuC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAuuC,2DAAA,CAAA,UAAA,MAAApuC;;;AAAA,AAAA,CAAA,6DAAA,7DAA4BouC,wEAASvuB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK,CAAA,qDAAe9f,eAAKnmB;;AAArD;;;;AAA/C,CAAA,gDAAA,hDAA4B00C;;AAA5B;AAAA,CAAA,0CAAA,WAAAC,rDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAA7jD,gBAAA4jD;IAAAA,eAAA,AAAA3jD,eAAA2jD;AAAA,AAAA,IAAA7rC,qBAAA;AAAA,AAAA,OAAAA,wDAAA8rC,SAAAD;;;AAAA;AACA,AAAA,yBAAA,iCAAAzkD,1DAA4B2kD;AAA5B,AAAA,IAAA1uC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA0uC,4DAAA,CAAA,UAAA,MAAAvuC;;;AAAA,AAAA,CAAA,8DAAA,9DAA4BuuC,yEAAS1uB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK,CAAA,sDAAe9f,eAAKnmB;;AAArD;;;;AAA/C,CAAA,iDAAA,jDAA4B60C;;AAA5B;AAAA,CAAA,2CAAA,WAAAC,tDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAhkD,gBAAA+jD;IAAAA,eAAA,AAAA9jD,eAAA8jD;AAAA,AAAA,IAAAhsC,qBAAA;AAAA,AAAA,OAAAA,wDAAAisC,SAAAD;;;AAAA;AACA,AAAA,yBAAA,iCAAA5kD,1DAA4B8kD;AAA5B,AAAA,IAAA7uC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA6uC,4DAAA,CAAA,UAAA,MAAA1uC;;;AAAA,AAAA,CAAA,8DAAA,9DAA4B0uC,yEAAS7uB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK,CAAA,sDAAe9f,eAAKnmB;;AAArD;;;;AAA/C,CAAA,iDAAA,jDAA4Bg1C;;AAA5B;AAAA,CAAA,2CAAA,WAAAC,tDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAnkD,gBAAAkkD;IAAAA,eAAA,AAAAjkD,eAAAikD;AAAA,AAAA,IAAAnsC,qBAAA;AAAA,AAAA,OAAAA,wDAAAosC,SAAAD;;;AAAA;AACA,AAAA,0BAAA,kCAAA/kD,5DAA4BilD;AAA5B,AAAA,IAAAhvC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAgvC,6DAAA,CAAA,UAAA,MAAA7uC;;;AAAA,AAAA,CAAA,+DAAA,/DAA4B6uC,0EAAShvB,IAAMnmB;AAA3C,AAA+C,oBAAM,2BAAA,3BAAC8zC;AAAP,AAAqB,OAAClmC,8CAAMq4B,qBAAK9f,IAAInmB;;AAArC;;;;AAA/C,CAAA,kDAAA,lDAA4Bm1C;;AAA5B;AAAA,CAAA,4CAAA,WAAAC,vDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAtkD,gBAAAqkD;IAAAA,eAAA,AAAApkD,eAAAokD;AAAA,AAAA,IAAAtsC,qBAAA;AAAA,AAAA,OAAAA,wDAAAusC,SAAAD;;;AAAA;AAEL,AAAA,2BAAA,mCAAAllD,9DAA4BolD;AAA5B,AAAA,IAAAnvC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAmvC,8DAAA,CAAA,UAAA,MAAAhvC;;;AAAA,AAAA,CAAA,gEAAA,gBAAAivC,hFAA4BD,2EAAU54C;AAAtC,AAAA,IAAA84C,aAAAD;wBAAA,AAAA5kD,4CAAA6kD,WAAA,IAAA,/EAA8CG;AAA9C,AACE,IAAMzU,aAAW,iBAAAhvC,mBAAIyjD;AAAJ,AAAA,oBAAAzjD;AAAAA;;AAAgB2uC;;;AAAjC,AACE,sDAAA,WAAA+U,iBAAAC,3EAACx5C;AAAD,AAAS,GAAI,uMAAA,tMAAM,AAACzE,gBAAK,qFAAAg+C,iBAAAC,yCAAAD,iBAAAC,/JAAC3U,2CAAAA,8EAAAA;AAAjB2U;;AAAAD;;GAA4Cl5C;;;AAFzD,CAAA,mDAAA,nDAA4B44C;;AAA5B;AAAA,CAAA,6CAAA,WAAAG,xDAA4BH;AAA5B,AAAA,IAAAI,WAAA,AAAA3kD,gBAAA0kD;IAAAA,eAAA,AAAAzkD,eAAAykD;AAAA,AAAA,IAAA3sC,qBAAA;AAAA,AAAA,OAAAA,wDAAA4sC,SAAAD;;;AAAA;AAIA,AAAA,wBAAA,gCAAAvlD,xDAA4B4lD;AAA5B,AAAA,IAAA3vC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA2vC,2DAAA,CAAA,UAAA,MAAAxvC;;;AAAA,AAAA,CAAA,6DAAA,gBAAAyvC,7EAA4BD,wEAAOp5C;AAAnC,AAAA,IAAAs5C,aAAAD;wBAAA,AAAAplD,4CAAAqlD,WAAA,IAAA,/EAA2CL;AAA3C,AACE,IAAMzU,aAAW,iBAAAhvC,mBAAIyjD;AAAJ,AAAA,oBAAAzjD;AAAAA;;AAAgB2uC;;;AAAjC,AACE,sDAAA,WAAAsV,iBAAAC,3EAAC/5C;AAAD,AAAS,GAAI,uMAAA,tMAAM,AAACzE,gBAAK,qFAAAu+C,iBAAAC,yCAAAD,iBAAAC,/JAAClV,2CAAAA,8EAAAA;AAAjBkV;;AAAAD;;GAA4Cz5C;;;AAFzD,CAAA,gDAAA,hDAA4Bo5C;;AAA5B;AAAA,CAAA,0CAAA,WAAAG,rDAA4BH;AAA5B,AAAA,IAAAI,WAAA,AAAAnlD,gBAAAklD;IAAAA,eAAA,AAAAjlD,eAAAilD;AAAA,AAAA,IAAAntC,qBAAA;AAAA,AAAA,OAAAA,wDAAAotC,SAAAD;;;AAAA;AAIA;;;0BAAA,1BAA4BI,4DAAuCtmD;AAAnE,AAAsE,IAAAmC,mBAAInC;AAAJ,AAAA,oBAAAmC;AAAAA;;AAAA;;;;AAEtE;;;8BAAA,9BAA4BokD,oEAEzB/mC,MAAM7S;AAFT,AAGE,IAAMF,OAAK,6CAAUwD,GAAGu2C;AAAb,AACE,YAAAvjD,kBAAA,KAAA;AAAA,AACE,OAAC,WAAAwjD,SAAgBD;;AAAhB,AAAA,IAAAE,aAAAD;QAAA,AAAA7lD,4CAAA8lD,WAAA,IAAA,/DAAMx6C;aAANw6C,TAAYz2C;AAAZ,AACE,IAAA5O,oBAAa,AAAC4P,cAAIhB;AAAlB,AAAA,GAAA5O;AAAA,QAAAA,JAAWsF;AAAX,AAAA,AACE,IAAMggD,UAAG,CAACnnC,sCAAAA,yCAAAA,LAAMtT,qBAAAA;AAAhB,AACE,GAAI,AAAC2O,0BAAU2rC,SAAKG;AAClB,eAAO,AAAC3iC,eAAKrd;eAAG6/C;;;;;AAChB,OAAC9nC,eAAKxS,EAAE,AAACO,mCAAK,AAACuX,eAAKrd,GAAG,AAACnF,6CAAKglD,SAAKG;;;AAJxC;;;;GAKF12C,GAAGu2C;GAPN,KAAA;;AADb,AASE,iBAAA,VAAC/5C,KAAKE;;;AAEV,AAAA;;;4BAAA,oCAAAxM,hEAA4B0mD;AAA5B,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAvmD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAA4BumD,qEAElBl6C;AAFV,AAEgB,OAAsBm6C,wDAAU7yC,mBAAStH;;;AAFzD,CAAA,0DAAA,1DAA4Bk6C,qEAGxBrnC,MAAM7S;AAHV,AAIG,IAAMo6C,KAAG,AAACz6C,+CAAO,WAAA06C,SAAcz7C;AAAd,AAAA,IAAA07C,aAAAD;QAAA,AAAApmD,4CAAAqmD,WAAA,IAAA,/DAAM/6C;WAAN,AAAAtL,4CAAAqmD,WAAA,IAAA,lEAAQT;AAAR,AACE,IAAM5gB,WAAI,CAACpmB,sCAAAA,2CAAAA,PAAMjU,uBAAAA;AAAjB,AACE,GAAQ,AAACsP,0BAAU2rC,KAAK5gB;AAAxB,0FAEG15B,EAAEs6C;;AAFL,0FACG,AAAC1nC,mDAAM5S,EAAEX,KAAI,AAAC/J,6CAAKglD,KAAK5gB;;GAHvC,0IAAA,vDAKG,qBAAA,rBAACnnB,iGACF9R;AANX,AAOE,OAAC4R,2BAAY,+CAAA,/CAAC3d,4CAAImmD;;;AAXvB,CAAA,oDAAA,pDAA4BF;;AAA5B;AAaA,0BAAA,1BAA4BK,4DAASC,GAAGC,GAAG9lD;AAA3C,AAAA;AAEE,oBAAQA;AACN,IAAM8lD,SAAG,EAAM,OAAA,NAAMA,aAAI,WAAKvoC,EAAE3S;AAAP,AAAUA;GAASk7C;IACtCD,SAAG,EAAM,OAAA,NAAMA,aAAI,WAAKl7C,EAAE4S;AAAP,AAAU5S;GAA1B,EACE,AAAAoE,sCAAA,HAAe82C,sEAAgB,WAAKl7C,EAAE4S;AAAP,AAAU,OAACzX,gDAAQ6E;GAC5Ck7C;AAHjB,AAIE,OAAC5oC,2BACC,AAACxQ,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,OAAC8S,oDAAO1d,MAAE,CAAC6lD,uCAAAA,4CAAAA,PAAGl7C,wBAAAA,tBAAEC,wBAAAA,IAAG,CAACk7C,uCAAAA,4CAAAA,PAAGn7C,wBAAAA,tBAAEC,wBAAAA;GAC9C,qBAAA,rBAACuS,yDAAcnd;;AAPvB;;;;AASF,AAAA,yBAAA,iCAAAnB,1DAA4BknD;AAA5B,AAAA,IAAAjxC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAixC,4DAAA,CAAA,UAAA,MAAA9wC;;;AAAA,AAAA,CAAA,8DAAA,eAAA+wC,7EAA4BD,yEAAQ17C;AAApC,AAAA,IAAA47C,aAAAD;SAAA,AAAA1mD,4CAAA2mD,WAAA,IAAA,hEAA2CJ;SAA3C,AAAAvmD,4CAAA2mD,WAAA,IAAA,hEAA8CH;AAA9C,AAAA;AAEE,GAAI,AAACt0C,uBAAOnH;AAAZ;;AACI,IAAMy7C,SAAG,EAAM,OAAA,NAAMA,aAAI,WAAKvoC,EAAE3S;AAAP,AAAUA;GAASk7C;IACtCD,SAAG,EAAM,OAAA,NAAMA,aAAI,WAAKl7C,EAAE4S;AAAP,AAAU5S;GAA1B,EACE,AAAAoE,sCAAA,HAAe82C,sEAAgB,WAAKl7C,EAAE4S;AAAP,AAAU,OAACzX,gDAAQ6E;GAC5Ck7C;AAHjB,AAIE,OAAC5oC,2BACC,AAAC9S,2BACC,WAAKnK,EAAE2K,EAAEC;AAAT,AAAY,OAAC8S,oDAAO1d,EAAE,CAAC6lD,uCAAAA,4CAAAA,PAAGl7C,wBAAAA,tBAAEC,wBAAAA,IAAG,CAACk7C,uCAAAA,4CAAAA,PAAGn7C,wBAAAA,tBAAEC,wBAAAA;GAAK,qBAAA,rBAACuS,yDAAc9S;;;;AATrE,CAAA,iDAAA,jDAA4B07C;;AAA5B;AAAA,CAAA,2CAAA,WAAAG,tDAA4BH;AAA5B,AAAA,IAAAI,WAAA,AAAAzmD,gBAAAwmD;IAAAA,eAAA,AAAAvmD,eAAAumD;AAAA,AAAA,IAAAzuC,qBAAA;AAAA,AAAA,OAAAA,wDAAA0uC,SAAAD;;;AAAA;AAWA,iCAAA,jCAA4BE,0EAAgBpmD;AAA5C,AAA+C,OAACwe,yBAAS89B,kBAAQt8C;;;AACjE,0BAAA,1BAA4BqmD,4DAASl5C,KAAK9B;AAA1C,AAAgD,OAACi7C,kBAAQ,AAACpnC,qBAAW/R,MAAM9B;;;AAC3E,8BAAA,9BAA4Bk7C,oEAAOzhD,EAAEpG;AAArC,AAAwC,SAAK,AAACmE,wBAAQnE,QAAG,AAAC2B,6CAAE,AAACyC,gBAAMpE,GAAGoG;;;AAEtE,AAAA,2BAAA,mCAAAjG,9DAA4B2nD;AAA5B,AAAA,IAAA1xC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAA0xC,8DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAvxC;;;AAAA,AAAA,CAAA,gEAAA,hEAA4BuxC,2EAAUI,MAAM9/C,EAAI5H;AAAhD,AACE,oBAAQ0nD;AAEN,OAACpjD,gBAAM,AACJ65C,gCAAWuJ,MAAM1nD,KAAK,WAAK2nD;AAAL,AAAU,oBAAIA;AAAIA;;AAAI,YAAAne,gBAAA;AAAA,AAAO,OAACnsB,8CAAMzV,EAAE5H;GAAhB;;;;AAF/C,OAACqd,8CAAMzV,EAAE5H;;;;AAFb,CAAA,mDAAA,nDAA4BsnD;;AAA5B;AAAA,CAAA,6CAAA,WAAAC,xDAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAhnD,gBAAA+mD;IAAAA,eAAA,AAAA9mD,eAAA8mD;IAAAE,WAAA,AAAAjnD,gBAAA+mD;IAAAA,eAAA,AAAA9mD,eAAA8mD;AAAA,AAAA,IAAAhvC,qBAAA;AAAA,AAAA,OAAAA,wDAAAivC,SAAAC,SAAAF;;;AAAA;AAMA,uCAAA,vCAAOK,sFAA4BC,WAAiBvzC;AAApD,AACE,GAAI,eAAA,dAAIuzC;AACN,IAAA/3C,kBAAU+3C;IAAV93C,kBAAqBuE;AAArB,AAAA,SAAAxE,kBAAAC,mBAAAD,kBAAAC;;AACA,IAAAC,kBAAA;IAAAC,kBAAO,CAAG43C,aAAWvzC;AAArB,AAAA,SAAAtE,kBAAAC,mBAAAD,kBAAAC;;;;AAEJ;AAEA,AAA4B63C,2BAAS;;AACrC,kCAAA,lCAA4BC,4EAAevoD;AAA3C,AAA8C,QAAYA,MAAEsoD;;;AAC5D,mCAAA,nCAA4BE,8EAAexoD;AAA3C,AAA8C,GAAI,MAAA,LAAMA;AAAGsoD;;AAAStoD;;;;AACpE,mCAAA,nCAA4ByoD,8EAAezoD;AAA3C,AAA8C,GAAI,AAAsBuoD,gCAAUvoD;AAApC;;AAA2CA;;;;AAEzF,mCAAA,nCAA+B0oD,8EAAY/7C;AAA3C,AAAiD,GAAI,AAAC6U,yBAAS7U;AAAM,0EAAA,nEAAChL,6CAAE,AAACyC,gBAAMuI;;AAAS,OAAC3F,cAAI,AAAC/F,eAAK0L;;;;AACnG,wCAAA,xCAA4Bg8C,wFAAeh8C;AAA3C,AAAiD,GAAM,AAAsB+7C,iCAAW/7C;AAAvC,AAA6C,IAAAi8C,aAAWj8C;SAAX,AAAA/L,4CAAAgoD,WAAA,IAAA,hEAAOjlC;AAAP,AAAiBA;;AAA9D;;;;AACjD,2BAAA,3BAA4BklC,8DAAO7oD;AAAnC,AAAsC,GAAM,AAACmE,wBAAQnE;AAAGA;;AAAlB,GAAoB,AAACy3B,4BAAYz3B;AAAG,OAAC8W,cAAI9W;;AAAzC,0FAAmDA;;;;;AAEzF,0BAAA,1BAA4B8oD,4DAASxxC,GAAGyxC;AAAxC,AACE,IAAOznD,IAAG,qBAAA,rBAACmd;IACJnH,SAAG,AAACrG,cAAIqG;IACRyxC,SAAG,AAAC93C,cAAI83C;;AAFf,AAGE,GAAQ,EAAKzxC,YAAGyxC;AAEd,eAAO,AAAC/pC,oDAAO1d,EAAE,AAACN,gBAAMsW,QAAI,AAACtW,gBAAM+nD;eACjC,AAAC9nD,eAAKqW;eACN,AAACrW,eAAK8nD;;;;;;AAHR,OAACxqC,2BAAYjd;;;;;;AAKnB,6BAAA,7BAA4B0nD,kEAAYv6C,KAAKnN;AAA7C,AAAgD,GAAI,MAAA,LAAMA;AAAV;;AAAgB,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,oBAAI,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAW5K;;AAAK,OAAC+Z,+CAAO/Z,MAAE2K;;GAAK3K,EAAEA;;;;AACpI,6BAAA,7BAA4B2nD,kEAAYx6C,KAAKnN;AAA7C,AAAgD,GAAI,MAAA,LAAMA;AAAV;;AAAgB,OAACyM,oBAAU,WAAKzM,MAAE2K,EAAEC;AAAT,AAAY,oBAAI,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAG,OAACmP,+CAAO/Z,MAAE2K;;AAAW3K;;GAAOA,EAAEA;;;;AAEpI,yBAAA,zBAA4B4nD,0DAAYz6C,KAAK9B;AAA7C,AAAmD,OAACL,+CAAU,WAAKhB,IAAIC;AAAT,AAAc,oBAAI,CAACkD,qCAAAA,0CAAAA,PAAKlD,sBAAAA;AAAKoB;;AAAK,yBAAA,lBAACxB;;GAAewB,KAAKA;;;AACrH,4BAAA,5BAA4Bw8C,gEAAY16C,KAAK9B;AAA7C,AAAmD,OAACoB,oBAAU,WAAKzC,IAAIW,EAAEC;AAAX,AAAc,oBAAI,CAACuC,qCAAAA,0CAAAA,PAAKxC,sBAAAA,pBAAEC,sBAAAA;AAAGS;;AAAK,yBAAA,lBAACxB;;GAAewB,KAAKA;;;AAErH,AAA2By8C,wBAAMF;;AAEjC,AAAA,6BAAA,qCAAA/oD,lEAA4BkpD;AAA5B,AAAA,IAAAjzC,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAizC,gEAAA,CAAA,UAAA,MAAA9yC;;;AAAA,AAAA,CAAA,kEAAA,lEAA4B8yC,6EAAY/nD,EAAIkoD;AAA5C,AACE,OAACl9C,+CACC,WAAKhL,MAAEmoD;AAAP,AACE,oBAAQA;AAEN,IAAAC,aAAqBD;WAArB,AAAA7oD,4CAAA8oD,WAAA,IAAA,lEAAOC;SAAP,AAAA/oD,4CAAA8oD,WAAA,IAAA,hEAAYpyC;WAAZ,AAAA1W,4CAAA8oD,WAAA,IAAA,lEAAeE;IACTxhD,IAAE,EAAI,AAAAiI,wCAAA,LAAes5C,8DAAa,WAAK9qC;AAAL,AAAQ+qC;GAAMA;AADtD,AAEE,wEAAA,jEAAChoC,wDAAUtgB,MAAEgW,QAAOlP;;AAHtB9G;;GAIJA,EACAkoD;;;AATJ,CAAA,qDAAA,rDAA4BH;;AAA5B;AAAA,CAAA,+CAAA,WAAAC,1DAA4BD;AAA5B,AAAA,IAAAE,WAAA,AAAAvoD,gBAAAsoD;IAAAA,eAAA,AAAAroD,eAAAqoD;AAAA,AAAA,IAAAvwC,qBAAA;AAAA,AAAA,OAAAA,wDAAAwwC,SAAAD;;;AAAA;AAWA,IAAMznB,eAAO,WAAKE,GAAGa,GAAGtd,GAAGhJ;AAAd,AAAA,0FAAmBsmB,GAAGtmB;;AAAnC,AACE,AAAA;;;sCAAA,8CAAAnc,pFAA4B2pD;AAA5B,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,kEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxpD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,oEAAA,pEAA4BwpD,+EAExBhoB,MAAmB15B;AAFvB,AAE0B,OAACg8B,+BAAUvC,aAAOC,MAAmB15B;;;AAF/D,CAAA,oEAAA,pEAA4B0hD,+EAGxBhoB,MAAMxqB,GAAalP;AAHvB,AAG0B,4DAAA,rDAACu8B,+BAAU9C,aAAOC,MAAMxqB,QAAalP;;;AAH/D,CAAA,oEAAA,pEAA4B0hD,+EAIxBhoB,MAAMxqB,GAAGlH,UAAUhI;AAJvB,AAI0B,OAACu8B,+BAAU9C,aAAOC,MAAMxqB,GAAGlH,UAAUhI;;;AAJ/D,CAAA,8DAAA,9DAA4B0hD;;AAA5B;AAMA,AAAA;;;uCAAA,+CAAA3pD,tFAA4B6pD;AAA5B,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,mEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,mEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1pD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,qEAAA,rEAA4B0pD,gFAExBloB,MAAM71B,EAAY7D;AAFtB,AAEyB,2DAAA,pDAACk8B,+BAAUzC,aAAOC,MAAM71B,OAAY7D;;;AAF7D,CAAA,qEAAA,rEAA4B4hD,gFAGxBloB,MAAM71B,EAAEmE,UAAUhI;AAHtB,AAGyB,OAACk8B,+BAAUzC,aAAOC,MAAM71B,EAAEmE,UAAUhI;;;AAH7D,CAAA,+DAAA,/DAA4B4hD;;AAA5B;AAKF,AAA2BC,8BAAOH;;AAClC,AAA2BI,mCAAOJ;;AAKlC;;;AAAAK,qCAAsCjvB;;AAItC;;;sCAAA,tCAA4BkvB,oFAGzBpqD,EAAE2R;AAHL,AAGQ,OAAAtB,mCAAerQ,EAAE2R;;;AASzB;;;AAAuB04C,iCAGrB5uB,AAAA;;AAIF;;;AAAe6uB,kCAGbC;;AAEF,AAAA;;;qCAAA,6CAAApqD,lFAAesqD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,iEAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,iEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAnqD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,mEAAA,nEAAemqD,8EAGN3wB;AAHT,AAGe,kEAAA,2CAAA,mEAAA,zKAAC8S,sLAA4C9S;;;AAH5D,CAAA,mEAAA,nEAAe2wB,8EAIXl4B,KAAKuH;AAJT,AAIe,OAAC8S,2DAAa,mDAAA,mEAAA,tHAACxrC,8CAAMmxB,8EAAwBuH;;;AAJ5D,CAAA,6DAAA,7DAAe2wB;;AAAf;AAMA;;;AAAeC,gCAAwFD;;AACvG;;;AAAeE,0BAAwFhe;;AACvG;;;AAAeie,iCAAwF5vC;;AACvG;;;AAAe6vC,iCAAwFhuB;;AACvG;;;AAAeiuB,8BAAyF3lC;;AACxG;;;AAAe4lC,6BAAyFxkC;;AACxG;;;AAAeykC,oCAAyF,2EAAA,3EAACztC,gDAAQyhB;;AACjH;;;AAAeisB,8BAAyFngC;;AAI/F;;;AAAeogC,4BAA+EpU;;AAiBvG;;;6BAAA,7BAAeqU,kEAGZnrD;AAHH,AAIE,IAAAqB,oBACW,iBAAAsC,oBAAK3D;AAAL,AAAA,oBAAA2D;AACE,IAAAxB,mBACE,AAACkpD,kBAAarrD;AADhB,AAAA,oBAAAmC;AAAAA;;AAAA;;;AADFwB;;;AADX,AAAA,oBAAAtC;AAAA,eAAAA,XAAW+pD;AAAX,AAAA,AAOE,IAAME,WAQG,iBAAMC,MAAIvrD;AAAV,AAAA,kDAAA,iFAAA,wEAAA,5FACc,AAACuJ,eAAUgiD,iEACX,AAAWA,0EACX,AAAWA;;AAXlC,AAcE,OAAC/pD,6CAAQ8pD,SAAmBF;;AArBhC;;;;AAiCF;;;8BAAA,9BAAeI,oEAEZ/8C,KAAKzO;AAFR,AAEW,oBAAM,iBAAA,AAAgB,QAACyO,qCAAAA,wCAAAA,LAAKzO,oBAAAA;gBAAtB,IAAA6e,IAAA4sC;AAAA,AAAA;;AAAN,AAAgCzrD;;AAAhC;;;;AAEC;;;mCAAA,nCAAe0rD,8EAA+E1rD;AAA9F,AAAiG,OAACD,iCAAWC;;AAW3H,AAAA,AAiEA,AAAA;AACE,AAAA;;;6BAAA,qCAAAG,lEAAeyrD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAtrD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAesrD,sEAEX1/C,EAAEM;AAFN,AAEiB,IAAArK,mBAAI,AAACqT,uBAAOtJ,EAAEM;AAAd,AAAA,oBAAArK;AAAAA;;AAAA;;;;AAFjB,CAAA,2DAAA,3DAAeypD,sEAGX1/C,EAAEM,MAAMH;AAHZ,AAGiB,IAAAlK,mBAAI,AAACqT,uBAAOtJ,EAAEM,MAAMH;AAApB,AAAA,oBAAAlK;AAAAA;;AAAA;;;;AAHjB,CAAA,qDAAA,rDAAeypD;;AAAf;AAKA,AAAA;;;gCAAA,wCAAAzrD,xEAAe2rD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAxrD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAewrD,yEAEX5/C,EAAEM;AAFN,AAEiB,IAAArK,mBAAI,yBAAA,8DAAA,vFAACqT,uBAAOtJ,0DAAUM;AAAtB,AAAA,oBAAArK;AAAAA;;AAAA;;;;AAFjB,CAAA,8DAAA,9DAAe2pD,yEAGX5/C,EAAEM,MAAM8I;AAHZ,AAGiB,IAAAnT,mBAAI,yBAAA,zBAACqT,uBAAOtJ,0DAAUM,MAAO8I;AAA7B,AAAA,oBAAAnT;AAAAA;;AAAA;;;;AAHjB,CAAA,wDAAA,xDAAe2pD;;AAAf;AAKA,AAAA;;;oCAAA,4CAAA3rD,hFAAe6rD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA1rD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,kEAAA,lEAAe0rD,6EAEXrlD,EAAE6F;AAFN,AAEiB,+EAAA,xEAAsBy/C,gEAAkBtlD,EAAE6F;;;AAF3D,CAAA,kEAAA,lEAAew/C,6EAGXrlD,EAAE6F,MAAMH;AAHZ,AAIG,IAAMiJ,MAAM,AAAClR,gBAAMuC;IACb6F,YAAM,AAAC3E,gBAAK,iBAAA1F,mBAAIqK;AAAJ,AAAA,oBAAArK;AAAAA;;AAAA;;;IACZkK,UAAM,AAACxE,gBAAK,iBAAA1F,mBAAIkK;AAAJ,AAAA,oBAAAlK;AAAAA;;AAAUmT;;;IACtB9I,YAAM,EAAI,aAAA,ZAAGA,kBAAS,CAAGA,YAAM8I,KAAK9I;IACpCH,UAAM,EAAI,WAAA,VAAGA,gBAAS,CAAGA,UAAMiJ,KAAKjJ;AAJ1C,AAKE,gCAAA,zBAACqJ,uBAAO/O,4DAAU6F,UAAMH;;;AAT7B,CAAA,4DAAA,5DAAe2/C;;AAAf;AAWA,AAAA;;;oCAAA,4CAAA7rD,hFAAegsD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,gEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA7rD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,kEAAA,lEAAe6rD,6EAEXxlD,EAAE6F;AAFN,AAEiB,gCAAA,zBAACkJ,uBAAO/O,0DAAU,iBAAAxE,mBAAIqK;AAAJ,AAAA,oBAAArK;AAAAA;;AAAA;;KAAlB;;;AAFjB,CAAA,kEAAA,lEAAegqD,6EAGXxlD,EAAE6F,MAAM8I;AAHZ,AAGiB,gCAAA,zBAACI,uBAAO/O,0DAAU,iBAAAxE,mBAAIqK;AAAJ,AAAA,oBAAArK;AAAAA;;AAAA;;KAAa,iBAAAA,mBAAImT;AAAJ,AAAA,oBAAAnT;AAAAA;;AAAA;;;;;AAHhD,CAAA,4DAAA,5DAAegqD;;AAAf;AAKA,AAAA;;;6BAAA,qCAAAhsD,lEAAeksD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/rD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAe+rD,sEAEX1lD,EAAE6F;AAFN,AAEiB,IAAArK,mBAAI,AAACuT,uBAAO/O,EAAE6F;AAAd,AAAA,oBAAArK;AAAAA;;AAAA;;;;AAFjB,CAAA,2DAAA,3DAAekqD,sEAGX1lD,EAAE6F,MAAMH;AAHZ,AAGiB,IAAAlK,mBAAI,AAACuT,uBAAO/O,EAAE6F,MAAMH;AAApB,AAAA,oBAAAlK;AAAAA;;AAAA;;;;AAHjB,CAAA,qDAAA,rDAAekqD;;AAAf;AAKA,AAAA;;;gCAAA,wCAAAlsD,xEAAeosD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAjsD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAeisD,yEAEX5lD,EAAE6F;AAFN,AAEiB,gCAAA,8DAAA,vFAACkJ,uBAAO/O,0DAAU6F;;;AAFnC,CAAA,8DAAA,9DAAe+/C,yEAGX5lD,EAAE6F,MAAM8I;AAHZ,AAGiB,gCAAA,zBAACI,uBAAO/O,0DAAU6F,MAAO8I;;;AAH1C,CAAA,wDAAA,xDAAei3C;;AAAf;AAKA;;;AAA4BC,uCAA+B,AAACh4B,6CAAKhY,oBAAeovC;;AAChF;;;AAA4Ba,uCAA+B,AAACj4B,6CAAKhY,oBAAesvC;;AAChF;;;AAA6BY,+BAAmDZ;;AAChF;;;AAA4Ba,uCAA+B,AAACn4B,6CAAK/sB,qCAAe4kD;;AAChF;;;AAA4BO,uCAA+B,AAACp4B,6CAAK/sB,qCAAe8kD;AAElF,AAAA;AACE;;;;AAAAM,0BAA8DC;;AAC9D;;;;AAAAC,0BAA8DC;;AAC9D;;;;AAAAC,+BAA8DC;;AAC9D;;;;AAAAC,yBAA8DC;;AAC9D;;;;AAAAC,2BAA8DC;;AAC9D;;;;;;;;;;;;;;;;;;;;AAAAC,iCAA8DhD;;AAC9D;;;;;;;;;;AAAAiD,8BAA8DC;;AAC9D;;;;;;;;;;;AAAAC,iCAA8DC;;AAC9D;;;AAAAC,iCAA6EC;;AAe7E,6BAAA,7BAAeC,kEAAkD9tD;AAAjE,AAEW,GAAM,cAAWM,bAAUN;AAA3B,AAA8B,OAAwBA;;AAAtD;;;;AAEX,0BAAA,1BAAe+tD,4DAA+C/tD;AAA9D,AAEW,GAAM,cAAyBguD,bAAchuD;AAA7C,AAAgD,OAAuCA;;AAAvF;;;;AAEX,2BAAA,3BAAeiuD,8DAAgDjuD;AAA/D,AAEW,GAAM,cAAWguD,bAAchuD;AAA/B,AAAkC,OAAsBA;;AAAxD;;;AAEb,AAAA;AAEE;;;AAAAkuD,8BAA8D//B;;AAS9D,AAAA,2BAAA,mCAAAhuB,9DAAeiuD;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,uDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,uDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9tD,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,yDAAA,zDAAe8tD,oEAENpuD;AAFT,AAEiB,sFAAA,/EAAsBquD,uDAAIlgC,sBAAWnuB;;;AAFtD,CAAA,yDAAA,zDAAeouD,oEAGX3/C,KAAKzO;AAHT,AAGiB,qEAAA,9DAAsBquD,uDAAI5/C,KAAWzO;;;AAHtD,CAAA,yDAAA,zDAAeouD,oEAIX3/C,KAAKzO,EAAEq+B;AAJX,AAKG,oBAAI,iBAAA,AAAgB,QAAC5vB,qCAAAA,wCAAAA,LAAKzO,oBAAAA;gBAAtB,IAAA6e,IAAAyvC;AAAA,AAAA;;AACFtuD;;AACA,MAAA,AAAAqJ,6BAAA,kBAAA,mFAAA,KAAA,sqBAAA,5pBAAgB,CAAA,kEAAA,lDAAqB,4CAAKoF,8BAA8B,AAACnF,wGAAOtJ,kBAC9E,yDAAA,2CAAA,0DAAA,8OAAA,5YAAC+Z,yJAAkBtL,yDAAW,2CAAA,wDAAA,qDAAA,AAAAlF,vDAAWvJ,sEAAAA,wEAAUq+B;;;;AAR1D,CAAA,mDAAA,nDAAe+vB;;AAAf;AA2BE,uBAAA,vBAA4BG,sDAASC;AAArC,AAA8CA;;;AAC9C,0BAAA,1BAA4BC,4DAASzuD;AAArC,AAAwC,GAAM,AAAC2yC,oBAAI3yC;AAAX,AAAcA;;AAAd","names":["taoensso.encore/encore-version","taoensso.encore/list-form?","x","cljs.core/list?","cljs.core/Cons","var_args","G__48213","taoensso.encore/name-with-attrs","js/Error","sym","args","taoensso.encore.name_with_attrs","attrs-merge","vec__48223","cljs.core.nth","vec__48226","vec__48229","?docstring","cljs.core/first","cljs.core/next","attrs","cljs.core/map?","cljs.core.assoc","b2__43681__auto__","m","cljs.core/meta","cljs.core.conj","cljs.core/with-meta","taoensso.encore/node-target?","cljs.core._EQ_","cljs.core/*target*","taoensso.encore/react-native-target?","taoensso.encore/js-?window","js/window","taoensso.encore/js-?process","js/process","taoensso.encore/js-?crypto","or__5025__auto__","js/crypto","taoensso.encore.goog$module$goog$object.get","taoensso.encore/nempty-str?","taoensso.encore/boolean?","taoensso.encore/indexed?","cljs.core/PROTOCOL_SENTINEL","taoensso.encore/named?","taoensso.encore/editable?","taoensso.encore/derefable?","taoensso.encore/atom?","cljs.core/Atom","taoensso.encore/transient?","taoensso.encore/lazy-seq?","cljs.core/LazySeq","taoensso.encore/re-pattern?","js/RegExp","taoensso.encore/can-meta?","taoensso.encore/stringy?","cljs.core/Keyword","taoensso.encore/ident?","cljs.core/Symbol","taoensso.encore/nameable?","taoensso.encore/simple-ident?","and__5023__auto__","cljs.core/namespace","taoensso.encore/qualified-ident?","taoensso.encore/simple-symbol?","taoensso.encore/qualified-symbol?","taoensso.encore/simple-keyword?","taoensso.encore/qualified-keyword?","taoensso.encore/vec2?","cljs.core/vector?","cljs.core/count","taoensso.encore/vec3?","taoensso.encore/nblank-str?","clojure.string/blank?","taoensso.encore/nblank?","taoensso.encore/error?","taoensso.truss/error?","taoensso.encore/chan?","cljs.core.async.impl.channels/ManyToManyChannel","taoensso.encore/force-ref","cljs.core/deref","taoensso.encore/force-var","cljs.core/var?","taoensso.encore/finite-num?","js/Number.isFinite","taoensso.encore/int?","js/parseFloat","js/parseInt","taoensso.encore/float?","taoensso.encore/nneg?","taoensso.encore/zero-num?","taoensso.encore/nzero-num?","taoensso.encore/nat-num?","taoensso.encore/pos-num?","taoensso.encore/neg-num?","taoensso.encore/nat-int?","taoensso.encore/pos-int?","taoensso.encore/neg-int?","taoensso.encore/nat-float?","taoensso.encore/pos-float?","taoensso.encore/neg-float?","taoensso.encore/pnum?","n","taoensso.encore/rnum?","taoensso.encore/max-long","js/Number.MAX_SAFE_INTEGER","taoensso.encore/min-long","js/Number.MIN_SAFE_INTEGER","taoensso.encore/int-str?","s","cljs.core/re-matches","taoensso.encore/parse-js-float","js/isNaN","taoensso.encore/parse-js-int","cljs.core/not","taoensso.encore/as-?nzero","taoensso.encore/as-?nblank","taoensso.encore/as-?kw","cljs.core.keyword","taoensso.encore/as-?name","cljs.core/name","taoensso.encore/as-?qname","ns","taoensso.encore/as-?nempty-str","taoensso.encore/as-?nblank-trim","clojure.string/trim","taoensso.encore/as-?int","cljs.core/long","taoensso.encore/as-?float","taoensso.encore/as-?nat-int","taoensso.encore/as-?pos-int","taoensso.encore/as-?nat-float","taoensso.encore/as-?pos-float","taoensso.encore/as-?pnum","f","taoensso.encore/as-?rnum","taoensso.encore/as-?bool","regex","G__48614","taoensso.encore/as-?email","?s","taoensso.encore.as__QMARK_email","max-len","cljs.core/re-find","G__48634","taoensso.encore/as-?nemail","email","clojure.string/lower-case","taoensso.encore/norm-str","taoensso.encore/-as-throw","kind","taoensso.truss/ex-info*","cljs.core.pr_str","cljs.core/type","-as-throw","taoensso.encore/as-nblank","taoensso.encore/as-nblank-trim","taoensso.encore/as-nempty-str","taoensso.encore/as-name","taoensso.encore/as-qname","taoensso.encore/as-nzero","taoensso.encore/as-kw","G__48722","taoensso.encore/as-email","G__48728","taoensso.encore/as-nemail","taoensso.encore.as__QMARK_nemail","taoensso.encore/as-int","taoensso.encore/as-nat-int","taoensso.encore/as-pos-int","taoensso.encore/as-float","taoensso.encore/as-nat-float","taoensso.encore/as-pos-float","taoensso.encore/as-pnum","taoensso.encore/as-rnum","taoensso.encore/as-pnum!","taoensso.encore/as-rnum!","taoensso.encore/as-bool","?b","taoensso.encore/convey-reduced","cljs.core/reduced?","cljs.core/reduced","taoensso.encore/preserve-reduced","rf","acc","in","result","taoensso.encore/reduce-kvs","init","kvs","cljs.core.transduce","cljs.core.partition_all","cljs.core.completing","p__48829","vec__48832","k","v","G__48840","taoensso.encore/reduce-n","end","cljs.core.reduce","cljs.core.range","start","step","taoensso.encore/reduce-indexed","coll","c","taoensso.encore/counter","G__48849","G__48850","G__48851","taoensso.encore/reduce-obj","o","G__48857","G__48858","G__48859","cljs.core/js-keys","taoensso.encore/run!","proc","p1__48867#","p2__48866#","taoensso.encore/run-kv!","p1__48870#","p2__48868#","p3__48869#","cljs.core/reduce-kv","taoensso.encore/run-kvs!","p1__48873#","p2__48871#","p3__48872#","taoensso.encore/run-obj!","obj","p1__48877#","p2__48875#","p3__48876#","pred","_acc","p","G__48894","taoensso.encore/rsome","xform","tf","p__48914","vec__48917","taoensso.encore/rsome-kv","G__48932","taoensso.encore/rfirst","entry","cljs.core/MapEntry","p__48952","vec__48954","taoensso.encore/rfirst-kv","G__48968","taoensso.encore/revery?","p__48994","vec__48996","taoensso.encore/revery-kv?","G__49006","taoensso.encore/reduce-zip","xs","ys","taoensso.encore.reduce_zip","not-found","cljs.core/keyword-identical?","x__5113__auto__","y__5114__auto__","x__5110__auto__","y__5111__auto__","taoensso.encore.reduce_n","idx","G__49019","G__49020","G__49021","cljs.core.get","not-found?","cljs.core/seq","G__49032","G__49033","G__49034","this__5310__auto__","writer__5311__auto__","opt__5312__auto__","cljs.core/-write","taoensso.encore/Tup2","taoensso.encore/->Tup2","y","taoensso.encore/Tup3","taoensso.encore/->Tup3","z","G__49071","taoensso.encore/reduce-multi","rf1","init1","rf2","init2","tuple","rx?","ry?","cljs.core/unreduced","rf3","init3","rz?","taoensso.encore/reduce-interleave-all","colls","cljs.core/empty?","vec__49123","seq__49124","first__49125","in1","next-in","ncs","res","next-colls","p1__49126#","map-like?","cljs.core/record?","G__49132","taoensso.encore/postwalk","taoensso.encore.postwalk","preserve-seqs?","p1__49127#","p2__49128#","ps","cljs.core/identity","pw","G__49144","cljs.core/seq?","G__49145","G__49146","cljs.core/coll?","G__49149","cljs.core/empty","taoensso.encore/subfn","context","by-idx-fn","start-idx","max-idx","G__49165","G__49166","G__49167","end-idx","max-end","G__49183","taoensso$encore$subfn_$_subfn_STAR_","len","taoensso.truss/unexpected-arg!*","taoensso.encore/subvec","cljs.core/subvec","taoensso.encore/substr","n1","n2","taoensso.encore/map-entry","taoensso.encore/queue?","cljs.core/PersistentQueue","G__49208","taoensso.encore/queue","cljs.core.into","taoensso.encore.queue","args__5755__auto__","len__5749__auto__","i__5750__auto__","argseq__5756__auto__","cljs.core/IndexedSeq","taoensso.encore/queue*","seq49225","self__5735__auto__","items","taoensso.encore/ensure-vec","cljs.core/vec","taoensso.encore/ensure-set","cljs.core/set?","cljs.core/set","taoensso.encore/oset","taoensso.encore.goog$module$goog$object.set","sentinel","taoensso.encore/oset-in","ks","o-next","ks-next","k1","o-next*","new-obj","G__49247","taoensso.encore/oget","G__49254","taoensso.encore/oget-in","taoensso.encore.oget_in","G__49256","taoensso.encore/get1","k2","e","cljs.core/find","cljs.core/val","k3","G__49276","taoensso.encore/conj-some","args-arr__5774__auto__","argseq__5775__auto__","seq49272","G__49274","G__49275","self__5734__auto__","more","taoensso.encore.conj_some","G__49292","taoensso.encore/conj-when","seq49289","G__49290","G__49291","taoensso.encore.conj_when","G__49307","taoensso.encore/assoc-some","seq49303","G__49304","G__49305","G__49306","m-kvs","taoensso.encore.assoc_some","G__49327","taoensso.encore/assoc-when","seq49322","G__49323","G__49324","G__49325","taoensso.encore.assoc_when","G__49341","taoensso.encore/assoc-nx","seq49335","G__49336","G__49337","G__49338","cljs.core/contains?","taoensso.encore.assoc_nx","G__49358","taoensso.encore/reassoc-some","seq49354","G__49355","G__49356","G__49357","cljs.core.dissoc","taoensso.encore.reassoc_some","G__49371","taoensso.encore/reassoc-when","seq49367","G__49368","G__49369","G__49370","taoensso.encore.reassoc_when","taoensso.encore/vnext","cljs.core.subvec","taoensso.encore/vrest","taoensso.encore/vsplit-last","cljs.core/pop","cljs.core/peek","taoensso.encore/vsplit-first","vec__49395","v1","taoensso.encore/not-empty-coll","cljs.core/not-empty","taoensso.encore/fsplit-last","vec__49408","vn","vl","butlast","vec__49419","seq__49420","first__49421","x1","xn","taoensso.encore/takev","cljs.core.take","taoensso.encore/distinct-elements?","taoensso.encore/seq-kvs","cljs.core.partial","cljs.core/reduce","cljs.core/concat","taoensso.encore/mapply","seq49429","G__49430","cljs.core.apply","lx","cljs.core.concat","G__49440","taoensso.encore/into-all","seq49437","G__49438","G__49439","to","from","cljs.core/persistent!","cljs.core/conj!","cljs.core/transient","cljs.core/cons","taoensso.encore/min-transient-card","taoensso.encore/repeatedly-into","_","cljs.core.conj_BANG_","taoensso.encore/update!","cljs.core.assoc_BANG_","G__49449","G__49452","taoensso.encore/into!","to!","G__49461","taoensso.encore/xdistinct","cljs.core.distinct","keyfn","seen_","cljs.core/volatile!","taoensso.encore/invert-map","taoensso.encore/invert-map!","im","taoensso.encore/map-keys","key-fn","taoensso.encore/map-vals","val-fn","taoensso.encore/filter-keys","key-pred","cljs.core.dissoc_BANG_","taoensso.encore/filter-vals","val-pred","taoensso.encore/remove-keys","cljs.core/complement","taoensso.encore/remove-vals","taoensso.encore/rename-keys","replacements","old-k","new-k","taoensso.encore/keys-by","taoensso.encore/ks-nnil?","p1__49498#","taoensso.encore.revery_QMARK_","taoensso.encore/ks=","p1__49502#","taoensso.encore/ks>=","p1__49508#","taoensso.encore/ks<=","counted-ks","cljs.core/counted?","ks-set","G__49521","taoensso.encore/update-in","taoensso.encore.update_in","old","cljs.core.get_in","new","G__49534","lk","cljs.core/assoc-in","G__49541","taoensso.encore/contains-in?","taoensso.encore.contains_in_QMARK_","G__49557","taoensso.encore/dissoc-in","seq49551","G__49552","G__49555","G__49556","dissoc-k","cljs.core/dissoc","taoensso.encore.dissoc_in","G__49581","taoensso.encore/node-paths","taoensso.encore.node_paths","cljs.core/associative?","node-pred","basis","paths-from-basis","G__49601","taoensso.encore/interleave-all","seq49596","G__49597","G__49598","c1","c2","s1","s2","taoensso.encore.interleave_all","cljs.core/rest","ss","cljs.core.filter","cljs.core.map","G__49615","taoensso.encore/vinterleave-all","seq49611","G__49612","G__49613","G__49614","c3","taoensso.encore.vinterleave_all","taoensso.encore/p!","nx","min-transient-card","dissoc?","G__49629","dissoc*","G__49632","taoensso.encore/merge-with*","nest?","maps","m1","m2","taoensso.encore.merge_with_STAR_","m1*","assoc*","cljs.core/assoc!","cljs.core/assoc","v2","G__49642","G__49643","G__49644","v3","m2*","G__49650","G__49651","G__49652","G__49678","taoensso.encore/merge","seq49672","G__49673","G__49675","G__49676","m3","G__49703","taoensso.encore/nested-merge","seq49698","G__49700","G__49701","G__49702","G__49735","taoensso.encore/merge-with","seq49728","G__49729","G__49730","G__49731","G__49732","G__49757","taoensso.encore/nested-merge-with","seq49751","G__49752","G__49753","G__49754","G__49755","mf","G__49783","taoensso.encore/merge-nx","seq49779","G__49780","G__49781","G__49782","taoensso.encore/submap?","taoensso.truss/submap?","taoensso.encore/submaps?","subs","sub","taoensso.encore/select-nested-keys","src-map","key-spec","spec-in","nested-spec-in","src-val","taoensso.encore/explode-keyword","clojure.string.split","G__49817","taoensso.encore/merge-keywords","taoensso.encore.merge_keywords","omit-slash?","parts","cljs.core/conj","clojure.string.join","ppop","G__49827","taoensso.encore/approx==","Math/abs","signf","taoensso.encore/clamp","nmin","nmax","taoensso.encore/clamp-int","taoensso.encore/clamp-float","taoensso.encore/pnum-complement","pnum","taoensso.encore/as-pnum-complement","taoensso.encore/pow","exp","Math/pow","taoensso.encore/abs","G__49853","taoensso.encore/round","taoensso.encore.round","a1","a2","a3","modifier","n*","rounded","G__49856","Math/round","Math/floor","Math/ceil","taoensso.encore/perc","divisor","taoensso.encore/round0","taoensso.encore/round1","taoensso.encore/round2","taoensso.encore/round3","taoensso.encore/round4","taoensso.encore/roundn","precision","G__49879","taoensso.encore/exp-backoff","p__49886","map__49887","cljs.core/--destructure-map","n-attempt","taoensso.encore.exp_backoff","min","max","factor","b","t","cljs.core.rand","taoensso.encore/chance","prob","Math/random","taoensso.encore/merge-meta","taoensso.encore.merge","taoensso.encore/without-meta","G__49911","taoensso.encore/some=","seq49908","G__49909","G__49910","p1__49904#","G__49938","taoensso.encore/nnil","seq49932","G__49933","G__49934","G__49935","taoensso.encore.rfirst","cljs.core/some?","taoensso.encore/parse-version","vec__49956","s-version","?s-qualifier","cljs.core/re-seq","cljs.core.mapv","taoensso.encore/have-core-async?","taoensso.encore/inst?","js/Date","taoensso.encore/now-inst","taoensso.encore/now-dt","cljs.core/chunk-first","s__50644","taoensso.encore/now-udt","js/Date.now","taoensso.encore/now-nano","perf","taoensso.encore.oget","pf","taoensso.encore/inst->udt","inst","taoensso.encore/udt->inst","msecs-since-epoch","taoensso.encore/udt?","taoensso.encore/as-?inst","taoensso.encore/as-?udt","js/Date.parse","taoensso.encore/as-inst","taoensso.encore/as-udt","G__50024","taoensso.encore/format-inst-fn","p__50025","map__50026","taoensso.encore.format_inst_fn","formatter","instant","default-fn","taoensso.encore/format-inst","taoensso.encore/secs->ms","secs","taoensso.encore/ms->secs","ms","cljs.core/quot","G__50064","taoensso.encore/ms","p__50066","map__50067","seq50058","G__50059","G__50060","G__50061","G__50062","years","months","weeks","days","hours","mins","msecs","taoensso.encore.ms","G__50087","taoensso.encore/secs","seq50080","G__50082","G__50083","G__50084","G__50085","opts","taoensso.encore/a-utf8-str","taoensso.encore/str-builder?","js/goog.string.StringBuffer","G__50115","taoensso.encore/str-builder","taoensso.encore/sb-length","sb","G__50140","taoensso.encore/sb-append","seq50136","G__50137","G__50138","str-builder","taoensso.encore.sb_append","G__50155","taoensso.encore/sb-appender","taoensso.encore.sb_appender","taoensso.encore.str_builder","separator","sep!","sep","started?_","cljs.core/vreset!","cljs.core/nil?","G__50159","taoensso.encore/str-rf","G__50161","taoensso.encore/sb-rf","G__50165","taoensso.encore/str-join","taoensso.encore.str_join","cljs.core.not_EQ_","cljs.core.comp","cljs.core.interpose","taoensso.encore/str-contains?","substr","taoensso.encore/str-starts-with?","taoensso.encore/str-ends-with?","s-len","substr-len","G__50179","taoensso.encore/str-?index","taoensso.encore.str__QMARK_index","last?","taoensso.encore/case-insensitive-str=","l1","l2","G__50185","taoensso.encore.norm_str","norm-form","G__50188","taoensso.encore/str-replace","match","replacement","goog.string/regExpEscape","flags","G__50193","taoensso.encore/nil->str","G__50197","taoensso.encore/format*","fmt","taoensso.encore.format_STAR_","goog.string/format","taoensso.encore/format","seq50199","G__50201","taoensso.encore/str-join-once","acc-ends-with-sep?_","acc-empty?_","in-empty?","in-starts-with-sep?","in-ends-with-sep?","acc-ends-with-sep?","acc-empty?","taoensso.encore/path","seq50211","taoensso.encore/norm-word-breaks","clojure.string/replace","taoensso.encore/count-words","taoensso.encore/into-str","seq50217","cljs.core/sequential?","taoensso.encore/const-str=","vx","taoensso.encore/format-num-fn","n-min-fd","n-max-fd","nf","js/Intl.NumberFormat","fmt0","fmt2","taoensso.encore/format-nsecs","nanosecs","G__50229","taoensso.encore/abbreviate-ns","taoensso.encore.abbreviate_ns","n-full","vec__50234","error50241","taoensso.truss.impl/FalsePredError","e50243","taoensso.truss/failed-assertion!","p1","p2","name-part","ns-parts","n-to-abbr","cljs.core.symbol","as-?qname","always","_in","never","ns?","cljs.core/Namespace","input-str!","wild-str->?re-pattern","cljs.core/re-pattern","compile->match-fn","spec","cache?","fexpr__50255","fexpr__50257","str-spec","re-pattern","fexpr__50259","vec__50260","fixed-strs","re-patterns","p__50264","vec__50265","fx-match","re-match","in-str","p1__50248#","taoensso.encore.rsome","taoensso.encore/fmemoize","G__50271","G__50272","taoensso.encore/name-filter","allow-spec","disallow-spec","allow","as","disallow","ds","taoensso.encore/newline","taoensso.encore/newlines","taoensso.encore/x->str","allow-readably?","allow-dup?","add-newline?","cljs.core.prn_str","cljs.core.println_str","cljs.core.print_str","taoensso.encore/xs->str","cljs.core/prn-str","cljs.core/pr-str","cljs.core/println-str","cljs.core/print-str","taoensso.encore/pr","cljs.core/pr","taoensso.encore/prn","cljs.core/prn","taoensso.encore/print","cljs.core/print","taoensso.encore/println","cljs.core/println","taoensso.encore/pr-edn","cljs.core/*print-level*","cljs.core/*print-length*","cljs.core/*print-readably*","*print-level*-orig-val__50285","*print-length*-orig-val__50286","*print-readably*-orig-val__50287","*print-level*-temp-val__50288","*print-length*-temp-val__50289","*print-readably*-temp-val__50290","taoensso.encore/pr-edn*","G__50294","taoensso.encore/read-edn","taoensso.encore.read_edn","readers","cljs.reader/*tag-table*","default","cljs.reader/*default-data-reader-fn*","cljs.tools.reader.edn.read_string","G__50298","taoensso.encore/str-impl","class-name","data","taoensso.encore/uuid","quad-hex","unpadded-hex","cljs.core/rand-int","G__50302","ver-trip-hex","res-trip-hex","G__50308","taoensso.encore/uuid-str","taoensso.encore.uuid_str","taoensso.encore/rand-bytes","prefer-secure?","size","ba","js/Uint8Array","crypto","n__5616__auto__","i","js/Math.random","p__50314","map__50315","taoensso.encore/rand-id-fn","chars","rand-bytes-fn","G__50317","nchars","max-char-idx","cljs.core.object_array","mask","Math/log","exp-bytes","stepn","step1","cljs.core/mod","rand-bytes","possible-ch-idx","G__50333","taoensso.encore/nanoid","taoensso.encore.nanoid","unused__11804__auto__","self__","G__50341","args50337","cljs.core/aclone","taoensso.encore/LightAtom","taoensso.encore/->LightAtom","state","swap-fn","old-map","new-val","G__50342","new-map","taoensso.encore/latom","init-state","taoensso.encore/-reset-k0!","return","atom_","m0","cljs.core/compare-and-set!","taoensso.encore/-reset-k1!","G__50352","G__50353","G__50354","G__50355","taoensso.encore/-reset-kn!","ks-seq","G__50359","G__50360","G__50361","G__50362","v0","G__50369","taoensso.encore/reset-in!","val","G__50377","taoensso.encore/reset-val!","G__50385","taoensso.encore/reset-in!?","G__50388","taoensso.encore/reset-val!?","taoensso.encore.reset_val_BANG_","taoensso.encore/reset!?","taoensso.encore/Swapped","taoensso.encore/->Swapped","newv","returnv","taoensso.encore/swapped","return-val","taoensso.encore/swapped-vec","taoensso.encore/swapped?","taoensso.encore/return-swapped","sw","rv","G__50404","taoensso.encore/-swap-k0!","sw?","taoensso.encore/-swap-k1!","G__50414","G__50415","G__50416","G__50417","taoensso.encore/-swap-kn!","G__50421","G__50422","G__50423","G__50424","G__50427","taoensso.encore/swap-in!","G__50429","taoensso.encore/swap-val!","G__50431","taoensso.encore/pull-val!","taoensso.encore.pull_val_BANG_","taoensso.encore.swap_val_BANG_","taoensso.encore/memoize-last","call","in_","out_","in*","f0","out","cljs.core/memoize","taoensso.encore/gc-now?","rate","js/Math","taoensso.encore/SimpleCacheEntry","taoensso.encore/->SimpleCacheEntry","delay","udt","taoensso.encore/TickedCacheEntry","taoensso.encore/->TickedCacheEntry","tick-lru","tick-lfu","G__50439","taoensso.encore/cache","p__50443","map__50444","cache_","get-sentinel","G__50442","x2","ttl-ms","gc-every","error50450","arg50445","taoensso.truss.impl/ks<=","e50452","ps50454","pf50455","arg50453","df50456","error50458","e50460","error50461","e50463","error50464","e50466","gc-now?","ticker","latch_","ttl?","G__50467","argn","G__50468","cljs.core/reset!","G__50469","p1__50436#","tick","cljs.core/rem","latch","udt-floor","G__50470","snapshot","n-to-gc","ks-to-gc","G__50471","G__50472","G__50473","taoensso.encore/top","cljs.core/keys","G__50474","fresh?","G__50475","G__50476","G__50477","?e","cljs.core/Delay","gc-rate","gce","G__50478","G__50479","G__50480","p1__50437#","G__50481","G__50482","G__50483","G__50484","taoensso.encore.cache","G__50486","taoensso.encore/memoize","taoensso.encore/rate-limiter-once-per","last_","req-id","t1","taoensso.encore/LimitSpec","taoensso.encore/->LimitSpec","taoensso.encore/LimitEntry","taoensso.encore/->LimitEntry","udt0","taoensso.encore/LimitHits","taoensso.encore/->LimitHits","worst-lid","worst-ms","limit-spec","ps50487","pf50488","df50489","error50491","e50493","error50494","e50496","taoensso.encore/coerce-limit-spec","p__50497","vec__50498","lid","p__50501","vec__50502","?lid","G__50507","taoensso.encore/rate-limiter","taoensso.encore.rate_limiter","map__50508","map__50509","with-state?","cljs.core/constantly","once-per-msecs","reqs_","f1","rid","delta","peek?","G__50510","reqs","entries","new-entries","?hits","tdelta","h","l","limiter-fn","cmd","G__50511","G__50512","G__50513","p1__50505#","G__50515","args50514","taoensso.encore/Counter","taoensso.encore/->Counter","add","action","G__50516","G__50518","taoensso.encore.counter","taoensso.encore/rc-deref","ts_","n-skip_","gc-fn","n-skip0","ts","n-total","n-window","t0","n-skip1","G__50524","args50523","taoensso.encore/RollingCounter","taoensso.encore/->RollingCounter","this","G__50525","p1__50521#","G__50526","p1__50522#","taoensso.encore/rolling-counter","error50531","e50533","G__50535","taoensso.encore/rolling-vector","p__50536","map__50537","taoensso.encore.rolling_vector","init-val","acc_","G__50538","sv","G__50539","taoensso.encore/rcompare","cljs.core/compare","G__50541","taoensso.encore/sortv","taoensso.encore.sortv","comparator","?keyfn","G__50542","kfn","G__50543","G__50544","a","cljs.core/to-array","taoensso.encore.goog$module$goog$array.stableSort","cljs.core/fn->comparator","nil->sentinel","sentinel->nil","G__50549","taoensso.encore/reduce-top","taoensso.encore.reduce_top","cmp","coll-size","cljs.core.sort_by","G__50551","taoensso.encore/top-into","taoensso.encore.top_into","G__50553","taoensso.encore/hot-sleep","taoensso.encore/-valid-unstub-impl","cljs.core/fn?","taoensso.encore/test-fixtures","fixtures-map","error50574","e50576","taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn","x__5373__auto__","m__5374__auto__","taoensso.encore/-schedule-timeout","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","taoensso.encore/ITimeoutImpl","taoensso.encore/DefaultTimeoutImpl","taoensso.encore/->DefaultTimeoutImpl","js/setTimeout","js/taoensso","js/taoensso.encore","js/taoensso.encore.default-timeout-impl_","taoensso.encore/default-timeout-impl_","taoensso$encore$ITimeoutFuture$tf_state$dyn","taoensso.encore/tf-state","taoensso$encore$ITimeoutFuture$tf_poll$dyn","taoensso.encore/tf-poll","taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn","taoensso.encore/tf-done?","taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn","taoensso.encore/tf-pending?","taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn","taoensso.encore/tf-cancelled?","taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn","taoensso.encore/tf-cancel!","taoensso.encore/ITimeoutFuture","taoensso.encore/TimeoutFuture","taoensso.encore/->TimeoutFuture","result__","taoensso.encore/timeout-future?","G__50584","taoensso.encore/call-after-timeout","taoensso.encore.call_after_timeout","impl_","cas-f","result_","impl","cljs.core/force","taoensso.encore/console-log","js/console","js/console.log","cljs.core.into_array","taoensso.encore/log","taoensso.encore/logp","seq50585","taoensso.encore/sayp","seq50586","js/alert","taoensso.encore/logf","seq50587","G__50588","taoensso.encore/sayf","seq50589","G__50590","taoensso.encore/get-win-loc","loc","taoensso.encore/default-xhr-pool_","js/goog.net.XhrIoPool","p__50592","map__50593","taoensso.encore/ajax-call","url","method","body","params","headers","timeout-ms","resp-type","with-credentials?","xhr-pool","xhr-cb-fn","xhr-timeout-ms","callback-fn","error50599","arg50594","e50601","with-xhr","xhr","e50602","map__50604","url+","content","content-type","G__50605","goog.Uri.QueryData/createFromMap","cljs.core/clj->js","js/FormData","js/Blob","form-data","seq__50606","chunk__50607","count__50608","i__50609","vec__50616","temp__5825__auto__","cljs.core/chunked-seq?","c__5548__auto__","cljs.core/chunk-rest","vec__50619","p1__50591#","progress-listener","goog.events/listen","goog.net.EventType/PROGRESS","ev","length-computable?","loaded","total","?ratio","G__50622","goog.events/listenOnce","goog.net.EventType/READY","goog.net.EventType/COMPLETE","resp","vec__50623","success?","status","error","vec__50626","ct","G__50629","edn","e50630","goog.events/unlistenByKey","G__50631","G__50632","G__50633","cb","e50634","G__50603","G__50635","done?_","cljs.core.atom","G__50636","taoensso.encore/url-encode","js/encodeURIComponent","taoensso.encore/url-decode","p__50639","vec__50640","seq50637","G__50638","encoding","js/decodeURIComponent","taoensso.encore/format-query-string","param","join","strs","iter__5503__auto__","c__5501__auto__","size__5502__auto__","b__50646","cljs.core/chunk-buffer","i__50645","vec__50647","cljs.core/-nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__50643","vec__50650","taoensso.encore/assoc-conj","cur","taoensso.encore/parse-query-params","p__50655","vec__50656","seq50653","G__50654","keywordize?","cljs.core.subs","vec__50659","taoensso.encore.url_decode","cljs.core/keyword","taoensso.encore/merge-url-with-query-string","vec__50662","?qstr","qmap","qstr","taoensso.encore/pr-json","js/JSON","cljs.core.clj__GT_js","G__50666","taoensso.encore/read-json","taoensso.encore.read_json","kw-keys?","cljs.core.js__GT_clj","js/JSON.parse","taoensso.encore/-swap-val!","G__50674","taoensso.encore/js-?win","taoensso.encore/regular-num?","taoensso.encore/get-window-location","taoensso.encore/backport-run!","taoensso.encore/fq-name","taoensso.encore/qname","taoensso.encore/merge-deep-with","taoensso.encore/merge-deep","taoensso.encore/parse-bool","taoensso.encore/parse-int","taoensso.encore/parse-float","taoensso.encore/swapped*","taoensso.encore/memoize-a0_","taoensso.encore/memoize-a1_","taoensso.encore/a0-memoize_","taoensso.encore/a1-memoize_","taoensso.encore/memoize-1","taoensso.encore/memoize1","taoensso.encore/memoize*","taoensso.encore/memoize_","taoensso.encore/nnil?","taoensso.encore/nneg-num?","taoensso.encore/nneg-int?","taoensso.encore/nneg-float?","taoensso.encore/uint?","taoensso.encore/pint?","taoensso.encore/nnil=","taoensso.encore/as-?uint","taoensso.encore/as-?pint","taoensso.encore/as-?ufloat","taoensso.encore/as-?pfloat","taoensso.encore/as-uint","taoensso.encore/as-pint","taoensso.encore/as-ufloat","taoensso.encore/as-pfloat","taoensso.encore/run!*","taoensso.encore/nano-time","taoensso.encore/-swap-cache!","taoensso.encore/-unswapped","taoensso.encore/-vswapped","taoensso.encore/-swap-k!","taoensso.encore/update-in*","taoensso.encore/idx-fn","taoensso.encore/vec*","taoensso.encore/set*","taoensso.encore/have-transducers?","taoensso.encore/pval?","taoensso.encore/as-?pval","taoensso.encore/as-pval","p1__50667#","nolist?","G__50676","taoensso.encore/compile-ns-filter","ns-pattern","taoensso.encore.compile_ns_filter","whitelist","blacklist","taoensso.encore/undefined->nil","taoensso.encore/spaced-str-with-nils","taoensso.encore/spaced-str","G__50678","taoensso.encore/approx=","taoensso.encore.approx_EQ__EQ_","taoensso.encore/join-once","seq50679","G__50680","taoensso.encore/nnil-set","cljs.core.disj","taoensso.encore/keys=","taoensso.encore/keys<=","taoensso.encore/keys>=","taoensso.encore/keys=nnil?","taoensso.encore/logging-level","taoensso.encore/set-exp-backoff-timeout!","p__50683","vec__50684","seq50681","G__50682","nullary-f","nattempt","js/taoensso.encore.*log-level*","taoensso.encore/*log-level*","taoensso.encore/log?","->n","level","taoensso.encore/tracef","seq50687","G__50688","taoensso.encore/debugf","seq50689","G__50690","taoensso.encore/infof","seq50691","G__50692","taoensso.encore/warnf","seq50693","G__50694","taoensso.encore/errorf","seq50695","G__50696","taoensso.encore/fatalf","seq50697","G__50698","taoensso.encore/reportf","seq50699","G__50700","taoensso.encore/greatest","p__50703","vec__50704","seq50701","G__50702","?comparator","p1__50669#","p2__50670#","taoensso.encore/least","p__50709","vec__50710","seq50707","G__50708","p1__50671#","p2__50672#","taoensso.encore/clj1098","taoensso.encore/distinct-by","seen","p__50713","vec__50714","v*","G__50718","taoensso.encore/distinctv","taoensso.encore.distinctv","tr","p__50719","vec__50720","taoensso.encore/map-kvs","kf","vf","taoensso.encore/as-map","p__50725","vec__50726","seq50723","G__50724","taoensso.encore/keywordize-map","taoensso.encore/removev","cljs.core/filterv","taoensso.encore/nvec?","taoensso.encore/memoized","seq50729","G__50730","G__50731","cache","?dv","taoensso.encore/translate-signed-idx","signed-idx","taoensso.encore/sentinel","taoensso.encore/sentinel?","taoensso.encore/nil->sentinel","taoensso.encore/sentinel->nil","taoensso.encore/singleton?","taoensso.encore/->?singleton","vec__50734","taoensso.encore/->vec","taoensso.encore/fzipmap","vs","taoensso.encore/filter-kvs","taoensso.encore/remove-kvs","taoensso.encore/revery","taoensso.encore/revery-kv","taoensso.encore/every","taoensso.encore/replace-in","seq50737","G__50738","ops","?op","vec__50739","type","valf","G__50743","taoensso.encore/swap-in!*","G__50745","taoensso.encore/swap-val!*","taoensso.encore/dswap!","taoensso.encore/swap!*","taoensso.encore/compile-str-filter","taoensso.encore/kw-identical?","taoensso.encore/system-newline","taoensso.encore/-matching-error","taoensso.truss/matching-error","G__50747","taoensso.encore/rate-limiter*","taoensso.encore/limiter*","taoensso.encore/limiter","taoensso.encore/dis-assoc-some","taoensso.encore/println-atomic","taoensso.encore/-merge-with","taoensso.encore/fast-merge","taoensso.encore/secure-rand-bytes","taoensso.encore/round*","taoensso.encore/ajax-lite","taoensso.encore/error-data","data-map","cljs.core/ex-data","base-map","err","taoensso.encore/when?","e50748","taoensso.encore/call-form?","G__50750","taoensso.encore/get-subvec","G__50752","taoensso.encore/get-subvector","G__50754","taoensso.encore/get-substr-by-idx","taoensso.encore.get_substr_by_idx","G__50756","taoensso.encore/get-substr-by-len","G__50758","taoensso.encore/get-substr","G__50760","taoensso.encore/get-substring","taoensso.encore/?subvecfoo - Val \\\"to foo\\\" (e.g. >sender, >host), or fn to put/coerce/transform\n foo - Fn to put/coerce/transform\n\n Type affixes may be used for clarity:\n - - m-users, v-users, n-users, etc. (also nusers when unambiguous)\n - - users-map, users-vec, user-count, etc.\n\n Regarding name heirarchy:\n When there's a significant num of syms with a meaningful hierarchy,\n prefer names with descending hierarchy to emphasize structure and\n related groups/functionality, e.g.:\n `user-add`, `user-remove`, `user-mod` vs\n `add-user`, `remove-user`, `mod-user`, etc.\n\n Commit message tags (in priority order):\n [wip] - Work-in-progress (still under development)\n\n [mod] - Modify behaviour (=> breaking), [mod!], [mod!!], etc. for attention\n [fix] - Fix broken behaviour (=> usu. non-breaking)\n [new] - Add new behaviour (=> non-breaking)\n\n [doc] - Documentation changes besides those better labelled as [mod], [fix], or [new]\n [nop] - Other non-breaking changes (to implementation details, non-code changes, etc.)\n\n [x] [y] - Single commit with multiple tags (in priority order), try avoid\n\n Example commit messages:\n v1.0.0 (2022-01-27) ; Tagged release\n [new] [#122] Add new feature x (@contributor)\n\n Version numbers:\n Ver tables: X.Y.Z (without backticks)\n Min ver: vX.Y.Z+\n Elsewhere: vX.Y.Z\"\n\n {:author \"Peter Taoussanis (@ptaoussanis)\"}\n\n (:refer-clojure :exclude\n [if-let if-some if-not when when-not when-some when-let cond defonce\n binding run! some? ident? float? boolean? uri? indexed? bytes?\n int? pos-int? neg-int? nat-int? inst?\n simple-ident? qualified-ident?\n simple-symbol? qualified-symbol?\n simple-keyword? qualified-keyword?\n format update-in merge merge-with subvec\n memoize abs ex-message ex-data ex-cause ex-info\n newline satisfies? uuid\n pr prn print println])\n\n #?(:clj\n (:require\n [clojure.core :as core]\n [clojure.string :as str]\n [clojure.set :as set]\n [clojure.java.io :as jio]\n [clojure.tools.reader.edn :as edn]\n [taoensso.truss :as truss :refer [ex-info]])\n\n :cljs\n (:require\n [cljs.core :as core]\n [clojure.string :as str]\n [clojure.set :as set]\n [cljs.reader]\n [cljs.tools.reader.edn :as edn]\n [goog.object :as gobj]\n [goog.array :as garray]\n [goog.string :as gstr]\n [goog.string.format]\n [goog.string.StringBuffer]\n [goog.events :as gevents]\n [goog.net.XhrIo :as gxhr]\n [goog.net.XhrIoPool :as gxhr-pool]\n [goog.Uri.QueryData :as gquery-data]\n [goog.net.EventType]\n [goog.net.ErrorCode]\n [taoensso.truss :as truss :refer [ex-info]]))\n\n #?(:clj\n (:import\n [java.util Date Locale TimeZone]\n [java.text SimpleDateFormat]\n [java.util.concurrent CountDownLatch]\n [java.util.concurrent.atomic AtomicReference]\n [java.util.function UnaryOperator])\n\n :cljs\n (:require-macros\n [taoensso.encore :as enc-macros :refer\n [compile-if qb\n if-let if-some if-not when when-not when-some when-let\n -cond cond cond! cond-let and? or? def* defonce\n -cas!? now-udt* now-nano* min* max*\n name-with-attrs deprecated new-object defalias\n identical-kw? satisfies? satisfies! instance! use-transient?\n with-default-print-opts typed-val]])))\n\n(def encore-version \"See `assert-min-encore-version`\" [3 153 1])\n\n(declare println)\n\n(comment\n (remove-ns 'taoensso.encore)\n (:api (interns-overview))\n (test/run-tests)\n\n \"\u2234 \u2235 \u2115 \u2124 \u211d \u221e \u2260 \u2208 \u2209 \u21d2\u21d4 \u2192 \u00d7 \u2283\u2282 \u2287\u2286 \u2261 \u00ac \u2200 \u2203 \u221d\"\n (set! *unchecked-math* :warn-on-boxed)\n (set! *unchecked-math* false))\n\n;;;; Core macros\n\n#?(:clj (defmacro ^:no-doc and? \"Private, don't use.\" ([] true) ([x] x) ([x & next] `(if ~x (and? ~@next) false))))\n#?(:clj (defmacro ^:no-doc or? \"Private, don't use.\" ([] false) ([x] x) ([x & next] `(if ~x true (or? ~@next)))))\n\n#?(:clj\n (defmacro if-let\n \"Supersets `core/if-let` functionality. Like `core/if-let` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (if-let [x (rand-nth [:x1 :x2 false nil ]) ; Bind truthy x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind truthy z, or -> `else`\n ]\n [:then-clause x y z]\n [:else-clause])\"\n {:style/indent 1}\n ([bindings then ] `(if-let ~bindings ~then nil))\n ([bindings then else]\n (let [s (seq bindings)]\n (if s ; (if-let [] true false) => true\n (let [[b1 b2 & bnext] s]\n (if (= b1 :let)\n `(let ~b2 (if-let ~(vec bnext) ~then ~else))\n `(let [b2# ~b2]\n (if b2#\n (let [~b1 b2#]\n (if-let ~(vec bnext) ~then ~else))\n ~else))))\n then)))))\n\n#?(:clj\n (defmacro if-some\n \"Supersets `core/if-some` functionality. Like `core/if-some` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (if-some [x (rand-nth [:x1 :x2 false nil ]) ; Bind non-nil x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind non-nil z, or -> `else`\n ]\n [:then-clause x y z]\n [:else-clause])\"\n {:style/indent 1}\n ([bindings then] `(if-some ~bindings ~then nil))\n ([bindings then else]\n (let [s (seq bindings)]\n (if s ; (if-some [] true false) => true\n (let [[b1 b2 & bnext] s]\n (if (= b1 :let)\n `(let ~b2 (if-some ~(vec bnext) ~then ~else))\n `(let [b2# ~b2]\n (if (nil? b2#)\n ~else\n (let [~b1 b2#]\n (if-some ~(vec bnext) ~then ~else))))))\n then)))))\n\n#?(:clj\n (defmacro if-not\n \"Supersets `core/if-not` functionality.\n Same as `encore/if-let` with `then` `and `else` forms swapped.\"\n ;; Also avoids unnecessary `(not test)`\n {:style/indent 1}\n ([test-or-bindings then]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings nil ~then)\n `(if ~test-or-bindings nil ~then)))\n\n ([test-or-bindings then else]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings ~else ~then)\n `(if ~test-or-bindings ~else ~then)))))\n\n#?(:clj\n (defmacro when-let\n \"Supersets `core/when-let` functionality. Like `core/when-let` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (when-let [x (rand-nth [:x1 :x2 false nil ]) ; Bind truthy x, or -> nil\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind truthy z, or -> nil\n ]\n [:body x y z])\"\n ;; Now a feature subset of all-case `when`\n {:style/indent 1}\n [bindings & body] `(if-let ~bindings (do ~@body))))\n\n#?(:clj\n (defmacro when\n \"Supersets `core/when` and `core/when-let` functionality. When `test-or-bindings` is\n a vector, same as `encore/when-let`. Otherwise same as `core/when`.\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings (do ~@body) nil)\n `(if ~test-or-bindings (do ~@body) nil))))\n\n#?(:clj\n (defmacro when-not\n \"Supersets `core/when-not` functionality.\n Same as `encore/if-let` with `body` as `else` form.\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings nil (do ~@body))\n `(if ~test-or-bindings nil (do ~@body)))))\n\n#?(:clj\n (defmacro when-some\n \"Supersets `core/when-some` functionality. Like `core/when-some` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (when-some [x (rand-nth [:x1 :x2 false nil ]) ; Bind non-nil x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind non-nil z, or -> `else`\n ]\n [:body x y z])\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-some ~test-or-bindings (do ~@body) nil)\n `(if (nil? ~test-or-bindings) nil (do ~@body)))))\n\n(comment\n (if-let [a :a b (= a :a)] [a b] \"else\")\n (if-let [a :a b (= a :b)] [a b] \"else\")\n (if-some [a :a b (= a :b)] [a b] \"else\")\n (when-let [a :a b nil] \"true\")\n (when-let [:let [a :a b :b] c (str a b)] c))\n\n(defn ^:no-doc list-form?\n \"Private, don't use.\n Returns true if given a list or Cons (=> possible call form).\"\n #?(:cljs {:tag 'boolean})\n [x] (or (list? x) (instance? #?(:clj clojure.lang.Cons :cljs cljs.core/Cons) x)))\n\n(declare str-starts-with?)\n\n#?(:clj\n (defmacro ^:no-doc -cond [throw? & clauses]\n (if-let [[c1 c2 & more] (seq clauses)]\n (if-not (next clauses)\n c1 ; Implicit else\n (case c1\n (true :else :default :always :then) c2 ; Avoid unnecessary (if ...)\n (false nil) `(-cond ~throw? ~@more) ; Avoid unnecessary (if ...)\n :do `(do ~c2 (-cond ~throw? ~@more))\n :let `(let ~c2 (-cond ~throw? ~@more))\n :binding `(core/binding ~c2 (-cond ~throw? ~@more))\n :with-redefs `(with-redefs ~c2 (-cond ~throw? ~@more))\n (:when :when-let) `(when ~c2 (-cond ~throw? ~@more))\n :when-not `(when-not ~c2 (-cond ~throw? ~@more))\n :when-some `(when-some ~c2 (-cond ~throw? ~@more))\n :return-when `(if-let [x# ~c2] x# (-cond ~throw? ~@more))\n :return-some `(if-some [x# ~c2] x# (-cond ~throw? ~@more))\n\n ;;; Support arbitrary wrapping\n (:wrap->> :wrap) `(->> (-cond ~throw? ~@more) ~c2)\n (:wrap->) `(-> (-cond ~throw? ~@more) ~c2)\n\n ;;; 3-clause cases\n (:if-let :if-some :if-not)\n (if (empty? more) ; Missing 3rd clause\n (truss/ex-info!\n (str \"[encore/cond] Missing 3rd clause after special keyword: \" `(~'cond ~c1 ~c2 ~')))\n\n (let [[c3 & more] more]\n (case c1\n :if-let `(if-let ~c2 ~c3 (-cond ~throw? ~@more))\n :if-some `(if-some ~c2 ~c3 (-cond ~throw? ~@more))\n :if-not `(if-not ~c2 ~c3 (-cond ~throw? ~@more)))))\n\n (if (keyword? c1)\n (if (str-starts-with? (name c1) \"_\")\n `(-cond ~throw? ~@more) ; Skip\n (truss/ex-info! (str \"[encore/cond] Unrecognized special keyword: \" `(~'cond ~c1 ~c2))))\n\n (if (vector? c1) ; Deprecated\n `(if-let ~c1 ~c2 (-cond ~throw? ~@more))\n\n ;; Experimental, assumes `not` = `core/not`:\n (if (and (list-form? c1) (= (first c1) 'not))\n `(if ~(second c1) (-cond ~throw? ~@more) ~c2)\n `(if ~c1 ~c2 (-cond ~throw? ~@more)))))))\n\n (when throw?\n `(truss/ex-info! \"[encore/cond!] No matching clause\")))))\n\n#?(:clj\n (defmacro cond\n \"Supersets `core/cond` functionality. Like `core/cond` but supports implicit\n final `else` clause, and special clause keywords for advanced behaviour:\n\n (cond\n :let [x \\\"x\\\"] ; Establish let binding/s for remaining forms\n :binding [*x* \\\"x\\\"] ; Establish dynamic binding/s for remaining forms\n :do (println (str \\\"x value: \\\" x)) ; Eval expr for side-effects\n :if-let [y \\\"y\\\", z nil] \\\"y and z were both truthy\\\"\n :if-some [y \\\"y\\\", z nil] \\\"y and z were both non-nil\\\"\n :else \\\"fallback value\\\")\n\n Simple, flexible way to eliminate deeply-nested control flow code.\n `:let` support inspired by .\"\n [& clauses] `(-cond false ~@clauses)))\n\n#?(:clj\n (defmacro cond!\n \"Like `cond` but throws on non-match like `case` and `condp`.\"\n [& clauses] `(-cond true ~@clauses)))\n\n#?(:clj\n (defmacro cond-let\n \"Repeatedly rebinds given `sym` for each truthy condition and\n returns `sym`'s final value.\n\n Like a cross between `as->` and `cond->`:\n (cond-let [n 0] ; sym and its init value\n true (inc n)\n false (* n 5)\n (> n 0) (* n 2)) => 2\"\n\n [[sym init-val] & clauses]\n (when-not (even? (count clauses))\n (truss/ex-info!\n (str \"[encore/cond-let] Needs even number of clauses: \"\n `(~'cond-let [~sym ~init-val] ~'...))))\n\n (if (empty? clauses)\n init-val\n (let [steps (mapv (fn [[test step]] `(if ~test ~step ~sym)) (partition 2 clauses))]\n `(let [~sym ~init-val\n ~@(interleave (repeat sym) steps)]\n ~sym)))))\n\n#?(:clj\n (defmacro compile-if\n \"Evaluates `test`. If it returns logical true (and doesn't throw), expands\n to `then`, otherwise expands to `else`.\"\n {:style/indent 1}\n ([test then ] `(compile-if ~test ~then nil))\n ([test then else] (if (try (eval test) (catch Throwable _ false)) then else))))\n\n#?(:clj (defmacro compile-when {:style/indent 1} [test & body] `(compile-if ~test (do ~@body) nil)))\n\n;; (:ns &env) is nnil iff compiling for Cljs. This gives macros a way to produce\n;; different code depending on target (Clj/s), something reader conditionals cannot do.\n#?(:clj (defmacro if-clj [then & [else]] (if (:ns &env) else then)))\n#?(:clj (defmacro if-cljs [then & [else]] (if (:ns &env) then else)))\n#?(:clj\n (defmacro ^:no-doc target-case\n \"Private, don't use. From `net.cgrand/macrovich`.\n Like a reader conditional, but branches at expansion (not read) time.\n Chooses form to emit based on target language (not macro language).\n\n For use by macros or macro-supporting fns, can use un/quoted:\n (defmacro foo [] (target-case :clj \\\"->Clojure\\\" :cljs \\\"->ClojureScript\\\" :cljd \\\"->ClojureDart\\\"))\n (defmacro foo [] `(target-case :clj \\\"->Clojure\\\" :cljs \\\"->ClojureScript\\\" :cljd \\\"->ClojureDart\\\"))\"\n\n [& {:keys [clj cljs cljd]}]\n (cond\n (contains? &env '&env)\n `(cond (:ns ~'&env) ~cljs (:nses ~'&env) ~cljd :else ~clj)\n #?(:clj (:ns &env) :cljs true) cljs\n #?(:clj (:nses &env) :cljd true) cljd\n :else clj)))\n\n(comment (clojure.walk/macroexpand-all '(defmacro foo [x] (target-case :clj \"clj\" :cljs \"cljs\"))))\n\n#?(:clj\n (defmacro binding*\n \"For Clj: faster version of `core/binding`.\n For Cljs: identical to `core/binding`.\n Can interfere with some deep-walking macros.\"\n {:style/indent 1}\n [bindings & body]\n (if (:ns &env)\n `(cljs.core/binding ~bindings ~@body)\n (let [;; Avoids unnecessary runtime map construction\n bindings-map ; #{ }\n (reduce-kv (fn [m k v] (assoc m `(var ~k) v))\n {} (apply hash-map bindings))]\n `(let [] ; Nb for frame\n (push-thread-bindings ~bindings-map)\n (try ~@body (finally (pop-thread-bindings))))))))\n\n(comment\n (do\n (def ^:dynamic *d1* nil)\n (def ^:dynamic *d2* nil)\n (qb 1e6 ; [354.32 308.58]\n (core/binding [*d1* :d1, *d2* :d2] [*d1* *d2*])\n (binding* [*d1* :d1, *d2* :d2] [*d1* *d2*]))))\n\n(defn name-with-attrs\n \"Given a symbol and args, returns [ ]\n with support for `defn` style `?docstring` and `?attrs-map`.\"\n ([sym args ] (name-with-attrs sym args nil))\n ([sym args attrs-merge]\n (let [[?docstring args] (if (and (string? (first args)) (next args)) [(first args) (next args)] [nil args])\n [attrs args] (if (and (map? (first args)) (next args)) [(first args) (next args)] [{} args])\n [?docstring args] (if (and (string? (first args)) (next args)) [(first args) (next args)] [?docstring args])\n\n attrs (if ?docstring (assoc attrs :doc ?docstring) attrs)\n attrs (if-let [m (meta sym)] (conj m attrs) attrs)\n attrs (conj attrs attrs-merge)]\n\n [(with-meta sym attrs) args attrs])))\n\n#?(:clj\n (defmacro def*\n \"Like `core/def` but supports attrs map.\"\n {:arglists '([sym ?docstring ?attrs-map init-expr])\n :style/indent 1}\n [sym & args]\n (let [[sym body] (name-with-attrs sym args)]\n `(def ~sym ~@body))))\n\n(comment (meta (def* foo {:private true} \"docstring\" \"value\")))\n\n#?(:clj\n (defmacro defonce\n \"Like `core/defonce` but supports docstring and attrs map.\"\n {:arglists '([sym ?docstring ?attrs-map init-expr])\n :style/indent 1}\n [sym & args]\n (let [[sym body] (name-with-attrs sym args)]\n (if (:ns &env)\n `(cljs.core/defonce ~sym ~@body)\n `(clojure.core/defonce ~sym ~@body)))))\n\n#?(:clj\n (defmacro case-eval\n \"Like `case` but test expressions are evaluated for their compile-time value.\"\n {:style/indent 1}\n [expr & clauses]\n (let [default? (odd? (count clauses))\n default (when default? (last clauses))\n clauses (if default? (butlast clauses) clauses)]\n `(case ~expr\n ~@(map-indexed (fn [i# form#] (if (even? i#) (eval form#) form#)) clauses)\n ~(when default? default)))))\n\n#?(:clj\n (defmacro doto-cond\n \"Cross between `doto`, `cond->` and `as->`.\"\n {:style/indent 1}\n [[sym x] & clauses]\n (assert (even? (count clauses)))\n (let [gs (gensym)\n pstep (fn [[test-expr step]] `(when-let [~sym ~test-expr] (-> ~gs ~step)))]\n `(let [~gs ~x]\n ~@(map pstep (partition 2 clauses))\n ~gs))))\n\n#?(:clj\n (defmacro identical-kw?\n \"Returns true iff two keywords are identical.\n Portable and maximally fast.\n For Clj this expands to: `(identical? x y)`\n For Cljs this expands to: `(keyword-identical? x y)`\"\n [x y]\n (if (:ns &env)\n `(cljs.core/keyword-identical? ~x ~y)\n `(identical? ~x ~y))))\n\n#?(:clj\n (defmacro declare-remote\n \"Declares given ns-qualified symbols, preserving metadata.\n Clj only. Useful for circular dependencies.\"\n [& syms]\n (let [original-ns (str *ns*)]\n `(do ~@(map (fn [s]\n (let [ns (namespace s)\n v (name s)\n m (meta s)]\n `(do (in-ns '~(symbol ns))\n (declare ~(with-meta (symbol v) m))))) syms)\n (in-ns '~(symbol original-ns))))))\n\n#?(:clj\n (defmacro ^:no-doc typed-val\n \"Private, don't use. Expands to `{:value ~x, :type (type ~x)}.\"\n [x] `{:value ~x, :type (type ~x)}))\n\n#?(:clj (defmacro new-object [] (if (:ns &env) `(cljs.core/js-obj) `(Object.))))\n\n#?(:clj\n (defmacro update-var-root!\n \"Updates root binding (value) of the var identified by given symbol, and returns\n the new value:\n (update-var-root! my-var (fn [old-root-val] )) => \n\n Similar to `alter-var-root` but cross-platform and takes a symbol rather than a var.\n See also `set-var-root!`.\"\n [var-sym update-fn]\n (if (:ns &env)\n `(set! ~var-sym (~update-fn ~var-sym))\n `(alter-var-root (var ~var-sym) ~update-fn))))\n\n#?(:clj\n (defmacro set-var-root!\n \"Sets root binding (value) of the var identified by given symbol, and returns\n the new value. Cross-platform. See also `update-var-root!`.\"\n [var-sym root-val]\n (if (:ns &env)\n `(set! ~var-sym ~root-val)\n `(alter-var-root (var ~var-sym) (fn [_#] ~root-val)))))\n\n;;;; Vars\n\n#?(:clj\n (defn ^:no-doc var-info\n \"Private, don't use.\n Returns ?{:keys [var sym ns name meta ...]} for given symbol.\"\n [macro-env sym]\n (when (symbol? sym)\n (if (:ns macro-env)\n (let [ns (find-ns 'cljs.analyzer.api)\n v (ns-resolve ns 'resolve)] ; Don't cache!\n (when-let [{:as m, var-ns :ns, var-name :name} ; ?{:keys [meta ns name ...]}\n (@v macro-env sym)]\n (when var-ns ; Skip locals\n (assoc m :sym (symbol (str var-ns) (name var-name))))))\n\n (when-let [v (resolve macro-env sym)]\n (let [{:as m, var-ns :ns, var-name :name} (meta v)]\n {:var v\n :sym (symbol (str var-ns) (name var-name))\n :ns var-ns\n :name var-name\n :meta\n (if-let [x (get m :arglists)]\n (assoc m :arglists `'~x) ; Quote\n (do m))}))))))\n\n#?(:clj (defn- require-sym-ns [sym] (when-let [ns (namespace sym)] (require (symbol ns)) true)))\n#?(:clj\n (defn ^:no-doc resolve-sym\n \"Private, don't use.\n Returns resolved qualified Clj/s symbol, or nil.\"\n ;; Fundamental limitations:\n ;; 1. Macros targeting Cljs cannot expand to a Cljs symbol in an unrequired namespace.\n ;; 2. Macros targeting Cljs cannot eval a Cljs symbol for its value at macro time.\n ([ sym ] (resolve-sym nil sym false)) ; Clj only\n ([macro-env sym ] (resolve-sym macro-env sym false))\n ([macro-env sym may-require-ns?]\n (when (symbol? sym)\n (if-not may-require-ns?\n (get (var-info macro-env sym) :sym)\n (or\n (get (var-info macro-env sym) :sym)\n (when (truss/catching (require-sym-ns sym))\n (get (var-info macro-env sym) :sym))))))))\n\n(comment (resolve-sym nil 'string?))\n\n;;;; Aliases\n\n#?(:clj\n (defn ^:no-doc alias-link-var\n \"Private, don't use.\"\n [dst-var src-var dst-attrs]\n (add-watch src-var dst-var\n (fn [_ _ _ new-val]\n (alter-var-root dst-var (fn [_] new-val))\n ;; Wait for src-var meta to change. This is hacky, but\n ;; generally only relevant for REPL dev so seems tolerable.\n (let [t (Thread/currentThread)]\n (future\n (.join t 100)\n (reset-meta! dst-var\n (core/merge (meta src-var) dst-attrs))))))))\n\n#?(:clj\n (defmacro defalias\n \"Defines a local alias for the var identified by given qualified\n source symbol: (defalias my-map clojure.core/map), etc.\n\n Source var's metadata will be preserved (docstring, arglists, etc.).\n Changes to Clj source var's value will also be applied to alias.\n See also `defaliases`.\"\n ([ src ] `(defalias nil ~src nil nil))\n ([alias src ] `(defalias ~alias ~src nil nil))\n ([alias src alias-attrs ] `(defalias ~alias ~src ~alias-attrs nil))\n ([alias src alias-attrs alias-body]\n (let [cljs? (core/some? (:ns &env))\n src-sym (truss/have symbol? src)\n alias-sym (truss/have symbol? (or alias (symbol (name src-sym))))\n\n src-var-info (var-info &env src-sym)\n {src-var, :var src-attrs :meta} src-var-info\n\n alias-attrs\n (if (string? alias-attrs) ; Back compatibility\n {:doc alias-attrs}\n (do alias-attrs))\n\n link? (get alias-attrs :link? true)\n alias-attrs (dissoc alias-attrs :link?)\n\n final-attrs\n (select-keys (core/merge src-attrs (meta src-sym) (meta alias-sym) alias-attrs)\n [:doc :no-doc :arglists :private :macro :added :deprecated :inline :tag :redef])\n\n alias-sym (with-meta alias-sym final-attrs)\n alias-body (or alias-body (if cljs? src-sym `@~src-var))]\n\n #_(spit \"debug.txt\" (str (if cljs? \"cljs: \" \"clj: \") src-sym \": \" (meta alias-sym) \"\\n\") :append true)\n\n (when-not src-var-info\n (truss/ex-info! (str \"[encore/defalias] Source var not found: \" src)\n {:src src, :ns (str *ns*)}))\n\n (if cljs?\n `(def ~alias-sym ~alias-body)\n `(do\n ;; Need `alter-meta!` to reliably retain macro status!\n (alter-meta! (def ~alias-sym ~alias-body) conj ~final-attrs)\n (when ~link? (alias-link-var (var ~alias-sym) ~src-var ~alias-attrs))\n ;; (assert (bound? (var ~alias-sym)) ~(str \"Alias `\" alias-sym \"` is bound\"))\n (do (var ~alias-sym))))))))\n\n#?(:clj\n (defmacro defaliases\n \"Bulk version of `defalias`.\n Takes source symbols or {:keys [alias src attrs body]} maps:\n (defaliases\n {:alias my-map, :src map, :attrs {:doc \\\"My `map` alias\\\"}}\n {:alias my-vec, :src vec, :attrs {:doc \\\"My `vec` alias\\\"}})\"\n {:arglists '([{:keys [alias src attrs body]} ...])}\n [& clauses]\n `(do\n ~@(map\n (fn [x]\n (cond\n (symbol? x) `(defalias ~x)\n (map? x)\n (let [{:keys [alias src attrs body]\n :or {attrs (dissoc x :alias :src)}} x]\n `(defalias ~alias ~src ~attrs ~body))\n\n :else\n (truss/unexpected-arg! x\n {:context `defaliases\n :param 'alias-clause\n :expected '#{symbol map}})))\n clauses))))\n\n(comment\n (defn src \"src doc 1\" [] \"val1\")\n (defalias ^{:doc \"alias doc 1\"} src* src {:doc \"alias doc 2\"})\n [(src*) (meta #'src*)]\n (macroexpand '(defaliases {:alias map2 :src map :doc \"map2\"}))\n (do (defaliases {:alias map2 :src map :doc \"map2\"}))\n\n (defn myfn \"myfn doc\" [x y] (Thread/sleep 2000) (+ x y))\n (defaliases {:alias myfn2 :src myfn :body (fmemoize myfn)})\n (myfn2 1 1))\n\n;;;; Interfaces\n\n#?(:clj (declare caching-satisfies?))\n#?(:clj\n (defmacro satisfies?\n \"Faster `satisfies?` to work around CLJ-1814 until a proper upstream fix.\n May cache, so possibly inappropriate for dynamic work.\"\n [protocol x]\n (if (:ns &env)\n ;; `(cljs.core/implements? ~protocol ~x)\n `(cljs.core/satisfies? ~protocol ~x)\n `(caching-satisfies? ~protocol ~x))))\n\n#?(:clj\n (defmacro satisfies!\n \"If (satisfies? protocol arg) is true, returns arg.\n Otherwise throws runtime ex-info.\"\n {:arglists\n '([protocol arg]\n [protocol arg {:keys [msg context param ...]}]\n [protocol arg & {:keys [msg context param ...]}])}\n\n ([protocol arg ] `(satisfies! ~protocol ~arg nil))\n ([protocol arg k1 & more] `(satisfies! ~protocol ~arg ~(apply hash-map k1 more)))\n ([protocol arg opts]\n (let [opts (conj {:expected `(quote (satisfies? ~protocol ~'arg))} opts)]\n `(let [arg# ~arg]\n (if (satisfies? ~protocol arg#)\n arg#\n (truss/unexpected-arg! arg# ~opts)))))))\n\n(comment (macroexpand '(satisfies! my-protocol arg :k1 :v1 :k2 :v2)))\n\n#?(:clj\n (defmacro instance!\n \"If (instance? class arg) is true, returns arg.\n Otherwise throws runtime ex-info.\"\n {:arglists\n '([class arg]\n [class arg {:keys [msg context param ...]}]\n [class arg & {:keys [msg context param ...]}])}\n\n ([class arg ] `(instance! ~class ~arg nil))\n ([class arg k1 & more] `(instance! ~class ~arg ~(apply hash-map k1 more)))\n ([class arg opts]\n (let [opts (conj {:expected `(quote (instance? ~class ~'arg))} opts)]\n `(let [arg# ~arg]\n (if (instance? ~class arg#)\n arg#\n (truss/unexpected-arg! arg# ~opts)))))))\n\n(comment (macroexpand '(instance! String 5 :k1 :v1 :k2 :v2)))\n\n;;;; Cljs environment\n;; `js/foo` - `foo` in global object/ns (depends on *target*)\n;; `js/window` - `window` object: global ns in browsers\n;; `js/global` - `global` object: global ns in Node.js, etc.?\n;; `goog/global` - Closure's environment-agnostic global object\n\n#?(:cljs (def ^:no-doc node-target? (= *target* \"nodejs\")))\n#?(:cljs (def ^:no-doc react-native-target? (= *target* \"react-native\")))\n#?(:cljs (def ^:no-doc js-?window (when (and (not react-native-target?) (exists? js/window)) js/window))) ; Present iff in browser\n#?(:cljs (def ^:no-doc js-?process (when (exists? js/process) js/process))) ; Present iff in Node.js\n#?(:cljs (def ^:no-doc js-?crypto\n (when-not react-native-target?\n (or\n (when (exists? js/crypto) js/crypto)\n (when (exists? js/window) (gobj/get js/window \"crypto\"))))))\n\n;;;; Types\n;; Could really do with a portable ^boolean hint!\n\n(do\n #?(:clj (defn nempty-str? [x] (and (string? x) (not (.isEmpty ^String x))))\n :cljs (defn ^boolean nempty-str? [x] (and (string? x) (not (= x \"\")))))\n #?(:clj (defn boolean? [x] (instance? Boolean x))\n :cljs (defn ^boolean boolean? [x] (or (true? x) (false? x))))\n #?(:clj (defn indexed? [x] (instance? clojure.lang.Indexed x))\n :cljs (defn ^boolean indexed? [x] (implements? IIndexed x)))\n #?(:clj (defn named? [x] (instance? clojure.lang.Named x))\n :cljs (defn ^boolean named? [x] (implements? INamed x)))\n #?(:clj (defn editable? [x] (instance? clojure.lang.IEditableCollection x))\n :cljs (defn ^boolean editable? [x] (implements? IEditableCollection x)))\n #?(:clj (defn derefable? [x] (instance? clojure.lang.IDeref x))\n :cljs (defn ^boolean derefable? [x] (implements? IDeref x)))\n #?(:clj (defn atom? [x] (instance? clojure.lang.Atom x))\n :cljs (defn ^boolean atom? [x] (instance? Atom x)))\n #?(:clj (defn transient? [x] (instance? clojure.lang.ITransientCollection x))\n :cljs (defn ^boolean transient? [x] (implements? ITransientCollection x)))\n #?(:clj (defn lazy-seq? [x] (instance? clojure.lang.LazySeq x))\n :cljs (defn ^boolean lazy-seq? [x] (instance? LazySeq x)))\n #?(:clj (defn re-pattern? [x] (instance? java.util.regex.Pattern x))\n :cljs (defn ^boolean re-pattern? [x] (instance? js/RegExp x)))\n #?(:clj (defn can-meta? [x] (instance? clojure.lang.IObj x)) ; Not IMeta\n :cljs (defn ^boolean can-meta? [x] (implements? IWithMeta x)))\n\n #?(:clj (defn uri? [x] (instance? java.net.URI x)))\n #?(:clj (defn throwable? [x] (instance? Throwable x)))\n #?(:clj (defn exception? [x] (instance? Exception x)))\n\n (defn stringy? #?(:cljs {:tag 'boolean}) [x] (or (keyword? x) (string? x)))\n (defn ident? #?(:cljs {:tag 'boolean}) [x] (or (keyword? x) (symbol? x)))\n (defn nameable? #?(:cljs {:tag 'boolean}) [x] (or (named? x) (string? x)))\n (defn simple-ident? #?(:cljs {:tag 'boolean}) [x] (and (ident? x) (nil? (namespace x))))\n (defn qualified-ident? #?(:cljs {:tag 'boolean}) [x] (and (ident? x) (namespace x) true))\n (defn simple-symbol? #?(:cljs {:tag 'boolean}) [x] (and (symbol? x) (nil? (namespace x))))\n (defn qualified-symbol? #?(:cljs {:tag 'boolean}) [x] (and (symbol? x) (namespace x) true))\n (defn simple-keyword? #?(:cljs {:tag 'boolean}) [x] (and (keyword? x) (nil? (namespace x))))\n (defn qualified-keyword? #?(:cljs {:tag 'boolean}) [x] (and (keyword? x) (namespace x) true))\n (defn vec2? #?(:cljs {:tag 'boolean}) [x] (and (vector? x) (= (count x) 2)))\n (defn vec3? #?(:cljs {:tag 'boolean}) [x] (and (vector? x) (= (count x) 3)))\n (defn nblank-str? #?(:cljs {:tag 'boolean}) [x] (and (string? x) (not (str/blank? x))))\n (defn nblank? #?(:cljs {:tag 'boolean}) [x] (not (str/blank? x))))\n\n(defalias truss/error?)\n(declare revery?)\n\n(defn chan?\n \"Returns true iff given a `clojure.core.async` channel.\"\n #?(:cljs {:tag 'boolean})\n [x]\n ;; Avoid actually loading `core.async`\n #?(:cljs (instance? cljs.core.async.impl.channels.ManyToManyChannel x)\n :clj (= \"clojure.core.async.impl.channels.ManyToManyChannel\" (.getName (class x)))))\n\n(comment (chan? (clojure.core.async/chan)))\n\n#?(:clj\n (do ; Forms\n (defn ^:no-doc runtime-form? \"Private, don't use.\" [form] (or (symbol? form) (list-form? form)))\n (defn ^:no-doc const-form? \"Private, don't use.\" [form] (not (runtime-form? form)))\n (defn ^:no-doc const-form \"Private, don't use.\" [form] (when (const-form? form) form))\n (defn ^:no-doc const-forms? \"Private, don't use.\" [& forms] (revery? const-form? forms))\n (defn ^:no-doc const-forms \"Private, don't use.\" [& forms] (mapv const-form forms))))\n\n(defn force-ref \"Like `force` for refs.\" [x] (if (derefable? x) (deref x) x))\n(defn force-var \"Like `force` for vars.\" [x] (if (var? x) (deref x) x))\n\n;; Number types\n;; Since Clojure usu. defaults to larger types (long>integer, double>long),\n;; I'm appropriating the rarely-used smaller type names (int, float) to\n;; refer to types of generic size.\n;;\n;; All fixed-precision:\n;; `int` - Generic size: long or integer, etc.\n;; `float` - Generic size: double or float, etc.\n;; `long` - Specific size: long ; Only used when emphasizing specific size\n;; `double` - Specific size: double ; Only used when emphasizing specific size\n\n(defn finite-num?\n \"Returns true iff given a number (of standard type) that is:\n finite (excl. NaN and infinities).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (and (number? x) (Double/isFinite x)) ; Works with other types, incl. ratio\n :cljs (js/Number.isFinite x)\n #_\n (and\n (not ^boolean (js/isNaN x))\n #_(not (identical? x js/Infinity))\n (not (identical? x js/Number.POSITIVE_INFINITY))\n (not (identical? x js/Number.NEGATIVE_INFINITY)))))\n\n(defn int?\n \"Returns true iff given a number (of standard type) that is:\n a fixed-precision integer.\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj\n (or\n (instance? Long x)\n (instance? Integer x)\n (instance? Short x)\n (instance? Byte x))\n\n :cljs\n (and\n #_(number? x)\n (finite-num? x)\n (== (js/parseFloat x) (js/parseInt x 10)))))\n\n(defn float?\n \"Returns true iff given a number (of standard type) that is:\n a fixed-precision floating-point (incl. NaN and infinities).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (or (instance? Double x) (instance? Float x))\n :cljs\n (and\n (number? x)\n #_(finite?-num? x)\n (not (== (js/parseFloat x) (js/parseInt x 10))))))\n\n(comment (float? Double/NaN))\n\n(do\n (defn nneg? #?(:cljs {:tag 'boolean}) [x] (not (neg? x)))\n (defn zero-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (zero? x)))\n (defn nzero-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (not (zero? x))))\n\n (defn nat-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (not (neg? x))))\n (defn pos-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (pos? x)))\n (defn neg-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (neg? x)))\n\n (defn nat-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (not (neg? x))))\n (defn pos-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (pos? x)))\n (defn neg-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (neg? x)))\n\n (defn nat-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (not (neg? x))))\n (defn pos-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (pos? x)))\n (defn neg-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (neg? x))))\n\n(defn pnum?\n \"Returns true iff given number in unsigned unit proportion interval \u2208\u211d[0,1].\"\n #?(:cljs {:tag 'boolean})\n [x] (and (number? x) (let [n (double x)] (and (>= n 0.0) (<= n 1.0)))))\n\n(defn rnum?\n \"Returns true iff given number in signed unit proportion interval \u2208\u211d[-1,1].\"\n #?(:cljs {:tag 'boolean})\n [x] (and (number? x) (let [n (double x)] (and (>= n -1.0) (<= n +1.0)))))\n\n;;;; Type coercions\n;; There may be parsing edge-case inconsistencies between platforms.\n;; It's NOT currently an objective to try pave over all differences!\n\n(def ^:const max-long #?(:clj Long/MAX_VALUE :cljs js/Number.MAX_SAFE_INTEGER))\n(def ^:const min-long #?(:clj Long/MIN_VALUE :cljs js/Number.MIN_SAFE_INTEGER))\n\n(defn- int-str? [s] (re-matches #\"[+-]?\\d+\" s)) ; Restrictive\n#?(:cljs (defn- parse-js-float [s] (let [x (js/parseFloat s)] (when-not (js/isNaN x) x)))) ; Unrestrictive\n#?(:cljs\n (defn parse-js-int [s]\n (when (int-str? s)\n (let [x (js/parseInt s 10)]\n (when (and\n (not (js/isNaN x)) ; Redundant?\n (<= x max-long)\n (>= x min-long))\n x)))))\n\n(do\n (defn as-?nzero [x] (when (number? x) (if (zero? x) nil x)))\n (defn as-?nblank [x] (when (string? x) (if (str/blank? x) nil x)))\n (defn as-?kw [x] (cond (keyword? x) x (string? x) (keyword x)))\n (defn as-?name [x] (cond (named? x) (name x) (string? x) x))\n (defn as-?qname [x]\n (cond\n (named? x) (let [n (name x)] (if-let [ns (namespace x)] (str ns \"/\" n) n))\n (string? x) x))\n\n (defn as-?nempty-str [x] (when (string? x) (if #?(:clj (.isEmpty ^String x) :cljs (= x \"\")) nil x)))\n (defn as-?nblank-trim [x] (when (string? x) (let [s (str/trim x)] (if #?(:clj (.isEmpty ^String s) :cljs (= s \"\")) nil s))))\n\n (comment (as-?nblank-trim \" foo \"))\n\n (defn as-?int [x]\n (cond\n (number? x) (long x)\n (string? x)\n #?(:cljs (parse-js-int x)\n :clj\n (try\n (Long/parseLong x)\n (catch NumberFormatException _\n (truss/catching (long (Float/parseFloat x))))))))\n\n (defn as-?float [x]\n (cond\n (number? x) (double x)\n (string? x)\n #?(:cljs (parse-js-float x)\n :clj (truss/catching (Double/parseDouble x)))))\n\n (defn as-?nat-int [x] (when-let [n (as-?int x)] (when-not (neg? ^long n) n)))\n (defn as-?pos-int [x] (when-let [n (as-?int x)] (when (pos? ^long n) n)))\n (defn as-?nat-float [x] (when-let [n (as-?float x)] (when-not (neg? ^double n) n)))\n (defn as-?pos-float [x] (when-let [n (as-?float x)] (when (pos? ^double n) n)))\n\n (defn as-?pnum [x] (when-let [^double f (as-?float x)] (if (> f 1.0) 1.0 (if (< f 0.0) 0.0 f))))\n (defn as-?rnum [x] (when-let [^double f (as-?float x)] (if (> f 1.0) 1.0 (if (< f -1.0) -0.0 f))))\n\n (defn as-?bool [x]\n (cond\n (or (true? x) (false? x) (nil? x)) x\n (or (= x 0) (= x \"false\") (= x \"FALSE\") (= x \"0\")) false\n (or (= x 1) (= x \"true\") (= x \"TRUE\") (= x \"1\")) true))\n\n (let [;; Simple regex to test for basic \"x@y.z\" form:\n regex #\"^[^\\s@]+@[^\\s@]+\\.\\S*[^\\.]$\"]\n (defn as-?email\n ([ ?s] (as-?email 320 ?s))\n ([max-len ?s]\n (when-let [s (and ?s (str/trim ?s))]\n (when (<= (count s) ^long max-len)\n (re-find regex s))))))\n\n (declare norm-str)\n (defn as-?nemail\n ([ ?s] (when-let [email (as-?email ?s)] (str/lower-case (norm-str email))))\n ([max-len ?s] (when-let [email (as-?email max-len ?s)] (str/lower-case (norm-str email)))))\n\n (comment\n (do (as-?nemail 11 \"FOO@bar.com\"))\n (mapv as-?nemail\n [\"foo\" \"foo@\" \"foo@bar\" \"Foo@BAR.com\"\n \"foo@@bar.com\" \"foo@bar.com.\" \"foo.baz@bar.com\"])))\n\n(defn ^:no-doc -as-throw [kind x]\n (truss/ex-info! (str \"[encore/as-\" (name kind) \"] failed against arg: \" (pr-str x))\n {:pred-kind kind\n :arg (typed-val x)}))\n\n(let [-as-throw -as-throw]\n (defn as-nblank {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nblank x) (-as-throw :nblank x)))\n (defn as-nblank-trim {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nblank-trim x) (-as-throw :nblank-trim x)))\n (defn as-nempty-str {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nempty-str x) (-as-throw :nempty-str x)))\n (defn as-name {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?name x) (-as-throw :name x)))\n (defn as-qname {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?qname x) (-as-throw :qname x)))\n (defn as-nzero [x] (or (as-?nzero x) (-as-throw :nzero x)))\n (defn as-kw [x] (or (as-?kw x) (-as-throw :kw x)))\n\n (defn as-email\n {:tag #?(:clj 'String :cljs 'string)}\n ([ x] (or (as-?email x) (-as-throw :email x)))\n ([n x] (or (as-?email n x) (-as-throw :email x))))\n\n (defn as-nemail\n {:tag #?(:clj 'String :cljs 'string)}\n ([ x] (or (as-?nemail x) (-as-throw :nemail x)))\n ([n x] (or (as-?nemail n x) (-as-throw :nemail x))))\n\n #?(:clj (defn as-int ^long [x] (or (as-?int x) (-as-throw :int x)))\n :cljs (defn ^number as-int [x] (or (as-?int x) (-as-throw :int x))))\n #?(:clj (defn as-nat-int ^long [x] (or (as-?nat-int x) (-as-throw :nat-int x)))\n :cljs (defn ^number as-nat-int [x] (or (as-?nat-int x) (-as-throw :nat-int x))))\n #?(:clj (defn as-pos-int ^long [x] (or (as-?pos-int x) (-as-throw :pos-int x)))\n :cljs (defn ^number as-pos-int [x] (or (as-?pos-int x) (-as-throw :pos-int x))))\n\n #?(:clj (defn as-float ^double [x] (or (as-?float x) (-as-throw :float x)))\n :cljs (defn ^number as-float [x] (or (as-?float x) (-as-throw :float x))))\n #?(:clj (defn as-nat-float ^double [x] (or (as-?nat-float x) (-as-throw :nat-float x)))\n :cljs (defn ^number as-nat-float [x] (or (as-?nat-float x) (-as-throw :nat-float x))))\n #?(:clj (defn as-pos-float ^double [x] (or (as-?pos-float x) (-as-throw :pos-float x)))\n :cljs (defn ^number as-pos-float [x] (or (as-?pos-float x) (-as-throw :pos-float x))))\n\n #?(:clj (defn as-pnum ^double [x] (or (as-?pnum x) (-as-throw :pnum x))) ; With auto coerce+clamp\n :cljs (defn ^number as-pnum [x] (or (as-?pnum x) (-as-throw :pnum x)))) ; ''\n #?(:clj (defn as-rnum ^double [x] (or (as-?rnum x) (-as-throw :rnum x))) ; ''\n :cljs (defn ^number as-rnum [x] (or (as-?rnum x) (-as-throw :rnum x)))) ; ''\n\n #?(:clj (defn as-pnum! ^double [x] (if (pnum? x) (double x) (-as-throw :pnum! x))) ; Without auto coerce+clamp\n :cljs (defn ^number as-pnum! [x] (if (pnum? x) (double x) (-as-throw :pnum! x)))) ; ''\n #?(:clj (defn as-rnum! ^double [x] (if (rnum? x) (double x) (-as-throw :rnum! x))) ; ''\n :cljs (defn ^number as-rnum! [x] (if (rnum? x) (double x) (-as-throw :rnum! x)))) ; ''\n\n (defn #?(:clj as-bool :cljs ^boolean as-bool) [x]\n (let [?b (as-?bool x)] (if-not (nil? ?b) ?b (-as-throw :bool x)))))\n\n;;;; Reductions\n\n(defn convey-reduced [x] (if (reduced? x) (reduced x) x)) ; Double-wrap\n(defn preserve-reduced\n \"Public version of `core/preserving-reduced`.\"\n [rf]\n (fn [acc in]\n (let [result (rf acc in)]\n (if (reduced? result)\n (reduced result)\n (do result)))))\n\n(defn reduce-kvs\n \"Like `reduce-kv` but takes a flat sequence of kv pairs.\"\n [rf init kvs]\n (transduce (partition-all 2)\n (completing (fn [acc [k v]] (rf acc k v))) init kvs))\n\n(defn reduce-n\n \"No longer useful with Clojure 1.7+, just use (reduce f init (range ...)).\"\n ([rf init end ] (reduce rf init (range end)))\n ([rf init start end ] (reduce rf init (range start end)))\n ([rf init start end step] (reduce rf init (range start end step))))\n\n(comment (reduce-n conj [] 100 10 -1))\n\n(declare counter)\n(defn reduce-indexed\n \"Like `reduce` but takes (rf [acc idx in]) with idx as in `map-indexed`.\n As `reduce-kv` against vector coll, but works on any seqable coll type.\"\n [rf init coll]\n (let [c (counter)]\n (reduce (fn [acc in] (rf acc (c) in)) init coll)))\n\n(comment\n (reduce-indexed (fn [acc idx in] (assoc acc idx in)) {} [:a :b :c])\n (reduce-kv (fn [acc idx in] (assoc acc idx in)) {} [:a :b :c]))\n\n#?(:cljs\n (defn reduce-obj \"Like `reduce-kv` but for JavaScript objects.\"\n [f init o] (reduce (fn [acc k] (f acc k (gobj/get o k nil))) init (js-keys o))))\n\n(do\n (defn run! [proc coll] (reduce #(proc %2) nil coll) nil)\n (defn run-kv! [proc m] (reduce-kv #(proc %2 %3) nil m) nil)\n (defn run-kvs! [proc kvs] (reduce-kvs #(proc %2 %3) nil kvs) nil)\n #?(:cljs (defn run-obj! [proc obj] (reduce-obj #(proc %2 %3) nil obj) nil)))\n\n(let [rf (fn [pred] (fn [_acc in] (when-let [p (pred in)] (reduced p))))]\n (defn rsome\n \"Returns nil, or first truthy (pred x) for x in coll.\n Like `core/some` but faster and supports transducers.\"\n ([ pred coll] (reduce (rf pred) nil coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc k v] (when-let [p (pred k v)] (reduced p))))\n tf (fn [pred] (fn [_acc [k v]] (when-let [p (pred k v)] (reduced p))))]\n (defn rsome-kv\n \"Returns nil, or first truthy (pred k v) for kv in associative coll.\n Like `core/some` but faster and takes kvs.\"\n ([ pred coll] (reduce-kv (rf pred) nil coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc in] (when (pred in) (reduced in))))]\n (defn rfirst\n \"Returns nil, or first x in coll with truthy (pred x).\"\n ([ pred coll] (reduce (rf pred) nil coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) nil coll))))\n\n(let [entry\n #?(:clj (fn [k v] (clojure.lang.MapEntry/create k v))\n :cljs (fn [k v] (MapEntry. k v nil)))\n\n rf (fn [pred] (fn [_acc k v] (when (pred k v) (reduced (entry k v)))))\n tf (fn [pred] (fn [_acc [k v]] (when (pred k v) (reduced (entry k v)))))]\n\n (defn rfirst-kv\n \"Returns nil, or first [k v] entry in associative coll with truthy (pred k v).\"\n ([ pred coll] (reduce-kv (rf pred) nil coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc in] (if (pred in) true (reduced false))))]\n (defn revery?\n \"Returns true iff (pred x) is truthy for every x in coll.\n Like `core/every?` but faster and supports transducers.\"\n #?(:cljs {:tag 'boolean})\n ([ pred coll] (reduce (rf pred) true coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) true coll))))\n\n(let [rf (fn [pred] (fn [_acc k v] (if (pred k v) true (reduced false))))\n tf (fn [pred] (fn [_acc [k v]] (if (pred k v) true (reduced false))))]\n (defn revery-kv?\n \"Returns true iff (pred k v) is truthy for every kv in associative coll.\"\n #?(:cljs {:tag 'boolean})\n ([ pred coll] (reduce-kv (rf pred) true coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) true coll))))\n\n(comment\n (= (rfirst-kv (fn [k v] (number? v)) {:a :b :c 2}) [:c 2])\n\n (qb 1e4\n (some #(when (string? %) %) [:a :b :c :d \"boo\"])\n (rsome #(when (string? %) %) [:a :b :c :d \"boo\"])\n (rfirst string? [:a :b :c :d \"boo\"])))\n\n#?(:clj\n (defn reduce-iterator!\n \"Reduces given `java.util.Iterator`, mutating it. Note that most colls\n providing iterators implement `java.lang.Iterable`, so support `seq` directly.\"\n [rf init iterator]\n (if-let [^java.util.Iterator it iterator]\n (loop [acc init]\n (if (.hasNext it)\n (let [acc (rf acc (.next it))]\n (if (reduced? acc)\n (deref acc)\n (recur acc)))\n acc))\n init)))\n\n(defn reduce-zip\n \"Reduces given sequential xs and ys as pairs (e.g. key-val pairs).\n Calls (rf acc x y) for each sequential pair.\n\n Useful, among other things, as a more flexible version of `zipmap`.\"\n ([rf init xs ys ] (reduce-zip rf init xs ys ::skip))\n ([rf init xs ys not-found] ; Experimental, undocumented\n (if (and\n (vector? xs)\n (vector? ys))\n\n (let [n\n (if (identical-kw? not-found ::skip)\n (min (count xs) (count ys))\n (max (count xs) (count ys)))]\n\n (reduce-n\n (fn [acc idx]\n (rf acc\n (get xs idx not-found)\n (get ys idx not-found)))\n init n))\n\n (let [not-found? (not (identical-kw? not-found ::skip))]\n (loop [acc init\n xs (seq xs)\n ys (seq ys)]\n\n (if (if not-found? (or xs ys) (and xs ys))\n\n (let [result\n (rf acc\n (first (or xs [not-found]))\n (first (or ys [not-found])))]\n\n (if (reduced? result)\n (deref result)\n (recur result\n (next xs)\n (next ys))))\n acc))))))\n\n(do\n (deftype ^:no-doc Tup2 [x y ])\n (deftype ^:no-doc Tup3 [x y z]))\n\n(defn reduce-multi\n \"Like `reduce` but supports separate simultaneous accumulators\n as a micro-optimization when reducing a large collection multiple\n times.\"\n ;; Faster than using volatiles\n ([rf init coll] (reduce rf init coll))\n ([rf1 init1 rf2 init2 coll]\n (let [^Tup2 tuple\n (reduce\n (fn [^Tup2 tuple in]\n (let [x (.-x tuple)\n y (.-y tuple)\n rx? (reduced? x)\n ry? (reduced? y)]\n\n (if (and rx? ry?)\n (reduced tuple)\n (let [x (if rx? x (rf1 x in))\n y (if ry? y (rf2 y in))]\n (Tup2. x y)))))\n (Tup2. init1 init2)\n coll)]\n\n [(unreduced (.-x tuple))\n (unreduced (.-y tuple))]))\n\n ([rf1 init1 rf2 init2 rf3 init3 coll]\n (let [^Tup3 tuple\n (reduce\n (fn [^Tup3 tuple in]\n (let [x (.-x tuple)\n y (.-y tuple)\n z (.-z tuple)\n rx? (reduced? x)\n ry? (reduced? y)\n rz? (reduced? z)]\n\n (if (and rx? ry? rz?)\n (reduced tuple)\n (let [x (if rx? x (rf1 x in))\n y (if ry? y (rf2 y in))\n z (if rz? z (rf3 z in))]\n (Tup3. x y z)))))\n (Tup3. init1 init2 init3)\n coll)]\n\n [(unreduced (.-x tuple))\n (unreduced (.-y tuple))\n (unreduced (.-z tuple))])))\n\n(defn reduce-interleave-all\n \"Reduces sequence of elements interleaved from given `colls`.\n (reduce-interleave-all conj [] [[:a :b] [1 2 3]]) => [:a 1 :b 2 3]\"\n [rf init colls]\n (if (empty? colls)\n init\n (loop [acc init, colls colls]\n (let [^Tup2 tuple\n (reduce\n (fn [^Tup2 tuple in]\n (if (empty? in)\n tuple\n (let [[in1 & next-in] in\n acc (.-x tuple)\n ncs (.-y tuple)\n res (rf acc in1)]\n\n (if (reduced? res)\n (reduced (Tup2. @res nil))\n (do (Tup2. res\n (if next-in\n (conj (or ncs []) next-in)\n (do ncs))))))))\n (Tup2. acc nil)\n colls)\n\n acc (.-x tuple)\n next-colls (.-y tuple)]\n\n (if next-colls\n (recur acc next-colls)\n (do acc))))))\n\n(let [map-like? #(or (map? %) (record? %))]\n (defn ^:no-doc postwalk\n \"Private, don't use.\n Simpler, faster `clojure.walk/postwalk`.\"\n ([ x f] (postwalk false x f))\n ([preserve-seqs? x f]\n (let [ps (if preserve-seqs? seq identity)\n pw #(postwalk preserve-seqs? %1 %2)]\n (cond\n (map-like? x) (f (reduce-kv (fn [acc k v] (assoc acc (pw k f) (pw v f))) {} x))\n (seq? x) (f (ps (reduce (fn [acc in] (conj acc (pw in f))) [] x)))\n (coll? x) (f (reduce (fn [acc in] (conj acc (pw in f))) (empty x) x))\n :else (f x))))))\n\n(comment\n (def in {:a [1 2 3 #{1 2 3 {:a '(1 2 3)}}] 1 \"1\" 2 nil 3 {1 \"1\" 2 \"2\" 3 \"3\"}})\n (def pwf #(if (int? %) (inc %) %))\n (qb 1e5 ; [141.88 390.17]\n (postwalk in pwf)\n (clojure.walk/postwalk pwf in)))\n\n;;;; Sub fns\n\n(defn- subfn [context by-idx-fn]\n (fn subfn*\n ([c start-idx]\n (when c\n (let [max-idx (count c)\n start-idx (long start-idx)]\n (when (< start-idx max-idx)\n (by-idx-fn c (max start-idx 0) max-idx)))))\n\n ([c start-idx end-idx]\n (when c\n (let [start-idx (max (long start-idx) 0)\n end-idx (min (long end-idx) (count c))]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx)))))\n\n ([c kind start end]\n (when c\n (let [max-end (count c)\n end (if (identical-kw? end :max) max-end end)]\n\n (case kind\n :by-idx (subfn* c start end)\n :by-len\n (cond\n :let [len (long end)]\n (<= len 0) nil\n\n :let [start-idx (long start)]\n (< start-idx 0) ; Index from right\n (let [start-idx (max (+ start-idx max-end) 0)\n end-idx (min (+ start-idx len) max-end)]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx)))\n\n :else\n (let [end-idx (min (+ start-idx len) max-end)]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx))))\n\n (truss/unexpected-arg! kind\n {:param 'kind\n :context context\n :expected #{:by-idx :by-len}})))))))\n\n(def* subvec\n \"Returns a non-empty sub-vector, or nil.\n Like `core/subvec` but:\n - Doesn't throw when out-of-bounds (clips to bounds).\n - Returns nil rather than an empty vector.\n - When given `:by-len` kind (4-arity case):\n - `start` may be -ive (=> index from right of vector).\n - `end` is desired vector length, or `:max`.\"\n {:arglists '([v start-idx] [v start-idx end-idx] [v :by-len start end])}\n (subfn `subvec core/subvec))\n\n(def* substr\n \"Returns a non-empty sub-string, or nil.\n Like `subs` but:\n - Doesn't throw when out-of-bounds (clips to bounds).\n - Returns nil rather than an empty string.\n - When given `:by-len` kind (4-arity case):\n - `start` may be -ive (=> index from right of string).\n - `end` is desired string length, or `:max`.\"\n {:arglists '([s start-idx] [s start-idx end-idx] [s :by-len start end])}\n (subfn `substr (fn [s n1 n2] (.substring #?(:clj ^String s :cljs s) n1 n2))))\n\n(comment\n (qb 1e6 (subvec [:a :b :c] 1) (core/subvec [:a :b :c] 1)) ; [53.32 51.11]\n (qb 1e6 (substr \"abc\" 1) (subs \"abc\" 1)) ; [55.75 49.43]\n )\n\n;;;; Collections\n\n(defn map-entry\n \"Returns a `MapEntry` with given key and value.\"\n #?(:clj {:inline (fn [k v] `(clojure.lang.MapEntry/create ~k ~v))})\n [k v]\n #?(:clj (clojure.lang.MapEntry/create k v)\n :cljs (MapEntry. k v nil)))\n\n(defn queue?\n \"Returns true iff given a `PersistentQueue`.\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? clojure.lang.PersistentQueue x)\n :cljs (instance? cljs.core.PersistentQueue x)))\n\n(defn queue\n \"Returns a new `PersistentQueue`.\"\n ([coll] (into (queue) coll))\n ([ ]\n #?(:clj clojure.lang.PersistentQueue/EMPTY\n :cljs cljs.core.PersistentQueue.EMPTY)))\n\n(defn queue*\n \"Returns a new `PersistentQueue` given items.\"\n [& items] (queue items))\n\n(defn ensure-vec [x] (if (vector? x) x (vec x)))\n(defn ensure-set [x] (if (set? x) x (set x)))\n\n#?(:cljs\n (defn oset \"Like `assoc` for JS objects.\"\n [o k v] (gobj/set (if (nil? o) (js-obj) o) (name k) v)))\n\n#?(:cljs\n (let [sentinel (js-obj)]\n (defn oset-in\n \"Experimental, subject to change without notice.\n Like `assoc-in` for JS objects.\"\n [o ks v]\n (let [o (if (nil? o) (js-obj) o)]\n (if-let [ks (seq ks)]\n (loop [o-next o, ks-next ks]\n (let [k1 (name (first ks-next))\n o-next\n (let [o-next* (gobj/get o-next k1 sentinel)]\n (if (identical? o-next* sentinel)\n (let [new-obj (js-obj)]\n (do\n (gobj/set o-next k1 new-obj)\n (do new-obj)))\n o-next*))]\n\n (if-let [ks-next (next ks-next)]\n (recur o-next ks-next)\n (do (gobj/set o-next k1 v) o))))\n ;; Resolve nil => [nil] ambiguity in `assoc-in`\n o)))))\n\n#?(:cljs\n (defn oget \"Like `get` for JS objects.\"\n ([ k ] (when-let [o js-?window] (gobj/get o (name k))))\n ([o k ] (when o (gobj/get o (name k) nil)))\n ([o k not-found] (if o (gobj/get o (name k) not-found) not-found))))\n\n#?(:cljs\n (let [sentinel (js-obj)]\n ;; Could also use `gobg/getValueByKeys`\n (defn oget-in \"Like `get-in` for JS objects.\"\n ([ ks ] (oget-in js-?window ks nil))\n ([o ks ] (oget-in o ks nil))\n ([o ks not-found]\n (if o\n (loop [o o, ks (seq ks)]\n (if ks\n (let [o (gobj/get o (name (first ks)) sentinel)]\n (if (identical? o sentinel)\n not-found\n (recur o (next ks))))\n o))\n not-found)))))\n\n(defn get1\n \"Like `get` but returns val for first key that exists in map.\n Useful for key aliases or fallbacks. See also `get*`.\"\n ([m k ] (get m k))\n ([m k not-found] (get m k not-found))\n ([m k1 k2 not-found] (if-let [e (and m (or (find m k1) (find m k2))) ] (val e) not-found))\n ([m k1 k2 k3 not-found] (if-let [e (and m (or (find m k1) (find m k2) (find m k3)))] (val e) not-found)))\n\n#?(:clj\n (defmacro get*\n \"Macro version of `get` that:\n\n 1. Avoids unnecessary evaluation of `not-found`.\n Useful when `not-found` is expensive or contains side-effects.\n\n 2. Supports multiple prioritized keys (k1, k2, etc.). Returns val for\n first key that exists in map. Useful for key aliases or fallbacks.\n\n Equivalent to:\n (cond\n (contains? m k1) (get m k1)\n (contains? m k2) (get m k2)\n ...\n :else not-found)\"\n ([m k ] `(get ~m ~k))\n ([m k not-found] `(if-let [e# (find ~m ~k) ] (val e#) ~not-found))\n ([m k1 k2 not-found] `(let [m# ~m] (if-let [e# (and m# (or (find m# ~k1) (find m# ~k2))) ] (val e#) ~not-found)))\n ([m k1 k2 k3 not-found] `(let [m# ~m] (if-let [e# (and m# (or (find m# ~k1) (find m# ~k2) (find m# ~k3)))] (val e#) ~not-found)))))\n\n#?(:clj\n (defmacro get-in*\n \"Private, don't use this. Micro-optimized macro version of `core/get-in`.\n Avoids unnecessary evaluation of `not-found`.\"\n ([m ks]\n (truss/have? const-form? ks)\n (if (empty? ks)\n m\n (let [[k1 & kn] ks\n gs (gensym)]\n (if kn\n `(let [~gs (get ~m ~k1)] (if ~gs (get-in* ~gs ~kn) nil))\n `(get ~m ~k1)))))\n\n ([m ks not-found]\n (truss/have? const-form? ks)\n (if (empty? ks)\n m\n (let [[k1 & kn] ks\n gs (gensym)]\n (if kn\n `(let [~gs (get ~m ~k1 ::nx)] (if (identical-kw? ~gs ::nx) ~not-found (get-in* ~gs ~kn ~not-found)))\n `(let [~gs (get ~m ~k1 ::nx)] (if (identical-kw? ~gs ::nx) ~not-found ~gs))))))))\n\n(do\n (defn conj-some \"Conjoins each non-nil value.\"\n ([ ] [])\n ([coll ] coll)\n ([coll x ] (if (nil? x) coll (conj coll x)))\n ([coll x & more] (reduce conj-some (conj-some coll x) more)))\n\n (defn conj-when \"Conjoins each truthy value.\"\n ([ ] [])\n ([coll ] coll)\n ([coll x ] (if x (conj coll x) coll))\n ([coll x & more] (reduce conj-when (conj-when coll x) more))))\n\n(comment (conj-some [] :a :b nil :c :d nil false :e))\n\n(defn assoc-some\n \"Assocs each kv to given ?map iff its value is not nil.\"\n ([m k v ] (if-not (nil? v) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-some m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-some (assoc-some m k v) kvs)))\n\n(defn assoc-when\n \"Assocs each kv to given ?map iff its val is truthy.\"\n ([m k v ] (if v (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-when m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-when (assoc-when m k v) kvs)))\n\n(defn assoc-nx\n \"Assocs each kv to given ?map iff its key doesn't already exist.\"\n ([m k v ] (if-not (contains? m k) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-nx m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-nx (assoc-nx m k v) kvs)))\n\n(defn reassoc-some\n \"Assocs each kv to given ?map if its value is nil, otherwise dissocs it.\"\n ([m k v ] (if-not (nil? v) (assoc m k v) (dissoc m k)))\n ([m m-kvs] (reduce-kv reassoc-some m m-kvs))\n ([m k v & kvs] (reduce-kvs reassoc-some (reassoc-some m k v) kvs)))\n\n(defn reassoc-when\n \"Assocs each kv to given ?map if its value is truthy, otherwise dissocs it.\"\n ([m k v ] (if v (assoc m k v) (dissoc m k)))\n ([m m-kvs] (reduce-kv reassoc-when m m-kvs))\n ([m k v & kvs] (reduce-kvs reassoc-when (reassoc-when m k v) kvs)))\n\n(comment\n (assoc-some {:a :A} {:a false :b :B}) ; => {:a false, :b :B}\n (assoc-when {:a :A} {:a false :b :B}) ; => {:a :A, :b :B}\n (assoc-nx {:a :A} {:a false :b :B}) ; => {:a :A, :b :B}\n (reassoc-some {:a :A} {:a false :b :B}) ; => {:a false, :b :B}\n (reassoc-when {:a :A} {:a nil :b :B}) ; => {:b :B}\n )\n\n(defn vnext [v] (when (> (count v) 1) (core/subvec v 1)))\n(defn vrest [v] (if (> (count v) 1) (core/subvec v 1) []))\n(defn vsplit-last [v] (let [c (count v)] (when (> c 0) [(when (> c 1) (pop v)) (peek v)])))\n(defn vsplit-first [v] (let [c (count v)] (when (> c 0) (let [[v1] v] [v1 (when (> c 1) (core/subvec v 1))]))))\n(defn not-empty-coll [x] (when x (if (coll? x) (not-empty x) x)))\n\n(comment\n (vsplit-first [:a :b :c])\n (vsplit-last [:a :b :c]))\n\n(defn- fsplit-last\n \"Faster (f (vec (butlast xs)) (last x)).\"\n [xs f]\n (if (vector? xs)\n (let [[vn vl] (vsplit-last xs)] (f vn vl))\n (loop [butlast [] xs xs]\n (let [[x1 & xn] xs]\n (if xn\n (recur (conj butlast x1) xn)\n (f butlast x1))))))\n\n(comment (let [v [:a :b :c :d]] (qb 1e6 (fsplit-last v vector) [(butlast v) (last v)])))\n\n(defn takev [n coll] (if (vector? coll) (or (subvec coll :by-len 0 n) []) (into [] (take n) coll)))\n\n(defn distinct-elements?\n #?(:cljs {:tag 'boolean})\n [x] (or (set? x) (= (count x) (count (ensure-set x)))))\n\n(def seq-kvs \"(seq-kvs {:a :A}) => (:a :A).\" (partial reduce concat))\n(defn mapply \"Like `apply` but calls `seq-kvs` on final arg.\"\n [f & args] (apply f (fsplit-last args (fn [xs lx] (concat xs (seq-kvs lx))))))\n\n(comment [(seq-kvs {:a :A :b :B}) (mapply str 1 2 3 {:a :A})])\n\n(defn into-all \"Like `into` but supports multiple \\\"from\\\"s.\"\n ([to from ] (into to from))\n ([to from & more]\n (persistent!\n (reduce (fn [acc in] (reduce conj! acc in))\n (transient to)\n (cons from more)))))\n\n(def ^:private ^:const min-transient-card 11) ; Account for transient overhead\n#?(:clj\n (defmacro ^:no-doc use-transient?\n \"Private, don't use. Micro-optimization.\"\n ([n coll] `(if (>= ~n ~min-transient-card) (editable? ~coll) false))\n ([ coll] `(if (editable? ~coll) (>= (count ~coll) ~min-transient-card) false))))\n\n(defn repeatedly-into\n \"Like `repeatedly` but faster and `conj`s items into given collection.\"\n [coll ^long n f]\n (if (use-transient? n coll)\n (persistent! (reduce-n (fn [acc _] (conj! acc (f))) (transient coll) n))\n (do (reduce-n (fn [acc _] (conj acc (f))) coll n))))\n\n(comment (repeatedly-into [] 100 (partial rand-nth [1 2 3 4 5 6])))\n\n(defn update! [m k f] (assoc! m k (f (get m k))))\n(defn into!\n \"Like `into` but assumes `to!` is a transient, and doesn't call\n `persist!` when done. Useful as a performance optimization in some cases.\"\n #_([ ] [])\n ([to! ] to!)\n ([to! from] (reduce conj! to! from))\n ([to! xform from] (transduce xform conj! to! from)))\n\n(defn xdistinct\n \"Returns a stateful transducer like (core/distinct) that supports an optional\n key function. Retains only items with distinct (keyfn ).\"\n ([ ] (distinct)) ; core now has a distinct transducer\n ([keyfn]\n (fn [rf]\n (let [seen_ (volatile! (transient #{}))]\n (fn\n ([ ] (rf))\n ([acc ] (rf acc))\n ([acc in]\n (let [k (keyfn in)]\n (if (contains? @seen_ k)\n acc\n (do\n (vswap! seen_ conj! k)\n (rf acc in))))))))))\n\n(comment (into [] (xdistinct identity) [1 2 3 1 4 5 2 6 7 1]))\n\n(defn invert-map\n \"Returns given ?map with keys and vals inverted, dropping non-unique vals!\"\n [m]\n (when m\n (if (> (count m) min-transient-card)\n (persistent! (reduce-kv (fn [m k v] (assoc! m v k)) (transient {}) m))\n (do (reduce-kv (fn [m k v] (assoc m v k)) {} m)))))\n\n(defn invert-map!\n \"Like `invert-map` but throws on non-unique vals.\"\n [m]\n (when-let [im (invert-map m)]\n (if (= (count im) (count m)) ; 1-to-1\n im\n (truss/ex-info! \"[encore/invert-map!] Non-unique map vals\"\n {:given (typed-val m)}))))\n\n(defn map-keys\n \"Returns given ?map with (key-fn ) keys.\"\n [key-fn m]\n (when m\n (if (> (count m) min-transient-card)\n (persistent! (reduce-kv (fn [m k v] (assoc! m (key-fn k) v)) (transient {}) m))\n (do (reduce-kv (fn [m k v] (assoc m (key-fn k) v)) {} m)))))\n\n(defn map-vals\n \"Returns given ?map with (val-fn ) vals.\"\n [val-fn m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k v] (assoc! m k (val-fn v))) (transient m) m))\n (do (reduce-kv (fn [m k v] (assoc m k (val-fn v))) m m)))))\n\n(defn filter-keys\n \"Returns given ?map, retaining only keys for which (key-pred ) is truthy.\"\n [key-pred m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k _] (if (key-pred k) m (dissoc! m k))) (transient m) m))\n (do (reduce-kv (fn [m k _] (if (key-pred k) m (dissoc m k))) m m)))))\n\n(defn filter-vals\n \"Returns given ?map, retaining only keys for which (val-pred ) is truthy.\"\n [val-pred m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k v] (if (val-pred v) m (dissoc! m k))) (transient m) m))\n (do (reduce-kv (fn [m k v] (if (val-pred v) m (dissoc m k))) m m)))))\n\n(defn remove-keys \"Returns given ?map, removing keys for which (key-pred ) is truthy.\" [key-pred m] (filter-keys (complement key-pred) m))\n(defn remove-vals \"Returns given ?map, removing keys for which (val-pred ) is truthy.\" [val-pred m] (filter-vals (complement val-pred) m))\n(defn rename-keys\n \"Returns a map like the one given, replacing keys using\n given { } replacements. O(min(n_replacements, n_m)).\"\n [replacements m]\n (cond\n (empty? m) m ; Preserve metadata\n (empty? replacements) m ; ''\n\n (> (count m) (count replacements))\n (persistent!\n (reduce-kv\n (fn [acc old-k new-k]\n (if-let [e (find m old-k)]\n (assoc! (dissoc! acc old-k) new-k (val e))\n (do acc)))\n (transient m)\n replacements))\n\n :else\n (persistent!\n (reduce-kv\n (fn [acc old-k v]\n (if-let [e (find replacements old-k)]\n (assoc! (dissoc! acc old-k) (val e) v)\n (do acc)))\n (transient m)\n (do m)))))\n\n(comment (rename-keys {:a :X} {:a :A :b :B :c :C}))\n\n(defn keys-by\n \"Returns {(f x) x} ?map for xs in `coll`.\"\n [f coll]\n (when-not (empty? coll)\n (persistent!\n (reduce (fn [acc x] (assoc! acc (f x) x))\n (transient {}) coll))))\n\n(comment (keys-by :foo [{:foo 1} {:foo 2}]))\n\n(defn ks-nnil? #?(:cljs {:tag 'boolean}) [ks m] (revery? #(core/some? (get m %)) ks))\n(defn ks= #?(:cljs {:tag 'boolean}) [ks m] (and (== (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks>= #?(:cljs {:tag 'boolean}) [ks m] (and (>= (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks<= #?(:cljs {:tag 'boolean}) [ks m]\n (let [counted-ks (if (counted? ks) ks (set ks))]\n (and\n (<= (count m) (count counted-ks))\n (let [ks-set (ensure-set counted-ks)]\n (reduce-kv (fn [_ k v] (if (contains? ks-set k) true (reduced false))) true m)))))\n\n(declare dissoc-in)\n(defn update-in\n \"Like `core/update-in` but:.\n - Empty ks will return (f m), not act like [nil] ks.\n - Adds support for `not-found`.\n - Adds support for special return vals: `:update/dissoc`, `:update/abort`.\"\n ([m ks f] (update-in m ks nil f))\n ([m ks not-found f]\n (if (empty? ks)\n (f m) ; m would also be a sensible choice, but (f m) is more useful\n (let [old (get-in m ks not-found)\n new (f old)]\n (case new\n (:update/abort :swap/abort) m\n (:update/dissoc :swap/dissoc)\n (fsplit-last ks\n (fn [ks lk]\n (update-in m ks nil\n (fn [v]\n (if v ; Assume associative\n (dissoc v lk)\n :update/abort)))))\n\n (assoc-in m ks new))))))\n\n(defn contains-in?\n #?(:cljs {:tag 'boolean})\n ([coll ks k] (contains? (get-in coll ks) k))\n ([coll ks ]\n (if (empty? ks)\n false\n (fsplit-last ks (fn [ks lk] (contains-in? coll ks lk))))))\n\n(defn dissoc-in\n ([m ks dissoc-k ] (update-in m ks nil (fn [m] (if m (dissoc m dissoc-k) :update/abort))))\n ([m ks dissoc-k & more]\n (update-in m ks nil\n (fn [m]\n (if m\n (reduce dissoc (dissoc m dissoc-k) more)\n :update/abort))))\n\n ([m ks]\n (if (empty? m)\n (do m)\n (fsplit-last ks (fn [ks lk] (dissoc-in m ks lk))))))\n\n(defn ^:no-doc node-paths\n \"Private, don't use.\"\n ([ m ] (node-paths associative? m nil))\n ([node-pred m ] (node-paths node-pred m nil))\n ([node-pred m basis]\n (let [basis (or basis [])]\n (persistent!\n (reduce-kv\n (fn [acc k v]\n (if-not (node-pred v)\n (conj! acc (conj basis k v))\n (let [paths-from-basis (node-paths node-pred v (conj basis k))]\n (reduce (fn [acc in] (conj! acc in)) acc paths-from-basis))))\n (transient [])\n m)))))\n\n(comment\n (node-paths associative? {:a1 :A1 :a2 {:b1 :B1 :b2 {:c1 :C1 :c2 :C2}}} [:h])\n (node-paths [:a1 :a2 [:b1 :b2 [:c1 :c2] :b3] :a3 :a4]))\n\n(defn interleave-all\n \"Like `interleave` but includes all items (i.e. stops when the longest\n rather than shortest coll has been consumed).\"\n ([ ] '())\n ([c1 ] (lazy-seq c1))\n ([c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (cond\n (and s1 s2)\n (cons (first s1) (cons (first s2)\n (interleave-all (rest s1) (rest s2))))\n s1 s1\n s2 s2))))\n\n ([c1 c2 & colls]\n (lazy-seq\n (let [ss (filter identity (map seq (conj colls c2 c1)))]\n (concat (map first ss)\n (apply interleave-all (map rest ss)))))))\n\n(comment (interleave-all [:a1 :a2 :a3] [:b1 :b2] [:c1 :c2 :c3 :c4]))\n\n(defn vinterleave-all\n \"Like `interleave`, but:\n - Returns a vector rather than lazy seq (=> greedy).\n - Includes all items (i.e. stops when the longest rather than\n shortest coll has been consumed).\n\n Single-arity version takes a coll of colls.\"\n ([colls] (if (empty? colls) [] (persistent! (reduce-interleave-all conj! (transient []) colls))))\n ([c1 c2] ; Optimized common case\n (loop [v (transient []) s1 (seq c1) s2 (seq c2)]\n (cond\n (and s1 s2)\n (recur (conj! (conj! v (first s1)) (first s2)) (next s1) (next s2))\n s1 (persistent! (reduce conj! v s1))\n s2 (persistent! (reduce conj! v s2))\n :else (persistent! v))))\n\n ([c1 c2 c3 ] (vinterleave-all [c1 c2 c3]))\n ([c1 c2 c3 & colls] (vinterleave-all (into [c1 c2 c3] colls))))\n\n(comment\n (qb 1e5\n (vec (interleave-all [:a :b :c :d] [:a :b :c :d :e]))\n (vinterleave-all [:a :b :c :d] [:a :b :c :d :e])))\n\n(defn- p! [m] (if (transient? m) (persistent! m) m))\n\n(let [nx (new-object)\n min-transient-card 64 ; Elevated transient overhead here\n dissoc? (fn [v] (case v (:merge/dissoc :swap/dissoc) true false))\n dissoc* (fn [m k] (if (transient? m) (dissoc! m k) (dissoc m k)))]\n\n (defn ^:no-doc merge-with*\n \"Private, don't use. Flexible low-level merge util.\n Optimized for reasonable worst-case performance.\"\n ([nest? f maps] (reduce (partial merge-with* nest? f) nil maps))\n ([nest? f m1 m2]\n (cond\n :let [n2 (count m2)]\n (zero? n2) (or m1 (when (can-meta? m2) (with-meta m2 nil)))\n\n :if-let [e (find m2 :merge/replace?)] ; Undocumented\n (let [m2 (dissoc* m2 :merge/replace?)]\n (if (val e)\n (do m2)\n (merge-with* nest? f m1 m2)))\n\n :let [n1 (count m1)]\n\n (>= n1 n2) ; |m1| >= |m2|: use m1 as base, add everything from m2\n (let [m1* (if (transient? m1) m1 (if (>= n1 min-transient-card) (transient m1) m1))\n assoc* (if (transient? m1*) assoc! assoc)]\n\n (reduce-kv\n (fn [m1* k2 v2] ; m2 kvs into m1\n (let [v1 (get m1 k2 nx)]\n (cond\n (and nest? (map? v1) (map? v2)) (assoc* m1* k2 (p! (merge-with* true f v1 v2)))\n (identical? v1 nx) (assoc* m1* k2 v2)\n (dissoc? v2) (dissoc* m1* k2)\n f\n (let [v3 (f v1 v2)]\n (if (dissoc? v3)\n (dissoc* m1* k2)\n (assoc* m1* k2 v3)))\n :else (assoc* m1* k2 v2))))\n m1* (p! m2)))\n\n :else ; |m2| >= |m1|: use m2 as base, add everything from m1 not in m2\n (let [m2*\n (if (transient? m2)\n m2\n (let [m2 (with-meta m2 (meta m1))] ; Preserve left metadata\n (if (>= n2 min-transient-card)\n (transient m2)\n (do m2))))\n\n assoc* (if (transient? m2*) assoc! assoc)]\n\n (reduce-kv\n (fn [m2* k1 v1] ; m1 kvs into m2\n (let [v2 (get m2 k1 nx)]\n (cond\n (and nest? (map? v1) (map? v2)) (assoc* m2* k1 (p! (merge-with* true f v1 v2)))\n (identical? v2 nx) (assoc* m2* k1 v1)\n (dissoc? v2) (dissoc* m2* k1)\n f\n (let [v3 (f v1 v2)]\n (if (dissoc? v3)\n (dissoc* m2* k1)\n (assoc* m2* k1 v3)))\n :else m2*)))\n m2* (p! m1)))))))\n\n(defn merge\n \"Like `core/merge` but:\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* false nil m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* false nil (merge-with* false nil m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* false nil (cons (merge-with* false nil (merge-with* false nil m1 m2) m3) more)))))\n\n(defn nested-merge\n \"Like `core/merge` but:\n - Recursively merges nested maps.\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* true nil m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* true nil (merge-with* true nil m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* true nil (cons (merge-with* true nil (merge-with* true nil m1 m2) m3) more)))))\n\n(defn merge-with\n \"Like `core/merge-with` but:\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([f ] nil)\n ([f m1 ] (p! m1))\n ([f m1 m2 ] (p! (merge-with* false f m1 m2)))\n ([f m1 m2 m3 ] (p! (merge-with* false f (merge-with* false f m1 m2) m3)))\n ([f m1 m2 m3 & more] (p! (merge-with* false f (cons (merge-with* false f (merge-with* false f m1 m2) m3) more)))))\n\n(defn nested-merge-with\n \"Like `core/merge-with` but:\n - Recursively merges nested maps.\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([f ] nil)\n ([f m1 ] (p! m1))\n ([f m1 m2 ] (p! (merge-with* true f m1 m2)))\n ([f m1 m2 m3 ] (p! (merge-with* true f (merge-with* true f m1 m2) m3)))\n ([f m1 m2 m3 & more] (p! (merge-with* true f (cons (merge-with* true f (merge-with* true f m1 m2) m3) more)))))\n\n(let [mf (fn [x y] x)]\n (defn merge-nx\n \"Like `core/merge` but:\n - Preserves existing values, e.g. (merge-nx ).\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* false mf m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* false mf (merge-with* false mf m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* false mf (cons (merge-with* false mf (merge-with* false mf m1 m2) m3) more))))))\n\n(comment\n (qb 1e6 ; [182.63 122.16 167.18]\n (core/merge {:a 1} {:a {:b 1}} {:a {:c 1}})\n (merge {:a 1} {:a {:b 1}} {:a {:c 1}})\n (nested-merge {:a 1} {:a {:b 1}} {:a {:c 1}}))\n\n (let [m1 (zipmap (range 32) (range 32))\n m2 (zipmap (range 8) (range 8))\n m3 (zipmap (range 512) (range 512))]\n\n (qb 1e4 ; [449.24 11.25]\n (core/merge m1 m2 m3)\n (merge m1 m2 m3))))\n\n(defalias truss/submap?)\n\n(defn submaps?\n \"Experimental, subject to change without notice.\n Returns true iff `sub_i` is a (possibly nested) submap of `m_i`.\n Uses `submap?`.\"\n [maps subs]\n (if (> (count subs) (count maps))\n false\n (reduce-zip (fn [acc m sub] (or (submap? m sub) (reduced false)))\n true maps subs nil)))\n\n(defn select-nested-keys\n \"Like `select-keys` but supports nested key spec:\n\n (select-nested-keys\n {:a :A :b :B :c {:c1 :C1 :c2 :C2} :d :D} ; `src-map`\n [:a {:c [:c1], :d [:d1 :d2]}]) ; `key-spec`\n\n => {:a :A, :c {:c1 :C1}, :d :D}\n\n Note that as with the `{:d [:d1 :d2]}` spec in the example above,\n if spec expects a nested map but the actual value is not a map,\n the actual value will be included in output as-is.\n\n Has the same behaviour as `select-keys` when `key-spec` is a\n simple vector of keys.\"\n [src-map key-spec]\n (if (or (empty? src-map) (empty? key-spec))\n {} ; Retain `select-keys` nil->{} semantics\n (persistent!\n (reduce\n (fn rf [acc spec-in]\n (if (map? spec-in)\n\n (reduce-kv\n (fn [acc k nested-spec-in]\n (if (contains? src-map k)\n (let [src-val (get src-map k)]\n (if (map? src-val)\n (assoc! acc k (select-nested-keys src-val nested-spec-in))\n (assoc! acc k src-val)))\n acc))\n acc spec-in)\n\n (let [k spec-in]\n (if (contains? src-map k)\n (assoc! acc k (get src-map k))\n (do acc)))))\n\n (transient {}) key-spec))))\n\n(comment\n (qb 1e6 ; [149.67 115.25]\n (select-nested-keys {:a 1 :b 1 :c 1} [:a :c])\n (select-keys {:a 1 :b 1 :c 1} [:a :c])))\n\n;;;; Keywords\n\n(defn ^:no-doc explode-keyword\n \"Private, don't use.\"\n [k] (str/split (as-qname k) #\"[\\./]\"))\n\n(comment (explode-keyword :foo.bar/baz))\n\n(defn ^:no-doc merge-keywords\n \"Private, don't use.\"\n ([ks ] (merge-keywords ks false))\n ([ks omit-slash?]\n (when (seq ks)\n (let [parts\n (reduce\n (fn [acc in]\n (if (nil? in)\n acc\n (reduce conj acc (explode-keyword in))))\n [] ks)]\n\n (when (seq parts)\n (if omit-slash?\n (keyword (str/join \".\" parts))\n (let [ppop (pop parts)]\n (keyword (when (seq ppop) (str/join \".\" ppop))\n (peek parts)))))))))\n\n(comment (merge-keywords [:foo.bar nil \"d.e/k\" :baz.qux/end nil] true))\n\n;;;; Bytes\n\n#?(:clj\n (do\n (def ^:const bytes-class (Class/forName \"[B\"))\n (defn bytes?\n \"Returns true iff given byte[] argument.\"\n ;; Also introduced in Clojure v1.9-alpha5+\n [x] (instance? bytes-class x))\n\n (defn ba=\n \"Returns true iff given two byte[]s with the same content.\"\n [^bytes x ^bytes y] (java.util.Arrays/equals x y))\n\n (defn ba-hash\n \"Returns hash int of given byte[].\"\n ^long [^bytes x] (java.util.Arrays/hashCode x))\n\n (defn utf8-ba->str\n \"Returns String by decoding given UTF-8 byte[].\"\n {:inline (fn [ba] `(let [^\"[B\" ba# ~ba] (String. ba# java.nio.charset.StandardCharsets/UTF_8)))}\n ^String [^bytes ba] (String. ba java.nio.charset.StandardCharsets/UTF_8))\n\n (defn str->utf8-ba\n \"Returns given String encoded as a UTF-8 byte[].\"\n {:inline (fn [s] `(let [^String s# ~s] (.getBytes s# java.nio.charset.StandardCharsets/UTF_8)))}\n ^bytes [^String s] (.getBytes s java.nio.charset.StandardCharsets/UTF_8))\n\n (defn ba-concat ^bytes [^bytes ba1 ^bytes ba2]\n (let [l1 (alength ba1)\n l2 (alength ba2)\n out (byte-array (+ l1 l2))]\n (System/arraycopy ba1 0 out 0 l1)\n (System/arraycopy ba2 0 out l1 l2)\n (do out)))\n\n (defn ba-split [^bytes ba ^long idx]\n (if (zero? idx)\n [nil ba]\n (let [len (alength ba)]\n (when (> len idx)\n [(java.util.Arrays/copyOf ba idx)\n (java.util.Arrays/copyOfRange ba idx len)]))))\n\n (comment\n (String. (ba-concat (.getBytes \"foo\") (.getBytes \"bar\")))\n (let [[x y] (ba-split (.getBytes \"foobar\") 5)] [(String. x) (String. y)]))\n\n (declare reduce-n)\n (defn const-ba=\n \"Constant-time `ba=`.\n Useful to prevent timing attacks, etc.\"\n [ba1 ba2]\n (when (and ba1 ba2)\n (let [bax (byte-array [0 1])\n ^bytes ba1 ba1\n ^bytes ba2 ba2\n l1 (alength ba1)\n l2 (alength ba2)\n lmax (max l1 l2)\n lmin (min l1 l2)]\n\n (reduce-n\n (fn [acc ^long idx]\n (if (>= idx lmin)\n (and (== (aget bax 0) (aget bax 1)) acc)\n (and (== (aget ba1 idx) (aget ba2 idx)) acc)))\n true\n lmax))))))\n\n(comment (const-ba= (byte-array [1 2 3 4]) (byte-array [])))\n\n;;;; Math\n\n(defn approx==\n #?(:cljs {:tag 'boolean})\n ([ x y] (< (Math/abs (- (double x) (double y))) 0.001))\n ([signf x y] (< (Math/abs (- (double x) (double y))) (double signf))))\n\n(comment (qb 1e5 (approx== 0.01 3.141592 (/ 22 7))))\n\n(defn clamp [nmin nmax n] (if (< n nmin) nmin (if (> n nmax) nmax n))) ; Reflects\n(defn clamp-int ^long [nmin nmax n] (let [nmin (long nmin), nmax (long nmax), n (long n)] (if (< n nmin) nmin (if (> n nmax) nmax n))))\n(defn clamp-float ^double [nmin nmax n] (let [nmin (double nmin), nmax (double nmax), n (double n)] (if (< n nmin) nmin (if (> n nmax) nmax n))))\n\n(defn pnum-complement ^double [pnum] (- 1.0 (double pnum)))\n(defn as-pnum-complement ^double [x ] (- 1.0 (as-pnum x)))\n\n#?(:clj\n (do ; These will pass primitives through w/o reflection\n (defmacro <=* [x y z] `(let [y# ~y] (and (<= ~x y#) (<= y# ~z))))\n (defmacro >=* [x y z] `(let [y# ~y] (and (>= ~x y#) (>= y# ~z))))\n (defmacro <* [x y z] `(let [y# ~y] (and (< ~x y#) (< y# ~z))))\n (defmacro >* [x y z] `(let [y# ~y] (and (> ~x y#) (> y# ~z))))\n (defmacro min* [n1 n2] `(let [n1# ~n1 n2# ~n2] (if (> n1# n2#) n2# n1#)))\n (defmacro max* [n1 n2] `(let [n1# ~n1 n2# ~n2] (if (< n1# n2#) n2# n1#)))\n (defmacro clamp* [nmin nmax n] `(let [nmin# ~nmin nmax# ~nmax n# ~n]\n (if (< n# nmin#) nmin# (if (> n# nmax#) nmax# n#))))))\n\n#?(:clj\n (defmacro ^:no-doc multiply\n \"Private, don't use. Expands to nested (* <...>).\"\n [& xs]\n (let [[x1 x2 & xn] xs]\n (cond\n xn `(* (* ~x1 ~x2) (multiply ~@xn))\n x2 `(* ~x1 ~x2)\n x1 x1\n :else 1))))\n\n#?(:clj\n (defmacro ^:no-doc sum\n \"Private, don't use. Expands to nested (+ <...>).\"\n [& xs]\n (let [[x1 x2 & xn] xs]\n (cond\n xn `(+ (+ ~x1 ~x2) (sum ~@xn))\n x2 `(+ ~x1 ~x2)\n x1 x1\n :else 0))))\n\n(comment\n (clojure.walk/macroexpand-all '(multiply 1 2 3 4))\n (clojure.walk/macroexpand-all '(sum 1 2 3 4)))\n\n(defn pow [n exp] (Math/pow n exp))\n(defn abs [n] (if (neg? n) (- n) n))\n\n(defn round\n \"General purpose rounding util.\n Returns given number `n` rounded according to given options:\n - `kind` - \u2208 #{:round :floor :ceil :trunc} (default `:round`)\n - `precision` - Number of decimal places to include (default `nil` => none)\"\n {:arglists '([n] [kind n] [kind precision n])}\n ([n] (round :round nil n))\n ([a1 a2] ; [kind n]\n (if (keyword? a2) ; [n kind] back compatibility\n (round a2 nil a1)\n (round a1 nil a2)))\n\n ([a1 a2 a3] ; [kind precision n]\n (if (keyword? a2) ; [n kind precision] back compatibility\n (round a2 a3 a1)\n (let [n (double a3)\n modifier (when a2 (Math/pow 10.0 a2))\n n* (if modifier (* n ^double modifier) n)\n rounded\n (let [kind a1]\n (case kind\n :round (Math/round n*)\n :floor (Math/floor n*)\n :ceil (Math/ceil n*)\n :trunc (long n*)\n (truss/unexpected-arg! kind\n {:param 'kind\n :context `round\n :expected #{:round :floor :ceil :trunc}})))]\n\n (if-not modifier\n (do (long rounded)) ; Return long\n (/ (double rounded) ^double modifier) ; Return double\n )))))\n\n(do ; Optimized common cases\n (defn perc ^long [n divisor] (Math/round (* (/ (double n) (double divisor)) 100.0)))\n (defn round0 ^long [n] (Math/round (double n)))\n (defn round1 ^double [n] (/ (double (Math/round (* (double n) 10.0))) 10.0))\n (defn round2 ^double [n] (/ (double (Math/round (* (double n) 100.0))) 100.0))\n (defn round3 ^double [n] (/ (double (Math/round (* (double n) 1e3))) 1e3))\n (defn round4 ^double [n] (/ (double (Math/round (* (double n) 1e4))) 1e4))\n (defn roundn ^double [precision n]\n (let [p (Math/pow 10.0 (long precision))]\n (/ (double (Math/round (* (double n) p))) p))))\n\n(defn exp-backoff \"Returns binary exponential backoff value for n<=36.\"\n ([^long n-attempt] (exp-backoff n-attempt nil))\n ([^long n-attempt {:keys [min max factor] :or {factor 1000}}]\n (let [n (if (> n-attempt 36) 36 n-attempt) ; >2^36 excessive\n b (Math/pow 2 n)\n t (long (* (+ b ^double (rand b)) 0.5 (double factor)))\n t (long (if min (if (< t ^long min) min t) t))\n t (long (if max (if (> t ^long max) max t) t))]\n t)))\n\n(comment (exp-backoff 128))\n\n(defn chance\n \"Returns true with given probability \u2208 \u211d[0,1].\"\n {:tag #?(:cljs 'boolean :default nil)\n :inline\n (fn [prob]\n (if (const-form? prob)\n `(< (Math/random) ~(as-pnum! prob))\n `(< (Math/random) (double ~prob))))}\n\n [prob] (< (Math/random) (double prob)))\n\n(comment (chance 1.2))\n\n;;;; Misc\n\n#?(:clj\n (defn class-sym\n \"Returns class name symbol of given argument.\"\n [x] (when x (symbol (.getName (class x))))))\n\n(defn merge-meta [x m] (with-meta x (merge (meta x) m)))\n(defn without-meta [x] (if (meta x) (with-meta x nil) x))\n\n(defn some=\n \"Returns true iff given args are equal AND non-nil.\"\n #?(:cljs {:tag 'boolean})\n ([x ] (core/some? x))\n ([x y ] (and (core/some? x) (= x y)))\n ([x y & more] (and (core/some? x) (= x y) (revery? #(= % x) more))))\n\n(comment (some= :foo :foo nil))\n\n(defn nnil\n \"Returns first non-nil arg, or nil.\"\n ([ ] nil)\n ([x ] x)\n ([x y ] (if (nil? x) y x))\n ([x y z ] (if (nil? x) (if (nil? y) z y) x))\n ([x y z & more] (if (nil? x) (if (nil? y) (if (nil? z) (rfirst core/some? more) z) y) x)))\n\n(comment\n (qb 1e6\n (or nil nil nil false :a)\n (nnil nil nil nil false :a)))\n\n(defn parse-version [x]\n (let [[s-version ?s-qualifier] (str/split (str x) #\"-\" 2)]\n {:version (when-let [s (re-seq #\"\\d+\" s-version)] (mapv as-?int s))\n :qualifier (when-let [s ?s-qualifier] (str/lower-case s))}))\n\n(comment [(parse-version \"40.32.34.8-foo\") (parse-version 10.3)])\n\n#?(:clj\n (defmacro assert-min-encore-version\n \"Version check for dependency conflicts, etc.\"\n [min-version]\n (let [[^long xc ^long yc ^long zc] encore-version\n [ xm ym zm] (if (vector? min-version) min-version (:version (parse-version min-version)))\n [^long xm ^long ym ^long zm] (mapv #(or % 0) [xm ym zm])]\n\n (when-not (or (> xc xm) (and (= xc xm) (or (> yc ym) (and (= yc ym) (>= zc zm)))))\n (let [min-version (str/join \".\" [xm ym zm])\n your-version (str/join \".\" [xc yc zc])]\n (truss/ex-info!\n (str\n \"Insufficient `com.taoensso/encore` version (v\" your-version \" < v\" min-version \"), \"\n \"you may have a dependency conflict. Please see `https://www.taoensso.com/dependency-conflicts` for solutions!\")\n {:min-version min-version\n :your-version your-version}))))))\n\n(comment (assert-min-encore-version [3 10]))\n\n#?(:clj\n (defn get-source\n \"Returns {:keys [ns line column file]} source location given a macro's\n compile-time `&form` and `&env` vals. See also `keep-callsite`.\"\n [macro-form-or-meta macro-env]\n (let [{:keys [line column file]}\n (if (map? macro-form-or-meta)\n (do macro-form-or-meta)\n (meta macro-form-or-meta))\n\n file\n (if-not (:ns macro-env)\n *file* ; Compiling Clj\n (or ; Compiling Cljs\n (when-let [url (and file (truss/catching (jio/resource file)))]\n (truss/catching (.getPath (jio/file url)))\n (do (str url)))\n file))]\n\n (assoc-some\n {:ns (str *ns*)}\n {:line line\n :column column\n :file\n (when (string? file)\n (when-not (contains? #{\"NO_SOURCE_PATH\" \"NO_SOURCE_FILE\" \"\"} file)\n file))}))))\n\n(comment (.getPath (jio/resource \"taoensso/encore.cljc\")))\n\n#?(:clj\n (defn ^:no-doc have-resource?\n \"Private, don't use.\"\n [res-name] (boolean (try (jio/resource res-name) (catch Throwable _)))))\n\n#?(:clj\n (defn ^:no-doc have-class?\n \"Private, don't use.\"\n [class-name]\n (boolean\n (try\n (Class/forName class-name true (.getContextClassLoader (Thread/currentThread)))\n (catch Throwable _)))))\n\n(comment (have-class? \"org.slf4j.Logger\"))\n\n(def ^:const have-core-async?\n \"Is `clojure.core.async` present (not necessarily loaded)?\"\n (compile-if\n (or\n (jio/resource \"clojure/core/async.cljc\")\n (jio/resource \"clojure/core/async.clj\"))\n true\n false))\n\n;;;; Thread locals\n\n#?(:clj\n (defmacro thread-local-proxy \"Low-level, see `thread-local` instead.\"\n [& body] `(proxy [ThreadLocal] [] (initialValue [] (do ~@body)))))\n\n#?(:clj\n (defn thread-local*\n \"Low-level, see `thread-local` instead.\"\n [init-val-fn]\n (let [p (proxy [ThreadLocal] [] (initialValue [] (init-val-fn)))]\n (reify clojure.lang.IDeref (deref [this] (.get p))))))\n\n#?(:clj\n (defmacro thread-local\n \"Given a body that returns an initial value for the current thread,\n returns a `ThreadLocal` proxy that can be derefed to get the current\n thread's current value.\n\n Commonly used to achieve thread safety during Java interop.\n In the common case, `body` will be a call to some Java constructor\n that returns a non-thread-safe instance.\n\n Example:\n (def thread-local-simple-date-format_\n \\\"Deref to return a thread-local `SimpleDateFormat`\\\"\n (thread-local (SimpleDateFormat. \\\"yyyy-MM-dd\\\")))\n\n (.format @thread-local-simple-date-format_ (Date.)) => \\\"2023-01-24\\\"\n\n NB: don't pass the derefed value to other threads!\"\n [& body] `(thread-local* (fn [] ~@body))))\n\n(comment\n (def thread-local-simple-date-format_ (thread-local (SimpleDateFormat. \"yyyy-MM-dd\")))\n (.format @thread-local-simple-date-format_ (Date.))\n\n (let [tl_ (thread-local \"init-val\")\n tlp (thread-local-proxy \"init-val\")]\n (qb 1e6 ; [30.54 54.03]\n (.get ^ThreadLocal tlp) @tl_)))\n\n;;;; Instants\n;; `inst` - Platform instant (`java.time.Instant` or `js/Date`)\n;; `dt` - `java.util.Date` (Clj only)\n;; `udt` - Milliseconds since Unix epoch (pos/neg)\n\n(defn inst?\n \"Returns true iff given platform instant (`java.time.Instant` or `js/Date`).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? java.time.Instant x)\n :cljs (instance? js/Date x)))\n\n#?(:clj\n (do\n (defn now-inst\n \"Returns current system instant as `java.time.Instant`.\"\n {:inline (fn [] `(java.time.Instant/now))}\n ^java.time.Instant [] (java.time.Instant/now))\n\n (defn now-dt\n \"Returns current system instant as `java.util.Date`.\"\n {:inline (fn [] `(java.util.Date.))}\n ^java.util.Date [] (java.util.Date.))\n\n (defn now-udt\n \"Returns current system instant as milliseconds since Unix epoch.\"\n {:inline (fn [] `(System/currentTimeMillis))}\n ^long [] (System/currentTimeMillis))\n\n (defn now-nano\n \"Returns current value of best-resolution time source as nanoseconds.\"\n {:inline (fn [] `(System/nanoTime))}\n ^long [] (System/nanoTime))\n\n (defn inst->udt\n \"Returns given `java.time.Instant` as milliseconds since Unix epoch.\"\n {:inline (fn [inst] `(.toEpochMilli ~(with-meta inst {:tag 'java.time.Instant})))}\n ^long [^java.time.Instant inst] (.toEpochMilli inst))\n\n (defn udt->inst\n \"Returns given milliseconds since Unix epoch as `java.time.Instant`.\"\n {:inline (fn [msecs-since-epoch] `(java.time.Instant/ofEpochMilli ~msecs-since-epoch))}\n ^java.time.Instant [msecs-since-epoch] (java.time.Instant/ofEpochMilli msecs-since-epoch)))\n\n :cljs\n (do\n (defn now-inst \"Returns current system instant as `js/Date`.\" [] (js/Date.))\n (defn now-dt \"Returns current system instant as `js/Date`.\" [] (js/Date.))\n (defn now-udt \"Returns current system insant as milliseconds since Unix epoch.\" [] (js/Date.now))\n (def now-nano \"Returns current value of best-resolution time source as nanoseconds.\"\n (if-let [perf (oget js-?window \"performance\")\n pf (or\n (oget perf \"now\") (oget perf \"mozNow\") (oget perf \"webkitNow\")\n (oget perf \"msNow\") (oget perf \"oNow\"))]\n (fn [] (Math/floor (* 1e6 (.call pf perf))))\n (fn [] (* 1e6 (js/Date.now)))))\n\n (defn inst->udt \"Returns given `js/Date` as milliseconds since Unix epoch.\" [inst] (.getTime inst))\n (defn udt->inst \"Returns given milliseconds since Unix epoch as `js/Date`.\" [msecs-since-epoch] (js/Date. msecs-since-epoch))))\n\n(defn udt? #?(:cljs {:tag 'boolean}) [x] (int? x))\n\n(defn as-?inst\n \"Returns given ?arg as platform instant (`java.time.Instant` or `js/Date`), or nil.\"\n [x]\n #?(:clj\n (cond\n (instance? java.time.Instant x) x\n (instance? java.util.Date x) (.toInstant ^java.util.Date x)\n (int? x) (java.time.Instant/ofEpochMilli x)\n (string? x) (truss/catching (java.time.Instant/parse ^String x)))\n\n :cljs\n (cond\n (instance? js/Date x) x\n (number? x) (js/Date. x)\n (string? x)\n (let [x (js/Date. x)]\n (when-not (js/isNaN x)\n x)))))\n\n#?(:clj\n (defn as-?dt\n \"Returns given ?arg as `java.util.Date`, or nil.\"\n [x]\n (cond\n (instance? java.time.Instant x) (java.util.Date/from ^java.time.Instant x)\n (instance? java.util.Date x) x\n (int? x) (java.util.Date. ^long x)\n (string? x)\n (truss/catching\n (java.util.Date/from\n (java.time.Instant/parse ^String x))))))\n\n(defn as-?udt\n \"Returns given ?arg as (pos/neg) milliseconds since Unix epoch, or nil.\"\n [x]\n #?(:clj\n (cond\n (int? x) (long x)\n (instance? java.time.Instant x) (.toEpochMilli ^java.time.Instant x)\n (instance? java.util.Date x) (.getTime ^java.util.Date x)\n (string? x)\n (or\n (truss/catching (Long/parseLong x))\n (truss/catching\n (.toEpochMilli\n (java.time.Instant/parse ^String x)))))\n\n :cljs\n (cond\n (instance? js/Date x) (.getTime x)\n (number? x) x\n (string? x)\n (or\n (parse-js-int x)\n #_(let [x (js/Number x)] (when-not (js/isNaN x) x))\n (let [x (js/Date.parse x)] (when-not (js/isNaN x) x))))))\n\n(do (defn as-inst #?(:cljs [x] :clj ^java.time.Instant [x]) (or (as-?inst x) (-as-throw :inst x))))\n#?(:clj (defn as-dt ^java.util.Date [x] (or (as-?dt x) (-as-throw :dt x))))\n(do (defn as-udt #?(:cljs [x] :clj ^long [x]) (or (as-?udt x) (-as-throw :udt x))))\n\n;; Specialist macros to force expanded form (useful for Cljs, other macros, etc.).\n#?(:clj (defmacro ^:no-doc now-inst* \"Prefer `now-inst` when possible.\" [] (if (:ns &env) `(js/Date.) `(java.time.Instant/now))))\n#?(:clj (defmacro ^:no-doc now-dt* \"Prefer `now-dt` when possible.\" [] (if (:ns &env) `(js/Date.) `(java.util.Date.))))\n#?(:clj (defmacro ^:no-doc now-udt* \"Prefer `now-udt` when possible.\" [] (if (:ns &env) `(js/Date.now) `(System/currentTimeMillis))))\n#?(:clj (defmacro ^:no-doc now-nano* \"Prefer `now-nano` when possible.\" [] (if (:ns &env) `(now-nano) `(System/nanoTime))))\n\n(defn format-inst-fn\n \"Experimental, subject to change without notice.\n\n Returns a (fn format [instant]) that:\n - Takes a platform instant (`java.time.Instant` or `js/Date`).\n - Returns a formatted human-readable instant string.\n\n Options:\n `:formatter`\n Clj: `java.time.format.DateTimeFormatter`\n Cljs: `goog.i18n.DateTimeFormat`\n\n Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n e.g.: \\\"2011-12-03T10:15:130Z\\\".\n\n `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n Note that zone may be ignored by some `DateTimeFormatter`s,\n including the default (`DateTimeFormatter/ISO_INSTANT`)!\"\n\n ([] (format-inst-fn nil))\n #?(:cljs\n ([{:keys [formatter]}]\n ;; (instance! goog.i18n.DateTimeFormat formatter) ; Not required here\n (if formatter ; `goog.i18n.DateTimeFormat`\n (fn format-instant [instant] (.format formatter instant))\n (fn format-instant [instant] (.toISOString instant))))\n\n :clj\n ([{:keys [formatter zone]\n :or\n {formatter java.time.format.DateTimeFormatter/ISO_INSTANT\n zone java.time.ZoneOffset/UTC}}]\n\n (instance! java.time.format.DateTimeFormatter formatter\n {:context `format-inst-fn, :param :formatter})\n\n (when zone\n (instance! java.time.ZoneOffset zone\n {:context `format-inst-fn, :param :zone}))\n\n (let [^java.time.format.DateTimeFormatter ; Thread safe\n formatter\n (if-not zone\n formatter\n (.withZone\n ^java.time.format.DateTimeFormatter formatter\n ^java.time.ZoneOffset zone))]\n\n (fn format-instant [^java.time.Instant instant]\n (.format formatter instant))))))\n\n(comment\n ((format-inst-fn\n {:formatter (java.time.format.DateTimeFormatter/ofPattern \"yyyy-MM-dd'T'HH:mm:ssXXX\")\n :zone (.getOffset (java.time.ZonedDateTime/now (java.time.ZoneId/of \"Europe/Berlin\")))})\n (.toInstant (java.util.Date.))))\n\n(let [default-fn (format-inst-fn)]\n (defn format-inst\n \"Takes a platform instant (`java.time.Instant` or `js/Date`) and\n returns a formatted human-readable string in `ISO8601` format\n (`YYYY-MM-DDTHH:mm:ss.sssZ`), e.g. \\\"2011-12-03T10:15:130Z\\\".\"\n {:tag #?(:clj 'String :cljs 'string)}\n [inst] (default-fn inst)))\n\n(comment (format-inst (now-inst)))\n\n;;;; Date & time\n\n(defn secs->ms ^long [secs] (* (long secs) 1000))\n(defn ms->secs ^long [ms] (quot (long ms) 1000))\n(defn ms\n \"Returns ~number of milliseconds in period defined by given args.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n (^long [{:keys [years months weeks days hours mins secs msecs ms]}]\n (round0\n (+\n (if years (* (double years) #=(* 1000 60 60 24 365)) 0.0)\n (if months (* (double months) #=(* 1000 60 60 24 29.53)) 0.0)\n (if weeks (* (double weeks) #=(* 1000 60 60 24 7)) 0.0)\n (if days (* (double days) #=(* 1000 60 60 24)) 0.0)\n (if hours (* (double hours) #=(* 1000 60 60)) 0.0)\n (if mins (* (double mins) #=(* 1000 60)) 0.0)\n (if secs (* (double secs) 1000) 0.0)\n (if msecs (double msecs) 0.0)\n (if ms (double ms) 0.0))))\n\n (^long [k1 v1 ] (ms {k1 v1}))\n (^long [k1 v1 k2 v2 ] (ms {k1 v1, k2 v2}))\n ( [k1 v1 k2 v2 & more] (ms (reduce-kvs assoc {k1 v1 k2 v2} more))))\n\n(defn secs\n \"Returns ~number of seconds in period defined by given args.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n (^long [opts ] (ms->secs (ms opts)))\n (^long [k1 v1 ] (ms->secs (ms {k1 v1})))\n (^long [k1 v1 k2 v2 ] (ms->secs (ms {k1 v1, k2 v2})))\n ( [k1 v1 k2 v2 & more] (ms->secs (ms (reduce-kvs assoc {k1 v1 k2 v2} more)))))\n\n(comment\n (ms :years 88 :months 3 :days 33)\n (secs :years 88 :months 3 :days 33))\n\n#?(:clj\n (defmacro msecs\n \"Macro version of `ms`.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n ([k1 v1 & more] `(msecs ~(reduce-kvs assoc {k1 v1} (vec more))))\n ([{:keys [years months weeks days hours mins secs msecs ms] :as opts}]\n (truss/have? [:ks<= #{:years :months :weeks :days :hours :mins :secs :msecs :ms}] opts)\n (taoensso.encore/ms opts))))\n\n(comment (macroexpand '(msecs :weeks 3)))\n\n#?(:clj\n (defn- -simple-date-format\n \"Returns a SimpleDateFormat ThreadLocal proxy.\"\n [pattern locale timezone]\n (let [pattern\n (case pattern\n :iso8601 \"yyyy-MM-dd'T'HH:mm:ss.SSSX\"\n :rss2 \"EEE, dd MMM yyyy HH:mm:ss z\"\n pattern)\n\n locale\n (if (identical-kw? locale :jvm-default)\n nil ; (Locale/getDefault)\n locale)\n\n timezone\n (if (identical-kw? timezone :jvm-default)\n nil ; (TimeZone/getDefault)\n (if (identical-kw? timezone :utc)\n (TimeZone/getTimeZone \"UTC\")\n timezone))]\n\n (thread-local-proxy\n (let [^SimpleDateFormat sdf\n (if locale\n (SimpleDateFormat. ^String pattern ^Locale locale)\n (SimpleDateFormat. ^String pattern))]\n (when timezone (.setTimeZone sdf ^TimeZone timezone))\n sdf)))))\n\n#?(:clj\n (defn simple-date-format*\n ^java.text.SimpleDateFormat [pattern locale timezone]\n (.get ^ThreadLocal (-simple-date-format pattern locale timezone))))\n\n#?(:clj\n (defn simple-date-format \"Returns a thread-local `java.text.SimpleDateFormat`.\"\n ^java.text.SimpleDateFormat [pattern & [{:keys [locale timezone] :as opts}]]\n (.get ^ThreadLocal (-simple-date-format pattern locale timezone))))\n\n(comment (qb 1e5 (.format (simple-date-format \"yyyy-MMM-dd\") (Date.))))\n\n;;;; Strings\n\n(def ^:const a-utf8-str\n \"Example UTF-8 string for tests, etc.\"\n \"Hi \u0cac\u0cbe \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8 10\")\n\n(defn str-builder?\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? StringBuilder x)\n :cljs (instance? goog.string.StringBuffer x)))\n\n(defn str-builder\n \"Returns a new stateful string builder:\n - `java.lang.StringBuilder` for Clj\n - `goog.string.StringBuffer` for Cljs\n\n See also `sb-append`.\"\n #?(:clj (^StringBuilder [ ] (StringBuilder.)))\n #?(:cljs ( [ ] (goog.string.StringBuffer.)))\n #?(:clj (^StringBuilder [init] (if (instance? StringBuilder init) init (StringBuilder. (str init)))))\n #?(:cljs ( [init] (if (instance? goog.string.StringBuffer init) init (goog.string.StringBuffer. (str init))))))\n\n(defn sb-length\n \"Returns given string builder's current length (character count).\"\n #?(:clj ^long [^StringBuilder sb] :cljs [^goog.string.StringBuffer sb])\n #?(:clj (.length sb)\n :cljs (.getLength sb)))\n\n(defn sb-append\n \"Appends given string/s to given string builder. See also `str-builder.`\"\n (#?(:clj ^StringBuilder [^StringBuilder str-builder x]\n :cljs [ str-builder x])\n (if (nil? x)\n (do str-builder)\n (.append str-builder\n #?(:clj (.toString ^Object x)\n :cljs (.toString x)))))\n\n (#?(:clj ^StringBuilder [^StringBuilder str-builder x & more]\n :cljs [ str-builder x & more])\n (reduce\n (fn [acc in] (sb-append acc in))\n (sb-append str-builder x) more)))\n\n(comment (str (sb-append (str-builder \"a\") \"b\" \"c\" \\d)))\n\n(defn ^:no-doc sb-appender\n \"Private, don't use.\n Returns a stateful string-building (fn [x & more]) that:\n - Appends non-nil xs to a string builder, starting with a separator IFF\n string building has started and at least one x is non-nil.\n - Returns the underlying string builder.\"\n ([ ] (sb-appender (str-builder) \" \"))\n ([ separator] (sb-appender (str-builder) separator))\n ([sb separator]\n (let [#?@(:clj [^StringBuilder sb sb])\n sep!\n (let [sep (str separator)\n started?_ (volatile! false)]\n (fn []\n (if @started?_\n (do (.append sb sep) true)\n (do (vreset! started?_ true) false))))]\n\n (fn a-sb-appender\n ([ ] sb) ; Undocumented\n ([x ] (if (nil? x) sb (do (sep!) (sb-append sb x))))\n ([x & more]\n (if (and (nil? x) (revery? nil? more))\n nil\n (do\n (sep!)\n (reduce\n (fn [acc in] (sb-append acc in))\n (sb-append sb x) more))))))))\n\n(comment (str (let [s+ (sb-appender)] (s+ \"x1a\" \"x1b\" \"x1c\") (s+ \"x2a\" \"x2c\") (sb-append (s+) \"\\n\"))))\n\n(defn str-rf\n \"String builder reducing fn.\"\n ([ ] (str-builder))\n ([acc ] (str acc)) ; cf\n ([acc in]\n (if (nil? in)\n acc\n (.append (str-builder acc)\n #?(:clj (.toString ^Object in)\n :cljs (.toString in))))))\n\n(defn- sb-rf\n \"Like `str-rf` but presumes string builder init value.\"\n ([ ] (str-builder))\n ([sb ] (str sb)) ; cf\n ([sb in]\n (if (nil? in)\n sb\n #?(:clj (.append ^StringBuilder sb (.toString ^Object in))\n :cljs (.append sb (.toString in))))))\n\n(comment\n (qb 5e3 ; [264.84 37.73 40.51]\n (do (reduce str (range 512)))\n (do (str (reduce str-rf (range 512))))\n (do (str (reduce sb-rf (str-builder) (range 512))))))\n\n(defn str-join\n \"Faster generalization of `clojure.string/join` with transducer support.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ xs] (str-join nil nil xs))\n ([separator xs] (str-join separator nil xs))\n ([separator xform xs]\n (if (and separator (not= separator \"\"))\n (let [separator (str separator)]\n (if xform\n (transduce (comp xform (interpose separator)) sb-rf (str-builder) xs)\n (transduce (interpose separator) sb-rf (str-builder) xs)))\n\n (if xform\n (do (transduce xform sb-rf (str-builder) xs))\n (str (reduce sb-rf (str-builder) xs))))))\n\n(comment\n (str-join \"x\" (comp (filter #{\"a\" \"c\"}) (map str/upper-case)) [\"a\" \"b\" \"c\"]) ; \"AxC\"\n (str-join \",\" (filter core/some?) [\"a\" \"b\" \"c\" nil \"\" \"d\"]) ; \"a,b,c,,d\"\n (let [xf-some (filter core/some?)]\n (qb 1e6 ; [224.03 134.57 191.69 100.76]\n (str/join \",\" [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \",\" [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \",\" xf-some [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \"\" [\"a\" \"b\" \"c\" nil \"\" \"d\"]))))\n\n(defn str-contains?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.contains ^String s ^String substr)\n :cljs (not= -1 (.indexOf s substr))))\n\n(defn str-starts-with?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.startsWith ^String s ^String substr)\n :cljs (zero? (.indexOf s substr))))\n\n(defn str-ends-with?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.endsWith ^String s ^String substr)\n :cljs\n (let [s-len (.-length s)\n substr-len (.-length substr)]\n (when (>= s-len substr-len)\n (not= -1 (.indexOf s substr (- s-len substr-len)))))))\n\n(defn str-?index\n \"Returns (first/last) ?index of substring if it exists within given string.\"\n ([s substr ] (str-?index s substr 0 false))\n ([s substr start-idx] (str-?index s substr start-idx false))\n ([s substr start-idx last?]\n (let [result\n (if last?\n #?(:clj (.lastIndexOf ^String s ^String substr ^long start-idx)\n :cljs (.lastIndexOf s substr start-idx))\n #?(:clj (.indexOf ^String s ^String substr ^long start-idx)\n :cljs (.indexOf s substr start-idx)))]\n\n (when (not= result -1) result))))\n\n(comment (qb 1000 (str-?index \"hello there\" \"there\")))\n\n(defn case-insensitive-str=\n \"Returns true iff given strings are equal, ignoring case.\"\n ;; Implementation detail: compares normalized chars 1 by 1, so often faster\n ;; than naive comparison of normalized strings.\n {:tag #?(:cljs 'boolean :default nil)}\n [s1 s2]\n #?(:clj (.equalsIgnoreCase ^String s1 ^String s2)\n :cljs\n (or\n (identical? s1 s2)\n (let [l1 (.-length s1)\n l2 (.-length s2)]\n (and\n (== l1 l2)\n ;; (= (str/lower-case s1) (str/lower-case s2))\n ;; Still needs bench comparison:\n (reduce-n\n (fn [acc idx]\n (let [c1 (.toLowerCase (.charAt s1 idx))\n c2 (.toLowerCase (.charAt s2 idx))]\n (if (= c1 c2) true (reduced false))))\n true\n 0\n l1))))))\n\n(comment\n (qb 1e6\n (do (= \"-abcdefghijklmnop\" \"_abcdefghijklmnop\"))\n (case-insensitive-str= \"-abcdefghijklmnop\" \"_abcdefghijklmnop\")\n (=\n (str/lower-case \"-abcdefghijklmnop\")\n (str/lower-case \"_abcdefghijklmnop\"))))\n\n(defn norm-str\n \"Returns normalized form of given string.\n `norm-form` is \u2208 #{:nfc :nfkc :nfd :nfkd} (default `:nfc` as per W3C).\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ s] (norm-str :nfc s))\n ([norm-form s]\n (let [norm-form\n (case norm-form\n :nfc #?(:clj java.text.Normalizer$Form/NFC, :cljs \"NFC\")\n :nfkc #?(:clj java.text.Normalizer$Form/NFKC, :cljs \"NFKC\")\n :nfd #?(:clj java.text.Normalizer$Form/NFD, :cljs \"NFD\")\n :nfkd #?(:clj java.text.Normalizer$Form/NFKD, :cljs \"NFKD\")\n (if #?(:clj (instance? java.text.Normalizer$Form norm-form) :cljs false)\n (do norm-form) ; Back compatibility\n (truss/unexpected-arg! norm-form\n {:param 'norm-form\n :context `norm-str\n :expected #{:nfc :nfkc :nfd :nfkd}})))]\n\n #?(:clj (java.text.Normalizer/normalize ^String s norm-form)\n :cljs (.normalize s norm-form)))))\n\n(comment (qb 1e6 (norm-str \"foo\"))) ; 48.52\n\n(defn str-replace\n \"Like `str/replace` but provides consistent Clj/s behaviour.\n\n Workaround for ,\n .\n\n Note that ClojureScript 1.7.145 introduced a partial fix for CLJS-911.\n A full fix could unfortunately not be introduced w/o breaking compatibility\n with the previously incorrect behaviour. CLJS-794 also remains unresolved.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [s match replacement]\n #?(:clj (str/replace s match replacement)\n :cljs\n (cond\n (string? match) ; string -> string replacement\n (.replace s (js/RegExp. (gstr/regExpEscape match) \"g\") replacement)\n ;; (.hasOwnProperty match \"source\") ; No! Ref. \n\n (instance? js/RegExp match) ; pattern -> string/fn replacement\n (let [flags (str \"g\" (when (.-ignoreCase match) \"i\")\n (when (.-multiline match) \"m\")) ; Fix CLJS-794\n replacement ; Fix CLJS-911\n (if (string? replacement)\n replacement\n ;; Note that the merged CLJS-911 fix actually tries to vary\n ;; behaviour here based on the number of matches(!)\n (fn [& args] (replacement (vec args))))]\n (.replace s (js/RegExp. (.-source match) flags) replacement))\n :else (truss/ex-info! (str \"Invalid match arg: \" match)))))\n\n(do\n (defn ^:no-doc nil->str [x] (if (nil? x) \"nil\" x)) ; (undefined? x) check no longer needed for modern Cljs\n\n (defn format*\n {:tag #?(:clj 'String :cljs 'string)}\n (#?(:clj [ fmt args]\n :cljs [ fmt args]) (format* nil->str fmt args))\n (#?(:clj [xform fmt args]\n :cljs [xform fmt args])\n (if (nil? fmt)\n \"\" ; Prevent NPE\n (let [args (if xform (mapv xform args) args)]\n #?(:clj (String/format fmt (to-array args))\n :cljs (apply gstr/format fmt args))))))\n\n (defn format\n \"Like `core/format` but:\n * Returns \\\"\\\" when fmt is nil rather than throwing an NPE.\n * Formats nil as \\\"nil\\\" rather than \\\"null\\\".\n * Provides ClojureScript support via goog.string.format (this has fewer\n formatting options than Clojure's `format`!).\"\n {:tag #?(:clj 'String :cljs 'string)}\n [fmt & args] (format* fmt args)))\n\n(defn str-join-once\n \"Like `string/join` but skips nils and duplicate separators.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [separator coll]\n (let [sep separator]\n (if (str/blank? sep)\n (str (reduce str-rf \"\" coll))\n (let [acc-ends-with-sep?_ (volatile! false)\n acc-empty?_ (volatile! true)]\n (str\n (reduce\n (fn [acc in]\n (let [in (str in)\n in-empty? (= in \"\")\n in-starts-with-sep? (str-starts-with? in sep)\n in-ends-with-sep? (str-ends-with? in sep)\n acc-ends-with-sep? @acc-ends-with-sep?_\n acc-empty? @acc-empty?_]\n\n (vreset! acc-ends-with-sep?_ in-ends-with-sep?)\n (when acc-empty? (vreset! acc-empty?_ in-empty?))\n\n (if acc-ends-with-sep?\n (if in-starts-with-sep?\n (sb-append acc (.substring in 1))\n (sb-append acc in))\n\n (if in-starts-with-sep?\n (sb-append acc in)\n (if (or acc-empty? in-empty?)\n (sb-append acc in)\n (do (sb-append acc sep)\n (sb-append acc in)))))))\n (str-builder)\n coll))))))\n\n(defn path\n {:tag #?(:clj 'String :cljs 'string)}\n [& parts] (str-join-once \"/\" parts))\n\n(comment (path \"foo/\" nil \"/bar\" \"baz/\" \"/qux/\"))\n\n(defn norm-word-breaks\n \"Converts all word breaks of any form and length (including line breaks of any\n form, tabs, spaces, etc.) to a single regular space.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [s] (str/replace (str s) #\"\\s+\" \\space))\n\n(defn count-words ^long [s] (if (str/blank? s) 0 (count (str/split s #\"\\s+\"))))\n(comment (count-words \"Hello this is a test\"))\n\n(defn into-str\n \"Simple Hiccup-like string templating to complement Tempura.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [& xs]\n (str\n (reduce\n (fn rf [acc in]\n (if (sequential? in)\n (reduce rf acc in)\n (sb-append acc (str in))))\n (str-builder)\n xs)))\n\n(comment\n (let [br \"\\n\\n\"]\n (into-str :a :b br :c (for [n (range 5)] [n br])\n (when true [:d :e [:f :g]]))))\n\n(defn const-str=\n \"Constant-time string equality checker.\n Useful to prevent timing attacks, etc.\"\n [s1 s2]\n (when (and s1 s2)\n #?(:clj (const-ba= (str->utf8-ba s1) (str->utf8-ba s2))\n :cljs\n (let [vx [\"0\" \"1\"]\n v1 (vec s1)\n v2 (vec s2)\n n1 (count v1)\n n2 (count v2)\n nmax (max n1 n2)\n nmin (min n1 n2)]\n\n (reduce-n\n (fn [acc idx]\n (if (>= idx nmin)\n (and (= (get vx 0) (get vx 1)) acc)\n (and (= (get v1 idx) (get v2 idx)) acc)))\n true\n nmax)))))\n\n(comment (const-str= \"foo\" \"\"))\n\n(defn ^:no-doc format-num-fn\n \"Private, don't use.\"\n [n-min-fd n-max-fd]\n #?(:clj\n (let [^ThreadLocal nf-proxy\n (thread-local-proxy\n (let [nf (java.text.NumberFormat/getInstance java.util.Locale/US)]\n (when (instance? java.text.DecimalFormat nf)\n (doto ^java.text.DecimalFormat nf\n (.setGroupingSize 3)\n (.setMinimumFractionDigits n-min-fd)\n (.setMaximumFractionDigits n-max-fd)\n (.setDecimalFormatSymbols ; Redundant?\n (doto (java.text.DecimalFormatSymbols.)\n (.setDecimalSeparator \\.)\n (.setGroupingSeparator \\,)))))))]\n\n (fn [n] (.format ^java.text.NumberFormat (.get nf-proxy) n)))\n\n :cljs\n (let [nf\n (js/Intl.NumberFormat. \"en-US\"\n #js{:minimumFractionDigits n-min-fd\n :maximumFractionDigits n-max-fd\n :useGrouping true})]\n\n (fn [n] (.format nf n)))))\n\n(comment ((format-num-fn 2 2) 123123123)) ; \"123,123,123.00\"\n\n(let [fmt0 (format-num-fn 0 0)\n fmt2 (format-num-fn 2 2)]\n\n (defn format-nsecs\n \"Returns given nanoseconds (long) as formatted human-readable string.\n Example outputs: \\\"1.00m\\\", \\\"4.20s\\\", \\\"340ms\\\", \\\"822\u03bcs\\\", etc.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [nanosecs]\n (let [ns (double nanosecs)]\n (cond\n (>= ns 6e10) (str (fmt2 (/ ns 6e10)) \"m\")\n (>= ns 1e9) (str (fmt2 (/ ns 1e9)) \"s\")\n (>= ns 1e6) (str (fmt0 (/ ns 1e6)) \"ms\")\n (>= ns 1e3) (str (fmt0 (/ ns 1e3)) \"\u03bcs\")\n :else (str (fmt0 ns) \"ns\")))))\n\n(comment (qb 1e5 (format-nsecs 1.8e9))) ; 22.68\n\n(defn abbreviate-ns\n \"Give any nameable type (string, keyword, symbol), returns the same\n type with at most `n-full` (default 1) unabbreviated namespace parts.\n\n Example:\n (abbreviate-ns 2 :foo.bar/baz) => :foo.bar/baz\n (abbreviate-ns 1 :foo.bar/baz) => :f.bar/baz\n (abbreviate-ns 0 :foo.bar/baz) => :f.b/baz\"\n\n ([ x] (abbreviate-ns 1 x))\n ([n-full x]\n (let [n-full (long (truss/have nat-int? n-full))\n [p1 p2] (str/split (as-qname x) #\"/\")]\n (if-not p2\n x\n (let [name-part p2\n ns-parts (str/split p1 #\"\\.\")\n n-to-abbr (- (count ns-parts) n-full)\n sb\n (reduce-indexed\n (fn [sb ^long idx #?(:clj ^String in :cljs ^string in)]\n (when-not (zero? idx) (sb-append sb \".\"))\n (if (< idx n-to-abbr)\n (sb-append sb (.substring in 0 1))\n (sb-append sb in)))\n (str-builder)\n ns-parts)]\n\n (sb-append sb \"/\")\n (sb-append sb name-part)\n\n (let [s (str sb)]\n (cond\n (keyword? x) (keyword s)\n (symbol? x) (symbol s)\n :else s)))))))\n\n;;;; Name filter\n\n(declare fmemoize)\n\n(let [as-?qname as-?qname\n always (fn always [_in] true)\n never (fn never [_in] false)\n ns? (fn [x] (instance? #?(:clj clojure.lang.Namespace :cljs Namespace) x))\n\n input-str!\n (fn [x]\n (or\n (as-?qname x)\n (cond\n (nil? x) \"\"\n (ns? x) (str x)\n :else\n (truss/unexpected-arg! x\n {:context `name-filter\n :param 'filter-input-arg\n :expected '#{string keyword symbol namespace nil}}))))\n\n wild-str->?re-pattern\n (fn [s]\n (when (str-contains? s \"*\")\n (re-pattern\n (-> (str \"^\" s \"$\")\n (str/replace \"(.*)\" \"__OR_CHILDREN__\")\n (str/replace \".\" \"\\\\.\")\n (str/replace \"*\" \".*\")\n (str/replace \"__OR_CHILDREN__\" \"(\\\\..*)?\")))))\n\n compile->match-fn\n (fn compile->match-fn\n [spec cache?]\n (cond\n (#{:any \"*\"} spec) always\n (#{:none #{} []} spec) never\n (re-pattern? spec) (fn match? [in] (re-find spec (input-str! in)))\n (ns? spec) (recur (str spec) cache?)\n\n :if-let [str-spec (as-?qname spec)]\n (if-let [re-pattern (wild-str->?re-pattern str-spec)]\n (recur re-pattern cache?)\n (fn match? [in] (= str-spec (input-str! in))))\n\n (or (vector? spec) (set? spec))\n (cond\n ;; (empty? spec) never\n ((set spec) \"*\") always\n (= (count spec) 1) (recur (first spec) cache?)\n :else\n (let [[fixed-strs re-patterns]\n (reduce\n (fn [[fixed-strs re-patterns] spec]\n (let [spec (if (ns? spec) (str spec) (as-qname spec))]\n (if-let [re-pattern (if (re-pattern? spec) spec (wild-str->?re-pattern spec))]\n [ fixed-strs (conj re-patterns re-pattern)]\n [(conj fixed-strs spec) re-patterns ])))\n [#{} []]\n spec)\n\n fx-match (not-empty fixed-strs) ; #{\"foo\" \"bar\"}, etc.\n re-match\n (when-let [re-patterns (not-empty re-patterns)] ; [\"foo.*\", \"bar.*\"], etc.\n (let [f (fn match? [in-str] (rsome #(re-find % in-str) re-patterns))]\n (if cache? (fmemoize f) f)))]\n\n (cond!\n (and fx-match re-match)\n (fn match? [in]\n (let [in-str (input-str! in)]\n (or\n (fx-match in-str)\n (re-match in-str))))\n\n fx-match (fn match? [in] (fx-match (input-str! in)))\n re-match (fn match? [in] (re-match (input-str! in))))))\n\n :else\n (truss/unexpected-arg! spec\n {:context `name-filter\n :param 'filter-spec\n :expected '#{string keyword symbol set regex namespace\n {:allow , :disallow }}})))]\n\n (defn name-filter\n \"Given filter `spec`, returns a compiled (fn match? [x]) that:\n - Takes a string, keyword, symbol, or namespace.\n - Returns true iff input matches spec.\n\n Useful for efficiently filtering namespaces, class names, id kws, etc.\n\n Spec may be:\n - A namespace to match exactly\n - A regex pattern to match\n - A str/kw/sym to match, with \\\"*\\\" and \\\"(.*)\\\" as wildcards:\n \\\"foo.*\\\" will match \\\"foo.bar\\\"\n \\\"foo(.*)\\\" will match \\\"foo.bar\\\" and \\\"foo\\\"\n If you need literal \\\"*\\\"s, use #\\\"\\\\*\\\" regex instead.\n\n - A set/vector of the above to match any\n - A map, {:allow :disallow } with specs as the above:\n If present, `:allow` spec MUST match, AND\n If present, `:disallow` spec MUST NOT match.\n\n Spec examples:\n *ns*, #{}, \\\"*\\\", \\\"foo.bar\\\", \\\"foo.bar.*\\\", \\\"foo.bar(.*)\\\",\n #{\\\"foo\\\" \\\"bar.*\\\"}, #\\\"(foo1|foo2)\\\\.bar\\\",\n {:allow #{\\\"foo\\\" \\\"bar.*\\\"} :disallow #{\\\"foo.*.bar.*\\\"}}.\"\n\n [spec]\n (if-not (map? spec)\n (recur {:allow spec :disallow nil})\n (let [cache? (get spec :cache?)\n allow-spec (or (get spec :allow) (get spec :whitelist))\n disallow-spec (or (get spec :disallow) (get spec :blacklist) (get spec :deny))\n\n allow (when-let [as allow-spec] (compile->match-fn as cache?))\n disallow (when-let [ds disallow-spec] (compile->match-fn ds cache?))]\n\n (cond\n (= disallow always) never\n (= allow never) never\n\n (and allow disallow)\n (fn match? [in] (if ^boolean (allow in) (if ^boolean (disallow in) false true) false))\n\n allow (if (= allow always) always (fn match? [in] (if ^boolean (allow in) true false)))\n disallow (if (= disallow never) always (fn match? [in] (if ^boolean (disallow in) false true)))\n :else\n (truss/ex-info! \"[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil\"\n {:allow-spec allow-spec :disallow-spec disallow-spec}))))))\n\n(comment\n (let [nf (name-filter #{\"foo.*\" \"bar\"})] (qb 1e6 (nf \"foo\"))) ; 85.18\n (let [nf (name-filter \"a(.*)\")] [(nf \"a\") (nf \"a.b\") (nf \"aX\")]))\n\n;;;; Printing\n;;\n;; `print-method` ----- (Clj) Affects `pr`, `print`\n;; `IPrintWithWriter` - (Cljs) Affects `pr`, `print`\n;; `print-dup` -------- (Clj) Affects `pr`\n;;\n;; `*print-readably*` - (Clj) Affects `print-method`, default true\n;; `*print-dup` ------- (Clj) Affects `print-method`, default false\n;;\n;; `print` - Human consumption (console or logs, etc.)\n;; `pr` ---- Mixed use, often for serialization (Cljs: default, Clj: with `*print-dup*`)\n;; `str` --- Mixed use, often delegates to `pr-str`\n\n(comment (for [x [\"s\" {:k \"s\"}], f [pr-str print-str str]] (f x))) ; (\"\\\"s\\\"\" \"s\" \"s\" \"{:k \\\"s\\\"}\" \"{:k s}\" \"{:k \\\"s\\\"}\")\n\n(def* ^:const newline \"Single system newline\" #?(:cljs \"\\n\" :clj (System/getProperty \"line.separator\")))\n(def* ^:const newlines \"Double system newline\" (str newline newline))\n\n#?(:clj\n (defmacro ^:no-doc with-default-print-opts\n \"Private, don't use.\"\n [form]\n `(if (and (nil? *print-level*) (nil? *print-length*) *print-readably*)\n ~form ; Optimization, don't pay for unnecessary binding\n (core/binding [*print-level* nil, *print-length* nil, *print-readably* true]\n ~form))))\n\n(defn ^:no-doc x->str\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [allow-readably? allow-dup? add-newline? x]\n #?(:cljs\n (if allow-readably?\n (if add-newline? (prn-str x) (pr-str x))\n (if add-newline? (println-str x) (print-str x)))\n\n :clj\n (if allow-readably?\n (if (string? x)\n (str \"\\\"\" x \"\\\"\" (when add-newline? newline))\n (let [w (java.io.StringWriter.)]\n (if (and allow-dup? *print-dup*)\n (print-dup x w)\n (print-method x w))\n (when add-newline? (.write w newline))\n (.toString w)))\n\n (if (string? x)\n (if add-newline? (str x newline) x)\n (let [w (java.io.StringWriter.)]\n (core/binding [*print-readably* nil] (print-method x w))\n (when add-newline? (.write w newline))\n (.toString w))))))\n\n(defn ^:no-doc xs->str\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [allow-readably? allow-dup? add-newline? xs]\n #?(:cljs\n (if allow-readably?\n (if add-newline? (apply prn-str xs) (apply pr-str xs))\n (if add-newline? (apply println-str xs) (apply print-str xs)))\n\n :clj\n (let [w (java.io.StringWriter.)\n started?_ (volatile! false)]\n\n (if allow-readably?\n (let [dup? (and allow-dup? *print-dup*)]\n (reduce\n (fn [_ x]\n (if (.deref started?_) (.write w \" \") (vreset! started?_ true))\n (if dup?\n (print-dup x w)\n (print-method x w)))\n nil xs))\n\n (core/binding [*print-readably* nil]\n (reduce\n (fn [_ x]\n (if (.deref started?_) (.write w \" \") (vreset! started?_ true))\n (print-method x w))\n nil xs)))\n\n (when add-newline? (.write w newline))\n (.toString w))))\n\n#?(:cljs\n (do\n (def* pr \"Identical to `core/pr`.\" cljs.core/pr)\n (def* prn \"Identical to `core/prn`.\" cljs.core/prn)\n (def* print \"Identical to `core/print`.\" cljs.core/print)\n (def* println \"Identical to `core/println`.\" cljs.core/println))\n\n :clj\n (do\n (defn pr\n \"Like `core/pr` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args] (.write *out* (xs->str true true false args)))\n\n (defn prn\n \"Like `core/prn` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args]\n (let [w *out*]\n (.write w (xs->str true true true args))\n (when *flush-on-newline* (.flush w))))\n\n (defn print\n \"Like `core/print` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args] (.write *out* (xs->str false false false args)))\n\n (defn println\n \"Like `core/println` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args]\n (let [w *out*]\n (.write w (xs->str false false true args))\n (when *flush-on-newline* (.flush w))))))\n\n(defn pr-edn\n \"Prints given arg to an edn string readable with `read-edn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [x] (with-default-print-opts (x->str true false false x)))\n\n(defn ^:no-doc pr-edn*\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [x] (x->str true false false x))\n\n(comment\n (let [x {:foo \"hello world\"}]\n (qb 1e5 ; [122.91 117.25 104.89 106.39]\n (clojure.core/pr-str x) (pr-edn x) (pr-edn* x) (str x)))\n\n (qb 1e6 ; [778.55 332.36]\n (with-out-str (clojure.core/println :a :b))\n (with-out-str (println :a :b))))\n\n(defn read-edn\n \"Reads given edn string to return a Clj/s value.\"\n {:arglists\n '([s] [{:keys [readers default] :as opts\n :or {readers #?(:clj clojure.core/*data-readers*\n :cljs @cljs.reader/*tag-table*)\n default #?(:clj clojure.core/*default-data-reader-fn*\n :cljs @cljs.reader/*default-data-reader-fn*)}}])}\n\n ([ s] (read-edn nil s))\n ([opts s]\n (cond\n ;; First normalize behaviour for unexpected inputs:\n (or (nil? s) (= s \"\")) nil\n (not (string? s))\n (truss/ex-info! \"[encore/read-edn] Unexpected arg type (expected string or nil)\"\n {:arg (typed-val s)})\n\n :else\n (let [readers (get opts :readers ::dynamic)\n readers\n (if-not (identical-kw? readers ::dynamic)\n readers\n #?(:clj clojure.core/*data-readers*\n :cljs @cljs.reader/*tag-table*))\n\n default (get opts :default ::dynamic)\n default\n (if-not (identical-kw? default ::dynamic)\n default\n #?(:clj clojure.core/*default-data-reader-fn*\n :cljs @cljs.reader/*default-data-reader-fn*))\n\n opts (assoc opts :readers readers :default default)]\n\n #?(:clj (clojure.tools.reader.edn/read-string opts s)\n :cljs (cljs.tools.reader.edn/read-string opts s))))))\n\n(comment\n (core/binding [*data-readers* {'my.tag/foo (fn [x] x)}]\n (read-edn \"#my.tag/foo \\\"text\\\"\")))\n\n#?(:clj\n (defmacro ^:no-doc def-print-impl\n \"Private, don't use. Clj/s: affects `pr`, `print`, etc.\"\n [[sym type] form]\n (if (:ns &env)\n `(extend-protocol ~'IPrintWithWriter ~type (~'-pr-writer [~sym ~'__w ~'_] (~'-write ~'__w ~form)))\n `(defmethod print-method ~type\n [~(with-meta sym {:tag type})\n ~(with-meta '__w {:tag 'java.io.Writer})]\n (.write ~'__w ~form)))))\n\n#?(:clj\n (defmacro ^:no-doc def-print-dup\n \"Private, don't use. Clj only: affects `pr`.\"\n [[sym type] form]\n `(defmethod print-dup ~type\n [~(with-meta sym {:tag type})\n ~(with-meta '__w {:tag 'java.io.Writer})]\n (.write ~'__w ~form))))\n\n#?(:clj (declare hex-ident-str))\n(defn ^:no-doc str-impl\n \"Private, don't use.\"\n ([x class-name ] (str class-name #?@(:clj [ \"@\" (hex-ident-str x)])))\n ([x class-name data] (str class-name \"[\" data #?@(:clj [\" 0x\" (hex-ident-str x)]) \"]\")))\n\n(comment ; Common pattern (encore.stats, telemere.impl, tempel.keys, tufte.impl, carmine.*, etc.)\n (toString [x] (str-impl x \"taoensso.Foo\")) ; \"taoensso.Foo@629c28a6\" - as (str (delay))\n (toString [x] (str-impl x \"taoensso.Foo\") {}) ; \"taoensso.Foo[{...} 0x629c28a6]\" - based on (pr-str (atom {}))\n (def-print-impl [x MyType] (str \"#\" x)) ; \"#taoensso.Foo[{...} 0x629c28a6]\" - as (pr-str (atom {}))\n )\n\n;;;; (S)RNG, etc.\n\n(defn uuid\n \"For Clj: returns a random `java.util.UUID`.\n For Cljs: returns a random UUID string.\n\n Uses strong randomness when possible.\n See also `uuid-str`, `nanoid`, `rand-id-fn`.\"\n {:inline #?(:default nil :clj (fn [] `(java.util.UUID/randomUUID)))}\n #?(:clj (^java.util.UUID [] (java.util.UUID/randomUUID))\n :cljs\n ([]\n (if-let [f (oget js-?crypto \"randomUUID\")]\n (.call f js-?crypto)\n (let [^string quad-hex\n (fn []\n (let [unpadded-hex ^string (.toString (rand-int 65536) 16)]\n (case (count unpadded-hex)\n 1 (str \"000\" unpadded-hex)\n 2 (str \"00\" unpadded-hex)\n 3 (str \"0\" unpadded-hex)\n (do unpadded-hex))))\n\n ver-trip-hex ^string (.toString (bit-or 0x4000 (bit-and 0x0fff (rand-int 65536))) 16)\n res-trip-hex ^string (.toString (bit-or 0x8000 (bit-and 0x3fff (rand-int 65536))) 16)]\n\n (str (quad-hex) (quad-hex) \"-\" (quad-hex) \"-\" ver-trip-hex \"-\" res-trip-hex \"-\"\n (quad-hex) (quad-hex) (quad-hex)))))))\n\n(defn uuid-str\n \"Returns a random UUID string of given length (max 36).\n Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ;; 128 bits of entropy with default length (36)\n ([max-len] (or (substr (uuid-str) :by-len 0 max-len) \"\"))\n ([ ]\n #?(:clj (str (uuid))\n :cljs (uuid))))\n\n(comment (qb 1e6 (uuid-str 5)))\n\n#?(:clj\n (do\n (deftype ReseedingSRNG [^java.security.SecureRandom srng ^:volatile-mutable ^long call-count]\n clojure.lang.IFn\n (invoke [_]\n ;; Regularly supplement seed for extra security\n (if (< call-count 1024)\n (set! call-count (unchecked-inc call-count))\n (do\n (set! call-count 0)\n (.setSeed srng (.generateSeed srng 8))))\n srng))\n\n (comment (let [rsrng (reseeding-srng)] (qb 1e6 (secure-rng) (rsrng)))) ; [48.71 28.9]\n\n (defn ^:no-doc reseeding-srng\n \"Private, don't use. Returns a new stateful `ReseedingSRNG`.\"\n ^ReseedingSRNG []\n (compile-if (java.security.SecureRandom/getInstanceStrong) ; Java 8+, blocking\n (ReseedingSRNG. (java.security.SecureRandom/getInstanceStrong) 0)\n (ReseedingSRNG. (java.security.SecureRandom/getInstance \"SHA1SRNG\") 0)))\n\n (def ^:private rsrng* (thread-local-proxy (reseeding-srng)))\n\n (defn secure-rng\n \"Returns an auto-reseeding thread-local `java.security.SecureRandom`.\n Favours security over performance. May block while waiting on entropy!\"\n ^java.security.SecureRandom [] ((.get ^ThreadLocal rsrng*)))\n\n (defn secure-rng-mock!!!\n \"Returns **INSECURE** `java.security.SecureRandom` mock instance backed by\n a seeded deterministic `java.util.Random`. Useful for testing, etc.\"\n ^java.security.SecureRandom [long-seed]\n (let [long-seed (long long-seed)\n insecure-rng (java.util.Random. long-seed)]\n\n (proxy [java.security.SecureRandom] []\n (getAlgorithm [] (str \"INSECURE deterministic, seed=\" long-seed))\n (nextBytes [^bytes ba] (.nextBytes insecure-rng ba)))))))\n\n(defn rand-bytes\n \"Returns a random byte array of given size.\"\n #?(:clj ^bytes [secure? size] :cljs [prefer-secure? size])\n #?(:clj\n (let [ba (byte-array size)]\n (if secure?\n (.nextBytes (secure-rng) ba)\n (.nextBytes (java.util.concurrent.ThreadLocalRandom/current) ba))\n ba)\n\n :cljs\n (let [ba (js/Uint8Array. size)]\n (if-let [crypto (and prefer-secure? js-?crypto)]\n (.getRandomValues crypto ba)\n (dotimes [i size] (aset ba i (Math/floor (* 256 (js/Math.random))))))\n ba)))\n\n(comment (qb 1e6 (rand-bytes false 16) (rand-bytes true 16))) ; [59.66 196.49]\n\n(defn rand-id-fn\n \"Returns a (fn rand-id []) that returns random id strings.\n Options include:\n `:chars` - \u2208 #{ :nanoid :alphanumeric :no-look-alikes ...}\n `:len` - Length of id strings to generate\n `:rand-bytes-fn` - Optional (fn [size]) to return random byte array of given size\n\n See also `uuid-str`, `nano-id`.\"\n [{:keys [chars ^long len rand-bytes-fn]\n :or\n {chars :nanoid\n len 21\n rand-bytes-fn (partial rand-bytes true)}}]\n\n (let [chars\n (case chars\n :alphanumeric \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\" ; 62 chars\n :nanoid \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\" ; 64 chars\n :nanoid-readable \"346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz\" ; 49 chars, no look-alikes\n :numbers \"0123456789\" ; 10 chars\n :alpha-lowercase \"abcdefghijklmnopqrstuvwxyz\" ; 26 chars\n :alpha-uppercase \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" ; 26 chars\n :hex-lowercase \"0123456789abcdef\" ; 16 chars\n :hex-uppercase \"0123456789ABCDEF\" ; 16 chars\n (truss/have string? chars))\n\n nchars (count chars)\n max-char-idx (dec nchars)\n chars\n #?(:clj (.toCharArray (str chars))\n :cljs (object-array chars))\n\n ;; (bit-and ) uniformly maps (256 vals) to\n ;; the valid subset of (<256) *without* bias. Downside is that\n ;; invalid char-idxs need to be discarded, hence the stepping mechanism and\n ;; need for extra bytes when nchars\u2224256.\n mask ; Set all bits except the most significant, Ref. \n (bit-and -1\n (dec\n (bit-shift-left 2\n (int (Math/floor (/ (Math/log (dec nchars)) (Math/log 2)))))))\n\n ;; Calculate size of random byte arrays to fill\n exp-bytes (double (/ (* mask len) nchars))\n stepn (int (max 2 (Math/ceil (* 0.2 exp-bytes)))) ; Used iff step1 insufficient\n step1 ; Size of initial random byte array\n (int\n (if (zero? (int (mod 256 nchars)))\n len ; n|256 => no discarding (steps) needed\n (Math/ceil (* 1.2 exp-bytes))))]\n\n (fn rand-id []\n (let [sb (str-builder)]\n (loop [idx 0, max-idx (dec step1), ^bytes rand-bytes (rand-bytes-fn step1)]\n\n (let [possible-ch-idx (bit-and (aget rand-bytes idx) mask)]\n (when (<= possible-ch-idx max-char-idx)\n (.append sb (aget chars possible-ch-idx))))\n\n (cond\n (== (.length sb) len) (str sb)\n (== idx max-idx) (recur 0 (dec stepn) (rand-bytes-fn stepn))\n :else (recur (unchecked-inc idx) max-idx rand-bytes)))))))\n\n(comment\n (let [f0 nanoid\n f1 (rand-id-fn {:len 21, :chars :nanoid})\n f2 (rand-id-fn {:len 22, :chars :nanoid-readable})]\n (qb 1e6 (uuid-str) (f0) (f1) (f2))) ; [180.49 270.15 295.03 444.04]\n\n ;; Bits of entropy\n (/ (Math/log (Math/pow 16 32)) (Math/log 2)) ; uuid: 128\n (/ (Math/log (Math/pow 64 21)) (Math/log 2)) ; nanoid(21): 126\n (/ (Math/log (Math/pow 49 23)) (Math/log 2)) ; nanoid-readable(23): ~129\n )\n\n(let [chars\n (let [s \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\"]\n #?(:clj (.toCharArray s) :cljs (object-array s)))]\n\n (defn nanoid\n \"Returns a random \\\"Nano ID\\\" of given length, Ref. .\n Faster, variable-length version of (rand-id-fn {:chars :nanoid}).\n 126 bits of entropy with default length (21).\n See also `uuid-str`, `rand-id-fn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ ] (nanoid true 21))\n ([len] (nanoid true len))\n #?(:clj\n ([secure? len]\n (if secure?\n (com.taoensso.encore.Ids/genNanoId (.get com.taoensso.encore.Ids/SRNG_STRONG) len)\n (com.taoensso.encore.Ids/genNanoId len)))\n\n :cljs\n ([prefer-secure? len]\n (let [sb (str-builder)\n ba (rand-bytes prefer-secure? len)\n max-idx (dec len)]\n\n (loop [idx 0]\n ;; nchars|256 so (bit-and 0x3f) yields uniform\n ;; distribution of chars without need for stepping\n (.append sb (aget chars (bit-and (aget ba idx) 0x3f)))\n (when (< idx max-idx) (recur (unchecked-inc idx))))\n\n (str sb))))))\n\n(comment (qb 1e6 (uuid-str) (nanoid) (nanoid false 21))) ; [203.98 205.53 83.87]\n\n;;;; Hex strings\n\n#?(:clj\n (defn hex-ident-str\n \"Returns hex string of given Object's `identityHashCode` (e.g. \\\"5eeb49f2\\\").\"\n ^String [obj] (Integer/toHexString (System/identityHashCode obj))))\n\n#?(:clj\n (do\n (let [hex-chars (mapv identity \"0123456789abcdef\")\n byte->char-pair\n (fn [^StringBuilder sb b]\n (let [v (bit-and ^byte b 0xFF)]\n (.append sb (hex-chars (bit-shift-right v 4)))\n (.append sb (hex-chars (bit-and v 0x0F)))))]\n\n (defn ba->hex-str\n \"Returns byte[] for given hex string.\"\n ^String [^bytes ba]\n (str (reduce (fn [sb b] (byte->char-pair sb b)) (StringBuilder.) ba))))\n\n (let [char-pair->byte\n (fn [[c1 c2]]\n (let [d1 (Character/digit ^char c1 16)\n d2 (Character/digit ^char c2 16)]\n (unchecked-byte (+ (bit-shift-left d1 4) d2))))]\n\n (defn hex-str->ba\n \"Returns hex string for given byte[].\"\n ^bytes [^String s]\n (if (even? (count s))\n (byte-array (into [] (comp (partition-all 2) (map char-pair->byte)) s))\n (truss/ex-info! \"[encore/hex-str->ba] Invalid hex string (length must be even)\"\n {:given (typed-val s)}))))\n\n ;; TODO Any way to auto select fastest implementation?\n ;; Ref. \n ;; Auto selection seems to cause problems with AOT and/or Graal\n\n #_\n (compile-if com.google.common.io.BaseEncoding\n (let [encoding (.lowerCase (com.google.common.io.BaseEncoding/base16))]\n (defn- ba->hex-str-guava ^String [^bytes ba] (.encode encoding ba))\n (defn- hex-str->ba-guava ^bytes [^String s] (.decode encoding s))))\n\n #_\n (compile-if org.apache.commons.codec.binary.Hex\n (defn- ba->hex-str-commons ^String [^bytes ba] (org.apache.commons.codec.binary.Hex/encodeHexString ba))\n (defn- hex-str->ba-commons ^bytes [^String s] (org.apache.commons.codec.binary.Hex/decodeHex s)))\n\n #_\n (compile-if java.util.HexFormat ; Fastest, needs Java 17+\n (let [hf (java.util.HexFormat/of)]\n (defn- ba->hex-str-hf ^String [^bytes ba] (.formatHex hf ba))\n (defn- hex-str->ba-hf ^bytes [^String s] (.parseHex hf s))))))\n\n(comment\n (vec (-hex-str->ba (-ba->hex-str (byte-array [1 2 3 4 5 6 120 -120 127]))))\n (let [ba (byte-array (range -128 128))]\n (qb 1e4 (hex-str->ba (ba->hex-str ba)))))\n\n;;;; LightAtom\n\n#?(:cljs\n (deftype LightAtom [^:mutable state]\n IDeref (-deref [_ ] state)\n IReset (-reset! [_ new] (set! state new) new)\n ISwap (-swap! [t swap-fn] (t swap-fn))\n IFn\n (-invoke [_ ] state)\n (-invoke [_ swap-fn] (let [new (swap-fn state)] (set! state new) new))\n (-invoke [_ k swap-fn]\n (let [old-map state\n new-val (swap-fn (get old-map k))\n new-map (assoc old-map k new-val)]\n (set! state new-map)\n (do new-val))))\n\n :clj\n (deftype LightAtom [^AtomicReference aref]\n clojure.lang.IDeref (deref [_] (.get aref))\n clojure.lang.IAtom\n (compareAndSet [_ old new] (.compareAndSet aref old new))\n (reset [_ new] (.set aref new) new)\n (swap [t swap-fn] (t swap-fn))\n\n clojure.lang.IAtom2\n (resetVals [t new] (.swapVals t (fn [_] new)))\n (swapVals [_ swap-fn]\n (let [old_ (clojure.lang.Volatile. nil)\n new (.updateAndGet aref (reify UnaryOperator (apply [_ old] (.reset old_ old) (swap-fn old))))]\n [(.deref old_) new]))\n\n clojure.lang.IFn\n (invoke [_ ] (.get aref))\n (invoke [_ swap-fn] (.updateAndGet aref (reify UnaryOperator (apply [_ old] (swap-fn old)))))\n (invoke [_ k swap-fn]\n (let [new-map\n (.updateAndGet aref\n (reify UnaryOperator\n (apply [_ old-map]\n (let [new-val (swap-fn (get old-map k))\n new-map (assoc old-map k new-val)]\n new-map))))]\n (get new-map k)))))\n\n(defn ^:no-doc ^LightAtom latom\n \"Private, don't use. Micro-optimized lightweight `atom`.\n Up to 30% faster than standard atoms, with the same atomicity guarantees.\"\n [init-state]\n (LightAtom.\n #?(:clj (AtomicReference. init-state)\n :cljs init-state)))\n\n(comment\n (let [a (atom 0), v (volatile! 0), l (latom 0)]\n {:deref (qb 2e6 @a @v (l))\n :new (qb 2e6 (atom 0) (volatile! 0) (latom 0))\n :swap (qb 2e6 (swap! a inc) (vswap! v inc) (l inc))\n :cas (qb 2e6 (compare-and-set! a 0 1) (-cas!? l 0 1))})\n\n {:deref [85.75 83.82 63.23], ; ~25% faster\n :new [115.45 83.92 94.42], ; ~20% faster\n :swap [144.15 110.94 99.53], ; ~30% faster\n :cas [102.42 67.85]} ; ~35% faster\n )\n\n#?(:clj\n (let [cache_ (latom {})]\n (defn ^:no-doc caching-satisfies?\n \"Private, don't use.\"\n [protocol x]\n (let [t (if (fn? x) ::fn (type x))]\n (or\n (get (cache_) t)\n (if-let [uncachable-type? (re-find #\"\\d\" (str t))]\n (do (clojure.core/satisfies? protocol x))\n (cache_ t (fn [_] (clojure.core/satisfies? protocol x)))))))))\n\n;;;; Swap API\n;; - reset-in! ; Keys: 0, 1, n (general)\n;; - reset-val! ; Keys: 1 (optimized)\n;;\n;; - reset-in!? ; Keys: 0, 1, n (general)\n;; - reset-val!? ; Keys: 1 (optimized)\n;; - reset!? ; Keys: 0 (optimized)\n;;\n;; - swap-in! ; Keys: 0, 1, n (general)\n;; - swap-val! ; Keys: 1 (optimized)\n;;\n;; - pull-val! ; Keys: 1 (optimized, common transform)\n\n#?(:clj\n (let [atom-tag (compile-if clojure.lang.IAtom 'clojure.lang.IAtom 'clojure.lang.Atom)]\n (defmacro ^:no-doc -cas!?\n \"Private, don't use. Micro-optimized `compare-and-set!`.\"\n [atom_ old-val new-val]\n (if (:ns &env)\n `(compare-and-set! ~atom_ ~old-val ~new-val)\n `(.compareAndSet ~(with-meta atom_ {:tag atom-tag}) ~old-val ~new-val)))))\n\n(comment (let [a (atom nil)] (qb 1e6 (compare-and-set! a 0 1) (-cas!? a 0 1)))) ; [50.06 35.64]\n\n(defn- -reset-k0!\n \"Impln. for 0-key resets\"\n [return atom_ m1]\n (loop []\n (let [m0 @atom_]\n (if (-cas!? atom_ m0 m1)\n (return m0 m0 m1 m1) ; [m0 v0 m1 v1]\n (recur)))))\n\n(defn- -reset-k1!\n \"Impln. for 1-key resets\"\n [return atom_ k not-found v1]\n (loop []\n (let [m0 @atom_\n m1 (assoc m0 k v1)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get m0 k not-found) m1 v1) ; [m0 v0/nx m1 v1]\n (recur)))))\n\n(defn- -reset-kn!\n \"Impln. for n-key resets\"\n [return atom_ ks not-found v1]\n (if-let [ks-seq (seq ks)]\n (if (next ks-seq)\n (loop []\n (let [m0 @atom_\n m1 (assoc-in m0 ks v1)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get-in m0 ks not-found) m1 v1) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (-reset-k1! return atom_ (nth ks 0) not-found v1))\n (-reset-k0! return atom_ v1)))\n\n(let [return (fn [m0 v0 m1 v1] v0)]\n\n (defn reset-in! ; General case\n \"Like `reset!` but supports `update-in` semantics, returns .\"\n ([atom_ val] (-reset-k0! return atom_ val))\n ([atom_ ks val] (-reset-kn! return atom_ ks nil val))\n ([atom_ ks not-found val] (-reset-kn! return atom_ ks not-found val)))\n\n (defn reset-val! ; Optimized k1 case\n \"Like `reset-in!` but optimized for single-key case. Returns .\"\n ([atom_ k val] (-reset-k1! return atom_ k nil val))\n ([atom_ k not-found val] (-reset-k1! return atom_ k not-found val))))\n\n(let [sentinel (new-object)\n return (fn [m0 v0 m1 v1] (not= v0 v1))]\n\n (defn reset-in!? ; Keys: 0, 1, n (general)\n \"Like `reset-in!` but returns true iff the atom's value changed.\"\n ([atom_ val] (-reset-k0! return atom_ val))\n ([atom_ ks val] (-reset-kn! return atom_ ks sentinel val))\n ([atom_ ks not-found val] (-reset-kn! return atom_ ks not-found val)))\n\n (defn reset-val!? ; Keys: 1 (optimized)\n \"Like `reset-in!?` but optimized for single-key case.\n Returns true iff the atom's value changed.\"\n ([atom_ k new-val] (let [v0 (reset-val! atom_ k sentinel new-val)] (not= v0 new-val)))\n ([atom_ k not-found new-val] (let [v0 (reset-val! atom_ k not-found new-val)] (not= v0 new-val)))))\n\n(comment\n (reset-in!? (atom :a) :b)\n (reset-in!? (atom {:a :A}) [:b] :B))\n\n(defn reset!? ; Keys: 0 (optimized)\n \"Atomically swaps value of `atom_` to `val` and returns\n true iff the atom's value changed. See also `reset-in!?`.\"\n [atom_ val]\n (loop []\n (let [old @atom_]\n (if (= old val)\n false ; Micro-optimization\n (if (-cas!? atom_ old val)\n true\n (recur))))))\n\n(comment (let [a (atom nil)] [(reset!? a \"foo\") (reset!? a \"foo\") (reset!? a \"bar\")]))\n\n(do\n (deftype Swapped [newv returnv])\n (defn swapped\n \"For use within the swap functions of `swap-in!` and `swap-val!`.\n\n Allows the easy decoupling of new and returned values. Compare:\n (let [a (atom 0)] [(core/swap! a (fn [old] (inc old) )) @a]) [1 1] ; new=1, return=1\n (let [a (atom 0)] [(swap-in! a (fn [old] (swapped (inc old) old))) @a]) [0 1] ; new=1, return=0\n\n Faster and much more flexible than `core/swap-vals!`, etc.\n Especially useful when combined with the `update-in` semantics of `swap-in!`, etc.\"\n #?(:clj {:inline (fn [new-val return-val] `(taoensso.encore.Swapped. ~new-val ~return-val))})\n ^Swapped [new-val return-val] (taoensso.encore.Swapped. new-val return-val))\n\n (defn ^:no-doc swapped-vec\n \"Private, don't use.\"\n [x]\n (if (instance? Swapped x)\n [(.-newv ^Swapped x) (.-returnv ^Swapped x)]\n [x x]))\n\n (defn swapped?\n \"Returns true iff given `Swapped` argument.\"\n #?(:cljs {:tag 'boolean}\n :clj {:inline (fn [x] `(instance? taoensso.encore.Swapped ~x))})\n [x] (instance? taoensso.encore.Swapped x))\n\n (comment (qb 1e6 (.-newv (swapped \"new\" \"return\"))))) ; 31.69\n\n(defn- return-swapped [^Swapped sw m0 m1]\n (let [rv (.-returnv sw)]\n (case rv\n :swap/changed? (not= m1 m0)\n :swap/new m1\n :swap/old m0\n rv)))\n\n(defn- -swap-k0!\n \"Impln. for 0-key swaps\"\n [return atom_ f]\n (loop []\n (let [m0 @atom_\n s1 (f m0)\n sw? (instance? Swapped s1)\n m1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? m1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 m0 m0 m0)) ; [m0 v0 m1 v1]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 m0 m1 m1)) ; [m0 v0 m1 v1]\n (recur))))))\n\n(defn- -swap-k1!\n \"Impln. for 1-key swaps\"\n [return atom_ k not-found f]\n (if (identical-kw? f :swap/dissoc)\n (loop []\n (let [m0 @atom_\n m1 (dissoc m0 k)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get m0 k not-found) m1 :swap/dissoc) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (loop []\n (let [m0 @atom_\n v0 (get m0 k not-found) ; nx\n s1 (f v0)\n sw? (instance? Swapped s1)\n v1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? v1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m0) ; rv\n (return m0 v0 m0 v0)) ; [m0 v0/nx m1 v1]\n\n (let [m1\n (if (identical-kw? v1 :swap/dissoc)\n (dissoc m0 k)\n (assoc m0 k v1))]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 v0 m1 v1)) ; [m0 v0/nx m1 v1]\n (recur))))))))\n\n(defn- -swap-kn!\n \"Impln. for n-key swaps\"\n [return atom_ ks not-found f]\n (if-let [ks-seq (seq ks)]\n (if (next ks-seq)\n\n (if (identical-kw? f :swap/dissoc)\n (loop []\n (let [m0 @atom_\n m1 (dissoc-in m0 ks)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get-in m0 ks not-found) m1 :swap/dissoc) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (loop []\n (let [m0 @atom_\n v0 (get-in m0 ks not-found) ; nx\n s1 (f v0)\n sw? (instance? Swapped s1)\n v1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? v1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m0) ; rv\n (return m0 v0 m0 v0)) ; [m0 v0/nx m1 v1]\n\n (let [m1\n (if (identical-kw? v1 :swap/dissoc)\n (dissoc-in m0 ks)\n (assoc-in m0 ks v1))]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 v0 m1 v1)) ; [m0 v0/nx m1 v1]\n (recur)))))))\n\n (-swap-k1! return atom_ (nth ks 0) not-found f))\n (-swap-k0! return atom_ f)))\n\n(let [return (fn [m0 v0 m1 v1] v1)]\n (defn swap-in! ; Keys: 0, 1, n (general)\n \"Like `swap!` but supports `update-in` semantics and `swapped`.\n Returns or :\n (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2] inc) => 6\n (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2]\n (fn [old] (swapped (inc old) old))) => 5\"\n ([atom_ f] (-swap-k0! return atom_ f))\n ([atom_ ks f] (-swap-kn! return atom_ ks nil f))\n ([atom_ ks not-found f] (-swap-kn! return atom_ ks not-found f)))\n\n (defn swap-val! ; Keys: 1 (optimized)\n \"Like `swap-in!` but optimized for single-key case.\n Returns or :\n (swap-val! (atom {:k 5}) :k inc) => 6\n (swap-val! (atom {:k 5}) :k\n (fn [old] (swapped (inc old) old))) => 5\"\n ([atom_ k f] (-swap-k1! return atom_ k nil f))\n ([atom_ k not-found f] (-swap-k1! return atom_ k not-found f))))\n\n(defn pull-val! ; Keys: 1 (optimized, common transform)\n \"Removes and returns value mapped to key:\n (let [a (atom {:k :v})]\n [(pull-val! a :k) @a]) => [:v {}]\"\n ([atom_ k ] (pull-val! atom_ k nil))\n ([atom_ k not-found]\n (swap-val! atom_ k not-found\n (fn [v0] (swapped :swap/dissoc v0)))))\n\n(comment (pull-val! (atom {:a :A}) :b :nx))\n\n;;;; Memoization\n\n#?(:clj\n (defmacro ^:private deref! [delay]\n (if (list-form? delay)\n `(let [~(with-meta 'd {:tag 'clojure.lang.Delay}) ~delay] (.deref ~'d))\n (list '.deref (with-meta delay '{:tag clojure.lang.Delay})))))\n\n(comment (let [d (delay nil)] (qb 1e6 @d (deref! d)))) ; [42.05 23.15]\n(comment (+ ^long (or nil 1) 1)) ; Reflects\n\n(defn memoize-last\n \"Like `core/memoize` but only caches the given fn's latest input.\n Speeds repeated fn calls with the same arguments.\n Great for ReactJS render fn caching, etc.\"\n [f]\n (let [sentinel (new-object)\n call\n #?(:cljs\n (let [in_ (volatile! (new-object))\n out_ (volatile! nil)]\n (fn [in* f0]\n (loop []\n (if (= in* @in_)\n @out_\n (let [out (f0)]\n (vreset! in_ in*)\n (vreset! out_ out)\n out)))))\n\n :clj\n (let [cache_ (java.util.concurrent.atomic.AtomicReference. nil)] ; [in out_]\n (fn [in* f0]\n (deref!\n (loop []\n (let [current (.get cache_)]\n (or\n (when-let [[in out_] current] (when (= in in*) out_))\n (let [dv (delay (f0))] (if (.compareAndSet cache_ current [in* dv]) dv (recur))))))))))]\n\n (fn memoized-fn\n ([ ] (call sentinel (fn [] (f))))\n ([x ] (call x (fn [] (f x))))\n ([x y ] (call [sentinel x y ] (fn [] (f x y))))\n ([x y z ] (call [sentinel x y z ] (fn [] (f x y z))))\n ([x y z & more] (call [sentinel x y z more] (fn [] (apply f x y z more)))))))\n\n(comment (let [f1 (memoize-last (fn [& args] (println [:last args])))] (qb 1e6 (f1 :x)))) ; 36.23\n\n(defn fmemoize\n \"For Clj: fastest possible memoize. Non-racey, 0-7 arity only.\n For Cljs: same as `core/memoize`.\"\n [f]\n #?(:cljs (cljs.core/memoize f)\n :clj\n ;; Non-racey just as fast as racey, and protects against nils in maps\n (let [sentinel (new-object)\n cache0_ (java.util.concurrent.atomic.AtomicReference. nil)\n cache1_ (java.util.concurrent.ConcurrentHashMap.)\n cachen_ (java.util.concurrent.ConcurrentHashMap.)]\n\n (fn\n ([ ] (deref! (or (.get cache0_) (let [dv (delay (f))] (if (.compareAndSet cache0_ nil dv) dv (.get cache0_))))))\n ([x]\n (let [x* (if (identical? x nil) sentinel x)]\n (deref!\n (or\n (.get cache1_ x*)\n (let [dv (delay (f x))]\n (or (.putIfAbsent cache1_ x* dv) dv))))))\n\n ([x1 x2 ] (let [xs [x1 x2] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 ] (let [xs [x1 x2 x3] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 ] (let [xs [x1 x2 x3 x4] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 ] (let [xs [x1 x2 x3 x4 x5] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 x6 ] (let [xs [x1 x2 x3 x4 x5 x6] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5 x6)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 x6 x7] (let [xs [x1 x2 x3 x4 x5 x6 x7]] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5 x6 x7))] (or (.putIfAbsent cachen_ xs dv) dv))))))))))\n\n(comment\n (let [f0 (fmemoize (fn []))\n f1 (fmemoize (fn [x1]))\n f2 (fmemoize (fn [x1 x2]))]\n\n (qb 1e6 ; [23.19 30.11 48.09]\n (f0) (f1 :x1) (f2 :x1 :x2))))\n\n(defn- gc-now? [rate]\n #?(:clj (<= (java.lang.Math/random) ^double rate)\n :cljs (<= (.random js/Math) rate)))\n\n(comment (qb 1e6 (gc-now? 0.5)))\n\n(deftype SimpleCacheEntry [delay ^long udt])\n(deftype TickedCacheEntry [delay ^long udt ^long tick-lru ^long tick-lfu])\n\n(declare top)\n\n(defn cache\n \"Returns a cached version of given referentially transparent function `f`.\n\n Like `core/memoize` but:\n - Often faster, depending on options.\n - Prevents race conditions on writes.\n - Supports cache invalidation by prepending args with:\n - `:cache/del` ; Delete cached item for subsequent args, returns nil.\n - `:cache/fresh` ; Renew cached item for subsequent args, returns new val.\n\n - Supports options:\n - `ttl-ms` ; Expire cached items after many msecs.\n - `size` ; Restrict cache size to many items at the next garbage\n ; collection (GC).\n\n - `gc-every` ; Run garbage collection (GC) approximately once every\n ; many calls to cached fn. If unspecified, GC rate\n ; will be determined automatically based on `size`.\n\n See also `defn-cached`, `fmemoize`, `memoize-last`.\"\n\n ([f] ; De-raced, commands\n #?(:cljs\n (let [cache_ (volatile! {})\n get-sentinel (js-obj)]\n\n (fn cached [& xs]\n (let [x1 (first xs)]\n (case x1\n\n (:cache/del :mem/del)\n (let [xn (next xs)\n x2 (first xn)]\n (if (identical-kw? x2 :mem/all)\n (vreset! cache_ {})\n (vswap! cache_ dissoc xn))\n nil)\n\n (:cache/fresh :mem/fresh)\n (let [xn (next xs)\n v (apply f xn)]\n (vswap! cache_ assoc xn v) v)\n\n (let [v (get @cache_ xs get-sentinel)]\n (if (identical? v get-sentinel)\n (let [v (apply f xs)] (vswap! cache_ assoc xs v) v)\n v))))))\n\n :clj\n (let [nil-sentinel (Object.)\n cache_ (java.util.concurrent.ConcurrentHashMap.)]\n\n (fn\n ([ ] @(or (.get cache_ nil-sentinel)\n (let [dv (delay (f))]\n (or (.putIfAbsent cache_ nil-sentinel dv) dv))))\n\n ([& xs]\n (let [x1 (first xs)]\n (case x1\n\n (:cache/del :mem/del)\n (let [xn (next xs)\n x2 (first xn)]\n (if (identical-kw? x2 :mem/all)\n (.clear cache_)\n (.remove cache_ (or xn nil-sentinel)))\n nil)\n\n (:cache/fresh :mem/fresh)\n @(let [xn (next xs)\n dv (delay (apply f xn))]\n (.put cache_ (or xn nil-sentinel) dv) dv)\n\n @(or (.get cache_ xs)\n (let [dv (delay (apply f xs))]\n (or (.putIfAbsent cache_ xs dv) dv))))))))))\n\n ([{:keys [size ttl-ms gc-every] :as opts} f]\n\n (truss/have? [:ks<= #{:size :ttl-ms :gc-every}] opts)\n (truss/have? [:or nil? pos-num?] size ttl-ms gc-every)\n\n (cond\n size ; De-raced, commands, ttl, gc, max-size\n (let [gc-now? gc-now?\n ticker (counter)\n cache_ (latom nil) ; { }\n latch_ (latom nil) ; Used to pause writes during gc\n ttl-ms (long (or ttl-ms 0))\n ttl? (not (zero? ttl-ms))\n size (long size)\n gc-every (long (or gc-every (clamp-int 1000 16000 size)))]\n\n (fn cached [& args]\n (let [a1 (first args)]\n (case a1\n (:cache/del :mem/del)\n (let [argn (next args)\n a2 (first argn)]\n (if (case a2 (:cache/all :mem/all) true false)\n (reset! cache_ nil)\n (cache_ #(dissoc % argn)))\n nil)\n\n (let [^long tick (ticker) ; Always inc, even on reads\n instant (if ttl? (now-udt) 0)]\n\n (when (and\n ;; We anyway have a tick, so may as well be exact\n ;; (gc-now? gc-rate)\n (== (rem tick gc-every) 0)\n (>= (count (cache_)) (* 1.1 size)))\n\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)\n udt-floor (- instant ttl-ms)]\n\n (when (-cas!? latch_ nil latch)\n ;; First prune ttl-expired stuff\n (when ttl?\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce-kv\n (fn [acc k ^TickedCacheEntry e]\n (if (< (.-udt e) udt-floor)\n (dissoc! acc k)\n acc))\n (transient (or m {}))\n m)))))\n\n ;; Then prune by ascending (worst) tick-sum:\n (let [snapshot (cache_)\n n-to-gc (- (count snapshot) size)]\n\n (when (>= n-to-gc (* 0.1 size))\n (let [ks-to-gc\n (top n-to-gc\n (fn [k]\n (let [e ^TickedCacheEntry (get snapshot k)]\n (+ (.-tick-lru e) (.-tick-lfu e))))\n (keys snapshot))]\n\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce (fn [acc in] (dissoc! acc in))\n (transient (or m {})) ks-to-gc)))))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n\n nil)))\n\n (let [fresh? (case a1 (:cache/fresh :mem/fresh) true false)\n args (if fresh? (next args) args)\n\n _ #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)) :default nil)\n ^TickedCacheEntry e\n (cache_ args\n (fn swap-fn [?e]\n (if (or (nil? ?e) fresh?\n (> (- instant (.-udt ^TickedCacheEntry ?e)) ttl-ms))\n (TickedCacheEntry. (delay (apply f args)) instant tick 1)\n (let [e ^TickedCacheEntry ?e]\n (TickedCacheEntry. (.-delay e) (.-udt e)\n tick (inc (.-tick-lfu e)))))))]\n\n @(.-delay e)))))))\n\n ttl-ms ; De-raced, commands, ttl, gc\n (let [gc-now? gc-now?\n cache_ (latom nil) ; { }\n latch_ (latom nil) ; Used to pause writes during gc\n ttl-ms (long ttl-ms)\n gc-rate\n (let [gce (or gc-every 8e3)]\n (/ 1.0 (long gce)))]\n\n (fn cached [& args]\n (let [a1 (first args)]\n (case a1\n (:cache/del :mem/del)\n (let [argn (next args)\n a2 (first argn)]\n (if (case a2 (:cache/all :mem/all) true false)\n (reset! cache_ nil)\n (cache_ #(dissoc % argn)))\n nil)\n\n (let [instant (now-udt)]\n\n (when (gc-now? gc-rate)\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)]\n (when (-cas!? latch_ nil latch)\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce-kv\n (fn [acc k ^SimpleCacheEntry e]\n (if (> (- instant (.-udt e)) ttl-ms)\n (dissoc! acc k)\n acc))\n (transient (or m {}))\n m))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n\n nil)))\n\n (let [fresh? (case a1 (:cache/fresh :mem/fresh) true false)\n args (if fresh? (next args) args)\n _ #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)) :default nil)\n ^SimpleCacheEntry e\n (cache_ args\n (fn swap-fn [?e]\n (if (or (nil? ?e) fresh?\n (> (- instant (.-udt ^SimpleCacheEntry ?e)) ttl-ms))\n (SimpleCacheEntry. (delay (apply f args)) instant)\n ?e)))]\n @(.-delay e)))))))\n\n :else (cache f))))\n\n(defn memoize\n \"Alternative way to call `cache`, provided mostly for back compatibility.\n See `cache` docstring for details.\"\n ;; {:deprecated \"Encore v3.36.0 (2022-11-18)\"}\n ([ f] (cache f))\n ([ ttl-ms f] (cache { :ttl-ms ttl-ms} f))\n ([size ttl-ms f] (cache {:size size :ttl-ms ttl-ms} f)))\n\n(comment\n (do\n (def f0 (fn [& args] (Thread/sleep 600) (rand)))\n (def f1 (clojure.core/memoize f0))\n (def f2 (memoize f0))\n (def f3 (memoize 5000 f0))\n (def f4 (memoize 2 nil f0))\n (def f5 (memoize 2 5000 f0))\n (def f6 (fmemoize f0)))\n\n (qb 1e5 (f1) (f2) (f3) (f4) (f5) (f6)) ; [ 5.4 3.95 16.56 13.98 18.01 3.97]\n (qb 1e5 (f1 :x) (f2 :x) (f3 :x) (f4 :x) (f5 :x) (f6 :x)) ; [14.71 8.96 31.27 37.37 45.42 6.76]\n\n (let [f1 (clojure.core/memoize (fn [] (Thread/sleep 5) (print \"f1\\n\")))\n f2 (memoize (fn [] (Thread/sleep 5) (print \"f2\\n\")))]\n (println \"---\")\n (dotimes [_ 10]\n (future (f2)) ; Never prints >once\n (future (f1))))\n\n (do ; Test GC (monitor JVM memory)\n (defn f1 [_] (vec (repeatedly 1000 #(str (rand)))))\n (def m1 (memoize 500 (ms :days 3) f1))\n (dotimes [n 1e5] (m1 (rand)))))\n\n#?(:clj\n (defmacro defn-cached\n \"Defines a cached function.\n Like (def (cache )), but preserves\n :arglists (arity) metadata as with `defn`:\n\n (defn-cached ^:private my-fn {:ttl-ms 500}\n \\\"Does something interesting, caches resultes for 500 msecs\\\"\n [n]\n (rand-int n))\"\n\n [sym cache-opts & body]\n (let [arglists ; e.g. '([x] [x y])\n (let [[_ sigs] (name-with-attrs sym body)]\n (if (vector? (first sigs))\n (list (first sigs))\n (map first sigs)))\n\n [sym body]\n (name-with-attrs sym body\n {:arglists `'~arglists})]\n\n (truss/have? map? cache-opts)\n (truss/have? [:ks<= #{:ttl-ms :size :gc-every}] cache-opts)\n\n `(def ~sym (cache ~cache-opts (fn ~@body))))))\n\n;;;; Rate limits\n\n(defn ^:no-doc rate-limiter-once-per\n \"Private, don't use.\n Returns a basic rate limiter (fn []) that will return falsey (allow) at most once\n every given number of milliseconds.\n\n Similar to (rate-limiter [1 ]) but significantly faster to construct and run.\n Doesn't support request ids!\"\n [msecs]\n (let [last_ (volatile! 0) ; No specific atomicity needs\n msecs (long msecs)]\n\n (fn a-rate-limiter-once-per\n ([req-id] (truss/ex-info! \"[encore/rate-limiter] Basic rate limiters don't support request ids\" {}))\n ([ ]\n (let [t1 (now-udt*)]\n #?(:clj (if (> (- t1 ^long (.deref last_)) msecs) (do (.reset last_ t1) nil) true)\n :cljs (if (> (- t1 @last_) msecs) (do (vreset! last_ t1) nil) true)))))))\n\n(deftype LimitSpec [^long n ^long ms])\n(deftype LimitEntry [^long n ^long udt0])\n(deftype LimitHits [m worst-lid ^long worst-ms])\n\n(let [limit-spec (fn [n ms] (truss/have? pos-int? n ms) (LimitSpec. n ms))]\n (defn- coerce-limit-spec [x]\n (cond\n (map? x) (reduce-kv (fn [acc lid [n ms]] (assoc acc lid (limit-spec n ms))) {} x)\n (vector? x)\n (reduce\n (fn [acc [n ms ?lid]] ; ?lid for back compatibility\n (assoc acc\n (or ?lid [n ms])\n (limit-spec n ms)))\n {} x)\n\n (truss/unexpected-arg! x\n {:context `rate-limiter\n :param 'rate-limiter-spec\n :expected '#{map vector}}))))\n\n(comment (qb 1e6 (coerce-limit-spec [[10 1000] [20 2000]]))) ; 229.91\n\n(defn rate-limiter\n \"Takes a spec of form\n [ [ ] ...] or ; Unnamed limits\n { [ ]} ; Named limits\n and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n\n Call the returned limiter fn with a request id (any Clojure value!) to\n enforce limits independently for each id.\n\n For example, (limiter-fn ) will return:\n - Falsey when allowed (all limits pass for given IP), or\n - Truthy when disallowed (any limits fail for given IP):\n [ { }]\n\n Or call the returned limiter fn with an extra command argument:\n (limiter-fn :rl/peek }\n\n :if-let ; Basic limiter\n [once-per-msecs\n (and\n (get opts :allow-basic?) ; Undocumented\n (= (count spec) 1)\n (let [^LimitSpec s (val (first spec))]\n (when (== (.-n s) 1) (.-ms s))))]\n\n (if with-state?\n [nil (rate-limiter-once-per once-per-msecs)]\n (do (rate-limiter-once-per once-per-msecs)))\n\n :let\n [latch_ (latom nil) ; Used to pause writes during gc\n reqs_ (latom nil) ; { { }}\n\n {:keys [gc-every] :or {gc-every 1.6e4}} opts ; Undocumented\n\n gc-now? gc-now?\n gc-rate (let [gce (long gc-every)] (/ 1.0 gce))\n\n f1\n (fn [rid ^long delta peek?]\n (let [instant (now-udt)]\n (when (and (not peek?) (gc-now? gc-rate))\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)]\n (when (-cas!? latch_ nil latch)\n (reqs_\n (fn swap-fn [reqs] ; { }\n (persistent!\n (reduce-kv\n (fn [acc rid entries]\n (let [new-entries\n (reduce-kv\n (fn [acc lid ^LimitEntry e]\n (if-let [^LimitSpec s (get spec lid)]\n (if (>= instant (+ (.-udt0 e) (.-ms s)))\n (dissoc acc lid)\n (do acc))\n (dissoc acc lid)))\n entries ; {}\n entries)]\n (if (empty? new-entries)\n (dissoc! acc rid)\n (assoc! acc rid new-entries))))\n (transient (or reqs {}))\n (do reqs)))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n nil)))\n\n ;; Need to atomically check if all limits pass before\n ;; committing to any n increments:\n (loop []\n (let [reqs (reqs_) ; { }\n entries (get reqs rid) ; { }\n ?hits ; ?LimitHits\n (when entries\n (reduce-kv\n (fn [^LimitHits acc lid ^LimitEntry e]\n (if-let [^LimitSpec s (get spec lid)]\n (if (<= (+ (.-n e) delta) (.-n s))\n acc\n (let [tdelta (- (+ (.-udt0 e) (.-ms s)) instant)]\n (if (<= tdelta 0)\n acc\n (cond\n (nil? acc) (LimitHits. {lid tdelta} lid tdelta)\n\n (> tdelta (.-worst-ms acc))\n (LimitHits. (assoc (.-m acc) lid tdelta) lid tdelta)\n\n :else\n (LimitHits. (assoc (.-m acc) lid tdelta)\n (.-worst-lid acc)\n (.-worst-ms acc))))))\n acc))\n nil\n entries))]\n\n (if (or peek? ?hits)\n ;; No action (peeking, or hit >= 1 spec)\n (when-let [^LimitHits h ?hits]\n [(.-worst-lid h) (.-worst-ms h) (.-m h)])\n\n ;; Passed all limits, ready to commit increments:\n (if-let [l (latch_)]\n #?(:clj (do (.await ^CountDownLatch l) (recur)) :default nil)\n (let [new-entries\n (reduce-kv\n (fn [acc lid ^LimitSpec s]\n (assoc acc lid\n (if-let [^LimitEntry e (get entries lid)]\n (let [udt0 (.-udt0 e)]\n (if (>= instant (+ udt0 (.-ms s)))\n (LimitEntry. delta instant)\n (LimitEntry. (+ delta (.-n e)) udt0)))\n (do (LimitEntry. delta instant)))))\n entries\n spec)]\n\n (if (-cas!? reqs_ reqs (assoc reqs rid new-entries))\n nil\n (recur)))))))))\n\n limiter-fn\n (fn a-rate-limiter\n ([ ] (f1 nil +1 false))\n ([ req-id] (f1 req-id +1 false))\n ([cmd req-id]\n (case cmd\n (:rl/reset :limiter/reset)\n (do\n (if (case req-id (:rl/all :limiter/all) true false)\n (reset! reqs_ nil)\n (reqs_ #(dissoc % req-id)))\n nil)\n\n (:rl/peek :limiter/peek) (f1 req-id +1 true)\n\n (if (number? cmd) ; Undocumented arb delta\n (f1 req-id (long cmd) false)\n (truss/unexpected-arg! cmd\n {:context `rate-limiter\n :param 'rate-limiter-command\n :expected #{:rl/reset :rl/peek}\n :req-id req-id})))))]\n\n :always\n (if with-state?\n [reqs_ limiter-fn]\n (do limiter-fn)))))\n\n(comment\n (let [[s_ rl1] (rate-limiter {:with-state? true} {:2s [1 2000] :5s [2 5000]})]\n (def s_ s_)\n (def rl1 rl1))\n\n (qb 1e6 (rl1)) ; 99.78\n (do (dotimes [n 2e6] (rl1 (str (rand)))) (count @s_)) ; Test GC\n\n (let [rl1 (rate-limiter-once-per 250)\n rl2 (rate-limiter {:allow-basic? true} {\"1/250\" [1 250]})\n rl3 (rate-limiter {} {\"1/250\" [1 250]})]\n\n (qb 1e6 ; [33.15 33.15 80.02]\n (rl1) (rl2) (rl3))))\n\n;;;; Counters\n\n#?(:clj\n (deftype Counter [^java.util.concurrent.atomic.AtomicLong n_]\n clojure.lang.IDeref (deref [_] (.get n_))\n clojure.lang.IFn\n (invoke [_ ] (.getAndIncrement n_))\n (invoke [_ add] (.getAndAdd n_ (long add)))\n (invoke [_ action n]\n (let [n (long n)]\n (case action\n (:add) (do (.addAndGet n_ n) nil)\n (:set) (do (.set n_ n) nil)\n (:set= :set-get) (do (.set n_ n) n)\n (:=set :get-set) (do (.getAndSet n_ n))\n (:=+ :get-add) (do (.getAndAdd n_ n))\n (:+= :add-get) (do (.addAndGet n_ n))))))\n\n :cljs\n (deftype Counter [^:mutable c]\n IDeref (-deref [_] c)\n IFn\n (-invoke [_ ] (let [o c] (set! c (inc c)) o))\n (-invoke [_ add] (let [o c] (set! c (+ c add)) o))\n (-invoke [_ action n]\n (case action\n (:add) (do (set! c (+ c n)) nil)\n (:set) (do (set! c n) nil)\n (:set= :set-get) (do (set! c n) n)\n (:=set :get-set) (let [o c] (set! c n) o)\n (:=+ :get-add) (let [o c] (set! c (+ c n)) o)\n (:+= :add-get) (do (set! c (+ c n)) c)))))\n\n(defn counter\n \"Returns a fast atomic `Counter` with `init` initial integer value with:\n - @counter => Return current val\n - (counter) => Add 1 and return old val\n - (counter n) => Add n and return old val\n - (counter action n) => Experimental, action \u2208\n {:add :set :set-get :get-set :get-add :add-get}.\"\n ([ ] (counter 0))\n ([init]\n #?(:clj (Counter. (java.util.concurrent.atomic.AtomicLong. (long init)))\n :cljs (Counter. (long init)))))\n\n(comment (let [c (counter)] (dotimes [_ 100] (c 2)) (c)))\n\n(defn- rc-deref [^long msecs ts_ n-skip_ gc-fn]\n (let [t1 (now-udt)\n ^long n-skip0 (n-skip_)\n ts (ts_)\n n-total (count ts)\n ^long n-window\n (reduce\n (fn [^long n ^long t0]\n (if (<= (- t1 t0) msecs)\n (inc n)\n (do n)))\n 0\n (core/subvec ts n-skip0))\n\n n-skip1 (- n-total n-window)]\n\n ;; (println {:n-total n-total :n-window n-window :n-skip0 n-skip0 :n-skip1 n-skip1})\n (when (< n-skip0 n-skip1)\n (if (-cas!? n-skip_ n-skip0 n-skip1)\n (when (> n-skip1 10000) ; Time to gc, amortised cost\n (gc-fn n-skip1))))\n\n n-window))\n\n#?(:clj\n (deftype RollingCounter [^long msecs ts_ n-skip_ p_]\n clojure.lang.IFn\n (invoke [this]\n (when-let [p (p_)] @p) ; Block iff latched\n (let [t1 (now-udt)] (ts_ #(conj % t1)))\n this ; Return to allow optional deref\n )\n\n clojure.lang.IDeref\n (deref [_]\n (when-let [p (p_)] @p) ; Block iff latched\n (rc-deref msecs ts_ n-skip_\n (fn gc [n-skip1]\n (let [p (promise)]\n (if (-cas!? p_ nil p) ; Latch\n (do\n (ts_ #(core/subvec % n-skip1))\n (reset! n-skip_ 0)\n (reset! p_ nil)\n (deliver p nil))))))))\n\n :cljs\n (deftype RollingCounter [^long msecs ts_ n-skip_]\n IFn\n (-invoke [this]\n (let [t1 (now-udt)] (ts_ #(conj % t1)))\n this ; Return to allow optional deref\n )\n\n IDeref\n (-deref [_]\n (rc-deref msecs ts_ n-skip_\n (fn gc [n-skip1]\n (ts_ #(core/subvec % n-skip1))\n (reset! n-skip_ 0))))))\n\n(defn rolling-counter\n \"Experimental, subject to change without notice.\n Returns a RollingCounter that you can:\n - Invoke to increment count in last `msecs` window and return RollingCounter.\n - Deref to return count in last `msecs` window.\"\n [msecs]\n (RollingCounter.\n (long (truss/have pos-int? msecs))\n (latom [])\n (latom 0)\n #?(:clj (latom nil))))\n\n(comment\n (def myrc (rolling-counter 4000))\n (dotimes [_ 100000] (myrc))\n @myrc)\n\n;;;; Rolling sequentials\n\n(defn rolling-vector\n \"Returns a stateful fn of 2 arities:\n [ ] => Returns current sub/vector in O(1).\n [x] => Adds `x` to right of sub/vector, maintaining length <= `nmax`.\n Returns current sub/vector.\n\n Useful for maintaining limited-length histories, etc.\n See also `rolling-list` (Clj only).\"\n ([nmax ] (rolling-vector nmax nil))\n ([nmax {:keys [gc-every init-val]\n :or {gc-every 16e3}}]\n\n (let [nmax (long nmax)\n acc_ (latom (vec init-val))\n gc-every (when gc-every (long gc-every))\n ticker (when gc-every (counter))\n latch_ (when gc-every (latom nil))]\n\n (fn rolling-vec-fn\n ([ ] (acc_))\n ([x]\n (when gc-every\n #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)))\n\n (let [^long tick (ticker)]\n (when-let [gc-now? (== (rem tick ^long gc-every) 0)]\n #?(:cljs (acc_ (fn swap-fn [sv] (into [] sv)))\n :clj\n (let [latch (CountDownLatch. 1)]\n (when (-cas!? latch_ nil latch)\n (acc_ (fn swap-fn [sv] (into [] sv)))\n (reset! latch_ nil)\n (.countDown latch)))))))\n\n (acc_\n (fn swap-fn [acc]\n (let [new (conj acc x)]\n (if (> (count new) nmax)\n (core/subvec new 1)\n (do new))))))))))\n\n(comment (let [rv (rolling-vector 3), c (counter)] [(qb 1e6 (rv (c))) (rv)])) ; 189.66\n\n#?(:clj\n (defn rolling-list\n \"Returns a stateful fn of 2 arities:\n [ ] => Returns current array in O(n).\n [x] => Adds `x` to right of list, maintaining length <~ `nmax`.\n Returns nil. Very fast (faster than `rolling-vector`).\n\n Useful for maintaining limited-length histories, etc.\n See also `rolling-vector`.\"\n ([nmax ] (rolling-list nmax nil))\n ([nmax {:keys [init-val]}]\n (let [nmax (long nmax)\n ^java.util.LinkedList ll\n (if init-val\n (java.util.LinkedList. init-val)\n (java.util.LinkedList.))]\n\n (fn rolling-list-fn\n ([ ] (.toArray ll))\n ([x]\n (do (.addLast ll x))\n (when (> (.size ll) nmax) (.removeFirst ll))\n nil))))))\n\n(comment (let [rl (rolling-list 3), c (counter)] [(qb 1e6 (rl (c))) (vec (rl))])) ; 98.36\n\n;;;; Sorting\n\n#?(:cljs (defn rcompare \"Reverse comparator.\" [x y] (compare y x))\n :clj (defn rcompare \"Reverse comparator.\"\n {:inline (fn [x y] `(. clojure.lang.Util compare ~y ~x))}\n [x y] (compare y x)))\n\n(defn sortv\n \"Like `core/sort` but:\n - Returns a vector.\n - `comparator` can be `:asc`, `:desc`, or an arbitrary comparator.\n - An optional `keyfn` may be provided, as in `core/sort-by`.\"\n ;; A little faster than `(vec (sort ...))` when `coll` very large\n ([ coll] (sortv nil :asc coll))\n ([ comparator coll] (sortv nil comparator coll))\n ([?keyfn comparator coll]\n (if-not (seq coll)\n []\n (let [comparator\n (case comparator\n :asc compare\n (:dsc :desc) (fn [x y] (compare y x))\n comparator)\n\n comparator\n (if-let [kfn (when (not= ?keyfn identity) ?keyfn)]\n (fn [x y] (comparator (kfn x) (kfn y)))\n comparator)\n\n a (to-array coll)]\n\n #?(:clj (java.util.Arrays/sort a ^java.util.Comparator comparator)\n :cljs (garray/stableSort a (fn->comparator comparator)))\n\n (with-meta (vec a) (meta coll))))))\n\n(comment\n (sortv second :desc [[1 10] [2 9] [3 8] [4 7] [5 6]])\n (let [v (vec (range 1e5))] (qb 1e2 (vec (sort v)) (sortv v) (sortv :desc v))))\n\n(let [sentinel (new-object)\n nil->sentinel (fn [x] (if (nil? x) sentinel x))\n sentinel->nil (fn [x] (if (identical? x sentinel) nil x))]\n\n (defn reduce-top\n \"Reduces the top `n` items from `coll` of N items.\n Clj impln is O(N.logn) vs O(N.logN) for (take n (sort-by ...)).\"\n ([n rf init coll] (reduce-top n identity compare rf init coll))\n ([n keyfn rf init coll] (reduce-top n keyfn compare rf init coll))\n ([n keyfn cmp rf init coll]\n (let [coll-size (count coll)\n n (long (min coll-size (long n)))]\n\n (if-not (pos? n)\n init\n #?(:cljs ; Naive implementation\n (transduce (take n) (completing rf) init\n (sort-by keyfn cmp coll))\n\n :clj\n (let [pq\n (java.util.PriorityQueue. coll-size\n (fn [x y] (cmp\n (keyfn (sentinel->nil x))\n (keyfn (sentinel->nil y)))))]\n\n (run! #(.offer pq (nil->sentinel %)) coll)\n (reduce-n (fn [acc _] (rf acc (sentinel->nil (.poll pq))))\n init n))))))))\n\n(defn top-into\n \"Conjoins the top `n` items from `coll` into `to` using `reduce-top`.\"\n ([to n coll] (top-into to n identity compare coll))\n ([to n keyfn coll] (top-into to n keyfn compare coll))\n ([to n keyfn cmp coll]\n (if (use-transient? ^long n to)\n (persistent! (reduce-top n keyfn cmp conj! (transient to) coll))\n (do (reduce-top n keyfn cmp conj to coll)))))\n\n(defn top\n \"Returns a sorted vector of the top `n` items from `coll` using `reduce-top`.\"\n ([n coll] (top-into [] n identity compare coll))\n ([n keyfn coll] (top-into [] n keyfn compare coll))\n ([n keyfn cmp coll] (top-into [] n keyfn cmp coll)))\n\n(comment [(top 20 [2 3 5 3 88 nil]) (sort [2 3 5 3 88 nil])])\n\n;;;; IO\n\n#?(:clj\n (defn slurp-resource\n \"Returns slurped named resource on classpath, or nil when resource not found.\"\n [rname]\n (when-let [r (jio/resource rname)]\n (try\n (slurp (jio/reader r))\n (catch Exception e\n (truss/ex-info! \"[encore/slurp-resource] Slurp failed\" {:rname rname} e))))))\n\n#?(:clj\n (defn get-file-resource-?last-modified\n \"Returns last-modified time for file backing given named resource, or nil\n if file doesn't exist.\"\n [rname]\n (when-let [file (try (->> rname jio/resource jio/file) (catch Exception _))]\n (.lastModified ^java.io.File file))))\n\n#?(:clj\n (def file-resources-modified?\n \"Returns true iff any files backing given named resources have changed since last call.\"\n (let [udts_ (atom {}) ; { }\n swap! (fn [ks v] (swap-in! udts_ ks (fn [?v] (swapped v (when (not= v ?v) v)))))\n sorted-set (fmemoize (fn [x] (into (sorted-set) x)))]\n\n (fn [rnames & [?scope]]\n (let [rgroup (sorted-set rnames)]\n (swap! [?scope rgroup]\n (mapv get-file-resource-?last-modified rgroup)))))))\n\n#?(:clj\n (def slurp-file-resource\n \"Like `slurp-resource` but caches slurps against file's last-modified udt.\"\n (let [;; { [ ]}\n cache_ (atom {})]\n (fn [rname]\n (let [curr-udt (or (get-file-resource-?last-modified rname) -1)]\n (force\n (swap-in! cache_ [rname]\n (fn [[?prev-content_ ?prev-udt :as ?v]]\n (if (= curr-udt ?prev-udt)\n (swapped ?v ?prev-content_)\n (let [content_ (delay (slurp-resource rname))]\n (swapped [content_ curr-udt] content_)))))))))))\n\n(comment (slurp-file-resource \"log4j.properties\"))\n\n#?(:clj\n (defn ^:no-doc read-resource\n \"Private, don't use.\"\n [rname]\n (if-not [res (jio/resource rname)]\n (truss/ex-info! (str \"[encore/read-resource] Resource not found on classpath: \" rname)\n {:rname (typed-val rname)})\n\n (with-open [reader (java.io.PushbackReader. (jio/reader res))]\n (loop [forms []]\n (let [form\n (try\n (read reader false ::eof)\n (catch Throwable t\n (truss/ex-info! (str \"[encore/read-resource] Error while reading resource: \" rname)\n {:rname (typed-val rname)\n :error t})))]\n (if (= form ::eof)\n forms\n (recur (conj forms form)))))))))\n\n#?(:clj\n (defmacro ^:no-doc load-inline\n \"Private, don't use.\n Flexibly injects Clojure/Script code from named resource on classpath:\n #?(:clj (load-inline \\\"my-code.clj\\\")\n :cljs (load-inline \\\"my-code.cljs\\\"))\"\n [rname] `(do ~@(read-resource rname))))\n\n(comment\n (run! eval (read-resource \"taoensso/encore/bytes.clj\"))\n (load-inline \"taoensso/encore/bytes.clj\"))\n\n#?(:clj\n (defn get-pom-version\n \"Returns POM version string for given Maven dependency, or nil.\"\n [dep-sym]\n (let [path\n (clojure.core/format \"META-INF/maven/%s/%s/pom.properties\"\n (or (namespace dep-sym)\n (name dep-sym))\n (name dep-sym))]\n\n (when-let [props (jio/resource path)]\n (with-open [stream (jio/input-stream props)]\n (let [props (doto (java.util.Properties.) (.load stream))]\n (.getProperty props \"version\")))))))\n\n(comment (get-pom-version 'com.taoensso/encore))\n\n#?(:clj\n (let [cache_ (atom nil)] ; Impln detail\n (defn java-version\n \"Returns Java's major version integer (8, 17, etc.).\"\n (^long [ ] (or @cache_ (reset! cache_ (java-version (System/getProperty \"java.version\")))))\n (^long [version-string]\n (or\n (when-let [^String s version-string]\n (truss/catching\n (Integer/parseInt\n (or ; Ref. \n (when (.startsWith s \"1.\") (.substring s 2 3)) ; \"1.6.0_23\", etc.\n (let [idx (.indexOf s \".\")] (when (pos? idx) (.substring s 0 idx))) ; \"9.0.1\", etc.\n (let [idx (.indexOf s \"-\")] (when (pos? idx) (.substring s 0 idx))) ; \"16-ea\", etc.\n (do s)))))\n (truss/ex-info! \"[encore/java-version] Failed to parse Java version string (unexpected form)\"\n {:version-string version-string}))))))\n\n#?(:clj\n (defn java-version>=\n \"Returns true iff Java's major version integer is >= given integer:\n (if (java-version>= 21) )\"\n [n] (>= (java-version) (long n))))\n\n(comment (java-version>= 21))\n\n;;;; Async\n\n#?(:clj\n (defn ^:no-doc threaded*\n \"Private, don't use. Returns a new #{:daemon :user} thread to execute given fn.\"\n ^Thread [kind nullary-fn]\n (case kind\n :daemon (doto (Thread. ^Runnable nullary-fn) (.setDaemon true) (.start))\n :user (doto (Thread. ^Runnable nullary-fn) (.start))\n (truss/unexpected-arg! kind\n {:context `threaded*, :param kind, :expected #{:daemon :user}}))))\n\n#?(:clj\n (defmacro ^:no-doc threaded\n \"Private, don't use. Returns a new #{:daemon :user} thread to execute body.\"\n [kind & body] `(threaded* ~kind (fn [] ~@body))))\n\n(comment (.getName (threaded :daemon (println \"Runs on daemon thread\"))))\n\n#?(:clj\n (defmacro ^:no-doc promised\n \"Private, don't use.\n Executes body on #{:daemon :user} thread and delivers result to a promise.\n Returns the promise.\"\n [kind & body]\n `(let [p# (promise)]\n (threaded ~kind (p# (do ~@body)))\n p#)))\n\n(comment @(promised :daemon (Thread/sleep 2000) \"done\"))\n\n#?(:clj\n (defn virtual-executor\n \"Experimental, subject to change without notice!\n Returns new virtual `java.util.concurrent.ThreadPerTaskExecutor` when\n possible (JVM 21+), otherwise returns nil.\"\n []\n (compile-if (Thread/ofVirtual)\n (java.util.concurrent.Executors/newVirtualThreadPerTaskExecutor)\n nil)))\n\n#?(:clj\n (let [ap (fn [] (.availableProcessors (Runtime/getRuntime)))\n perc (fn [n] (max 1 (long (Math/floor (* (/ (double (ap)) 100.0) (double n))))))\n ratio (fn [r] (max 1 (long (Math/floor (* (double (ap)) (double r))))))]\n\n (defn- get-num-threads ^long [n-threads]\n (if (vector? n-threads)\n (let [[kind n] n-threads]\n (case kind\n :num (long (truss/have pos-int? n))\n :perc (long (perc n))\n :ratio (long (ratio n))\n (truss/unexpected-arg! kind\n {:context `get-num-threads\n :param 'num-threads\n :expected '#{ [:perc ] [:ratio ]}})))\n (long (truss/have pos-int? n-threads))))))\n\n(comment\n (get-num-threads [:perc 90])\n (get-num-threads [:ratio 0.9]))\n\n#?(:clj\n (defn pool-executor\n \"Experimental, subject to change without notice!\n Returns new `java.util.concurrent.ThreadPoolExecutor` with given opts.\"\n ^java.util.concurrent.ThreadPoolExecutor\n [{:keys [n-threads n-min-threads n-max-threads thread-name-prefix\n daemon-threads? keep-alive-msecs queue-type queue-size]\n :or\n {n-threads (+ 2 (get-num-threads [:ratio 1.0]))\n thread-name-prefix \"com.taoensso/encore-pool-\"\n daemon-threads? true\n keep-alive-msecs 60000\n queue-type :linked}}]\n\n (let [n-min-threads (int (or n-min-threads n-threads))\n n-max-threads (int (or n-max-threads n-threads))\n keep-alive-msecs (int keep-alive-msecs)\n queue\n (case queue-type\n :array (java.util.concurrent.ArrayBlockingQueue. (int queue-size))\n :linked\n (if queue-size\n (java.util.concurrent.LinkedBlockingQueue. (int queue-size))\n (java.util.concurrent.LinkedBlockingQueue.))\n (truss/unexpected-arg! queue-type\n {:expected #{:array :linked}\n :context `thread-pool}))\n\n factory\n (let [idx* (java.util.concurrent.atomic.AtomicInteger. 0)]\n (reify java.util.concurrent.ThreadFactory\n (newThread [_ runnable]\n (let [idx (.incrementAndGet idx*)\n t (Thread. runnable (str thread-name-prefix idx))]\n (when daemon-threads?\n (.setDaemon t daemon-threads?))\n t))))]\n\n (java.util.concurrent.ThreadPoolExecutor.\n (int n-min-threads)\n (int n-max-threads)\n (int keep-alive-msecs)\n java.util.concurrent.TimeUnit/MILLISECONDS\n ^java.util.concurrent.BlockingQueue queue\n ^java.util.concurrent.ThreadFactory factory))))\n\n(comment (pool-executor {}))\n\n#?(:clj\n (def* ^:no-doc ^:private default-executor_\n \"Default `java.util.concurrent.ExecutorService`.\"\n (delay (or (virtual-executor) (pool-executor {})))))\n\n#?(:clj\n (defmacro ^:no-doc binding-fn\n \"Private, don't use. Returns (^:once fn* []) callable from isolated thread.\"\n [& body]\n `(let [frame# (clojure.lang.Var/cloneThreadBindingFrame)]\n (^:once fn* []\n (clojure.lang.Var/resetThreadBindingFrame frame#)\n (do ~@body)))))\n\n#?(:clj\n (defmacro ^:no-doc rebinding-fn\n \"Private, don't use. Returns (^:once fn* []) callable from any thread.\"\n [& body]\n `(let [frame1# (clojure.lang.Var/cloneThreadBindingFrame)]\n (^:once fn* []\n (let [frame2# (clojure.lang.Var/getThreadBindingFrame)]\n (try\n (clojure.lang.Var/resetThreadBindingFrame frame1#)\n (do ~@body)\n (finally (clojure.lang.Var/resetThreadBindingFrame frame2#))))))))\n\n#?(:clj\n (defmacro ^:no-doc bound-delay\n \"Private, don't use.\n Like `bound-fn` for `delay`- when body is realized, it'll be invoked with\n the same dynamic bindings in place as when the delay was created.\"\n [& body]\n (if (:ns &env)\n `(delay ~@body) ; No need (single threaded)\n `(clojure.lang.Delay. (rebinding-fn ~@body)))))\n\n(comment\n (qb 1e6 (do (clojure.lang.Var/resetThreadBindingFrame (clojure.lang.Var/getThreadBindingFrame)))) ; 30.78\n (qb 1e6 (fn []) (binding-fn)) ; [22.38 36.1]\n (qb 1e6 (delay) (bound-delay)) ; [42.11 55.09]\n (do\n (def ^:dynamic *dyn* nil)\n (def bd_ (core/binding [*dyn* 1] (bound-delay *dyn*)))\n (do @bd_)))\n\n#?(:clj\n (defn future-call*\n \"Experimental, subject to change without notice!\n Like `future-call` but supports use of given custom\n `java.util.concurrent.ExecutorService`.\n\n Will default to using JVM 21+ virtual threads when possible,\n otherwise an unbounded fixed daemon thread pool.\n\n See also `future`, `virtual-executor`, `pool-executor`.\"\n ([ f] (future-call* (deref! default-executor_) f))\n ([executor-service f]\n (let [f (binding-fn (f))\n fut (.submit ^java.util.concurrent.ExecutorService executor-service\n ^Callable f)]\n\n (reify\n clojure.lang.IPending (isRealized [_] (.isDone fut))\n clojure.lang.IDeref (deref [_] (.get fut))\n clojure.lang.IBlockingDeref\n (deref [_ timeout-msecs timeout-val]\n (try\n (.get fut timeout-msecs java.util.concurrent.TimeUnit/MILLISECONDS)\n (catch java.util.concurrent.TimeoutException _ timeout-val)))\n\n java.util.concurrent.Future\n (isDone [_ ] (.isDone fut))\n (isCancelled [_ ] (.isCancelled fut))\n (get [_ ] (.get fut))\n (get [_ timeout unit] (.get fut timeout unit))\n (cancel [_ interrupt? ] (.cancel fut interrupt?)))))))\n\n#?(:clj\n (defmacro future*\n \"Experimental, subject to change without notice!\n Like `future` but supports use of given custom\n `java.util.concurrent.ExecutorService`.\n\n Will default to using JVM 21+ virtual threads when possible,\n otherwise an unbounded fixed daemon thread pool.\n\n See also `future-call`, `virtual-executor`, `pool-executor`.\"\n ([ form] `(future-call* (^:once fn* [] ~form)))\n ([executor-service form] `(future-call* ~executor-service (^:once fn* [] ~form)))))\n\n(comment @(future* (do (println \"running\") (Thread/sleep 2000) :done)))\n\n#?(:clj\n (defn future-pool\n \"Returns a simple semaphore-limited wrapper of Clojure's standard `future`:\n (fn future-pool-fn\n ([f] [timeout-msecs timeout-val f] [] [timeout-msecs timeout-val]))\n\n Arities of returned function:\n [f] - Blocks to acquire a future, then executes (f) on that future.\n [ ] - Blocks to acquire ALL futures, then immediately releases them.\n Useful for blocking till all outstanding work completes.\n\n [timeout-msecs timeout-val f] - Variant of [f] with timeout\n [timeout-msecs timeout-val ] - Variant of [ ] with timeout\n\n See also `future*` for fully custom pools, etc.\"\n [n-threads]\n (let [n (get-num-threads n-threads) ; Undocumented special vec support\n s (java.util.concurrent.Semaphore. n)\n msecs java.util.concurrent.TimeUnit/MILLISECONDS\n fp-call\n (fn [f]\n (if (fn? f)\n (future (try (f) (finally (.release s))))\n (do\n (.release s)\n (truss/ex-info! \"[encore/future-pool] Unexpected arg type (expected function)\"\n {:arg (typed-val f)}))))]\n\n (fn fp\n ([ ] (.acquire s n) (.release s n) true)\n ([f] (.acquire s) (fp-call f))\n\n ([^long timeout-msecs timeout-val]\n (if (.tryAcquire s n timeout-msecs msecs)\n (do (.release s n) true)\n timeout-val))\n\n ([^long timeout-msecs timeout-val f]\n (if (.tryAcquire s timeout-msecs msecs)\n (fp-call f)\n timeout-val))))))\n\n(comment\n (time\n (let [fp (future-pool 2)]\n [(fp (fn [] (Thread/sleep 2000) (println \"2000\")))\n (fp (fn [] (Thread/sleep 500) (println \"500\")))\n (fp 200 \"timeout\" (fn [] (Thread/sleep 900) (println \"900\")))\n (fp (fn [] (Thread/sleep 3000) (println \"3000\")))\n (fp)])))\n\n#?(:clj\n (defn pre-cache\n \"Given a nullary fn `f` that is non-idempotent and free of side-effects,\n returns a wrapped version of `f` that asynchronously maintains a cache\n of up to `n-capacity` pre-computed return values of (f).\n\n Useful when `f` is expensive & may be called in a spikey fashion,\n e.g. ideal for cryptographic key generators.\"\n ([n-capacity f] (pre-cache n-capacity 1 f))\n ([n-capacity fp-or-n-threads f]\n (let [queue (java.util.concurrent.ArrayBlockingQueue. n-capacity)\n f* (fn [] (try {:okay (f)} (catch Throwable t {:error t})))\n\n async-replenish!\n (let [a_ (agent nil)\n fp\n (if (fn? fp-or-n-threads)\n (do fp-or-n-threads)\n (future-pool fp-or-n-threads))]\n\n (fn async-replenish! []\n (send-off a_\n (fn [_] (fp (fn [] (.offer queue (f*)))) nil))))]\n\n (dotimes [_ n-capacity] (async-replenish!)) ; Initialize cache\n\n (fn take1 []\n (let [f*-result\n (if-let [cached (.poll queue)]\n (do (async-replenish!) cached)\n ;; Block to call f synchronously on calling thread.\n ;; Not limited by fp => pre-cached f will never be slower\n ;; than uncached f, even if `n-threads` is small.\n (f*))]\n\n (if-let [t (get f*-result :error)]\n (throw t)\n (get f*-result :okay))))))))\n\n(comment\n (let [fp (future-pool 6)] ; Shared future pool\n (def f1 (pre-cache 3 fp (fn [] (Thread/sleep 1000) :f1)))\n (def f2 (pre-cache 4 fp (fn [] (Thread/sleep 500) :f2)))))\n\n#?(:clj\n (defn call-on-shutdown!\n \"Registers given nullary fn as a JVM shutdown hook.\n (f) will be called sometime during shutdown. While running, it will\n attempt to block shutdown.\"\n [f]\n (.addShutdownHook (Runtime/getRuntime)\n (Thread. ^Runnable f))))\n\n#?(:clj\n (defn runner\n \"Experimental, subject to change without notice!\n Returns a new stateful \\\"runner\\\" such that:\n\n (runner f) ; Arity 1 call\n Requests runner to execute given nullary fn according to runner's opts.\n Returns:\n - `true` if runner accepted fn for execution without back-pressure.\n - `false` if runner experienced back-pressure (fn may/not execute).\n - `nil` if runner has stopped accepting new execution requests.\n\n (deref runner)\n Returns a promise that will be delivered once all pending execution\n requests complete.\n\n (runner) ; Arity 0 call\n Causes runner to permanently stop accepting new execution requests.\n On first call returns a promise that will be delivered once all pending\n execution requests complete. On subsequent calls returns nil.\n\n Runners are a little like agents, but:\n - Take nullary fns rather than unary fns of state.\n - Have no validators or watches.\n - Have configurable back-pressure.\n - Can have >1 thread (in which case fns may execute out-of-order!).\n\n These properties make them useful as configurable general-purpose async workers.\n\n Options include:\n\n `:buffer-size` (default 1024)\n Size of request buffer, and the max number of pending requests before\n configured back-pressure behaviour is triggered (see `:mode`).\n\n `:mode` (default `:blocking`)\n Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n Controls what happens when a new request is made while request buffer is full:\n `:blocking` => Blocks caller until buffer space is available\n `:dropping` => Drops the newest request (noop)\n `:sliding` => Drops the oldest request\n\n `:n-threads` (default 1)\n Number of threads to use for executing fns (servicing request buffer).\n NB execution order may be non-sequential when n > 1.\n\n `:drain-msecs` (default 6000 msecs)\n Maximum time (in milliseconds) to try allow pending execution requests to\n complete when stopping runner. nil => no maximum.\"\n\n [{:as opts\n :keys\n [mode buffer-size n-threads thread-name drain-msecs,\n auto-stop? convey-bindings? daemon-threads?]\n\n :or\n {mode :blocking\n buffer-size 1024\n n-threads 1\n drain-msecs 6000\n\n ;;; Advanced (undocumented)\n auto-stop? true\n convey-bindings? true\n daemon-threads? true}}]\n\n (let [stopped?_ (latom false)]\n\n (if (= mode :sync) ; Undocumented, mostly used for testing\n (reify\n clojure.lang.IDeref (deref [_] ((promise) :drained))\n clojure.lang.IFn\n (invoke [r ] (when (compare-and-set! stopped?_ false true) @r))\n (invoke [_ f] (when-not (stopped?_) (truss/try* (f) (catch :all _)) true)))\n\n (let [cnt-executing (java.util.concurrent.atomic.AtomicLong. 0)\n abq (java.util.concurrent.ArrayBlockingQueue.\n (as-pos-int buffer-size) false)\n\n drained? (fn [] (and (zero? (.size abq)) (zero? (.get cnt-executing))))\n drained-fn\n (fn []\n (if (drained?)\n ((promise) :drained)\n (promised :daemon (loop [] (if (drained?) :drained (recur))))))\n\n init-fn\n (fn []\n (call-on-shutdown!\n (fn []\n (when auto-stop? (compare-and-set! stopped?_ false true))\n ;; Optionally block JVM shutdown to complete pending requests\n (if-let [^long msecs drain-msecs]\n (when (pos? msecs) (deref (drained-fn) msecs nil))\n (do (deref (drained-fn))))))\n\n ;; Create worker threads\n (dotimes [n (as-pos-int n-threads)]\n (let [wfn\n (fn a-worker-fn []\n (loop []\n (if-let [f (.poll abq 200 java.util.concurrent.TimeUnit/MILLISECONDS)]\n (do\n (.incrementAndGet cnt-executing)\n (truss/try*\n (f)\n (catch :all _)\n (finally (.decrementAndGet cnt-executing)))\n ;; Unconditionally drain abq even when stopped\n (recur))\n (when-not (stopped?_) (recur)))))\n\n thread-name (str-join-once \"-\" [(or thread-name `runner) \"loop\" (inc n) \"of\" n-threads])\n thread (Thread. wfn thread-name)]\n\n ;; Daemon worker threads are almost always the right choice\n ;; here since they allow the flexibility of *optionally*\n ;; blocking JVM shutdown (via our shutdown hook), whereas\n ;; user worker threads outright prevent our hook from even\n ;; running and so would make users responsible for stopping\n ;; runners manually.\n\n (.setDaemon thread (boolean daemon-threads?))\n (.start thread))))\n\n init!_\n (if-let [msecs (get opts :debug/init-after)]\n (delay (threaded :daemon (Thread/sleep (int msecs)) (init-fn)))\n (delay (init-fn)))\n\n run-fn\n (case mode\n :blocking (fn blocking-run [f] (or (.offer abq f) (do (.put abq f) false)))\n :dropping (fn dropping-run [f] (.offer abq f))\n :sliding\n (fn sliding-run [f]\n (or\n (.offer abq f) ; Common case\n (loop []\n (.poll abq) ; Drop earliest f\n (if (.offer abq f)\n false ; Successfully took new f, but drop/s occurred\n (recur)))))\n\n (truss/unexpected-arg! mode\n {:context `runner\n :expected #{:sync :blocking :dropping :sliding}}))]\n\n (reify\n clojure.lang.IDeref (deref [_] (drained-fn))\n clojure.lang.IFn\n (invoke [r ] (when (compare-and-set! stopped?_ false true) @r))\n (invoke [_ f]\n (when-not (stopped?_)\n (.deref init!_)\n (if convey-bindings?\n (run-fn (binding-fn (f)))\n (run-fn f))))))))))\n\n(comment\n (let [r1 (runner {:mode :sync})\n r2 (runner {:mode :blocking})]\n (qb 1e6 ; [50.56 144.44]\n (r1 (fn []))\n (r2 (fn [])))))\n\n(defn ^:no-doc hot-sleep\n \"Private, don't use.\n For Clj: same as `Thread/sleep`.\n For Cljs: hot loops until given number of msecs have elapsed.\n\n Useful for certain synchronous unit tests, etc.\"\n [msecs]\n #?(:clj (Thread/sleep (int msecs))\n :cljs (let [t0 (now-udt*)] (loop [] (when (< (- (now-udt*) t0) msecs) (recur))))))\n\n(comment (hot-sleep 500))\n\n;;;; Thread info\n\n#?(:clj (defn thread-name \"Returns string name of current `Thread`.\" ^String [] (.getName (Thread/currentThread))))\n#?(:clj (defn thread-id \"Returns long id of current `Thread`.\" ^long [] (.getId (Thread/currentThread))))\n#?(:clj\n (defn thread-info\n \"Returns {:keys [group name id]} for current `Thread`.\"\n []\n (let [t (Thread/currentThread)]\n {:group (when-let [g (.getThreadGroup t)] (.getName g))\n :name (.getName t)\n :id (.getId t)})))\n\n(comment [(thread-name) (thread-id) (thread-info)] (qb 1e6 (thread-info))) ; 44.49\n\n;;;; Host info\n\n#?(:clj\n (defmacro ^:private deref-safely\n \"Like normal blocking deref, but returns `timeout-val` when calling\n thread is interrupted while blocking.\"\n [p timeout-msecs timeout-val]\n `(try\n (deref ~p ~timeout-msecs ~timeout-val)\n (catch InterruptedException _# ~timeout-val))))\n\n#?(:clj\n (defn ^:no-doc refreshing-cache\n \"Private, don't use.\n Returns TTL-cached (fn [cache-msecs timeout-msecs timeout-val]) for given\n (fn [fallback-val]) that will:\n - Initiate async update of cached value when stale value is encountered.\n - Continue to deliver stale value until cache is updated.\"\n [f1]\n (let [cache_ (latom nil) ; ?[promise udt]\n cache-update-pending?_ (latom false)]\n\n (fn [cache-msecs timeout-msecs timeout-val]\n (loop [force-use-cache? false]\n\n (if (or force-use-cache? (cache-update-pending?_))\n (let [[p] (cache_)] (deref-safely p timeout-msecs timeout-val))\n (let [t1 (System/currentTimeMillis)]\n (if-let [[p ^long t0] (cache_)]\n (if (< (- t1 t0) (long cache-msecs)) ; Have fresh cache\n (deref-safely p timeout-msecs timeout-val)\n (do\n ;; Ensure exactly 1 async thread is updating cache\n (when (compare-and-set! cache-update-pending?_ false true)\n (threaded :daemon\n (if-let [new-val (f1 nil)] ; Take as long as needed\n (reset! cache_ [((promise) new-val) t1]) ; Update p and t\n (reset! cache_ [p t1]) ; Update only t\n )\n (reset! cache-update-pending?_ false)))\n (recur true)))\n\n (let [p (promise)]\n (when (compare-and-set! cache_ nil [p t1]) ; First call\n ;; Init cache with pending init value\n (threaded :user (p (f1 timeout-val))))\n (recur true))))))))))\n\n#?(:clj\n (let [f1\n (fn [fallback-val]\n (try\n (let [host (java.net.InetAddress/getLocalHost)]\n {:name (.getHostName host),\n :ip (.getHostAddress host)})\n (catch Exception _ (force fallback-val))))\n\n f3 (refreshing-cache f1)]\n\n (defn host-info\n \"Returns ?{:keys [ip name]} with string vals or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (host-info (msecs :mins 1) 5000 nil))) ; 64.49\n\n#?(:clj\n (let [f1 (fn [fallback-val] (try (.getHostAddress (java.net.InetAddress/getLocalHost)) (catch Exception _ (force fallback-val))))\n f3 (refreshing-cache f1)]\n\n (defn host-ip\n \"Returns local host IP string or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (host-ip) (get (host-info) :ip))) ; [56.12 76.39]\n\n#?(:clj\n (let [f1 (fn [fallback-val] (try (.getHostName (java.net.InetAddress/getLocalHost)) (catch Exception _ (force fallback-val))))\n f3 (refreshing-cache f1)]\n\n (defn hostname\n \"Returns local hostname string or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (hostname) (get (host-info) :name))) ; [56.31 75.77]\n\n;;;; Environmental config API\n;; - Cljs must embed config in code (no runtime access to environmental config).\n;; - Embed config => macro, no runtime arg support, locally eval all symbols.\n;; - Locally eval symbols => no support for foreign unrequired namespaces.\n\n#?(:clj\n (let [pattern-platform #\"\\<(.)?platform(.)?\\>\"\n pattern-opt #\"\\<(.+?)\\>\"]\n\n (defn- prep-env-ids\n \"Handles id prep for `get-env`:\n :a =>\n [\\\"a.bXcljYoptional\\\" \\\"a.bXcljY\\\" \\\"a.boptional\\\" \\\"a.b\\\"], etc.\"\n [platform tf x]\n (when x\n (if (vector? x)\n (into [] (comp (map #(prep-env-ids platform tf %)) cat (distinct)) x)\n (let [tf (or tf identity)\n s (as-qname\n (if (const-form? x)\n x\n (truss/ex-info! \"[encore/get-env] Ids must be const forms\"\n {:id x})))\n\n without-platform (str/replace s pattern-platform \"\")\n with-platform (when platform (str/replace s pattern-platform (fn [[_ pre post]] (str pre (name platform) post))))\n without-opt (fn [s] (when s (str/replace s pattern-opt \"\")))\n with-opt (fn [s] (when s (str/replace s pattern-opt (fn [[_ cnt]] cnt))))]\n\n (into [] (comp (filter identity) (distinct) (map tf))\n [(with-opt with-platform)\n (without-opt with-platform)\n (with-opt without-platform)\n (without-opt without-platform)])))))))\n\n(comment (prep-env-ids :clj vector [:a :b :a]))\n\n#?(:clj\n (let [pname (fn [s] (-> s (str-replace #\"/\" \".\")))\n ename (fn [s] (-> s (str-replace #\"[./-]\" \"_\") (str/upper-case)))\n parse-opts\n (fn [opts-or-spec]\n (if (map? opts-or-spec)\n (do opts-or-spec)\n {:spec opts-or-spec}))]\n\n (defn ^:no-doc get-env*\n \"Private, don't use. Runtime fn version of `get-env`.\"\n {:arglists\n '([{:keys [as default return]\n :or {as :str\n return :value}} spec])}\n\n ([opts spec] (get-env* (assoc opts :spec spec)))\n ([opts-or-spec]\n (let [opts (parse-opts opts-or-spec)\n {:keys [as default spec, return]\n :or {as :str\n return :value}} opts\n\n ;;; Advanced opts, undocumented\n platform (or (get opts :platform) (get opts :platform*))\n custom-res\n (when (get opts ::allow-recur? true)\n (let [res-prop (get opts :res-prop)\n env-prop (get opts :env-prop)]\n (when (or res-prop env-prop)\n (get-env*\n {::allow-recur? false,\n :platform platform,\n :prop res-prop, :env env-prop, :res nil,\n :return :value}))))\n\n props (prep-env-ids platform (fn [id] [:prop (pname id)]) (get opts :prop spec))\n envs (prep-env-ids platform (fn [id] [:env (ename id)]) (get opts :env spec))\n ress (prep-env-ids platform (fn [id] [:res (pname id)]) (or custom-res (get opts :res spec)))\n to-search [props envs ress] ; (vinterleave-all [[:p1 :p2] [:e1] [:r1 :r2 :r3]]) ; => [:p1 :e1 :r1 :p2 :r2 :r3]\n\n match ; ?[source str-val]\n (or\n (get opts :debug/match)\n (reduce-interleave-all\n (fn rf [_ in]\n (let [[kind n] in]\n (case kind\n :prop (when-let [v (System/getProperty n)] (reduced [in v]))\n :env (when-let [v (System/getenv n)] (reduced [in v]))\n :res (when-let [v (slurp-resource n)] (reduced [in v])))))\n nil to-search))\n\n match-as ; ?[source as-val]\n (or\n (case as\n :str match ; ?[source str-val]\n :bool\n (when-let [[source bool-str] match]\n (let [parsed-bool\n (case bool-str\n (\"true\" \"1\" \"t\" \"T\" \"TRUE\") true\n (\"false\" \"0\" \"f\" \"F\" \"FALSE\") false\n (truss/ex-info! \"[encore/get-env] Error parsing as boolean\"\n {:bool-str bool-str\n :source source\n :platform platform\n :expected\n {true #{\"true\" \"1\" \"t\" \"T\" \"TRUE\"}\n false #{\"false\" \"0\" \"f\" \"F\" \"FALSE\"}}}))]\n [source parsed-bool]))\n\n :edn\n (when-let [[source edn] match]\n (let [x\n (try\n (read-edn (get opts :read-opts) edn)\n (catch Throwable t\n (truss/ex-info! \"[encore/get-env] Error reading as edn\"\n {:edn edn, :source source, :platform platform} t)))]\n\n (if-not (and (symbol? x) (get opts :eval-sym? (= platform :clj)))\n [source x]\n (if-let [sym (resolve-sym nil x true)]\n [source (eval sym)] ; Eval sym at runtime\n (truss/ex-info! (str \"[encore/get-env] Failed to resolve symbol: \" x)\n {:edn edn, :source source, :platform platform})))))\n\n (truss/ex-info! \"[encore/get-env] Unexpected `:as` option\"\n {:given (typed-val as)\n :expected #{:str :edn :bool}}))\n\n (when (contains? opts :default)\n [:default default]))]\n\n (when (or match-as (= return :explain))\n (let [[source value] match-as]\n (case return\n :value value\n :legacy {:config value, :source source} ; Back compatibility\n :map (assoc-some {:value value, :source source} :platform platform)\n :explain (assoc-some {:value value, :source source} {:platform platform, :search (vinterleave-all to-search)})\n (truss/ex-info! \"[encore/get-env] Unexpected `:return` option\"\n {:given (typed-val return)\n :expected #{:value :map :explain}})))))))\n\n (defmacro get-env\n \"Flexible cross-platform environmental value util.\n\n Given a compile-time id (keyword/string) or vector of desc-priority\n ids, parse and return the first of the following that exists, or nil:\n 1. JVM property value for id\n 2. Environment variable value for id\n 3. Classpath resource content for id\n\n Ids may include optional platform tag for auto replacement, e.g.:\n `<.platform>` -> \\\".clj\\\", \\\".cljs\\\", or nil\n\n Clj/s: if resulting value is a single symbol, it will be evaluated.\n Cljs: resulting value will be embedded in code during macro expansion!\n\n Options:\n `:as` - Parse encountered value as given type \u2208 #{:str :bool :edn} (default `:str`).\n `:default` - Fallback to return unparsed if no value found during search (default `nil`).\n `:return` - Return type \u2208 #{:value :map :explain} (default `:value`).\n Use `:explain` to verify/debug, handy for tests/REPL!\n\n Example:\n (get-env {:as :edn} [:my-app/id1<.platform> :my-app/id2]) will parse\n and return the first of the following that exists, or nil:\n\n id1 with platform:\n `my-app.id1.clj` JVM property value\n `MY_APP_id1_CLJ` environment variable value\n `my-app.id1.clj` classpath resource content\n\n id1 without platform:\n `my-app.id1` JVM property value\n `MY_APP_id1` environment variable value\n `my-app.id1` classpath resource content\n\n id2 with platform: ...\n id2 without platform: ...\"\n\n {:arglists\n '([{:keys [as default return]\n :or {as :str\n return :value}} spec])}\n\n ([ ] `(get-locals)) ; Back compatibility for unrelated util with same name\n ([opts spec] (truss/have? const-form? opts spec) `(get-env ~(assoc opts :spec spec)))\n ([opts-or-spec] (truss/have? const-form? opts-or-spec)\n (let [opts (parse-opts opts-or-spec)]\n (if (:ns &env)\n (get-env* (assoc opts :platform* :cljs)) ; Embed compile-time value\n `(get-env* ~(assoc opts :platform* :clj))))))))\n\n(comment\n (defn f1 [x] (* x x))\n (do ((get-env {:as :edn, :debug/match [:debug/source \"f1\"]}) 5))\n (macroexpand '((get-env {:as :edn, :debug/match [:debug/source \"f1\"]}) 5)))\n\n;;;; Namespaces\n\n#?(:clj\n (defn interns-overview\n \"Returns {:keys [api public private impl test no-doc]}, with each key mapped\n to an alphabetical list of the relevant vars in given namespace.\n\n \\\"impl\\\" vars are public vars with names that begin with \\\"-\\\" or \\\"_\\\",\n a naming convention commonly used to indicate vars intended to be treated\n as private implementation details even when public.\"\n ([ ] (interns-overview *ns*))\n ([ns]\n (map-vals (comp vec sort)\n (reduce-kv\n (fn [{:keys [public private impl test no-doc] :as m} k v]\n (let [mt (meta v)]\n (cond\n (:test mt) (update m :test conj k)\n (:private mt) (update m :private conj k)\n\n :if-let [impl?\n (let [sw? (partial str-starts-with? (name (:name mt)))]\n (and\n (not (sw? \"->\"))\n (some sw? [\"-\" \"_\" \"*-\" \"*_\"])))]\n (update m :impl conj k)\n\n :let [m (update m :public conj k)]\n\n (:no-doc mt) (update m :no-doc conj k)\n :else (update m :api conj k))))\n {}\n (ns-interns ns))))))\n\n(comment (interns-overview))\n\n;;;; Locals\n\n#?(:clj\n (defmacro ^:no-doc get-locals\n \"Private, don't use.\"\n []\n (let [ks (reduce\n (fn [acc in]\n (if (str-starts-with? (name in) \"__\") ; Hide privates\n (do acc)\n (conj acc (without-meta in))))\n [] (keys &env))]\n `(zipmap '~ks ~ks))))\n\n(comment\n [(let [x :x] (get-locals)) ((fn [^long x] (get-locals)) 0)\n (let [x :x] (get-env)) ((fn [^long x] (get-env)) 0)])\n\n;;;; Stubs (experimental)\n\n(defn ^:no-doc -valid-unstub-impl [x]\n (if #?(:clj (symbol? x) :cljs (fn? x))\n x\n (truss/ex-info! \"[encore/stubfn] Unexpected unstub implementation \"\n {:given (typed-val x)\n :expected #?(:clj 'symbol :cljs 'fn)})))\n\n#?(:clj\n (defmacro defstub\n \"Experimental, subject to change without notice!!\n Declares a stub var that can be initialized from any namespace with\n `unstub-`.\n\n Decouples a var's declaration (location) and its initialization (value).\n Useful for defining vars in a shared ns from elsewhere (e.g. a private\n or cyclic ns).\"\n\n ([stub-sym & more] (let [syms (cons stub-sym more)] `(do ~@(map (fn [s] `(defstub ~s)) syms))))\n ([stub-sym]\n (let [unstub-sym (with-meta (symbol (str \"unstub-\" (name stub-sym))) {:no-doc true :doc \"Call with implementation fn to initialize stub\"})\n unstub-sym* (with-meta (symbol (str \"unstub*-\" (name stub-sym))) {:no-doc true})\n stub-ns (symbol (str *ns*))\n qualified-unstub-sym* (symbol (str *ns*) (name unstub-sym*))]\n\n (if (:ns &env)\n ;; No declare/intern support\n `(let [stubfn_#\n (volatile!\n (fn [~'& args#]\n (truss/ex-info! (str \"[encore/stubfn] Attempted to call uninitialized stub fn\")\n {:stub '~stub-sym, :args args#})))]\n\n (defn ~unstub-sym* [impl-fn#] (vreset! stubfn_# (-valid-unstub-impl impl-fn#))) ; For Clj+s case\n (defn ~unstub-sym [impl-fn#] (vreset! stubfn_# (-valid-unstub-impl impl-fn#)))\n (defn ~stub-sym\n ([ ] (@stubfn_# ))\n ([x# ] (@stubfn_# x# ))\n ([x# y# ] (@stubfn_# x# y# ))\n ([x# y# z# ] (@stubfn_# x# y# z#))\n ([x# y# z# ~'& more#] (apply @stubfn_# x# y# z# more#))))\n\n `(let [stub-var# (declare ~(with-meta stub-sym {:redef true}))]\n (defmacro ~unstub-sym [~'impl]\n (if (:ns ~'&env) ; For Clj+s case\n `(~'~qualified-unstub-sym* ~~'impl)\n `(let [~'impl-var# (var ~(-valid-unstub-impl ~'impl))\n ~'stub-sym#\n (with-meta '~'~stub-sym\n (merge\n (dissoc (meta ~stub-var#) :declared :redef)\n (select-keys (meta ~'impl-var#) [:arglists :doc :macro])))]\n\n (intern '~'~stub-ns ~'stub-sym#\n (.getRawRoot ~'impl-var#)))))))))))\n\n;;;; Tests\n\n(defn test-fixtures\n \"Given a {:before ?(fn []) :after ?(fn [])} map, returns cross-platform\n test fixtures for use by both `clojure.test` and `cljs.test`:\n\n (let [f (test-fixtures {:before (fn [] (test-setup))})]\n (clojure.test/use-fixtures :once f)\n (cljs.test/use-fixtures :once f))\"\n\n [fixtures-map]\n (truss/have? map? fixtures-map)\n ;; (truss/have? [:ks<= #{:before :after}] fixtures-map)\n\n #?(:cljs fixtures-map ; Cljs supports a map with {:keys [before after]}\n :clj ; Clj wants a fn\n (let [{:keys [before after]} fixtures-map]\n (fn fixtures [f]\n (when before (before))\n (f)\n (when after (after))))))\n\n(comment (test-fixtures {:before (fn [])}))\n\n;;;; Benchmarking\n\n#?(:clj\n (defmacro time-ms \"Returns number of milliseconds it took to execute body.\"\n [& body] `(let [t0# (now-udt*)] ~@body (- (now-udt*) t0#))))\n\n#?(:clj\n (defmacro time-ns \"Returns number of nanoseconds it took to execute body.\"\n [& body] `(let [t0# (now-nano*)] ~@body (- (now-nano*) t0#))))\n\n#?(:clj\n (defmacro quick-bench\n \"Simple util to benchmark/compare runtime of given form/s.\n\n Runs sets of laps for each given form, recording the total runtime of each set.\n Returns the the total runtime in msecs of the fastest set of laps for each form.\n\n (quick-bench [ ] <...>) =>\n [\n \n <...>]\n\n Total number of runs for each form is: `num-sets` * `num-laps`\n\n If omitted, the default `num-sets` is 6 (to include warmup):\n (quick-bench <...>)\n\n Example (comparing runtime of `first` and `nth` against vector):\n (let [v [:a]] (quick-bench 1e6 (first v) (nth v 0))) => [67.43 39.05]\"\n\n ([spec form & more] (mapv (fn [form] `(quick-bench ~spec ~form)) (cons form more)))\n ([spec form]\n `(let [spec# ~spec\n ;; Default 3 warmup + 3 working sets:\n [num-sets# num-laps#] (if (vector? spec#) spec# [6 spec#])]\n (truss/have? pos-num? num-sets# num-laps#)\n (round2\n (/ (double\n (reduce min\n (for [_# (range num-sets#)]\n (time-ns (dotimes [_# num-laps#] (do ~form))))))\n 1e6))))))\n\n#?(:clj (defalias qb quick-bench))\n\n(comment (let [v [:a]] (qb [4 1e6] (first v) (nth v 0))))\n\n#?(:clj\n (defn bench*\n \"Repeatedly executes fn and returns time taken to complete execution.\"\n [nlaps {:keys [nlaps-warmup nthreads as-ns?]\n :or {nlaps-warmup 0\n nthreads 1}} f]\n (try\n (dotimes [_ nlaps-warmup] (f))\n (let [nanosecs\n (if (= nthreads 1)\n (time-ns (dotimes [_ nlaps] (f)))\n (let [nlaps-per-thread (/ (long nlaps) (long nthreads))]\n (time-ns\n (let [futures (repeatedly-into [] nthreads\n (fn [] (future (dotimes [_ nlaps-per-thread] (f)))))]\n (mapv deref futures)))))]\n (if as-ns? nanosecs (round0 (/ nanosecs 1e6))))\n (catch Throwable t\n (println (str \"Bench failure: \" (.getMessage t)))\n -1))))\n\n#?(:clj (defmacro bench [nlaps opts & body] `(bench* ~nlaps ~opts (fn [] ~@body))))\n\n;;;; Scheduling\n;; `call-at-interval` also possible but poor cost/benefit since less useful\n;; and more impl specific\n\n(do\n (defprotocol ITimeoutImpl (-schedule-timeout [_ msecs f]))\n (deftype DefaultTimeoutImpl [#?(:clj ^java.util.Timer timer)]\n ITimeoutImpl\n (-schedule-timeout [_ msecs f]\n #?(:cljs (js/setTimeout f msecs)\n :clj\n (let [tt (proxy [java.util.TimerTask] []\n (run [] (truss/catching (f))))]\n (.schedule timer tt (long msecs))))))\n\n (defonce default-timeout-impl_\n \"Simple one-timeout timeout implementation provided by platform timer.\n O(logn) add, O(1) cancel, O(1) tick. Fns must be non-blocking or cheap.\n Similar efficiency to core.async timers (binary heap vs DelayQueue).\"\n (delay\n (DefaultTimeoutImpl.\n #?(:clj (java.util.Timer. \"encore/timer\" true))))))\n\n(defprotocol ITimeoutFuture\n (tf-state [_] \"Returns a map of timeout's public state.\")\n (tf-poll [_] \"Returns :timeout/pending, :timeout/cancelled, or the timeout's completed result.\")\n (tf-done? [_] \"Returns true iff the timeout is not pending (i.e. has a completed result or is cancelled).\")\n (tf-pending? [_] \"Returns true iff the timeout is pending.\")\n (tf-cancelled? [_] \"Returns true iff the timeout is cancelled.\")\n (tf-cancel! [_] \"Returns true iff the timeout was successfully cancelled (i.e. was previously pending).\"))\n\n#?(:cljs\n (deftype TimeoutFuture [f result__ udt]\n ITimeoutFuture\n (tf-state [_] {:fn f :udt udt})\n (tf-poll [_] @result__)\n (tf-done? [_] (not (identical-kw? @result__ :timeout/pending)))\n (tf-pending? [_] (identical-kw? @result__ :timeout/pending))\n (tf-cancelled? [_] (identical-kw? @result__ :timeout/cancelled))\n (tf-cancel! [_] (-cas!? result__ :timeout/pending :timeout/cancelled))\n\n IPending (-realized? [t] (tf-done? t))\n IDeref (-deref [t] (tf-poll t))))\n\n#?(:clj\n (deftype TimeoutFuture\n [f result__ ^long udt ^CountDownLatch latch]\n ITimeoutFuture\n (tf-state [_] {:fn f :udt udt})\n (tf-poll [_] (result__))\n (tf-done? [_] (not (identical-kw? (result__) :timeout/pending)))\n (tf-pending? [_] (identical-kw? (result__) :timeout/pending))\n (tf-cancelled? [_] (identical-kw? (result__) :timeout/cancelled))\n (tf-cancel! [_]\n (if (-cas!? result__ :timeout/pending :timeout/cancelled)\n (do (.countDown latch) true)\n false))\n\n clojure.lang.IPending (isRealized [t] (tf-done? t))\n clojure.lang.IDeref (deref [_] (.await latch) (result__))\n clojure.lang.IBlockingDeref\n (deref [_ timeout-msecs timeout-val]\n (if (.await latch timeout-msecs java.util.concurrent.TimeUnit/MILLISECONDS)\n (result__)\n timeout-val))\n\n java.util.concurrent.Future\n (isCancelled [t] (tf-cancelled? t))\n (isDone [t] (tf-done? t))\n (cancel [t _] (tf-cancel! t))))\n\n(defn timeout-future? #?(:cljs {:tag 'boolean}) [x] (instance? TimeoutFuture x))\n\n(defn call-after-timeout\n \"Alpha, subject to change.\n Returns a TimeoutFuture that will execute `f` after given msecs.\n\n Does NOT do any automatic binding conveyance.\n\n Performance depends on the provided timer implementation (`impl_`).\n The default implementation offers O(logn) add, O(1) cancel, O(1) tick.\n\n See `ITimeoutImpl` for extending to arbitrary timer implementations.\"\n\n ;; Why no auto binding convyance? Explicit manual conveyance plays better\n ;; with cljs, and means less surprise with `future-fn`.\n ([ msecs f] (call-after-timeout default-timeout-impl_ msecs f))\n ([impl_ msecs f]\n (let [msecs (long msecs)\n udt (+ (now-udt) msecs) ; Approx instant to run\n result__ (latom :timeout/pending)\n #?@(:clj [latch (CountDownLatch. 1)])\n cas-f\n (fn []\n (let [result_ (delay (f))]\n (when (-cas!? result__ :timeout/pending result_)\n @result_\n #?(:clj (.countDown latch)))))]\n\n (let [impl (force impl_)] (-schedule-timeout impl msecs cas-f))\n (TimeoutFuture. f result__ udt #?(:clj latch)))))\n\n#?(:clj\n (defmacro after-timeout\n \"Alpha, subject to change.\n Returns a TimeoutFuture that will execute body after timeout.\n Body must be non-blocking or cheap.\"\n [msecs & body] `(call-after-timeout ~msecs (fn [] ~@body))))\n\n(comment\n @(after-timeout 500 (println \"foo\") \"bar\")\n (def ^:dynamic *foo* nil)\n (core/binding [*foo* \"bar\"] ; Note no auto conveyance\n ((:fn (tf-state (after-timeout 200 (println *foo*) *foo*))))))\n\n;;;; Browser\n\n#?(:cljs\n (do ; Basic browser logging\n (def ^:private console-log\n (if-not (exists? js/console)\n (fn [& xs] nil)\n (fn [& xs] (when-let [f js/console.log]\n (.apply f js/console (into-array xs))))))\n\n (def log console-log) ; Raw args\n (defn logp [ & xs] (console-log (str-join \" \" (map nil->str) xs)))\n (defn sayp [ & xs] (js/alert (str-join \" \" (map nil->str) xs)))\n (defn logf [fmt & xs] (console-log (format* fmt xs)))\n (defn sayf [fmt & xs] (js/alert (format* fmt xs)))))\n\n#?(:cljs\n (defn get-win-loc\n \"Returns current window location as\n {:keys [href protocol hostname host pathname search hash]}.\"\n []\n (when-let [loc (oget js-?window \"location\")]\n {;; Ref. \n :href (.-href loc) ; \"http://www.example.org:80/foo/bar?q=baz#bang\"\n :protocol (.-protocol loc) ; \"http:\" ; Note the :\n :hostname (.-hostname loc) ; \"example.org\"\n :host (.-host loc) ; \"example.org:80\"\n :pathname (.-pathname loc) ; \"/foo/bar\"\n :search (.-search loc) ; \"?q=baz\"\n :hash (.-hash loc) ; \"#bang\"\n })))\n\n#?(:cljs (def ^:private default-xhr-pool_ (delay (goog.net.XhrIoPool.))))\n#?(:cljs\n (defn ajax-call\n \"Queues a lightweight Ajax call with Google Closure's `goog.net.XhrIo`\n and returns nil, or the resulting `goog.net.XhrIo` instance if one was\n immediately available from the XHR pool:\n\n (ajax-call\n \\\"http://localhost:8080/my-post-route\\\" ; Endpoint URL\n\n {:method :post ; \u2208 #{:get :post :put}\n :resp-type :text ; \u2208 #{:auto :text :edn :json :xml\n ; :bin/array-buffer :bin/blob} ; Expected response type\n\n :headers {\\\"Content-Type\\\" \\\"text/plain\\\"} ; Request headers\n :params {:username \\\"Rich Hickey\\\" :type \\\"Awesome\\\"} ; Request params\n\n :timeout-ms 10000 ; Request timeout in msecs\n :with-credentials? false ; Enable if using CORS\n :xhr-pool my-xhr-pool ; Optional `goog.net.XhrIoPool` instance or delay\n :xhr-timeout-ms 2500 ; Optional max msecs to wait on pool for `XhrIo`\n :xhr-cb-fn (fn [xhr]) ; Optional fn to call with `XhrIo` from pool when available\n }\n\n (fn callback [resp-map]\n (let [{:keys [success? ?status ?error ?content ?content-type]} resp-map]\n ;; ?status ; \u2208 #{nil 200 404 ...}, non-nil iff server responded\n ;; ?error ; \u2208 #{nil :timeout\n :abort :http-error :exception :xhr-pool-depleted :bad-edn}\n (js/alert (str \\\"Ajax response: \\\" resp-map)))))\"\n [url\n {:keys [method body params headers timeout-ms resp-type with-credentials?\n xhr-pool xhr-cb-fn xhr-timeout-ms] :as opts\n :or\n {method :get\n timeout-ms 10000\n resp-type :auto\n xhr-pool default-xhr-pool_\n xhr-timeout-ms 2500}}\n\n callback-fn]\n\n (cond\n :do (truss/have? [:or nil? nat-int?] timeout-ms)\n :let [^goog.net.XhrIoPool xhr-pool (force xhr-pool)]\n :let\n [with-xhr\n (fn [^goog.net.XhrIo xhr]\n (truss/try*\n (let [timeout-ms (or (get opts :timeout) timeout-ms) ; Deprecated opt\n\n {:keys [url+ content content-type]}\n (cond\n (case method (:get :head :options :trace \"GET\" \"HEAD\" \"OPTIONS\" \"TRACE\") true false)\n (when-not (empty? params)\n {:url+ (str url \"?\" (gquery-data/createFromMap (clj->js params)))})\n\n body ; Given explicit body \u2208 #{string js/FormData js/ArrayBuffer ...}\n (if (empty? params)\n {:content body}\n {:content body, :url+ (str url \"?\" (gquery-data/createFromMap (clj->js params)))})\n\n (and (exists? js/FormData) (instance? js/FormData params)) ; Back compatability\n {:content params}\n\n (and (exists? js/FormData) (rsome-kv (fn [_ v] (instance? js/Blob v)) params)) ; Back compatibility\n (let [form-data (js/FormData.)]\n (doseq [[k v] params] (.append form-data (name k) v))\n {:content form-data})\n\n :else\n {:content (str (gquery-data/createFromMap (clj->js params)))\n :content-type \"application/x-www-form-urlencoded;charset=UTF-8\"})\n\n headers (map-keys #(str/lower-case (name %)) headers)\n headers (assoc-some headers \"x-requested-with\"\n (get headers \"x-requested-with\" \"XMLHTTPRequest\"))\n headers (assoc-some headers \"content-type\"\n (get headers \"content-type\" content-type))\n\n progress-listener\n (when-let [pf (get opts :progress-fn)] ; Undocumented\n (.setProgressEventsEnabled xhr true)\n (gevents/listen xhr goog.net.EventType/PROGRESS\n (fn [ev]\n (let [length-computable? (.-lengthComputable ev)\n loaded (.-loaded ev)\n total (.-total ev)\n ?ratio (when (and length-computable? (not= total 0))\n (/ loaded total))]\n (pf\n {:length-computable? length-computable?\n :?ratio ?ratio\n :loaded loaded\n :total total\n :ev ev})))))]\n\n (gevents/listenOnce xhr goog.net.EventType/READY\n (fn [_] (.releaseObject xhr-pool xhr)))\n\n (gevents/listenOnce xhr goog.net.EventType/COMPLETE\n (fn wrapped-callback [resp]\n (let [success? (.isSuccess xhr) ; true iff no error or timeout\n status (.getStatus xhr) ; -1, 200, etc.\n\n [status content-type content error]\n (when (not= status -1) ; Got a response from server\n (let [content-type (.getResponseHeader xhr \"content-type\") ; Case insensitive\n resp-type\n (cond\n (not= resp-type :auto) resp-type\n (nil? content-type) :text\n :else\n (let [ct (str/lower-case content-type)]\n (cond\n (str-contains? ct \"/edn\") :edn\n (str-contains? ct \"/json\") :json\n (str-contains? ct \"/xml\") :xml\n :else :text)))\n\n [content error]\n (case resp-type\n :text [(.getResponseText xhr)]\n :json [(.getResponseJson xhr)]\n :xml [(.getResponseXml xhr)]\n :edn\n (when-let [edn (.getResponseText xhr)]\n (truss/try*\n [(read-edn edn)]\n (catch :all _ [edn :bad-edn])))\n\n [(.getResponse xhr)])]\n\n [status content-type content error]))\n\n success? (and success? (not error))]\n\n (when progress-listener\n (gevents/unlistenByKey progress-listener))\n\n (callback-fn\n {:raw-resp resp\n :xhr xhr ; = (.-target resp)\n :success? success?\n :?status status\n :?content-type content-type\n :?content content\n :?error\n (if success?\n nil\n (cond\n error error ; :bad-edn, etc.\n status status ; Http error status code (e.g. 404)\n :else\n (case (.getLastErrorCode xhr)\n goog.net.ErrorCode/NO_ERROR nil\n goog.net.ErrorCode/EXCEPTION :exception\n goog.net.ErrorCode/HTTP_ERROR :http-error\n goog.net.ErrorCode/ABORT :abort\n goog.net.ErrorCode/TIMEOUT :timeout\n (do :unknown))))}))))\n\n (.setTimeoutInterval xhr (or timeout-ms 0)) ; 0 => no timeout\n (when with-credentials?\n (.setWithCredentials xhr true)) ; Requires xhr v2+\n\n (case resp-type\n (:auto :text :edn) nil\n :json (.setResponseType xhr \"json\")\n :xml (.setResponseType xhr \"document\")\n :bin/array-buffer (.setResponseType xhr \"arraybuffer\")\n :bin/blob (.setResponseType xhr \"blob\")\n (when resp-type (.setResponseType xhr resp-type)))\n\n (.send xhr (or url+ url) (name method) content (clj->js headers))\n\n (when-let [cb xhr-cb-fn] (truss/catching (cb xhr)))\n xhr)\n\n (catch :all e\n (.releaseObject xhr-pool xhr)\n (callback-fn {:?error e})\n nil)))]\n\n :if-let [xhr (.getObject xhr-pool)] ; Available immediately\n (with-xhr xhr)\n\n (zero? (or xhr-timeout-ms 0))\n (do (callback-fn {:?error :xhr-pool-depleted}) nil)\n\n :else\n (let [done?_ (atom false)]\n\n (js/setTimeout\n (fn xhr-timeout []\n (when (compare-and-set! done?_ false true)\n (callback-fn {:?error :xhr-pool-timeout})))\n xhr-timeout-ms)\n\n (.getObject xhr-pool\n (fn xhr-cb [xhr]\n ;; We've acquired xhr after some time\n (if (compare-and-set! done?_ false true)\n (with-xhr xhr)\n (.releaseObject xhr-pool xhr))))\n nil))))\n\n;;;; Ring\n\n#?(:clj\n (defn session-swap\n \"Util to help correctly update Ring sessions (something easy to get wrong!).\n\n Given a Ring request (rreq) and Ring response (rresp), returns a new\n Ring response with the response session updated to be (f )\n or (apply f args).\"\n [rreq rresp f & args]\n (when rresp\n (let [base (get rresp :session (get rreq :session))\n new-session (if args (apply f base args) (f base))]\n (assoc rresp :session new-session)))))\n\n#?(:clj\n (defn normalize-headers [rreq-or-rresp]\n (when rreq-or-rresp\n (assoc rreq-or-rresp :headers (map-keys str/lower-case (:headers rreq-or-rresp))))))\n\n(comment (normalize-headers {:headers {\"Foo1\" \"bar1\" \"FOO2\" \"bar2\" \"foo3\" \"bar3\"}}))\n\n#?(:clj\n (defn ^:no-doc -ring-merge-headers\n \"Private, don't use.\"\n [h1 h2]\n (reduce-kv\n (fn [m k2 v2]\n (if-let [e1 (find h1 k2)]\n (let [v1 (val e1)\n v3\n (if (vector? v1)\n (if (vector? v2)\n (if (:add (meta v2)) ; vec <- vec\n (into v1 v2)\n (do v2))\n (conj v1 v2)) ; vec <- el\n (if (vector? v2)\n (if (:add (meta v2)) ; el <- vec\n (into [v1] v2)\n (do v2))\n #_[v1 v2] v2)) ; el <- el\n ]\n\n (assoc m k2 v3))\n (assoc m k2 v2)))\n h1\n h2)))\n\n(comment\n (-ring-merge-headers\n {\"a\" \"A1\" \"b\" \"B1\" \"c\" \"C1\"}\n {\"a\" \"A2\" \"b\" ^:add [\"B2\"] \"d\" \"D2\"}))\n\n#?(:clj\n (do\n (defn ring-resp-map [x] (when x (if (map? x) x {:body x})))\n (defn ring-set-body [body rresp] (assoc (ring-resp-map rresp) :body body))\n (defn ring-set-status [code rresp] (assoc (ring-resp-map rresp) :status code))\n (defn ring-set-headers [headers rresp] (assoc (ring-resp-map rresp) :headers headers))\n (defn ring-default-headers [headers rresp] (assoc (ring-resp-map rresp) :headers (-ring-merge-headers headers (get rresp :headers))))\n (defn ring-merge-headers [headers rresp] (assoc (ring-resp-map rresp) :headers (-ring-merge-headers (get rresp :headers) headers)))))\n\n(comment\n (ring-merge-headers {\"BAR\" \"baz\"} {:body \"foo\"})\n (ring-merge-headers {\"bar\" \"baz\"} \"foo\" )\n (ring-merge-headers {\"bar\" ^:add [\"baz2\"]} {:body \"foo\" :headers {\"bar\" \"baz1\"}}))\n\n#?(:clj\n (defn ring-redirect-resp\n ([ url ] (ring-redirect-resp :temp url nil))\n ([kind url ] (ring-redirect-resp kind url nil))\n ([kind url flash]\n {:headers {\"location\" url}\n :body nil\n :flash flash\n :status\n (case kind\n (301 :permanent :perm) 301\n (302 :temporary :temp nil) 302\n kind)})))\n\n(comment (ring-redirect-resp 303 \"/foo\" \"boo!\"))\n\n(defn url-encode\n \"Based on .\"\n #?(:clj [s & [encoding]] :cljs [s])\n (when s\n #?(:clj (-> (str s)\n (java.net.URLEncoder/encode (str (or encoding \"UTF-8\")))\n (str/replace \"*\" \"%2A\") ; Cautious, \n (str/replace \"+\" \"%20\") ; Cautious, \n )\n :cljs (-> (str s)\n (js/encodeURIComponent s)\n (str/replace \"*\" \"%2A\")))))\n\n(defn url-decode\n \"Stolen from .\"\n [s & [encoding]]\n (when s\n #?(:clj (java.net.URLDecoder/decode (str s) (str (or encoding \"UTF-8\")))\n :cljs (js/decodeURIComponent (str s)))))\n\n(comment\n (url-decode (url-encode \"Hello there\"))\n (url-decode \"hello+there\"))\n\n(defn format-query-string [m]\n (let [param (fn [k v] (str (url-encode (as-qname k)) \"=\"\n (url-encode (or (as-?qname v) (str v)))))\n join (fn [strs] (str/join \"&\" strs))]\n (if (empty? m)\n \"\"\n (join\n (for [[k v] m :when (core/some? v)]\n (if (sequential? v)\n (join (mapv (partial param k) (or (seq v) [\"\"])))\n (param k v)))))))\n\n(comment\n (format-query-string {})\n (format-query-string {:k1 \"v1\" :k2 \"v2\" :k3 nil :k4 \"\" :k5 [\"v4a\" \"v4b\" 7] :k6 []})\n (format-query-string {:a/b :c/d})\n (format-query-string {:k nil}) ; Nb to allow removing pre-existing params, etc.\n )\n\n(defn- assoc-conj [m k v]\n (assoc m k (if-let [cur (get m k)] (if (vector? cur) (conj cur v) [cur v]) v)))\n\n(comment (assoc-conj {:a \"a\"} :a \"b\"))\n\n(defn parse-query-params\n \"Based on `ring-codec/form-decode`.\"\n [s & [keywordize? encoding]]\n (if (or (str/blank? s) (not (str-contains? s \"=\")))\n {}\n (let [;; For convenience (e.g. JavaScript win-loc :search)\n s (if (str-starts-with? s \"?\") (subs s 1) s)\n m (reduce\n (fn [m param]\n (if-let [[k v] (str/split param #\"=\" 2)]\n (assoc-conj m (url-decode k encoding) (url-decode v encoding))\n m))\n {}\n (str/split s #\"&\"))]\n (if-not keywordize?\n m\n (map-keys keyword m)))))\n\n(comment\n (parse-query-params nil)\n (parse-query-params \"?foo=bar\" :keywordize)\n (-> {:k1 \"v1\" :k2 \"v2\" :k3 nil :k4 \"\" :k5 [\"v4a\" \"v4b\"] :k6 [] :k7 47}\n (format-query-string)\n (parse-query-params)))\n\n(defn merge-url-with-query-string [url m]\n (let [[url ?qstr] (str/split (str url) #\"\\?\" 2)\n qmap (merge\n (when ?qstr (map-keys keyword (parse-query-params ?qstr)))\n (map-keys keyword m))\n ?qstr (as-?nblank (format-query-string qmap))]\n (if-let [qstr ?qstr] (str url \"?\" qstr) url)))\n\n(comment\n (merge-url-with-query-string \"/\" nil)\n (merge-url-with-query-string \"/?foo=bar\" nil)\n (merge-url-with-query-string \"/?foo=bar\" {\"foo\" \"overwrite\"})\n (merge-url-with-query-string \"/?foo=bar\" {:foo \"overwrite\"})\n (merge-url-with-query-string \"/?foo=bar\" {:foo nil})\n (merge-url-with-query-string \"/?foo=bar\" {:foo2 \"bar2\" :num 5 :foo nil}))\n\n#?(:cljs\n (defn ^string pr-json\n \"Returns given Cljs argument as JSON string.\"\n [x] (.stringify js/JSON (clj->js x :keyword-fn as-qname))))\n\n#?(:cljs\n (defn read-json\n \"Reads given JSON string to return a Cljs value.\"\n ([ s] (read-json false s))\n ([kw-keys? s]\n (cond\n (or (nil? s) (= s \"\")) nil\n (not (string? s))\n (truss/ex-info! \"[encore/read-json] Unexpected arg type (expected string or nil)\"\n {:arg (typed-val s)})\n\n :else\n (if kw-keys?\n (js->clj (js/JSON.parse s) :keywordize-keys true)\n (js->clj (js/JSON.parse s)))))))\n\n;;;; DEPRECATED\n;; {:deprecated \"v ()\" :doc \"Prefer ``.\"}\n;; Note `:deprecation-nowarn` meta used as workaround for long-standing\n;; CLJS-2000, Ref. .\n\n#?(:clj\n (defmacro deprecated\n \"Elides body when `taoensso.elide-deprecated` JVM property or\n `TAOENSSO_ELIDE_DEPRECATED` environment variable is \u2208 #{\\\"true\\\" \\\"TRUE\\\"}.\"\n [& body]\n (let [elide? (get-env {:as :bool} :taoensso.elide-deprecated<.platform>)]\n (when-not elide? `(do ~@body)))))\n\n(deprecated \"Older misc\"\n (defn ^:no-doc -swap-val!\n \"Prefer `latom`.\"\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"}\n [atom_ k f]\n (loop []\n (let [m0 @atom_\n v1 (f (get m0 k))\n m1 (assoc m0 k v1)]\n (if (-cas!? atom_ m0 m1)\n v1\n (recur)))))\n\n #?(:cljs (def ^:no-doc ^:deprecated js-?win js-?window))\n #?(:cljs (def ^:no-doc ^:deprecated regular-num? finite-num?))\n #?(:cljs (def ^:no-doc ^:deprecated get-window-location get-win-loc))\n #?(:clj (def ^:no-doc ^:deprecated srng secure-rng))\n (def ^:no-doc ^:deprecated backport-run! run!)\n (def ^:no-doc ^:deprecated fq-name as-qname)\n (def ^:no-doc ^:deprecated qname as-qname)\n (def ^:no-doc ^:deprecated merge-deep-with nested-merge-with)\n (def ^:no-doc ^:deprecated merge-deep nested-merge)\n (def ^:no-doc ^:deprecated parse-bool as-?bool)\n (def ^:no-doc ^:deprecated parse-int as-?int)\n (def ^:no-doc ^:deprecated parse-float as-?float)\n (def ^:no-doc ^:deprecated swapped* swapped)\n (def ^:no-doc ^:deprecated memoize-a0_ memoize)\n (def ^:no-doc ^:deprecated memoize-a1_ memoize)\n (def ^:no-doc ^:deprecated a0-memoize_ memoize)\n (def ^:no-doc ^:deprecated a1-memoize_ memoize)\n (def ^:no-doc ^:deprecated memoize-1 memoize-last)\n (def ^:no-doc ^:deprecated memoize1 memoize-last)\n (def ^:no-doc ^:deprecated memoize* memoize)\n (def ^:no-doc ^:deprecated memoize_ memoize)\n (def ^:no-doc ^:deprecated nnil? core/some?)\n (def ^:no-doc ^:deprecated nneg-num? nat-num?)\n (def ^:no-doc ^:deprecated nneg-int? nat-int?)\n (def ^:no-doc ^:deprecated nneg-float? nat-float?)\n (def ^:no-doc ^:deprecated uint? nat-int?)\n (def ^:no-doc ^:deprecated pint? pos-int?)\n (def ^:no-doc ^:deprecated nnil= some=)\n (def ^:no-doc ^:deprecated as-?uint as-?nat-int)\n (def ^:no-doc ^:deprecated as-?pint as-?pos-int)\n (def ^:no-doc ^:deprecated as-?ufloat as-?nat-float)\n (def ^:no-doc ^:deprecated as-?pfloat as-?pos-float)\n (def ^:no-doc ^:deprecated as-uint as-nat-int)\n (def ^:no-doc ^:deprecated as-pint as-pos-int)\n (def ^:no-doc ^:deprecated as-ufloat as-nat-float)\n (def ^:no-doc ^:deprecated as-pfloat as-pos-float)\n (def ^:no-doc ^:deprecated run!* run!)\n (def ^:no-doc ^:deprecated nano-time now-nano)\n (def ^:no-doc ^:deprecated -swap-cache! -swap-val!)\n (def ^:no-doc ^:deprecated -unswapped swapped-vec)\n (def ^:no-doc ^:deprecated -vswapped swapped-vec)\n (def ^:no-doc ^:deprecated -swap-k! -swap-val!)\n (def ^:no-doc ^:deprecated update-in* update-in)\n (def ^:no-doc ^:deprecated idx-fn counter)\n (def ^:no-doc ^:deprecated vec* ensure-vec)\n (def ^:no-doc ^:deprecated set* ensure-set)\n (def ^:no-doc ^:deprecated have-transducers? true)\n\n (def ^:no-doc ^:deprecated pval? pnum?)\n (def ^:no-doc ^:deprecated as-?pval as-?pnum)\n (def ^:no-doc ^:deprecated as-pval as-pnum)\n\n ;; Used by old versions of Timbre, Tufte\n (let [nolist? #(contains? #{nil [] #{}} %)]\n (defn ^:no-doc ^:deprecated compile-ns-filter\n ([ns-pattern ] ^:deprecation-nowarn (compile-ns-filter ns-pattern nil))\n ([whitelist blacklist]\n (if (and (nolist? whitelist) (nolist? blacklist))\n (fn [_] true) ; Unfortunate API choice\n (name-filter {:allow whitelist :disallow blacklist})))))\n\n #?(:clj (defn ^:no-doc ^:deprecated set-body [rresp body] (ring-set-body body rresp)))\n #?(:clj (defn ^:no-doc ^:deprecated set-status [rresp code] (ring-set-status code rresp)))\n #?(:clj (defn ^:no-doc ^:deprecated merge-headers [rresp headers] (ring-merge-headers headers rresp)))\n #?(:clj (def ^:no-doc ^:deprecated redirect-resp ring-redirect-resp))\n #?(:clj (defn ^:no-doc ^:deprecated compiling-cljs? []\n (when-let [ns (find-ns 'cljs.analyzer)]\n (when-let [v (ns-resolve ns '*cljs-file*)]\n (boolean @v)))))\n\n #?(:clj\n (defmacro catching\n \"Terse, cross-platform (try* expr (catch :all _)).\n Arities besides #{1 2} are deprecated, prefer `try*` in these cases.\"\n ([ expr] `(truss/try* ~expr (catch :all ~'_)))\n ([error-type expr] `(truss/try* ~expr (catch ~error-type ~'_)))\n\n ;;; Deprecated arities:\n ([try-expr error-sym catch-expr ] `(truss/try* ~try-expr (catch :all ~error-sym ~catch-expr)))\n ([try-expr error-sym catch-expr finally-expr] `(truss/try* ~try-expr (catch :all ~error-sym ~catch-expr) (finally ~finally-expr)))\n ([try-expr error-type error-sym catch-expr finally-expr] `(truss/try* ~try-expr (catch ~error-type ~error-sym ~catch-expr) (finally ~finally-expr)))))\n\n #?(:clj\n (do\n (defmacro ^:no-doc ^:deprecated if-lets [& args] `(taoensso.encore/if-let ~@args))\n (defmacro ^:no-doc ^:deprecated when-lets [& args] `(taoensso.encore/when-let ~@args))\n (defmacro ^:no-doc ^:deprecated if-not* [& args] `(taoensso.encore/if-not ~@args))\n (defmacro ^:no-doc ^:deprecated cond* [& args] `(taoensso.encore/cond ~@args))\n (defmacro ^:no-doc ^:deprecated defonce* [& args] `(taoensso.encore/defonce ~@args))\n (defmacro ^:no-doc ^:deprecated have-in [a1 & an] `(taoensso.encore/have ~a1 :in ~@an))\n (defmacro ^:no-doc ^:deprecated have-in! [a1 & an] `(taoensso.encore/have! ~a1 :in ~@an))\n (defmacro ^:no-doc ^:deprecated cond-throw [& args] `(taoensso.encore/cond! ~@args))\n (defmacro ^:no-doc ^:deprecated catch-errors* [& args] `(taoensso.encore/catching ~@args))\n (defmacro ^:no-doc ^:deprecated use-fixtures* [& args] `(taoensso.encore/use-fixtures ~@args))\n (defmacro ^:no-doc ^:deprecated nano-time* [& args] `(taoensso.encore/now-nano* ~@args))\n (defmacro ^:no-doc ^:deprecated qbench [& args] `(taoensso.encore/quick-bench ~@args))\n (defmacro ^:no-doc ^:deprecated catch-errors [& body] `(truss/try* [(do ~@body) nil] (catch :all e# [nil e#])))\n\n (defmacro ^:no-doc ^:deprecated -vol! [val] `(volatile! ~val))\n (defmacro ^:no-doc ^:deprecated -vol-reset! [vol_ val] `(vreset! ~vol_ ~val))\n (defmacro ^:no-doc ^:deprecated -vol-swap! [vol_ f & args] `(vswap! ~vol_ ~f ~@args))\n\n (defmacro ^:no-doc thrown\n {:deprecated \"Encore v3.31.0 (2022-10-27)\"\n :doc \"Prefer `throws`.\"}\n [& args] `(truss/throws ~@args))))\n\n ;;; Prefer `str-join` when possible (needs Clojure 1.7+)\n #?(:cljs (defn ^:no-doc ^:deprecated undefined->nil [x] (if (undefined? x) nil x)))\n (defn ^:no-doc ^:deprecated spaced-str-with-nils [xs] (str/join \" \" (mapv nil->str xs)))\n (defn ^:no-doc ^:deprecated spaced-str [xs] (str/join \" \" #?(:clj xs :cljs (mapv undefined->nil xs))))\n\n ;; Arg order changed for easier partials, etc.:\n (defn ^:no-doc ^:deprecated approx=\n ([x y ] (approx== x y))\n ([x y signf] (approx== signf x y)))\n\n ;; & coll changed to coll:\n (defn ^:no-doc ^:deprecated join-once [sep & coll] (str-join-once sep coll))\n\n #?(:clj\n (do ;; Used by Carmine <= v2.7.0\n (defmacro ^:no-doc ^:deprecated repeatedly* [n & body] `(repeatedly-into* [] ~n ~@body))\n (defmacro ^:no-doc ^:deprecated repeatedly-into* ; Used by Nippy < v2.10\n [coll n & body] `(repeatedly-into ~coll ~n (fn [] ~@body)))))\n\n (defn ^:no-doc ^:deprecated nnil-set [x] (disj (ensure-set x) nil))\n\n ;;; Arg order changed for easier partials\n (defn ^:no-doc ^:deprecated keys= [m ks] (ks= ks m))\n (defn ^:no-doc ^:deprecated keys<= [m ks] (ks<= ks m))\n (defn ^:no-doc ^:deprecated keys>= [m ks] (ks>= ks m))\n (defn ^:no-doc ^:deprecated keys=nnil? [m ks] (ks-nnil? ks m))\n\n ;; Used by Sente <= v1.4.0-alpha2\n (def ^:no-doc ^:deprecated logging-level (atom :debug)) ; Just ignoring this now\n\n #?(:cljs ; Used by Sente <= v1.1.0\n (defn ^:no-doc ^:deprecated set-exp-backoff-timeout! [nullary-f & [nattempt]]\n (js/setTimeout nullary-f (exp-backoff (or nattempt 0)))))\n\n #?(:cljs\n (do ; Level-based Cljs logging (prefer Timbre v4+)\n (defonce ^:no-doc ^:deprecated ^:dynamic *log-level* :debug)\n (def ^:private log?\n (let [->n {:trace 1 :debug 2 :info 3 :warn 4 :error 5 :fatal 6 :report 7}]\n (fn [level] (>= (->n level) (->n *log-level*)))))\n\n (defn ^:no-doc ^:deprecated tracef [fmt & xs] (when (log? :trace) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated debugf [fmt & xs] (when (log? :debug) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated infof [fmt & xs] (when (log? :info) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated warnf [fmt & xs] (when (log? :warn) (apply logf (str \"WARN: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated errorf [fmt & xs] (when (log? :error) (apply logf (str \"ERROR: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated fatalf [fmt & xs] (when (log? :fatal) (apply logf (str \"FATAL: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated reportf [fmt & xs] (when (log? :report) (apply logf fmt xs)))))\n\n (defn ^:no-doc ^:deprecated greatest [coll & [?comparator]]\n (let [comparator (or ?comparator rcompare)]\n (reduce #(if (pos? (long (comparator %1 %2))) %2 %1) coll)))\n\n (defn ^:no-doc ^:deprecated least [coll & [?comparator]]\n (let [comparator (or ?comparator rcompare)]\n (reduce #(if (neg? (long (comparator %1 %2))) %2 %1) coll)))\n\n (defn ^:no-doc ^:deprecated clj1098 \"Ref. \" [x] (or x {}))\n\n (defn ^:no-doc ^:deprecated distinct-by\n \"Prefer `xdistinct`.\"\n [keyfn coll]\n (let [step (fn step [xs seen]\n (lazy-seq\n ((fn [[v :as xs] seen]\n (when-let [s (seq xs)]\n (let [v* (keyfn v)]\n (if (contains? seen v*)\n (recur (rest s) seen)\n (cons v (step (rest s) (conj seen v*)))))))\n xs seen)))]\n (step coll #{})))\n\n (defn ^:no-doc ^:deprecated distinctv\n \"Prefer `xdistinct`.\"\n ([ coll] ^:deprecation-nowarn (distinctv identity coll))\n ([keyfn coll]\n (let [tr (reduce (fn [[v seen] in]\n (let [in* (keyfn in)]\n (if-not (contains? seen in*)\n [(conj! v in) (conj seen in*)]\n [v seen])))\n [(transient []) #{}]\n coll)]\n (persistent! (nth tr 0)))))\n\n (defn ^:no-doc ^:deprecated map-kvs [kf vf m]\n \"Prefer `reduce-kv`.\"\n (if-not m {}\n (let [vf (cond (nil? vf) (fn [_ v] v) :else vf)\n kf (cond (nil? kf) (fn [k _] k)\n (identical-kw? kf :keywordize) (fn [k _] (keyword k))\n :else kf)]\n (persistent!\n (reduce-kv (fn [m k v] (assoc! m (kf k v) (vf k v)))\n (transient {}) m)))))\n\n (defn ^:no-doc ^:deprecated as-map [kvs & [kf vf]]\n \"Prefer `reduce-kvs`.\"\n (if (empty? kvs) {}\n (let [vf (cond (nil? vf) (fn [_ v] v) :else vf)\n kf (cond (nil? kf) (fn [k _] k)\n (identical-kw? kf :keywordize) (fn [k _] (keyword k))\n :else kf)]\n (persistent!\n (reduce-kvs\n (fn [m k v] (assoc! m (kf k v) (vf k v))) (transient {}) kvs)))))\n\n (defn ^:no-doc ^:deprecated keywordize-map [m] (map-keys keyword m))\n (defn ^:no-doc ^:deprecated removev [pred coll] (filterv (complement pred) coll))\n (defn ^:no-doc ^:deprecated nvec? [n x] (and (vector? x) (= (count x) n)))\n\n (defn ^:no-doc ^:deprecated memoized [cache f & args]\n (if-not cache ; { }\n (apply f args)\n (deref ^:deprecation-nowarn\n (-swap-val! cache args (fn [?dv] (if ?dv ?dv (delay (apply f args))))))))\n\n (defn- translate-signed-idx [^long signed-idx ^long max-idx]\n (if (>= signed-idx 0)\n (min signed-idx max-idx)\n (max 0 (+ signed-idx max-idx))))\n\n (comment (translate-signed-idx -3 5))\n\n (def ^:no-doc ^:deprecated sentinel (new-object))\n (defn ^:no-doc ^:deprecated sentinel? [x] (identical? x sentinel))\n (defn ^:no-doc ^:deprecated nil->sentinel [x] (if (nil? x) sentinel x))\n (defn ^:no-doc ^:deprecated sentinel->nil [x] (if ^:deprecation-nowarn (sentinel? x) nil x))\n\n (defn ^:no-doc ^:deprecated singleton? [coll] (if (counted? coll) (= (count coll) 1) (not (next coll))))\n (defn ^:no-doc ^:deprecated ->?singleton [coll] (when ^:deprecation-nowarn (singleton? coll) (let [[c1] coll] c1)))\n (defn ^:no-doc ^:deprecated ->vec [x] (cond (vector? x) x (sequential? x) (vec x) :else [x]))\n\n (defn ^:no-doc ^:deprecated fzipmap [ks vs]\n (loop [m (transient {})\n ks (seq ks)\n vs (seq vs)]\n (if-not (and ks vs)\n (persistent! m)\n (recur (assoc! m (first ks) (first vs))\n (next ks)\n (next vs)))))\n\n (defn ^:no-doc ^:deprecated filter-kvs [pred m] (if (nil? m) {} (reduce-kv (fn [m k v] (if (pred k v) m (dissoc m k))) m m)))\n (defn ^:no-doc ^:deprecated remove-kvs [pred m] (if (nil? m) {} (reduce-kv (fn [m k v] (if (pred k v) (dissoc m k) m)) m m)))\n\n (defn ^:no-doc ^:deprecated revery [pred coll] (reduce (fn [acc in] (if (pred in) coll (reduced nil))) coll coll))\n (defn ^:no-doc ^:deprecated revery-kv [pred coll] (reduce-kv (fn [acc k v] (if (pred k v) coll (reduced nil))) coll coll))\n\n (def ^:no-doc ^:deprecated every revery)\n\n (defn ^:no-doc ^:deprecated replace-in [m & ops]\n (reduce\n (fn [m ?op]\n (if-not ?op\n m ; Support conditional ops\n (let [[type ks valf] ?op\n f (if (identical-kw? type :reset) (fn [_] valf) valf)]\n (update-in m ks nil f))))\n m\n ops))\n\n (let [return (fn [m0 v0 m1 v1] [v0 v1])]\n (defn ^:no-doc ^:deprecated swap-in!*\n \"Prefer `swap-in!` with `swapped` return value.\"\n ([atom_ f] (-swap-k0! return atom_ f))\n ([atom_ ks f] (-swap-kn! return atom_ ks nil f))\n ([atom_ ks not-found f] (-swap-kn! return atom_ ks not-found f)))\n\n (defn ^:no-doc ^:deprecated swap-val!*\n \"Prefer `swap-val!` with `swapped` return value.\"\n ([atom_ k f] (-swap-k1! return atom_ k nil f))\n ([atom_ k not-found f] (-swap-k1! return atom_ k not-found f))))\n\n (def ^:no-doc ^:deprecated dswap! swap-in!*)\n (def ^:no-doc ^:deprecated swap!* swap-in!*)\n\n #?(:clj (defalias ^:no-doc ^:deprecated taoensso.truss/get-dynamic-assertion-data))\n #?(:clj (defalias ^:no-doc ^:deprecated taoensso.truss/with-dynamic-assertion-data))\n\n (defalias ^:no-doc compile-str-filter name-filter\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"\n :doc \"Renamed to `name-filter`.\"})\n\n (defn ^:no-doc ^:deprecated kw-identical?\n \"Prefer `identical-kw?` macro.\"\n #?(:cljs {:tag 'boolean})\n [x y] (identical-kw? x y))\n\n #?(:clj\n (defmacro ^:no-doc -if-cas!\n \"Prefer `-cas!?`.\"\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"}\n [atom_ old-val new-val then & [else]]\n `(if (-cas!? ~atom_ ~old-val ~new-val) ~then ~else)))\n\n (def* ^:const ^:no-doc system-newline\n \"Prefer `newline`.\"\n {:deprecated \"Encore v3.68.0 (2023-09-25)\"}\n newline)\n\n #?(:clj (defalias ^{:no-doc true :deprecated \"v3.68.0 (2023-09-25)\"} -unexpected-arg truss/unexpected-arg!))\n\n (def* ^:no-doc -matching-error\n \"Prefer `matching-error`.\"\n {:deprecated \"Encore v3.70.0 (2023-10-17)\"}\n truss/matching-error)\n\n (defn ^:no-doc rate-limiter*\n \"Prefer `rate-limiter`.\"\n {:deprecated \"Encore v3.120.0 (2024-09-22)\"}\n ([ spec] (rate-limiter {:with-state? true} spec))\n ([opts spec] (rate-limiter (assoc opts :with-state? true) spec)))\n\n (def* ^:no-doc limiter* \"Prefer `rate-limiter*`.\" {:deprecated \"Encore v3.73.0 (2023-10-30)\"} rate-limiter*)\n (def* ^:no-doc limiter \"Prefer `rate-limiter`.\" {:deprecated \"Encore v3.73.0 (2023-10-30)\"} rate-limiter)\n (def* ^:no-doc dis-assoc-some \"Prefer `reassoc-some`.\" {:deprecated \"Encore v3.87.0 (2024-02-29)\"} reassoc-some)\n (def* ^:no-doc println-atomic \"Prefer `println`.\" {:deprecated \"Encore v3.98.0 (2024-04-08)\"} println)\n (def* ^:no-doc -merge-with \"Prefer `merge-with*`.\" {:deprecated \"Encore v3.113.0 (2024-07-03)\"} merge-with*)\n (def* ^:no-doc fast-merge \"Prefer `merge`.\" {:deprecated \"Encore v3.113.0 (2024-07-03)\"} merge)\n (def* ^:no-doc secure-rand-bytes \"Prefer `rand-bytes`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} (partial rand-bytes true))\n (def* ^:no-doc round* \"Prefer `round`.\" {:deprecated \"Encore v3.126.0 (2024-10-23)\"} round)\n\n #?(:clj (def* ^:no-doc get-host-ip \"Prefer `host-ip`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} host-ip))\n #?(:clj (def* ^:no-doc get-hostname \"Prefer `hostname`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} hostname))\n #?(:cljs (def* ^:no-doc ajax-lite \"Prefer `ajax-call`.\" {:deprecated \"Encore v3.74.0 (2023-11-06)\"} ajax-call))\n #?(:clj\n (do\n (defmacro ^:no-doc ^:deprecated do-nil [& body] `(do ~@body nil))\n (defmacro ^:no-doc ^:deprecated do-false [& body] `(do ~@body false))\n (defmacro ^:no-doc ^:deprecated do-true [& body] `(do ~@body true))))\n\n #?(:clj\n (defmacro ^:no-doc deftype-print-methods \"Prefer `def-print`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [& types]\n `(do\n ~@(map\n (fn [type]\n `(defmethod print-method ~type [~'x ~(with-meta 'w {:tag 'java.io.Writer})]\n (.write ~'w (str ~(str \"#\" *ns* \".\") ~'x)))) types))))\n\n (defn ^:no-doc error-data\n \"Prefer `ex-map`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [x]\n (when-let [data-map\n (and x\n (or\n (core/ex-data x) ; ExceptionInfo\n #?(:clj (when (instance? Throwable x) {})\n :cljs {})))]\n\n (let [base-map\n #?(:clj\n (let [^Throwable t x] ; (catch Throwable t <...>)\n {:err-type (type t)\n :err-msg (.getLocalizedMessage t)\n :err-cause (.getCause t)})\n\n :cljs\n (let [err x] ; (catch :default t <...)\n {:err-type (type err)\n :err-msg (.-message err)\n :err-cause (.-cause err)}))]\n\n #_(assoc base-map :err-data data-map)\n (conj base-map data-map))))\n\n #?(:clj\n (defmacro ^:no-doc caught-error-data\n \"Prefer `throws?`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [& body] `(truss/try* (do ~@body nil) (catch :all e# (error-data e#)))))\n\n #?(:clj\n (defn ^:no-doc ^:deprecated ident-hex-str \"Prefer `hex-ident-str`.\"\n ^String [obj] (str \"0x\" (hex-ident-str obj))))\n\n (defn ^:no-doc when?\n \"Prefer `is`.\" {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [pred x] (when (truss/catching (pred x)) x))\n\n #?(:default (defn ^:no-doc call-form? \"Prefer `list-form`.\" {:deprecated \"Encore v3.105.0 (2024-04-29)\"} [x] (list-form? x)))\n #?(:clj\n (defn ^:no-doc call-in-form?\n [x]\n {:deprecated \"Encore v3.105.0 (2024-04-29)\"}\n (when x\n (cond\n (list-form? x) true\n (coll? x) (if (rsome call-in-form? x) true false)\n :else false)))))\n\n(deprecated \"2024-01 New env config API\"\n #?(:clj\n (do\n (defn- get-config-opts [opts]\n (let [edn? (= (get opts :as) :edn)\n spec (get opts :prop)\n spec (if edn? (keyword (str (as-qname spec) \"<.edn>\")) spec)]\n (dissoc (assoc opts :return :legacy :spec spec) :prop)))\n\n (defmacro ^:no-doc get-config\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n [opts] `(get-env ~(get-config-opts opts)))\n\n (defmacro ^:no-doc get-sys-val*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([spec ] ^:deprecation-nowarn `(get-sys-val* ~spec ~spec ~spec))\n ([spec env ] ^:deprecation-nowarn `(get-sys-val* ~spec ~env ~spec))\n ([spec env res] `(get-env {:as :str :spec ~spec :env ~env :res ~res})))\n\n (defmacro ^:no-doc get-sys-bool*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([default spec env res] `(get-env {:as :bool :default ~default :spec ~spec :env ~env :res ~res}))\n ([default spec env ] `(get-env {:as :bool :default ~default :spec ~spec :env ~env }))\n ([default spec ] `(get-env {:as :bool :default ~default :spec ~spec })))\n\n (defmacro ^:no-doc read-sys-val*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([spec env res] `(get-env {:as :edn :spec ~spec :env ~env :res ~res}))\n ([spec env ] `(get-env {:as :edn :spec ~spec :env ~env }))\n ([spec ] `(get-env {:as :edn :spec ~spec })))\n\n (defn ^:no-doc get-sys-val\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([spec env] (get-env* {:as :str :spec spec :env env}))\n ([spec ] (get-env* {:as :str :spec spec})))\n\n (defn ^:no-doc read-sys-val\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([spec env] (get-env* {:as :edn :spec spec :env env}))\n ([spec ] (get-env* {:as :edn :spec spec})))\n\n (defn ^:no-doc get-sys-bool\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([default spec env] (get-env* {:as :bool :default default :spec spec :env env}))\n ([default spec ] (get-env* {:as :bool :default default :spec spec})))\n\n (defn ^:no-doc load-edn-config\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n [opts]\n (let [{:keys [error-data validator default]} opts\n have-default? (contains? opts :default)]\n (try\n (when (and validator have-default?) (truss/have? validator default))\n (when-let [{:keys [config] :as m} (get-env* (get-config-opts opts))]\n (let [config\n (if (and (map? config) (map? default))\n (nested-merge default config)\n (do config))]\n (when validator (truss/have? validator config))\n (assoc m :config config)))\n\n (catch Throwable t\n (truss/ex-info! \"[encore/load-edn-config] Error loading edn config\"\n (assoc error-data :opts opts) t))))))))\n\n(deprecated \"2024-10 New sub API\"\n (defn ^:no-doc get-subvec \"Prefer `subvec`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([v start ] (or (subvec v start) []))\n ([v start end] (or (subvec v start end) [])))\n\n (defn ^:no-doc get-subvector \"Prefer `subvec`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([v start ] (or (subvec v :by-len start :max) []))\n ([v start len] (or (subvec v :by-len start len) [])))\n\n (defn ^:no-doc get-substr-by-idx \"Prefer `substr`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([s start ] ^:deprecation-nowarn (get-substr-by-idx s start nil))\n ([s start end]\n (let [len (count s)\n start (long (or start 0))\n end (long (or end len))\n start (if (< start 0) (+ start len) start)\n end (if (< end 0) (+ end len) end)]\n (substr s :by-idx start end))))\n\n (defn ^:no-doc get-substr-by-len \"Prefer `substr`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([s start ] (substr s :by-len (or start 0) :max))\n ([s start len] (substr s :by-len (or start 0) (or len :max))))\n\n (defn ^:no-doc get-substr \"Prefer `substr`.\"\n {:deprecated \"Encore v3.26.0 (2022-10-14)\"}\n ([s start ] (or (substr s start) \"\"))\n ([s start end] (or (substr s start end) \"\")))\n\n (defn ^:no-doc get-substring \"Prefer `substr`.\"\n {:deprecated \"Encore v3.26.0 (2022-10-14)\"}\n ([s start ] (substr s :by-len start :max))\n ([s start len] (substr s :by-len start len)))\n\n (def* ^:no-doc ^:deprecated ?subvecTup2","y","taoensso.encore/Tup3","taoensso.encore/->Tup3","z","G__33870","taoensso.encore/reduce-multi","rf1","init1","rf2","init2","tuple","rx?","ry?","cljs.core/unreduced","rf3","init3","rz?","taoensso.encore/reduce-interleave-all","colls","cljs.core/empty?","vec__33871","seq__33872","first__33873","in1","next-in","ncs","res","next-colls","p1__33874#","map-like?","cljs.core/record?","G__33878","taoensso.encore/postwalk","taoensso.encore.postwalk","preserve-seqs?","p1__33875#","p2__33876#","ps","cljs.core/identity","pw","G__33879","cljs.core/seq?","G__33880","G__33881","cljs.core/coll?","G__33882","cljs.core/empty","taoensso.encore/subfn","context","by-idx-fn","start-idx","max-idx","G__33884","G__33885","G__33886","end-idx","max-end","G__33887","taoensso$encore$subfn_$_subfn_STAR_","len","taoensso.truss/unexpected-arg!*","taoensso.encore/subvec","cljs.core/subvec","taoensso.encore/substr","n1","n2","taoensso.encore/map-entry","taoensso.encore/queue?","cljs.core/PersistentQueue","G__33889","taoensso.encore/queue","cljs.core.into","taoensso.encore.queue","args__5755__auto__","len__5749__auto__","i__5750__auto__","argseq__5756__auto__","cljs.core/IndexedSeq","taoensso.encore/queue*","seq33890","self__5735__auto__","items","taoensso.encore/ensure-vec","cljs.core/vec","taoensso.encore/ensure-set","cljs.core/set?","cljs.core/set","taoensso.encore/oset","taoensso.encore.goog$module$goog$object.set","sentinel","taoensso.encore/oset-in","ks","o-next","ks-next","k1","o-next*","new-obj","G__33902","taoensso.encore/oget","G__33906","taoensso.encore/oget-in","taoensso.encore.oget_in","G__33908","taoensso.encore/get1","k2","e","cljs.core/find","cljs.core/val","k3","G__33918","taoensso.encore/conj-some","args-arr__5774__auto__","argseq__5775__auto__","seq33915","G__33916","G__33917","self__5734__auto__","more","taoensso.encore.conj_some","G__33923","taoensso.encore/conj-when","seq33920","G__33921","G__33922","taoensso.encore.conj_when","G__33929","taoensso.encore/assoc-some","seq33925","G__33926","G__33927","G__33928","m-kvs","taoensso.encore.assoc_some","G__33935","taoensso.encore/assoc-when","seq33931","G__33932","G__33933","G__33934","taoensso.encore.assoc_when","G__33941","taoensso.encore/assoc-nx","seq33937","G__33938","G__33939","G__33940","cljs.core/contains?","taoensso.encore.assoc_nx","G__33947","taoensso.encore/reassoc-some","seq33943","G__33944","G__33945","G__33946","cljs.core.dissoc","taoensso.encore.reassoc_some","G__33953","taoensso.encore/reassoc-when","seq33949","G__33950","G__33951","G__33952","taoensso.encore.reassoc_when","taoensso.encore/vnext","cljs.core.subvec","taoensso.encore/vrest","taoensso.encore/vsplit-last","cljs.core/pop","cljs.core/peek","taoensso.encore/vsplit-first","vec__33954","v1","taoensso.encore/not-empty-coll","cljs.core/not-empty","taoensso.encore/fsplit-last","vec__33957","vn","vl","butlast","vec__33963","seq__33964","first__33965","x1","xn","taoensso.encore/takev","cljs.core.take","taoensso.encore/distinct-elements?","taoensso.encore/seq-kvs","cljs.core.partial","cljs.core/reduce","cljs.core/concat","taoensso.encore/mapply","seq33966","G__33967","cljs.core.apply","lx","cljs.core.concat","G__33972","taoensso.encore/into-all","seq33969","G__33970","G__33971","to","from","cljs.core/persistent!","cljs.core/conj!","cljs.core/transient","cljs.core/cons","taoensso.encore/min-transient-card","taoensso.encore/repeatedly-into","cljs.core.conj_BANG_","taoensso.encore/update!","cljs.core.assoc_BANG_","G__33973","G__33975","taoensso.encore/into!","to!","G__33977","taoensso.encore/xdistinct","cljs.core.distinct","keyfn","seen_","cljs.core/volatile!","taoensso.encore/invert-map","taoensso.encore/invert-map!","im","taoensso.encore/map-keys","key-fn","taoensso.encore/map-vals","val-fn","taoensso.encore/filter-keys","key-pred","cljs.core.dissoc_BANG_","taoensso.encore/filter-vals","val-pred","taoensso.encore/remove-keys","cljs.core/complement","taoensso.encore/remove-vals","taoensso.encore/rename-keys","replacements","old-k","new-k","taoensso.encore/keys-by","taoensso.encore/ks-nnil?","p1__33978#","taoensso.encore.revery_QMARK_","taoensso.encore/ks=","p1__33979#","taoensso.encore/ks>=","p1__33980#","taoensso.encore/ks<=","counted-ks","cljs.core/counted?","ks-set","G__33982","taoensso.encore/update-in","taoensso.encore.update_in","old","cljs.core.get_in","new","G__33983","lk","cljs.core/assoc-in","G__33985","taoensso.encore/contains-in?","taoensso.encore.contains_in_QMARK_","G__33991","taoensso.encore/dissoc-in","seq33987","G__33988","G__33989","G__33990","dissoc-k","cljs.core/dissoc","taoensso.encore.dissoc_in","G__33993","taoensso.encore/node-paths","taoensso.encore.node_paths","cljs.core/associative?","node-pred","basis","paths-from-basis","G__33998","taoensso.encore/interleave-all","seq33995","G__33996","G__33997","c1","c2","s1","s2","taoensso.encore.interleave_all","cljs.core/rest","ss","cljs.core.filter","cljs.core.map","G__34004","taoensso.encore/vinterleave-all","seq34000","G__34001","G__34002","G__34003","c3","taoensso.encore.vinterleave_all","taoensso.encore/p!","nx","min-transient-card","dissoc?","G__34007","dissoc*","G__34009","taoensso.encore/merge-with*","nest?","maps","m1","m2","taoensso.encore.merge_with_STAR_","m1*","assoc*","cljs.core/assoc!","cljs.core/assoc","v2","G__34010","G__34011","G__34012","v3","m2*","G__34013","G__34014","G__34015","G__34021","taoensso.encore/merge","seq34017","G__34018","G__34019","G__34020","m3","G__34027","taoensso.encore/nested-merge","seq34023","G__34024","G__34025","G__34026","G__34034","taoensso.encore/merge-with","seq34029","G__34030","G__34031","G__34032","G__34033","G__34041","taoensso.encore/nested-merge-with","seq34036","G__34037","G__34038","G__34039","G__34040","mf","G__34047","taoensso.encore/merge-nx","seq34043","G__34044","G__34045","G__34046","taoensso.encore/submap?","taoensso.truss/submap?","taoensso.encore/submaps?","subs","sub","taoensso.encore/select-nested-keys","src-map","key-spec","spec-in","nested-spec-in","src-val","taoensso.encore/explode-keyword","clojure.string.split","G__34049","taoensso.encore/merge-keywords","taoensso.encore.merge_keywords","omit-slash?","parts","cljs.core/conj","clojure.string.join","ppop","taoensso.encore/get-ctor","name","js/globalThis","encoder","taoensso.encore/str->utf8-ba","decoder","taoensso.encore/utf8-ba->str","u8s","G__34053","taoensso.encore/approx==","Math/abs","signf","taoensso.encore/clamp","nmin","nmax","taoensso.encore/clamp-int","taoensso.encore/clamp-float","taoensso.encore/pnum-complement","pnum","taoensso.encore/as-pnum-complement","taoensso.encore/pow","exp","Math/pow","taoensso.encore/abs","G__34066","taoensso.encore/round","taoensso.encore.round","a1","a2","a3","modifier","n*","rounded","G__34067","Math/round","Math/floor","Math/ceil","taoensso.encore/perc","divisor","taoensso.encore/round0","taoensso.encore/round1","taoensso.encore/round2","taoensso.encore/round3","taoensso.encore/round4","taoensso.encore/roundn","precision","G__34069","taoensso.encore/exp-backoff","p__34070","map__34071","cljs.core/--destructure-map","n-attempt","taoensso.encore.exp_backoff","min","max","factor","b","t","cljs.core.rand","taoensso.encore/chance","prob","Math/random","taoensso.encore/merge-meta","taoensso.encore.merge","taoensso.encore/without-meta","G__34077","taoensso.encore/some=","seq34074","G__34075","G__34076","p1__34072#","G__34083","taoensso.encore/nnil","seq34079","G__34080","G__34081","G__34082","taoensso.encore.rfirst","cljs.core/some?","taoensso.encore/parse-version","vec__34084","s-version","?s-qualifier","cljs.core/re-seq","cljs.core.mapv","taoensso.encore/have-core-async?","taoensso.encore/inst?","js/Date","cljs.core/chunk-first","s__34451","taoensso.encore/now-inst","taoensso.encore/now-dt","taoensso.encore/now-udt","js/Date.now","taoensso.encore/now-nano","perf","taoensso.encore.oget","pf","taoensso.encore/inst->udt","inst","taoensso.encore/udt->inst","msecs-since-epoch","taoensso.encore/udt?","taoensso.encore/as-?inst","taoensso.encore/as-?udt","js/Date.parse","taoensso.encore/as-inst","taoensso.encore/as-udt","G__34096","taoensso.encore/format-inst-fn","p__34097","map__34098","taoensso.encore.format_inst_fn","formatter","instant","default-fn","taoensso.encore/format-inst","taoensso.encore/secs->ms","secs","taoensso.encore/ms->secs","ms","cljs.core/quot","G__34117","taoensso.encore/ms","p__34118","map__34119","seq34112","G__34113","G__34114","G__34115","G__34116","years","months","weeks","days","hours","mins","msecs","taoensso.encore.ms","G__34126","taoensso.encore/secs","seq34121","G__34122","G__34123","G__34124","G__34125","opts","taoensso.encore/a-utf8-str","taoensso.encore/str-builder?","js/goog.string.StringBuffer","G__34128","taoensso.encore/str-builder","taoensso.encore/sb-length","sb","G__34133","taoensso.encore/sb-append","seq34130","G__34131","G__34132","str-builder","taoensso.encore.sb_append","G__34135","taoensso.encore/sb-appender","taoensso.encore.sb_appender","taoensso.encore.str_builder","separator","sep!","sep","started?_","cljs.core/vreset!","cljs.core/nil?","G__34137","taoensso.encore/str-rf","G__34139","taoensso.encore/sb-rf","G__34141","taoensso.encore/str-join","taoensso.encore.str_join","cljs.core.not_EQ_","cljs.core.comp","cljs.core.interpose","taoensso.encore/str-contains?","substr","taoensso.encore/str-starts-with?","taoensso.encore/str-ends-with?","s-len","substr-len","G__34143","taoensso.encore/str-?index","taoensso.encore.str__QMARK_index","last?","taoensso.encore/case-insensitive-str=","l1","l2","G__34145","taoensso.encore.norm_str","norm-form","G__34146","taoensso.encore/str-replace","match","replacement","goog.string/regExpEscape","flags","G__34147","taoensso.encore/nil->str","G__34149","taoensso.encore/format*","fmt","taoensso.encore.format_STAR_","goog.string/format","taoensso.encore/format","seq34150","G__34151","taoensso.encore/str-join-once","acc-ends-with-sep?_","acc-empty?_","in-empty?","in-starts-with-sep?","in-ends-with-sep?","acc-ends-with-sep?","acc-empty?","taoensso.encore/path","seq34152","taoensso.encore/norm-word-breaks","clojure.string/replace","taoensso.encore/count-words","taoensso.encore/into-str","seq34153","cljs.core/sequential?","taoensso.encore/const-str=","vx","taoensso.encore/format-num-fn","n-min-fd","n-max-fd","nf","js/Intl.NumberFormat","fmt0","fmt2","taoensso.encore/format-nsecs","nanosecs","G__34155","taoensso.encore/abbreviate-ns","taoensso.encore.abbreviate_ns","n-full","vec__34156","error34163","taoensso.truss.impl/FalsePredError","e34165","taoensso.truss/failed-assertion!","p1","p2","name-part","ns-parts","n-to-abbr","cljs.core.symbol","as-?qname","always","_in","never","ns?","cljs.core/Namespace","input-str!","wild-str->?re-pattern","cljs.core/re-pattern","compile->match-fn","spec","cache?","fexpr__34167","fexpr__34168","str-spec","re-pattern","fexpr__34169","vec__34170","fixed-strs","re-patterns","p__34173","vec__34174","fx-match","re-match","in-str","p1__34166#","taoensso.encore.rsome","taoensso.encore/fmemoize","G__34177","G__34178","taoensso.encore/name-filter","allow-spec","disallow-spec","allow","as","disallow","ds","taoensso.encore/newline","taoensso.encore/newlines","taoensso.encore/x->str","allow-readably?","allow-dup?","add-newline?","cljs.core.prn_str","cljs.core.println_str","cljs.core.print_str","taoensso.encore/xs->str","cljs.core/prn-str","cljs.core/pr-str","cljs.core/println-str","cljs.core/print-str","taoensso.encore/pr","cljs.core/pr","taoensso.encore/prn","cljs.core/prn","taoensso.encore/print","cljs.core/print","taoensso.encore/println","cljs.core/println","taoensso.encore/pr-edn","cljs.core/*print-level*","cljs.core/*print-length*","cljs.core/*print-readably*","*print-level*-orig-val__34179","*print-length*-orig-val__34180","*print-readably*-orig-val__34181","*print-level*-temp-val__34182","*print-length*-temp-val__34183","*print-readably*-temp-val__34184","taoensso.encore/pr-edn*","G__34186","taoensso.encore/read-edn","taoensso.encore.read_edn","readers","cljs.reader/*tag-table*","default","cljs.reader/*default-data-reader-fn*","cljs.tools.reader.edn.read_string","G__34188","taoensso.encore/str-impl","class-name","data","taoensso.encore/uuid","quad-hex","unpadded-hex","cljs.core/rand-int","G__34189","ver-trip-hex","res-trip-hex","G__34191","taoensso.encore/uuid-str","taoensso.encore.uuid_str","taoensso.encore/rand-bytes","prefer-secure?","size","ba","js/Uint8Array","crypto","n__5616__auto__","i","js/Math.random","p__34192","map__34193","taoensso.encore/rand-id-fn","chars","rand-bytes-fn","G__34194","nchars","max-char-idx","cljs.core.object_array","mask","Math/log","exp-bytes","stepn","step1","cljs.core/mod","rand-bytes","possible-ch-idx","G__34202","taoensso.encore/nanoid","taoensso.encore.nanoid","unused__11804__auto__","self__","G__34204","args34203","cljs.core/aclone","taoensso.encore/LightAtom","taoensso.encore/->LightAtom","state","swap-fn","old-map","new-val","G__34205","new-map","taoensso.encore/latom","init-state","taoensso.encore/-reset-k0!","return","atom_","m0","cljs.core/compare-and-set!","taoensso.encore/-reset-k1!","G__34206","G__34207","G__34208","G__34209","taoensso.encore/-reset-kn!","ks-seq","G__34210","G__34211","G__34212","G__34213","v0","G__34215","taoensso.encore/reset-in!","val","G__34217","taoensso.encore/reset-val!","G__34221","taoensso.encore/reset-in!?","G__34223","taoensso.encore/reset-val!?","taoensso.encore.reset_val_BANG_","taoensso.encore/reset!?","taoensso.encore/Swapped","taoensso.encore/->Swapped","newv","returnv","taoensso.encore/swapped","return-val","taoensso.encore/swapped-vec","taoensso.encore/swapped?","taoensso.encore/return-swapped","sw","rv","G__34224","taoensso.encore/-swap-k0!","sw?","taoensso.encore/-swap-k1!","G__34225","G__34226","G__34227","G__34228","taoensso.encore/-swap-kn!","G__34229","G__34230","G__34231","G__34232","G__34234","taoensso.encore/swap-in!","G__34236","taoensso.encore/swap-val!","G__34238","taoensso.encore/pull-val!","taoensso.encore.pull_val_BANG_","taoensso.encore.swap_val_BANG_","taoensso.encore/memoize-last","call","in_","out_","in*","f0","out","cljs.core/memoize","taoensso.encore/gc-now?","rate","js/Math","taoensso.encore/SimpleCacheEntry","taoensso.encore/->SimpleCacheEntry","delay","udt","taoensso.encore/TickedCacheEntry","taoensso.encore/->TickedCacheEntry","tick-lru","tick-lfu","G__34246","taoensso.encore/cache","p__34250","map__34251","cache_","get-sentinel","G__34249","x2","ttl-ms","gc-every","error34257","arg34252","taoensso.truss.impl/ks<=","e34259","ps34261","pf34262","arg34260","df34263","error34265","e34267","error34268","e34270","error34271","e34273","gc-now?","ticker","latch_","ttl?","G__34274","argn","G__34275","cljs.core/reset!","G__34276","p1__34243#","tick","cljs.core/rem","latch","udt-floor","G__34277","snapshot","n-to-gc","ks-to-gc","G__34278","G__34279","G__34280","taoensso.encore/top","cljs.core/keys","G__34281","fresh?","G__34282","G__34283","G__34284","?e","cljs.core/Delay","gc-rate","gce","G__34285","G__34286","G__34287","p1__34244#","G__34288","G__34289","G__34290","G__34291","taoensso.encore.cache","G__34293","taoensso.encore/memoize","taoensso.encore/rate-limiter-once-per","last_","req-id","t1","taoensso.encore/LimitSpec","taoensso.encore/->LimitSpec","taoensso.encore/LimitEntry","taoensso.encore/->LimitEntry","udt0","taoensso.encore/LimitHits","taoensso.encore/->LimitHits","worst-lid","worst-ms","limit-spec","ps34294","pf34295","df34296","error34298","e34300","error34301","e34303","taoensso.encore/coerce-limit-spec","p__34304","vec__34305","lid","p__34308","vec__34309","?lid","G__34314","taoensso.encore/rate-limiter","taoensso.encore.rate_limiter","map__34315","map__34316","with-state?","cljs.core/constantly","once-per-msecs","reqs_","f1","rid","delta","peek?","G__34317","reqs","entries","new-entries","?hits","tdelta","h","l","limiter-fn","cmd","G__34318","G__34319","G__34320","p1__34312#","G__34322","args34321","taoensso.encore/Counter","taoensso.encore/->Counter","add","action","G__34323","G__34325","taoensso.encore.counter","taoensso.encore/rc-deref","ts_","n-skip_","gc-fn","n-skip0","ts","n-total","n-window","t0","n-skip1","G__34331","args34330","taoensso.encore/RollingCounter","taoensso.encore/->RollingCounter","this","G__34332","p1__34328#","G__34333","p1__34329#","taoensso.encore/rolling-counter","error34338","e34340","G__34342","taoensso.encore/rolling-vector","p__34343","map__34344","taoensso.encore.rolling_vector","init-val","acc_","G__34345","sv","G__34346","taoensso.encore/rcompare","cljs.core/compare","G__34348","taoensso.encore/sortv","taoensso.encore.sortv","comparator","?keyfn","G__34349","kfn","G__34350","G__34351","a","cljs.core/to-array","taoensso.encore.goog$module$goog$array.stableSort","cljs.core/fn->comparator","nil->sentinel","sentinel->nil","G__34356","taoensso.encore/reduce-top","taoensso.encore.reduce_top","cmp","coll-size","cljs.core.sort_by","G__34358","taoensso.encore/top-into","taoensso.encore.top_into","G__34360","taoensso.encore/hot-sleep","taoensso.encore/-valid-unstub-impl","cljs.core/fn?","taoensso.encore/test-fixtures","fixtures-map","error34381","e34383","taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn","x__5373__auto__","m__5374__auto__","taoensso.encore/-schedule-timeout","m__5372__auto__","cljs.core/missing-protocol","taoensso.encore/ITimeoutImpl","taoensso.encore/DefaultTimeoutImpl","taoensso.encore/->DefaultTimeoutImpl","js/setTimeout","js/taoensso","js/taoensso.encore","js/taoensso.encore.default-timeout-impl_","taoensso.encore/default-timeout-impl_","taoensso$encore$ITimeoutFuture$tf_state$dyn","taoensso.encore/tf-state","taoensso$encore$ITimeoutFuture$tf_poll$dyn","taoensso.encore/tf-poll","taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn","taoensso.encore/tf-done?","taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn","taoensso.encore/tf-pending?","taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn","taoensso.encore/tf-cancelled?","taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn","taoensso.encore/tf-cancel!","taoensso.encore/ITimeoutFuture","taoensso.encore/TimeoutFuture","taoensso.encore/->TimeoutFuture","result__","taoensso.encore/timeout-future?","G__34391","taoensso.encore/call-after-timeout","taoensso.encore.call_after_timeout","impl_","cas-f","result_","impl","cljs.core/force","taoensso.encore/console-log","js/console","js/console.log","cljs.core.into_array","taoensso.encore/log","taoensso.encore/logp","seq34392","taoensso.encore/sayp","seq34393","js/alert","taoensso.encore/logf","seq34394","G__34395","taoensso.encore/sayf","seq34396","G__34397","taoensso.encore/get-win-loc","loc","taoensso.encore/default-xhr-pool_","js/goog.net.XhrIoPool","p__34399","map__34400","taoensso.encore/ajax-call","url","method","body","params","headers","timeout-ms","resp-type","with-credentials?","xhr-pool","xhr-cb-fn","xhr-timeout-ms","callback-fn","error34406","arg34401","e34408","with-xhr","xhr","e34409","map__34411","url+","content","content-type","G__34412","goog.Uri.QueryData/createFromMap","cljs.core/clj->js","js/FormData","js/Blob","form-data","seq__34413","chunk__34414","count__34415","i__34416","vec__34423","temp__5825__auto__","cljs.core/chunked-seq?","c__5548__auto__","cljs.core/chunk-rest","vec__34426","p1__34398#","progress-listener","goog.events/listen","goog.net.EventType/PROGRESS","ev","length-computable?","loaded","total","?ratio","G__34429","goog.events/listenOnce","goog.net.EventType/READY","goog.net.EventType/COMPLETE","resp","vec__34430","success?","status","error","vec__34433","ct","G__34436","edn","e34437","goog.events/unlistenByKey","G__34438","G__34439","cljs.core/boolean","G__34440","cb","e34441","G__34410","G__34442","done?_","cljs.core.atom","G__34443","taoensso.encore/url-encode","js/encodeURIComponent","taoensso.encore/url-decode","p__34446","vec__34447","seq34444","G__34445","encoding","js/decodeURIComponent","taoensso.encore/format-query-string","param","join","strs","iter__5503__auto__","c__5501__auto__","size__5502__auto__","b__34453","cljs.core/chunk-buffer","i__34452","vec__34454","cljs.core/-nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__34450","vec__34457","taoensso.encore/assoc-conj","cur","taoensso.encore/parse-query-params","p__34462","vec__34463","seq34460","G__34461","keywordize?","cljs.core.subs","vec__34466","taoensso.encore.url_decode","cljs.core/keyword","taoensso.encore/merge-url-with-query-string","vec__34469","?qstr","qmap","qstr","taoensso.encore/pr-json","js/JSON","cljs.core.clj__GT_js","G__34473","taoensso.encore/read-json","taoensso.encore.read_json","kw-keys?","cljs.core.js__GT_clj","js/JSON.parse","taoensso.encore/-swap-val!","G__34481","taoensso.encore/js-?win","taoensso.encore/regular-num?","taoensso.encore/get-window-location","taoensso.encore/backport-run!","taoensso.encore/fq-name","taoensso.encore/qname","taoensso.encore/merge-deep-with","taoensso.encore/merge-deep","taoensso.encore/parse-bool","taoensso.encore/parse-int","taoensso.encore/parse-float","taoensso.encore/swapped*","taoensso.encore/memoize-a0_","taoensso.encore/memoize-a1_","taoensso.encore/a0-memoize_","taoensso.encore/a1-memoize_","taoensso.encore/memoize-1","taoensso.encore/memoize1","taoensso.encore/memoize*","taoensso.encore/memoize_","taoensso.encore/nnil?","taoensso.encore/nneg-num?","taoensso.encore/nneg-int?","taoensso.encore/nneg-float?","taoensso.encore/uint?","taoensso.encore/pint?","taoensso.encore/nnil=","taoensso.encore/as-?uint","taoensso.encore/as-?pint","taoensso.encore/as-?ufloat","taoensso.encore/as-?pfloat","taoensso.encore/as-uint","taoensso.encore/as-pint","taoensso.encore/as-ufloat","taoensso.encore/as-pfloat","taoensso.encore/run!*","taoensso.encore/nano-time","taoensso.encore/-swap-cache!","taoensso.encore/-unswapped","taoensso.encore/-vswapped","taoensso.encore/-swap-k!","taoensso.encore/update-in*","taoensso.encore/idx-fn","taoensso.encore/vec*","taoensso.encore/set*","taoensso.encore/have-transducers?","taoensso.encore/pval?","taoensso.encore/as-?pval","taoensso.encore/as-pval","p1__34474#","nolist?","G__34483","taoensso.encore/compile-ns-filter","ns-pattern","taoensso.encore.compile_ns_filter","whitelist","blacklist","taoensso.encore/undefined->nil","taoensso.encore/spaced-str-with-nils","taoensso.encore/spaced-str","G__34485","taoensso.encore/approx=","taoensso.encore.approx_EQ__EQ_","taoensso.encore/join-once","seq34486","G__34487","taoensso.encore/nnil-set","cljs.core.disj","taoensso.encore/keys=","taoensso.encore/keys<=","taoensso.encore/keys>=","taoensso.encore/keys=nnil?","taoensso.encore/logging-level","taoensso.encore/set-exp-backoff-timeout!","p__34490","vec__34491","seq34488","G__34489","nullary-f","nattempt","js/taoensso.encore.*log-level*","taoensso.encore/*log-level*","taoensso.encore/log?","->n","level","taoensso.encore/tracef","seq34494","G__34495","taoensso.encore/debugf","seq34496","G__34497","taoensso.encore/infof","seq34498","G__34499","taoensso.encore/warnf","seq34500","G__34501","taoensso.encore/errorf","seq34502","G__34503","taoensso.encore/fatalf","seq34504","G__34505","taoensso.encore/reportf","seq34506","G__34507","taoensso.encore/greatest","p__34510","vec__34511","seq34508","G__34509","?comparator","p1__34476#","p2__34477#","taoensso.encore/least","p__34516","vec__34517","seq34514","G__34515","p1__34478#","p2__34479#","taoensso.encore/clj1098","taoensso.encore/distinct-by","seen","p__34520","vec__34521","v*","G__34525","taoensso.encore/distinctv","taoensso.encore.distinctv","tr","p__34526","vec__34527","taoensso.encore/map-kvs","kf","vf","taoensso.encore/as-map","p__34532","vec__34533","seq34530","G__34531","taoensso.encore/keywordize-map","taoensso.encore/removev","cljs.core/filterv","taoensso.encore/nvec?","taoensso.encore/memoized","seq34536","G__34537","G__34538","cache","?dv","taoensso.encore/translate-signed-idx","signed-idx","taoensso.encore/sentinel","taoensso.encore/sentinel?","taoensso.encore/nil->sentinel","taoensso.encore/sentinel->nil","taoensso.encore/singleton?","taoensso.encore/->?singleton","vec__34541","taoensso.encore/->vec","taoensso.encore/fzipmap","vs","taoensso.encore/filter-kvs","taoensso.encore/remove-kvs","taoensso.encore/revery","taoensso.encore/revery-kv","taoensso.encore/every","taoensso.encore/replace-in","seq34544","G__34545","ops","?op","vec__34546","type","valf","G__34550","taoensso.encore/swap-in!*","G__34552","taoensso.encore/swap-val!*","taoensso.encore/dswap!","taoensso.encore/swap!*","taoensso.encore/compile-str-filter","taoensso.encore/kw-identical?","taoensso.encore/system-newline","taoensso.encore/-matching-error","taoensso.truss/matching-error","G__34554","taoensso.encore/rate-limiter*","taoensso.encore/limiter*","taoensso.encore/limiter","taoensso.encore/dis-assoc-some","taoensso.encore/println-atomic","taoensso.encore/-merge-with","taoensso.encore/fast-merge","taoensso.encore/secure-rand-bytes","taoensso.encore/round*","taoensso.encore/ajax-lite","taoensso.encore/error-data","data-map","cljs.core/ex-data","base-map","err","taoensso.encore/when?","e34555","taoensso.encore/call-form?","G__34557","taoensso.encore/get-subvec","G__34559","taoensso.encore/get-subvector","G__34561","taoensso.encore/get-substr-by-idx","taoensso.encore.get_substr_by_idx","G__34563","taoensso.encore/get-substr-by-len","G__34565","taoensso.encore/get-substr","G__34567","taoensso.encore/get-substring","taoensso.encore/?subvecfoo - Val \\\"to foo\\\" (e.g. >sender, >host), or fn to put/coerce/transform\n foo - Fn to put/coerce/transform\n\n Type affixes may be used for clarity:\n - - m-users, v-users, n-users, etc. (also nusers when unambiguous)\n - - users-map, users-vec, user-count, etc.\n\n Regarding name heirarchy:\n When there's a significant num of syms with a meaningful hierarchy,\n prefer names with descending hierarchy to emphasize structure and\n related groups/functionality, e.g.:\n `user-add`, `user-remove`, `user-mod` vs\n `add-user`, `remove-user`, `mod-user`, etc.\n\n Commit message tags (in priority order):\n [wip] - Work-in-progress (still under development)\n\n [mod] - Modify behaviour (=> breaking), [mod!], [mod!!], etc. for attention\n [fix] - Fix broken behaviour (=> usu. non-breaking)\n [new] - Add new behaviour (=> non-breaking)\n\n [doc] - Documentation changes besides those better labelled as [mod], [fix], or [new]\n [nop] - Other non-breaking changes (to implementation details, non-code changes, etc.)\n\n [x] [y] - Single commit with multiple tags (in priority order), try avoid\n\n Example commit messages:\n v1.0.0 (2022-01-27) ; Tagged release\n [new] [#122] Add new feature x (@contributor)\n\n Version numbers:\n Ver tables: X.Y.Z (without backticks)\n Min ver: vX.Y.Z+\n Elsewhere: vX.Y.Z\"\n\n {:author \"Peter Taoussanis (@ptaoussanis)\"}\n\n (:refer-clojure :exclude\n [if-let if-some if-not when when-not when-some when-let cond defonce\n binding run! some? ident? float? boolean? uri? indexed? bytes?\n int? pos-int? neg-int? nat-int? inst?\n simple-ident? qualified-ident?\n simple-symbol? qualified-symbol?\n simple-keyword? qualified-keyword?\n format update-in merge merge-with subvec\n memoize abs ex-message ex-data ex-cause ex-info\n newline satisfies? uuid\n pr prn print println])\n\n #?(:clj\n (:require\n [clojure.core :as core]\n [clojure.string :as str]\n [clojure.set :as set]\n [clojure.java.io :as jio]\n [clojure.tools.reader.edn :as edn]\n [taoensso.truss :as truss :refer [ex-info]])\n\n :cljs\n (:require\n [cljs.core :as core]\n [clojure.string :as str]\n [clojure.set :as set]\n [cljs.reader]\n [cljs.tools.reader.edn :as edn]\n [goog.object :as gobj]\n [goog.array :as garray]\n [goog.string :as gstr]\n [goog.string.format]\n [goog.string.StringBuffer]\n [goog.events :as gevents]\n [goog.net.XhrIo :as gxhr]\n [goog.net.XhrIoPool :as gxhr-pool]\n [goog.Uri.QueryData :as gquery-data]\n [goog.net.EventType]\n [goog.net.ErrorCode]\n [taoensso.truss :as truss :refer [ex-info]]))\n\n #?(:clj\n (:import\n [java.util Date Locale TimeZone]\n [java.text SimpleDateFormat]\n [java.util.concurrent CountDownLatch]\n [java.util.concurrent.atomic AtomicReference]\n [java.util.function UnaryOperator])\n\n :cljs\n (:require-macros\n [taoensso.encore :as enc-macros :refer\n [compile-if qb\n if-let if-some if-not when when-not when-some when-let\n -cond cond cond! cond-let and? or? def* defonce\n -cas!? now-udt* now-nano* min* max*\n name-with-attrs deprecated new-object defalias\n identical-kw? satisfies? satisfies! instance! use-transient?\n with-default-print-opts typed-val]])))\n\n(def encore-version \"See `assert-min-encore-version`\" [3 159 0])\n\n(declare println)\n\n(comment\n (remove-ns 'taoensso.encore)\n (:api (interns-overview))\n (test/run-tests)\n\n \"\u2234 \u2235 \u2115 \u2124 \u211d \u221e \u2260 \u2208 \u2209 \u21d2\u21d4 \u2192 \u00d7 \u2283\u2282 \u2287\u2286 \u2261 \u00ac \u2200 \u2203 \u221d\"\n (set! *unchecked-math* :warn-on-boxed)\n (set! *unchecked-math* false))\n\n;;;; Core macros\n\n#?(:clj (defmacro ^:no-doc and? \"Private, don't use.\" ([] true) ([x] x) ([x & next] `(if ~x (and? ~@next) false))))\n#?(:clj (defmacro ^:no-doc or? \"Private, don't use.\" ([] false) ([x] x) ([x & next] `(if ~x true (or? ~@next)))))\n\n#?(:clj\n (defmacro if-let\n \"Supersets `core/if-let` functionality. Like `core/if-let` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (if-let [x (rand-nth [:x1 :x2 false nil ]) ; Bind truthy x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind truthy z, or -> `else`\n ]\n [:then-clause x y z]\n [:else-clause])\"\n {:style/indent 1}\n ([bindings then ] `(if-let ~bindings ~then nil))\n ([bindings then else]\n (let [s (seq bindings)]\n (if s ; (if-let [] true false) => true\n (let [[b1 b2 & bnext] s]\n (if (= b1 :let)\n `(let ~b2 (if-let ~(vec bnext) ~then ~else))\n `(let [b2# ~b2]\n (if b2#\n (let [~b1 b2#]\n (if-let ~(vec bnext) ~then ~else))\n ~else))))\n then)))))\n\n#?(:clj\n (defmacro if-some\n \"Supersets `core/if-some` functionality. Like `core/if-some` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (if-some [x (rand-nth [:x1 :x2 false nil ]) ; Bind non-nil x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind non-nil z, or -> `else`\n ]\n [:then-clause x y z]\n [:else-clause])\"\n {:style/indent 1}\n ([bindings then] `(if-some ~bindings ~then nil))\n ([bindings then else]\n (let [s (seq bindings)]\n (if s ; (if-some [] true false) => true\n (let [[b1 b2 & bnext] s]\n (if (= b1 :let)\n `(let ~b2 (if-some ~(vec bnext) ~then ~else))\n `(let [b2# ~b2]\n (if (nil? b2#)\n ~else\n (let [~b1 b2#]\n (if-some ~(vec bnext) ~then ~else))))))\n then)))))\n\n#?(:clj\n (defmacro if-not\n \"Supersets `core/if-not` functionality.\n Same as `encore/if-let` with `then` `and `else` forms swapped.\"\n ;; Also avoids unnecessary `(not test)`\n {:style/indent 1}\n ([test-or-bindings then]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings nil ~then)\n `(if ~test-or-bindings nil ~then)))\n\n ([test-or-bindings then else]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings ~else ~then)\n `(if ~test-or-bindings ~else ~then)))))\n\n#?(:clj\n (defmacro when-let\n \"Supersets `core/when-let` functionality. Like `core/when-let` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (when-let [x (rand-nth [:x1 :x2 false nil ]) ; Bind truthy x, or -> nil\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind truthy z, or -> nil\n ]\n [:body x y z])\"\n ;; Now a feature subset of all-case `when`\n {:style/indent 1}\n [bindings & body] `(if-let ~bindings (do ~@body))))\n\n#?(:clj\n (defmacro when\n \"Supersets `core/when` and `core/when-let` functionality. When `test-or-bindings` is\n a vector, same as `encore/when-let`. Otherwise same as `core/when`.\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings (do ~@body) nil)\n `(if ~test-or-bindings (do ~@body) nil))))\n\n#?(:clj\n (defmacro when-not\n \"Supersets `core/when-not` functionality.\n Same as `encore/if-let` with `body` as `else` form.\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-let ~test-or-bindings nil (do ~@body))\n `(if ~test-or-bindings nil (do ~@body)))))\n\n#?(:clj\n (defmacro when-some\n \"Supersets `core/when-some` functionality. Like `core/when-some` but supports multiple\n bindings, and unconditional bindings with `:let`:\n\n (when-some [x (rand-nth [:x1 :x2 false nil ]) ; Bind non-nil x, or -> `else`\n :let [y (rand-nth [:y1 :y2 false nil x ])] ; Bind any y\n z (rand-nth [:z1 :z2 false nil x y]) ; Bind non-nil z, or -> `else`\n ]\n [:body x y z])\"\n {:style/indent 1}\n [test-or-bindings & body]\n (if (vector? test-or-bindings)\n `(if-some ~test-or-bindings (do ~@body) nil)\n `(if (nil? ~test-or-bindings) nil (do ~@body)))))\n\n(comment\n (if-let [a :a b (= a :a)] [a b] \"else\")\n (if-let [a :a b (= a :b)] [a b] \"else\")\n (if-some [a :a b (= a :b)] [a b] \"else\")\n (when-let [a :a b nil] \"true\")\n (when-let [:let [a :a b :b] c (str a b)] c))\n\n(defn ^:no-doc list-form?\n \"Private, don't use.\n Returns true if given a list or Cons (=> possible call form).\"\n #?(:cljs {:tag 'boolean})\n [x] (or (list? x) (instance? #?(:clj clojure.lang.Cons :cljs cljs.core/Cons) x)))\n\n(declare str-starts-with?)\n\n#?(:clj (defn- vec->do [x] (if (vector? x) `(do ~@x) x)))\n#?(:clj\n (defmacro ^:no-doc -cond [throw? & clauses]\n (if-let [[c1 c2 & more] (seq clauses)]\n (if-not (next clauses)\n c1 ; Implicit else\n (case c1\n (true :else :default :always :then) c2 ; Avoid unnecessary (if ...)\n (false nil) `(-cond ~throw? ~@more) ; Avoid unnecessary (if ...)\n :do `(do ~(vec->do c2) (-cond ~throw? ~@more))\n :let `(let ~c2 (-cond ~throw? ~@more))\n :binding `(core/binding ~c2 (-cond ~throw? ~@more))\n :with-redefs `(with-redefs ~c2 (-cond ~throw? ~@more))\n (:when :when-let) `(when ~c2 (-cond ~throw? ~@more))\n :when-not `(when-not ~c2 (-cond ~throw? ~@more))\n :when-some `(when-some ~c2 (-cond ~throw? ~@more))\n :return-when `(if-let [x# ~c2] x# (-cond ~throw? ~@more))\n :return-some `(if-some [x# ~c2] x# (-cond ~throw? ~@more))\n\n ;;; Support arbitrary wrapping\n (:wrap->> :wrap) `(->> (-cond ~throw? ~@more) ~c2)\n (:wrap->) `(-> (-cond ~throw? ~@more) ~c2)\n\n ;;; 3-clause cases\n (:if-let :if-some :if-not :do-when :do-when-let :do-when-not :do-when-some)\n (if (empty? more) ; Missing 3rd clause\n (truss/ex-info!\n (str \"[encore/cond] Missing 3rd clause after special keyword: \" `(~'cond ~c1 ~c2 ~')))\n\n (let [[c3 & more] more]\n (case c1\n :if-let `(if-let ~c2 ~c3 (-cond ~throw? ~@more))\n :if-some `(if-some ~c2 ~c3 (-cond ~throw? ~@more))\n :if-not `(if-not ~c2 ~c3 (-cond ~throw? ~@more))\n\n ;; Experimental\n (:do-when :do-when-let) `(do (when ~c2 ~(vec->do c3)) (-cond ~throw? ~@more))\n :do-when-not `(do (when-not ~c2 ~(vec->do c3)) (-cond ~throw? ~@more))\n :do-when-some `(do (when-some ~c2 ~(vec->do c3)) (-cond ~throw? ~@more)))))\n\n (if (keyword? c1)\n (if (str-starts-with? (name c1) \"_\")\n `(-cond ~throw? ~@more) ; Skip\n (truss/ex-info! (str \"[encore/cond] Unrecognized special keyword: \" `(~'cond ~c1 ~c2))))\n\n (if (vector? c1) ; Deprecated\n `(if-let ~c1 ~c2 (-cond ~throw? ~@more))\n\n ;; Experimental, assumes `not` = `core/not`:\n (if (and (list-form? c1) (= (first c1) 'not))\n `(if ~(second c1) (-cond ~throw? ~@more) ~c2)\n `(if ~c1 ~c2 (-cond ~throw? ~@more)))))))\n\n (when throw?\n `(truss/ex-info! \"[encore/cond!] No matching clause\")))))\n\n#?(:clj\n (defmacro cond\n \"Supersets `core/cond` functionality. Like `core/cond` but supports implicit\n final `else` clause, and special clause keywords for advanced behaviour:\n\n (cond\n :let [x \\\"x\\\"] ; Establish let binding/s for remaining forms\n :binding [*x* \\\"x\\\"] ; Establish dynamic binding/s for remaining forms\n :do (println (str \\\"x value: \\\" x)) ; Eval expr for side-effects\n :if-let [y \\\"y\\\", z nil] \\\"y and z were both truthy\\\"\n :if-some [y \\\"y\\\", z nil] \\\"y and z were both non-nil\\\"\n :else \\\"fallback value\\\")\n\n Simple, flexible way to eliminate deeply-nested control flow code.\n `:let` support inspired by .\"\n [& clauses] `(-cond false ~@clauses)))\n\n#?(:clj\n (defmacro cond!\n \"Like `cond` but throws on non-match like `case` and `condp`.\"\n [& clauses] `(-cond true ~@clauses)))\n\n#?(:clj\n (defmacro cond-let\n \"Repeatedly rebinds given `sym` for each truthy condition and\n returns `sym`'s final value.\n\n Like a cross between `as->` and `cond->`:\n (cond-let [n 0] ; sym and its init value\n true (inc n)\n false (* n 5)\n (> n 0) (* n 2)) => 2\"\n\n [[sym init-val] & clauses]\n (when-not (even? (count clauses))\n (truss/ex-info!\n (str \"[encore/cond-let] Needs even number of clauses: \"\n `(~'cond-let [~sym ~init-val] ~'...))))\n\n (if (empty? clauses)\n init-val\n (let [steps (mapv (fn [[test step]] `(if ~test ~step ~sym)) (partition 2 clauses))]\n `(let [~sym ~init-val\n ~@(interleave (repeat sym) steps)]\n ~sym)))))\n\n#?(:clj\n (defmacro compile-if\n \"Evaluates `test`. If it returns logical true (and doesn't throw), expands\n to `then`, otherwise expands to `else`.\"\n {:style/indent 1}\n ([test then ] `(compile-if ~test ~then nil))\n ([test then else] (if (try (eval test) (catch Throwable _ false)) then else))))\n\n#?(:clj (defmacro compile-when {:style/indent 1} [test & body] `(compile-if ~test (do ~@body) nil)))\n\n;; (:ns &env) is nnil iff compiling for Cljs. This gives macros a way to produce\n;; different code depending on target (Clj/s), something reader conditionals cannot do.\n#?(:clj (defmacro if-clj [then & [else]] (if (:ns &env) else then)))\n#?(:clj (defmacro if-cljs [then & [else]] (if (:ns &env) then else)))\n#?(:clj\n (defmacro ^:no-doc target-case\n \"Private, don't use. From `net.cgrand/macrovich`.\n Like a reader conditional, but branches at expansion (not read) time.\n Chooses form to emit based on target language (not macro language).\n\n For use by macros or macro-supporting fns, can use un/quoted:\n (defmacro foo [] (target-case :clj \\\"->Clojure\\\" :cljs \\\"->ClojureScript\\\" :cljd \\\"->ClojureDart\\\"))\n (defmacro foo [] `(target-case :clj \\\"->Clojure\\\" :cljs \\\"->ClojureScript\\\" :cljd \\\"->ClojureDart\\\"))\"\n\n [& {:keys [clj cljs cljd]}]\n (cond\n (contains? &env '&env)\n `(cond (:ns ~'&env) ~cljs (:nses ~'&env) ~cljd :else ~clj)\n #?(:clj (:ns &env) :cljs true) cljs\n #?(:clj (:nses &env) :cljd true) cljd\n :else clj)))\n\n(comment (clojure.walk/macroexpand-all '(defmacro foo [x] (target-case :clj \"clj\" :cljs \"cljs\"))))\n\n#?(:clj\n (defmacro binding*\n \"For Clj: faster version of `core/binding`.\n For Cljs: identical to `core/binding`.\n Can interfere with some deep-walking macros.\"\n {:style/indent 1}\n [bindings & body]\n (if (:ns &env)\n `(cljs.core/binding ~bindings ~@body)\n (let [;; Avoids unnecessary runtime map construction\n bindings-map ; #{ }\n (reduce-kv (fn [m k v] (assoc m `(var ~k) v))\n {} (apply hash-map bindings))]\n `(let [] ; Nb for frame\n (push-thread-bindings ~bindings-map)\n (try ~@body (finally (pop-thread-bindings))))))))\n\n(comment\n (do\n (def ^:dynamic *d1* nil)\n (def ^:dynamic *d2* nil)\n (qb 1e6 ; [354.32 308.58]\n (core/binding [*d1* :d1, *d2* :d2] [*d1* *d2*])\n (binding* [*d1* :d1, *d2* :d2] [*d1* *d2*]))))\n\n(defn name-with-attrs\n \"Given a symbol and args, returns [ ]\n with support for `defn` style `?docstring` and `?attrs-map`.\"\n ([sym args ] (name-with-attrs sym args nil))\n ([sym args attrs-merge]\n (let [[?docstring args] (if (and (string? (first args)) (next args)) [(first args) (next args)] [nil args])\n [attrs args] (if (and (map? (first args)) (next args)) [(first args) (next args)] [{} args])\n [?docstring args] (if (and (string? (first args)) (next args)) [(first args) (next args)] [?docstring args])\n\n attrs (if ?docstring (assoc attrs :doc ?docstring) attrs)\n attrs (if-let [m (meta sym)] (conj m attrs) attrs)\n attrs (conj attrs attrs-merge)]\n\n [(with-meta sym attrs) args attrs])))\n\n#?(:clj\n (defmacro def*\n \"Like `core/def` but supports attrs map.\"\n {:arglists '([sym ?docstring ?attrs-map init-expr])\n :style/indent 1}\n [sym & args]\n (let [[sym body] (name-with-attrs sym args)]\n `(def ~sym ~@body))))\n\n(comment (meta (def* foo {:private true} \"docstring\" \"value\")))\n\n#?(:clj\n (defmacro defonce\n \"Like `core/defonce` but supports docstring and attrs map.\"\n {:arglists '([sym ?docstring ?attrs-map init-expr])\n :style/indent 1}\n [sym & args]\n (let [[sym body] (name-with-attrs sym args)]\n (if (:ns &env)\n `(cljs.core/defonce ~sym ~@body)\n `(clojure.core/defonce ~sym ~@body)))))\n\n#?(:clj\n (defmacro case-eval\n \"Like `case` but test expressions are evaluated for their compile-time value.\"\n {:style/indent 1}\n [expr & clauses]\n (let [default? (odd? (count clauses))\n default (when default? (last clauses))\n clauses (if default? (butlast clauses) clauses)]\n `(case ~expr\n ~@(map-indexed (fn [i# form#] (if (even? i#) (eval form#) form#)) clauses)\n ~(when default? default)))))\n\n#?(:clj\n (defmacro doto-cond\n \"Cross between `doto`, `cond->` and `as->`.\"\n {:style/indent 1}\n [[sym x] & clauses]\n (assert (even? (count clauses)))\n (let [gs (gensym)\n pstep (fn [[test-expr step]] `(when-let [~sym ~test-expr] (-> ~gs ~step)))]\n `(let [~gs ~x]\n ~@(map pstep (partition 2 clauses))\n ~gs))))\n\n#?(:clj\n (defmacro identical-kw?\n \"Returns true iff two keywords are identical.\n Portable and maximally fast.\n For Clj this expands to: `(identical? x y)`\n For Cljs this expands to: `(keyword-identical? x y)`\"\n [x y]\n (if (:ns &env)\n `(cljs.core/keyword-identical? ~x ~y)\n `(identical? ~x ~y))))\n\n#?(:clj\n (defmacro declare-remote\n \"Declares given ns-qualified symbols, preserving metadata.\n Clj only. Useful for circular dependencies.\"\n [& syms]\n (let [original-ns (str *ns*)]\n `(do ~@(map (fn [s]\n (let [ns (namespace s)\n v (name s)\n m (meta s)]\n `(do (in-ns '~(symbol ns))\n (declare ~(with-meta (symbol v) m))))) syms)\n (in-ns '~(symbol original-ns))))))\n\n#?(:clj\n (defmacro ^:no-doc typed-val\n \"Private, don't use. Expands to `{:value ~x, :type (type ~x)}.\"\n [x] `{:value ~x, :type (type ~x)}))\n\n#?(:clj (defmacro new-object [] (if (:ns &env) `(cljs.core/js-obj) `(Object.))))\n\n#?(:clj\n (defmacro update-var-root!\n \"Updates root binding (value) of the var identified by given symbol, and returns\n the new value:\n (update-var-root! my-var (fn [old-root-val] )) => \n\n Similar to `alter-var-root` but cross-platform and takes a symbol rather than a var.\n See also `set-var-root!`.\"\n [var-sym update-fn]\n (if (:ns &env)\n `(set! ~var-sym (~update-fn ~var-sym))\n `(alter-var-root (var ~var-sym) ~update-fn))))\n\n#?(:clj\n (defmacro set-var-root!\n \"Sets root binding (value) of the var identified by given symbol, and returns\n the new value. Cross-platform. See also `update-var-root!`.\"\n [var-sym root-val]\n (if (:ns &env)\n `(set! ~var-sym ~root-val)\n `(alter-var-root (var ~var-sym) (fn [_#] ~root-val)))))\n\n;;;; Vars\n\n#?(:clj\n (defn ^:no-doc var-info\n \"Private, don't use.\n Returns ?{:keys [var sym ns name meta ...]} for given symbol.\"\n [macro-env sym]\n (when (symbol? sym)\n (if (:ns macro-env)\n (let [ns (find-ns 'cljs.analyzer.api)\n v (ns-resolve ns 'resolve)] ; Don't cache!\n (when-let [{:as m, var-ns :ns, var-name :name} ; ?{:keys [meta ns name ...]}\n (@v macro-env sym)]\n (when var-ns ; Skip locals\n (assoc m :sym (symbol (str var-ns) (name var-name))))))\n\n (when-let [v (resolve macro-env sym)]\n (let [{:as m, var-ns :ns, var-name :name} (meta v)]\n {:var v\n :sym (symbol (str var-ns) (name var-name))\n :ns var-ns\n :name var-name\n :meta\n (if-let [x (get m :arglists)]\n (assoc m :arglists `'~x) ; Quote\n (do m))}))))))\n\n#?(:clj (defn- require-sym-ns [sym] (when-let [ns (namespace sym)] (require (symbol ns)) true)))\n#?(:clj\n (defn ^:no-doc resolve-sym\n \"Private, don't use.\n Returns resolved qualified Clj/s symbol, or nil.\"\n ;; Fundamental limitations:\n ;; 1. Macros targeting Cljs cannot expand to a Cljs symbol in an unrequired namespace.\n ;; 2. Macros targeting Cljs cannot eval a Cljs symbol for its value at macro time.\n ([ sym ] (resolve-sym nil sym false)) ; Clj only\n ([macro-env sym ] (resolve-sym macro-env sym false))\n ([macro-env sym may-require-ns?]\n (when (symbol? sym)\n (if-not may-require-ns?\n (get (var-info macro-env sym) :sym)\n (or\n (get (var-info macro-env sym) :sym)\n (when (truss/catching (require-sym-ns sym))\n (get (var-info macro-env sym) :sym))))))))\n\n(comment (resolve-sym nil 'string?))\n\n;;;; Aliases\n\n#?(:clj\n (defn ^:no-doc alias-link-var\n \"Private, don't use.\"\n [dst-var src-var dst-attrs]\n (add-watch src-var dst-var\n (fn [_ _ _ new-val]\n (alter-var-root dst-var (fn [_] new-val))\n ;; Wait for src-var meta to change. This is hacky, but\n ;; generally only relevant for REPL dev so seems tolerable.\n (let [t (Thread/currentThread)]\n (future\n (.join t 100)\n (reset-meta! dst-var\n (core/merge (meta src-var) dst-attrs))))))))\n\n#?(:clj\n (defmacro defalias\n \"Defines a local alias for the var identified by given qualified\n source symbol: (defalias my-map clojure.core/map), etc.\n\n Source var's metadata will be preserved (docstring, arglists, etc.).\n Changes to Clj source var's value will also be applied to alias.\n See also `defaliases`.\"\n ([ src ] `(defalias nil ~src nil nil))\n ([alias src ] `(defalias ~alias ~src nil nil))\n ([alias src alias-attrs ] `(defalias ~alias ~src ~alias-attrs nil))\n ([alias src alias-attrs alias-body]\n (let [cljs? (core/some? (:ns &env))\n src-sym (truss/have symbol? src)\n alias-sym (truss/have symbol? (or alias (symbol (name src-sym))))\n\n src-var-info (var-info &env src-sym)\n {src-var, :var src-attrs :meta} src-var-info\n\n alias-attrs\n (if (string? alias-attrs) ; Back compatibility\n {:doc alias-attrs}\n (do alias-attrs))\n\n link? (get alias-attrs :link? true)\n alias-attrs (dissoc alias-attrs :link?)\n\n final-attrs\n (select-keys (core/merge src-attrs (meta src-sym) (meta alias-sym) alias-attrs)\n [:doc :no-doc :arglists :private :macro :added :deprecated :inline :tag :redef])\n\n alias-sym (with-meta alias-sym final-attrs)\n alias-body (or alias-body (if cljs? src-sym `@~src-var))]\n\n #_(spit \"debug.txt\" (str (if cljs? \"cljs: \" \"clj: \") src-sym \": \" (meta alias-sym) \"\\n\") :append true)\n\n (when-not src-var-info\n (truss/ex-info! (str \"[encore/defalias] Source var not found: \" src)\n {:src src, :ns (str *ns*)}))\n\n (if cljs?\n `(def ~alias-sym ~alias-body)\n `(do\n ;; Need `alter-meta!` to reliably retain macro status!\n (alter-meta! (def ~alias-sym ~alias-body) conj ~final-attrs)\n (when ~link? (alias-link-var (var ~alias-sym) ~src-var ~alias-attrs))\n ;; (assert (bound? (var ~alias-sym)) ~(str \"Alias `\" alias-sym \"` is bound\"))\n (do (var ~alias-sym))))))))\n\n#?(:clj\n (defmacro defaliases\n \"Bulk version of `defalias`.\n Takes source symbols or {:keys [alias src attrs body]} maps:\n (defaliases\n {:alias my-map, :src map, :attrs {:doc \\\"My `map` alias\\\"}}\n {:alias my-vec, :src vec, :attrs {:doc \\\"My `vec` alias\\\"}})\"\n {:arglists '([{:keys [alias src attrs body]} ...])}\n [& clauses]\n `(do\n ~@(map\n (fn [x]\n (cond\n (symbol? x) `(defalias ~x)\n (map? x)\n (let [{:keys [alias src attrs body]\n :or {attrs (dissoc x :alias :src)}} x]\n `(defalias ~alias ~src ~attrs ~body))\n\n :else\n (truss/unexpected-arg! x\n {:context `defaliases\n :param 'alias-clause\n :expected '#{symbol map}})))\n clauses))))\n\n(comment\n (defn src \"src doc 1\" [] \"val1\")\n (defalias ^{:doc \"alias doc 1\"} src* src {:doc \"alias doc 2\"})\n [(src*) (meta #'src*)]\n (macroexpand '(defaliases {:alias map2 :src map :doc \"map2\"}))\n (do (defaliases {:alias map2 :src map :doc \"map2\"}))\n\n (defn myfn \"myfn doc\" [x y] (Thread/sleep 2000) (+ x y))\n (defaliases {:alias myfn2 :src myfn :body (fmemoize myfn)})\n (myfn2 1 1))\n\n;;;; Interfaces\n\n#?(:clj (declare caching-satisfies?))\n#?(:clj\n (defmacro satisfies?\n \"Faster `satisfies?` to work around CLJ-1814 until a proper upstream fix.\n May cache, so possibly inappropriate for dynamic work.\"\n [protocol x]\n (if (:ns &env)\n ;; `(cljs.core/implements? ~protocol ~x)\n `(cljs.core/satisfies? ~protocol ~x)\n `(caching-satisfies? ~protocol ~x))))\n\n#?(:clj\n (defmacro satisfies!\n \"If (satisfies? protocol arg) is true, returns arg.\n Otherwise throws runtime ex-info.\"\n {:arglists\n '([protocol arg]\n [protocol arg {:keys [msg context param ...]}]\n [protocol arg & {:keys [msg context param ...]}])}\n\n ([protocol arg ] `(satisfies! ~protocol ~arg nil))\n ([protocol arg k1 & more] `(satisfies! ~protocol ~arg ~(apply hash-map k1 more)))\n ([protocol arg opts]\n (let [opts (conj {:expected `(quote (satisfies? ~protocol ~'arg))} opts)]\n `(let [arg# ~arg]\n (if (satisfies? ~protocol arg#)\n arg#\n (truss/unexpected-arg! arg# ~opts)))))))\n\n(comment (macroexpand '(satisfies! my-protocol arg :k1 :v1 :k2 :v2)))\n\n#?(:clj\n (defmacro instance!\n \"If (instance? class arg) is true, returns arg.\n Otherwise throws runtime ex-info.\"\n {:arglists\n '([class arg]\n [class arg {:keys [msg context param ...]}]\n [class arg & {:keys [msg context param ...]}])}\n\n ([class arg ] `(instance! ~class ~arg nil))\n ([class arg k1 & more] `(instance! ~class ~arg ~(apply hash-map k1 more)))\n ([class arg opts]\n (let [opts (conj {:expected `(quote (instance? ~class ~'arg))} opts)]\n `(let [arg# ~arg]\n (if (instance? ~class arg#)\n arg#\n (truss/unexpected-arg! arg# ~opts)))))))\n\n(comment (macroexpand '(instance! String 5 :k1 :v1 :k2 :v2)))\n\n;;;; Cljs environment\n;; `js/foo` - `foo` in global object/ns (depends on *target*)\n;; `js/window` - `window` object: global ns in browsers\n;; `js/global` - `global` object: global ns in Node.js, etc.?\n;; `goog/global` - Closure's environment-agnostic global object\n\n#?(:cljs (def ^:no-doc node-target? (= *target* \"nodejs\")))\n#?(:cljs (def ^:no-doc react-native-target? (= *target* \"react-native\")))\n#?(:cljs (def ^:no-doc js-?window (when (and (not react-native-target?) (exists? js/window)) js/window))) ; Present iff in browser\n#?(:cljs (def ^:no-doc js-?process (when (exists? js/process) js/process))) ; Present iff in Node.js\n#?(:cljs (def ^:no-doc js-?crypto\n (when-not react-native-target?\n (or\n (when (exists? js/crypto) js/crypto)\n (when (exists? js/window) (gobj/get js/window \"crypto\"))))))\n\n;;;; Types\n;; Could really do with a portable ^boolean hint!\n\n#?(:cljs\n (defn ^:no-doc type-name\n \"Returns human-readable type name for given arb value.\"\n [x]\n (cond\n (nil? x) \"nil\"\n (undefined? x) \"undefined\"\n :else\n (let [ctor (type x)]\n (or\n (.-name ctor) (.-displayName ctor) (goog/typeOf x)\n (try (pr-str ctor) (catch :default _ nil))\n \"unknown\")))))\n\n(do\n #?(:clj (defn nempty-str? [x] (and (string? x) (not (.isEmpty ^String x))))\n :cljs (defn ^boolean nempty-str? [x] (and (string? x) (not (= x \"\")))))\n #?(:clj (defn boolean? [x] (instance? Boolean x))\n :cljs (defn ^boolean boolean? [x] (or (true? x) (false? x))))\n #?(:clj (defn indexed? [x] (instance? clojure.lang.Indexed x))\n :cljs (defn ^boolean indexed? [x] (implements? IIndexed x)))\n #?(:clj (defn named? [x] (instance? clojure.lang.Named x))\n :cljs (defn ^boolean named? [x] (implements? INamed x)))\n #?(:clj (defn editable? [x] (instance? clojure.lang.IEditableCollection x))\n :cljs (defn ^boolean editable? [x] (implements? IEditableCollection x)))\n #?(:clj (defn derefable? [x] (instance? clojure.lang.IDeref x))\n :cljs (defn ^boolean derefable? [x] (implements? IDeref x)))\n #?(:clj (defn atom? [x] (instance? clojure.lang.Atom x))\n :cljs (defn ^boolean atom? [x] (instance? Atom x)))\n #?(:clj (defn transient? [x] (instance? clojure.lang.ITransientCollection x))\n :cljs (defn ^boolean transient? [x] (implements? ITransientCollection x)))\n #?(:clj (defn lazy-seq? [x] (instance? clojure.lang.LazySeq x))\n :cljs (defn ^boolean lazy-seq? [x] (instance? LazySeq x)))\n #?(:clj (defn re-pattern? [x] (instance? java.util.regex.Pattern x))\n :cljs (defn ^boolean re-pattern? [x] (instance? js/RegExp x)))\n #?(:clj (defn can-meta? [x] (instance? clojure.lang.IObj x)) ; Not IMeta\n :cljs (defn ^boolean can-meta? [x] (implements? IWithMeta x)))\n\n #?(:clj (defn uri? [x] (instance? java.net.URI x)))\n #?(:clj (defn throwable? [x] (instance? Throwable x)))\n #?(:clj (defn exception? [x] (instance? Exception x)))\n\n (defn stringy? #?(:cljs {:tag 'boolean}) [x] (or (keyword? x) (string? x)))\n (defn ident? #?(:cljs {:tag 'boolean}) [x] (or (keyword? x) (symbol? x)))\n (defn nameable? #?(:cljs {:tag 'boolean}) [x] (or (named? x) (string? x)))\n (defn simple-ident? #?(:cljs {:tag 'boolean}) [x] (and (ident? x) (nil? (namespace x))))\n (defn qualified-ident? #?(:cljs {:tag 'boolean}) [x] (and (ident? x) (namespace x) true))\n (defn simple-symbol? #?(:cljs {:tag 'boolean}) [x] (and (symbol? x) (nil? (namespace x))))\n (defn qualified-symbol? #?(:cljs {:tag 'boolean}) [x] (and (symbol? x) (namespace x) true))\n (defn simple-keyword? #?(:cljs {:tag 'boolean}) [x] (and (keyword? x) (nil? (namespace x))))\n (defn qualified-keyword? #?(:cljs {:tag 'boolean}) [x] (and (keyword? x) (namespace x) true))\n (defn vec2? #?(:cljs {:tag 'boolean}) [x] (and (vector? x) (= (count x) 2)))\n (defn vec3? #?(:cljs {:tag 'boolean}) [x] (and (vector? x) (= (count x) 3)))\n (defn nblank-str? #?(:cljs {:tag 'boolean}) [x] (and (string? x) (not (str/blank? x))))\n (defn nblank? #?(:cljs {:tag 'boolean}) [x] (not (str/blank? x))))\n\n(defalias truss/error?)\n(declare revery?)\n\n(defn chan?\n \"Returns true iff given a `clojure.core.async` channel.\"\n #?(:cljs {:tag 'boolean})\n [x]\n ;; Avoid actually loading `core.async`\n #?(:cljs (instance? cljs.core.async.impl.channels.ManyToManyChannel x)\n :clj (= \"clojure.core.async.impl.channels.ManyToManyChannel\" (.getName (class x)))))\n\n(comment (chan? (clojure.core.async/chan)))\n\n#?(:clj\n (do ; Forms\n (defn ^:no-doc runtime-form? \"Private, don't use.\" [form] (or (symbol? form) (list-form? form)))\n (defn ^:no-doc const-form? \"Private, don't use.\" [form] (not (runtime-form? form)))\n (defn ^:no-doc const-form \"Private, don't use.\" [form] (when (const-form? form) form))\n (defn ^:no-doc const-forms? \"Private, don't use.\" [& forms] (revery? const-form? forms))\n (defn ^:no-doc const-forms \"Private, don't use.\" [& forms] (mapv const-form forms))))\n\n(defn force-ref \"Like `force` for refs.\" [x] (if (derefable? x) (deref x) x))\n(defn force-var \"Like `force` for vars.\" [x] (if (var? x) (deref x) x))\n\n;; Number types\n;; Since Clojure usu. defaults to larger types (long>integer, double>long),\n;; I'm appropriating the rarely-used smaller type names (int, float) to\n;; refer to types of generic size.\n;;\n;; All fixed-precision:\n;; `int` - Generic size: long or integer, etc.\n;; `float` - Generic size: double or float, etc.\n;; `long` - Specific size: long ; Only used when emphasizing specific size\n;; `double` - Specific size: double ; Only used when emphasizing specific size\n\n(defn finite-num?\n \"Returns true iff given a number (of standard type) that is:\n finite (excl. NaN and infinities).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (and (number? x) (Double/isFinite x)) ; Works with other types, incl. ratio\n :cljs (js/Number.isFinite x)\n #_\n (and\n (not ^boolean (js/isNaN x))\n #_(not (identical? x js/Infinity))\n (not (identical? x js/Number.POSITIVE_INFINITY))\n (not (identical? x js/Number.NEGATIVE_INFINITY)))))\n\n(defn int?\n \"Returns true iff given a number (of standard type) that is:\n a fixed-precision integer.\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj\n (or\n (instance? Long x)\n (instance? Integer x)\n (instance? Short x)\n (instance? Byte x))\n\n :cljs\n (and\n #_(number? x)\n (finite-num? x)\n (== (js/parseFloat x) (js/parseInt x 10)))))\n\n(defn float?\n \"Returns true iff given a number (of standard type) that is:\n a fixed-precision floating-point (incl. NaN and infinities).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (or (instance? Double x) (instance? Float x))\n :cljs\n (and\n (number? x)\n #_(finite?-num? x)\n (not (== (js/parseFloat x) (js/parseInt x 10))))))\n\n(comment (float? Double/NaN))\n\n(do\n (defn nneg? #?(:cljs {:tag 'boolean}) [x] (not (neg? x)))\n (defn zero-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (zero? x)))\n (defn nzero-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (not (zero? x))))\n\n (defn nat-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (not (neg? x))))\n (defn pos-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (pos? x)))\n (defn neg-num? #?(:cljs {:tag 'boolean}) [x] (and (number? x) (neg? x)))\n\n (defn nat-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (not (neg? x))))\n (defn pos-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (pos? x)))\n (defn neg-int? #?(:cljs {:tag 'boolean}) [x] (and (int? x) (neg? x)))\n\n (defn nat-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (not (neg? x))))\n (defn pos-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (pos? x)))\n (defn neg-float? #?(:cljs {:tag 'boolean}) [x] (and (float? x) (neg? x))))\n\n(defn pnum?\n \"Returns true iff given number in unsigned unit proportion interval \u2208\u211d[0,1].\"\n #?(:cljs {:tag 'boolean})\n [x] (and (number? x) (let [n (double x)] (and (>= n 0.0) (<= n 1.0)))))\n\n(defn rnum?\n \"Returns true iff given number in signed unit proportion interval \u2208\u211d[-1,1].\"\n #?(:cljs {:tag 'boolean})\n [x] (and (number? x) (let [n (double x)] (and (>= n -1.0) (<= n +1.0)))))\n\n;;;; Type coercions\n;; There may be parsing edge-case inconsistencies between platforms.\n;; It's NOT currently an objective to try pave over all differences!\n\n(def ^:const max-long #?(:clj Long/MAX_VALUE :cljs js/Number.MAX_SAFE_INTEGER))\n(def ^:const min-long #?(:clj Long/MIN_VALUE :cljs js/Number.MIN_SAFE_INTEGER))\n\n(defn- int-str? [s] (re-matches #\"[+-]?\\d+\" s)) ; Restrictive\n#?(:cljs (defn- parse-js-float [s] (let [x (js/parseFloat s)] (when-not (js/isNaN x) x)))) ; Unrestrictive\n#?(:cljs\n (defn parse-js-int [s]\n (when (int-str? s)\n (let [x (js/parseInt s 10)]\n (when (and\n (not (js/isNaN x)) ; Redundant?\n (<= x max-long)\n (>= x min-long))\n x)))))\n\n(do\n (defn as-?nzero [x] (when (number? x) (if (zero? x) nil x)))\n (defn as-?nblank [x] (when (string? x) (if (str/blank? x) nil x)))\n (defn as-?kw [x] (cond (keyword? x) x (string? x) (keyword x)))\n (defn as-?name [x] (cond (named? x) (name x) (string? x) x))\n (defn as-?qname [x]\n (cond\n (named? x) (let [n (name x)] (if-let [ns (namespace x)] (str ns \"/\" n) n))\n (string? x) x))\n\n (defn as-?nempty-str [x] (when (string? x) (if #?(:clj (.isEmpty ^String x) :cljs (= x \"\")) nil x)))\n (defn as-?nblank-trim [x] (when (string? x) (let [s (str/trim x)] (if #?(:clj (.isEmpty ^String s) :cljs (= s \"\")) nil s))))\n\n (comment (as-?nblank-trim \" foo \"))\n\n (defn as-?int [x]\n (cond\n (number? x) (long x)\n (string? x)\n #?(:cljs (parse-js-int x)\n :clj\n (try\n (Long/parseLong x)\n (catch NumberFormatException _\n (truss/catching (long (Float/parseFloat x))))))))\n\n (defn as-?float [x]\n (cond\n (number? x) (double x)\n (string? x)\n #?(:cljs (parse-js-float x)\n :clj (truss/catching (Double/parseDouble x)))))\n\n (defn as-?nat-int [x] (when-let [n (as-?int x)] (when-not (neg? ^long n) n)))\n (defn as-?pos-int [x] (when-let [n (as-?int x)] (when (pos? ^long n) n)))\n (defn as-?nat-float [x] (when-let [n (as-?float x)] (when-not (neg? ^double n) n)))\n (defn as-?pos-float [x] (when-let [n (as-?float x)] (when (pos? ^double n) n)))\n\n (defn as-?pnum [x] (when-let [^double f (as-?float x)] (if (> f 1.0) 1.0 (if (< f 0.0) 0.0 f))))\n (defn as-?rnum [x] (when-let [^double f (as-?float x)] (if (> f 1.0) 1.0 (if (< f -1.0) -0.0 f))))\n\n (defn as-?bool [x]\n (cond\n (or (true? x) (false? x) (nil? x)) x\n (or (= x 0) (= x \"false\") (= x \"FALSE\") (= x \"0\")) false\n (or (= x 1) (= x \"true\") (= x \"TRUE\") (= x \"1\")) true))\n\n (let [;; Simple regex to test for basic \"x@y.z\" form:\n regex #\"^[^\\s@]+@[^\\s@]+\\.\\S*[^\\.]$\"]\n (defn as-?email\n ([ ?s] (as-?email 320 ?s))\n ([max-len ?s]\n (when-let [s (and ?s (str/trim ?s))]\n (when (<= (count s) ^long max-len)\n (re-find regex s))))))\n\n (declare norm-str)\n (defn as-?nemail\n ([ ?s] (when-let [email (as-?email ?s)] (str/lower-case (norm-str email))))\n ([max-len ?s] (when-let [email (as-?email max-len ?s)] (str/lower-case (norm-str email)))))\n\n (comment\n (do (as-?nemail 11 \"FOO@bar.com\"))\n (mapv as-?nemail\n [\"foo\" \"foo@\" \"foo@bar\" \"Foo@BAR.com\"\n \"foo@@bar.com\" \"foo@bar.com.\" \"foo.baz@bar.com\"])))\n\n(defn ^:no-doc -as-throw [kind x]\n (truss/ex-info! (str \"[encore/as-\" (name kind) \"] failed against arg: \" (pr-str x))\n {:pred-kind kind\n :arg (typed-val x)}))\n\n(let [-as-throw -as-throw]\n (defn as-nblank {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nblank x) (-as-throw :nblank x)))\n (defn as-nblank-trim {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nblank-trim x) (-as-throw :nblank-trim x)))\n (defn as-nempty-str {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?nempty-str x) (-as-throw :nempty-str x)))\n (defn as-name {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?name x) (-as-throw :name x)))\n (defn as-qname {:tag #?(:clj 'String :cljs 'string)} [x] (or (as-?qname x) (-as-throw :qname x)))\n (defn as-nzero [x] (or (as-?nzero x) (-as-throw :nzero x)))\n (defn as-kw [x] (or (as-?kw x) (-as-throw :kw x)))\n\n (defn as-email\n {:tag #?(:clj 'String :cljs 'string)}\n ([ x] (or (as-?email x) (-as-throw :email x)))\n ([n x] (or (as-?email n x) (-as-throw :email x))))\n\n (defn as-nemail\n {:tag #?(:clj 'String :cljs 'string)}\n ([ x] (or (as-?nemail x) (-as-throw :nemail x)))\n ([n x] (or (as-?nemail n x) (-as-throw :nemail x))))\n\n #?(:clj (defn as-int ^long [x] (or (as-?int x) (-as-throw :int x)))\n :cljs (defn ^number as-int [x] (or (as-?int x) (-as-throw :int x))))\n #?(:clj (defn as-nat-int ^long [x] (or (as-?nat-int x) (-as-throw :nat-int x)))\n :cljs (defn ^number as-nat-int [x] (or (as-?nat-int x) (-as-throw :nat-int x))))\n #?(:clj (defn as-pos-int ^long [x] (or (as-?pos-int x) (-as-throw :pos-int x)))\n :cljs (defn ^number as-pos-int [x] (or (as-?pos-int x) (-as-throw :pos-int x))))\n\n #?(:clj (defn as-float ^double [x] (or (as-?float x) (-as-throw :float x)))\n :cljs (defn ^number as-float [x] (or (as-?float x) (-as-throw :float x))))\n #?(:clj (defn as-nat-float ^double [x] (or (as-?nat-float x) (-as-throw :nat-float x)))\n :cljs (defn ^number as-nat-float [x] (or (as-?nat-float x) (-as-throw :nat-float x))))\n #?(:clj (defn as-pos-float ^double [x] (or (as-?pos-float x) (-as-throw :pos-float x)))\n :cljs (defn ^number as-pos-float [x] (or (as-?pos-float x) (-as-throw :pos-float x))))\n\n #?(:clj (defn as-pnum ^double [x] (or (as-?pnum x) (-as-throw :pnum x))) ; With auto coerce+clamp\n :cljs (defn ^number as-pnum [x] (or (as-?pnum x) (-as-throw :pnum x)))) ; ''\n #?(:clj (defn as-rnum ^double [x] (or (as-?rnum x) (-as-throw :rnum x))) ; ''\n :cljs (defn ^number as-rnum [x] (or (as-?rnum x) (-as-throw :rnum x)))) ; ''\n\n #?(:clj (defn as-pnum! ^double [x] (if (pnum? x) (double x) (-as-throw :pnum! x))) ; Without auto coerce+clamp\n :cljs (defn ^number as-pnum! [x] (if (pnum? x) (double x) (-as-throw :pnum! x)))) ; ''\n #?(:clj (defn as-rnum! ^double [x] (if (rnum? x) (double x) (-as-throw :rnum! x))) ; ''\n :cljs (defn ^number as-rnum! [x] (if (rnum? x) (double x) (-as-throw :rnum! x)))) ; ''\n\n (defn #?(:clj as-bool :cljs ^boolean as-bool) [x]\n (let [?b (as-?bool x)] (if-not (nil? ?b) ?b (-as-throw :bool x)))))\n\n;;;; Reductions\n\n(defn convey-reduced [x] (if (reduced? x) (reduced x) x)) ; Double-wrap\n(defn preserve-reduced\n \"Public version of `core/preserving-reduced`.\"\n [rf]\n (fn [acc in]\n (let [result (rf acc in)]\n (if (reduced? result)\n (reduced result)\n (do result)))))\n\n(defn reduce-kvs\n \"Like `reduce-kv` but takes a flat sequence of kv pairs.\"\n [rf init kvs]\n (transduce (partition-all 2)\n (completing (fn [acc [k v]] (rf acc k v))) init kvs))\n\n(defn reduce-n\n \"No longer useful with Clojure 1.7+, just use (reduce f init (range ...)).\"\n ([rf init end ] (reduce rf init (range end)))\n ([rf init start end ] (reduce rf init (range start end)))\n ([rf init start end step] (reduce rf init (range start end step))))\n\n(comment (reduce-n conj [] 100 10 -1))\n\n(declare counter)\n(defn reduce-indexed\n \"Like `reduce` but takes (rf [acc idx in]) with idx as in `map-indexed`.\n As `reduce-kv` against vector coll, but works on any seqable coll type.\"\n [rf init coll]\n (let [c (counter)]\n (reduce (fn [acc in] (rf acc (c) in)) init coll)))\n\n(comment\n (reduce-indexed (fn [acc idx in] (assoc acc idx in)) {} [:a :b :c])\n (reduce-kv (fn [acc idx in] (assoc acc idx in)) {} [:a :b :c]))\n\n#?(:cljs\n (defn reduce-obj \"Like `reduce-kv` but for JavaScript objects.\"\n [f init o] (reduce (fn [acc k] (f acc k (gobj/get o k nil))) init (js-keys o))))\n\n(do\n (defn run! [proc coll] (reduce #(proc %2) nil coll) nil)\n (defn run-kv! [proc m] (reduce-kv #(proc %2 %3) nil m) nil)\n (defn run-kvs! [proc kvs] (reduce-kvs #(proc %2 %3) nil kvs) nil)\n #?(:cljs (defn run-obj! [proc obj] (reduce-obj #(proc %2 %3) nil obj) nil)))\n\n(let [rf (fn [pred] (fn [_acc in] (when-let [p (pred in)] (reduced p))))]\n (defn rsome\n \"Returns nil, or first truthy (pred x) for x in coll.\n Like `core/some` but faster and supports transducers.\"\n ([ pred coll] (reduce (rf pred) nil coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc k v] (when-let [p (pred k v)] (reduced p))))\n tf (fn [pred] (fn [_acc [k v]] (when-let [p (pred k v)] (reduced p))))]\n (defn rsome-kv\n \"Returns nil, or first truthy (pred k v) for kv in associative coll.\n Like `core/some` but faster and takes kvs.\"\n ([ pred coll] (reduce-kv (rf pred) nil coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc in] (when (pred in) (reduced in))))]\n (defn rfirst\n \"Returns nil, or first x in coll with truthy (pred x).\"\n ([ pred coll] (reduce (rf pred) nil coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) nil coll))))\n\n(let [entry\n #?(:clj (fn [k v] (clojure.lang.MapEntry/create k v))\n :cljs (fn [k v] (MapEntry. k v nil)))\n\n rf (fn [pred] (fn [_acc k v] (when (pred k v) (reduced (entry k v)))))\n tf (fn [pred] (fn [_acc [k v]] (when (pred k v) (reduced (entry k v)))))]\n\n (defn rfirst-kv\n \"Returns nil, or first [k v] entry in associative coll with truthy (pred k v).\"\n ([ pred coll] (reduce-kv (rf pred) nil coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) nil coll))))\n\n(let [rf (fn [pred] (fn [_acc in] (if (pred in) true (reduced false))))]\n (defn revery?\n \"Returns true iff (pred x) is truthy for every x in coll.\n Like `core/every?` but faster and supports transducers.\"\n #?(:cljs {:tag 'boolean})\n ([ pred coll] (reduce (rf pred) true coll))\n ([xform pred coll] (transduce xform (completing (rf pred)) true coll))))\n\n(let [rf (fn [pred] (fn [_acc k v] (if (pred k v) true (reduced false))))\n tf (fn [pred] (fn [_acc [k v]] (if (pred k v) true (reduced false))))]\n (defn revery-kv?\n \"Returns true iff (pred k v) is truthy for every kv in associative coll.\"\n #?(:cljs {:tag 'boolean})\n ([ pred coll] (reduce-kv (rf pred) true coll))\n #_([xform pred coll] (transduce xform (completing (tf pred)) true coll))))\n\n(comment\n (= (rfirst-kv (fn [k v] (number? v)) {:a :b :c 2}) [:c 2])\n\n (qb 1e4\n (some #(when (string? %) %) [:a :b :c :d \"boo\"])\n (rsome #(when (string? %) %) [:a :b :c :d \"boo\"])\n (rfirst string? [:a :b :c :d \"boo\"])))\n\n#?(:clj\n (defn reduce-iterator!\n \"Reduces given `java.util.Iterator`, mutating it. Note that most colls\n providing iterators implement `java.lang.Iterable`, so support `seq` directly.\"\n [rf init iterator]\n (if-let [^java.util.Iterator it iterator]\n (loop [acc init]\n (if (.hasNext it)\n (let [acc (rf acc (.next it))]\n (if (reduced? acc)\n (deref acc)\n (recur acc)))\n acc))\n init)))\n\n(defn reduce-zip\n \"Reduces given sequential xs and ys as pairs (e.g. key-val pairs).\n Calls (rf acc x y) for each sequential pair.\n\n Useful, among other things, as a more flexible version of `zipmap`.\"\n ([rf init xs ys ] (reduce-zip rf init xs ys ::skip))\n ([rf init xs ys not-found] ; Experimental, undocumented\n (if (and\n (vector? xs)\n (vector? ys))\n\n (let [n\n (if (identical-kw? not-found ::skip)\n (min (count xs) (count ys))\n (max (count xs) (count ys)))]\n\n (reduce-n\n (fn [acc idx]\n (rf acc\n (get xs idx not-found)\n (get ys idx not-found)))\n init n))\n\n (let [not-found? (not (identical-kw? not-found ::skip))]\n (loop [acc init\n xs (seq xs)\n ys (seq ys)]\n\n (if (if not-found? (or xs ys) (and xs ys))\n\n (let [result\n (rf acc\n (first (or xs [not-found]))\n (first (or ys [not-found])))]\n\n (if (reduced? result)\n (deref result)\n (recur result\n (next xs)\n (next ys))))\n acc))))))\n\n(do\n (deftype ^:no-doc Tup2 [x y ])\n (deftype ^:no-doc Tup3 [x y z]))\n\n(defn reduce-multi\n \"Like `reduce` but supports separate simultaneous accumulators\n as a micro-optimization when reducing a large collection multiple\n times.\"\n ;; Faster than using volatiles\n ([rf init coll] (reduce rf init coll))\n ([rf1 init1 rf2 init2 coll]\n (let [^Tup2 tuple\n (reduce\n (fn [^Tup2 tuple in]\n (let [x (.-x tuple)\n y (.-y tuple)\n rx? (reduced? x)\n ry? (reduced? y)]\n\n (if (and rx? ry?)\n (reduced tuple)\n (let [x (if rx? x (rf1 x in))\n y (if ry? y (rf2 y in))]\n (Tup2. x y)))))\n (Tup2. init1 init2)\n coll)]\n\n [(unreduced (.-x tuple))\n (unreduced (.-y tuple))]))\n\n ([rf1 init1 rf2 init2 rf3 init3 coll]\n (let [^Tup3 tuple\n (reduce\n (fn [^Tup3 tuple in]\n (let [x (.-x tuple)\n y (.-y tuple)\n z (.-z tuple)\n rx? (reduced? x)\n ry? (reduced? y)\n rz? (reduced? z)]\n\n (if (and rx? ry? rz?)\n (reduced tuple)\n (let [x (if rx? x (rf1 x in))\n y (if ry? y (rf2 y in))\n z (if rz? z (rf3 z in))]\n (Tup3. x y z)))))\n (Tup3. init1 init2 init3)\n coll)]\n\n [(unreduced (.-x tuple))\n (unreduced (.-y tuple))\n (unreduced (.-z tuple))])))\n\n(defn reduce-interleave-all\n \"Reduces sequence of elements interleaved from given `colls`.\n (reduce-interleave-all conj [] [[:a :b] [1 2 3]]) => [:a 1 :b 2 3]\"\n [rf init colls]\n (if (empty? colls)\n init\n (loop [acc init, colls colls]\n (let [^Tup2 tuple\n (reduce\n (fn [^Tup2 tuple in]\n (if (empty? in)\n tuple\n (let [[in1 & next-in] in\n acc (.-x tuple)\n ncs (.-y tuple)\n res (rf acc in1)]\n\n (if (reduced? res)\n (reduced (Tup2. @res nil))\n (do (Tup2. res\n (if next-in\n (conj (or ncs []) next-in)\n (do ncs))))))))\n (Tup2. acc nil)\n colls)\n\n acc (.-x tuple)\n next-colls (.-y tuple)]\n\n (if next-colls\n (recur acc next-colls)\n (do acc))))))\n\n(let [map-like? #(or (map? %) (record? %))]\n (defn ^:no-doc postwalk\n \"Private, don't use.\n Simpler, faster `clojure.walk/postwalk`.\"\n ([ x f] (postwalk false x f))\n ([preserve-seqs? x f]\n (let [ps (if preserve-seqs? seq identity)\n pw #(postwalk preserve-seqs? %1 %2)]\n (cond\n (map-like? x) (f (reduce-kv (fn [acc k v] (assoc acc (pw k f) (pw v f))) {} x))\n (seq? x) (f (ps (reduce (fn [acc in] (conj acc (pw in f))) [] x)))\n (coll? x) (f (reduce (fn [acc in] (conj acc (pw in f))) (empty x) x))\n :else (f x))))))\n\n(comment\n (def in {:a [1 2 3 #{1 2 3 {:a '(1 2 3)}}] 1 \"1\" 2 nil 3 {1 \"1\" 2 \"2\" 3 \"3\"}})\n (def pwf #(if (int? %) (inc %) %))\n (qb 1e5 ; [141.88 390.17]\n (postwalk in pwf)\n (clojure.walk/postwalk pwf in)))\n\n;;;; Sub fns\n\n(defn- subfn [context by-idx-fn]\n (fn subfn*\n ([c start-idx]\n (when c\n (let [max-idx (count c)\n start-idx (long start-idx)]\n (when (< start-idx max-idx)\n (by-idx-fn c (max start-idx 0) max-idx)))))\n\n ([c start-idx end-idx]\n (when c\n (let [start-idx (max (long start-idx) 0)\n end-idx (min (long end-idx) (count c))]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx)))))\n\n ([c kind start end]\n (when c\n (let [max-end (count c)\n end (if (identical-kw? end :max) max-end end)]\n\n (case kind\n :by-idx (subfn* c start end)\n :by-len\n (cond\n :let [len (long end)]\n (<= len 0) nil\n\n :let [start-idx (long start)]\n (< start-idx 0) ; Index from right\n (let [start-idx (max (+ start-idx max-end) 0)\n end-idx (min (+ start-idx len) max-end)]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx)))\n\n :else\n (let [end-idx (min (+ start-idx len) max-end)]\n (when (< start-idx end-idx)\n (by-idx-fn c start-idx end-idx))))\n\n (truss/unexpected-arg! kind\n {:param 'kind\n :context context\n :expected #{:by-idx :by-len}})))))))\n\n(def* subvec\n \"Returns a non-empty sub-vector, or nil.\n Like `core/subvec` but:\n - Doesn't throw when out-of-bounds (clips to bounds).\n - Returns nil rather than an empty vector.\n - When given `:by-len` kind (4-arity case):\n - `start` may be -ive (=> index from right of vector).\n - `end` is desired vector length, or `:max`.\"\n {:arglists '([v start-idx] [v start-idx end-idx] [v :by-len start end])}\n (subfn `subvec core/subvec))\n\n(def* substr\n \"Returns a non-empty sub-string, or nil.\n Like `subs` but:\n - Doesn't throw when out-of-bounds (clips to bounds).\n - Returns nil rather than an empty string.\n - When given `:by-len` kind (4-arity case):\n - `start` may be -ive (=> index from right of string).\n - `end` is desired string length, or `:max`.\"\n {:arglists '([s start-idx] [s start-idx end-idx] [s :by-len start end])}\n (subfn `substr (fn [s n1 n2] (.substring #?(:clj ^String s :cljs s) n1 n2))))\n\n(comment\n (qb 1e6 (subvec [:a :b :c] 1) (core/subvec [:a :b :c] 1)) ; [53.32 51.11]\n (qb 1e6 (substr \"abc\" 1) (subs \"abc\" 1)) ; [55.75 49.43]\n )\n\n;;;; Collections\n\n(defn map-entry\n \"Returns a `MapEntry` with given key and value.\"\n #?(:clj {:inline (fn [k v] `(clojure.lang.MapEntry/create ~k ~v))})\n [k v]\n #?(:clj (clojure.lang.MapEntry/create k v)\n :cljs (MapEntry. k v nil)))\n\n(defn queue?\n \"Returns true iff given a `PersistentQueue`.\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? clojure.lang.PersistentQueue x)\n :cljs (instance? cljs.core.PersistentQueue x)))\n\n(defn queue\n \"Returns a new `PersistentQueue`.\"\n ([coll] (into (queue) coll))\n ([ ]\n #?(:clj clojure.lang.PersistentQueue/EMPTY\n :cljs cljs.core.PersistentQueue.EMPTY)))\n\n(defn queue*\n \"Returns a new `PersistentQueue` given items.\"\n [& items] (queue items))\n\n(defn ensure-vec [x] (if (vector? x) x (vec x)))\n(defn ensure-set [x] (if (set? x) x (set x)))\n\n#?(:cljs\n (defn oset \"Like `assoc` for JS objects.\"\n [o k v] (gobj/set (if (nil? o) (js-obj) o) (name k) v)))\n\n#?(:cljs\n (let [sentinel (js-obj)]\n (defn oset-in\n \"Experimental, subject to change without notice.\n Like `assoc-in` for JS objects.\"\n [o ks v]\n (let [o (if (nil? o) (js-obj) o)]\n (if-let [ks (seq ks)]\n (loop [o-next o, ks-next ks]\n (let [k1 (name (first ks-next))\n o-next\n (let [o-next* (gobj/get o-next k1 sentinel)]\n (if (identical? o-next* sentinel)\n (let [new-obj (js-obj)]\n (do\n (gobj/set o-next k1 new-obj)\n (do new-obj)))\n o-next*))]\n\n (if-let [ks-next (next ks-next)]\n (recur o-next ks-next)\n (do (gobj/set o-next k1 v) o))))\n ;; Resolve nil => [nil] ambiguity in `assoc-in`\n o)))))\n\n#?(:cljs\n (defn oget \"Like `get` for JS objects.\"\n ([ k ] (when-let [o js-?window] (gobj/get o (name k))))\n ([o k ] (when o (gobj/get o (name k) nil)))\n ([o k not-found] (if o (gobj/get o (name k) not-found) not-found))))\n\n#?(:cljs\n (let [sentinel (js-obj)]\n ;; Could also use `gobg/getValueByKeys`\n (defn oget-in \"Like `get-in` for JS objects.\"\n ([ ks ] (oget-in js-?window ks nil))\n ([o ks ] (oget-in o ks nil))\n ([o ks not-found]\n (if o\n (loop [o o, ks (seq ks)]\n (if ks\n (let [o (gobj/get o (name (first ks)) sentinel)]\n (if (identical? o sentinel)\n not-found\n (recur o (next ks))))\n o))\n not-found)))))\n\n(defn get1\n \"Like `get` but returns val for first key that exists in map.\n Useful for key aliases or fallbacks. See also `get*`.\"\n ([m k ] (get m k))\n ([m k not-found] (get m k not-found))\n ([m k1 k2 not-found] (if-let [e (and m (or (find m k1) (find m k2))) ] (val e) not-found))\n ([m k1 k2 k3 not-found] (if-let [e (and m (or (find m k1) (find m k2) (find m k3)))] (val e) not-found)))\n\n#?(:clj\n (defmacro get*\n \"Macro version of `get` that:\n\n 1. Avoids unnecessary evaluation of `not-found`.\n Useful when `not-found` is expensive or contains side-effects.\n\n 2. Supports multiple prioritized keys (k1, k2, etc.). Returns val for\n first key that exists in map. Useful for key aliases or fallbacks.\n\n Equivalent to:\n (cond\n (contains? m k1) (get m k1)\n (contains? m k2) (get m k2)\n ...\n :else not-found)\"\n ([m k ] `(get ~m ~k))\n ([m k not-found] `(if-let [e# (find ~m ~k) ] (val e#) ~not-found))\n ([m k1 k2 not-found] `(let [m# ~m] (if-let [e# (and m# (or (find m# ~k1) (find m# ~k2))) ] (val e#) ~not-found)))\n ([m k1 k2 k3 not-found] `(let [m# ~m] (if-let [e# (and m# (or (find m# ~k1) (find m# ~k2) (find m# ~k3)))] (val e#) ~not-found)))))\n\n#?(:clj\n (defmacro get-in*\n \"Private, don't use this. Micro-optimized macro version of `core/get-in`.\n Avoids unnecessary evaluation of `not-found`.\"\n ([m ks]\n (truss/have? const-form? ks)\n (if (empty? ks)\n m\n (let [[k1 & kn] ks\n gs (gensym)]\n (if kn\n `(let [~gs (get ~m ~k1)] (if ~gs (get-in* ~gs ~kn) nil))\n `(get ~m ~k1)))))\n\n ([m ks not-found]\n (truss/have? const-form? ks)\n (if (empty? ks)\n m\n (let [[k1 & kn] ks\n gs (gensym)]\n (if kn\n `(let [~gs (get ~m ~k1 ::nx)] (if (identical-kw? ~gs ::nx) ~not-found (get-in* ~gs ~kn ~not-found)))\n `(let [~gs (get ~m ~k1 ::nx)] (if (identical-kw? ~gs ::nx) ~not-found ~gs))))))))\n\n(do\n (defn conj-some \"Conjoins each non-nil value.\"\n ([ ] [])\n ([coll ] coll)\n ([coll x ] (if (nil? x) coll (conj coll x)))\n ([coll x & more] (reduce conj-some (conj-some coll x) more)))\n\n (defn conj-when \"Conjoins each truthy value.\"\n ([ ] [])\n ([coll ] coll)\n ([coll x ] (if x (conj coll x) coll))\n ([coll x & more] (reduce conj-when (conj-when coll x) more))))\n\n(comment (conj-some [] :a :b nil :c :d nil false :e))\n\n(defn assoc-some\n \"Assocs each kv to given ?map iff its value is not nil.\"\n ([m k v ] (if-not (nil? v) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-some m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-some (assoc-some m k v) kvs)))\n\n(defn assoc-when\n \"Assocs each kv to given ?map iff its val is truthy.\"\n ([m k v ] (if v (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-when m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-when (assoc-when m k v) kvs)))\n\n(defn assoc-nx\n \"Assocs each kv to given ?map iff its key doesn't already exist.\"\n ([m k v ] (if-not (contains? m k) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-nx m m-kvs))\n ([m k v & kvs] (reduce-kvs assoc-nx (assoc-nx m k v) kvs)))\n\n(defn reassoc-some\n \"Assocs each kv to given ?map if its value is nil, otherwise dissocs it.\"\n ([m k v ] (if-not (nil? v) (assoc m k v) (dissoc m k)))\n ([m m-kvs] (reduce-kv reassoc-some m m-kvs))\n ([m k v & kvs] (reduce-kvs reassoc-some (reassoc-some m k v) kvs)))\n\n(defn reassoc-when\n \"Assocs each kv to given ?map if its value is truthy, otherwise dissocs it.\"\n ([m k v ] (if v (assoc m k v) (dissoc m k)))\n ([m m-kvs] (reduce-kv reassoc-when m m-kvs))\n ([m k v & kvs] (reduce-kvs reassoc-when (reassoc-when m k v) kvs)))\n\n(comment\n (assoc-some {:a :A} {:a false :b :B}) ; => {:a false, :b :B}\n (assoc-when {:a :A} {:a false :b :B}) ; => {:a :A, :b :B}\n (assoc-nx {:a :A} {:a false :b :B}) ; => {:a :A, :b :B}\n (reassoc-some {:a :A} {:a false :b :B}) ; => {:a false, :b :B}\n (reassoc-when {:a :A} {:a nil :b :B}) ; => {:b :B}\n )\n\n(defn vnext [v] (when (> (count v) 1) (core/subvec v 1)))\n(defn vrest [v] (if (> (count v) 1) (core/subvec v 1) []))\n(defn vsplit-last [v] (let [c (count v)] (when (> c 0) [(when (> c 1) (pop v)) (peek v)])))\n(defn vsplit-first [v] (let [c (count v)] (when (> c 0) (let [[v1] v] [v1 (when (> c 1) (core/subvec v 1))]))))\n(defn not-empty-coll [x] (when x (if (coll? x) (not-empty x) x)))\n\n(comment\n (vsplit-first [:a :b :c])\n (vsplit-last [:a :b :c]))\n\n(defn- fsplit-last\n \"Faster (f (vec (butlast xs)) (last x)).\"\n [xs f]\n (if (vector? xs)\n (let [[vn vl] (vsplit-last xs)] (f vn vl))\n (loop [butlast [] xs xs]\n (let [[x1 & xn] xs]\n (if xn\n (recur (conj butlast x1) xn)\n (f butlast x1))))))\n\n(comment (let [v [:a :b :c :d]] (qb 1e6 (fsplit-last v vector) [(butlast v) (last v)])))\n\n(defn takev [n coll] (if (vector? coll) (or (subvec coll :by-len 0 n) []) (into [] (take n) coll)))\n\n(defn distinct-elements?\n #?(:cljs {:tag 'boolean})\n [x] (or (set? x) (= (count x) (count (ensure-set x)))))\n\n(def seq-kvs \"(seq-kvs {:a :A}) => (:a :A).\" (partial reduce concat))\n(defn mapply \"Like `apply` but calls `seq-kvs` on final arg.\"\n [f & args] (apply f (fsplit-last args (fn [xs lx] (concat xs (seq-kvs lx))))))\n\n(comment [(seq-kvs {:a :A :b :B}) (mapply str 1 2 3 {:a :A})])\n\n(defn into-all \"Like `into` but supports multiple \\\"from\\\"s.\"\n ([to from ] (into to from))\n ([to from & more]\n (persistent!\n (reduce (fn [acc in] (reduce conj! acc in))\n (transient to)\n (cons from more)))))\n\n(def ^:private ^:const min-transient-card 11) ; Account for transient overhead\n#?(:clj\n (defmacro ^:no-doc use-transient?\n \"Private, don't use. Micro-optimization.\"\n ([n coll] `(if (>= ~n ~min-transient-card) (editable? ~coll) false))\n ([ coll] `(if (editable? ~coll) (>= (count ~coll) ~min-transient-card) false))))\n\n(defn repeatedly-into\n \"Like `repeatedly` but faster and `conj`s items into given collection.\"\n [coll ^long n f]\n (if (use-transient? n coll)\n (persistent! (reduce-n (fn [acc _] (conj! acc (f))) (transient coll) n))\n (do (reduce-n (fn [acc _] (conj acc (f))) coll n))))\n\n(comment (repeatedly-into [] 100 (partial rand-nth [1 2 3 4 5 6])))\n\n(defn update! [m k f] (assoc! m k (f (get m k))))\n(defn into!\n \"Like `into` but assumes `to!` is a transient, and doesn't call\n `persist!` when done. Useful as a performance optimization in some cases.\"\n #_([ ] [])\n ([to! ] to!)\n ([to! from] (reduce conj! to! from))\n ([to! xform from] (transduce xform conj! to! from)))\n\n(defn xdistinct\n \"Returns a stateful transducer like (core/distinct) that supports an optional\n key function. Retains only items with distinct (keyfn ).\"\n ([ ] (distinct)) ; core now has a distinct transducer\n ([keyfn]\n (fn [rf]\n (let [seen_ (volatile! (transient #{}))]\n (fn\n ([ ] (rf))\n ([acc ] (rf acc))\n ([acc in]\n (let [k (keyfn in)]\n (if (contains? @seen_ k)\n acc\n (do\n (vswap! seen_ conj! k)\n (rf acc in))))))))))\n\n(comment (into [] (xdistinct identity) [1 2 3 1 4 5 2 6 7 1]))\n\n(defn invert-map\n \"Returns given ?map with keys and vals inverted, dropping non-unique vals!\"\n [m]\n (when m\n (if (> (count m) min-transient-card)\n (persistent! (reduce-kv (fn [m k v] (assoc! m v k)) (transient {}) m))\n (do (reduce-kv (fn [m k v] (assoc m v k)) {} m)))))\n\n(defn invert-map!\n \"Like `invert-map` but throws on non-unique vals.\"\n [m]\n (when-let [im (invert-map m)]\n (if (= (count im) (count m)) ; 1-to-1\n im\n (truss/ex-info! \"[encore/invert-map!] Non-unique map vals\"\n {:given (typed-val m)}))))\n\n(defn map-keys\n \"Returns given ?map with (key-fn ) keys.\"\n [key-fn m]\n (when m\n (if (> (count m) min-transient-card)\n (persistent! (reduce-kv (fn [m k v] (assoc! m (key-fn k) v)) (transient {}) m))\n (do (reduce-kv (fn [m k v] (assoc m (key-fn k) v)) {} m)))))\n\n(defn map-vals\n \"Returns given ?map with (val-fn ) vals.\"\n [val-fn m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k v] (assoc! m k (val-fn v))) (transient m) m))\n (do (reduce-kv (fn [m k v] (assoc m k (val-fn v))) m m)))))\n\n(defn filter-keys\n \"Returns given ?map, retaining only keys for which (key-pred ) is truthy.\"\n [key-pred m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k _] (if (key-pred k) m (dissoc! m k))) (transient m) m))\n (do (reduce-kv (fn [m k _] (if (key-pred k) m (dissoc m k))) m m)))))\n\n(defn filter-vals\n \"Returns given ?map, retaining only keys for which (val-pred ) is truthy.\"\n [val-pred m]\n (when m\n (if (use-transient? m)\n (persistent! (reduce-kv (fn [m k v] (if (val-pred v) m (dissoc! m k))) (transient m) m))\n (do (reduce-kv (fn [m k v] (if (val-pred v) m (dissoc m k))) m m)))))\n\n(defn remove-keys \"Returns given ?map, removing keys for which (key-pred ) is truthy.\" [key-pred m] (filter-keys (complement key-pred) m))\n(defn remove-vals \"Returns given ?map, removing keys for which (val-pred ) is truthy.\" [val-pred m] (filter-vals (complement val-pred) m))\n(defn rename-keys\n \"Returns a map like the one given, replacing keys using\n given { } replacements. O(min(n_replacements, n_m)).\"\n [replacements m]\n (cond\n (empty? m) m ; Preserve metadata\n (empty? replacements) m ; ''\n\n (> (count m) (count replacements))\n (persistent!\n (reduce-kv\n (fn [acc old-k new-k]\n (if-let [e (find m old-k)]\n (assoc! (dissoc! acc old-k) new-k (val e))\n (do acc)))\n (transient m)\n replacements))\n\n :else\n (persistent!\n (reduce-kv\n (fn [acc old-k v]\n (if-let [e (find replacements old-k)]\n (assoc! (dissoc! acc old-k) (val e) v)\n (do acc)))\n (transient m)\n (do m)))))\n\n(comment (rename-keys {:a :X} {:a :A :b :B :c :C}))\n\n(defn keys-by\n \"Returns {(f x) x} ?map for xs in `coll`.\"\n [f coll]\n (when-not (empty? coll)\n (persistent!\n (reduce (fn [acc x] (assoc! acc (f x) x))\n (transient {}) coll))))\n\n(comment (keys-by :foo [{:foo 1} {:foo 2}]))\n\n(defn ks-nnil? #?(:cljs {:tag 'boolean}) [ks m] (revery? #(core/some? (get m %)) ks))\n(defn ks= #?(:cljs {:tag 'boolean}) [ks m] (and (== (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks>= #?(:cljs {:tag 'boolean}) [ks m] (and (>= (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks<= #?(:cljs {:tag 'boolean}) [ks m]\n (let [counted-ks (if (counted? ks) ks (set ks))]\n (and\n (<= (count m) (count counted-ks))\n (let [ks-set (ensure-set counted-ks)]\n (reduce-kv (fn [_ k v] (if (contains? ks-set k) true (reduced false))) true m)))))\n\n(declare dissoc-in)\n(defn update-in\n \"Like `core/update-in` but:.\n - Empty ks will return (f m), not act like [nil] ks.\n - Adds support for `not-found`.\n - Adds support for special return vals: `:update/dissoc`, `:update/abort`.\"\n ([m ks f] (update-in m ks nil f))\n ([m ks not-found f]\n (if (empty? ks)\n (f m) ; m would also be a sensible choice, but (f m) is more useful\n (let [old (get-in m ks not-found)\n new (f old)]\n (case new\n (:update/abort :swap/abort) m\n (:update/dissoc :swap/dissoc)\n (fsplit-last ks\n (fn [ks lk]\n (update-in m ks nil\n (fn [v]\n (if v ; Assume associative\n (dissoc v lk)\n :update/abort)))))\n\n (assoc-in m ks new))))))\n\n(defn contains-in?\n #?(:cljs {:tag 'boolean})\n ([coll ks k] (contains? (get-in coll ks) k))\n ([coll ks ]\n (if (empty? ks)\n false\n (fsplit-last ks (fn [ks lk] (contains-in? coll ks lk))))))\n\n(defn dissoc-in\n ([m ks dissoc-k ] (update-in m ks nil (fn [m] (if m (dissoc m dissoc-k) :update/abort))))\n ([m ks dissoc-k & more]\n (update-in m ks nil\n (fn [m]\n (if m\n (reduce dissoc (dissoc m dissoc-k) more)\n :update/abort))))\n\n ([m ks]\n (if (empty? m)\n (do m)\n (fsplit-last ks (fn [ks lk] (dissoc-in m ks lk))))))\n\n(defn ^:no-doc node-paths\n \"Private, don't use.\"\n ([ m ] (node-paths associative? m nil))\n ([node-pred m ] (node-paths node-pred m nil))\n ([node-pred m basis]\n (let [basis (or basis [])]\n (persistent!\n (reduce-kv\n (fn [acc k v]\n (if-not (node-pred v)\n (conj! acc (conj basis k v))\n (let [paths-from-basis (node-paths node-pred v (conj basis k))]\n (reduce (fn [acc in] (conj! acc in)) acc paths-from-basis))))\n (transient [])\n m)))))\n\n(comment\n (node-paths associative? {:a1 :A1 :a2 {:b1 :B1 :b2 {:c1 :C1 :c2 :C2}}} [:h])\n (node-paths [:a1 :a2 [:b1 :b2 [:c1 :c2] :b3] :a3 :a4]))\n\n(defn interleave-all\n \"Like `interleave` but includes all items (i.e. stops when the longest\n rather than shortest coll has been consumed).\"\n ([ ] '())\n ([c1 ] (lazy-seq c1))\n ([c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (cond\n (and s1 s2)\n (cons (first s1) (cons (first s2)\n (interleave-all (rest s1) (rest s2))))\n s1 s1\n s2 s2))))\n\n ([c1 c2 & colls]\n (lazy-seq\n (let [ss (filter identity (map seq (conj colls c2 c1)))]\n (concat (map first ss)\n (apply interleave-all (map rest ss)))))))\n\n(comment (interleave-all [:a1 :a2 :a3] [:b1 :b2] [:c1 :c2 :c3 :c4]))\n\n(defn vinterleave-all\n \"Like `interleave`, but:\n - Returns a vector rather than lazy seq (=> greedy).\n - Includes all items (i.e. stops when the longest rather than\n shortest coll has been consumed).\n\n Single-arity version takes a coll of colls.\"\n ([colls] (if (empty? colls) [] (persistent! (reduce-interleave-all conj! (transient []) colls))))\n ([c1 c2] ; Optimized common case\n (loop [v (transient []) s1 (seq c1) s2 (seq c2)]\n (cond\n (and s1 s2)\n (recur (conj! (conj! v (first s1)) (first s2)) (next s1) (next s2))\n s1 (persistent! (reduce conj! v s1))\n s2 (persistent! (reduce conj! v s2))\n :else (persistent! v))))\n\n ([c1 c2 c3 ] (vinterleave-all [c1 c2 c3]))\n ([c1 c2 c3 & colls] (vinterleave-all (into [c1 c2 c3] colls))))\n\n(comment\n (qb 1e5\n (vec (interleave-all [:a :b :c :d] [:a :b :c :d :e]))\n (vinterleave-all [:a :b :c :d] [:a :b :c :d :e])))\n\n(defn- p! [m] (if (transient? m) (persistent! m) m))\n\n(let [nx (new-object)\n min-transient-card 64 ; Elevated transient overhead here\n dissoc? (fn [v] (case v (:merge/dissoc :swap/dissoc) true false))\n dissoc* (fn [m k] (if (transient? m) (dissoc! m k) (dissoc m k)))]\n\n (defn ^:no-doc merge-with*\n \"Private, don't use. Flexible low-level merge util.\n Optimized for reasonable worst-case performance.\"\n ([nest? f maps] (reduce (partial merge-with* nest? f) nil maps))\n ([nest? f m1 m2]\n (cond\n :let [n2 (count m2)]\n (zero? n2) (or m1 (when (can-meta? m2) (with-meta m2 nil)))\n\n :if-let [e (find m2 :merge/replace?)] ; Undocumented\n (let [m2 (dissoc* m2 :merge/replace?)]\n (if (val e)\n (do m2)\n (merge-with* nest? f m1 m2)))\n\n :let [n1 (count m1)]\n\n (>= n1 n2) ; |m1| >= |m2|: use m1 as base, add everything from m2\n (let [m1* (if (transient? m1) m1 (if (>= n1 min-transient-card) (transient m1) m1))\n assoc* (if (transient? m1*) assoc! assoc)]\n\n (reduce-kv\n (fn [m1* k2 v2] ; m2 kvs into m1\n (let [v1 (get m1 k2 nx)]\n (cond\n (and nest? (map? v1) (map? v2)) (assoc* m1* k2 (p! (merge-with* true f v1 v2)))\n (identical? v1 nx) (assoc* m1* k2 v2)\n (dissoc? v2) (dissoc* m1* k2)\n f\n (let [v3 (f v1 v2)]\n (if (dissoc? v3)\n (dissoc* m1* k2)\n (assoc* m1* k2 v3)))\n :else (assoc* m1* k2 v2))))\n m1* (p! m2)))\n\n :else ; |m2| >= |m1|: use m2 as base, add everything from m1 not in m2\n (let [m2*\n (if (transient? m2)\n m2\n (let [m2 (with-meta m2 (meta m1))] ; Preserve left metadata\n (if (>= n2 min-transient-card)\n (transient m2)\n (do m2))))\n\n assoc* (if (transient? m2*) assoc! assoc)]\n\n (reduce-kv\n (fn [m2* k1 v1] ; m1 kvs into m2\n (let [v2 (get m2 k1 nx)]\n (cond\n (and nest? (map? v1) (map? v2)) (assoc* m2* k1 (p! (merge-with* true f v1 v2)))\n (identical? v2 nx) (assoc* m2* k1 v1)\n (dissoc? v2) (dissoc* m2* k1)\n f\n (let [v3 (f v1 v2)]\n (if (dissoc? v3)\n (dissoc* m2* k1)\n (assoc* m2* k1 v3)))\n :else m2*)))\n m2* (p! m1)))))))\n\n(defn merge\n \"Like `core/merge` but:\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* false nil m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* false nil (merge-with* false nil m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* false nil (cons (merge-with* false nil (merge-with* false nil m1 m2) m3) more)))))\n\n(defn nested-merge\n \"Like `core/merge` but:\n - Recursively merges nested maps.\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* true nil m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* true nil (merge-with* true nil m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* true nil (cons (merge-with* true nil (merge-with* true nil m1 m2) m3) more)))))\n\n(defn merge-with\n \"Like `core/merge-with` but:\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([f ] nil)\n ([f m1 ] (p! m1))\n ([f m1 m2 ] (p! (merge-with* false f m1 m2)))\n ([f m1 m2 m3 ] (p! (merge-with* false f (merge-with* false f m1 m2) m3)))\n ([f m1 m2 m3 & more] (p! (merge-with* false f (cons (merge-with* false f (merge-with* false f m1 m2) m3) more)))))\n\n(defn nested-merge-with\n \"Like `core/merge-with` but:\n - Recursively merges nested maps.\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([f ] nil)\n ([f m1 ] (p! m1))\n ([f m1 m2 ] (p! (merge-with* true f m1 m2)))\n ([f m1 m2 m3 ] (p! (merge-with* true f (merge-with* true f m1 m2) m3)))\n ([f m1 m2 m3 & more] (p! (merge-with* true f (cons (merge-with* true f (merge-with* true f m1 m2) m3) more)))))\n\n(let [mf (fn [x y] x)]\n (defn merge-nx\n \"Like `core/merge` but:\n - Preserves existing values, e.g. (merge-nx ).\n - Supports `:merge/dissoc` vals.\n - Often faster, with much better worst-case performance.\"\n ([ ] nil)\n ([m1 ] (p! m1))\n ([m1 m2 ] (p! (merge-with* false mf m1 m2)))\n ([m1 m2 m3 ] (p! (merge-with* false mf (merge-with* false mf m1 m2) m3)))\n ([m1 m2 m3 & more] (p! (merge-with* false mf (cons (merge-with* false mf (merge-with* false mf m1 m2) m3) more))))))\n\n(comment\n (qb 1e6 ; [182.63 122.16 167.18]\n (core/merge {:a 1} {:a {:b 1}} {:a {:c 1}})\n (merge {:a 1} {:a {:b 1}} {:a {:c 1}})\n (nested-merge {:a 1} {:a {:b 1}} {:a {:c 1}}))\n\n (let [m1 (zipmap (range 32) (range 32))\n m2 (zipmap (range 8) (range 8))\n m3 (zipmap (range 512) (range 512))]\n\n (qb 1e4 ; [449.24 11.25]\n (core/merge m1 m2 m3)\n (merge m1 m2 m3))))\n\n(defalias truss/submap?)\n\n(defn submaps?\n \"Experimental, subject to change without notice.\n Returns true iff `sub_i` is a (possibly nested) submap of `m_i`.\n Uses `submap?`.\"\n [maps subs]\n (if (> (count subs) (count maps))\n false\n (reduce-zip (fn [acc m sub] (or (submap? m sub) (reduced false)))\n true maps subs nil)))\n\n(defn select-nested-keys\n \"Like `select-keys` but supports nested key spec:\n\n (select-nested-keys\n {:a :A :b :B :c {:c1 :C1 :c2 :C2} :d :D} ; `src-map`\n [:a {:c [:c1], :d [:d1 :d2]}]) ; `key-spec`\n\n => {:a :A, :c {:c1 :C1}, :d :D}\n\n Note that as with the `{:d [:d1 :d2]}` spec in the example above,\n if spec expects a nested map but the actual value is not a map,\n the actual value will be included in output as-is.\n\n Has the same behaviour as `select-keys` when `key-spec` is a\n simple vector of keys.\"\n [src-map key-spec]\n (if (or (empty? src-map) (empty? key-spec))\n {} ; Retain `select-keys` nil->{} semantics\n (persistent!\n (reduce\n (fn rf [acc spec-in]\n (if (map? spec-in)\n\n (reduce-kv\n (fn [acc k nested-spec-in]\n (if (contains? src-map k)\n (let [src-val (get src-map k)]\n (if (map? src-val)\n (assoc! acc k (select-nested-keys src-val nested-spec-in))\n (assoc! acc k src-val)))\n acc))\n acc spec-in)\n\n (let [k spec-in]\n (if (contains? src-map k)\n (assoc! acc k (get src-map k))\n (do acc)))))\n\n (transient {}) key-spec))))\n\n(comment\n (qb 1e6 ; [149.67 115.25]\n (select-nested-keys {:a 1 :b 1 :c 1} [:a :c])\n (select-keys {:a 1 :b 1 :c 1} [:a :c])))\n\n;;;; Keywords\n\n(defn ^:no-doc explode-keyword\n \"Private, don't use.\"\n [k] (str/split (as-qname k) #\"[\\./]\"))\n\n(comment (explode-keyword :foo.bar/baz))\n\n(defn ^:no-doc merge-keywords\n \"Private, don't use.\"\n ([ks ] (merge-keywords ks false))\n ([ks omit-slash?]\n (when (seq ks)\n (let [parts\n (reduce\n (fn [acc in]\n (if (nil? in)\n acc\n (reduce conj acc (explode-keyword in))))\n [] ks)]\n\n (when (seq parts)\n (if omit-slash?\n (keyword (str/join \".\" parts))\n (let [ppop (pop parts)]\n (keyword (when (seq ppop) (str/join \".\" ppop))\n (peek parts)))))))))\n\n(comment (merge-keywords [:foo.bar nil \"d.e/k\" :baz.qux/end nil] true))\n\n;;;; Bytes\n\n#?(:cljs (defn ^:no-doc get-ctor \"Private, don't use.\" [name] (when (exists? js/globalThis) (aget js/globalThis name))))\n#?(:cljs\n (do\n (let [encoder (when-let [ctor (get-ctor \"TextEncoder\")] (new ctor))]\n (def str->utf8-ba\n \"Returns UTF-8 encoded Uint8Array for given string.\"\n (if encoder\n (fn [^string s] (.encode encoder s))\n (fn [_] (truss/ex-info! \"`js/TextEncoder` not available\")))))\n\n (let [decoder (when-let [ctor (get-ctor \"TextDecoder\")] (new ctor \"utf-8\"))]\n (def utf8-ba->str\n \"Returns string for given UTF-8 encoded Uint8Array.\"\n (if decoder\n (fn [^js u8s] (.decode decoder u8s))\n (fn [_] (truss/ex-info! \"`js/TextDecoder` not available\")))))))\n\n#?(:clj\n (do\n (def ^:const bytes-class (Class/forName \"[B\"))\n (defn bytes?\n \"Returns true iff given byte[] argument.\"\n ;; Also introduced in Clojure v1.9-alpha5+\n [x] (instance? bytes-class x))\n\n (defn ba=\n \"Returns true iff given two byte[]s with the same content.\"\n [^bytes x ^bytes y] (java.util.Arrays/equals x y))\n\n (defn ba-hash\n \"Returns hash int of given byte[].\"\n ^long [^bytes x] (java.util.Arrays/hashCode x))\n\n (defn str->utf8-ba\n \"Returns UTF-8 encoded byte[] for given String.\"\n {:inline (fn [s] `(let [^String s# ~s] (.getBytes s# java.nio.charset.StandardCharsets/UTF_8)))}\n ^bytes [^String s] (.getBytes s java.nio.charset.StandardCharsets/UTF_8))\n\n (defn utf8-ba->str\n \"Returns String for given UTF-8 encoded byte[].\"\n {:inline (fn [ba] `(let [^\"[B\" ba# ~ba] (String. ba# java.nio.charset.StandardCharsets/UTF_8)))}\n ^String [^bytes ba] (String. ba java.nio.charset.StandardCharsets/UTF_8))\n\n (defn ba-concat ^bytes [^bytes ba1 ^bytes ba2]\n (let [l1 (alength ba1)\n l2 (alength ba2)\n out (byte-array (+ l1 l2))]\n (System/arraycopy ba1 0 out 0 l1)\n (System/arraycopy ba2 0 out l1 l2)\n (do out)))\n\n (defn ba-split [^bytes ba ^long idx]\n (if (zero? idx)\n [nil ba]\n (let [len (alength ba)]\n (when (> len idx)\n [(java.util.Arrays/copyOf ba idx)\n (java.util.Arrays/copyOfRange ba idx len)]))))\n\n (comment\n (String. (ba-concat (.getBytes \"foo\") (.getBytes \"bar\")))\n (let [[x y] (ba-split (.getBytes \"foobar\") 5)] [(String. x) (String. y)]))\n\n (declare reduce-n)\n (defn const-ba=\n \"Constant-time `ba=`.\n Useful to prevent timing attacks, etc.\"\n [ba1 ba2]\n (when (and ba1 ba2)\n (let [bax (byte-array [0 1])\n ^bytes ba1 ba1\n ^bytes ba2 ba2\n l1 (alength ba1)\n l2 (alength ba2)\n lmax (max l1 l2)\n lmin (min l1 l2)]\n\n (reduce-n\n (fn [acc ^long idx]\n (if (>= idx lmin)\n (and (== (aget bax 0) (aget bax 1)) acc)\n (and (== (aget ba1 idx) (aget ba2 idx)) acc)))\n true\n lmax))))))\n\n(comment (const-ba= (byte-array [1 2 3 4]) (byte-array [])))\n\n;;;; Math\n\n(defn approx==\n #?(:cljs {:tag 'boolean})\n ([ x y] (< (Math/abs (- (double x) (double y))) 0.001))\n ([signf x y] (< (Math/abs (- (double x) (double y))) (double signf))))\n\n(comment (qb 1e5 (approx== 0.01 3.141592 (/ 22 7))))\n\n(defn clamp [nmin nmax n] (if (< n nmin) nmin (if (> n nmax) nmax n))) ; Reflects\n(defn clamp-int ^long [nmin nmax n] (let [nmin (long nmin), nmax (long nmax), n (long n)] (if (< n nmin) nmin (if (> n nmax) nmax n))))\n(defn clamp-float ^double [nmin nmax n] (let [nmin (double nmin), nmax (double nmax), n (double n)] (if (< n nmin) nmin (if (> n nmax) nmax n))))\n\n(defn pnum-complement ^double [pnum] (- 1.0 (double pnum)))\n(defn as-pnum-complement ^double [x ] (- 1.0 (as-pnum x)))\n\n#?(:clj\n (do ; These will pass primitives through w/o reflection\n (defmacro <=* [x y z] `(let [y# ~y] (and (<= ~x y#) (<= y# ~z))))\n (defmacro >=* [x y z] `(let [y# ~y] (and (>= ~x y#) (>= y# ~z))))\n (defmacro <* [x y z] `(let [y# ~y] (and (< ~x y#) (< y# ~z))))\n (defmacro >* [x y z] `(let [y# ~y] (and (> ~x y#) (> y# ~z))))\n (defmacro min* [n1 n2] `(let [n1# ~n1 n2# ~n2] (if (> n1# n2#) n2# n1#)))\n (defmacro max* [n1 n2] `(let [n1# ~n1 n2# ~n2] (if (< n1# n2#) n2# n1#)))\n (defmacro clamp* [nmin nmax n] `(let [nmin# ~nmin nmax# ~nmax n# ~n]\n (if (< n# nmin#) nmin# (if (> n# nmax#) nmax# n#))))))\n\n#?(:clj\n (defmacro ^:no-doc multiply\n \"Private, don't use. Expands to nested (* <...>).\"\n [& xs]\n (let [[x1 x2 & xn] xs]\n (cond\n xn `(* (* ~x1 ~x2) (multiply ~@xn))\n x2 `(* ~x1 ~x2)\n x1 x1\n :else 1))))\n\n#?(:clj\n (defmacro ^:no-doc sum\n \"Private, don't use. Expands to nested (+ <...>).\"\n [& xs]\n (let [[x1 x2 & xn] xs]\n (cond\n xn `(+ (+ ~x1 ~x2) (sum ~@xn))\n x2 `(+ ~x1 ~x2)\n x1 x1\n :else 0))))\n\n(comment\n (clojure.walk/macroexpand-all '(multiply 1 2 3 4))\n (clojure.walk/macroexpand-all '(sum 1 2 3 4)))\n\n(defn pow [n exp] (Math/pow n exp))\n(defn abs [n] (if (neg? n) (- n) n))\n\n(defn round\n \"General purpose rounding util.\n Returns given number `n` rounded according to given options:\n - `kind` - \u2208 #{:round :floor :ceil :trunc} (default `:round`)\n - `precision` - Number of decimal places to include (default `nil` => none)\"\n {:arglists '([n] [kind n] [kind precision n])}\n ([n] (round :round nil n))\n ([a1 a2] ; [kind n]\n (if (keyword? a2) ; [n kind] back compatibility\n (round a2 nil a1)\n (round a1 nil a2)))\n\n ([a1 a2 a3] ; [kind precision n]\n (if (keyword? a2) ; [n kind precision] back compatibility\n (round a2 a3 a1)\n (let [n (double a3)\n modifier (when a2 (Math/pow 10.0 a2))\n n* (if modifier (* n ^double modifier) n)\n rounded\n (let [kind a1]\n (case kind\n :round (Math/round n*)\n :floor (Math/floor n*)\n :ceil (Math/ceil n*)\n :trunc (long n*)\n (truss/unexpected-arg! kind\n {:param 'kind\n :context `round\n :expected #{:round :floor :ceil :trunc}})))]\n\n (if-not modifier\n (do (long rounded)) ; Return long\n (/ (double rounded) ^double modifier) ; Return double\n )))))\n\n(do ; Optimized common cases\n (defn perc ^long [n divisor] (Math/round (* (/ (double n) (double divisor)) 100.0)))\n (defn round0 ^long [n] (Math/round (double n)))\n (defn round1 ^double [n] (/ (double (Math/round (* (double n) 10.0))) 10.0))\n (defn round2 ^double [n] (/ (double (Math/round (* (double n) 100.0))) 100.0))\n (defn round3 ^double [n] (/ (double (Math/round (* (double n) 1e3))) 1e3))\n (defn round4 ^double [n] (/ (double (Math/round (* (double n) 1e4))) 1e4))\n (defn roundn ^double [precision n]\n (let [p (Math/pow 10.0 (long precision))]\n (/ (double (Math/round (* (double n) p))) p))))\n\n(defn exp-backoff \"Returns binary exponential backoff value for n<=36.\"\n ([^long n-attempt] (exp-backoff n-attempt nil))\n ([^long n-attempt {:keys [min max factor] :or {factor 1000}}]\n (let [n (if (> n-attempt 36) 36 n-attempt) ; >2^36 excessive\n b (Math/pow 2 n)\n t (long (* (+ b ^double (rand b)) 0.5 (double factor)))\n t (long (if min (if (< t ^long min) min t) t))\n t (long (if max (if (> t ^long max) max t) t))]\n t)))\n\n(comment (exp-backoff 128))\n\n(defn chance\n \"Returns true with given probability \u2208 \u211d[0,1].\"\n {:tag #?(:cljs 'boolean :default nil)\n :inline\n (fn [prob]\n (if (const-form? prob)\n `(< (Math/random) ~(as-pnum! prob))\n `(< (Math/random) (double ~prob))))}\n\n [prob] (< (Math/random) (double prob)))\n\n(comment (chance 1.2))\n\n;;;; Misc\n\n#?(:clj\n (defn class-sym\n \"Returns class name symbol of given argument.\"\n [x] (when x (symbol (.getName (class x))))))\n\n(defn merge-meta [x m] (with-meta x (merge (meta x) m)))\n(defn without-meta [x] (if (meta x) (with-meta x nil) x))\n\n(defn some=\n \"Returns true iff given args are equal AND non-nil.\"\n #?(:cljs {:tag 'boolean})\n ([x ] (core/some? x))\n ([x y ] (and (core/some? x) (= x y)))\n ([x y & more] (and (core/some? x) (= x y) (revery? #(= % x) more))))\n\n(comment (some= :foo :foo nil))\n\n(defn nnil\n \"Returns first non-nil arg, or nil.\"\n ([ ] nil)\n ([x ] x)\n ([x y ] (if (nil? x) y x))\n ([x y z ] (if (nil? x) (if (nil? y) z y) x))\n ([x y z & more] (if (nil? x) (if (nil? y) (if (nil? z) (rfirst core/some? more) z) y) x)))\n\n(comment\n (qb 1e6\n (or nil nil nil false :a)\n (nnil nil nil nil false :a)))\n\n(defn parse-version [x]\n (let [[s-version ?s-qualifier] (str/split (str x) #\"-\" 2)]\n {:version (when-let [s (re-seq #\"\\d+\" s-version)] (mapv as-?int s))\n :qualifier (when-let [s ?s-qualifier] (str/lower-case s))}))\n\n(comment [(parse-version \"40.32.34.8-foo\") (parse-version 10.3)])\n\n#?(:clj\n (defmacro assert-min-encore-version\n \"Version check for dependency conflicts, etc.\"\n [min-version]\n (let [[^long xc ^long yc ^long zc] encore-version\n [ xm ym zm] (if (vector? min-version) min-version (:version (parse-version min-version)))\n [^long xm ^long ym ^long zm] (mapv #(or % 0) [xm ym zm])]\n\n (when-not (or (> xc xm) (and (= xc xm) (or (> yc ym) (and (= yc ym) (>= zc zm)))))\n (let [min-version (str/join \".\" [xm ym zm])\n your-version (str/join \".\" [xc yc zc])]\n (truss/ex-info!\n (str\n \"Insufficient `com.taoensso/encore` version (v\" your-version \" < v\" min-version \"), \"\n \"you may have a dependency conflict. Please see `https://www.taoensso.com/dependency-conflicts` for solutions!\")\n {:min-version min-version\n :your-version your-version}))))))\n\n(comment (assert-min-encore-version [3 10]))\n\n#?(:clj\n (defn get-source\n \"Returns {:keys [ns line column file]} source location given a macro's\n compile-time `&form` and `&env` vals. See also `keep-callsite`.\"\n [macro-form-or-meta macro-env]\n (let [{:keys [line column file]}\n (if (map? macro-form-or-meta)\n (do macro-form-or-meta)\n (meta macro-form-or-meta))\n\n file\n (if-not (:ns macro-env)\n *file* ; Compiling Clj\n (or ; Compiling Cljs\n (when-let [url (and file (truss/catching (jio/resource file)))]\n (truss/catching (.getPath (jio/file url)))\n (do (str url)))\n file))]\n\n (assoc-some\n {:ns (str *ns*)}\n {:line line\n :column column\n :file\n (when (string? file)\n (when-not (contains? #{\"NO_SOURCE_PATH\" \"NO_SOURCE_FILE\" \"\"} file)\n file))}))))\n\n(comment (.getPath (jio/resource \"taoensso/encore.cljc\")))\n\n#?(:clj\n (defn ^:no-doc have-resource?\n \"Private, don't use.\"\n [res-name] (boolean (try (jio/resource res-name) (catch Throwable _)))))\n\n#?(:clj\n (defn ^:no-doc have-class?\n \"Private, don't use.\"\n [class-name]\n (boolean\n (try\n (Class/forName class-name true (.getContextClassLoader (Thread/currentThread)))\n (catch Throwable _)))))\n\n(comment (have-class? \"org.slf4j.Logger\"))\n\n(def ^:const have-core-async?\n \"Is `clojure.core.async` present (not necessarily loaded)?\"\n (compile-if\n (or\n (jio/resource \"clojure/core/async.cljc\")\n (jio/resource \"clojure/core/async.clj\"))\n true\n false))\n\n#?(:clj\n (defmacro threadlocal\n \"Returns `java.lang.ThreadLocal` with given initial value.\"\n ([ ] `(ThreadLocal.))\n ([& init-val]\n `(ThreadLocal/withInitial\n (reify java.util.function.Supplier\n (get [_this#] (do ~@init-val)))))))\n\n(comment\n (let [tl:sdf (threadlocal (SimpleDateFormat. \"yyyy-MM-dd\"))]\n (.format (.get tl:sdf) (Date.))))\n\n;;;; Instants\n;; `inst` - Platform instant (`java.time.Instant` or `js/Date`)\n;; `dt` - `java.util.Date` (Clj only)\n;; `udt` - Milliseconds since Unix epoch (pos/neg)\n\n(defn inst?\n \"Returns true iff given platform instant (`java.time.Instant` or `js/Date`).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? java.time.Instant x)\n :cljs (instance? js/Date x)))\n\n#?(:clj\n (do\n (defn now-inst\n \"Returns current system instant as `java.time.Instant`.\"\n {:inline (fn [] `(java.time.Instant/now))}\n ^java.time.Instant [] (java.time.Instant/now))\n\n (defn now-dt\n \"Returns current system instant as `java.util.Date`.\"\n {:inline (fn [] `(java.util.Date.))}\n ^java.util.Date [] (java.util.Date.))\n\n (defn now-udt\n \"Returns current system instant as milliseconds since Unix epoch.\"\n {:inline (fn [] `(System/currentTimeMillis))}\n ^long [] (System/currentTimeMillis))\n\n (defn now-nano\n \"Returns current value of best-resolution time source as nanoseconds.\"\n {:inline (fn [] `(System/nanoTime))}\n ^long [] (System/nanoTime))\n\n (defn inst->udt\n \"Returns given `java.time.Instant` as milliseconds since Unix epoch.\"\n {:inline (fn [inst] `(.toEpochMilli ~(with-meta inst {:tag 'java.time.Instant})))}\n ^long [^java.time.Instant inst] (.toEpochMilli inst))\n\n (defn udt->inst\n \"Returns given milliseconds since Unix epoch as `java.time.Instant`.\"\n {:inline (fn [msecs-since-epoch] `(java.time.Instant/ofEpochMilli ~msecs-since-epoch))}\n ^java.time.Instant [msecs-since-epoch] (java.time.Instant/ofEpochMilli msecs-since-epoch)))\n\n :cljs\n (do\n (defn now-inst \"Returns current system instant as `js/Date`.\" [] (js/Date.))\n (defn now-dt \"Returns current system instant as `js/Date`.\" [] (js/Date.))\n (defn now-udt \"Returns current system insant as milliseconds since Unix epoch.\" [] (js/Date.now))\n (def now-nano \"Returns current value of best-resolution time source as nanoseconds.\"\n (if-let [perf (oget js-?window \"performance\")\n pf (or\n (oget perf \"now\") (oget perf \"mozNow\") (oget perf \"webkitNow\")\n (oget perf \"msNow\") (oget perf \"oNow\"))]\n (fn [] (Math/floor (* 1e6 (.call pf perf))))\n (fn [] (* 1e6 (js/Date.now)))))\n\n (defn inst->udt \"Returns given `js/Date` as milliseconds since Unix epoch.\" [inst] (.getTime inst))\n (defn udt->inst \"Returns given milliseconds since Unix epoch as `js/Date`.\" [msecs-since-epoch] (js/Date. msecs-since-epoch))))\n\n(defn udt? #?(:cljs {:tag 'boolean}) [x] (int? x))\n\n(defn as-?inst\n \"Returns given ?arg as platform instant (`java.time.Instant` or `js/Date`), or nil.\"\n [x]\n #?(:clj\n (cond\n (instance? java.time.Instant x) x\n (instance? java.util.Date x) (.toInstant ^java.util.Date x)\n (int? x) (java.time.Instant/ofEpochMilli x)\n (string? x) (truss/catching (java.time.Instant/parse ^String x)))\n\n :cljs\n (cond\n (instance? js/Date x) x\n (number? x) (js/Date. x)\n (string? x)\n (let [x (js/Date. x)]\n (when-not (js/isNaN x)\n x)))))\n\n#?(:clj\n (defn as-?dt\n \"Returns given ?arg as `java.util.Date`, or nil.\"\n [x]\n (cond\n (instance? java.time.Instant x) (java.util.Date/from ^java.time.Instant x)\n (instance? java.util.Date x) x\n (int? x) (java.util.Date. ^long x)\n (string? x)\n (truss/catching\n (java.util.Date/from\n (java.time.Instant/parse ^String x))))))\n\n(defn as-?udt\n \"Returns given ?arg as (pos/neg) milliseconds since Unix epoch, or nil.\"\n [x]\n #?(:clj\n (cond\n (int? x) (long x)\n (instance? java.time.Instant x) (.toEpochMilli ^java.time.Instant x)\n (instance? java.util.Date x) (.getTime ^java.util.Date x)\n (string? x)\n (or\n (truss/catching (Long/parseLong x))\n (truss/catching\n (.toEpochMilli\n (java.time.Instant/parse ^String x)))))\n\n :cljs\n (cond\n (instance? js/Date x) (.getTime x)\n (number? x) x\n (string? x)\n (or\n (parse-js-int x)\n #_(let [x (js/Number x)] (when-not (js/isNaN x) x))\n (let [x (js/Date.parse x)] (when-not (js/isNaN x) x))))))\n\n(do (defn as-inst #?(:cljs [x] :clj ^java.time.Instant [x]) (or (as-?inst x) (-as-throw :inst x))))\n#?(:clj (defn as-dt ^java.util.Date [x] (or (as-?dt x) (-as-throw :dt x))))\n(do (defn as-udt #?(:cljs [x] :clj ^long [x]) (or (as-?udt x) (-as-throw :udt x))))\n\n;; Specialist macros to force expanded form (useful for Cljs, other macros, etc.).\n#?(:clj (defmacro ^:no-doc now-inst* \"Prefer `now-inst` when possible.\" [] (if (:ns &env) `(js/Date.) `(java.time.Instant/now))))\n#?(:clj (defmacro ^:no-doc now-dt* \"Prefer `now-dt` when possible.\" [] (if (:ns &env) `(js/Date.) `(java.util.Date.))))\n#?(:clj (defmacro ^:no-doc now-udt* \"Prefer `now-udt` when possible.\" [] (if (:ns &env) `(js/Date.now) `(System/currentTimeMillis))))\n#?(:clj (defmacro ^:no-doc now-nano* \"Prefer `now-nano` when possible.\" [] (if (:ns &env) `(now-nano) `(System/nanoTime))))\n\n(defn format-inst-fn\n \"Experimental, subject to change without notice.\n\n Returns a (fn format [instant]) that:\n - Takes a platform instant (`java.time.Instant` or `js/Date`).\n - Returns a formatted human-readable instant string.\n\n Options:\n `:formatter`\n Clj: `java.time.format.DateTimeFormatter`\n Cljs: `goog.i18n.DateTimeFormat`\n\n Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n e.g.: \\\"2011-12-03T10:15:130Z\\\".\n\n `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n Note that zone may be ignored by some `DateTimeFormatter`s,\n including the default (`DateTimeFormatter/ISO_INSTANT`)!\"\n\n ([] (format-inst-fn nil))\n #?(:cljs\n ([{:keys [formatter]}]\n ;; (instance! goog.i18n.DateTimeFormat formatter) ; Not required here\n (if formatter ; `goog.i18n.DateTimeFormat`\n (fn format-instant [instant] (.format formatter instant))\n (fn format-instant [instant] (.toISOString instant))))\n\n :clj\n ([{:keys [formatter zone]\n :or\n {formatter java.time.format.DateTimeFormatter/ISO_INSTANT\n zone java.time.ZoneOffset/UTC}}]\n\n (instance! java.time.format.DateTimeFormatter formatter\n {:context `format-inst-fn, :param :formatter})\n\n (when zone\n (instance! java.time.ZoneOffset zone\n {:context `format-inst-fn, :param :zone}))\n\n (let [^java.time.format.DateTimeFormatter ; Thread safe\n formatter\n (if-not zone\n formatter\n (.withZone\n ^java.time.format.DateTimeFormatter formatter\n ^java.time.ZoneOffset zone))]\n\n (fn format-instant [^java.time.Instant instant]\n (.format formatter instant))))))\n\n(comment\n ((format-inst-fn\n {:formatter (java.time.format.DateTimeFormatter/ofPattern \"yyyy-MM-dd'T'HH:mm:ssXXX\")\n :zone (.getOffset (java.time.ZonedDateTime/now (java.time.ZoneId/of \"Europe/Berlin\")))})\n (.toInstant (java.util.Date.))))\n\n(let [default-fn (format-inst-fn)]\n (defn format-inst\n \"Takes a platform instant (`java.time.Instant` or `js/Date`) and\n returns a formatted human-readable string in `ISO8601` format\n (`YYYY-MM-DDTHH:mm:ss.sssZ`), e.g. \\\"2011-12-03T10:15:130Z\\\".\"\n {:tag #?(:clj 'String :cljs 'string)}\n [inst] (default-fn inst)))\n\n(comment (format-inst (now-inst)))\n\n;;;; M/secs\n\n(defn secs->ms ^long [secs] (* (long secs) 1000))\n(defn ms->secs ^long [ms] (quot (long ms) 1000))\n(defn ms\n \"Returns ~number of milliseconds in period defined by given args.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n (^long [{:keys [years months weeks days hours mins secs msecs ms]}]\n (round0\n (+\n (if years (* (double years) #=(* 1000 60 60 24 365)) 0.0)\n (if months (* (double months) #=(* 1000 60 60 24 29.53)) 0.0)\n (if weeks (* (double weeks) #=(* 1000 60 60 24 7)) 0.0)\n (if days (* (double days) #=(* 1000 60 60 24)) 0.0)\n (if hours (* (double hours) #=(* 1000 60 60)) 0.0)\n (if mins (* (double mins) #=(* 1000 60)) 0.0)\n (if secs (* (double secs) 1000) 0.0)\n (if msecs (double msecs) 0.0)\n (if ms (double ms) 0.0))))\n\n (^long [k1 v1 ] (ms {k1 v1}))\n (^long [k1 v1 k2 v2 ] (ms {k1 v1, k2 v2}))\n ( [k1 v1 k2 v2 & more] (ms (reduce-kvs assoc {k1 v1 k2 v2} more))))\n\n(defn secs\n \"Returns ~number of seconds in period defined by given args.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n (^long [opts ] (ms->secs (ms opts)))\n (^long [k1 v1 ] (ms->secs (ms {k1 v1})))\n (^long [k1 v1 k2 v2 ] (ms->secs (ms {k1 v1, k2 v2})))\n ( [k1 v1 k2 v2 & more] (ms->secs (ms (reduce-kvs assoc {k1 v1 k2 v2} more)))))\n\n(comment\n (ms :years 88 :months 3 :days 33)\n (secs :years 88 :months 3 :days 33))\n\n#?(:clj\n (defmacro msecs\n \"Macro version of `ms`.\"\n {:arglists '([opts] [& {:as opts :keys [years months weeks days hours mins secs msecs ms]}])}\n ([k1 v1 & more] `(msecs ~(reduce-kvs assoc {k1 v1} (vec more))))\n ([{:keys [years months weeks days hours mins secs msecs ms] :as opts}]\n (truss/have? [:ks<= #{:years :months :weeks :days :hours :mins :secs :msecs :ms}] opts)\n (taoensso.encore/ms opts))))\n\n(comment (macroexpand '(msecs :weeks 3)))\n\n;;;; Strings\n\n(def ^:const a-utf8-str\n \"Example UTF-8 string for tests, etc.\"\n \"Hi \u0cac\u0cbe \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8 10\")\n\n(defn str-builder?\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? StringBuilder x)\n :cljs (instance? goog.string.StringBuffer x)))\n\n(defn str-builder\n \"Returns a new stateful string builder:\n - `java.lang.StringBuilder` for Clj\n - `goog.string.StringBuffer` for Cljs\n\n See also `sb-append`.\"\n #?(:clj (^StringBuilder [ ] (StringBuilder.)))\n #?(:cljs ( [ ] (goog.string.StringBuffer.)))\n #?(:clj (^StringBuilder [init] (if (instance? StringBuilder init) init (StringBuilder. (str init)))))\n #?(:cljs ( [init] (if (instance? goog.string.StringBuffer init) init (goog.string.StringBuffer. (str init))))))\n\n(defn sb-length\n \"Returns given string builder's current length (character count).\"\n #?(:clj ^long [^StringBuilder sb] :cljs [^goog.string.StringBuffer sb])\n #?(:clj (.length sb)\n :cljs (.getLength sb)))\n\n(defn sb-append\n \"Appends given string/s to given string builder. See also `str-builder.`\"\n (#?(:clj ^StringBuilder [^StringBuilder str-builder x]\n :cljs [ str-builder x])\n (if (nil? x)\n (do str-builder)\n (.append str-builder\n #?(:clj (.toString ^Object x)\n :cljs (.toString x)))))\n\n (#?(:clj ^StringBuilder [^StringBuilder str-builder x & more]\n :cljs [ str-builder x & more])\n (reduce\n (fn [acc in] (sb-append acc in))\n (sb-append str-builder x) more)))\n\n(comment (str (sb-append (str-builder \"a\") \"b\" \"c\" \\d)))\n\n(defn ^:no-doc sb-appender\n \"Private, don't use.\n Returns a stateful string-building (fn [x & more]) that:\n - Appends non-nil xs to a string builder, starting with a separator IFF\n string building has started and at least one x is non-nil.\n - Returns the underlying string builder.\"\n ([ ] (sb-appender (str-builder) \" \"))\n ([ separator] (sb-appender (str-builder) separator))\n ([sb separator]\n (let [#?@(:clj [^StringBuilder sb sb])\n sep!\n (let [sep (str separator)\n started?_ (volatile! false)]\n (fn []\n (if @started?_\n (do (.append sb sep) true)\n (do (vreset! started?_ true) false))))]\n\n (fn a-sb-appender\n ([ ] sb) ; Undocumented\n ([x ] (if (nil? x) sb (do (sep!) (sb-append sb x))))\n ([x & more]\n (if (and (nil? x) (revery? nil? more))\n nil\n (do\n (sep!)\n (reduce\n (fn [acc in] (sb-append acc in))\n (sb-append sb x) more))))))))\n\n(comment (str (let [s+ (sb-appender)] (s+ \"x1a\" \"x1b\" \"x1c\") (s+ \"x2a\" \"x2c\") (sb-append (s+) \"\\n\"))))\n\n(defn str-rf\n \"String builder reducing fn.\"\n ([ ] (str-builder))\n ([acc ] (str acc)) ; cf\n ([acc in]\n (if (nil? in)\n acc\n (.append (str-builder acc)\n #?(:clj (.toString ^Object in)\n :cljs (.toString in))))))\n\n(defn- sb-rf\n \"Like `str-rf` but presumes string builder init value.\"\n ([ ] (str-builder))\n ([sb ] (str sb)) ; cf\n ([sb in]\n (if (nil? in)\n sb\n #?(:clj (.append ^StringBuilder sb (.toString ^Object in))\n :cljs (.append sb (.toString in))))))\n\n(comment\n (qb 5e3 ; [264.84 37.73 40.51]\n (do (reduce str (range 512)))\n (do (str (reduce str-rf (range 512))))\n (do (str (reduce sb-rf (str-builder) (range 512))))))\n\n(defn str-join\n \"Faster generalization of `clojure.string/join` with transducer support.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ xs] (str-join nil nil xs))\n ([separator xs] (str-join separator nil xs))\n ([separator xform xs]\n (if (and separator (not= separator \"\"))\n (let [separator (str separator)]\n (if xform\n (transduce (comp xform (interpose separator)) sb-rf (str-builder) xs)\n (transduce (interpose separator) sb-rf (str-builder) xs)))\n\n (if xform\n (do (transduce xform sb-rf (str-builder) xs))\n (str (reduce sb-rf (str-builder) xs))))))\n\n(comment\n (str-join \"x\" (comp (filter #{\"a\" \"c\"}) (map str/upper-case)) [\"a\" \"b\" \"c\"]) ; \"AxC\"\n (str-join \",\" (filter core/some?) [\"a\" \"b\" \"c\" nil \"\" \"d\"]) ; \"a,b,c,,d\"\n (let [xf-some (filter core/some?)]\n (qb 1e6 ; [224.03 134.57 191.69 100.76]\n (str/join \",\" [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \",\" [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \",\" xf-some [\"a\" \"b\" \"c\" nil \"\" \"d\"])\n (str-join \"\" [\"a\" \"b\" \"c\" nil \"\" \"d\"]))))\n\n(defn str-contains?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.contains ^String s ^String substr)\n :cljs (not= -1 (.indexOf s substr))))\n\n(defn str-starts-with?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.startsWith ^String s ^String substr)\n :cljs (zero? (.indexOf s substr))))\n\n(defn str-ends-with?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.endsWith ^String s ^String substr)\n :cljs\n (let [s-len (.-length s)\n substr-len (.-length substr)]\n (when (>= s-len substr-len)\n (not= -1 (.indexOf s substr (- s-len substr-len)))))))\n\n(defn str-?index\n \"Returns (first/last) ?index of substring if it exists within given string.\"\n ([s substr ] (str-?index s substr 0 false))\n ([s substr start-idx] (str-?index s substr start-idx false))\n ([s substr start-idx last?]\n (let [result\n (if last?\n #?(:clj (.lastIndexOf ^String s ^String substr ^long start-idx)\n :cljs (.lastIndexOf s substr start-idx))\n #?(:clj (.indexOf ^String s ^String substr ^long start-idx)\n :cljs (.indexOf s substr start-idx)))]\n\n (when (not= result -1) result))))\n\n(comment (qb 1000 (str-?index \"hello there\" \"there\")))\n\n(defn case-insensitive-str=\n \"Returns true iff given strings are equal, ignoring case.\"\n ;; Implementation detail: compares normalized chars 1 by 1, so often faster\n ;; than naive comparison of normalized strings.\n {:tag #?(:cljs 'boolean :default nil)}\n [s1 s2]\n #?(:clj (.equalsIgnoreCase ^String s1 ^String s2)\n :cljs\n (or\n (identical? s1 s2)\n (let [l1 (.-length s1)\n l2 (.-length s2)]\n (and\n (== l1 l2)\n ;; (= (str/lower-case s1) (str/lower-case s2))\n ;; Still needs bench comparison:\n (reduce-n\n (fn [acc idx]\n (let [c1 (.toLowerCase (.charAt s1 idx))\n c2 (.toLowerCase (.charAt s2 idx))]\n (if (= c1 c2) true (reduced false))))\n true\n 0\n l1))))))\n\n(comment\n (qb 1e6\n (do (= \"-abcdefghijklmnop\" \"_abcdefghijklmnop\"))\n (case-insensitive-str= \"-abcdefghijklmnop\" \"_abcdefghijklmnop\")\n (=\n (str/lower-case \"-abcdefghijklmnop\")\n (str/lower-case \"_abcdefghijklmnop\"))))\n\n(defn norm-str\n \"Returns normalized form of given string.\n `norm-form` is \u2208 #{:nfc :nfkc :nfd :nfkd} (default `:nfc` as per W3C).\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ s] (norm-str :nfc s))\n ([norm-form s]\n (let [norm-form\n (case norm-form\n :nfc #?(:clj java.text.Normalizer$Form/NFC, :cljs \"NFC\")\n :nfkc #?(:clj java.text.Normalizer$Form/NFKC, :cljs \"NFKC\")\n :nfd #?(:clj java.text.Normalizer$Form/NFD, :cljs \"NFD\")\n :nfkd #?(:clj java.text.Normalizer$Form/NFKD, :cljs \"NFKD\")\n (if #?(:clj (instance? java.text.Normalizer$Form norm-form) :cljs false)\n (do norm-form) ; Back compatibility\n (truss/unexpected-arg! norm-form\n {:param 'norm-form\n :context `norm-str\n :expected #{:nfc :nfkc :nfd :nfkd}})))]\n\n #?(:clj (java.text.Normalizer/normalize ^String s norm-form)\n :cljs (.normalize s norm-form)))))\n\n(comment (qb 1e6 (norm-str \"foo\"))) ; 48.52\n\n(defn str-replace\n \"Like `str/replace` but provides consistent Clj/s behaviour.\n\n Workaround for ,\n .\n\n Note that ClojureScript 1.7.145 introduced a partial fix for CLJS-911.\n A full fix could unfortunately not be introduced w/o breaking compatibility\n with the previously incorrect behaviour. CLJS-794 also remains unresolved.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [s match replacement]\n #?(:clj (str/replace s match replacement)\n :cljs\n (cond\n (string? match) ; string -> string replacement\n (.replace s (js/RegExp. (gstr/regExpEscape match) \"g\") replacement)\n ;; (.hasOwnProperty match \"source\") ; No! Ref. \n\n (instance? js/RegExp match) ; pattern -> string/fn replacement\n (let [flags (str \"g\" (when (.-ignoreCase match) \"i\")\n (when (.-multiline match) \"m\")) ; Fix CLJS-794\n replacement ; Fix CLJS-911\n (if (string? replacement)\n replacement\n ;; Note that the merged CLJS-911 fix actually tries to vary\n ;; behaviour here based on the number of matches(!)\n (fn [& args] (replacement (vec args))))]\n (.replace s (js/RegExp. (.-source match) flags) replacement))\n :else (truss/ex-info! (str \"Invalid match arg: \" match)))))\n\n(do\n (defn ^:no-doc nil->str [x] (if (nil? x) \"nil\" x)) ; (undefined? x) check no longer needed for modern Cljs\n\n (defn format*\n {:tag #?(:clj 'String :cljs 'string)}\n (#?(:clj [ fmt args]\n :cljs [ fmt args]) (format* nil->str fmt args))\n (#?(:clj [xform fmt args]\n :cljs [xform fmt args])\n (if (nil? fmt)\n \"\" ; Prevent NPE\n (let [args (if xform (mapv xform args) args)]\n #?(:clj (String/format fmt (to-array args))\n :cljs (apply gstr/format fmt args))))))\n\n (defn format\n \"Like `core/format` but:\n * Returns \\\"\\\" when fmt is nil rather than throwing an NPE.\n * Formats nil as \\\"nil\\\" rather than \\\"null\\\".\n * Provides ClojureScript support via goog.string.format (this has fewer\n formatting options than Clojure's `format`!).\"\n {:tag #?(:clj 'String :cljs 'string)}\n [fmt & args] (format* fmt args)))\n\n(defn str-join-once\n \"Like `string/join` but skips nils and duplicate separators.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [separator coll]\n (let [sep separator]\n (if (str/blank? sep)\n (str (reduce str-rf \"\" coll))\n (let [acc-ends-with-sep?_ (volatile! false)\n acc-empty?_ (volatile! true)]\n (str\n (reduce\n (fn [acc in]\n (let [in (str in)\n in-empty? (= in \"\")\n in-starts-with-sep? (str-starts-with? in sep)\n in-ends-with-sep? (str-ends-with? in sep)\n acc-ends-with-sep? @acc-ends-with-sep?_\n acc-empty? @acc-empty?_]\n\n (vreset! acc-ends-with-sep?_ in-ends-with-sep?)\n (when acc-empty? (vreset! acc-empty?_ in-empty?))\n\n (if acc-ends-with-sep?\n (if in-starts-with-sep?\n (sb-append acc (.substring in 1))\n (sb-append acc in))\n\n (if in-starts-with-sep?\n (sb-append acc in)\n (if (or acc-empty? in-empty?)\n (sb-append acc in)\n (do (sb-append acc sep)\n (sb-append acc in)))))))\n (str-builder)\n coll))))))\n\n(defn path\n {:tag #?(:clj 'String :cljs 'string)}\n [& parts] (str-join-once \"/\" parts))\n\n(comment (path \"foo/\" nil \"/bar\" \"baz/\" \"/qux/\"))\n\n(defn norm-word-breaks\n \"Converts all word breaks of any form and length (including line breaks of any\n form, tabs, spaces, etc.) to a single regular space.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [s] (str/replace (str s) #\"\\s+\" \\space))\n\n(defn count-words ^long [s] (if (str/blank? s) 0 (count (str/split s #\"\\s+\"))))\n(comment (count-words \"Hello this is a test\"))\n\n(defn into-str\n \"Simple Hiccup-like string templating to complement Tempura.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [& xs]\n (str\n (reduce\n (fn rf [acc in]\n (if (sequential? in)\n (reduce rf acc in)\n (sb-append acc (str in))))\n (str-builder)\n xs)))\n\n(comment\n (let [br \"\\n\\n\"]\n (into-str :a :b br :c (for [n (range 5)] [n br])\n (when true [:d :e [:f :g]]))))\n\n(defn const-str=\n \"Constant-time string equality checker.\n Useful to prevent timing attacks, etc.\"\n [s1 s2]\n (when (and s1 s2)\n #?(:clj (const-ba= (str->utf8-ba s1) (str->utf8-ba s2))\n :cljs\n (let [vx [\"0\" \"1\"]\n v1 (vec s1)\n v2 (vec s2)\n n1 (count v1)\n n2 (count v2)\n nmax (max n1 n2)\n nmin (min n1 n2)]\n\n (reduce-n\n (fn [acc idx]\n (if (>= idx nmin)\n (and (= (get vx 0) (get vx 1)) acc)\n (and (= (get v1 idx) (get v2 idx)) acc)))\n true\n nmax)))))\n\n(comment (const-str= \"foo\" \"\"))\n\n(defn ^:no-doc format-num-fn\n \"Private, don't use.\"\n [n-min-fd n-max-fd]\n #?(:clj\n (let [tl:nf\n (threadlocal\n (let [nf (java.text.NumberFormat/getInstance java.util.Locale/US)]\n (when (instance? java.text.DecimalFormat nf)\n (doto ^java.text.DecimalFormat nf\n (.setGroupingSize 3)\n (.setMinimumFractionDigits n-min-fd)\n (.setMaximumFractionDigits n-max-fd)\n (.setDecimalFormatSymbols ; Redundant?\n (doto (java.text.DecimalFormatSymbols.)\n (.setDecimalSeparator \\.)\n (.setGroupingSeparator \\,)))))))]\n\n (fn [n] (.format ^java.text.NumberFormat (.get tl:nf) n)))\n\n :cljs\n (let [nf\n (js/Intl.NumberFormat. \"en-US\"\n #js{:minimumFractionDigits n-min-fd\n :maximumFractionDigits n-max-fd\n :useGrouping true})]\n\n (fn [n] (.format nf n)))))\n\n(comment ((format-num-fn 2 2) 123123123)) ; \"123,123,123.00\"\n\n(let [fmt0 (format-num-fn 0 0)\n fmt2 (format-num-fn 2 2)]\n\n (defn format-nsecs\n \"Returns given nanoseconds (long) as formatted human-readable string.\n Example outputs: \\\"1.00m\\\", \\\"4.20s\\\", \\\"340ms\\\", \\\"822\u03bcs\\\", etc.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [nanosecs]\n (let [ns (double nanosecs)]\n (cond\n (>= ns 6e10) (str (fmt2 (/ ns 6e10)) \"m\")\n (>= ns 1e9) (str (fmt2 (/ ns 1e9)) \"s\")\n (>= ns 1e6) (str (fmt0 (/ ns 1e6)) \"ms\")\n (>= ns 1e3) (str (fmt0 (/ ns 1e3)) \"\u03bcs\")\n :else (str (fmt0 ns) \"ns\")))))\n\n(comment (qb 1e5 (format-nsecs 1.8e9))) ; 22.68\n\n(defn abbreviate-ns\n \"Give any nameable type (string, keyword, symbol), returns the same\n type with at most `n-full` (default 1) unabbreviated namespace parts.\n\n Example:\n (abbreviate-ns 2 :foo.bar/baz) => :foo.bar/baz\n (abbreviate-ns 1 :foo.bar/baz) => :f.bar/baz\n (abbreviate-ns 0 :foo.bar/baz) => :f.b/baz\"\n\n ([ x] (abbreviate-ns 1 x))\n ([n-full x]\n (let [n-full (long (truss/have nat-int? n-full))\n [p1 p2] (str/split (as-qname x) #\"/\")]\n (if-not p2\n x\n (let [name-part p2\n ns-parts (str/split p1 #\"\\.\")\n n-to-abbr (- (count ns-parts) n-full)\n sb\n (reduce-indexed\n (fn [sb ^long idx #?(:clj ^String in :cljs ^string in)]\n (when-not (zero? idx) (sb-append sb \".\"))\n (if (< idx n-to-abbr)\n (sb-append sb (.substring in 0 1))\n (sb-append sb in)))\n (str-builder)\n ns-parts)]\n\n (sb-append sb \"/\")\n (sb-append sb name-part)\n\n (let [s (str sb)]\n (cond\n (keyword? x) (keyword s)\n (symbol? x) (symbol s)\n :else s)))))))\n\n;;;; Name filter\n\n(declare fmemoize)\n\n(let [as-?qname as-?qname\n always (fn always [_in] true)\n never (fn never [_in] false)\n ns? (fn [x] (instance? #?(:clj clojure.lang.Namespace :cljs Namespace) x))\n\n input-str!\n (fn [x]\n (or\n (as-?qname x)\n (cond\n (nil? x) \"\"\n (ns? x) (str x)\n :else\n (truss/unexpected-arg! x\n {:context `name-filter\n :param 'filter-input-arg\n :expected '#{string keyword symbol namespace nil}}))))\n\n wild-str->?re-pattern\n (fn [s]\n (when (str-contains? s \"*\")\n (re-pattern\n (-> (str \"^\" s \"$\")\n (str/replace \"(.*)\" \"__OR_CHILDREN__\")\n (str/replace \".\" \"\\\\.\")\n (str/replace \"*\" \".*\")\n (str/replace \"__OR_CHILDREN__\" \"(\\\\..*)?\")))))\n\n compile->match-fn\n (fn compile->match-fn\n [spec cache?]\n (cond\n (#{:any \"*\"} spec) always\n (#{:none #{} []} spec) never\n (re-pattern? spec) (fn match? [in] (re-find spec (input-str! in)))\n (ns? spec) (recur (str spec) cache?)\n\n :if-let [str-spec (as-?qname spec)]\n (if-let [re-pattern (wild-str->?re-pattern str-spec)]\n (recur re-pattern cache?)\n (fn match? [in] (= str-spec (input-str! in))))\n\n (or (vector? spec) (set? spec))\n (cond\n ;; (empty? spec) never\n ((set spec) \"*\") always\n (= (count spec) 1) (recur (first spec) cache?)\n :else\n (let [[fixed-strs re-patterns]\n (reduce\n (fn [[fixed-strs re-patterns] spec]\n (let [spec (if (ns? spec) (str spec) (as-qname spec))]\n (if-let [re-pattern (if (re-pattern? spec) spec (wild-str->?re-pattern spec))]\n [ fixed-strs (conj re-patterns re-pattern)]\n [(conj fixed-strs spec) re-patterns ])))\n [#{} []]\n spec)\n\n fx-match (not-empty fixed-strs) ; #{\"foo\" \"bar\"}, etc.\n re-match\n (when-let [re-patterns (not-empty re-patterns)] ; [\"foo.*\", \"bar.*\"], etc.\n (let [f (fn match? [in-str] (rsome #(re-find % in-str) re-patterns))]\n (if cache? (fmemoize f) f)))]\n\n (cond!\n (and fx-match re-match)\n (fn match? [in]\n (let [in-str (input-str! in)]\n (or\n (fx-match in-str)\n (re-match in-str))))\n\n fx-match (fn match? [in] (fx-match (input-str! in)))\n re-match (fn match? [in] (re-match (input-str! in))))))\n\n :else\n (truss/unexpected-arg! spec\n {:context `name-filter\n :param 'filter-spec\n :expected '#{string keyword symbol set regex namespace\n {:allow , :disallow }}})))]\n\n (defn name-filter\n \"Given filter `spec`, returns a compiled (fn match? [x]) that:\n - Takes a string, keyword, symbol, or namespace.\n - Returns true iff input matches spec.\n\n Useful for efficiently filtering namespaces, class names, id kws, etc.\n\n Spec may be:\n - A namespace to match exactly\n - A regex pattern to match\n - A str/kw/sym to match, with \\\"*\\\" and \\\"(.*)\\\" as wildcards:\n \\\"foo.*\\\" will match \\\"foo.bar\\\"\n \\\"foo(.*)\\\" will match \\\"foo.bar\\\" and \\\"foo\\\"\n If you need literal \\\"*\\\"s, use #\\\"\\\\*\\\" regex instead.\n\n - A set/vector of the above to match any\n - A map, {:allow :disallow } with specs as the above:\n If present, `:allow` spec MUST match, AND\n If present, `:disallow` spec MUST NOT match.\n\n Spec examples:\n *ns*, #{}, \\\"*\\\", \\\"foo.bar\\\", \\\"foo.bar.*\\\", \\\"foo.bar(.*)\\\",\n #{\\\"foo\\\" \\\"bar.*\\\"}, #\\\"(foo1|foo2)\\\\.bar\\\",\n {:allow #{\\\"foo\\\" \\\"bar.*\\\"} :disallow #{\\\"foo.*.bar.*\\\"}}.\"\n\n [spec]\n (if-not (map? spec)\n (recur {:allow spec :disallow nil})\n (let [cache? (get spec :cache?)\n allow-spec (or (get spec :allow) (get spec :whitelist))\n disallow-spec (or (get spec :disallow) (get spec :blacklist) (get spec :deny))\n\n allow (when-let [as allow-spec] (compile->match-fn as cache?))\n disallow (when-let [ds disallow-spec] (compile->match-fn ds cache?))]\n\n (cond\n (= disallow always) never\n (= allow never) never\n\n (and allow disallow)\n (fn match? [in] (if ^boolean (allow in) (if ^boolean (disallow in) false true) false))\n\n allow (if (= allow always) always (fn match? [in] (if ^boolean (allow in) true false)))\n disallow (if (= disallow never) always (fn match? [in] (if ^boolean (disallow in) false true)))\n :else\n (truss/ex-info! \"[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil\"\n {:allow-spec allow-spec :disallow-spec disallow-spec}))))))\n\n(comment\n (let [nf (name-filter #{\"foo.*\" \"bar\"})] (qb 1e6 (nf \"foo\"))) ; 85.18\n (let [nf (name-filter \"a(.*)\")] [(nf \"a\") (nf \"a.b\") (nf \"aX\")]))\n\n;;;; Printing\n;;\n;; `print-method` ----- (Clj) Affects `pr`, `print`\n;; `IPrintWithWriter` - (Cljs) Affects `pr`, `print`\n;; `print-dup` -------- (Clj) Affects `pr`\n;;\n;; `*print-readably*` - (Clj) Affects `print-method`, default true\n;; `*print-dup` ------- (Clj) Affects `print-method`, default false\n;;\n;; `print` - Human consumption (console or logs, etc.)\n;; `pr` ---- Mixed use, often for serialization (Cljs: default, Clj: with `*print-dup*`)\n;; `str` --- Mixed use, often delegates to `pr-str`\n\n(comment (for [x [\"s\" {:k \"s\"}], f [pr-str print-str str]] (f x))) ; (\"\\\"s\\\"\" \"s\" \"s\" \"{:k \\\"s\\\"}\" \"{:k s}\" \"{:k \\\"s\\\"}\")\n\n(def* ^:const newline \"Single system newline\" #?(:cljs \"\\n\" :clj (System/getProperty \"line.separator\")))\n(def* ^:const newlines \"Double system newline\" (str newline newline))\n\n#?(:clj\n (defmacro ^:no-doc with-default-print-opts\n \"Private, don't use.\"\n [form]\n `(if (and (nil? *print-level*) (nil? *print-length*) *print-readably*)\n ~form ; Optimization, don't pay for unnecessary binding\n (core/binding [*print-level* nil, *print-length* nil, *print-readably* true]\n ~form))))\n\n(defn ^:no-doc x->str\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [allow-readably? allow-dup? add-newline? x]\n #?(:cljs\n (if allow-readably?\n (if add-newline? (prn-str x) (pr-str x))\n (if add-newline? (println-str x) (print-str x)))\n\n :clj\n (if allow-readably?\n (if (string? x)\n (str \"\\\"\" x \"\\\"\" (when add-newline? newline))\n (let [w (java.io.StringWriter.)]\n (if (and allow-dup? *print-dup*)\n (print-dup x w)\n (print-method x w))\n (when add-newline? (.write w newline))\n (.toString w)))\n\n (if (string? x)\n (if add-newline? (str x newline) x)\n (let [w (java.io.StringWriter.)]\n (core/binding [*print-readably* nil] (print-method x w))\n (when add-newline? (.write w newline))\n (.toString w))))))\n\n(defn ^:no-doc xs->str\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [allow-readably? allow-dup? add-newline? xs]\n #?(:cljs\n (if allow-readably?\n (if add-newline? (apply prn-str xs) (apply pr-str xs))\n (if add-newline? (apply println-str xs) (apply print-str xs)))\n\n :clj\n (let [w (java.io.StringWriter.)\n started?_ (volatile! false)]\n\n (if allow-readably?\n (let [dup? (and allow-dup? *print-dup*)]\n (reduce\n (fn [_ x]\n (if (.deref started?_) (.write w \" \") (vreset! started?_ true))\n (if dup?\n (print-dup x w)\n (print-method x w)))\n nil xs))\n\n (core/binding [*print-readably* nil]\n (reduce\n (fn [_ x]\n (if (.deref started?_) (.write w \" \") (vreset! started?_ true))\n (print-method x w))\n nil xs)))\n\n (when add-newline? (.write w newline))\n (.toString w))))\n\n#?(:cljs\n (do\n (def* pr \"Identical to `core/pr`.\" cljs.core/pr)\n (def* prn \"Identical to `core/prn`.\" cljs.core/prn)\n (def* print \"Identical to `core/print`.\" cljs.core/print)\n (def* println \"Identical to `core/println`.\" cljs.core/println))\n\n :clj\n (do\n (defn pr\n \"Like `core/pr` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args] (.write *out* (xs->str true true false args)))\n\n (defn prn\n \"Like `core/prn` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args]\n (let [w *out*]\n (.write w (xs->str true true true args))\n (when *flush-on-newline* (.flush w))))\n\n (defn print\n \"Like `core/print` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args] (.write *out* (xs->str false false false args)))\n\n (defn println\n \"Like `core/println` but faster, and atomic (avoids interleaved content from different threads).\"\n [& args]\n (let [w *out*]\n (.write w (xs->str false false true args))\n (when *flush-on-newline* (.flush w))))))\n\n(defn pr-edn\n \"Prints given arg to an edn string readable with `read-edn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [x] (with-default-print-opts (x->str true false false x)))\n\n(defn ^:no-doc pr-edn*\n \"Private, don't use.\"\n {:tag #?(:clj 'String :cljs 'string)}\n [x] (x->str true false false x))\n\n(comment\n (let [x {:foo \"hello world\"}]\n (qb 1e5 ; [122.91 117.25 104.89 106.39]\n (clojure.core/pr-str x) (pr-edn x) (pr-edn* x) (str x)))\n\n (qb 1e6 ; [778.55 332.36]\n (with-out-str (clojure.core/println :a :b))\n (with-out-str (println :a :b))))\n\n(defn read-edn\n \"Reads given edn string to return a Clj/s value.\"\n {:arglists\n '([s] [{:keys [readers default] :as opts\n :or {readers #?(:clj clojure.core/*data-readers*\n :cljs @cljs.reader/*tag-table*)\n default #?(:clj clojure.core/*default-data-reader-fn*\n :cljs @cljs.reader/*default-data-reader-fn*)}}])}\n\n ([ s] (read-edn nil s))\n ([opts s]\n (cond\n ;; First normalize behaviour for unexpected inputs:\n (or (nil? s) (= s \"\")) nil\n (not (string? s))\n (truss/ex-info! \"[encore/read-edn] Unexpected arg type (expected string or nil)\"\n {:arg (typed-val s)})\n\n :else\n (let [readers (get opts :readers ::dynamic)\n readers\n (if-not (identical-kw? readers ::dynamic)\n readers\n #?(:clj clojure.core/*data-readers*\n :cljs @cljs.reader/*tag-table*))\n\n default (get opts :default ::dynamic)\n default\n (if-not (identical-kw? default ::dynamic)\n default\n #?(:clj clojure.core/*default-data-reader-fn*\n :cljs @cljs.reader/*default-data-reader-fn*))\n\n opts (assoc opts :readers readers :default default)]\n\n #?(:clj (clojure.tools.reader.edn/read-string opts s)\n :cljs (cljs.tools.reader.edn/read-string opts s))))))\n\n(comment\n (core/binding [*data-readers* {'my.tag/foo (fn [x] x)}]\n (read-edn \"#my.tag/foo \\\"text\\\"\")))\n\n#?(:clj\n (defmacro ^:no-doc def-print-impl\n \"Private, don't use. Clj/s: affects `pr`, `print`, etc.\"\n [[sym type] form]\n (if (:ns &env)\n `(extend-protocol ~'IPrintWithWriter ~type (~'-pr-writer [~sym ~'__w ~'_] (~'-write ~'__w ~form)))\n `(defmethod print-method ~type\n [~(with-meta sym {:tag type})\n ~(with-meta '__w {:tag 'java.io.Writer})]\n (.write ~'__w ~form)))))\n\n#?(:clj\n (defmacro ^:no-doc def-print-dup\n \"Private, don't use. Clj only: affects `pr`.\"\n [[sym type] form]\n `(defmethod print-dup ~type\n [~(with-meta sym {:tag type})\n ~(with-meta '__w {:tag 'java.io.Writer})]\n (.write ~'__w ~form))))\n\n#?(:clj (declare hex-ident-str))\n(defn ^:no-doc str-impl\n \"Private, don't use.\"\n ([x class-name ] (str class-name #?@(:clj [ \"@\" (hex-ident-str x)])))\n ([x class-name data] (str class-name \"[\" data #?@(:clj [\" 0x\" (hex-ident-str x)]) \"]\")))\n\n(comment ; Common pattern (encore.stats, telemere.impl, tempel.keys, tufte.impl, carmine.*, etc.)\n (toString [x] (str-impl x \"taoensso.Foo\")) ; \"taoensso.Foo@629c28a6\" - as (str (delay))\n (toString [x] (str-impl x \"taoensso.Foo\") {}) ; \"taoensso.Foo[{...} 0x629c28a6]\" - based on (pr-str (atom {}))\n (def-print-impl [x MyType] (str \"#\" x)) ; \"#taoensso.Foo[{...} 0x629c28a6]\" - as (pr-str (atom {}))\n )\n\n;;;; (S)RNG, etc.\n\n(defn uuid\n \"For Clj: returns a random `java.util.UUID`.\n For Cljs: returns a random UUID string.\n\n Uses strong randomness when possible.\n See also `uuid-str`, `nanoid`, `rand-id-fn`.\"\n {:inline #?(:default nil :clj (fn [] `(java.util.UUID/randomUUID)))}\n #?(:clj (^java.util.UUID [] (java.util.UUID/randomUUID))\n :cljs\n ([]\n (if-let [f (oget js-?crypto \"randomUUID\")]\n (.call f js-?crypto)\n (let [^string quad-hex\n (fn []\n (let [unpadded-hex ^string (.toString (rand-int 65536) 16)]\n (case (count unpadded-hex)\n 1 (str \"000\" unpadded-hex)\n 2 (str \"00\" unpadded-hex)\n 3 (str \"0\" unpadded-hex)\n (do unpadded-hex))))\n\n ver-trip-hex ^string (.toString (bit-or 0x4000 (bit-and 0x0fff (rand-int 65536))) 16)\n res-trip-hex ^string (.toString (bit-or 0x8000 (bit-and 0x3fff (rand-int 65536))) 16)]\n\n (str (quad-hex) (quad-hex) \"-\" (quad-hex) \"-\" ver-trip-hex \"-\" res-trip-hex \"-\"\n (quad-hex) (quad-hex) (quad-hex)))))))\n\n(defn uuid-str\n \"Returns a random UUID string of given length (max 36).\n Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ;; 128 bits of entropy with default length (36)\n ([max-len] (or (substr (uuid-str) :by-len 0 max-len) \"\"))\n ([ ]\n #?(:clj (str (uuid))\n :cljs (uuid))))\n\n(comment (qb 1e6 (uuid-str 5)))\n\n#?(:clj\n (do\n (deftype ReseedingSRNG [^java.security.SecureRandom srng ^:volatile-mutable ^long call-count]\n clojure.lang.IFn\n (invoke [_]\n ;; Regularly supplement seed for extra security\n (if (< call-count 1024)\n (set! call-count (unchecked-inc call-count))\n (do\n (set! call-count 0)\n (.setSeed srng (.generateSeed srng 8))))\n srng))\n\n (comment (let [rsrng (reseeding-srng)] (qb 1e6 (secure-rng) (rsrng)))) ; [48.71 28.9]\n\n (defn ^:no-doc reseeding-srng\n \"Private, don't use. Returns a new stateful `ReseedingSRNG`.\"\n ^ReseedingSRNG []\n (compile-if (java.security.SecureRandom/getInstanceStrong) ; Java 8+, blocking\n (ReseedingSRNG. (java.security.SecureRandom/getInstanceStrong) 0)\n (ReseedingSRNG. (java.security.SecureRandom/getInstance \"SHA1SRNG\") 0)))\n\n (let [tl:rsrng (threadlocal (reseeding-srng))]\n (defn secure-rng\n \"Returns an auto-reseeding thread-local `java.security.SecureRandom`.\n Favours security over performance. May block while waiting on entropy!\"\n ^java.security.SecureRandom [] ((.get tl:rsrng))))\n\n (defn secure-rng-mock!!!\n \"Returns **INSECURE** `java.security.SecureRandom` mock instance backed by\n a seeded deterministic `java.util.Random`. Useful for testing, etc.\"\n ^java.security.SecureRandom [long-seed]\n (let [long-seed (long long-seed)\n insecure-rng (java.util.Random. long-seed)]\n\n (proxy [java.security.SecureRandom] []\n (getAlgorithm [] (str \"INSECURE deterministic, seed=\" long-seed))\n (nextBytes [^bytes ba] (.nextBytes insecure-rng ba)))))))\n\n(defn rand-bytes\n \"Returns a random byte array of given size.\"\n #?(:clj ^bytes [secure? size] :cljs [prefer-secure? size])\n #?(:clj\n (let [ba (byte-array size)]\n (if secure?\n (.nextBytes (secure-rng) ba)\n (.nextBytes (java.util.concurrent.ThreadLocalRandom/current) ba))\n ba)\n\n :cljs\n (let [ba (js/Uint8Array. size)]\n (if-let [crypto (and prefer-secure? js-?crypto)]\n (.getRandomValues crypto ba)\n (dotimes [i size] (aset ba i (Math/floor (* 256 (js/Math.random))))))\n ba)))\n\n(comment (qb 1e6 (rand-bytes false 16) (rand-bytes true 16))) ; [59.66 196.49]\n\n(defn rand-id-fn\n \"Returns a (fn rand-id []) that returns random id strings.\n Options include:\n `:chars` - \u2208 #{ :nanoid :alphanumeric :no-look-alikes ...}\n `:len` - Length of id strings to generate\n `:rand-bytes-fn` - Optional (fn [size]) to return random byte array of given size\n\n See also `uuid-str`, `nano-id`.\"\n [{:keys [chars ^long len rand-bytes-fn]\n :or\n {chars :nanoid\n len 21\n rand-bytes-fn (partial rand-bytes true)}}]\n\n (let [chars\n (case chars\n :alphanumeric \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\" ; 62 chars\n :nanoid \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\" ; 64 chars\n :nanoid-readable \"346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz\" ; 49 chars, no look-alikes\n :numbers \"0123456789\" ; 10 chars\n :alpha-lowercase \"abcdefghijklmnopqrstuvwxyz\" ; 26 chars\n :alpha-uppercase \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" ; 26 chars\n :hex-lowercase \"0123456789abcdef\" ; 16 chars\n :hex-uppercase \"0123456789ABCDEF\" ; 16 chars\n (truss/have string? chars))\n\n nchars (count chars)\n max-char-idx (dec nchars)\n chars\n #?(:clj (.toCharArray (str chars))\n :cljs (object-array chars))\n\n ;; (bit-and ) uniformly maps (256 vals) to\n ;; the valid subset of (<256) *without* bias. Downside is that\n ;; invalid char-idxs need to be discarded, hence the stepping mechanism and\n ;; need for extra bytes when nchars\u2224256.\n mask ; Set all bits except the most significant, Ref. \n (bit-and -1\n (dec\n (bit-shift-left 2\n (int (Math/floor (/ (Math/log (dec nchars)) (Math/log 2)))))))\n\n ;; Calculate size of random byte arrays to fill\n exp-bytes (double (/ (* mask len) nchars))\n stepn (int (max 2 (Math/ceil (* 0.2 exp-bytes)))) ; Used iff step1 insufficient\n step1 ; Size of initial random byte array\n (int\n (if (zero? (int (mod 256 nchars)))\n len ; n|256 => no discarding (steps) needed\n (Math/ceil (* 1.2 exp-bytes))))]\n\n (fn rand-id []\n (let [sb (str-builder)]\n (loop [idx 0, max-idx (dec step1), ^bytes rand-bytes (rand-bytes-fn step1)]\n\n (let [possible-ch-idx (bit-and (aget rand-bytes idx) mask)]\n (when (<= possible-ch-idx max-char-idx)\n (.append sb (aget chars possible-ch-idx))))\n\n (cond\n (== (.length sb) len) (str sb)\n (== idx max-idx) (recur 0 (dec stepn) (rand-bytes-fn stepn))\n :else (recur (unchecked-inc idx) max-idx rand-bytes)))))))\n\n(comment\n (let [f0 nanoid\n f1 (rand-id-fn {:len 21, :chars :nanoid})\n f2 (rand-id-fn {:len 22, :chars :nanoid-readable})]\n (qb 1e6 (uuid-str) (f0) (f1) (f2))) ; [180.49 270.15 295.03 444.04]\n\n ;; Bits of entropy\n (/ (Math/log (Math/pow 16 32)) (Math/log 2)) ; uuid: 128\n (/ (Math/log (Math/pow 64 21)) (Math/log 2)) ; nanoid(21): 126\n (/ (Math/log (Math/pow 49 23)) (Math/log 2)) ; nanoid-readable(23): ~129\n )\n\n(let [chars\n (let [s \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\"]\n #?(:clj (.toCharArray s) :cljs (object-array s)))]\n\n (defn nanoid\n \"Returns a random \\\"Nano ID\\\" of given length, Ref. .\n Faster, variable-length version of (rand-id-fn {:chars :nanoid}).\n 126 bits of entropy with default length (21).\n See also `uuid-str`, `rand-id-fn`.\"\n {:tag #?(:clj 'String :cljs 'string)}\n ([ ] (nanoid true 21))\n ([len] (nanoid true len))\n #?(:clj\n ([secure? len]\n (if secure?\n (com.taoensso.encore.Ids/genNanoId (.get com.taoensso.encore.Ids/SRNG_STRONG) len)\n (com.taoensso.encore.Ids/genNanoId len)))\n\n :cljs\n ([prefer-secure? len]\n (let [sb (str-builder)\n ba (rand-bytes prefer-secure? len)\n max-idx (dec len)]\n\n (loop [idx 0]\n ;; nchars|256 so (bit-and 0x3f) yields uniform\n ;; distribution of chars without need for stepping\n (.append sb (aget chars (bit-and (aget ba idx) 0x3f)))\n (when (< idx max-idx) (recur (unchecked-inc idx))))\n\n (str sb))))))\n\n(comment (qb 1e6 (uuid-str) (nanoid) (nanoid false 21))) ; [203.98 205.53 83.87]\n\n;;;; Hex strings\n\n#?(:clj\n (defn hex-ident-str\n \"Returns hex string of given Object's `identityHashCode` (e.g. \\\"5eeb49f2\\\").\"\n ^String [obj] (Integer/toHexString (System/identityHashCode obj))))\n\n#?(:clj\n (do\n (let [hex-chars (mapv identity \"0123456789abcdef\")\n byte->char-pair\n (fn [^StringBuilder sb b]\n (let [v (bit-and ^byte b 0xFF)]\n (.append sb (hex-chars (bit-shift-right v 4)))\n (.append sb (hex-chars (bit-and v 0x0F)))))]\n\n (defn ba->hex-str\n \"Returns byte[] for given hex string.\"\n ^String [^bytes ba]\n (str (reduce (fn [sb b] (byte->char-pair sb b)) (StringBuilder.) ba))))\n\n (let [char-pair->byte\n (fn [[c1 c2]]\n (let [d1 (Character/digit ^char c1 16)\n d2 (Character/digit ^char c2 16)]\n (unchecked-byte (+ (bit-shift-left d1 4) d2))))]\n\n (defn hex-str->ba\n \"Returns hex string for given byte[].\"\n ^bytes [^String s]\n (if (even? (count s))\n (byte-array (into [] (comp (partition-all 2) (map char-pair->byte)) s))\n (truss/ex-info! \"[encore/hex-str->ba] Invalid hex string (length must be even)\"\n {:given (typed-val s)}))))\n\n ;; TODO Any way to auto select fastest implementation?\n ;; Ref. \n ;; Auto selection seems to cause problems with AOT and/or Graal\n\n #_\n (compile-if com.google.common.io.BaseEncoding\n (let [encoding (.lowerCase (com.google.common.io.BaseEncoding/base16))]\n (defn- ba->hex-str-guava ^String [^bytes ba] (.encode encoding ba))\n (defn- hex-str->ba-guava ^bytes [^String s] (.decode encoding s))))\n\n #_\n (compile-if org.apache.commons.codec.binary.Hex\n (defn- ba->hex-str-commons ^String [^bytes ba] (org.apache.commons.codec.binary.Hex/encodeHexString ba))\n (defn- hex-str->ba-commons ^bytes [^String s] (org.apache.commons.codec.binary.Hex/decodeHex s)))\n\n #_\n (compile-if java.util.HexFormat ; Fastest, needs Java 17+\n (let [hf (java.util.HexFormat/of)]\n (defn- ba->hex-str-hf ^String [^bytes ba] (.formatHex hf ba))\n (defn- hex-str->ba-hf ^bytes [^String s] (.parseHex hf s))))))\n\n(comment\n (vec (-hex-str->ba (-ba->hex-str (byte-array [1 2 3 4 5 6 120 -120 127]))))\n (let [ba (byte-array (range -128 128))]\n (qb 1e4 (hex-str->ba (ba->hex-str ba)))))\n\n;;;; LightAtom\n\n#?(:cljs\n (deftype LightAtom [^:mutable state]\n IDeref (-deref [_ ] state)\n IReset (-reset! [_ new] (set! state new) new)\n ISwap (-swap! [t swap-fn] (t swap-fn))\n IFn\n (-invoke [_ ] state)\n (-invoke [_ swap-fn] (let [new (swap-fn state)] (set! state new) new))\n (-invoke [_ k swap-fn]\n (let [old-map state\n new-val (swap-fn (get old-map k))\n new-map (assoc old-map k new-val)]\n (set! state new-map)\n (do new-val))))\n\n :clj\n (deftype LightAtom [^AtomicReference aref]\n clojure.lang.IDeref (deref [_] (.get aref))\n clojure.lang.IAtom\n (compareAndSet [_ old new] (.compareAndSet aref old new))\n (reset [_ new] (.set aref new) new)\n (swap [t swap-fn] (t swap-fn))\n\n clojure.lang.IAtom2\n (resetVals [t new] (.swapVals t (fn [_] new)))\n (swapVals [_ swap-fn]\n (let [old_ (clojure.lang.Volatile. nil)\n new (.updateAndGet aref (reify UnaryOperator (apply [_ old] (.reset old_ old) (swap-fn old))))]\n [(.deref old_) new]))\n\n clojure.lang.IFn\n (invoke [_ ] (.get aref))\n (invoke [_ swap-fn] (.updateAndGet aref (reify UnaryOperator (apply [_ old] (swap-fn old)))))\n (invoke [_ k swap-fn]\n (let [new-map\n (.updateAndGet aref\n (reify UnaryOperator\n (apply [_ old-map]\n (let [new-val (swap-fn (get old-map k))\n new-map (assoc old-map k new-val)]\n new-map))))]\n (get new-map k)))))\n\n(defn ^:no-doc ^LightAtom latom\n \"Private, don't use. Micro-optimized lightweight `atom`.\n Up to 30% faster than standard atoms, with the same atomicity guarantees.\"\n [init-state]\n (LightAtom.\n #?(:clj (AtomicReference. init-state)\n :cljs init-state)))\n\n(comment\n (let [a (atom 0), v (volatile! 0), l (latom 0)]\n {:deref (qb 2e6 @a @v (l))\n :new (qb 2e6 (atom 0) (volatile! 0) (latom 0))\n :swap (qb 2e6 (swap! a inc) (vswap! v inc) (l inc))\n :cas (qb 2e6 (compare-and-set! a 0 1) (-cas!? l 0 1))})\n\n {:deref [85.75 83.82 63.23], ; ~25% faster\n :new [115.45 83.92 94.42], ; ~20% faster\n :swap [144.15 110.94 99.53], ; ~30% faster\n :cas [102.42 67.85]} ; ~35% faster\n )\n\n#?(:clj\n (let [cache_ (latom {})]\n (defn ^:no-doc caching-satisfies?\n \"Private, don't use.\"\n [protocol x]\n (let [t (if (fn? x) ::fn (type x))]\n (or\n (get (cache_) t)\n (if-let [uncachable-type? (re-find #\"\\d\" (str t))]\n (do (clojure.core/satisfies? protocol x))\n (cache_ t (fn [_] (clojure.core/satisfies? protocol x)))))))))\n\n;;;; Swap API\n;; - reset-in! ; Keys: 0, 1, n (general)\n;; - reset-val! ; Keys: 1 (optimized)\n;;\n;; - reset-in!? ; Keys: 0, 1, n (general)\n;; - reset-val!? ; Keys: 1 (optimized)\n;; - reset!? ; Keys: 0 (optimized)\n;;\n;; - swap-in! ; Keys: 0, 1, n (general)\n;; - swap-val! ; Keys: 1 (optimized)\n;;\n;; - pull-val! ; Keys: 1 (optimized, common transform)\n\n#?(:clj\n (let [atom-tag (compile-if clojure.lang.IAtom 'clojure.lang.IAtom 'clojure.lang.Atom)]\n (defmacro ^:no-doc -cas!?\n \"Private, don't use. Micro-optimized `compare-and-set!`.\"\n [atom_ old-val new-val]\n (if (:ns &env)\n `(compare-and-set! ~atom_ ~old-val ~new-val)\n `(.compareAndSet ~(with-meta atom_ {:tag atom-tag}) ~old-val ~new-val)))))\n\n(comment (let [a (atom nil)] (qb 1e6 (compare-and-set! a 0 1) (-cas!? a 0 1)))) ; [50.06 35.64]\n\n(defn- -reset-k0!\n \"Impln. for 0-key resets\"\n [return atom_ m1]\n (loop []\n (let [m0 @atom_]\n (if (-cas!? atom_ m0 m1)\n (return m0 m0 m1 m1) ; [m0 v0 m1 v1]\n (recur)))))\n\n(defn- -reset-k1!\n \"Impln. for 1-key resets\"\n [return atom_ k not-found v1]\n (loop []\n (let [m0 @atom_\n m1 (assoc m0 k v1)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get m0 k not-found) m1 v1) ; [m0 v0/nx m1 v1]\n (recur)))))\n\n(defn- -reset-kn!\n \"Impln. for n-key resets\"\n [return atom_ ks not-found v1]\n (if-let [ks-seq (seq ks)]\n (if (next ks-seq)\n (loop []\n (let [m0 @atom_\n m1 (assoc-in m0 ks v1)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get-in m0 ks not-found) m1 v1) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (-reset-k1! return atom_ (nth ks 0) not-found v1))\n (-reset-k0! return atom_ v1)))\n\n(let [return (fn [m0 v0 m1 v1] v0)]\n\n (defn reset-in! ; General case\n \"Like `reset!` but supports `update-in` semantics, returns .\"\n ([atom_ val] (-reset-k0! return atom_ val))\n ([atom_ ks val] (-reset-kn! return atom_ ks nil val))\n ([atom_ ks not-found val] (-reset-kn! return atom_ ks not-found val)))\n\n (defn reset-val! ; Optimized k1 case\n \"Like `reset-in!` but optimized for single-key case. Returns .\"\n ([atom_ k val] (-reset-k1! return atom_ k nil val))\n ([atom_ k not-found val] (-reset-k1! return atom_ k not-found val))))\n\n(let [sentinel (new-object)\n return (fn [m0 v0 m1 v1] (not= v0 v1))]\n\n (defn reset-in!? ; Keys: 0, 1, n (general)\n \"Like `reset-in!` but returns true iff the atom's value changed.\"\n ([atom_ val] (-reset-k0! return atom_ val))\n ([atom_ ks val] (-reset-kn! return atom_ ks sentinel val))\n ([atom_ ks not-found val] (-reset-kn! return atom_ ks not-found val)))\n\n (defn reset-val!? ; Keys: 1 (optimized)\n \"Like `reset-in!?` but optimized for single-key case.\n Returns true iff the atom's value changed.\"\n ([atom_ k new-val] (let [v0 (reset-val! atom_ k sentinel new-val)] (not= v0 new-val)))\n ([atom_ k not-found new-val] (let [v0 (reset-val! atom_ k not-found new-val)] (not= v0 new-val)))))\n\n(comment\n (reset-in!? (atom :a) :b)\n (reset-in!? (atom {:a :A}) [:b] :B))\n\n(defn reset!? ; Keys: 0 (optimized)\n \"Atomically swaps value of `atom_` to `val` and returns\n true iff the atom's value changed. See also `reset-in!?`.\"\n [atom_ val]\n (loop []\n (let [old @atom_]\n (if (= old val)\n false ; Micro-optimization\n (if (-cas!? atom_ old val)\n true\n (recur))))))\n\n(comment (let [a (atom nil)] [(reset!? a \"foo\") (reset!? a \"foo\") (reset!? a \"bar\")]))\n\n(do\n (deftype Swapped [newv returnv])\n (defn swapped\n \"For use within the swap functions of `swap-in!` and `swap-val!`.\n\n Allows the easy decoupling of new and returned values. Compare:\n (let [a (atom 0)] [(core/swap! a (fn [old] (inc old) )) @a]) [1 1] ; new=1, return=1\n (let [a (atom 0)] [(swap-in! a (fn [old] (swapped (inc old) old))) @a]) [0 1] ; new=1, return=0\n\n Faster and much more flexible than `core/swap-vals!`, etc.\n Especially useful when combined with the `update-in` semantics of `swap-in!`, etc.\"\n #?(:clj {:inline (fn [new-val return-val] `(taoensso.encore.Swapped. ~new-val ~return-val))})\n ^Swapped [new-val return-val] (taoensso.encore.Swapped. new-val return-val))\n\n (defn ^:no-doc swapped-vec\n \"Private, don't use.\"\n [x]\n (if (instance? Swapped x)\n [(.-newv ^Swapped x) (.-returnv ^Swapped x)]\n [x x]))\n\n (defn swapped?\n \"Returns true iff given `Swapped` argument.\"\n #?(:cljs {:tag 'boolean}\n :clj {:inline (fn [x] `(instance? taoensso.encore.Swapped ~x))})\n [x] (instance? taoensso.encore.Swapped x))\n\n (comment (qb 1e6 (.-newv (swapped \"new\" \"return\"))))) ; 31.69\n\n(defn- return-swapped [^Swapped sw m0 m1]\n (let [rv (.-returnv sw)]\n (case rv\n :swap/changed? (not= m1 m0)\n :swap/new m1\n :swap/old m0\n rv)))\n\n(defn- -swap-k0!\n \"Impln. for 0-key swaps\"\n [return atom_ f]\n (loop []\n (let [m0 @atom_\n s1 (f m0)\n sw? (instance? Swapped s1)\n m1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? m1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 m0 m0 m0)) ; [m0 v0 m1 v1]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 m0 m1 m1)) ; [m0 v0 m1 v1]\n (recur))))))\n\n(defn- -swap-k1!\n \"Impln. for 1-key swaps\"\n [return atom_ k not-found f]\n (if (identical-kw? f :swap/dissoc)\n (loop []\n (let [m0 @atom_\n m1 (dissoc m0 k)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get m0 k not-found) m1 :swap/dissoc) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (loop []\n (let [m0 @atom_\n v0 (get m0 k not-found) ; nx\n s1 (f v0)\n sw? (instance? Swapped s1)\n v1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? v1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m0) ; rv\n (return m0 v0 m0 v0)) ; [m0 v0/nx m1 v1]\n\n (let [m1\n (if (identical-kw? v1 :swap/dissoc)\n (dissoc m0 k)\n (assoc m0 k v1))]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 v0 m1 v1)) ; [m0 v0/nx m1 v1]\n (recur))))))))\n\n(defn- -swap-kn!\n \"Impln. for n-key swaps\"\n [return atom_ ks not-found f]\n (if-let [ks-seq (seq ks)]\n (if (next ks-seq)\n\n (if (identical-kw? f :swap/dissoc)\n (loop []\n (let [m0 @atom_\n m1 (dissoc-in m0 ks)]\n (if (-cas!? atom_ m0 m1)\n (return m0 (get-in m0 ks not-found) m1 :swap/dissoc) ; [m0 v0/nx m1 v1]\n (recur))))\n\n (loop []\n (let [m0 @atom_\n v0 (get-in m0 ks not-found) ; nx\n s1 (f v0)\n sw? (instance? Swapped s1)\n v1 (if sw? (.-newv ^Swapped s1) s1)]\n\n (if (identical-kw? v1 :swap/abort)\n (if sw?\n (return-swapped s1 m0 m0) ; rv\n (return m0 v0 m0 v0)) ; [m0 v0/nx m1 v1]\n\n (let [m1\n (if (identical-kw? v1 :swap/dissoc)\n (dissoc-in m0 ks)\n (assoc-in m0 ks v1))]\n\n (if (-cas!? atom_ m0 m1)\n (if sw?\n (return-swapped s1 m0 m1) ; rv\n (return m0 v0 m1 v1)) ; [m0 v0/nx m1 v1]\n (recur)))))))\n\n (-swap-k1! return atom_ (nth ks 0) not-found f))\n (-swap-k0! return atom_ f)))\n\n(let [return (fn [m0 v0 m1 v1] v1)]\n (defn swap-in! ; Keys: 0, 1, n (general)\n \"Like `swap!` but supports `update-in` semantics and `swapped`.\n Returns or :\n (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2] inc) => 6\n (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2]\n (fn [old] (swapped (inc old) old))) => 5\"\n ([atom_ f] (-swap-k0! return atom_ f))\n ([atom_ ks f] (-swap-kn! return atom_ ks nil f))\n ([atom_ ks not-found f] (-swap-kn! return atom_ ks not-found f)))\n\n (defn swap-val! ; Keys: 1 (optimized)\n \"Like `swap-in!` but optimized for single-key case.\n Returns or :\n (swap-val! (atom {:k 5}) :k inc) => 6\n (swap-val! (atom {:k 5}) :k\n (fn [old] (swapped (inc old) old))) => 5\"\n ([atom_ k f] (-swap-k1! return atom_ k nil f))\n ([atom_ k not-found f] (-swap-k1! return atom_ k not-found f))))\n\n(defn pull-val! ; Keys: 1 (optimized, common transform)\n \"Removes and returns value mapped to key:\n (let [a (atom {:k :v})]\n [(pull-val! a :k) @a]) => [:v {}]\"\n ([atom_ k ] (pull-val! atom_ k nil))\n ([atom_ k not-found]\n (swap-val! atom_ k ::nx\n (fn [v0]\n (if (identical-kw? v0 ::nx)\n (swapped :swap/abort not-found)\n (swapped :swap/dissoc v0))))))\n\n(comment (pull-val! (atom {:a :A}) :b :nx))\n\n;;;; Memoization\n\n#?(:clj\n (defmacro ^:private deref! [delay]\n (if (list-form? delay)\n `(let [~(with-meta 'd {:tag 'clojure.lang.Delay}) ~delay] (.deref ~'d))\n (list '.deref (with-meta delay '{:tag clojure.lang.Delay})))))\n\n(comment (let [d (delay nil)] (qb 1e6 @d (deref! d)))) ; [42.05 23.15]\n(comment (+ ^long (or nil 1) 1)) ; Reflects\n\n(defn memoize-last\n \"Like `core/memoize` but only caches the given fn's latest input.\n Speeds repeated fn calls with the same arguments.\n Great for ReactJS render fn caching, etc.\"\n [f]\n (let [sentinel (new-object)\n call\n #?(:cljs\n (let [in_ (volatile! (new-object))\n out_ (volatile! nil)]\n (fn [in* f0]\n (loop []\n (if (= in* @in_)\n @out_\n (let [out (f0)]\n (vreset! in_ in*)\n (vreset! out_ out)\n out)))))\n\n :clj\n (let [cache_ (java.util.concurrent.atomic.AtomicReference. nil)] ; [in out_]\n (fn [in* f0]\n (deref!\n (loop []\n (let [current (.get cache_)]\n (or\n (when-let [[in out_] current] (when (= in in*) out_))\n (let [dv (delay (f0))] (if (.compareAndSet cache_ current [in* dv]) dv (recur))))))))))]\n\n (fn memoized-fn\n ([ ] (call sentinel (fn [] (f))))\n ([x ] (call x (fn [] (f x))))\n ([x y ] (call [sentinel x y ] (fn [] (f x y))))\n ([x y z ] (call [sentinel x y z ] (fn [] (f x y z))))\n ([x y z & more] (call [sentinel x y z more] (fn [] (apply f x y z more)))))))\n\n(comment (let [f1 (memoize-last (fn [& args] (println [:last args])))] (qb 1e6 (f1 :x)))) ; 36.23\n\n(defn fmemoize\n \"For Clj: fastest possible memoize. Non-racey, 0-7 arity only.\n For Cljs: same as `core/memoize`.\"\n [f]\n #?(:cljs (cljs.core/memoize f)\n :clj\n ;; Non-racey just as fast as racey, and protects against nils in maps\n (let [sentinel (new-object)\n cache0_ (java.util.concurrent.atomic.AtomicReference. nil)\n cache1_ (java.util.concurrent.ConcurrentHashMap.)\n cachen_ (java.util.concurrent.ConcurrentHashMap.)]\n\n (fn\n ([ ] (deref! (or (.get cache0_) (let [dv (delay (f))] (if (.compareAndSet cache0_ nil dv) dv (.get cache0_))))))\n ([x]\n (let [x* (if (identical? x nil) sentinel x)]\n (deref!\n (or\n (.get cache1_ x*)\n (let [dv (delay (f x))]\n (or (.putIfAbsent cache1_ x* dv) dv))))))\n\n ([x1 x2 ] (let [xs [x1 x2] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 ] (let [xs [x1 x2 x3] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 ] (let [xs [x1 x2 x3 x4] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 ] (let [xs [x1 x2 x3 x4 x5] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 x6 ] (let [xs [x1 x2 x3 x4 x5 x6] ] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5 x6)) ] (or (.putIfAbsent cachen_ xs dv) dv))))))\n ([x1 x2 x3 x4 x5 x6 x7] (let [xs [x1 x2 x3 x4 x5 x6 x7]] (deref! (or (.get cachen_ xs) (let [dv (delay (f x1 x2 x3 x4 x5 x6 x7))] (or (.putIfAbsent cachen_ xs dv) dv))))))))))\n\n(comment\n (let [f0 (fmemoize (fn []))\n f1 (fmemoize (fn [x1]))\n f2 (fmemoize (fn [x1 x2]))]\n\n (qb 1e6 ; [23.19 30.11 48.09]\n (f0) (f1 :x1) (f2 :x1 :x2))))\n\n(defn- gc-now? [rate]\n #?(:clj (<= (java.lang.Math/random) ^double rate)\n :cljs (<= (.random js/Math) rate)))\n\n(comment (qb 1e6 (gc-now? 0.5)))\n\n(deftype SimpleCacheEntry [delay ^long udt])\n(deftype TickedCacheEntry [delay ^long udt ^long tick-lru ^long tick-lfu])\n\n(declare top)\n\n(defn cache\n \"Returns a cached version of given referentially transparent function `f`.\n\n Like `core/memoize` but:\n - Often faster, depending on options.\n - Prevents race conditions on writes.\n - Supports cache invalidation by prepending args with:\n - `:cache/del` ; Delete cached item for subsequent args, returns nil.\n - `:cache/fresh` ; Renew cached item for subsequent args, returns new val.\n\n - Supports options:\n - `ttl-ms` ; Expire cached items after many msecs.\n - `size` ; Restrict cache size to many items at the next garbage\n ; collection (GC).\n\n - `gc-every` ; Run garbage collection (GC) approximately once every\n ; many calls to cached fn. If unspecified, GC rate\n ; will be determined automatically based on `size`.\n\n See also `defn-cached`, `fmemoize`, `memoize-last`.\"\n\n ([f] ; De-raced, commands\n #?(:cljs\n (let [cache_ (volatile! {})\n get-sentinel (js-obj)]\n\n (fn cached [& xs]\n (let [x1 (first xs)]\n (case x1\n\n (:cache/del :mem/del)\n (let [xn (next xs)\n x2 (first xn)]\n (if (identical-kw? x2 :mem/all)\n (vreset! cache_ {})\n (vswap! cache_ dissoc xn))\n nil)\n\n (:cache/fresh :mem/fresh)\n (let [xn (next xs)\n v (apply f xn)]\n (vswap! cache_ assoc xn v) v)\n\n (let [v (get @cache_ xs get-sentinel)]\n (if (identical? v get-sentinel)\n (let [v (apply f xs)] (vswap! cache_ assoc xs v) v)\n v))))))\n\n :clj\n (let [nil-sentinel (Object.)\n cache_ (java.util.concurrent.ConcurrentHashMap.)]\n\n (fn\n ([ ] @(or (.get cache_ nil-sentinel)\n (let [dv (delay (f))]\n (or (.putIfAbsent cache_ nil-sentinel dv) dv))))\n\n ([& xs]\n (let [x1 (first xs)]\n (case x1\n\n (:cache/del :mem/del)\n (let [xn (next xs)\n x2 (first xn)]\n (if (identical-kw? x2 :mem/all)\n (.clear cache_)\n (.remove cache_ (or xn nil-sentinel)))\n nil)\n\n (:cache/fresh :mem/fresh)\n @(let [xn (next xs)\n dv (delay (apply f xn))]\n (.put cache_ (or xn nil-sentinel) dv) dv)\n\n @(or (.get cache_ xs)\n (let [dv (delay (apply f xs))]\n (or (.putIfAbsent cache_ xs dv) dv))))))))))\n\n ([{:keys [size ttl-ms gc-every] :as opts} f]\n\n (truss/have? [:ks<= #{:size :ttl-ms :gc-every}] opts)\n (truss/have? [:or nil? pos-num?] size ttl-ms gc-every)\n\n (cond\n size ; De-raced, commands, ttl, gc, max-size\n (let [gc-now? gc-now?\n ticker (counter)\n cache_ (latom nil) ; { }\n latch_ (latom nil) ; Used to pause writes during gc\n ttl-ms (long (or ttl-ms 0))\n ttl? (not (zero? ttl-ms))\n size (long size)\n gc-every (long (or gc-every (clamp-int 1000 16000 size)))]\n\n (fn cached [& args]\n (let [a1 (first args)]\n (case a1\n (:cache/del :mem/del)\n (let [argn (next args)\n a2 (first argn)]\n (if (case a2 (:cache/all :mem/all) true false)\n (reset! cache_ nil)\n (cache_ #(dissoc % argn)))\n nil)\n\n (let [^long tick (ticker) ; Always inc, even on reads\n instant (if ttl? (now-udt) 0)]\n\n (when (and\n ;; We anyway have a tick, so may as well be exact\n ;; (gc-now? gc-rate)\n (== (rem tick gc-every) 0)\n (>= (count (cache_)) (* 1.1 size)))\n\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)\n udt-floor (- instant ttl-ms)]\n\n (when (-cas!? latch_ nil latch)\n ;; First prune ttl-expired stuff\n (when ttl?\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce-kv\n (fn [acc k ^TickedCacheEntry e]\n (if (< (.-udt e) udt-floor)\n (dissoc! acc k)\n acc))\n (transient (or m {}))\n m)))))\n\n ;; Then prune by ascending (worst) tick-sum:\n (let [snapshot (cache_)\n n-to-gc (- (count snapshot) size)]\n\n (when (>= n-to-gc (* 0.1 size))\n (let [ks-to-gc\n (top n-to-gc\n (fn [k]\n (let [e ^TickedCacheEntry (get snapshot k)]\n (+ (.-tick-lru e) (.-tick-lfu e))))\n (keys snapshot))]\n\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce (fn [acc in] (dissoc! acc in))\n (transient (or m {})) ks-to-gc)))))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n\n nil)))\n\n (let [fresh? (case a1 (:cache/fresh :mem/fresh) true false)\n args (if fresh? (next args) args)\n\n _ #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)) :default nil)\n ^TickedCacheEntry e\n (cache_ args\n (fn swap-fn [?e]\n (if (or (nil? ?e) fresh?\n (> (- instant (.-udt ^TickedCacheEntry ?e)) ttl-ms))\n (TickedCacheEntry. (delay (apply f args)) instant tick 1)\n (let [e ^TickedCacheEntry ?e]\n (TickedCacheEntry. (.-delay e) (.-udt e)\n tick (inc (.-tick-lfu e)))))))]\n\n @(.-delay e)))))))\n\n ttl-ms ; De-raced, commands, ttl, gc\n (let [gc-now? gc-now?\n cache_ (latom nil) ; { }\n latch_ (latom nil) ; Used to pause writes during gc\n ttl-ms (long ttl-ms)\n gc-rate\n (let [gce (or gc-every 8e3)]\n (/ 1.0 (long gce)))]\n\n (fn cached [& args]\n (let [a1 (first args)]\n (case a1\n (:cache/del :mem/del)\n (let [argn (next args)\n a2 (first argn)]\n (if (case a2 (:cache/all :mem/all) true false)\n (reset! cache_ nil)\n (cache_ #(dissoc % argn)))\n nil)\n\n (let [instant (now-udt)]\n\n (when (gc-now? gc-rate)\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)]\n (when (-cas!? latch_ nil latch)\n (cache_\n (fn swap-fn [m]\n (persistent!\n (reduce-kv\n (fn [acc k ^SimpleCacheEntry e]\n (if (> (- instant (.-udt e)) ttl-ms)\n (dissoc! acc k)\n acc))\n (transient (or m {}))\n m))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n\n nil)))\n\n (let [fresh? (case a1 (:cache/fresh :mem/fresh) true false)\n args (if fresh? (next args) args)\n _ #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)) :default nil)\n ^SimpleCacheEntry e\n (cache_ args\n (fn swap-fn [?e]\n (if (or (nil? ?e) fresh?\n (> (- instant (.-udt ^SimpleCacheEntry ?e)) ttl-ms))\n (SimpleCacheEntry. (delay (apply f args)) instant)\n ?e)))]\n @(.-delay e)))))))\n\n :else (cache f))))\n\n(defn memoize\n \"Alternative way to call `cache`, provided mostly for back compatibility.\n See `cache` docstring for details.\"\n ;; {:deprecated \"Encore v3.36.0 (2022-11-18)\"}\n ([ f] (cache f))\n ([ ttl-ms f] (cache { :ttl-ms ttl-ms} f))\n ([size ttl-ms f] (cache {:size size :ttl-ms ttl-ms} f)))\n\n(comment\n (do\n (def f0 (fn [& args] (Thread/sleep 600) (rand)))\n (def f1 (clojure.core/memoize f0))\n (def f2 (memoize f0))\n (def f3 (memoize 5000 f0))\n (def f4 (memoize 2 nil f0))\n (def f5 (memoize 2 5000 f0))\n (def f6 (fmemoize f0)))\n\n (qb 1e5 (f1) (f2) (f3) (f4) (f5) (f6)) ; [ 5.4 3.95 16.56 13.98 18.01 3.97]\n (qb 1e5 (f1 :x) (f2 :x) (f3 :x) (f4 :x) (f5 :x) (f6 :x)) ; [14.71 8.96 31.27 37.37 45.42 6.76]\n\n (let [f1 (clojure.core/memoize (fn [] (Thread/sleep 5) (print \"f1\\n\")))\n f2 (memoize (fn [] (Thread/sleep 5) (print \"f2\\n\")))]\n (println \"---\")\n (dotimes [_ 10]\n (future (f2)) ; Never prints >once\n (future (f1))))\n\n (do ; Test GC (monitor JVM memory)\n (defn f1 [_] (vec (repeatedly 1000 #(str (rand)))))\n (def m1 (memoize 500 (ms :days 3) f1))\n (dotimes [n 1e5] (m1 (rand)))))\n\n#?(:clj\n (defmacro defn-cached\n \"Defines a cached function.\n Like (def (cache )), but preserves\n :arglists (arity) metadata as with `defn`:\n\n (defn-cached ^:private my-fn {:ttl-ms 500}\n \\\"Does something interesting, caches resultes for 500 msecs\\\"\n [n]\n (rand-int n))\"\n\n [sym cache-opts & body]\n (let [arglists ; e.g. '([x] [x y])\n (let [[_ sigs] (name-with-attrs sym body)]\n (if (vector? (first sigs))\n (list (first sigs))\n (map first sigs)))\n\n [sym body]\n (name-with-attrs sym body\n {:arglists `'~arglists})]\n\n (truss/have? map? cache-opts)\n (truss/have? [:ks<= #{:ttl-ms :size :gc-every}] cache-opts)\n\n `(def ~sym (cache ~cache-opts (fn ~@body))))))\n\n;;;; Rate limits\n\n(defn ^:no-doc rate-limiter-once-per\n \"Private, don't use.\n Returns a basic rate limiter (fn []) that will return falsey (allow) at most once\n every given number of milliseconds.\n\n Similar to (rate-limiter [1 ]) but significantly faster to construct and run.\n Doesn't support request ids!\"\n [msecs]\n (let [last_ (volatile! 0) ; No specific atomicity needs\n msecs (long msecs)]\n\n (fn a-rate-limiter-once-per\n ([req-id] (truss/ex-info! \"[encore/rate-limiter] Basic rate limiters don't support request ids\" {}))\n ([ ]\n (let [t1 (now-udt*)]\n #?(:clj (if (> (- t1 ^long (.deref last_)) msecs) (do (.reset last_ t1) nil) true)\n :cljs (if (> (- t1 @last_) msecs) (do (vreset! last_ t1) nil) true)))))))\n\n(deftype LimitSpec [^long n ^long ms])\n(deftype LimitEntry [^long n ^long udt0])\n(deftype LimitHits [m worst-lid ^long worst-ms])\n\n(let [limit-spec (fn [n ms] (truss/have? pos-int? n ms) (LimitSpec. n ms))]\n (defn- coerce-limit-spec [x]\n (cond\n (map? x) (reduce-kv (fn [acc lid [n ms]] (assoc acc lid (limit-spec n ms))) {} x)\n (vector? x)\n (reduce\n (fn [acc [n ms ?lid]] ; ?lid for back compatibility\n (assoc acc\n (or ?lid [n ms])\n (limit-spec n ms)))\n {} x)\n\n (truss/unexpected-arg! x\n {:context `rate-limiter\n :param 'rate-limiter-spec\n :expected '#{map vector}}))))\n\n(comment (qb 1e6 (coerce-limit-spec [[10 1000] [20 2000]]))) ; 229.91\n\n(defn rate-limiter\n \"Takes a spec of form\n [ [ ] ...] or ; Unnamed limits\n { [ ]} ; Named limits\n and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n\n Call the returned limiter fn with a request id (any Clojure value!) to\n enforce limits independently for each id.\n\n For example, (limiter-fn ) will return:\n - Falsey when allowed (all limits pass for given IP), or\n - Truthy when disallowed (any limits fail for given IP):\n [ { }]\n\n Or call the returned limiter fn with an extra command argument:\n (limiter-fn :rl/peek }\n\n :if-let ; Basic limiter\n [once-per-msecs\n (and\n (get opts :allow-basic?) ; Undocumented\n (= (count spec) 1)\n (let [^LimitSpec s (val (first spec))]\n (when (== (.-n s) 1) (.-ms s))))]\n\n (if with-state?\n [nil (rate-limiter-once-per once-per-msecs)]\n (do (rate-limiter-once-per once-per-msecs)))\n\n :let\n [latch_ (latom nil) ; Used to pause writes during gc\n reqs_ (latom nil) ; { { }}\n\n {:keys [gc-every] :or {gc-every 1.6e4}} opts ; Undocumented\n\n gc-now? gc-now?\n gc-rate (let [gce (long gc-every)] (/ 1.0 gce))\n\n f1\n (fn [rid ^long delta peek?]\n (let [instant (now-udt)]\n (when (and (not peek?) (gc-now? gc-rate))\n (let [latch #?(:clj (CountDownLatch. 1) :default nil)]\n (when (-cas!? latch_ nil latch)\n (reqs_\n (fn swap-fn [reqs] ; { }\n (persistent!\n (reduce-kv\n (fn [acc rid entries]\n (let [new-entries\n (reduce-kv\n (fn [acc lid ^LimitEntry e]\n (if-let [^LimitSpec s (get spec lid)]\n (if (>= instant (+ (.-udt0 e) (.-ms s)))\n (dissoc acc lid)\n (do acc))\n (dissoc acc lid)))\n entries ; {}\n entries)]\n (if (empty? new-entries)\n (dissoc! acc rid)\n (assoc! acc rid new-entries))))\n (transient (or reqs {}))\n (do reqs)))))\n\n #?(:clj\n (do\n (reset! latch_ nil)\n (.countDown latch)))\n nil)))\n\n ;; Need to atomically check if all limits pass before\n ;; committing to any n increments:\n (loop []\n (let [reqs (reqs_) ; { }\n entries (get reqs rid) ; { }\n ?hits ; ?LimitHits\n (when entries\n (reduce-kv\n (fn [^LimitHits acc lid ^LimitEntry e]\n (if-let [^LimitSpec s (get spec lid)]\n (if (<= (+ (.-n e) delta) (.-n s))\n acc\n (let [tdelta (- (+ (.-udt0 e) (.-ms s)) instant)]\n (if (<= tdelta 0)\n acc\n (cond\n (nil? acc) (LimitHits. {lid tdelta} lid tdelta)\n\n (> tdelta (.-worst-ms acc))\n (LimitHits. (assoc (.-m acc) lid tdelta) lid tdelta)\n\n :else\n (LimitHits. (assoc (.-m acc) lid tdelta)\n (.-worst-lid acc)\n (.-worst-ms acc))))))\n acc))\n nil\n entries))]\n\n (if (or peek? ?hits)\n ;; No action (peeking, or hit >= 1 spec)\n (when-let [^LimitHits h ?hits]\n [(.-worst-lid h) (.-worst-ms h) (.-m h)])\n\n ;; Passed all limits, ready to commit increments:\n (if-let [l (latch_)]\n #?(:clj (do (.await ^CountDownLatch l) (recur)) :default nil)\n (let [new-entries\n (reduce-kv\n (fn [acc lid ^LimitSpec s]\n (assoc acc lid\n (if-let [^LimitEntry e (get entries lid)]\n (let [udt0 (.-udt0 e)]\n (if (>= instant (+ udt0 (.-ms s)))\n (LimitEntry. delta instant)\n (LimitEntry. (+ delta (.-n e)) udt0)))\n (do (LimitEntry. delta instant)))))\n entries\n spec)]\n\n (if (-cas!? reqs_ reqs (assoc reqs rid new-entries))\n nil\n (recur)))))))))\n\n limiter-fn\n (fn a-rate-limiter\n ([ ] (f1 nil +1 false))\n ([ req-id] (f1 req-id +1 false))\n ([cmd req-id]\n (case cmd\n (:rl/reset :limiter/reset)\n (do\n (if (case req-id (:rl/all :limiter/all) true false)\n (reset! reqs_ nil)\n (reqs_ #(dissoc % req-id)))\n nil)\n\n (:rl/peek :limiter/peek) (f1 req-id +1 true)\n\n (if (number? cmd) ; Undocumented arb delta\n (f1 req-id (long cmd) false)\n (truss/unexpected-arg! cmd\n {:context `rate-limiter\n :param 'rate-limiter-command\n :expected #{:rl/reset :rl/peek}\n :req-id req-id})))))]\n\n :always\n (if with-state?\n [reqs_ limiter-fn]\n (do limiter-fn)))))\n\n(comment\n (let [[s_ rl1] (rate-limiter {:with-state? true} {:2s [1 2000] :5s [2 5000]})]\n (def s_ s_)\n (def rl1 rl1))\n\n (qb 1e6 (rl1)) ; 99.78\n (do (dotimes [n 2e6] (rl1 (str (rand)))) (count @s_)) ; Test GC\n\n (let [rl1 (rate-limiter-once-per 250)\n rl2 (rate-limiter {:allow-basic? true} {\"1/250\" [1 250]})\n rl3 (rate-limiter {} {\"1/250\" [1 250]})]\n\n (qb 1e6 ; [33.15 33.15 80.02]\n (rl1) (rl2) (rl3))))\n\n;;;; Counters\n\n#?(:clj\n (deftype Counter [^java.util.concurrent.atomic.AtomicLong n_]\n clojure.lang.IDeref (deref [_] (.get n_))\n clojure.lang.IFn\n (invoke [_ ] (.getAndIncrement n_))\n (invoke [_ add] (.getAndAdd n_ (long add)))\n (invoke [_ action n]\n (let [n (long n)]\n (case action\n (:add) (do (.addAndGet n_ n) nil)\n (:set) (do (.set n_ n) nil)\n (:set= :set-get) (do (.set n_ n) n)\n (:=set :get-set) (do (.getAndSet n_ n))\n (:=+ :get-add) (do (.getAndAdd n_ n))\n (:+= :add-get) (do (.addAndGet n_ n))))))\n\n :cljs\n (deftype Counter [^:mutable c]\n IDeref (-deref [_] c)\n IFn\n (-invoke [_ ] (let [o c] (set! c (inc c)) o))\n (-invoke [_ add] (let [o c] (set! c (+ c add)) o))\n (-invoke [_ action n]\n (case action\n (:add) (do (set! c (+ c n)) nil)\n (:set) (do (set! c n) nil)\n (:set= :set-get) (do (set! c n) n)\n (:=set :get-set) (let [o c] (set! c n) o)\n (:=+ :get-add) (let [o c] (set! c (+ c n)) o)\n (:+= :add-get) (do (set! c (+ c n)) c)))))\n\n(defn counter\n \"Returns a fast atomic `Counter` with `init` initial integer value with:\n - @counter => Return current val\n - (counter) => Add 1 and return old val\n - (counter n) => Add n and return old val\n - (counter action n) => Experimental, action \u2208\n {:add :set :set-get :get-set :get-add :add-get}.\"\n ([ ] (counter 0))\n ([init]\n #?(:clj (Counter. (java.util.concurrent.atomic.AtomicLong. (long init)))\n :cljs (Counter. (long init)))))\n\n(comment (let [c (counter)] (dotimes [_ 100] (c 2)) (c)))\n\n(defn- rc-deref [^long msecs ts_ n-skip_ gc-fn]\n (let [t1 (now-udt)\n ^long n-skip0 (n-skip_)\n ts (ts_)\n n-total (count ts)\n ^long n-window\n (reduce\n (fn [^long n ^long t0]\n (if (<= (- t1 t0) msecs)\n (inc n)\n (do n)))\n 0\n (core/subvec ts n-skip0))\n\n n-skip1 (- n-total n-window)]\n\n ;; (println {:n-total n-total :n-window n-window :n-skip0 n-skip0 :n-skip1 n-skip1})\n (when (< n-skip0 n-skip1)\n (if (-cas!? n-skip_ n-skip0 n-skip1)\n (when (> n-skip1 10000) ; Time to gc, amortised cost\n (gc-fn n-skip1))))\n\n n-window))\n\n#?(:clj\n (deftype RollingCounter [^long msecs ts_ n-skip_ p_]\n clojure.lang.IFn\n (invoke [this]\n (when-let [p (p_)] @p) ; Block iff latched\n (let [t1 (now-udt)] (ts_ #(conj % t1)))\n this ; Return to allow optional deref\n )\n\n clojure.lang.IDeref\n (deref [_]\n (when-let [p (p_)] @p) ; Block iff latched\n (rc-deref msecs ts_ n-skip_\n (fn gc [n-skip1]\n (let [p (promise)]\n (if (-cas!? p_ nil p) ; Latch\n (do\n (ts_ #(core/subvec % n-skip1))\n (reset! n-skip_ 0)\n (reset! p_ nil)\n (deliver p nil))))))))\n\n :cljs\n (deftype RollingCounter [^long msecs ts_ n-skip_]\n IFn\n (-invoke [this]\n (let [t1 (now-udt)] (ts_ #(conj % t1)))\n this ; Return to allow optional deref\n )\n\n IDeref\n (-deref [_]\n (rc-deref msecs ts_ n-skip_\n (fn gc [n-skip1]\n (ts_ #(core/subvec % n-skip1))\n (reset! n-skip_ 0))))))\n\n(defn rolling-counter\n \"Experimental, subject to change without notice.\n Returns a RollingCounter that you can:\n - Invoke to increment count in last `msecs` window and return RollingCounter.\n - Deref to return count in last `msecs` window.\"\n [msecs]\n (RollingCounter.\n (long (truss/have pos-int? msecs))\n (latom [])\n (latom 0)\n #?(:clj (latom nil))))\n\n(comment\n (def myrc (rolling-counter 4000))\n (dotimes [_ 100000] (myrc))\n @myrc)\n\n;;;; Rolling sequentials\n\n(defn rolling-vector\n \"Returns a stateful fn of 2 arities:\n [ ] => Returns current sub/vector in O(1).\n [x] => Adds `x` to right of sub/vector, maintaining length <= `nmax`.\n Returns current sub/vector.\n\n Useful for maintaining limited-length histories, etc.\n See also `rolling-list` (Clj only).\"\n ([nmax ] (rolling-vector nmax nil))\n ([nmax {:keys [gc-every init-val]\n :or {gc-every 16e3}}]\n\n (let [nmax (long nmax)\n acc_ (latom (vec init-val))\n gc-every (when gc-every (long gc-every))\n ticker (when gc-every (counter))\n latch_ (when gc-every (latom nil))]\n\n (fn rolling-vec-fn\n ([ ] (acc_))\n ([x]\n (when gc-every\n #?(:clj (when-let [l (latch_)] (.await ^CountDownLatch l)))\n\n (let [^long tick (ticker)]\n (when-let [gc-now? (== (rem tick ^long gc-every) 0)]\n #?(:cljs (acc_ (fn swap-fn [sv] (into [] sv)))\n :clj\n (let [latch (CountDownLatch. 1)]\n (when (-cas!? latch_ nil latch)\n (acc_ (fn swap-fn [sv] (into [] sv)))\n (reset! latch_ nil)\n (.countDown latch)))))))\n\n (acc_\n (fn swap-fn [acc]\n (let [new (conj acc x)]\n (if (> (count new) nmax)\n (core/subvec new 1)\n (do new))))))))))\n\n(comment (let [rv (rolling-vector 3), c (counter)] [(qb 1e6 (rv (c))) (rv)])) ; 189.66\n\n#?(:clj\n (defn rolling-list\n \"Returns a stateful fn of 2 arities:\n [ ] => Returns current array in O(n).\n [x] => Adds `x` to right of list, maintaining length <~ `nmax`.\n Returns nil. Very fast (faster than `rolling-vector`).\n\n Useful for maintaining limited-length histories, etc.\n See also `rolling-vector`.\"\n ([nmax ] (rolling-list nmax nil))\n ([nmax {:keys [init-val]}]\n (let [nmax (long nmax)\n ^java.util.LinkedList ll\n (if init-val\n (java.util.LinkedList. init-val)\n (java.util.LinkedList.))]\n\n (fn rolling-list-fn\n ([ ] (.toArray ll))\n ([x]\n (do (.addLast ll x))\n (when (> (.size ll) nmax) (.removeFirst ll))\n nil))))))\n\n(comment (let [rl (rolling-list 3), c (counter)] [(qb 1e6 (rl (c))) (vec (rl))])) ; 98.36\n\n;;;; Date & time\n\n#?(:clj\n (let [get-tl\n (fmemoize\n (fn [pattern locale timezone]\n (threadlocal\n (let [pattern\n (case pattern\n :iso8601 \"yyyy-MM-dd'T'HH:mm:ss.SSSX\"\n :rss2 \"EEE, dd MMM yyyy HH:mm:ss z\"\n pattern)\n\n locale\n (if (identical-kw? locale :jvm-default)\n nil #_(Locale/getDefault)\n locale)\n\n timezone\n (if (identical-kw? timezone :jvm-default)\n nil #_(TimeZone/getDefault)\n (if (identical-kw? timezone :utc)\n (TimeZone/getTimeZone \"UTC\")\n timezone))\n\n ^SimpleDateFormat sdf\n (if locale\n (SimpleDateFormat. ^String pattern ^Locale locale)\n (SimpleDateFormat. ^String pattern))]\n\n (when timezone (.setTimeZone sdf ^TimeZone timezone))\n (do sdf)))))]\n\n (defn simple-date-format*\n \"Returns a thread-local `java.text.SimpleDateFormat`.\"\n ^java.text.SimpleDateFormat [pattern locale timezone]\n (.get ^ThreadLocal (get-tl pattern locale timezone)))\n\n (defn simple-date-format\n \"Returns a thread-local `java.text.SimpleDateFormat`.\"\n ^java.text.SimpleDateFormat [pattern & [{:keys [locale timezone] :as opts}]]\n (.get ^ThreadLocal (get-tl pattern locale timezone)))))\n\n(comment (qb 1e5 (.format (simple-date-format \"yyyy-MMM-dd\") (Date.))))\n\n;;;; Sorting\n\n#?(:cljs (defn rcompare \"Reverse comparator.\" [x y] (compare y x))\n :clj (defn rcompare \"Reverse comparator.\"\n {:inline (fn [x y] `(. clojure.lang.Util compare ~y ~x))}\n [x y] (compare y x)))\n\n(defn sortv\n \"Like `core/sort` but:\n - Returns a vector.\n - `comparator` can be `:asc`, `:desc`, or an arbitrary comparator.\n - An optional `keyfn` may be provided, as in `core/sort-by`.\"\n ;; A little faster than `(vec (sort ...))` when `coll` very large\n ([ coll] (sortv nil :asc coll))\n ([ comparator coll] (sortv nil comparator coll))\n ([?keyfn comparator coll]\n (if-not (seq coll)\n []\n (let [comparator\n (case comparator\n :asc compare\n (:dsc :desc) (fn [x y] (compare y x))\n comparator)\n\n comparator\n (if-let [kfn (when (not= ?keyfn identity) ?keyfn)]\n (fn [x y] (comparator (kfn x) (kfn y)))\n comparator)\n\n a (to-array coll)]\n\n #?(:clj (java.util.Arrays/sort a ^java.util.Comparator comparator)\n :cljs (garray/stableSort a (fn->comparator comparator)))\n\n (with-meta (vec a) (meta coll))))))\n\n(comment\n (sortv second :desc [[1 10] [2 9] [3 8] [4 7] [5 6]])\n (let [v (vec (range 1e5))] (qb 1e2 (vec (sort v)) (sortv v) (sortv :desc v))))\n\n(let [sentinel (new-object)\n nil->sentinel (fn [x] (if (nil? x) sentinel x))\n sentinel->nil (fn [x] (if (identical? x sentinel) nil x))]\n\n (defn reduce-top\n \"Reduces the top `n` items from `coll` of N items.\n Clj impln is O(N.logn) vs O(N.logN) for (take n (sort-by ...)).\"\n ([n rf init coll] (reduce-top n identity compare rf init coll))\n ([n keyfn rf init coll] (reduce-top n keyfn compare rf init coll))\n ([n keyfn cmp rf init coll]\n (let [coll-size (count coll)\n n (long (min coll-size (long n)))]\n\n (if-not (pos? n)\n init\n #?(:cljs ; Naive implementation\n (transduce (take n) (completing rf) init\n (sort-by keyfn cmp coll))\n\n :clj\n (let [pq\n (java.util.PriorityQueue. coll-size\n (fn [x y] (cmp\n (keyfn (sentinel->nil x))\n (keyfn (sentinel->nil y)))))]\n\n (run! #(.offer pq (nil->sentinel %)) coll)\n (reduce-n (fn [acc _] (rf acc (sentinel->nil (.poll pq))))\n init n))))))))\n\n(defn top-into\n \"Conjoins the top `n` items from `coll` into `to` using `reduce-top`.\"\n ([to n coll] (top-into to n identity compare coll))\n ([to n keyfn coll] (top-into to n keyfn compare coll))\n ([to n keyfn cmp coll]\n (if (use-transient? ^long n to)\n (persistent! (reduce-top n keyfn cmp conj! (transient to) coll))\n (do (reduce-top n keyfn cmp conj to coll)))))\n\n(defn top\n \"Returns a sorted vector of the top `n` items from `coll` using `reduce-top`.\"\n ([n coll] (top-into [] n identity compare coll))\n ([n keyfn coll] (top-into [] n keyfn compare coll))\n ([n keyfn cmp coll] (top-into [] n keyfn cmp coll)))\n\n(comment [(top 20 [2 3 5 3 88 nil]) (sort [2 3 5 3 88 nil])])\n\n;;;; IO\n\n#?(:clj\n (defn slurp-resource\n \"Returns slurped named resource on classpath, or nil when resource not found.\"\n [rname]\n (when-let [r (jio/resource rname)]\n (try\n (slurp (jio/reader r))\n (catch Exception e\n (truss/ex-info! \"[encore/slurp-resource] Slurp failed\" {:rname rname} e))))))\n\n#?(:clj\n (defn get-file-resource-?last-modified\n \"Returns last-modified time for file backing given named resource, or nil\n if file doesn't exist.\"\n [rname]\n (when-let [file (try (->> rname jio/resource jio/file) (catch Exception _))]\n (.lastModified ^java.io.File file))))\n\n#?(:clj\n (def file-resources-modified?\n \"Returns true iff any files backing given named resources have changed since last call.\"\n (let [udts_ (atom {}) ; { }\n swap! (fn [ks v] (swap-in! udts_ ks (fn [?v] (swapped v (when (not= v ?v) v)))))\n sorted-set (fmemoize (fn [x] (into (sorted-set) x)))]\n\n (fn [rnames & [?scope]]\n (let [rgroup (sorted-set rnames)]\n (swap! [?scope rgroup]\n (mapv get-file-resource-?last-modified rgroup)))))))\n\n#?(:clj\n (def slurp-file-resource\n \"Like `slurp-resource` but caches slurps against file's last-modified udt.\"\n (let [;; { [ ]}\n cache_ (atom {})]\n (fn [rname]\n (let [curr-udt (or (get-file-resource-?last-modified rname) -1)]\n (force\n (swap-in! cache_ [rname]\n (fn [[?prev-content_ ?prev-udt :as ?v]]\n (if (= curr-udt ?prev-udt)\n (swapped ?v ?prev-content_)\n (let [content_ (delay (slurp-resource rname))]\n (swapped [content_ curr-udt] content_)))))))))))\n\n(comment (slurp-file-resource \"log4j.properties\"))\n\n#?(:clj\n (defn ^:no-doc read-resource\n \"Private, don't use.\"\n [rname]\n (if-not [res (jio/resource rname)]\n (truss/ex-info! (str \"[encore/read-resource] Resource not found on classpath: \" rname)\n {:rname (typed-val rname)})\n\n (with-open [reader (java.io.PushbackReader. (jio/reader res))]\n (loop [forms []]\n (let [form\n (try\n (read reader false ::eof)\n (catch Throwable t\n (truss/ex-info! (str \"[encore/read-resource] Error while reading resource: \" rname)\n {:rname (typed-val rname)\n :error t})))]\n (if (= form ::eof)\n forms\n (recur (conj forms form)))))))))\n\n#?(:clj\n (defmacro ^:no-doc load-inline\n \"Private, don't use.\n Flexibly injects Clojure/Script code from named resource on classpath:\n #?(:clj (load-inline \\\"my-code.clj\\\")\n :cljs (load-inline \\\"my-code.cljs\\\"))\"\n [rname] `(do ~@(read-resource rname))))\n\n(comment\n (run! eval (read-resource \"taoensso/encore/bytes.clj\"))\n (load-inline \"taoensso/encore/bytes.clj\"))\n\n#?(:clj\n (defn get-pom-version\n \"Returns POM version string for given Maven dependency, or nil.\"\n [dep-sym]\n (let [path\n (clojure.core/format \"META-INF/maven/%s/%s/pom.properties\"\n (or (namespace dep-sym)\n (name dep-sym))\n (name dep-sym))]\n\n (when-let [props (jio/resource path)]\n (with-open [stream (jio/input-stream props)]\n (let [props (doto (java.util.Properties.) (.load stream))]\n (.getProperty props \"version\")))))))\n\n(comment (get-pom-version 'com.taoensso/encore))\n\n#?(:clj\n (let [cache_ (atom nil)] ; Impln detail\n (defn java-version\n \"Returns Java's major version integer (8, 17, etc.).\"\n (^long [ ] (or @cache_ (reset! cache_ (java-version (System/getProperty \"java.version\")))))\n (^long [version-string]\n (or\n (when-let [^String s version-string]\n (truss/catching\n (Integer/parseInt\n (or ; Ref. \n (when (.startsWith s \"1.\") (.substring s 2 3)) ; \"1.6.0_23\", etc.\n (let [idx (.indexOf s \".\")] (when (pos? idx) (.substring s 0 idx))) ; \"9.0.1\", etc.\n (let [idx (.indexOf s \"-\")] (when (pos? idx) (.substring s 0 idx))) ; \"16-ea\", etc.\n (do s)))))\n (truss/ex-info! \"[encore/java-version] Failed to parse Java version string (unexpected form)\"\n {:version-string version-string}))))))\n\n#?(:clj\n (defn java-version>=\n \"Returns true iff Java's major version integer is >= given integer:\n (if (java-version>= 21) )\"\n [n] (>= (java-version) (long n))))\n\n(comment (java-version>= 21))\n\n;;;; Async\n\n#?(:clj\n (defn ^:no-doc threaded*\n \"Private, don't use. Returns a new #{:daemon :user} thread to execute given fn.\"\n ^Thread [kind nullary-fn]\n (case kind\n :daemon (doto (Thread. ^Runnable nullary-fn) (.setDaemon true) (.start))\n :user (doto (Thread. ^Runnable nullary-fn) (.start))\n (truss/unexpected-arg! kind\n {:context `threaded*, :param kind, :expected #{:daemon :user}}))))\n\n#?(:clj\n (defmacro ^:no-doc threaded\n \"Private, don't use. Returns a new #{:daemon :user} thread to execute body.\"\n [kind & body] `(threaded* ~kind (fn [] ~@body))))\n\n(comment (.getName (threaded :daemon (println \"Runs on daemon thread\"))))\n\n#?(:clj\n (defmacro ^:no-doc promised\n \"Private, don't use.\n Executes body on #{:daemon :user} thread and delivers result to a promise.\n Returns the promise.\"\n [kind & body]\n `(let [p# (promise)]\n (threaded ~kind (p# (do ~@body)))\n p#)))\n\n(comment @(promised :daemon (Thread/sleep 2000) \"done\"))\n\n#?(:clj\n (defn virtual-executor\n \"Experimental, subject to change without notice!\n Returns new virtual `java.util.concurrent.ThreadPerTaskExecutor` when\n possible (JVM 21+), otherwise returns nil.\"\n []\n (compile-if (Thread/ofVirtual)\n (java.util.concurrent.Executors/newVirtualThreadPerTaskExecutor)\n nil)))\n\n#?(:clj\n (let [ap (fn [] (.availableProcessors (Runtime/getRuntime)))\n perc (fn [n] (max 1 (long (Math/floor (* (/ (double (ap)) 100.0) (double n))))))\n ratio (fn [r] (max 1 (long (Math/floor (* (double (ap)) (double r))))))]\n\n (defn- get-num-threads ^long [n-threads]\n (if (vector? n-threads)\n (let [[kind n] n-threads]\n (case kind\n :num (long (truss/have pos-int? n))\n :perc (long (perc n))\n :ratio (long (ratio n))\n (truss/unexpected-arg! kind\n {:context `get-num-threads\n :param 'num-threads\n :expected '#{ [:perc ] [:ratio ]}})))\n (long (truss/have pos-int? n-threads))))))\n\n(comment\n (get-num-threads [:perc 90])\n (get-num-threads [:ratio 0.9]))\n\n#?(:clj\n (defn pool-executor\n \"Experimental, subject to change without notice!\n Returns new `java.util.concurrent.ThreadPoolExecutor` with given opts.\"\n ^java.util.concurrent.ThreadPoolExecutor\n [{:keys [n-threads n-min-threads n-max-threads thread-name-prefix\n daemon-threads? keep-alive-msecs queue-type queue-size]\n :or\n {n-threads (+ 2 (get-num-threads [:ratio 1.0]))\n thread-name-prefix \"com.taoensso/encore-pool-\"\n daemon-threads? true\n keep-alive-msecs 60000\n queue-type :linked}}]\n\n (let [n-min-threads (int (or n-min-threads n-threads))\n n-max-threads (int (or n-max-threads n-threads))\n keep-alive-msecs (int keep-alive-msecs)\n queue\n (case queue-type\n :array (java.util.concurrent.ArrayBlockingQueue. (int queue-size))\n :linked\n (if queue-size\n (java.util.concurrent.LinkedBlockingQueue. (int queue-size))\n (java.util.concurrent.LinkedBlockingQueue.))\n (truss/unexpected-arg! queue-type\n {:expected #{:array :linked}\n :context `thread-pool}))\n\n factory\n (let [idx* (java.util.concurrent.atomic.AtomicInteger. 0)]\n (reify java.util.concurrent.ThreadFactory\n (newThread [_ runnable]\n (let [idx (.incrementAndGet idx*)\n t (Thread. runnable (str thread-name-prefix idx))]\n (when daemon-threads?\n (.setDaemon t daemon-threads?))\n t))))]\n\n (java.util.concurrent.ThreadPoolExecutor.\n (int n-min-threads)\n (int n-max-threads)\n (int keep-alive-msecs)\n java.util.concurrent.TimeUnit/MILLISECONDS\n ^java.util.concurrent.BlockingQueue queue\n ^java.util.concurrent.ThreadFactory factory))))\n\n(comment (pool-executor {}))\n\n#?(:clj\n (def* ^:no-doc ^:private default-executor_\n \"Default `java.util.concurrent.ExecutorService`.\"\n (delay (or (virtual-executor) (pool-executor {})))))\n\n#?(:clj\n (defmacro ^:no-doc binding-fn\n \"Private, don't use. Returns (^:once fn* []) callable from isolated thread.\"\n [& body]\n `(let [frame# (clojure.lang.Var/cloneThreadBindingFrame)]\n (^:once fn* []\n (clojure.lang.Var/resetThreadBindingFrame frame#)\n (do ~@body)))))\n\n#?(:clj\n (defmacro ^:no-doc rebinding-fn\n \"Private, don't use. Returns (^:once fn* []) callable from any thread.\"\n [& body]\n `(let [frame1# (clojure.lang.Var/cloneThreadBindingFrame)]\n (^:once fn* []\n (let [frame2# (clojure.lang.Var/getThreadBindingFrame)]\n (try\n (clojure.lang.Var/resetThreadBindingFrame frame1#)\n (do ~@body)\n (finally (clojure.lang.Var/resetThreadBindingFrame frame2#))))))))\n\n#?(:clj\n (defmacro ^:no-doc bound-delay\n \"Private, don't use.\n Like `bound-fn` for `delay`- when body is realized, it'll be invoked with\n the same dynamic bindings in place as when the delay was created.\"\n [& body]\n (if (:ns &env)\n `(delay ~@body) ; No need (single threaded)\n `(clojure.lang.Delay. (rebinding-fn ~@body)))))\n\n(comment\n (qb 1e6 (do (clojure.lang.Var/resetThreadBindingFrame (clojure.lang.Var/getThreadBindingFrame)))) ; 30.78\n (qb 1e6 (fn []) (binding-fn)) ; [22.38 36.1]\n (qb 1e6 (delay) (bound-delay)) ; [42.11 55.09]\n (do\n (def ^:dynamic *dyn* nil)\n (def bd_ (core/binding [*dyn* 1] (bound-delay *dyn*)))\n (do @bd_)))\n\n#?(:clj\n (defn future-call*\n \"Experimental, subject to change without notice!\n Like `future-call` but supports use of given custom\n `java.util.concurrent.ExecutorService`.\n\n Will default to using JVM 21+ virtual threads when possible,\n otherwise an unbounded fixed daemon thread pool.\n\n See also `future`, `virtual-executor`, `pool-executor`.\"\n ([ f] (future-call* (deref! default-executor_) f))\n ([executor-service f]\n (let [f (binding-fn (f))\n fut (.submit ^java.util.concurrent.ExecutorService executor-service\n ^Callable f)]\n\n (reify\n clojure.lang.IPending (isRealized [_] (.isDone fut))\n clojure.lang.IDeref (deref [_] (.get fut))\n clojure.lang.IBlockingDeref\n (deref [_ timeout-msecs timeout-val]\n (try\n (.get fut timeout-msecs java.util.concurrent.TimeUnit/MILLISECONDS)\n (catch java.util.concurrent.TimeoutException _ timeout-val)))\n\n java.util.concurrent.Future\n (isDone [_ ] (.isDone fut))\n (isCancelled [_ ] (.isCancelled fut))\n (get [_ ] (.get fut))\n (get [_ timeout unit] (.get fut timeout unit))\n (cancel [_ interrupt? ] (.cancel fut interrupt?)))))))\n\n#?(:clj\n (defmacro future*\n \"Experimental, subject to change without notice!\n Like `future` but supports use of given custom\n `java.util.concurrent.ExecutorService`.\n\n Will default to using JVM 21+ virtual threads when possible,\n otherwise an unbounded fixed daemon thread pool.\n\n See also `future-call`, `virtual-executor`, `pool-executor`.\"\n ([ form] `(future-call* (^:once fn* [] ~form)))\n ([executor-service form] `(future-call* ~executor-service (^:once fn* [] ~form)))))\n\n(comment @(future* (do (println \"running\") (Thread/sleep 2000) :done)))\n\n#?(:clj\n (defn future-pool\n \"Returns a simple semaphore-limited wrapper of Clojure's standard `future`:\n (fn future-pool-fn\n ([f] [timeout-msecs timeout-val f] [] [timeout-msecs timeout-val]))\n\n Arities of returned function:\n [f] - Blocks to acquire a future, then executes (f) on that future.\n [ ] - Blocks to acquire ALL futures, then immediately releases them.\n Useful for blocking till all outstanding work completes.\n\n [timeout-msecs timeout-val f] - Variant of [f] with timeout\n [timeout-msecs timeout-val ] - Variant of [ ] with timeout\n\n See also `future*` for fully custom pools, etc.\"\n [n-threads]\n (let [n (get-num-threads n-threads) ; Undocumented special vec support\n s (java.util.concurrent.Semaphore. n)\n msecs java.util.concurrent.TimeUnit/MILLISECONDS\n fp-call\n (fn [f]\n (if (fn? f)\n (future (try (f) (finally (.release s))))\n (do\n (.release s)\n (truss/ex-info! \"[encore/future-pool] Unexpected arg type (expected function)\"\n {:arg (typed-val f)}))))]\n\n (fn fp\n ([ ] (.acquire s n) (.release s n) true)\n ([f] (.acquire s) (fp-call f))\n\n ([^long timeout-msecs timeout-val]\n (if (.tryAcquire s n timeout-msecs msecs)\n (do (.release s n) true)\n timeout-val))\n\n ([^long timeout-msecs timeout-val f]\n (if (.tryAcquire s timeout-msecs msecs)\n (fp-call f)\n timeout-val))))))\n\n(comment\n (time\n (let [fp (future-pool 2)]\n [(fp (fn [] (Thread/sleep 2000) (println \"2000\")))\n (fp (fn [] (Thread/sleep 500) (println \"500\")))\n (fp 200 \"timeout\" (fn [] (Thread/sleep 900) (println \"900\")))\n (fp (fn [] (Thread/sleep 3000) (println \"3000\")))\n (fp)])))\n\n#?(:clj\n (defn pre-cache\n \"Given a nullary fn `f` that is non-idempotent and free of side-effects,\n returns a wrapped version of `f` that asynchronously maintains a cache\n of up to `n-capacity` pre-computed return values of (f).\n\n Useful when `f` is expensive & may be called in a spikey fashion,\n e.g. ideal for cryptographic key generators.\"\n ([n-capacity f] (pre-cache n-capacity 1 f))\n ([n-capacity fp-or-n-threads f]\n (let [queue (java.util.concurrent.ArrayBlockingQueue. n-capacity)\n f* (fn [] (try {:okay (f)} (catch Throwable t {:error t})))\n\n async-replenish!\n (let [a_ (agent nil)\n fp\n (if (fn? fp-or-n-threads)\n (do fp-or-n-threads)\n (future-pool fp-or-n-threads))]\n\n (fn async-replenish! []\n (send-off a_\n (fn [_] (fp (fn [] (.offer queue (f*)))) nil))))]\n\n (dotimes [_ n-capacity] (async-replenish!)) ; Initialize cache\n\n (fn take1 []\n (let [f*-result\n (if-let [cached (.poll queue)]\n (do (async-replenish!) cached)\n ;; Block to call f synchronously on calling thread.\n ;; Not limited by fp => pre-cached f will never be slower\n ;; than uncached f, even if `n-threads` is small.\n (f*))]\n\n (if-let [t (get f*-result :error)]\n (throw t)\n (get f*-result :okay))))))))\n\n(comment\n (let [fp (future-pool 6)] ; Shared future pool\n (def f1 (pre-cache 3 fp (fn [] (Thread/sleep 1000) :f1)))\n (def f2 (pre-cache 4 fp (fn [] (Thread/sleep 500) :f2)))))\n\n#?(:clj\n (defn call-on-shutdown!\n \"Registers given nullary fn as a JVM shutdown hook.\n (f) will be called sometime during shutdown. While running, it will\n attempt to block shutdown.\"\n [f]\n (.addShutdownHook (Runtime/getRuntime)\n (Thread. ^Runnable f))))\n\n#?(:clj\n (defn runner\n \"Experimental, subject to change without notice!\n Returns a new stateful \\\"runner\\\" such that:\n\n (runner f) ; Arity 1 call\n Requests runner to execute given nullary fn according to runner's opts.\n Returns:\n - `true` if runner accepted fn for execution without back-pressure.\n - `false` if runner experienced back-pressure (fn may/not execute).\n - `nil` if runner has stopped accepting new execution requests.\n\n (deref runner)\n Returns a promise that will be delivered once all pending execution\n requests complete.\n\n (runner) ; Arity 0 call\n Causes runner to permanently stop accepting new execution requests.\n On first call returns a promise that will be delivered once all pending\n execution requests complete. On subsequent calls returns nil.\n\n Runners are a little like agents, but:\n - Take nullary fns rather than unary fns of state.\n - Have no validators or watches.\n - Have configurable back-pressure.\n - Can have >1 thread (in which case fns may execute out-of-order!).\n\n These properties make them useful as configurable general-purpose async workers.\n\n Options include:\n\n `:buffer-size` (default 1024)\n Size of request buffer, and the max number of pending requests before\n configured back-pressure behaviour is triggered (see `:mode`).\n\n `:mode` (default `:blocking`)\n Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n Controls what happens when a new request is made while request buffer is full:\n `:blocking` => Blocks caller until buffer space is available\n `:dropping` => Drops the newest request (noop)\n `:sliding` => Drops the oldest request\n\n `:n-threads` (default 1)\n Number of threads to use for executing fns (servicing request buffer).\n NB execution order may be non-sequential when n > 1.\n\n `:drain-msecs` (default 6000 msecs)\n Maximum time (in milliseconds) to try allow pending execution requests to\n complete when stopping runner. nil => no maximum.\"\n\n [{:as opts\n :keys\n [mode buffer-size n-threads thread-name drain-msecs,\n auto-stop? convey-bindings? daemon-threads?]\n\n :or\n {mode :blocking\n buffer-size 1024\n n-threads 1\n drain-msecs 6000\n\n ;;; Advanced (undocumented)\n auto-stop? true\n convey-bindings? true\n daemon-threads? true}}]\n\n (let [stopped?_ (latom false)]\n\n (if (= mode :sync) ; Undocumented, mostly used for testing\n (reify\n clojure.lang.IDeref (deref [_] ((promise) :drained))\n clojure.lang.IFn\n (invoke [r ] (when (compare-and-set! stopped?_ false true) @r))\n (invoke [_ f] (when-not (stopped?_) (truss/try* (f) (catch :all _)) true)))\n\n (let [cnt-executing (java.util.concurrent.atomic.AtomicLong. 0)\n abq (java.util.concurrent.ArrayBlockingQueue.\n (as-pos-int buffer-size) false)\n\n drained? (fn [] (and (zero? (.size abq)) (zero? (.get cnt-executing))))\n drained-fn\n (fn []\n (if (drained?)\n ((promise) :drained)\n (promised :daemon (loop [] (if (drained?) :drained (recur))))))\n\n init-fn\n (fn []\n (call-on-shutdown!\n (fn []\n (when auto-stop? (compare-and-set! stopped?_ false true))\n ;; Optionally block JVM shutdown to complete pending requests\n (if-let [^long msecs drain-msecs]\n (when (pos? msecs) (deref (drained-fn) msecs nil))\n (do (deref (drained-fn))))))\n\n ;; Create worker threads\n (dotimes [n (as-pos-int n-threads)]\n (let [wfn\n (fn a-worker-fn []\n (loop []\n (if-let [f (.poll abq 200 java.util.concurrent.TimeUnit/MILLISECONDS)]\n (do\n (.incrementAndGet cnt-executing)\n (truss/try*\n (f)\n (catch :all _)\n (finally (.decrementAndGet cnt-executing)))\n ;; Unconditionally drain abq even when stopped\n (recur))\n (when-not (stopped?_) (recur)))))\n\n thread-name (str-join-once \"-\" [(or thread-name `runner) \"loop\" (inc n) \"of\" n-threads])\n thread (Thread. wfn thread-name)]\n\n ;; Daemon worker threads are almost always the right choice\n ;; here since they allow the flexibility of *optionally*\n ;; blocking JVM shutdown (via our shutdown hook), whereas\n ;; user worker threads outright prevent our hook from even\n ;; running and so would make users responsible for stopping\n ;; runners manually.\n\n (.setDaemon thread (boolean daemon-threads?))\n (.start thread))))\n\n init!_\n (if-let [msecs (get opts :debug/init-after)]\n (delay (threaded :daemon (Thread/sleep (int msecs)) (init-fn)))\n (delay (init-fn)))\n\n run-fn\n (case mode\n :blocking (fn blocking-run [f] (or (.offer abq f) (do (.put abq f) false)))\n :dropping (fn dropping-run [f] (.offer abq f))\n :sliding\n (fn sliding-run [f]\n (or\n (.offer abq f) ; Common case\n (loop []\n (.poll abq) ; Drop earliest f\n (if (.offer abq f)\n false ; Successfully took new f, but drop/s occurred\n (recur)))))\n\n (truss/unexpected-arg! mode\n {:context `runner\n :expected #{:sync :blocking :dropping :sliding}}))]\n\n (reify\n clojure.lang.IDeref (deref [_] (drained-fn))\n clojure.lang.IFn\n (invoke [r ] (when (compare-and-set! stopped?_ false true) @r))\n (invoke [_ f]\n (when-not (stopped?_)\n (.deref init!_)\n (if convey-bindings?\n (run-fn (binding-fn (f)))\n (run-fn f))))))))))\n\n(comment\n (let [r1 (runner {:mode :sync})\n r2 (runner {:mode :blocking})]\n (qb 1e6 ; [50.56 144.44]\n (r1 (fn []))\n (r2 (fn [])))))\n\n(defn ^:no-doc hot-sleep\n \"Private, don't use.\n For Clj: same as `Thread/sleep`.\n For Cljs: hot loops until given number of msecs have elapsed.\n\n Useful for certain synchronous unit tests, etc.\"\n [msecs]\n #?(:clj (Thread/sleep (int msecs))\n :cljs (let [t0 (now-udt*)] (loop [] (when (< (- (now-udt*) t0) msecs) (recur))))))\n\n(comment (hot-sleep 500))\n\n;;;; Thread info\n\n#?(:clj (defn thread-name \"Returns string name of current `Thread`.\" ^String [] (.getName (Thread/currentThread))))\n#?(:clj (defn thread-id \"Returns long id of current `Thread`.\" ^long [] (.getId (Thread/currentThread))))\n#?(:clj\n (defn thread-info\n \"Returns {:keys [group name id]} for current `Thread`.\"\n []\n (let [t (Thread/currentThread)]\n {:group (when-let [g (.getThreadGroup t)] (.getName g))\n :name (.getName t)\n :id (.getId t)})))\n\n(comment [(thread-name) (thread-id) (thread-info)] (qb 1e6 (thread-info))) ; 44.49\n\n;;;; Host info\n\n#?(:clj\n (defmacro ^:private deref-safely\n \"Like normal blocking deref, but returns `timeout-val` when calling\n thread is interrupted while blocking.\"\n [p timeout-msecs timeout-val]\n `(try\n (deref ~p ~timeout-msecs ~timeout-val)\n (catch InterruptedException _# ~timeout-val))))\n\n#?(:clj\n (defn ^:no-doc refreshing-cache\n \"Private, don't use.\n Returns TTL-cached (fn [cache-msecs timeout-msecs timeout-val]) for given\n (fn [fallback-val]) that will:\n - Initiate async update of cached value when stale value is encountered.\n - Continue to deliver stale value until cache is updated.\"\n [f1]\n (let [cache_ (latom nil) ; ?[promise udt]\n cache-update-pending?_ (latom false)]\n\n (fn [cache-msecs timeout-msecs timeout-val]\n (loop [force-use-cache? false]\n\n (if (or force-use-cache? (cache-update-pending?_))\n (let [[p] (cache_)] (deref-safely p timeout-msecs timeout-val))\n (let [t1 (System/currentTimeMillis)]\n (if-let [[p ^long t0] (cache_)]\n (if (< (- t1 t0) (long cache-msecs)) ; Have fresh cache\n (deref-safely p timeout-msecs timeout-val)\n (do\n ;; Ensure exactly 1 async thread is updating cache\n (when (compare-and-set! cache-update-pending?_ false true)\n (threaded :daemon\n (if-let [new-val (f1 nil)] ; Take as long as needed\n (reset! cache_ [((promise) new-val) t1]) ; Update p and t\n (reset! cache_ [p t1]) ; Update only t\n )\n (reset! cache-update-pending?_ false)))\n (recur true)))\n\n (let [p (promise)]\n (when (compare-and-set! cache_ nil [p t1]) ; First call\n ;; Init cache with pending init value\n (threaded :user (p (f1 timeout-val))))\n (recur true))))))))))\n\n#?(:clj\n (let [f1\n (fn [fallback-val]\n (try\n (let [host (java.net.InetAddress/getLocalHost)]\n {:name (.getHostName host),\n :ip (.getHostAddress host)})\n (catch Exception _ (force fallback-val))))\n\n f3 (refreshing-cache f1)]\n\n (defn host-info\n \"Returns ?{:keys [ip name]} with string vals or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (host-info (msecs :mins 1) 5000 nil))) ; 64.49\n\n#?(:clj\n (let [f1 (fn [fallback-val] (try (.getHostAddress (java.net.InetAddress/getLocalHost)) (catch Exception _ (force fallback-val))))\n f3 (refreshing-cache f1)]\n\n (defn host-ip\n \"Returns local host IP string or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (host-ip) (get (host-info) :ip))) ; [56.12 76.39]\n\n#?(:clj\n (let [f1 (fn [fallback-val] (try (.getHostName (java.net.InetAddress/getLocalHost)) (catch Exception _ (force fallback-val))))\n f3 (refreshing-cache f1)]\n\n (defn hostname\n \"Returns local hostname string or `fallback-val` (default nil).\n Arities 0 and 3 are cached, prefer these!\n Arities 1 and 2 are uncached and intended for advanced users only.\"\n ([ ] (f3 (msecs :mins 1) 5000 nil))\n ([cache-msecs timeout-msecs fallback-val] (f3 cache-msecs timeout-msecs fallback-val))\n ([ fallback-val] (f1 fallback-val))\n ([timeout-msecs fallback-val]\n (let [p (promise)]\n (future* (p (f1 fallback-val)))\n (deref-safely p timeout-msecs fallback-val))))))\n\n(comment (qb 1e6 (hostname) (get (host-info) :name))) ; [56.31 75.77]\n\n;;;; Environmental config API\n;; - Cljs must embed config in code (no runtime access to environmental config).\n;; - Embed config => macro, no runtime arg support, locally eval all symbols.\n;; - Locally eval symbols => no support for foreign unrequired namespaces.\n\n#?(:clj\n (let [pattern-platform #\"\\<(.)?platform(.)?\\>\"\n pattern-opt #\"\\<(.+?)\\>\"]\n\n (defn- prep-env-ids\n \"Handles id prep for `get-env`:\n :a =>\n [\\\"a.bXcljYoptional\\\" \\\"a.bXcljY\\\" \\\"a.boptional\\\" \\\"a.b\\\"], etc.\"\n [platform tf x]\n (when x\n (if (vector? x)\n (into [] (comp (map #(prep-env-ids platform tf %)) cat (distinct)) x)\n (let [tf (or tf identity)\n s (as-qname\n (if (const-form? x)\n x\n (truss/ex-info! \"[encore/get-env] Ids must be const forms\"\n {:id x})))\n\n without-platform (str/replace s pattern-platform \"\")\n with-platform (when platform (str/replace s pattern-platform (fn [[_ pre post]] (str pre (name platform) post))))\n without-opt (fn [s] (when s (str/replace s pattern-opt \"\")))\n with-opt (fn [s] (when s (str/replace s pattern-opt (fn [[_ cnt]] cnt))))]\n\n (into [] (comp (filter identity) (distinct) (map tf))\n [(with-opt with-platform)\n (without-opt with-platform)\n (with-opt without-platform)\n (without-opt without-platform)])))))))\n\n(comment (prep-env-ids :clj vector [:a :b :a]))\n\n#?(:clj\n (let [pname (fn [s] (-> s (str-replace #\"/\" \".\")))\n ename (fn [s] (-> s (str-replace #\"[./-]\" \"_\") (str/upper-case)))\n parse-opts\n (fn [opts-or-spec]\n (if (map? opts-or-spec)\n (do opts-or-spec)\n {:spec opts-or-spec}))]\n\n (defn ^:no-doc get-env*\n \"Private, don't use. Runtime fn version of `get-env`.\"\n {:arglists\n '([{:keys [as default return]\n :or {as :str\n return :value}} spec])}\n\n ([opts spec] (get-env* (assoc opts :spec spec)))\n ([opts-or-spec]\n (let [opts (parse-opts opts-or-spec)\n {:keys [as default spec, return]\n :or {as :str\n return :value}} opts\n\n ;;; Advanced opts, undocumented\n platform (or (get opts :platform) (get opts :platform*))\n custom-res\n (when (get opts ::allow-recur? true)\n (let [res-prop (get opts :res-prop)\n env-prop (get opts :env-prop)]\n (when (or res-prop env-prop)\n (get-env*\n {::allow-recur? false,\n :platform platform,\n :prop res-prop, :env env-prop, :res nil,\n :return :value}))))\n\n props (prep-env-ids platform (fn [id] [:prop (pname id)]) (get opts :prop spec))\n envs (prep-env-ids platform (fn [id] [:env (ename id)]) (get opts :env spec))\n ress (prep-env-ids platform (fn [id] [:res (pname id)]) (or custom-res (get opts :res spec)))\n to-search [props envs ress] ; (vinterleave-all [[:p1 :p2] [:e1] [:r1 :r2 :r3]]) ; => [:p1 :e1 :r1 :p2 :r2 :r3]\n\n match ; ?[source str-val]\n (or\n (get opts :debug/match)\n (reduce-interleave-all\n (fn rf [_ in]\n (let [[kind n] in]\n (case kind\n :prop (when-let [v (System/getProperty n)] (reduced [in v]))\n :env (when-let [v (System/getenv n)] (reduced [in v]))\n :res (when-let [v (slurp-resource n)] (reduced [in v])))))\n nil to-search))\n\n match-as ; ?[source as-val]\n (or\n (case as\n :str match ; ?[source str-val]\n :bool\n (when-let [[source bool-str] match]\n (let [parsed-bool\n (case bool-str\n (\"true\" \"1\" \"t\" \"T\" \"TRUE\") true\n (\"false\" \"0\" \"f\" \"F\" \"FALSE\") false\n (truss/ex-info! \"[encore/get-env] Error parsing as boolean\"\n {:bool-str bool-str\n :source source\n :platform platform\n :expected\n {true #{\"true\" \"1\" \"t\" \"T\" \"TRUE\"}\n false #{\"false\" \"0\" \"f\" \"F\" \"FALSE\"}}}))]\n [source parsed-bool]))\n\n :edn\n (when-let [[source edn] match]\n (let [x\n (try\n (read-edn (get opts :read-opts) edn)\n (catch Throwable t\n (truss/ex-info! \"[encore/get-env] Error reading as edn\"\n {:edn edn, :source source, :platform platform} t)))]\n\n (if-not (and (symbol? x) (get opts :eval-sym? (= platform :clj)))\n [source x]\n (if-let [sym (resolve-sym nil x true)]\n [source (eval sym)] ; Eval sym at runtime\n (truss/ex-info! (str \"[encore/get-env] Failed to resolve symbol: \" x)\n {:edn edn, :source source, :platform platform})))))\n\n (truss/ex-info! \"[encore/get-env] Unexpected `:as` option\"\n {:given (typed-val as)\n :expected #{:str :edn :bool}}))\n\n (when (contains? opts :default)\n [:default default]))]\n\n (when (or match-as (= return :explain))\n (let [[source value] match-as]\n (case return\n :value value\n :legacy {:config value, :source source} ; Back compatibility\n :map (assoc-some {:value value, :source source} :platform platform)\n :explain (assoc-some {:value value, :source source} {:platform platform, :search (vinterleave-all to-search)})\n (truss/ex-info! \"[encore/get-env] Unexpected `:return` option\"\n {:given (typed-val return)\n :expected #{:value :map :explain}})))))))\n\n (defmacro get-env\n \"Flexible cross-platform environmental value util.\n\n Given a compile-time id (keyword/string) or vector of desc-priority\n ids, parse and return the first of the following that exists, or nil:\n 1. JVM property value for id\n 2. Environment variable value for id\n 3. Classpath resource content for id\n\n Ids may include optional platform tag for auto replacement, e.g.:\n `<.platform>` -> \\\".clj\\\", \\\".cljs\\\", or nil\n\n Clj/s: if resulting value is a single symbol, it will be evaluated.\n Cljs: resulting value will be embedded in code during macro expansion!\n\n Options:\n `:as` - Parse encountered value as given type \u2208 #{:str :bool :edn} (default `:str`).\n `:default` - Fallback to return unparsed if no value found during search (default `nil`).\n `:return` - Return type \u2208 #{:value :map :explain} (default `:value`).\n Use `:explain` to verify/debug, handy for tests/REPL!\n\n Example:\n (get-env {:as :edn} [:my-app/id1<.platform> :my-app/id2]) will parse\n and return the first of the following that exists, or nil:\n\n id1 with platform:\n `my-app.id1.clj` JVM property value\n `MY_APP_id1_CLJ` environment variable value\n `my-app.id1.clj` classpath resource content\n\n id1 without platform:\n `my-app.id1` JVM property value\n `MY_APP_id1` environment variable value\n `my-app.id1` classpath resource content\n\n id2 with platform: ...\n id2 without platform: ...\"\n\n {:arglists\n '([{:keys [as default return]\n :or {as :str\n return :value}} spec])}\n\n ([ ] `(get-locals)) ; Back compatibility for unrelated util with same name\n ([opts spec] (truss/have? const-form? opts spec) `(get-env ~(assoc opts :spec spec)))\n ([opts-or-spec] (truss/have? const-form? opts-or-spec)\n (let [opts (parse-opts opts-or-spec)]\n (if (:ns &env)\n (get-env* (assoc opts :platform* :cljs)) ; Embed compile-time value\n `(get-env* ~(assoc opts :platform* :clj))))))))\n\n(comment\n (defn f1 [x] (* x x))\n (do ((get-env {:as :edn, :debug/match [:debug/source \"f1\"]}) 5))\n (macroexpand '((get-env {:as :edn, :debug/match [:debug/source \"f1\"]}) 5)))\n\n;;;; Namespaces\n\n#?(:clj\n (defn interns-overview\n \"Returns {:keys [api public private impl test no-doc]}, with each key mapped\n to an alphabetical list of the relevant vars in given namespace.\n\n \\\"impl\\\" vars are public vars with names that begin with \\\"-\\\" or \\\"_\\\",\n a naming convention commonly used to indicate vars intended to be treated\n as private implementation details even when public.\"\n ([ ] (interns-overview *ns*))\n ([ns]\n (map-vals (comp vec sort)\n (reduce-kv\n (fn [{:keys [public private impl test no-doc] :as m} k v]\n (let [mt (meta v)]\n (cond\n (:test mt) (update m :test conj k)\n (:private mt) (update m :private conj k)\n\n :if-let [impl?\n (let [sw? (partial str-starts-with? (name (:name mt)))]\n (and\n (not (sw? \"->\"))\n (some sw? [\"-\" \"_\" \"*-\" \"*_\"])))]\n (update m :impl conj k)\n\n :let [m (update m :public conj k)]\n\n (:no-doc mt) (update m :no-doc conj k)\n :else (update m :api conj k))))\n {}\n (ns-interns ns))))))\n\n(comment (interns-overview))\n\n;;;; Locals\n\n#?(:clj\n (defmacro ^:no-doc get-locals\n \"Private, don't use.\"\n []\n (let [ks (reduce\n (fn [acc in]\n (if (str-starts-with? (name in) \"__\") ; Hide privates\n (do acc)\n (conj acc (without-meta in))))\n [] (keys &env))]\n `(zipmap '~ks ~ks))))\n\n(comment\n [(let [x :x] (get-locals)) ((fn [^long x] (get-locals)) 0)\n (let [x :x] (get-env)) ((fn [^long x] (get-env)) 0)])\n\n;;;; Stubs (experimental)\n\n(defn ^:no-doc -valid-unstub-impl [x]\n (if #?(:clj (symbol? x) :cljs (fn? x))\n x\n (truss/ex-info! \"[encore/stubfn] Unexpected unstub implementation \"\n {:given (typed-val x)\n :expected #?(:clj 'symbol :cljs 'fn)})))\n\n#?(:clj\n (defmacro defstub\n \"Experimental, subject to change without notice!!\n Declares a stub var that can be initialized from any namespace with\n `unstub-`.\n\n Decouples a var's declaration (location) and its initialization (value).\n Useful for defining vars in a shared ns from elsewhere (e.g. a private\n or cyclic ns).\"\n\n ([stub-sym & more] (let [syms (cons stub-sym more)] `(do ~@(map (fn [s] `(defstub ~s)) syms))))\n ([stub-sym]\n (let [unstub-sym (with-meta (symbol (str \"unstub-\" (name stub-sym))) {:no-doc true :doc \"Call with implementation fn to initialize stub\"})\n unstub-sym* (with-meta (symbol (str \"unstub*-\" (name stub-sym))) {:no-doc true})\n stub-ns (symbol (str *ns*))\n qualified-unstub-sym* (symbol (str *ns*) (name unstub-sym*))]\n\n (if (:ns &env)\n ;; No declare/intern support\n `(let [stubfn_#\n (volatile!\n (fn [~'& args#]\n (truss/ex-info! (str \"[encore/stubfn] Attempted to call uninitialized stub fn\")\n {:stub '~stub-sym, :args args#})))]\n\n (defn ~unstub-sym* [impl-fn#] (vreset! stubfn_# (-valid-unstub-impl impl-fn#))) ; For Clj+s case\n (defn ~unstub-sym [impl-fn#] (vreset! stubfn_# (-valid-unstub-impl impl-fn#)))\n (defn ~stub-sym\n ([ ] (@stubfn_# ))\n ([x# ] (@stubfn_# x# ))\n ([x# y# ] (@stubfn_# x# y# ))\n ([x# y# z# ] (@stubfn_# x# y# z#))\n ([x# y# z# ~'& more#] (apply @stubfn_# x# y# z# more#))))\n\n `(let [stub-var# (declare ~(with-meta stub-sym {:redef true}))]\n (defmacro ~unstub-sym [~'impl]\n (if (:ns ~'&env) ; For Clj+s case\n `(~'~qualified-unstub-sym* ~~'impl)\n `(let [~'impl-var# (var ~(-valid-unstub-impl ~'impl))\n ~'stub-sym#\n (with-meta '~'~stub-sym\n (merge\n (dissoc (meta ~stub-var#) :declared :redef)\n (select-keys (meta ~'impl-var#) [:arglists :doc :macro])))]\n\n (intern '~'~stub-ns ~'stub-sym#\n (.getRawRoot ~'impl-var#)))))))))))\n\n;;;; Tests\n\n(defn test-fixtures\n \"Given a {:before ?(fn []) :after ?(fn [])} map, returns cross-platform\n test fixtures for use by both `clojure.test` and `cljs.test`:\n\n (let [f (test-fixtures {:before (fn [] (test-setup))})]\n (clojure.test/use-fixtures :once f)\n (cljs.test/use-fixtures :once f))\"\n\n [fixtures-map]\n (truss/have? map? fixtures-map)\n ;; (truss/have? [:ks<= #{:before :after}] fixtures-map)\n\n #?(:cljs fixtures-map ; Cljs supports a map with {:keys [before after]}\n :clj ; Clj wants a fn\n (let [{:keys [before after]} fixtures-map]\n (fn fixtures [f]\n (when before (before))\n (f)\n (when after (after))))))\n\n(comment (test-fixtures {:before (fn [])}))\n\n;;;; Benchmarking\n\n#?(:clj\n (defmacro time-ms \"Returns number of milliseconds it took to execute body.\"\n [& body] `(let [t0# (now-udt*)] ~@body (- (now-udt*) t0#))))\n\n#?(:clj\n (defmacro time-ns \"Returns number of nanoseconds it took to execute body.\"\n [& body] `(let [t0# (now-nano*)] ~@body (- (now-nano*) t0#))))\n\n#?(:clj\n (defmacro quick-bench\n \"Simple util to benchmark/compare runtime of given form/s.\n\n Runs sets of laps for each given form, recording the total runtime of each set.\n Returns the the total runtime in msecs of the fastest set of laps for each form.\n\n (quick-bench [ ] <...>) =>\n [\n \n <...>]\n\n Total number of runs for each form is: `num-sets` * `num-laps`\n\n If omitted, the default `num-sets` is 6 (to include warmup):\n (quick-bench <...>)\n\n Example (comparing runtime of `first` and `nth` against vector):\n (let [v [:a]] (quick-bench 1e6 (first v) (nth v 0))) => [67.43 39.05]\"\n\n ([spec form & more] (mapv (fn [form] `(quick-bench ~spec ~form)) (cons form more)))\n ([spec form]\n `(let [spec# ~spec\n ;; Default 3 warmup + 3 working sets:\n [num-sets# num-laps#] (if (vector? spec#) spec# [6 spec#])]\n (truss/have? pos-num? num-sets# num-laps#)\n (round2\n (/ (double\n (reduce min\n (for [_# (range num-sets#)]\n (time-ns (dotimes [_# num-laps#] (do ~form))))))\n 1e6))))))\n\n#?(:clj (defalias qb quick-bench))\n\n(comment (let [v [:a]] (qb [4 1e6] (first v) (nth v 0))))\n\n#?(:clj\n (defn bench*\n \"Repeatedly executes fn and returns time taken to complete execution.\"\n [nlaps {:keys [nlaps-warmup nthreads as-ns?]\n :or {nlaps-warmup 0\n nthreads 1}} f]\n (try\n (dotimes [_ nlaps-warmup] (f))\n (let [nanosecs\n (if (= nthreads 1)\n (time-ns (dotimes [_ nlaps] (f)))\n (let [nlaps-per-thread (/ (long nlaps) (long nthreads))]\n (time-ns\n (let [futures (repeatedly-into [] nthreads\n (fn [] (future (dotimes [_ nlaps-per-thread] (f)))))]\n (mapv deref futures)))))]\n (if as-ns? nanosecs (round0 (/ nanosecs 1e6))))\n (catch Throwable t\n (println (str \"Bench failure: \" (.getMessage t)))\n -1))))\n\n#?(:clj (defmacro bench [nlaps opts & body] `(bench* ~nlaps ~opts (fn [] ~@body))))\n\n;;;; Scheduling\n;; `call-at-interval` also possible but poor cost/benefit since less useful\n;; and more impl specific\n\n(do\n (defprotocol ITimeoutImpl (-schedule-timeout [_ msecs f]))\n (deftype DefaultTimeoutImpl [#?(:clj ^java.util.Timer timer)]\n ITimeoutImpl\n (-schedule-timeout [_ msecs f]\n #?(:cljs (js/setTimeout f msecs)\n :clj\n (let [tt (proxy [java.util.TimerTask] []\n (run [] (truss/catching (f))))]\n (.schedule timer tt (long msecs))))))\n\n (defonce default-timeout-impl_\n \"Simple one-timeout timeout implementation provided by platform timer.\n O(logn) add, O(1) cancel, O(1) tick. Fns must be non-blocking or cheap.\n Similar efficiency to core.async timers (binary heap vs DelayQueue).\"\n (delay\n (DefaultTimeoutImpl.\n #?(:clj (java.util.Timer. \"encore/timer\" true))))))\n\n(defprotocol ITimeoutFuture\n (tf-state [_] \"Returns a map of timeout's public state.\")\n (tf-poll [_] \"Returns :timeout/pending, :timeout/cancelled, or the timeout's completed result.\")\n (tf-done? [_] \"Returns true iff the timeout is not pending (i.e. has a completed result or is cancelled).\")\n (tf-pending? [_] \"Returns true iff the timeout is pending.\")\n (tf-cancelled? [_] \"Returns true iff the timeout is cancelled.\")\n (tf-cancel! [_] \"Returns true iff the timeout was successfully cancelled (i.e. was previously pending).\"))\n\n#?(:cljs\n (deftype TimeoutFuture [f result__ udt]\n ITimeoutFuture\n (tf-state [_] {:fn f :udt udt})\n (tf-poll [_] @result__)\n (tf-done? [_] (not (identical-kw? @result__ :timeout/pending)))\n (tf-pending? [_] (identical-kw? @result__ :timeout/pending))\n (tf-cancelled? [_] (identical-kw? @result__ :timeout/cancelled))\n (tf-cancel! [_] (-cas!? result__ :timeout/pending :timeout/cancelled))\n\n IPending (-realized? [t] (tf-done? t))\n IDeref (-deref [t] (tf-poll t))))\n\n#?(:clj\n (deftype TimeoutFuture\n [f result__ ^long udt ^CountDownLatch latch]\n ITimeoutFuture\n (tf-state [_] {:fn f :udt udt})\n (tf-poll [_] (result__))\n (tf-done? [_] (not (identical-kw? (result__) :timeout/pending)))\n (tf-pending? [_] (identical-kw? (result__) :timeout/pending))\n (tf-cancelled? [_] (identical-kw? (result__) :timeout/cancelled))\n (tf-cancel! [_]\n (if (-cas!? result__ :timeout/pending :timeout/cancelled)\n (do (.countDown latch) true)\n false))\n\n clojure.lang.IPending (isRealized [t] (tf-done? t))\n clojure.lang.IDeref (deref [_] (.await latch) (result__))\n clojure.lang.IBlockingDeref\n (deref [_ timeout-msecs timeout-val]\n (if (.await latch timeout-msecs java.util.concurrent.TimeUnit/MILLISECONDS)\n (result__)\n timeout-val))\n\n java.util.concurrent.Future\n (isCancelled [t] (tf-cancelled? t))\n (isDone [t] (tf-done? t))\n (cancel [t _] (tf-cancel! t))))\n\n(defn timeout-future? #?(:cljs {:tag 'boolean}) [x] (instance? TimeoutFuture x))\n\n(defn call-after-timeout\n \"Alpha, subject to change.\n Returns a TimeoutFuture that will execute `f` after given msecs.\n\n Does NOT do any automatic binding conveyance.\n\n Performance depends on the provided timer implementation (`impl_`).\n The default implementation offers O(logn) add, O(1) cancel, O(1) tick.\n\n See `ITimeoutImpl` for extending to arbitrary timer implementations.\"\n\n ;; Why no auto binding convyance? Explicit manual conveyance plays better\n ;; with cljs, and means less surprise with `future-fn`.\n ([ msecs f] (call-after-timeout default-timeout-impl_ msecs f))\n ([impl_ msecs f]\n (let [msecs (long msecs)\n udt (+ (now-udt) msecs) ; Approx instant to run\n result__ (latom :timeout/pending)\n #?@(:clj [latch (CountDownLatch. 1)])\n cas-f\n (fn []\n (let [result_ (delay (f))]\n (when (-cas!? result__ :timeout/pending result_)\n @result_\n #?(:clj (.countDown latch)))))]\n\n (let [impl (force impl_)] (-schedule-timeout impl msecs cas-f))\n (TimeoutFuture. f result__ udt #?(:clj latch)))))\n\n#?(:clj\n (defmacro after-timeout\n \"Alpha, subject to change.\n Returns a TimeoutFuture that will execute body after timeout.\n Body must be non-blocking or cheap.\"\n [msecs & body] `(call-after-timeout ~msecs (fn [] ~@body))))\n\n(comment\n @(after-timeout 500 (println \"foo\") \"bar\")\n (def ^:dynamic *foo* nil)\n (core/binding [*foo* \"bar\"] ; Note no auto conveyance\n ((:fn (tf-state (after-timeout 200 (println *foo*) *foo*))))))\n\n;;;; Browser\n\n#?(:cljs\n (do ; Basic browser logging\n (def ^:private console-log\n (if-not (exists? js/console)\n (fn [& xs] nil)\n (fn [& xs] (when-let [f js/console.log]\n (.apply f js/console (into-array xs))))))\n\n (def log console-log) ; Raw args\n (defn logp [ & xs] (console-log (str-join \" \" (map nil->str) xs)))\n (defn sayp [ & xs] (js/alert (str-join \" \" (map nil->str) xs)))\n (defn logf [fmt & xs] (console-log (format* fmt xs)))\n (defn sayf [fmt & xs] (js/alert (format* fmt xs)))))\n\n#?(:cljs\n (defn get-win-loc\n \"Returns current window location as\n {:keys [href protocol hostname host pathname search hash]}.\"\n []\n (when-let [loc (oget js-?window \"location\")]\n {;; Ref. \n :href (.-href loc) ; \"http://www.example.org:80/foo/bar?q=baz#bang\"\n :protocol (.-protocol loc) ; \"http:\" ; Note the :\n :hostname (.-hostname loc) ; \"example.org\"\n :host (.-host loc) ; \"example.org:80\"\n :pathname (.-pathname loc) ; \"/foo/bar\"\n :search (.-search loc) ; \"?q=baz\"\n :hash (.-hash loc) ; \"#bang\"\n })))\n\n#?(:cljs (def ^:private default-xhr-pool_ (delay (goog.net.XhrIoPool.))))\n#?(:cljs\n (defn ajax-call\n \"Queues a lightweight Ajax call with Google Closure's `goog.net.XhrIo`\n and returns nil, or the resulting `goog.net.XhrIo` instance if one was\n immediately available from the XHR pool:\n\n (ajax-call\n \\\"http://localhost:8080/my-post-route\\\" ; Endpoint URL\n\n {:method :post ; \u2208 #{:get :post :put}\n :resp-type :text ; \u2208 #{:auto :text :edn :json :xml\n ; :bin/array-buffer :bin/blob} ; Expected response type\n\n :headers {\\\"Content-Type\\\" \\\"text/plain\\\"} ; Request headers\n :params {:username \\\"Rich Hickey\\\" :type \\\"Awesome\\\"} ; Request params\n\n :timeout-ms 10000 ; Request timeout in msecs\n :with-credentials? false ; Enable if using CORS\n :xhr-pool my-xhr-pool ; Optional `goog.net.XhrIoPool` instance or delay\n :xhr-timeout-ms 2500 ; Optional max msecs to wait on pool for `XhrIo`\n :xhr-cb-fn (fn [xhr]) ; Optional fn to call with `XhrIo` from pool when available\n }\n\n (fn callback [resp-map]\n (let [{:keys [success? ?status ?error ?content ?content-type]} resp-map]\n ;; ?status ; \u2208 #{nil 200 404 ...}, non-nil iff server responded\n ;; ?error ; \u2208 #{nil :timeout\n :abort :http-error :exception :xhr-pool-depleted :bad-edn}\n (js/alert (str \\\"Ajax response: \\\" resp-map)))))\"\n [url\n {:keys [method body params headers timeout-ms resp-type with-credentials?\n xhr-pool xhr-cb-fn xhr-timeout-ms] :as opts\n :or\n {method :get\n timeout-ms 10000\n resp-type :auto\n xhr-pool default-xhr-pool_\n xhr-timeout-ms 2500}}\n\n callback-fn]\n\n (cond\n :do (truss/have? [:or nil? nat-int?] timeout-ms)\n :let [^goog.net.XhrIoPool xhr-pool (force xhr-pool)]\n :let\n [with-xhr\n (fn [^goog.net.XhrIo xhr]\n (truss/try*\n (let [timeout-ms (or (get opts :timeout) timeout-ms) ; Deprecated opt\n\n {:keys [url+ content content-type]}\n (cond\n (case method (:get :head :options :trace \"GET\" \"HEAD\" \"OPTIONS\" \"TRACE\") true false)\n (when-not (empty? params)\n {:url+ (str url \"?\" (gquery-data/createFromMap (clj->js params)))})\n\n body ; Given explicit body \u2208 #{string js/FormData js/ArrayBuffer ...}\n (if (empty? params)\n {:content body}\n {:content body, :url+ (str url \"?\" (gquery-data/createFromMap (clj->js params)))})\n\n (and (exists? js/FormData) (instance? js/FormData params)) ; Back compatability\n {:content params}\n\n (and (exists? js/FormData) (rsome-kv (fn [_ v] (instance? js/Blob v)) params)) ; Back compatibility\n (let [form-data (js/FormData.)]\n (doseq [[k v] params] (.append form-data (name k) v))\n {:content form-data})\n\n :else\n {:content (str (gquery-data/createFromMap (clj->js params)))\n :content-type \"application/x-www-form-urlencoded;charset=UTF-8\"})\n\n headers (map-keys #(str/lower-case (name %)) headers)\n headers (assoc-some headers \"x-requested-with\"\n (get headers \"x-requested-with\" \"XMLHTTPRequest\"))\n headers (assoc-some headers \"content-type\"\n (get headers \"content-type\" content-type))\n\n progress-listener\n (when-let [pf (get opts :progress-fn)] ; Undocumented\n (.setProgressEventsEnabled xhr true)\n (gevents/listen xhr goog.net.EventType/PROGRESS\n (fn [ev]\n (let [length-computable? (.-lengthComputable ev)\n loaded (.-loaded ev)\n total (.-total ev)\n ?ratio (when (and length-computable? (not= total 0))\n (/ loaded total))]\n (pf\n {:length-computable? length-computable?\n :?ratio ?ratio\n :loaded loaded\n :total total\n :ev ev})))))]\n\n (gevents/listenOnce xhr goog.net.EventType/READY\n (fn [_] (.releaseObject xhr-pool xhr)))\n\n (gevents/listenOnce xhr goog.net.EventType/COMPLETE\n (fn wrapped-callback [resp]\n (let [success? (.isSuccess xhr) ; true iff no error or timeout\n status (.getStatus xhr) ; -1, 200, etc.\n\n [status content-type content error]\n (when (not= status -1) ; Got a response from server\n (let [content-type (.getResponseHeader xhr \"content-type\") ; Case insensitive\n resp-type\n (cond\n (not= resp-type :auto) resp-type\n (nil? content-type) :text\n :else\n (let [ct (str/lower-case content-type)]\n (cond\n (str-contains? ct \"/edn\") :edn\n (str-contains? ct \"/json\") :json\n (str-contains? ct \"/xml\") :xml\n :else :text)))\n\n [content error]\n (case resp-type\n :text [(.getResponseText xhr)]\n :json [(.getResponseJson xhr)]\n :xml [(.getResponseXml xhr)]\n :edn\n (when-let [edn (.getResponseText xhr)]\n (truss/try*\n [(read-edn edn)]\n (catch :all _ [edn :bad-edn])))\n\n [(.getResponse xhr)])]\n\n [status content-type content error]))\n\n success? (and success? (not error))]\n\n (when progress-listener\n (gevents/unlistenByKey progress-listener))\n\n (callback-fn\n {:raw-resp resp\n :xhr xhr ; = (.-target resp)\n :success? success?\n :?status status\n :?content-type content-type\n :?content content\n :?error\n (if success?\n nil\n (cond\n error error ; :bad-edn, etc.\n status status ; Http error status code (e.g. 404)\n :else\n (case (.getLastErrorCode xhr)\n goog.net.ErrorCode/NO_ERROR nil\n goog.net.ErrorCode/EXCEPTION :exception\n goog.net.ErrorCode/HTTP_ERROR :http-error\n goog.net.ErrorCode/ABORT :abort\n goog.net.ErrorCode/TIMEOUT :timeout\n (do :unknown))))}))))\n\n (.setTimeoutInterval xhr (or timeout-ms 0)) ; 0 => no timeout\n (.setWithCredentials xhr (boolean with-credentials?))\n (.setResponseType xhr\n (case resp-type\n (:auto nil) \"\"\n (:text :edn) \"text\"\n :json \"json\"\n :xml \"document\"\n :bin/array-buffer \"arraybuffer\"\n :bin/blob \"blob\"\n resp-type))\n\n (.send xhr (or url+ url) (name method) content (clj->js headers))\n\n (when-let [cb xhr-cb-fn] (truss/catching (cb xhr)))\n xhr)\n\n (catch :all e\n (.releaseObject xhr-pool xhr)\n (callback-fn {:?error e})\n nil)))]\n\n :if-let [xhr (.getObject xhr-pool)] ; Available immediately\n (with-xhr xhr)\n\n (zero? (or xhr-timeout-ms 0))\n (do (callback-fn {:?error :xhr-pool-depleted}) nil)\n\n :else\n (let [done?_ (atom false)]\n\n (js/setTimeout\n (fn xhr-timeout []\n (when (compare-and-set! done?_ false true)\n (callback-fn {:?error :xhr-pool-timeout})))\n xhr-timeout-ms)\n\n (.getObject xhr-pool\n (fn xhr-cb [xhr]\n ;; We've acquired xhr after some time\n (if (compare-and-set! done?_ false true)\n (with-xhr xhr)\n (.releaseObject xhr-pool xhr))))\n nil))))\n\n;;;; Ring\n\n#?(:clj\n (defn session-swap\n \"Util to help correctly update Ring sessions (something easy to get wrong!).\n\n Given a Ring request (rreq) and Ring response (rresp), returns a new\n Ring response with the response session updated to be (f )\n or (apply f args).\"\n [rreq rresp f & args]\n (when rresp\n (let [base (get rresp :session (get rreq :session))\n new-session (if args (apply f base args) (f base))]\n (assoc rresp :session new-session)))))\n\n#?(:clj\n (defn normalize-headers [rreq-or-rresp]\n (when rreq-or-rresp\n (assoc rreq-or-rresp :headers (map-keys str/lower-case (:headers rreq-or-rresp))))))\n\n(comment (normalize-headers {:headers {\"Foo1\" \"bar1\" \"FOO2\" \"bar2\" \"foo3\" \"bar3\"}}))\n\n#?(:clj\n (defn ^:no-doc -ring-merge-headers\n \"Private, don't use.\"\n [h1 h2]\n (reduce-kv\n (fn [m k2 v2]\n (if-let [e1 (find h1 k2)]\n (let [v1 (val e1)\n v3\n (if (vector? v1)\n (if (vector? v2)\n (if (:add (meta v2)) ; vec <- vec\n (into v1 v2)\n (do v2))\n (conj v1 v2)) ; vec <- el\n (if (vector? v2)\n (if (:add (meta v2)) ; el <- vec\n (into [v1] v2)\n (do v2))\n #_[v1 v2] v2)) ; el <- el\n ]\n\n (assoc m k2 v3))\n (assoc m k2 v2)))\n h1\n h2)))\n\n(comment\n (-ring-merge-headers\n {\"a\" \"A1\" \"b\" \"B1\" \"c\" \"C1\"}\n {\"a\" \"A2\" \"b\" ^:add [\"B2\"] \"d\" \"D2\"}))\n\n#?(:clj\n (do\n (defn ring-resp-map [x] (when x (if (map? x) x {:body x})))\n (defn ring-set-body [body rresp] (assoc (ring-resp-map rresp) :body body))\n (defn ring-set-status [code rresp] (assoc (ring-resp-map rresp) :status code))\n (defn ring-set-headers [headers rresp] (assoc (ring-resp-map rresp) :headers headers))\n (defn ring-default-headers [headers rresp] (assoc (ring-resp-map rresp) :headers (-ring-merge-headers headers (get rresp :headers))))\n (defn ring-merge-headers [headers rresp] (assoc (ring-resp-map rresp) :headers (-ring-merge-headers (get rresp :headers) headers)))))\n\n(comment\n (ring-merge-headers {\"BAR\" \"baz\"} {:body \"foo\"})\n (ring-merge-headers {\"bar\" \"baz\"} \"foo\" )\n (ring-merge-headers {\"bar\" ^:add [\"baz2\"]} {:body \"foo\" :headers {\"bar\" \"baz1\"}}))\n\n#?(:clj\n (defn ring-redirect-resp\n ([ url ] (ring-redirect-resp :temp url nil))\n ([kind url ] (ring-redirect-resp kind url nil))\n ([kind url flash]\n {:headers {\"location\" url}\n :body nil\n :flash flash\n :status\n (case kind\n (301 :permanent :perm) 301\n (302 :temporary :temp nil) 302\n kind)})))\n\n(comment (ring-redirect-resp 303 \"/foo\" \"boo!\"))\n\n(defn url-encode\n \"Based on .\"\n #?(:clj [s & [encoding]] :cljs [s])\n (when s\n #?(:clj (-> (str s)\n (java.net.URLEncoder/encode (str (or encoding \"UTF-8\")))\n (str/replace \"*\" \"%2A\") ; Cautious, \n (str/replace \"+\" \"%20\") ; Cautious, \n )\n :cljs (-> (str s)\n (js/encodeURIComponent s)\n (str/replace \"*\" \"%2A\")))))\n\n(defn url-decode\n \"Stolen from .\"\n [s & [encoding]]\n (when s\n #?(:clj (java.net.URLDecoder/decode (str s) (str (or encoding \"UTF-8\")))\n :cljs (js/decodeURIComponent (str s)))))\n\n(comment\n (url-decode (url-encode \"Hello there\"))\n (url-decode \"hello+there\"))\n\n(defn format-query-string [m]\n (let [param (fn [k v] (str (url-encode (as-qname k)) \"=\"\n (url-encode (or (as-?qname v) (str v)))))\n join (fn [strs] (str/join \"&\" strs))]\n (if (empty? m)\n \"\"\n (join\n (for [[k v] m :when (core/some? v)]\n (if (sequential? v)\n (join (mapv (partial param k) (or (seq v) [\"\"])))\n (param k v)))))))\n\n(comment\n (format-query-string {})\n (format-query-string {:k1 \"v1\" :k2 \"v2\" :k3 nil :k4 \"\" :k5 [\"v4a\" \"v4b\" 7] :k6 []})\n (format-query-string {:a/b :c/d})\n (format-query-string {:k nil}) ; Nb to allow removing pre-existing params, etc.\n )\n\n(defn- assoc-conj [m k v]\n (assoc m k (if-let [cur (get m k)] (if (vector? cur) (conj cur v) [cur v]) v)))\n\n(comment (assoc-conj {:a \"a\"} :a \"b\"))\n\n(defn parse-query-params\n \"Based on `ring-codec/form-decode`.\"\n [s & [keywordize? encoding]]\n (if (or (str/blank? s) (not (str-contains? s \"=\")))\n {}\n (let [;; For convenience (e.g. JavaScript win-loc :search)\n s (if (str-starts-with? s \"?\") (subs s 1) s)\n m (reduce\n (fn [m param]\n (if-let [[k v] (str/split param #\"=\" 2)]\n (assoc-conj m (url-decode k encoding) (url-decode v encoding))\n m))\n {}\n (str/split s #\"&\"))]\n (if-not keywordize?\n m\n (map-keys keyword m)))))\n\n(comment\n (parse-query-params nil)\n (parse-query-params \"?foo=bar\" :keywordize)\n (-> {:k1 \"v1\" :k2 \"v2\" :k3 nil :k4 \"\" :k5 [\"v4a\" \"v4b\"] :k6 [] :k7 47}\n (format-query-string)\n (parse-query-params)))\n\n(defn merge-url-with-query-string [url m]\n (let [[url ?qstr] (str/split (str url) #\"\\?\" 2)\n qmap (merge\n (when ?qstr (map-keys keyword (parse-query-params ?qstr)))\n (map-keys keyword m))\n ?qstr (as-?nblank (format-query-string qmap))]\n (if-let [qstr ?qstr] (str url \"?\" qstr) url)))\n\n(comment\n (merge-url-with-query-string \"/\" nil)\n (merge-url-with-query-string \"/?foo=bar\" nil)\n (merge-url-with-query-string \"/?foo=bar\" {\"foo\" \"overwrite\"})\n (merge-url-with-query-string \"/?foo=bar\" {:foo \"overwrite\"})\n (merge-url-with-query-string \"/?foo=bar\" {:foo nil})\n (merge-url-with-query-string \"/?foo=bar\" {:foo2 \"bar2\" :num 5 :foo nil}))\n\n#?(:cljs\n (defn ^string pr-json\n \"Returns given Cljs argument as JSON string.\"\n [x] (.stringify js/JSON (clj->js x :keyword-fn as-qname))))\n\n#?(:cljs\n (defn read-json\n \"Reads given JSON string to return a Cljs value.\"\n ([ s] (read-json false s))\n ([kw-keys? s]\n (cond\n (or (nil? s) (= s \"\")) nil\n (not (string? s))\n (truss/ex-info! \"[encore/read-json] Unexpected arg type (expected string or nil)\"\n {:arg (typed-val s)})\n\n :else\n (if kw-keys?\n (js->clj (js/JSON.parse s) :keywordize-keys true)\n (js->clj (js/JSON.parse s)))))))\n\n;;;; DEPRECATED\n;; {:deprecated \"v ()\" :doc \"Prefer ``.\"}\n;; Note `:deprecation-nowarn` meta used as workaround for long-standing\n;; CLJS-2000, Ref. .\n\n#?(:clj\n (defmacro deprecated\n \"Elides body when `taoensso.elide-deprecated` JVM property or\n `TAOENSSO_ELIDE_DEPRECATED` environment variable is \u2208 #{\\\"true\\\" \\\"TRUE\\\"}.\"\n [& body]\n (let [elide? (get-env {:as :bool} :taoensso.elide-deprecated<.platform>)]\n (when-not elide? `(do ~@body)))))\n\n(deprecated \"Older misc\"\n (defn ^:no-doc -swap-val!\n \"Prefer `latom`.\"\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"}\n [atom_ k f]\n (loop []\n (let [m0 @atom_\n v1 (f (get m0 k))\n m1 (assoc m0 k v1)]\n (if (-cas!? atom_ m0 m1)\n v1\n (recur)))))\n\n #?(:cljs (def ^:no-doc ^:deprecated js-?win js-?window))\n #?(:cljs (def ^:no-doc ^:deprecated regular-num? finite-num?))\n #?(:cljs (def ^:no-doc ^:deprecated get-window-location get-win-loc))\n #?(:clj (def ^:no-doc ^:deprecated srng secure-rng))\n (def ^:no-doc ^:deprecated backport-run! run!)\n (def ^:no-doc ^:deprecated fq-name as-qname)\n (def ^:no-doc ^:deprecated qname as-qname)\n (def ^:no-doc ^:deprecated merge-deep-with nested-merge-with)\n (def ^:no-doc ^:deprecated merge-deep nested-merge)\n (def ^:no-doc ^:deprecated parse-bool as-?bool)\n (def ^:no-doc ^:deprecated parse-int as-?int)\n (def ^:no-doc ^:deprecated parse-float as-?float)\n (def ^:no-doc ^:deprecated swapped* swapped)\n (def ^:no-doc ^:deprecated memoize-a0_ memoize)\n (def ^:no-doc ^:deprecated memoize-a1_ memoize)\n (def ^:no-doc ^:deprecated a0-memoize_ memoize)\n (def ^:no-doc ^:deprecated a1-memoize_ memoize)\n (def ^:no-doc ^:deprecated memoize-1 memoize-last)\n (def ^:no-doc ^:deprecated memoize1 memoize-last)\n (def ^:no-doc ^:deprecated memoize* memoize)\n (def ^:no-doc ^:deprecated memoize_ memoize)\n (def ^:no-doc ^:deprecated nnil? core/some?)\n (def ^:no-doc ^:deprecated nneg-num? nat-num?)\n (def ^:no-doc ^:deprecated nneg-int? nat-int?)\n (def ^:no-doc ^:deprecated nneg-float? nat-float?)\n (def ^:no-doc ^:deprecated uint? nat-int?)\n (def ^:no-doc ^:deprecated pint? pos-int?)\n (def ^:no-doc ^:deprecated nnil= some=)\n (def ^:no-doc ^:deprecated as-?uint as-?nat-int)\n (def ^:no-doc ^:deprecated as-?pint as-?pos-int)\n (def ^:no-doc ^:deprecated as-?ufloat as-?nat-float)\n (def ^:no-doc ^:deprecated as-?pfloat as-?pos-float)\n (def ^:no-doc ^:deprecated as-uint as-nat-int)\n (def ^:no-doc ^:deprecated as-pint as-pos-int)\n (def ^:no-doc ^:deprecated as-ufloat as-nat-float)\n (def ^:no-doc ^:deprecated as-pfloat as-pos-float)\n (def ^:no-doc ^:deprecated run!* run!)\n (def ^:no-doc ^:deprecated nano-time now-nano)\n (def ^:no-doc ^:deprecated -swap-cache! -swap-val!)\n (def ^:no-doc ^:deprecated -unswapped swapped-vec)\n (def ^:no-doc ^:deprecated -vswapped swapped-vec)\n (def ^:no-doc ^:deprecated -swap-k! -swap-val!)\n (def ^:no-doc ^:deprecated update-in* update-in)\n (def ^:no-doc ^:deprecated idx-fn counter)\n (def ^:no-doc ^:deprecated vec* ensure-vec)\n (def ^:no-doc ^:deprecated set* ensure-set)\n (def ^:no-doc ^:deprecated have-transducers? true)\n\n (def ^:no-doc ^:deprecated pval? pnum?)\n (def ^:no-doc ^:deprecated as-?pval as-?pnum)\n (def ^:no-doc ^:deprecated as-pval as-pnum)\n\n ;; Used by old versions of Timbre, Tufte\n (let [nolist? #(contains? #{nil [] #{}} %)]\n (defn ^:no-doc ^:deprecated compile-ns-filter\n ([ns-pattern ] ^:deprecation-nowarn (compile-ns-filter ns-pattern nil))\n ([whitelist blacklist]\n (if (and (nolist? whitelist) (nolist? blacklist))\n (fn [_] true) ; Unfortunate API choice\n (name-filter {:allow whitelist :disallow blacklist})))))\n\n #?(:clj (defn ^:no-doc ^:deprecated set-body [rresp body] (ring-set-body body rresp)))\n #?(:clj (defn ^:no-doc ^:deprecated set-status [rresp code] (ring-set-status code rresp)))\n #?(:clj (defn ^:no-doc ^:deprecated merge-headers [rresp headers] (ring-merge-headers headers rresp)))\n #?(:clj (def ^:no-doc ^:deprecated redirect-resp ring-redirect-resp))\n #?(:clj (defn ^:no-doc ^:deprecated compiling-cljs? []\n (when-let [ns (find-ns 'cljs.analyzer)]\n (when-let [v (ns-resolve ns '*cljs-file*)]\n (boolean @v)))))\n\n #?(:clj\n (defmacro catching\n \"Terse, cross-platform (try* expr (catch :all _)).\n Arities besides #{1 2} are deprecated, prefer `try*` in these cases.\"\n ([ expr] `(truss/try* ~expr (catch :all ~'_)))\n ([error-type expr] `(truss/try* ~expr (catch ~error-type ~'_)))\n\n ;;; Deprecated arities:\n ([try-expr error-sym catch-expr ] `(truss/try* ~try-expr (catch :all ~error-sym ~catch-expr)))\n ([try-expr error-sym catch-expr finally-expr] `(truss/try* ~try-expr (catch :all ~error-sym ~catch-expr) (finally ~finally-expr)))\n ([try-expr error-type error-sym catch-expr finally-expr] `(truss/try* ~try-expr (catch ~error-type ~error-sym ~catch-expr) (finally ~finally-expr)))))\n\n #?(:clj\n (do\n (defmacro ^:no-doc ^:deprecated if-lets [& args] `(taoensso.encore/if-let ~@args))\n (defmacro ^:no-doc ^:deprecated when-lets [& args] `(taoensso.encore/when-let ~@args))\n (defmacro ^:no-doc ^:deprecated if-not* [& args] `(taoensso.encore/if-not ~@args))\n (defmacro ^:no-doc ^:deprecated cond* [& args] `(taoensso.encore/cond ~@args))\n (defmacro ^:no-doc ^:deprecated defonce* [& args] `(taoensso.encore/defonce ~@args))\n (defmacro ^:no-doc ^:deprecated have-in [a1 & an] `(taoensso.encore/have ~a1 :in ~@an))\n (defmacro ^:no-doc ^:deprecated have-in! [a1 & an] `(taoensso.encore/have! ~a1 :in ~@an))\n (defmacro ^:no-doc ^:deprecated cond-throw [& args] `(taoensso.encore/cond! ~@args))\n (defmacro ^:no-doc ^:deprecated catch-errors* [& args] `(taoensso.encore/catching ~@args))\n (defmacro ^:no-doc ^:deprecated use-fixtures* [& args] `(taoensso.encore/use-fixtures ~@args))\n (defmacro ^:no-doc ^:deprecated nano-time* [& args] `(taoensso.encore/now-nano* ~@args))\n (defmacro ^:no-doc ^:deprecated qbench [& args] `(taoensso.encore/quick-bench ~@args))\n (defmacro ^:no-doc ^:deprecated catch-errors [& body] `(truss/try* [(do ~@body) nil] (catch :all e# [nil e#])))\n\n (defmacro ^:no-doc ^:deprecated -vol! [val] `(volatile! ~val))\n (defmacro ^:no-doc ^:deprecated -vol-reset! [vol_ val] `(vreset! ~vol_ ~val))\n (defmacro ^:no-doc ^:deprecated -vol-swap! [vol_ f & args] `(vswap! ~vol_ ~f ~@args))\n\n (defmacro ^:no-doc thrown\n {:deprecated \"Encore v3.31.0 (2022-10-27)\"\n :doc \"Prefer `throws`.\"}\n [& args] `(truss/throws ~@args))))\n\n ;;; Prefer `str-join` when possible (needs Clojure 1.7+)\n #?(:cljs (defn ^:no-doc ^:deprecated undefined->nil [x] (if (undefined? x) nil x)))\n (defn ^:no-doc ^:deprecated spaced-str-with-nils [xs] (str/join \" \" (mapv nil->str xs)))\n (defn ^:no-doc ^:deprecated spaced-str [xs] (str/join \" \" #?(:clj xs :cljs (mapv undefined->nil xs))))\n\n ;; Arg order changed for easier partials, etc.:\n (defn ^:no-doc ^:deprecated approx=\n ([x y ] (approx== x y))\n ([x y signf] (approx== signf x y)))\n\n ;; & coll changed to coll:\n (defn ^:no-doc ^:deprecated join-once [sep & coll] (str-join-once sep coll))\n\n #?(:clj\n (do ;; Used by Carmine <= v2.7.0\n (defmacro ^:no-doc ^:deprecated repeatedly* [n & body] `(repeatedly-into* [] ~n ~@body))\n (defmacro ^:no-doc ^:deprecated repeatedly-into* ; Used by Nippy < v2.10\n [coll n & body] `(repeatedly-into ~coll ~n (fn [] ~@body)))))\n\n (defn ^:no-doc ^:deprecated nnil-set [x] (disj (ensure-set x) nil))\n\n ;;; Arg order changed for easier partials\n (defn ^:no-doc ^:deprecated keys= [m ks] (ks= ks m))\n (defn ^:no-doc ^:deprecated keys<= [m ks] (ks<= ks m))\n (defn ^:no-doc ^:deprecated keys>= [m ks] (ks>= ks m))\n (defn ^:no-doc ^:deprecated keys=nnil? [m ks] (ks-nnil? ks m))\n\n ;; Used by Sente <= v1.4.0-alpha2\n (def ^:no-doc ^:deprecated logging-level (atom :debug)) ; Just ignoring this now\n\n #?(:cljs ; Used by Sente <= v1.1.0\n (defn ^:no-doc ^:deprecated set-exp-backoff-timeout! [nullary-f & [nattempt]]\n (js/setTimeout nullary-f (exp-backoff (or nattempt 0)))))\n\n #?(:cljs\n (do ; Level-based Cljs logging (prefer Timbre v4+)\n (defonce ^:no-doc ^:deprecated ^:dynamic *log-level* :debug)\n (def ^:private log?\n (let [->n {:trace 1 :debug 2 :info 3 :warn 4 :error 5 :fatal 6 :report 7}]\n (fn [level] (>= (->n level) (->n *log-level*)))))\n\n (defn ^:no-doc ^:deprecated tracef [fmt & xs] (when (log? :trace) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated debugf [fmt & xs] (when (log? :debug) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated infof [fmt & xs] (when (log? :info) (apply logf fmt xs)))\n (defn ^:no-doc ^:deprecated warnf [fmt & xs] (when (log? :warn) (apply logf (str \"WARN: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated errorf [fmt & xs] (when (log? :error) (apply logf (str \"ERROR: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated fatalf [fmt & xs] (when (log? :fatal) (apply logf (str \"FATAL: \" fmt) xs)))\n (defn ^:no-doc ^:deprecated reportf [fmt & xs] (when (log? :report) (apply logf fmt xs)))))\n\n (defn ^:no-doc ^:deprecated greatest [coll & [?comparator]]\n (let [comparator (or ?comparator rcompare)]\n (reduce #(if (pos? (long (comparator %1 %2))) %2 %1) coll)))\n\n (defn ^:no-doc ^:deprecated least [coll & [?comparator]]\n (let [comparator (or ?comparator rcompare)]\n (reduce #(if (neg? (long (comparator %1 %2))) %2 %1) coll)))\n\n (defn ^:no-doc ^:deprecated clj1098 \"Ref. \" [x] (or x {}))\n\n (defn ^:no-doc ^:deprecated distinct-by\n \"Prefer `xdistinct`.\"\n [keyfn coll]\n (let [step (fn step [xs seen]\n (lazy-seq\n ((fn [[v :as xs] seen]\n (when-let [s (seq xs)]\n (let [v* (keyfn v)]\n (if (contains? seen v*)\n (recur (rest s) seen)\n (cons v (step (rest s) (conj seen v*)))))))\n xs seen)))]\n (step coll #{})))\n\n (defn ^:no-doc ^:deprecated distinctv\n \"Prefer `xdistinct`.\"\n ([ coll] ^:deprecation-nowarn (distinctv identity coll))\n ([keyfn coll]\n (let [tr (reduce (fn [[v seen] in]\n (let [in* (keyfn in)]\n (if-not (contains? seen in*)\n [(conj! v in) (conj seen in*)]\n [v seen])))\n [(transient []) #{}]\n coll)]\n (persistent! (nth tr 0)))))\n\n (defn ^:no-doc ^:deprecated map-kvs [kf vf m]\n \"Prefer `reduce-kv`.\"\n (if-not m {}\n (let [vf (cond (nil? vf) (fn [_ v] v) :else vf)\n kf (cond (nil? kf) (fn [k _] k)\n (identical-kw? kf :keywordize) (fn [k _] (keyword k))\n :else kf)]\n (persistent!\n (reduce-kv (fn [m k v] (assoc! m (kf k v) (vf k v)))\n (transient {}) m)))))\n\n (defn ^:no-doc ^:deprecated as-map [kvs & [kf vf]]\n \"Prefer `reduce-kvs`.\"\n (if (empty? kvs) {}\n (let [vf (cond (nil? vf) (fn [_ v] v) :else vf)\n kf (cond (nil? kf) (fn [k _] k)\n (identical-kw? kf :keywordize) (fn [k _] (keyword k))\n :else kf)]\n (persistent!\n (reduce-kvs\n (fn [m k v] (assoc! m (kf k v) (vf k v))) (transient {}) kvs)))))\n\n (defn ^:no-doc ^:deprecated keywordize-map [m] (map-keys keyword m))\n (defn ^:no-doc ^:deprecated removev [pred coll] (filterv (complement pred) coll))\n (defn ^:no-doc ^:deprecated nvec? [n x] (and (vector? x) (= (count x) n)))\n\n (defn ^:no-doc ^:deprecated memoized [cache f & args]\n (if-not cache ; { }\n (apply f args)\n (deref ^:deprecation-nowarn\n (-swap-val! cache args (fn [?dv] (if ?dv ?dv (delay (apply f args))))))))\n\n (defn- translate-signed-idx [^long signed-idx ^long max-idx]\n (if (>= signed-idx 0)\n (min signed-idx max-idx)\n (max 0 (+ signed-idx max-idx))))\n\n (comment (translate-signed-idx -3 5))\n\n (def ^:no-doc ^:deprecated sentinel (new-object))\n (defn ^:no-doc ^:deprecated sentinel? [x] (identical? x sentinel))\n (defn ^:no-doc ^:deprecated nil->sentinel [x] (if (nil? x) sentinel x))\n (defn ^:no-doc ^:deprecated sentinel->nil [x] (if ^:deprecation-nowarn (sentinel? x) nil x))\n\n (defn ^:no-doc ^:deprecated singleton? [coll] (if (counted? coll) (= (count coll) 1) (not (next coll))))\n (defn ^:no-doc ^:deprecated ->?singleton [coll] (when ^:deprecation-nowarn (singleton? coll) (let [[c1] coll] c1)))\n (defn ^:no-doc ^:deprecated ->vec [x] (cond (vector? x) x (sequential? x) (vec x) :else [x]))\n\n (defn ^:no-doc ^:deprecated fzipmap [ks vs]\n (loop [m (transient {})\n ks (seq ks)\n vs (seq vs)]\n (if-not (and ks vs)\n (persistent! m)\n (recur (assoc! m (first ks) (first vs))\n (next ks)\n (next vs)))))\n\n (defn ^:no-doc ^:deprecated filter-kvs [pred m] (if (nil? m) {} (reduce-kv (fn [m k v] (if (pred k v) m (dissoc m k))) m m)))\n (defn ^:no-doc ^:deprecated remove-kvs [pred m] (if (nil? m) {} (reduce-kv (fn [m k v] (if (pred k v) (dissoc m k) m)) m m)))\n\n (defn ^:no-doc ^:deprecated revery [pred coll] (reduce (fn [acc in] (if (pred in) coll (reduced nil))) coll coll))\n (defn ^:no-doc ^:deprecated revery-kv [pred coll] (reduce-kv (fn [acc k v] (if (pred k v) coll (reduced nil))) coll coll))\n\n (def ^:no-doc ^:deprecated every revery)\n\n (defn ^:no-doc ^:deprecated replace-in [m & ops]\n (reduce\n (fn [m ?op]\n (if-not ?op\n m ; Support conditional ops\n (let [[type ks valf] ?op\n f (if (identical-kw? type :reset) (fn [_] valf) valf)]\n (update-in m ks nil f))))\n m\n ops))\n\n (let [return (fn [m0 v0 m1 v1] [v0 v1])]\n (defn ^:no-doc ^:deprecated swap-in!*\n \"Prefer `swap-in!` with `swapped` return value.\"\n ([atom_ f] (-swap-k0! return atom_ f))\n ([atom_ ks f] (-swap-kn! return atom_ ks nil f))\n ([atom_ ks not-found f] (-swap-kn! return atom_ ks not-found f)))\n\n (defn ^:no-doc ^:deprecated swap-val!*\n \"Prefer `swap-val!` with `swapped` return value.\"\n ([atom_ k f] (-swap-k1! return atom_ k nil f))\n ([atom_ k not-found f] (-swap-k1! return atom_ k not-found f))))\n\n (def ^:no-doc ^:deprecated dswap! swap-in!*)\n (def ^:no-doc ^:deprecated swap!* swap-in!*)\n\n #?(:clj (defalias ^:no-doc ^:deprecated taoensso.truss/get-dynamic-assertion-data))\n #?(:clj (defalias ^:no-doc ^:deprecated taoensso.truss/with-dynamic-assertion-data))\n\n (defalias ^:no-doc compile-str-filter name-filter\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"\n :doc \"Renamed to `name-filter`.\"})\n\n (defn ^:no-doc ^:deprecated kw-identical?\n \"Prefer `identical-kw?` macro.\"\n #?(:cljs {:tag 'boolean})\n [x y] (identical-kw? x y))\n\n #?(:clj\n (defmacro ^:no-doc -if-cas!\n \"Prefer `-cas!?`.\"\n {:deprecated \"Encore v3.67.0 (2023-09-08)\"}\n [atom_ old-val new-val then & [else]]\n `(if (-cas!? ~atom_ ~old-val ~new-val) ~then ~else)))\n\n (def* ^:const ^:no-doc system-newline\n \"Prefer `newline`.\"\n {:deprecated \"Encore v3.68.0 (2023-09-25)\"}\n newline)\n\n #?(:clj (defalias ^{:no-doc true :deprecated \"v3.68.0 (2023-09-25)\"} -unexpected-arg truss/unexpected-arg!))\n\n (def* ^:no-doc -matching-error\n \"Prefer `matching-error`.\"\n {:deprecated \"Encore v3.70.0 (2023-10-17)\"}\n truss/matching-error)\n\n (defn ^:no-doc rate-limiter*\n \"Prefer `rate-limiter`.\"\n {:deprecated \"Encore v3.120.0 (2024-09-22)\"}\n ([ spec] (rate-limiter {:with-state? true} spec))\n ([opts spec] (rate-limiter (assoc opts :with-state? true) spec)))\n\n (def* ^:no-doc limiter* \"Prefer `rate-limiter*`.\" {:deprecated \"Encore v3.73.0 (2023-10-30)\"} rate-limiter*)\n (def* ^:no-doc limiter \"Prefer `rate-limiter`.\" {:deprecated \"Encore v3.73.0 (2023-10-30)\"} rate-limiter)\n (def* ^:no-doc dis-assoc-some \"Prefer `reassoc-some`.\" {:deprecated \"Encore v3.87.0 (2024-02-29)\"} reassoc-some)\n (def* ^:no-doc println-atomic \"Prefer `println`.\" {:deprecated \"Encore v3.98.0 (2024-04-08)\"} println)\n (def* ^:no-doc -merge-with \"Prefer `merge-with*`.\" {:deprecated \"Encore v3.113.0 (2024-07-03)\"} merge-with*)\n (def* ^:no-doc fast-merge \"Prefer `merge`.\" {:deprecated \"Encore v3.113.0 (2024-07-03)\"} merge)\n (def* ^:no-doc secure-rand-bytes \"Prefer `rand-bytes`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} (partial rand-bytes true))\n (def* ^:no-doc round* \"Prefer `round`.\" {:deprecated \"Encore v3.126.0 (2024-10-23)\"} round)\n\n #?(:clj (def* ^:no-doc get-host-ip \"Prefer `host-ip`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} host-ip))\n #?(:clj (def* ^:no-doc get-hostname \"Prefer `hostname`.\" {:deprecated \"Encore v3.115.0 (2024-08-18)\"} hostname))\n #?(:cljs (def* ^:no-doc ajax-lite \"Prefer `ajax-call`.\" {:deprecated \"Encore v3.74.0 (2023-11-06)\"} ajax-call))\n #?(:clj\n (do\n (defmacro ^:no-doc ^:deprecated do-nil [& body] `(do ~@body nil))\n (defmacro ^:no-doc ^:deprecated do-false [& body] `(do ~@body false))\n (defmacro ^:no-doc ^:deprecated do-true [& body] `(do ~@body true))))\n\n #?(:clj\n (defmacro ^:no-doc deftype-print-methods \"Prefer `def-print`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [& types]\n `(do\n ~@(map\n (fn [type]\n `(defmethod print-method ~type [~'x ~(with-meta 'w {:tag 'java.io.Writer})]\n (.write ~'w (str ~(str \"#\" *ns* \".\") ~'x)))) types))))\n\n (defn ^:no-doc error-data\n \"Prefer `ex-map`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [x]\n (when-let [data-map\n (and x\n (or\n (core/ex-data x) ; ExceptionInfo\n #?(:clj (when (instance? Throwable x) {})\n :cljs {})))]\n\n (let [base-map\n #?(:clj\n (let [^Throwable t x] ; (catch Throwable t <...>)\n {:err-type (type t)\n :err-msg (.getLocalizedMessage t)\n :err-cause (.getCause t)})\n\n :cljs\n (let [err x] ; (catch :default t <...)\n {:err-type (type err)\n :err-msg (.-message err)\n :err-cause (.-cause err)}))]\n\n #_(assoc base-map :err-data data-map)\n (conj base-map data-map))))\n\n #?(:clj\n (defmacro ^:no-doc caught-error-data\n \"Prefer `throws?`.\"\n {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [& body] `(truss/try* (do ~@body nil) (catch :all e# (error-data e#)))))\n\n #?(:clj\n (defn ^:no-doc ^:deprecated ident-hex-str \"Prefer `hex-ident-str`.\"\n ^String [obj] (str \"0x\" (hex-ident-str obj))))\n\n (defn ^:no-doc when?\n \"Prefer `is`.\" {:deprecated \"Encore v3.98.0 (2024-04-08)\"}\n [pred x] (when (truss/catching (pred x)) x))\n\n #?(:default (defn ^:no-doc call-form? \"Prefer `list-form`.\" {:deprecated \"Encore v3.105.0 (2024-04-29)\"} [x] (list-form? x)))\n #?(:clj\n (defn ^:no-doc call-in-form?\n [x]\n {:deprecated \"Encore v3.105.0 (2024-04-29)\"}\n (when x\n (cond\n (list-form? x) true\n (coll? x) (if (rsome call-in-form? x) true false)\n :else false)))))\n\n(deprecated \"2024-01 New env config API\"\n #?(:clj\n (do\n (defn- get-config-opts [opts]\n (let [edn? (= (get opts :as) :edn)\n spec (get opts :prop)\n spec (if edn? (keyword (str (as-qname spec) \"<.edn>\")) spec)]\n (dissoc (assoc opts :return :legacy :spec spec) :prop)))\n\n (defmacro ^:no-doc get-config\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n [opts] `(get-env ~(get-config-opts opts)))\n\n (defmacro ^:no-doc get-sys-val*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([spec ] ^:deprecation-nowarn `(get-sys-val* ~spec ~spec ~spec))\n ([spec env ] ^:deprecation-nowarn `(get-sys-val* ~spec ~env ~spec))\n ([spec env res] `(get-env {:as :str :spec ~spec :env ~env :res ~res})))\n\n (defmacro ^:no-doc get-sys-bool*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([default spec env res] `(get-env {:as :bool :default ~default :spec ~spec :env ~env :res ~res}))\n ([default spec env ] `(get-env {:as :bool :default ~default :spec ~spec :env ~env }))\n ([default spec ] `(get-env {:as :bool :default ~default :spec ~spec })))\n\n (defmacro ^:no-doc read-sys-val*\n {:deprecated \"Encore v3.75.0 (2024-01-29)\" :doc \"Prefer `get-env`.\"}\n ([spec env res] `(get-env {:as :edn :spec ~spec :env ~env :res ~res}))\n ([spec env ] `(get-env {:as :edn :spec ~spec :env ~env }))\n ([spec ] `(get-env {:as :edn :spec ~spec })))\n\n (defn ^:no-doc get-sys-val\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([spec env] (get-env* {:as :str :spec spec :env env}))\n ([spec ] (get-env* {:as :str :spec spec})))\n\n (defn ^:no-doc read-sys-val\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([spec env] (get-env* {:as :edn :spec spec :env env}))\n ([spec ] (get-env* {:as :edn :spec spec})))\n\n (defn ^:no-doc get-sys-bool\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n ([default spec env] (get-env* {:as :bool :default default :spec spec :env env}))\n ([default spec ] (get-env* {:as :bool :default default :spec spec})))\n\n (defn ^:no-doc load-edn-config\n {:deprecated \"Encore v3.66.0 (2023-08-23)\" :doc \"Prefer `get-env`.\"}\n [opts]\n (let [{:keys [error-data validator default]} opts\n have-default? (contains? opts :default)]\n (try\n (when (and validator have-default?) (truss/have? validator default))\n (when-let [{:keys [config] :as m} (get-env* (get-config-opts opts))]\n (let [config\n (if (and (map? config) (map? default))\n (nested-merge default config)\n (do config))]\n (when validator (truss/have? validator config))\n (assoc m :config config)))\n\n (catch Throwable t\n (truss/ex-info! \"[encore/load-edn-config] Error loading edn config\"\n (assoc error-data :opts opts) t))))))))\n\n(deprecated \"2024-10 New sub API\"\n (defn ^:no-doc get-subvec \"Prefer `subvec`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([v start ] (or (subvec v start) []))\n ([v start end] (or (subvec v start end) [])))\n\n (defn ^:no-doc get-subvector \"Prefer `subvec`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([v start ] (or (subvec v :by-len start :max) []))\n ([v start len] (or (subvec v :by-len start len) [])))\n\n (defn ^:no-doc get-substr-by-idx \"Prefer `substr`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([s start ] ^:deprecation-nowarn (get-substr-by-idx s start nil))\n ([s start end]\n (let [len (count s)\n start (long (or start 0))\n end (long (or end len))\n start (if (< start 0) (+ start len) start)\n end (if (< end 0) (+ end len) end)]\n (substr s :by-idx start end))))\n\n (defn ^:no-doc get-substr-by-len \"Prefer `substr`.\"\n {:deprecated \"Encore v3.126.0 (2024-10-23)\"}\n ([s start ] (substr s :by-len (or start 0) :max))\n ([s start len] (substr s :by-len (or start 0) (or len :max))))\n\n (defn ^:no-doc get-substr \"Prefer `substr`.\"\n {:deprecated \"Encore v3.26.0 (2022-10-14)\"}\n ([s start ] (or (substr s start) \"\"))\n ([s start end] (or (substr s start end) \"\")))\n\n (defn ^:no-doc get-substring \"Prefer `substr`.\"\n {:deprecated \"Encore v3.26.0 (2022-10-14)\"}\n ([s start ] (substr s :by-len start :max))\n ([s start len] (substr s :by-len start len)))\n\n (def* ^:no-doc ^:deprecated ?subvec= cljs.core.count(ks)); if(and__5023__auto__){ -return taoensso.truss.impl.revery_QMARK_((function (p1__38765_SHARP_){ -return cljs.core.contains_QMARK_(m,p1__38765_SHARP_); +return taoensso.truss.impl.revery_QMARK_((function (p1__28622_SHARP_){ +return cljs.core.contains_QMARK_(m,p1__28622_SHARP_); }),ks); } else { return and__5023__auto__; @@ -152,12 +152,12 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k38807,else__5326__auto__){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k28631,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__38820 = k38807; -var G__38820__$1 = (((G__38820 instanceof cljs.core.Keyword))?G__38820.fqn:null); -switch (G__38820__$1) { +var G__28648 = k28631; +var G__28648__$1 = (((G__28648 instanceof cljs.core.Keyword))?G__28648.fqn:null); +switch (G__28648__$1) { case "ns": return self__.ns; @@ -187,7 +187,7 @@ return self__.error; break; default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38807,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28631,else__5326__auto__); } })); @@ -195,10 +195,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38807,else__ (taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38825){ -var vec__38827 = p__38825; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38827,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38827,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28656){ +var vec__28657 = p__28656; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -212,10 +212,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#taoensso.truss.impl.FailedAssertionInfo{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"ns","ns",441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"coords","coords",-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"pred","pred",1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"data","data",-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"error","error",-978969032),self__.error],null))], null),self__.__extmap)); })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__38806){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__28630){ var self__ = this; -var G__38806__$1 = this; -return (new cljs.core.RecordIter((0),G__38806__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ns","ns",441598760),new cljs.core.Keyword(null,"coords","coords",-599429112),new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),new cljs.core.Keyword(null,"data","data",-232669377),new cljs.core.Keyword(null,"error","error",-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__28630__$1 = this; +return (new cljs.core.RecordIter((0),G__28630__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ns","ns",441598760),new cljs.core.Keyword(null,"coords","coords",-599429112),new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),new cljs.core.Keyword(null,"data","data",-232669377),new cljs.core.Keyword(null,"error","error",-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -252,10 +252,10 @@ return h__5134__auto____$1; } })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this38808,other38809){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this28632,other28633){ var self__ = this; -var this38808__$1 = this; -return (((!((other38809 == null)))) && ((((this38808__$1.constructor === other38809.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.ns,other38809.ns)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.coords,other38809.coords)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.pred,other38809.pred)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.arg_form,other38809.arg_form)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.arg_val,other38809.arg_val)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.data,other38809.data)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.error,other38809.error)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.__extmap,other38809.__extmap))))))))))))))))))); +var this28632__$1 = this; +return (((!((other28633 == null)))) && ((((this28632__$1.constructor === other28633.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.ns,other28633.ns)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.coords,other28633.coords)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.pred,other28633.pred)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_form,other28633.arg_form)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_val,other28633.arg_val)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.data,other28633.data)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.error,other28633.error)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.__extmap,other28633.__extmap))))))))))))))))))); })); (taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -268,12 +268,12 @@ return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self } })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k38807){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k28631){ var self__ = this; var this__5330__auto____$1 = this; -var G__38860 = k38807; -var G__38860__$1 = (((G__38860 instanceof cljs.core.Keyword))?G__38860.fqn:null); -switch (G__38860__$1) { +var G__28678 = k28631; +var G__28678__$1 = (((G__28678 instanceof cljs.core.Keyword))?G__28678.fqn:null); +switch (G__28678__$1) { case "ns": case "coords": case "pred": @@ -285,38 +285,38 @@ return true; break; default: -return cljs.core.contains_QMARK_(self__.__extmap,k38807); +return cljs.core.contains_QMARK_(self__.__extmap,k28631); } })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__38806){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__28630){ var self__ = this; var this__5331__auto____$1 = this; -var pred__38867 = cljs.core.keyword_identical_QMARK_; -var expr__38868 = k__5332__auto__; -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"ns","ns",441598760),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"ns","ns",441598760),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(G__38806,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); +var pred__28679 = cljs.core.keyword_identical_QMARK_; +var expr__28680 = k__5332__auto__; +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"ns","ns",441598760),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"ns","ns",441598760),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(G__28630,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"coords","coords",-599429112),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"coords","coords",-599429112),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__38806,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"coords","coords",-599429112),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"coords","coords",-599429112),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__28630,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pred","pred",1927423397),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"pred","pred",1927423397),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__38806,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"pred","pred",1927423397),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"pred","pred",1927423397),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__28630,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__38806,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__28630,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__38806,self__.data,self__.error,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__28630,self__.data,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"data","data",-232669377),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"data","data",-232669377),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__38806,self__.error,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"data","data",-232669377),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"data","data",-232669377),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__28630,self__.error,self__.__meta,self__.__extmap,null)); } else { -if(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"error","error",-978969032),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,"error","error",-978969032),expr__38868)))){ -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__38806,self__.__meta,self__.__extmap,null)); +if(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"error","error",-978969032),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,"error","error",-978969032),expr__28680)))){ +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__28630,self__.__meta,self__.__extmap,null)); } else { -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38806),null)); +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28630),null)); } } } @@ -332,10 +332,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"ns","ns",441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"coords","coords",-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"pred","pred",1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"data","data",-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"error","error",-978969032),self__.error,null))], null),self__.__extmap)); })); -(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__38806){ +(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__28630){ var self__ = this; var this__5322__auto____$1 = this; -return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__38806,self__.__extmap,self__.__hash)); +return (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__28630,self__.__extmap,self__.__hash)); })); (taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -372,15 +372,15 @@ return (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_ /** * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values. */ -taoensso.truss.impl.map__GT_FailedAssertionInfo = (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__38812){ -var extmap__5365__auto__ = (function (){var G__38907 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__38812,new cljs.core.Keyword(null,"ns","ns",441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"coords","coords",-599429112),new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),new cljs.core.Keyword(null,"data","data",-232669377),new cljs.core.Keyword(null,"error","error",-978969032)], 0)); -if(cljs.core.record_QMARK_(G__38812)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38907); +taoensso.truss.impl.map__GT_FailedAssertionInfo = (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__28640){ +var extmap__5365__auto__ = (function (){var G__28682 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28640,new cljs.core.Keyword(null,"ns","ns",441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"coords","coords",-599429112),new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280),new cljs.core.Keyword(null,"data","data",-232669377),new cljs.core.Keyword(null,"error","error",-978969032)], 0)); +if(cljs.core.record_QMARK_(G__28640)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28682); } else { -return G__38907; +return G__28682; } })(); -return (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"coords","coords",-599429112).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"pred","pred",1927423397).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"data","data",-232669377).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,"error","error",-978969032).cljs$core$IFn$_invoke$arity$1(G__38812),null,cljs.core.not_empty(extmap__5365__auto__),null)); +return (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"coords","coords",-599429112).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"pred","pred",1927423397).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"arg-form","arg-form",1400564013).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"arg-val","arg-val",1802419280).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"data","data",-232669377).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,"error","error",-978969032).cljs$core$IFn$_invoke$arity$1(G__28640),null,cljs.core.not_empty(extmap__5365__auto__),null)); }); diff --git a/public/js/cljs-runtime/taoensso.truss.impl.js.map b/public/js/cljs-runtime/taoensso.truss.impl.js.map index 4e1947f..2909ff3 100644 --- a/public/js/cljs-runtime/taoensso.truss.impl.js.map +++ b/public/js/cljs-runtime/taoensso.truss.impl.js.map @@ -1 +1 @@ -{"version":3,"sources":["taoensso/truss/impl.cljc"],"mappings":";AAUA,AAWS,wCAAA,xCAAeA,wFAAaC;AAA5B,AAA+B,qBAAWC,bAAwBD;;AAU3E,0CAAA,1CAAME,4FAEHC,EAAEC;AAFL,AAIW,uDAAA,hDAACC,qDAAQ,AAAUF,UAAEC;;AAEhC,oCAAA,pCAAME,gFAAmCC,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,oBAAI,CAACJ,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAV;;AAAmB,yBAAA,lBAACC;;GAAvC,KAA6DJ;;AACjH,6BAAA,7BAAMK,kEAAmCN,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,oBAAI,CAACJ,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAIH;;AAAK,yBAAA,lBAACI;;GAAiBJ,KAAKA;;AACjH,4BAAA,5BAAMM,gEAAmCP,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,IAAAI,qBAAa,CAACR,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAnB,AAAA,oBAAAI;AAAA,AAAA,QAAAA,JAAWC;AAAX,AAAwB,OAACJ,kBAAQI;;AAAjC;;GAAnB,KAA6DR;;AACjH,AAAA,iCAAA,yCAAAS,1EAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAMD,0EACFE,EAAEC,EAAEC;AADR,AACiB,GAAA,GAAQ,MAAA,LAAMA;AAAG,OAACC,8CAAMH,EAAEC,EAAEC;;AAAGF;;;;AADhD,CAAA,+DAAA,/DAAMF,0EAEFE,EAAMI;AAFV,AAEiB,OAACC,oBAAWP,+BAAWE,EAAEI;;;AAF1C,CAAA,yDAAA,zDAAMN;;AAAN,AAIA,iCAAA,jCAAMQ,0EAAY3B;AAAlB,AAAqB,GAAI,AAAC4B,qBAAK5B;AAAGA;;AAAE,OAAC6B,cAAI7B;;;AACzC,qCAAA,rCAAM8B,kFAAoCC,GAAGV;AAA7C,AAAgD,yCAAA,WAAAW,7CAAC1B;AAAD,AAAU,UAAA,oEAAA,nEAAO,8CAAA0B,9CAACC,4CAAIZ;GAAMU;;AAC5E,6BAAA,7BAAMG,kEAAoCH,GAAGV;AAA7C,AAAgD,IAAAc,oBAAK,CAAI,AAACC,gBAAMf,OAAG,AAACe,gBAAML;AAA1B,AAAA,GAAAI;AAA+B,yCAAA,WAAAE,7CAAC/B;AAAD,AAAU,mCAAA+B,5BAACC,0BAAUjB;GAAKU;;AAAzDI;;;AAChD,iCAAA,jCAAMI,0EAAoCR,GAAGV;AAA7C,AAAgD,IAAAc,oBAAK,CAAI,AAACC,gBAAMf,MAAG,AAACe,gBAAML;AAA1B,AAAA,GAAAI;AAA+B,yCAAA,WAAAK,7CAAClC;AAAD,AAAU,mCAAAkC,5BAACF,0BAAUjB;GAAKU;;AAAzDI;;;AAChD,iCAAA,jCAAMM,0EAAoCV,GAAGV;AAA7C,AACE,IAAMqB,aAAW,EAAI,AAACC,yBAASZ,KAAIA,GAAG,AAACF,cAAIE;AAA3C,AACE,IAAAI,oBACE,CAAI,AAACC,gBAAMf,MAAO,AAACe,gBAAMM;AAD3B,AAAA,GAAAP;AAEE,IAAMS,SAAO,AAACjB,+BAAWe;AAAzB,AACE,OAAChB,oBAAU,WAAKhB,EAAEY,EAAEC;AAAT,AAAY,GAAI,AAACe,0BAAUM,OAAOtB;AAAtB;;AAA8B,yBAAA,lBAACV;;GAAtD,KAA4ES;;AAHhFc;;;AAyJJ,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,sFAAA,WAAAU,mBAAAC,pHAAWoE;;AAAX,AAAA,IAAArE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,sFAAA,WAAAC,mBAAAC,OAAAC,3HAAWiE;;AAAX,AAAA,IAAAnE,yBAAA;AAAA,AAAA,IAAAG,WAAAF;IAAAE,eAAA,EAAA,CAAAA,oBAAAC,oBAAA,AAAAD,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAAE;;;KAAA;AAAAC;;;KAAA;AAAA9C;;;KAAA;AAAA+C;;;KAAA;AAAAC;;;KAAA;AAAAC;;;KAAA;AAAAC;;;;AAAA,OAAAxB,4CAAAyB,gBAAAV,OAAAC;;;;;AAAA,CAAA,AAAA,2FAAA,WAAAU,mBAAAC,gBAAAC,zIAAWqD;;AAAX,AAAA,IAAAvD,yBAAA;AAAA,AAAA,OAAAlD,+CAAA,WAAAqD,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAJ,gDAAAA,8CAAAE,kBAAAG,gBAAAE,mBAAAP,0BAAAE,kBAAAG,gBAAAE;GAAAN,mBAAAF;;;AAAA,CAAA,AAAA,kGAAA,WAAAS,mBAAAC,qBAAAC,rJAAW4C;;AAAX,AAAA,IAAA9C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,4CAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,mFAAA,KAAAC,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,gDAAAvB,WAAA,OAAA,KAAAuB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,yDAAAtB,eAAA,OAAA,KAAAsB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,qDAAApE,aAAA,OAAA,KAAAoE,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,6DAAArB,iBAAA,OAAA,KAAAqB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,2DAAApB,gBAAA,OAAA,KAAAoB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,qDAAAnB,aAAA,OAAA,KAAAmB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,uDAAAlB,cAAA,eAAAC;;;AAAA,CAAA,AAAA,0FAAA,WAAAkB,rGAAWsC;;AAAX,AAAA,IAAAtC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,mFAAA,gDAAA,yDAAA,qDAAA,6DAAA,2DAAA,qDAAA,+DAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,kFAAA,WAAAC,7FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,wFAAA,WAAAC,nGAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,oDAAA9B,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAAyB,lKAAW+B;;;AAAX,CAAA,AAAA,sFAAA,WAAA9B,jGAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAhD,gBAAAsB;;;AAAA,CAAA,AAAA,kFAAA,WAAA2B,7FAAW6B;;AAAX,AAAA,IAAA7B,yBAAA;AAAA,AAAA,IAAAC,kBAAAH;AAAA,AAAA,GAAA,GAAA,CAAAG,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,aAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAF,gBAAAG;;AAAAA;;;;AAAA,CAAA,AAAA,oFAAA,WAAAG,UAAAC,zGAAWwB;;AAAX,AAAA,IAAAzB,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,EAAA,AAAAC,6CAAA,AAAAF,iBAAA,AAAAC,oBAAA,EAAA,AAAAC,6CAAA,AAAAF,qBAAA,AAAAC,wBAAA,EAAA,AAAAC,6CAAA,AAAAF,mBAAA,AAAAC,sBAAA,EAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC,0BAAA,EAAA,AAAAC,6CAAA,AAAAF,sBAAA,AAAAC,yBAAA,EAAA,AAAAC,6CAAA,AAAAF,mBAAA,AAAAC,sBAAA,EAAA,AAAAC,6CAAA,AAAAF,oBAAA,AAAAC,uBAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,mFAAA,WAAAE,mBAAAC,jHAAWqB;;AAAX,AAAA,IAAAtB,yBAAA;AAAA,AAAA,GAAA,AAAAtD,0BAAA,iFAAA,0DAAA,8DAAA,qDAAA,kEAAA,gEAAA,4DAAA,yEAAAuD;AAAA,OAAAC,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAJ,wBAAAX,eAAAY;;AAAA,oDAAAzC,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAA,AAAAgB,oBAAA,AAAAH,+CAAApC,gBAAAmC,kBAAA,vPAAWqB;;;;AAAX,CAAA,AAAA,wGAAA,WAAAhB,mBAAAlD,tIAAWkE;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,IAAAC,WAAAnD;IAAAmD,eAAA,EAAA,CAAAA,oBAAAhD,oBAAA,AAAAgD,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;AAAA;;;;AAAA,OAAA7D,0BAAAoB,gBAAAV;;;;;AAAA,CAAA,AAAA,0FAAA,WAAAoD,mBAAAC,gBAAAzB,xIAAWsC;;AAAX,AAAA,IAAAd,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,oBAAA,CAAAC,4CAAAA,0CAAA,gDAAAE,eAAAF,sBAAA,gDAAAE;AAAA,oDAAA5B,SAAAvB,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,jKAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,yDAAAE,eAAAF,sBAAA,yDAAAE;AAAA,oDAAApD,UAAAwB,SAAArE,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,7JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,qDAAAE,eAAAF,sBAAA,qDAAAE;AAAA,oDAAApD,UAAAC,cAAAuB,SAAAtB,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,/JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,6DAAAE,eAAAF,sBAAA,6DAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAAqE,SAAArB,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,3JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,2DAAAE,eAAAF,sBAAA,2DAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAsB,SAAApB,YAAAC,aAAAwB,cAAAvB,gBAAA,5JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,qDAAAE,eAAAF,sBAAA,qDAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAqB,SAAAnB,aAAAwB,cAAAvB,gBAAA,/JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,uDAAAE,eAAAF,sBAAA,uDAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAoB,SAAAK,cAAAvB,gBAAA,9JAAWwD;;AAAX,oDAAA9D,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAA,AAAAzD,8CAAAkC,gBAAA2C,gBAAAzB,UAAA,1OAAWsC;;;;;;;;;;AAAX,CAAA,AAAA,oFAAA,WAAAT,/FAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAhC,+CAAA,mFAAA,KAAAiC,mBAAA,gDAAAvD,UAAA,OAAA,KAAAuD,mBAAA,yDAAAtD,cAAA,OAAA,KAAAsD,mBAAA,qDAAApG,YAAA,OAAA,KAAAoG,mBAAA,6DAAArD,gBAAA,OAAA,KAAAqD,mBAAA,2DAAApD,eAAA,OAAA,KAAAoD,mBAAA,qDAAAnD,YAAA,OAAA,KAAAmD,mBAAA,uDAAAlD,aAAA,eAAAC;;;AAAA,CAAA,AAAA,2FAAA,WAAAkD,mBAAAhC,zHAAWsC;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,oDAAAxD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAmB,SAAAlB,gBAAAyB,7JAAW+B;;;AAAX,CAAA,AAAA,wFAAA,WAAAL,mBAAAC,tHAAWI;;AAAX,AAAA,IAAAL,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAArG,+CAAAwG,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAAI,mDAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,yDAAA;;AAAA,CAAA,AAAAA,8DAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,0CAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,iEAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;+CAAA,/CAAWM,sGAAqBvE,GAAGC,OAAQ9C,KAAK+C,SAASC,QAASC,KAAKC;AAAvE,AAAA,YAAAyD,mFAAA,KAAA,KAAA,rDAAgC9D,GAAGC,OAAQ9C,KAAK+C,SAASC,QAASC,KAAKC;;;AAAvE;;;kDAAA,0DAAA8D,5GAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,sDAAAyB,SAAA,kGAAA,yDAAA,qDAAA,6DAAA,2DAAA,qDAAA;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,wCAAA,AAAA,8EAAAK,UAAA,AAAA,uFAAAA,UAAA,AAAA,mFAAAA,UAAA,AAAA,2FAAAA,UAAA,AAAA,yFAAAA,UAAA,AAAA,mFAAAA,UAAA,AAAA,qFAAAA,UAAA,KAAA,AAAAtB,oBAAAuB,sBAAA;;;AAAAN,AACA,AAAA;;;;;;;AAAA;AAAA,CAAA,4CAAA,5CAASc;AAAT,AAAA,AAAA;;;AAAA,CAAA,kDAAA,lDAASA;;AAAT,CAAA,qDAAA,rDAASA;;AAAT,CAAA,0DAAA,WAAAH,mBAAAC,qBAAAC,7GAASC;AAAT,AAAA,OAAAV,iBAAAQ,qBAAA;;;AAAA;;;wCAAA,xCAASG,wFAAcC;AAAvB,AAAA,YAAAF,iCAAuBE;;;AAAdF,AACT,AAAOG,qCAAuC;AAmD9C","names":["taoensso.truss.impl/re-pattern?","x","js/RegExp","taoensso.truss.impl/str-contains?","s","substr","cljs.core.not_EQ_","taoensso.truss.impl/revery?","pred","coll","cljs.core.reduce","_","in","cljs.core/reduced","taoensso.truss.impl/revery","taoensso.truss.impl/rsome","temp__5825__auto__","p","var_args","G__38731","taoensso.truss.impl/assoc-some","js/Error","m","k","v","cljs.core.assoc","m-kvs","cljs.core/reduce-kv","taoensso.truss.impl/ensure-set","cljs.core/set?","cljs.core/set","taoensso.truss.impl/ks-nnil?","ks","p1__38754#","cljs.core.get","taoensso.truss.impl/ks=","and__5023__auto__","cljs.core/count","p1__38759#","cljs.core/contains?","taoensso.truss.impl/ks>=","p1__38765#","taoensso.truss.impl/ks<=","counted-ks","cljs.core/counted?","ks-set","this__5323__auto__","k__5324__auto__","this__5325__auto__","k38807","else__5326__auto__","G__38820","cljs.core/Keyword","ns","coords","arg-form","arg-val","data","error","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","ret__5346__auto__","p__38825","vec__38827","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","cljs.core/PersistentVector","G__38806","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this38808","other38809","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","G__38860","this__5331__auto__","k__5332__auto__","pred__38867","cljs.core/keyword-identical?","expr__38868","this__5336__auto__","cljs.core/seq","cljs.core/MapEntry","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","taoensso.truss.impl/FailedAssertionInfo","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__38812","extmap__5365__auto__","G__38907","cljs.core/record?","taoensso.truss.impl/->FailedAssertionInfo","taoensso.truss.impl/map->FailedAssertionInfo","this__5310__auto__","writer__5311__auto__","opt__5312__auto__","taoensso.truss.impl/ArgEvalError","taoensso.truss.impl/->ArgEvalError","ex","taoensso.truss.impl/FalsePredError"],"sourcesContent":["(ns ^:no-doc taoensso.truss.impl\n \"Private implementation details.\"\n (:require\n [clojure.set :as set]\n #?(:clj [clojure.java.io :as jio]))\n #?(:cljs\n (:require-macros\n [taoensso.truss.impl :refer\n [catching now-inst* and? or?]])))\n\n(comment (require '[taoensso.encore :as enc]))\n\n;;;;\n\n#?(:clj (defmacro legacy-assertion-ex-data? [] (= (System/getProperty \"taoensso.truss.legacy-assertion-ex-data\") \"true\")))\n\n;;;; Encore imports\n\n#?(:clj (defn list-form? [x] (or (list? x) (instance? clojure.lang.Cons x))))\n\n#?(:clj (defn re-pattern? [x] (instance? java.util.regex.Pattern x))\n :cljs (defn ^boolean re-pattern? [x] (instance? js/RegExp x)))\n\n#?(:clj (defmacro now-dt* [] (if (:ns &env) `(js/Date.) `(java.util.Date.))))\n#?(:clj (defmacro now-inst* [] (if (:ns &env) `(js/Date.) `(java.time.Instant/now))))\n#?(:clj\n (defmacro identical-kw? [x y]\n (if (:ns &env)\n `(cljs.core/keyword-identical? ~x ~y)\n `(identical? ~x ~y))))\n\n(defn str-contains?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.contains ^String s ^String substr)\n :cljs (not= -1 (.indexOf s substr))))\n\n(defn revery? #?(:cljs {:tag 'boolean}) [pred coll] (reduce (fn [_ in] (if (pred in) true (reduced false))) true coll))\n(defn revery [pred coll] (reduce (fn [_ in] (if (pred in) coll (reduced nil))) coll coll))\n(defn rsome [pred coll] (reduce (fn [_ in] (when-let [p (pred in)] (reduced p))) nil coll))\n(defn assoc-some\n ([m k v ] (if-not (nil? v) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-some m m-kvs)))\n\n(defn ensure-set [x] (if (set? x) x (set x)))\n(defn ks-nnil? #?(:cljs {:tag 'boolean}) [ks m] (revery? #(some? (get m %)) ks))\n(defn ks= #?(:cljs {:tag 'boolean}) [ks m] (and (== (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks>= #?(:cljs {:tag 'boolean}) [ks m] (and (>= (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks<= #?(:cljs {:tag 'boolean}) [ks m]\n (let [counted-ks (if (counted? ks) ks (set ks))]\n (and\n (<= (count m) (count counted-ks))\n (let [ks-set (ensure-set counted-ks)]\n (reduce-kv (fn [_ k v] (if (contains? ks-set k) true (reduced false))) true m)))))\n\n#?(:clj\n (defmacro catching\n ([try-expr ] `(catching ~try-expr ~'_ nil))\n ([try-expr error-sym catch-expr]\n (if (:ns &env)\n `(try ~try-expr (catch :default ~error-sym ~catch-expr))\n `(try ~try-expr (catch Throwable ~error-sym ~catch-expr))))))\n\n#?(:clj\n (defn- var-info [macro-env sym]\n (when (symbol? sym)\n (if (:ns macro-env)\n (let [ns (find-ns 'cljs.analyzer.api)\n v (ns-resolve ns 'resolve)] ; Don't cache!\n (when-let [{:as m, var-ns :ns, var-name :name} ; ?{:keys [meta ns name ...]}\n (@v macro-env sym)]\n (when var-ns ; Skip locals\n (assoc m :sym (symbol (str var-ns) (name var-name))))))\n\n (when-let [v (resolve macro-env sym)]\n (let [{:as m, var-ns :ns, var-name :name} (meta v)]\n {:var v\n :sym (symbol (str var-ns) (name var-name))\n :ns var-ns\n :name var-name\n :meta\n (if-let [x (get m :arglists)]\n (assoc m :arglists `'~x) ; Quote\n (do m))}))))))\n\n#?(:clj (defmacro and? ([] true) ([x] x) ([x & next] `(if ~x (and? ~@next) false))))\n#?(:clj (defmacro or? ([] false) ([x] x) ([x & next] `(if ~x true (or? ~@next)))))\n\n;;;; Assertion predicates\n\n#?(:clj (defn ensure-set-form [form] (if (set? form) form `(ensure-set ~form))))\n#?(:clj (def ^:private safe-pred-forms\n (let [names\n (mapv name\n '#{nil? some? string? integer? number? symbol? keyword? float?\n set? vector? coll? list? ifn? fn? associative? sequential? delay?\n sorted? counted? reversible? true? false? identity not boolean})]\n (-> #{}\n (into (mapv #(symbol \"clojure.core\" %) names))\n (into (mapv #(symbol \"cljs.core\" %) names))))))\n\n#?(:clj\n (defn parse-pred-form\n \"Returns [safe? form show special?].\"\n ([macro-env pred-form ] (parse-pred-form macro-env pred-form false nil))\n ([macro-env pred-form in-comp? gsym]\n (if-not (vector? pred-form)\n ;; Standard predicate\n (let [{:keys [meta sym]} (var-info macro-env pred-form)\n safe?\n (or\n (get meta :truss/safe)\n (keyword? pred-form)\n (map? pred-form)\n (set? pred-form)\n (contains? safe-pred-forms sym))]\n\n [safe? (or sym pred-form) (or sym pred-form)])\n\n ;; Special predicate\n (let [[kind a1 a2 a3] pred-form\n num-args (dec (count pred-form))\n _\n (when (or (< num-args 1) (> num-args 3))\n (throw\n (ex-info \"Truss special predicates should have 1\u2264n\u22643 elements\"\n {:pred-form pred-form})))\n\n gsym (or gsym (gensym \"arg\"))\n\n [safe? body]\n (case kind\n :set= [false `(= (ensure-set ~gsym) ~(ensure-set-form a1))]\n :set<= [false `(set/subset? (ensure-set ~gsym) ~(ensure-set-form a1))]\n :set>= [false `(set/superset? (ensure-set ~gsym) ~(ensure-set-form a1))]\n\n :ks= [false `(ks= ~(ensure-set-form a1) ~gsym)]\n :ks<= [false `(ks<= ~(ensure-set-form a1) ~gsym)]\n :ks>= [false `(ks>= ~(ensure-set-form a1) ~gsym)]\n :ks-nnil? [false `(ks-nnil? ~(ensure-set-form a1) ~gsym)]\n ( :el :in) [false `(contains? ~(ensure-set-form a1) ~gsym)]\n (:not-el :not-in) [false `(if (contains? ~(ensure-set-form a1) ~gsym) false true)]\n\n :n= [false `(= (count ~gsym) ~a1)]\n :n>= [false `(>= (count ~gsym) ~a1)]\n :n<= [false `(<= (count ~gsym) ~a1)]\n\n :instance? [false `(instance? ~a1 ~gsym)]\n :satisfies? [false `(satisfies? ~a1 ~gsym)]\n\n (:and :or :not) ; Composition\n (let [;; Support recursive expansion\n [sf3? a3 _ sp3?] (when a3 (parse-pred-form macro-env a3 :in-comp gsym))\n [sf2? a2 _ sp2?] (when a2 (parse-pred-form macro-env a2 :in-comp gsym))\n [sf1? a1 _ sp1?] (when a1 (parse-pred-form macro-env a1 :in-comp gsym))\n\n a3-test (when a3 (if sp3? a3 `(~a3 ~gsym)))\n a2-test (when a2 (if sp2? a2 `(~a2 ~gsym)))\n a1-test (when a1 (if sp1? a1 `(~a1 ~gsym)))\n\n ;; [:and ...] comp is safe if all preds are safe\n ;; [:or ...] comp ensures that all but last pred are safe\n\n in-or? (= kind :or)\n [sf2? a2-test] (if (and in-or? a3 (not sf2?)) [true `(catching ~a2-test)] [sf2? a2-test])\n [sf1? a1-test] (if (and in-or? a2 (not sf1?)) [true `(catching ~a1-test)] [sf1? a1-test])\n\n sf-all? (boolean (and (if a1 sf1? true) (if a2 sf2? true) (if a3 sf3? true)))\n body\n (case kind\n :or ; any-of\n (cond\n a3 `(or? ~a1-test ~a2-test ~a3-test)\n a2 `(or? ~a1-test ~a2-test)\n a1 a1-test)\n\n :and ; all-of\n (cond\n a3 `(and? ~a1-test ~a2-test ~a3-test)\n a2 `(and? ~a1-test ~a2-test)\n a1 a1-test)\n\n :not ; none-of, same as [:and (not a1) (not a2) ...]\n (cond\n a3 `(if (or? ~a1-test ~a2-test ~a3-test) false true)\n a2 `(if (or? ~a1-test ~a2-test) false true)\n a1 `(if ~a1-test false true)))]\n\n [sf-all? body])\n\n (throw\n (ex-info \"Unexpected Truss special predicate kind\"\n {:pred-form pred-form})))]\n\n (let [safe? (boolean safe?)\n form (if in-comp? body `(fn [~gsym] ~body))\n show pred-form]\n\n [safe? form show :special]))))))\n\n;;;; Assertions\n\n;; User-facing record provided to `*failed-assertion-handler*`\n(defrecord FailedAssertionInfo [ns coords, pred arg-form arg-val, data error])\n(deftype ArgEvalError [ex]) ; Private wrapper type to identiy exceptions evaluating args or executing (pred arg) checks\n(def FalsePredError #?(:clj (Object.) :cljs (js-obj))) ; Private object to identify falsey (pred arg) checks\n\n#?(:clj\n (defmacro assert1\n [bool? coords [psafe? pform pshow] arg-form data-fn-form]\n (let [cljs? (:ns &env)\n [line column] coords\n eval-arg? (list-form? arg-form)\n ns (str *ns*)\n\n gs-error (gensym \"error\")\n gs-arg-val (gensym \"arg-val\")]\n\n (case [(if eval-arg? :eval-arg :local-arg)\n (if psafe? :safe-pred :unsafe-pred)]\n\n [:local-arg :safe-pred]\n `(if (~pform ~arg-form)\n ~(if bool? true arg-form)\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-form ~arg-form ~data-fn-form nil))\n\n [:local-arg :unsafe-pred]\n `(let [~gs-error (catching (if (~pform ~arg-form) nil FalsePredError) ~'e ~'e)]\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-form ~arg-form ~data-fn-form ~gs-error)\n ~(if bool? true arg-form)))\n\n [:eval-arg :safe-pred]\n `(let [~gs-arg-val (catching ~arg-form ~'e (ArgEvalError. ~'e))\n ~gs-error\n (if (instance? ArgEvalError ~gs-arg-val)\n ~gs-arg-val\n (if (~pform ~gs-arg-val) nil FalsePredError))]\n\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-form ~gs-arg-val ~data-fn-form ~gs-error)\n ~(if bool? true gs-arg-val)))\n\n [:eval-arg :unsafe-pred]\n `(let [~gs-arg-val (catching ~arg-form ~'e (ArgEvalError. ~'e))\n ~gs-error\n (if (instance? ArgEvalError ~gs-arg-val)\n ~gs-arg-val\n (catching\n (if (~pform ~gs-arg-val) nil FalsePredError)\n ~'e ~'e))]\n\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-form ~gs-arg-val ~data-fn-form ~gs-error)\n ~(if bool? true gs-arg-val)))))))\n\n(comment (macroexpand '(assert1 true [0 0] [true string? string?] \"foo\" (fn [] (+ 3 2)))))\n\n#?(:clj\n (defmacro assert-args\n \"Low-level `assert` wrapper for `have`-style API.\"\n [elidable? bool? coords arg-forms]\n (let [bang? (= (first arg-forms) :!) ; For back compatibility, undocumented\n elidable? (and elidable? (not bang?))\n elide? (and elidable? (not *assert*))\n arg-forms (if bang? (next arg-forms) arg-forms)\n in? (= (second arg-forms) :in) ; (have pred :in xs1 xs2 ...)\n arg-forms (if in? (cons (first arg-forms) (nnext arg-forms)) arg-forms)\n data-fn-form\n (when (and\n (> (count arg-forms) 2) ; Distinguish from `:data` pred\n (= (last (butlast arg-forms)) :data))\n `(fn [] ~(last arg-forms)))\n\n arg-forms (if data-fn-form (butlast (butlast arg-forms)) arg-forms)\n auto-pred? (= (count arg-forms) 1) ; Unique common case: (have ?x)\n pred-form (if auto-pred? `some? (first arg-forms))\n [?x1 ?xs]\n (cond\n auto-pred? [(first arg-forms) nil]\n (nnext arg-forms) [nil (next arg-forms)]\n :else [(second arg-forms) nil])\n\n single-x? (nil? ?xs)\n\n [psafe? pform pshow] (parse-pred-form &env pred-form)\n gs-ps (gensym \"ps\")\n gs-pf (gensym \"pf\")\n gs-df (gensym \"df\")\n gs-in (gensym \"in\")]\n\n (if elide?\n (if bool? true (if single-x? ?x1 (vec ?xs)))\n\n (case [(if in? :in :not-in)\n (if single-x? :single-x :multi-x)]\n\n [:not-in :single-x] ; (have* pred x) -> x or bool\n `(assert1 ~bool? ~coords [~psafe? ~pform '~pshow] ~?x1 ~data-fn-form)\n\n [:not-in :multi-x] ; (have* pred x1 x2 ...) -> [x1 x2 ...] or bool\n (let [body (mapv (fn [x] `(assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] ~x ~gs-df)) ?xs)\n body (if bool? `(do ~@body true) body)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n ~body))\n\n [:in :single-x] ; (have* pred :in xs) -> xs or bool\n (let [rfn (if bool? `revery? `revery)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n (~rfn (fn [~gs-in] (assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] ~gs-in ~gs-df)) ~?x1)))\n\n [:in :multi-x] ; (have* pred :in xs1 xs2 ...) -> [xs1 ...] or bool\n (let [rfn (if bool? `revery? `revery)\n body (mapv (fn [xs] `(~rfn (fn [~gs-in] (assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] ~gs-in ~gs-df)) ~xs)) ?xs)\n body (if bool? `(do ~@body true) body)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n ~body)))))))\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"sources":["taoensso/truss/impl.cljc"],"mappings":";AAUA,AAWS,wCAAA,xCAAeA,wFAAaC;AAA5B,AAA+B,qBAAWC,bAAwBD;;AAU3E,0CAAA,1CAAME,4FAEHC,EAAEC;AAFL,AAIW,uDAAA,hDAACC,qDAAQ,AAAUF,UAAEC;;AAEhC,oCAAA,pCAAME,gFAAmCC,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,oBAAI,CAACJ,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAV;;AAAmB,yBAAA,lBAACC;;GAAvC,KAA6DJ;;AACjH,6BAAA,7BAAMK,kEAAmCN,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,oBAAI,CAACJ,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAIH;;AAAK,yBAAA,lBAACI;;GAAiBJ,KAAKA;;AACjH,4BAAA,5BAAMM,gEAAmCP,KAAKC;AAA9C,AAAoD,OAACC,+CAAO,WAAKC,EAAEC;AAAP,AAAW,IAAAI,qBAAa,CAACR,qCAAAA,0CAAAA,PAAKI,sBAAAA;AAAnB,AAAA,oBAAAI;AAAA,AAAA,QAAAA,JAAWC;AAAX,AAAwB,OAACJ,kBAAQI;;AAAjC;;GAAnB,KAA6DR;;AACjH,AAAA,iCAAA,yCAAAS,1EAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,6DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,+DAAA,/DAAMD,0EACFE,EAAEC,EAAEC;AADR,AACiB,GAAA,GAAQ,MAAA,LAAMA;AAAG,OAACC,8CAAMH,EAAEC,EAAEC;;AAAGF;;;;AADhD,CAAA,+DAAA,/DAAMF,0EAEFE,EAAMI;AAFV,AAEiB,OAACC,oBAAWP,+BAAWE,EAAEI;;;AAF1C,CAAA,yDAAA,zDAAMN;;AAAN,AAIA,iCAAA,jCAAMQ,0EAAY3B;AAAlB,AAAqB,GAAI,AAAC4B,qBAAK5B;AAAGA;;AAAE,OAAC6B,cAAI7B;;;AACzC,qCAAA,rCAAM8B,kFAAoCC,GAAGV;AAA7C,AAAgD,yCAAA,WAAAW,7CAAC1B;AAAD,AAAU,UAAA,oEAAA,nEAAO,8CAAA0B,9CAACC,4CAAIZ;GAAMU;;AAC5E,6BAAA,7BAAMG,kEAAoCH,GAAGV;AAA7C,AAAgD,IAAAc,oBAAK,CAAI,AAACC,gBAAMf,OAAG,AAACe,gBAAML;AAA1B,AAAA,GAAAI;AAA+B,yCAAA,WAAAE,7CAAC/B;AAAD,AAAU,mCAAA+B,5BAACC,0BAAUjB;GAAKU;;AAAzDI;;;AAChD,iCAAA,jCAAMI,0EAAoCR,GAAGV;AAA7C,AAAgD,IAAAc,oBAAK,CAAI,AAACC,gBAAMf,MAAG,AAACe,gBAAML;AAA1B,AAAA,GAAAI;AAA+B,yCAAA,WAAAK,7CAAClC;AAAD,AAAU,mCAAAkC,5BAACF,0BAAUjB;GAAKU;;AAAzDI;;;AAChD,iCAAA,jCAAMM,0EAAoCV,GAAGV;AAA7C,AACE,IAAMqB,aAAW,EAAI,AAACC,yBAASZ,KAAIA,GAAG,AAACF,cAAIE;AAA3C,AACE,IAAAI,oBACE,CAAI,AAACC,gBAAMf,MAAO,AAACe,gBAAMM;AAD3B,AAAA,GAAAP;AAEE,IAAMS,SAAO,AAACjB,+BAAWe;AAAzB,AACE,OAAChB,oBAAU,WAAKhB,EAAEY,EAAEC;AAAT,AAAY,GAAI,AAACe,0BAAUM,OAAOtB;AAAtB;;AAA8B,yBAAA,lBAACV;;GAAtD,KAA4ES;;AAHhFc;;;AAyJJ,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,sFAAA,WAAAU,mBAAAC,pHAAWoE;;AAAX,AAAA,IAAArE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,sFAAA,WAAAC,mBAAAC,OAAAC,3HAAWiE;;AAAX,AAAA,IAAAnE,yBAAA;AAAA,AAAA,IAAAG,WAAAF;IAAAE,eAAA,EAAA,CAAAA,oBAAAC,oBAAA,AAAAD,aAAA;AAAA,AAAA,QAAAA;KAAA;AAAAE;;;KAAA;AAAAC;;;KAAA;AAAA9C;;;KAAA;AAAA+C;;;KAAA;AAAAC;;;KAAA;AAAAC;;;KAAA;AAAAC;;;;AAAA,OAAAxB,4CAAAyB,gBAAAV,OAAAC;;;;;AAAA,CAAA,AAAA,2FAAA,WAAAU,mBAAAC,gBAAAC,zIAAWqD;;AAAX,AAAA,IAAAvD,yBAAA;AAAA,AAAA,OAAAlD,+CAAA,WAAAqD,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAJ,gDAAAA,8CAAAE,kBAAAG,gBAAAE,mBAAAP,0BAAAE,kBAAAG,gBAAAE;GAAAN,mBAAAF;;;AAAA,CAAA,AAAA,kGAAA,WAAAS,mBAAAC,qBAAAC,rJAAW4C;;AAAX,AAAA,IAAA9C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,4CAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,mFAAA,KAAAC,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,gDAAAvB,WAAA,OAAA,KAAAuB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,yDAAAtB,eAAA,OAAA,KAAAsB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,qDAAApE,aAAA,OAAA,KAAAoE,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,6DAAArB,iBAAA,OAAA,KAAAqB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,2DAAApB,gBAAA,OAAA,KAAAoB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,qDAAAnB,aAAA,OAAA,KAAAmB,2BAAA,KAAA,EAAA,IAAA,AAAAA,sCAAA,CAAA,uDAAAlB,cAAA,eAAAC;;;AAAA,CAAA,AAAA,0FAAA,WAAAkB,rGAAWsC;;AAAX,AAAA,IAAAtC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,mFAAA,gDAAA,yDAAA,qDAAA,6DAAA,2DAAA,qDAAA,+DAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,kFAAA,WAAAC,7FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,wFAAA,WAAAC,nGAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,oDAAA9B,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAAyB,lKAAW+B;;;AAAX,CAAA,AAAA,sFAAA,WAAA9B,jGAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAhD,gBAAAsB;;;AAAA,CAAA,AAAA,kFAAA,WAAA2B,7FAAW6B;;AAAX,AAAA,IAAA7B,yBAAA;AAAA,AAAA,IAAAC,kBAAAH;AAAA,AAAA,GAAA,GAAA,CAAAG,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,aAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAF,gBAAAG;;AAAAA;;;;AAAA,CAAA,AAAA,oFAAA,WAAAG,UAAAC,zGAAWwB;;AAAX,AAAA,IAAAzB,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,EAAA,AAAAC,6CAAA,AAAAF,iBAAA,AAAAC,oBAAA,EAAA,AAAAC,6CAAA,AAAAF,qBAAA,AAAAC,wBAAA,EAAA,AAAAC,6CAAA,AAAAF,mBAAA,AAAAC,sBAAA,EAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC,0BAAA,EAAA,AAAAC,6CAAA,AAAAF,sBAAA,AAAAC,yBAAA,EAAA,AAAAC,6CAAA,AAAAF,mBAAA,AAAAC,sBAAA,EAAA,AAAAC,6CAAA,AAAAF,oBAAA,AAAAC,uBAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,mFAAA,WAAAE,mBAAAC,jHAAWqB;;AAAX,AAAA,IAAAtB,yBAAA;AAAA,AAAA,GAAA,AAAAtD,0BAAA,iFAAA,0DAAA,8DAAA,qDAAA,kEAAA,gEAAA,4DAAA,yEAAAuD;AAAA,OAAAC,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAJ,wBAAAX,eAAAY;;AAAA,oDAAAzC,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAA,AAAAgB,oBAAA,AAAAH,+CAAApC,gBAAAmC,kBAAA,vPAAWqB;;;;AAAX,CAAA,AAAA,wGAAA,WAAAhB,mBAAAlD,tIAAWkE;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,IAAAC,WAAAnD;IAAAmD,eAAA,EAAA,CAAAA,oBAAAhD,oBAAA,AAAAgD,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;AAAA;;;;AAAA,OAAA7D,0BAAAoB,gBAAAV;;;;;AAAA,CAAA,AAAA,0FAAA,WAAAoD,mBAAAC,gBAAAzB,xIAAWsC;;AAAX,AAAA,IAAAd,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,oBAAA,CAAAC,4CAAAA,0CAAA,gDAAAE,eAAAF,sBAAA,gDAAAE;AAAA,oDAAA5B,SAAAvB,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,jKAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,yDAAAE,eAAAF,sBAAA,yDAAAE;AAAA,oDAAApD,UAAAwB,SAAArE,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,7JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,qDAAAE,eAAAF,sBAAA,qDAAAE;AAAA,oDAAApD,UAAAC,cAAAuB,SAAAtB,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,/JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,6DAAAE,eAAAF,sBAAA,6DAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAAqE,SAAArB,eAAAC,YAAAC,aAAAwB,cAAAvB,gBAAA,3JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,2DAAAE,eAAAF,sBAAA,2DAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAsB,SAAApB,YAAAC,aAAAwB,cAAAvB,gBAAA,5JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,qDAAAE,eAAAF,sBAAA,qDAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAqB,SAAAnB,aAAAwB,cAAAvB,gBAAA,/JAAWwD;;AAAX,oBAAA,CAAAZ,4CAAAA,0CAAA,uDAAAE,eAAAF,sBAAA,uDAAAE;AAAA,oDAAApD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAoB,SAAAK,cAAAvB,gBAAA,9JAAWwD;;AAAX,oDAAA9D,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAwB,cAAA,AAAAzD,8CAAAkC,gBAAA2C,gBAAAzB,UAAA,1OAAWsC;;;;;;;;;;AAAX,CAAA,AAAA,oFAAA,WAAAT,/FAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAhC,+CAAA,mFAAA,KAAAiC,mBAAA,gDAAAvD,UAAA,OAAA,KAAAuD,mBAAA,yDAAAtD,cAAA,OAAA,KAAAsD,mBAAA,qDAAApG,YAAA,OAAA,KAAAoG,mBAAA,6DAAArD,gBAAA,OAAA,KAAAqD,mBAAA,2DAAApD,eAAA,OAAA,KAAAoD,mBAAA,qDAAAnD,YAAA,OAAA,KAAAmD,mBAAA,uDAAAlD,aAAA,eAAAC;;;AAAA,CAAA,AAAA,2FAAA,WAAAkD,mBAAAhC,zHAAWsC;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,oDAAAxD,UAAAC,cAAA9C,YAAA+C,gBAAAC,eAAAC,YAAAC,aAAAmB,SAAAlB,gBAAAyB,7JAAW+B;;;AAAX,CAAA,AAAA,wFAAA,WAAAL,mBAAAC,tHAAWI;;AAAX,AAAA,IAAAL,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAArG,+CAAAwG,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAAI,mDAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,yDAAA;;AAAA,CAAA,AAAAA,8DAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,0CAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,iEAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;+CAAA,/CAAWM,sGAAqBvE,GAAGC,OAAQ9C,KAAK+C,SAASC,QAASC,KAAKC;AAAvE,AAAA,YAAAyD,mFAAA,KAAA,KAAA,rDAAgC9D,GAAGC,OAAQ9C,KAAK+C,SAASC,QAASC,KAAKC;;;AAAvE;;;kDAAA,0DAAA8D,5GAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,sDAAAyB,SAAA,kGAAA,yDAAA,qDAAA,6DAAA,2DAAA,qDAAA;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,wCAAA,AAAA,8EAAAK,UAAA,AAAA,uFAAAA,UAAA,AAAA,mFAAAA,UAAA,AAAA,2FAAAA,UAAA,AAAA,yFAAAA,UAAA,AAAA,mFAAAA,UAAA,AAAA,qFAAAA,UAAA,KAAA,AAAAtB,oBAAAuB,sBAAA;;;AAAAN,AACA,AAAA;;;;;;;AAAA;AAAA,CAAA,4CAAA,5CAASc;AAAT,AAAA,AAAA;;;AAAA,CAAA,kDAAA,lDAASA;;AAAT,CAAA,qDAAA,rDAASA;;AAAT,CAAA,0DAAA,WAAAH,mBAAAC,qBAAAC,7GAASC;AAAT,AAAA,OAAAV,iBAAAQ,qBAAA;;;AAAA;;;wCAAA,xCAASG,wFAAcC;AAAvB,AAAA,YAAAF,iCAAuBE;;;AAAdF,AACT,AAAOG,qCAAuC;AAoD9C","names":["taoensso.truss.impl/re-pattern?","x","js/RegExp","taoensso.truss.impl/str-contains?","s","substr","cljs.core.not_EQ_","taoensso.truss.impl/revery?","pred","coll","cljs.core.reduce","_","in","cljs.core/reduced","taoensso.truss.impl/revery","taoensso.truss.impl/rsome","temp__5825__auto__","p","var_args","G__28598","taoensso.truss.impl/assoc-some","js/Error","m","k","v","cljs.core.assoc","m-kvs","cljs.core/reduce-kv","taoensso.truss.impl/ensure-set","cljs.core/set?","cljs.core/set","taoensso.truss.impl/ks-nnil?","ks","p1__28613#","cljs.core.get","taoensso.truss.impl/ks=","and__5023__auto__","cljs.core/count","p1__28617#","cljs.core/contains?","taoensso.truss.impl/ks>=","p1__28622#","taoensso.truss.impl/ks<=","counted-ks","cljs.core/counted?","ks-set","this__5323__auto__","k__5324__auto__","this__5325__auto__","k28631","else__5326__auto__","G__28648","cljs.core/Keyword","ns","coords","arg-form","arg-val","data","error","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","ret__5346__auto__","p__28656","vec__28657","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","cljs.core/PersistentVector","G__28630","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this28632","other28633","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","G__28678","this__5331__auto__","k__5332__auto__","pred__28679","cljs.core/keyword-identical?","expr__28680","this__5336__auto__","cljs.core/seq","cljs.core/MapEntry","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","taoensso.truss.impl/FailedAssertionInfo","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__28640","extmap__5365__auto__","G__28682","cljs.core/record?","taoensso.truss.impl/->FailedAssertionInfo","taoensso.truss.impl/map->FailedAssertionInfo","this__5310__auto__","writer__5311__auto__","opt__5312__auto__","taoensso.truss.impl/ArgEvalError","taoensso.truss.impl/->ArgEvalError","ex","taoensso.truss.impl/FalsePredError"],"sourcesContent":["(ns ^:no-doc taoensso.truss.impl\n \"Private implementation details.\"\n (:require\n [clojure.set :as set]\n #?(:clj [clojure.java.io :as jio]))\n #?(:cljs\n (:require-macros\n [taoensso.truss.impl :refer\n [catching now-inst* and? or?]])))\n\n(comment (require '[taoensso.encore :as enc]))\n\n;;;;\n\n#?(:clj (defmacro legacy-assertion-ex-data? [] (= (System/getProperty \"taoensso.truss.legacy-assertion-ex-data\") \"true\")))\n\n;;;; Encore imports\n\n#?(:clj (defn list-form? [x] (or (list? x) (instance? clojure.lang.Cons x))))\n\n#?(:clj (defn re-pattern? [x] (instance? java.util.regex.Pattern x))\n :cljs (defn ^boolean re-pattern? [x] (instance? js/RegExp x)))\n\n#?(:clj (defmacro now-dt* [] (if (:ns &env) `(js/Date.) `(java.util.Date.))))\n#?(:clj (defmacro now-inst* [] (if (:ns &env) `(js/Date.) `(java.time.Instant/now))))\n#?(:clj\n (defmacro identical-kw? [x y]\n (if (:ns &env)\n `(cljs.core/keyword-identical? ~x ~y)\n `(identical? ~x ~y))))\n\n(defn str-contains?\n #?(:cljs {:tag 'boolean})\n [s substr]\n #?(:clj (.contains ^String s ^String substr)\n :cljs (not= -1 (.indexOf s substr))))\n\n(defn revery? #?(:cljs {:tag 'boolean}) [pred coll] (reduce (fn [_ in] (if (pred in) true (reduced false))) true coll))\n(defn revery [pred coll] (reduce (fn [_ in] (if (pred in) coll (reduced nil))) coll coll))\n(defn rsome [pred coll] (reduce (fn [_ in] (when-let [p (pred in)] (reduced p))) nil coll))\n(defn assoc-some\n ([m k v ] (if-not (nil? v) (assoc m k v) m))\n ([m m-kvs] (reduce-kv assoc-some m m-kvs)))\n\n(defn ensure-set [x] (if (set? x) x (set x)))\n(defn ks-nnil? #?(:cljs {:tag 'boolean}) [ks m] (revery? #(some? (get m %)) ks))\n(defn ks= #?(:cljs {:tag 'boolean}) [ks m] (and (== (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks>= #?(:cljs {:tag 'boolean}) [ks m] (and (>= (count m) (count ks)) (revery? #(contains? m %) ks)))\n(defn ks<= #?(:cljs {:tag 'boolean}) [ks m]\n (let [counted-ks (if (counted? ks) ks (set ks))]\n (and\n (<= (count m) (count counted-ks))\n (let [ks-set (ensure-set counted-ks)]\n (reduce-kv (fn [_ k v] (if (contains? ks-set k) true (reduced false))) true m)))))\n\n#?(:clj\n (defmacro catching\n ([try-expr ] `(catching ~try-expr ~'_ nil))\n ([try-expr error-sym catch-expr]\n (if (:ns &env)\n `(try ~try-expr (catch :default ~error-sym ~catch-expr))\n `(try ~try-expr (catch Throwable ~error-sym ~catch-expr))))))\n\n#?(:clj\n (defn- var-info [macro-env sym]\n (when (symbol? sym)\n (if (:ns macro-env)\n (let [ns (find-ns 'cljs.analyzer.api)\n v (ns-resolve ns 'resolve)] ; Don't cache!\n (when-let [{:as m, var-ns :ns, var-name :name} ; ?{:keys [meta ns name ...]}\n (@v macro-env sym)]\n (when var-ns ; Skip locals\n (assoc m :sym (symbol (str var-ns) (name var-name))))))\n\n (when-let [v (resolve macro-env sym)]\n (let [{:as m, var-ns :ns, var-name :name} (meta v)]\n {:var v\n :sym (symbol (str var-ns) (name var-name))\n :ns var-ns\n :name var-name\n :meta\n (if-let [x (get m :arglists)]\n (assoc m :arglists `'~x) ; Quote\n (do m))}))))))\n\n#?(:clj (defmacro and? ([] true) ([x] x) ([x & next] `(if ~x (and? ~@next) false))))\n#?(:clj (defmacro or? ([] false) ([x] x) ([x & next] `(if ~x true (or? ~@next)))))\n\n;;;; Assertion predicates\n\n#?(:clj (defn ensure-set-form [form] (if (set? form) form `(ensure-set ~form))))\n#?(:clj (def ^:private safe-pred-forms\n (let [names\n (mapv name\n '#{nil? some? string? integer? number? symbol? keyword? float?\n set? vector? coll? list? ifn? fn? associative? sequential? delay?\n sorted? counted? reversible? true? false? identity not boolean})]\n (-> #{}\n (into (mapv #(symbol \"clojure.core\" %) names))\n (into (mapv #(symbol \"cljs.core\" %) names))))))\n\n#?(:clj\n (defn parse-pred-form\n \"Returns [safe? form show special?].\"\n ([macro-env pred-form ] (parse-pred-form macro-env pred-form false nil))\n ([macro-env pred-form in-comp? gsym]\n (if-not (vector? pred-form)\n ;; Standard predicate\n (let [{:keys [meta sym]} (var-info macro-env pred-form)\n safe?\n (or\n (get meta :truss/safe)\n (keyword? pred-form)\n (map? pred-form)\n (set? pred-form)\n (contains? safe-pred-forms sym))]\n\n [safe? (or sym pred-form) (or sym pred-form)])\n\n ;; Special predicate\n (let [[kind a1 a2 a3] pred-form\n num-args (dec (count pred-form))\n _\n (when (or (< num-args 1) (> num-args 3))\n (throw\n (ex-info \"Truss special predicates should have 1\u2264n\u22643 elements\"\n {:pred-form pred-form})))\n\n gsym (or gsym (gensym \"arg\"))\n\n [safe? body]\n (case kind\n :set= [false `(= (ensure-set ~gsym) ~(ensure-set-form a1))]\n :set<= [false `(set/subset? (ensure-set ~gsym) ~(ensure-set-form a1))]\n :set>= [false `(set/superset? (ensure-set ~gsym) ~(ensure-set-form a1))]\n\n :ks= [false `(ks= ~(ensure-set-form a1) ~gsym)]\n :ks<= [false `(ks<= ~(ensure-set-form a1) ~gsym)]\n :ks>= [false `(ks>= ~(ensure-set-form a1) ~gsym)]\n :ks-nnil? [false `(ks-nnil? ~(ensure-set-form a1) ~gsym)]\n ( :el :in) [false `(contains? ~(ensure-set-form a1) ~gsym)]\n (:not-el :not-in) [false `(if (contains? ~(ensure-set-form a1) ~gsym) false true)]\n\n :n= [false `(= (count ~gsym) ~a1)]\n :n>= [false `(>= (count ~gsym) ~a1)]\n :n<= [false `(<= (count ~gsym) ~a1)]\n\n :instance? [false `(instance? ~a1 ~gsym)]\n :satisfies? [false `(satisfies? ~a1 ~gsym)]\n\n (:and :or :not) ; Composition\n (let [;; Support recursive expansion\n [sf3? a3 _ sp3?] (when a3 (parse-pred-form macro-env a3 :in-comp gsym))\n [sf2? a2 _ sp2?] (when a2 (parse-pred-form macro-env a2 :in-comp gsym))\n [sf1? a1 _ sp1?] (when a1 (parse-pred-form macro-env a1 :in-comp gsym))\n\n a3-test (when a3 (if sp3? a3 `(~a3 ~gsym)))\n a2-test (when a2 (if sp2? a2 `(~a2 ~gsym)))\n a1-test (when a1 (if sp1? a1 `(~a1 ~gsym)))\n\n ;; [:and ...] comp is safe if all preds are safe\n ;; [:or ...] comp ensures that all but last pred are safe\n\n in-or? (= kind :or)\n [sf2? a2-test] (if (and in-or? a3 (not sf2?)) [true `(catching ~a2-test)] [sf2? a2-test])\n [sf1? a1-test] (if (and in-or? a2 (not sf1?)) [true `(catching ~a1-test)] [sf1? a1-test])\n\n sf-all? (boolean (and (if a1 sf1? true) (if a2 sf2? true) (if a3 sf3? true)))\n body\n (case kind\n :or ; any-of\n (cond\n a3 `(or? ~a1-test ~a2-test ~a3-test)\n a2 `(or? ~a1-test ~a2-test)\n a1 a1-test)\n\n :and ; all-of\n (cond\n a3 `(and? ~a1-test ~a2-test ~a3-test)\n a2 `(and? ~a1-test ~a2-test)\n a1 a1-test)\n\n :not ; none-of, same as [:and (not a1) (not a2) ...]\n (cond\n a3 `(if (or? ~a1-test ~a2-test ~a3-test) false true)\n a2 `(if (or? ~a1-test ~a2-test) false true)\n a1 `(if ~a1-test false true)))]\n\n [sf-all? body])\n\n (throw\n (ex-info \"Unexpected Truss special predicate kind\"\n {:pred-form pred-form})))]\n\n (let [safe? (boolean safe?)\n form (if in-comp? body `(fn [~gsym] ~body))\n show pred-form]\n\n [safe? form show :special]))))))\n\n;;;; Assertions\n\n;; User-facing record provided to `*failed-assertion-handler*`\n(defrecord FailedAssertionInfo [ns coords, pred arg-form arg-val, data error])\n(deftype ArgEvalError [ex]) ; Private wrapper type to identiy exceptions evaluating args or executing (pred arg) checks\n(def FalsePredError #?(:clj (Object.) :cljs (js-obj))) ; Private object to identify falsey (pred arg) checks\n\n#?(:clj\n (defmacro assert1\n [bool? coords [psafe? pform pshow] [arg-form arg-show] data-fn-form]\n (let [cljs? (:ns &env)\n [line column] coords\n eval-arg? (list-form? arg-form)\n ns (str *ns*)\n\n gs-error (gensym \"error\")\n gs-arg-val (gensym \"arg-val\")\n arg-show (or arg-show arg-form)]\n\n (case [(if eval-arg? :eval-arg :local-arg)\n (if psafe? :safe-pred :unsafe-pred)]\n\n [:local-arg :safe-pred]\n `(if (~pform ~arg-form)\n ~(if bool? true arg-form)\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-show ~arg-form ~data-fn-form nil))\n\n [:local-arg :unsafe-pred]\n `(let [~gs-error (catching (if (~pform ~arg-form) nil FalsePredError) ~'e ~'e)]\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-show ~arg-form ~data-fn-form ~gs-error)\n ~(if bool? true arg-form)))\n\n [:eval-arg :safe-pred]\n `(let [~gs-arg-val (catching ~arg-form ~'e (ArgEvalError. ~'e))\n ~gs-error\n (if (instance? ArgEvalError ~gs-arg-val)\n ~gs-arg-val\n (if (~pform ~gs-arg-val) nil FalsePredError))]\n\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-show ~gs-arg-val ~data-fn-form ~gs-error)\n ~(if bool? true gs-arg-val)))\n\n [:eval-arg :unsafe-pred]\n `(let [~gs-arg-val (catching ~arg-form ~'e (ArgEvalError. ~'e))\n ~gs-error\n (if (instance? ArgEvalError ~gs-arg-val)\n ~gs-arg-val\n (catching\n (if (~pform ~gs-arg-val) nil FalsePredError)\n ~'e ~'e))]\n\n (if ~gs-error\n (taoensso.truss/failed-assertion! ~ns ~line ~column ~pshow '~arg-show ~gs-arg-val ~data-fn-form ~gs-error)\n ~(if bool? true gs-arg-val)))))))\n\n(comment (macroexpand '(assert1 true [0 0] [true string? string?] ['arg-form 'arg-show] (fn [] (+ 3 2)))))\n\n#?(:clj\n (defmacro assert-args\n \"Low-level `assert` wrapper for `have`-style API.\"\n [elidable? bool? coords arg-forms]\n (let [bang? (= (first arg-forms) :!) ; For back compatibility, undocumented\n elidable? (and elidable? (not bang?))\n elide? (and elidable? (not *assert*))\n arg-forms (if bang? (next arg-forms) arg-forms)\n in? (= (second arg-forms) :in) ; (have pred :in xs1 xs2 ...)\n arg-forms (if in? (cons (first arg-forms) (nnext arg-forms)) arg-forms)\n data-fn-form\n (when (and\n (> (count arg-forms) 2) ; Distinguish from `:data` pred\n (= (last (butlast arg-forms)) :data))\n `(fn [] ~(last arg-forms)))\n\n arg-forms (if data-fn-form (butlast (butlast arg-forms)) arg-forms)\n auto-pred? (= (count arg-forms) 1) ; Unique common case: (have ?x)\n pred-form (if auto-pred? `some? (first arg-forms))\n [?x1 ?xs]\n (cond\n auto-pred? [(first arg-forms) nil]\n (nnext arg-forms) [nil (next arg-forms)]\n :else [(second arg-forms) nil])\n\n single-x? (nil? ?xs)\n\n [psafe? pform pshow] (parse-pred-form &env pred-form)\n gs-ps (gensym \"ps\")\n gs-pf (gensym \"pf\")\n gs-df (gensym \"df\")\n gs-in (gensym \"in\")]\n\n (if elide?\n (if bool? true (if single-x? ?x1 (vec ?xs)))\n\n (case [(if in? :in :not-in)\n (if single-x? :single-x :multi-x)]\n\n [:not-in :single-x] ; (have* pred x) -> x or bool\n `(assert1 ~bool? ~coords [~psafe? ~pform '~pshow] [~?x1] ~data-fn-form)\n\n [:not-in :multi-x] ; (have* pred x1 x2 ...) -> [x1 x2 ...] or bool\n (let [body (mapv (fn [x] `(assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] [~x] ~gs-df)) ?xs)\n body (if bool? `(do ~@body true) body)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n ~body))\n\n [:in :single-x] ; (have* pred :in xs) -> xs or bool\n (let [rfn (if bool? `revery? `revery)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n (~rfn (fn [~gs-in] (assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] [~gs-in [:in ~?x1]] ~gs-df)) ~?x1)))\n\n [:in :multi-x] ; (have* pred :in xs1 xs2 ...) -> [xs1 ...] or bool\n (let [rfn (if bool? `revery? `revery)\n body (mapv (fn [xs] `(~rfn (fn [~gs-in] (assert1 ~bool? ~coords [~psafe? ~gs-pf ~gs-ps] [~gs-in [:in ~xs]] ~gs-df)) ~xs)) ?xs)\n body (if bool? `(do ~@body true) body)]\n `(let [~gs-ps '~pshow\n ~gs-pf ~pform\n ~gs-df ~data-fn-form]\n ~body)))))))\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/public/js/cljs-runtime/taoensso.truss.js b/public/js/cljs-runtime/taoensso.truss.js index bd08e8d..ce68917 100644 --- a/public/js/cljs-runtime/taoensso.truss.js +++ b/public/js/cljs-runtime/taoensso.truss.js @@ -35,9 +35,9 @@ if(cljs.core.truth_(temp__5823__auto__)){ var pred_fn = temp__5823__auto__; return (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val)); } else { -var G__43302 = sub_val; -var G__43302__$1 = (((G__43302 instanceof cljs.core.Keyword))?G__43302.fqn:null); -switch (G__43302__$1) { +var G__28967 = sub_val; +var G__28967__$1 = (((G__28967 instanceof cljs.core.Keyword))?G__28967.fqn:null); +switch (G__28967__$1) { case "submap/nx": return cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword("taoensso.truss","nx","taoensso.truss/nx",1464090303)); @@ -79,7 +79,8 @@ taoensso.truss._STAR_ctx_STAR_ = null; * Private, don't use. */ taoensso.truss.ex_info_STAR_ = (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){ -var data_map__$1 = (cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ns","ns",441598760),ns,new cljs.core.Keyword(null,"coords","coords",-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ns","ns",441598760),ns], null),data_map)); +var data_map__$1 = (((ns == null))?data_map:(cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ns","ns",441598760),ns,new cljs.core.Keyword(null,"coords","coords",-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ns","ns",441598760),ns], null),data_map) +)); var data_map__$2 = (function (){var temp__5823__auto__ = taoensso.truss._STAR_ctx_STAR_; if(cljs.core.truth_(temp__5823__auto__)){ var ctx = temp__5823__auto__; @@ -116,12 +117,18 @@ if((update_map_or_fn == null)){ return old_ctx; } else { if(cljs.core.map_QMARK_(update_map_or_fn)){ -return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(old_ctx,update_map_or_fn); +return cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ = old_ctx; +if(cljs.core.truth_(or__5025__auto__)){ +return or__5025__auto__; +} else { +return cljs.core.PersistentArrayMap.EMPTY; +} +})(),update_map_or_fn); } else { if(cljs.core.ifn_QMARK_(update_map_or_fn)){ return (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx)); } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [194,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"update-map-or-fn","update-map-or-fn",1067081399,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.truss","update-ctx","taoensso.truss/update-ctx",2138642429,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,"null",new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"fn","fn",465265323,null),"null"], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [195,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"update-map-or-fn","update-map-or-fn",1067081399,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.truss","update-ctx","taoensso.truss/update-ctx",2138642429,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,"null",new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"fn","fn",465265323,null),"null"], null), null)], null)); } } @@ -144,8 +151,8 @@ while(true){ var temp__5823__auto__ = cljs.core.ex_cause(error); if(cljs.core.truth_(temp__5823__auto__)){ var cause = temp__5823__auto__; -var G__43555 = cause; -error = G__43555; +var G__29702 = cause; +error = G__29702; continue; } else { return error; @@ -195,8 +202,8 @@ return null; * Returns vector cause chain of given platform error. */ taoensso.truss.ex_chain = (function taoensso$truss$ex_chain(var_args){ -var G__43328 = arguments.length; -switch (G__43328) { +var G__29025 = arguments.length; +switch (G__29025) { case 1: return taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -224,10 +231,10 @@ while(true){ var temp__5823__auto__ = cljs.core.ex_cause(error); if(cljs.core.truth_(temp__5823__auto__)){ var cause = temp__5823__auto__; -var G__43558 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause))); -var G__43559 = cause; -acc = G__43558; -error = G__43559; +var G__29732 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause))); +var G__29733 = cause; +acc = G__29732; +error = G__29733; continue; } else { return acc; @@ -289,8 +296,8 @@ return null; * This is a low-level util, see also `throws`, `throws?`. */ taoensso.truss.matching_error = (function taoensso$truss$matching_error(var_args){ -var G__43352 = arguments.length; -switch (G__43352) { +var G__29188 = arguments.length; +switch (G__29188) { case 1: return taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -314,9 +321,9 @@ return error; })); (taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 = (function (kind,error){ -var temp__5825__auto__ = (((kind instanceof cljs.core.Keyword))?(function (){var G__43361 = kind; -var G__43361__$1 = (((G__43361 instanceof cljs.core.Keyword))?G__43361.fqn:null); -switch (G__43361__$1) { +var temp__5825__auto__ = (((kind instanceof cljs.core.Keyword))?(function (){var G__29198 = kind; +var G__29198__$1 = (((G__29198 instanceof cljs.core.Keyword))?G__29198.fqn:null); +switch (G__29198__$1) { case "default": case "all-but-critical": return (!((error == null))); @@ -336,11 +343,11 @@ return (!((error == null))); break; default: -throw taoensso.truss.ex_info_STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [405,21], null),"Unexpected Truss `matching-error` `kind` keyword",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),kind,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"default","default",-1987822328),"null",new cljs.core.Keyword(null,"all","all",892129742),"null",new cljs.core.Keyword(null,"common","common",-1822281391),"null",new cljs.core.Keyword(null,"ex-info","ex-info",2114560529),"null"], null), null)], null),null); +throw taoensso.truss.ex_info_STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [406,21], null),"Unexpected Truss `matching-error` `kind` keyword",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"given","given",716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),kind,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"default","default",-1987822328),"null",new cljs.core.Keyword(null,"all","all",892129742),"null",new cljs.core.Keyword(null,"common","common",-1822281391),"null",new cljs.core.Keyword(null,"ex-info","ex-info",2114560529),"null"], null), null)], null),null); } -})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__43343_SHARP_){ -return taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__43343_SHARP_,error); +})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__29172_SHARP_){ +return taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__29172_SHARP_,error); }),kind):(error instanceof kind) )))); if(cljs.core.truth_(temp__5825__auto__)){ @@ -358,8 +365,8 @@ if((pattern == null)){ return true; } else { if(cljs.core.set_QMARK_(pattern)){ -return taoensso.truss.impl.rsome((function (p1__43347_SHARP_){ -return taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__43347_SHARP_,error); +return taoensso.truss.impl.rsome((function (p1__29175_SHARP_){ +return taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__29175_SHARP_,error); }),pattern); } else { if(typeof pattern === 'string'){ @@ -377,7 +384,7 @@ return taoensso.truss.submap_QMARK_(data,pattern); return null; } } else { -return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [427,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"pattern","pattern",1882666950,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.truss","matching-error","taoensso.truss/matching-error",557680092,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,"null",new cljs.core.Symbol(null,"set","set",1945134081,null),"null",new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"re-pattern","re-pattern",1047705161,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null"], null), null)], null)); +return taoensso.truss.unexpected_arg_BANG__STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [428,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"param","param",2013631823),new cljs.core.Symbol(null,"pattern","pattern",1882666950,null),new cljs.core.Keyword(null,"context","context",-830191113),new cljs.core.Symbol("taoensso.truss","matching-error","taoensso.truss/matching-error",557680092,null),new cljs.core.Keyword(null,"expected","expected",1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,"null",new cljs.core.Symbol(null,"set","set",1945134081,null),"null",new cljs.core.Symbol(null,"map","map",-1282745308,null),"null",new cljs.core.Symbol(null,"re-pattern","re-pattern",1047705161,null),"null",new cljs.core.Symbol(null,"string","string",-349010059,null),"null"], null), null)], null)); } } @@ -404,11 +411,11 @@ return null; (taoensso.truss.matching_error.cljs$lang$maxFixedArity = 3); -var get_default_error_fn_43574 = (function (base_data){ +var get_default_error_fn_29781 = (function (base_data){ var msg = cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword("error","msg","error/msg",-1549923468),"Error thrown during reduction"); var base_data__$1 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword("error","msg","error/msg",-1549923468)); return (function taoensso$truss$default_error_fn(data,cause){ -throw taoensso.truss.ex_info_STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [470,20], null),msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause); +throw taoensso.truss.ex_info_STAR_(null,null,msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause); }); }); /** @@ -422,8 +429,8 @@ throw taoensso.truss.ex_info_STAR_("taoensso.truss",new cljs.core.PersistentVect * See also `catching-xform`. */ taoensso.truss.catching_rf = (function taoensso$truss$catching_rf(var_args){ -var G__43391 = arguments.length; -switch (G__43391) { +var G__29301 = arguments.length; +switch (G__29301) { case 1: return taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -439,40 +446,40 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 = (function (rf){ -return taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_43574(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf], null)),rf); +return taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_29781(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf], null)),rf); })); (taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 = (function (error_fn,rf){ -var error_fn__$1 = ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_43574(error_fn):error_fn); +var error_fn__$1 = ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_29781(error_fn):error_fn); return (function() { var taoensso$truss$catching_rf = null; var taoensso$truss$catching_rf__0 = (function (){ try{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null)); -}catch (e43407){var t = e43407; -var G__43408 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null))], null); -var G__43409 = t; -return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43408,G__43409) : error_fn__$1.call(null,G__43408,G__43409)); +}catch (e29328){var t = e29328; +var G__29332 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null))], null); +var G__29333 = t; +return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29332,G__29333) : error_fn__$1.call(null,G__29332,G__29333)); }}); var taoensso$truss$catching_rf__1 = (function (acc){ try{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc)); -}catch (e43410){var t = e43410; -var G__43411 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null)], null)], null); -var G__43412 = t; -return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43411,G__43412) : error_fn__$1.call(null,G__43411,G__43412)); +}catch (e29345){var t = e29345; +var G__29349 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null)], null)], null); +var G__29350 = t; +return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29349,G__29350) : error_fn__$1.call(null,G__29349,G__29350)); }}); var taoensso$truss$catching_rf__2 = (function (acc,in$){ try{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$)); -}catch (e43413){var t = e43413; -var G__43415 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null),new cljs.core.Symbol(null,"in","in",109346662,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,"in","in",-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),in$,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(in$)], null)], null)], null); -var G__43416 = t; -return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43415,G__43416) : error_fn__$1.call(null,G__43415,G__43416)); +}catch (e29364){var t = e29364; +var G__29368 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null),new cljs.core.Symbol(null,"in","in",109346662,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,"in","in",-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),in$,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(in$)], null)], null)], null); +var G__29369 = t; +return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29368,G__29369) : error_fn__$1.call(null,G__29368,G__29369)); }}); var taoensso$truss$catching_rf__3 = (function (acc,k,v){ try{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v)); -}catch (e43417){var t = e43417; -var G__43419 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null),new cljs.core.Symbol(null,"k","k",-505765866,null),new cljs.core.Symbol(null,"v","v",1661996586,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,"k","k",-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),k,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,"v","v",21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),v,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(v)], null)], null)], null); -var G__43420 = t; -return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43419,G__43420) : error_fn__$1.call(null,G__43419,G__43420)); +}catch (e29374){var t = e29374; +var G__29375 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"rf","rf",2002878243),rf,new cljs.core.Keyword(null,"call","call",-519999866),cljs.core.list(new cljs.core.Symbol(null,"rf","rf",-651557526,null),new cljs.core.Symbol(null,"acc","acc",-1815869457,null),new cljs.core.Symbol(null,"k","k",-505765866,null),new cljs.core.Symbol(null,"v","v",1661996586,null)),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"acc","acc",838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),acc,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,"k","k",-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),k,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,"v","v",21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),v,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(v)], null)], null)], null); +var G__29376 = t; +return (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29375,G__29376) : error_fn__$1.call(null,G__29375,G__29376)); }}); taoensso$truss$catching_rf = function(acc,k,v){ switch(arguments.length){ @@ -509,8 +516,8 @@ return taoensso$truss$catching_rf; * <...>) */ taoensso.truss.catching_xform = (function taoensso$truss$catching_xform(var_args){ -var G__43430 = arguments.length; -switch (G__43430) { +var G__29395 = arguments.length; +switch (G__29395) { case 2: return taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); @@ -538,13 +545,13 @@ return cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,x (taoensso.truss.catching_xform.cljs$lang$maxFixedArity = 2); taoensso.truss.sys_newline = "\n"; -var legacy_ex_data_QMARK__43582 = false; +var legacy_ex_data_QMARK__29853 = false; /** * Returns an appropriate `truss/ex-info` for given failed assertion info map. */ taoensso.truss.failed_assertion_ex_info = (function taoensso$truss$failed_assertion_ex_info(var_args){ -var G__43445 = arguments.length; -switch (G__43445) { +var G__29442 = arguments.length; +switch (G__29442) { case 1: return taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); @@ -560,26 +567,26 @@ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1( }); (taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 = (function (failed_assertion_info){ -return taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__43582,failed_assertion_info); +return taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__29853,failed_assertion_info); })); (taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 = (function (legacy_ex_data_QMARK___$1,failed_assertion_info){ -var map__43462 = failed_assertion_info; -var map__43462__$1 = cljs.core.__destructure_map(map__43462); -var inst = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"inst","inst",645962501)); -var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"ns","ns",441598760)); -var coords = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"coords","coords",-599429112)); -var pred = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); -var arg_form = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013)); -var arg_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280)); -var data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"data","data",-232669377)); -var error = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,"error","error",-978969032)); +var map__29454 = failed_assertion_info; +var map__29454__$1 = cljs.core.__destructure_map(map__29454); +var inst = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"inst","inst",645962501)); +var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"ns","ns",441598760)); +var coords = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"coords","coords",-599429112)); +var pred = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); +var arg_form = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013)); +var arg_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280)); +var data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"data","data",-232669377)); +var error = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,"error","error",-978969032)); var undefined_arg_QMARK_ = cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword("truss","exception","truss/exception",1369199181)); var coords_str = (function (){var temp__5825__auto__ = coords; if(cljs.core.truth_(temp__5825__auto__)){ -var vec__43475 = temp__5825__auto__; -var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43475,(0),null); -var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43475,(1),null); +var vec__29471 = temp__5825__auto__; +var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(0),null); +var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(1),null); if(cljs.core.truth_(column)){ return ["[",cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),",",cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),"]"].join(''); } else { @@ -597,9 +604,9 @@ return [msg,taoensso.truss.sys_newline,"Error evaluating arg: ",cljs.core.str.cl return [msg,taoensso.truss.sys_newline,"Error evaluating pred: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(''); } })():msg); -return taoensso.truss.ex_info_STAR_("taoensso.truss",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [547,8], null),msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"dt","dt",-368444759),(new Date()),new cljs.core.Keyword(null,"loc","loc",-584284901),(function (){var vec__43482 = coords; -var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43482,(0),null); -var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43482,(1),null); +return taoensso.truss.ex_info_STAR_(null,null,msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"dt","dt",-368444759),(new Date()),new cljs.core.Keyword(null,"loc","loc",-584284901),(function (){var vec__29490 = coords; +var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(0),null); +var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(1),null); return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"ns","ns",441598760),ns,new cljs.core.Keyword(null,"line","line",212345235),line,new cljs.core.Keyword(null,"column","column",2078222095),column], null); })(),new cljs.core.Keyword(null,"msg","msg",-1386103444),msg__$1,new cljs.core.Keyword(null,"pred","pred",1927423397),pred,new cljs.core.Keyword(null,"data","data",-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"arg","arg",-1747261837),data,new cljs.core.Keyword(null,"dynamic","dynamic",704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"*assert*","*assert*",-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,"error","error",-978969032),error,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"form","form",-1624062471),arg_form,new cljs.core.Keyword(null,"value","value",305978217),arg_val,new cljs.core.Keyword(null,"type","type",1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword("truss","exception","truss/exception",1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"inst","inst",645962501),(new Date()),new cljs.core.Keyword(null,"ns","ns",441598760),ns,new cljs.core.Keyword(null,"pred","pred",1927423397),pred,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"form","form",-1624062471),arg_form,new cljs.core.Keyword(null,"value","value",305978217),arg_val,new cljs.core.Keyword(null,"type","type",1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword("truss","exception","truss/exception",1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"coords","coords",-599429112),coords,new cljs.core.Keyword(null,"data","data",-232669377),data], null))),error); })); @@ -635,12 +642,12 @@ taoensso.truss.failed_assertion_BANG_ = (function taoensso$truss$failed_assertio var temp__5823__auto__ = taoensso.truss._STAR_failed_assertion_handler_STAR_; if(cljs.core.truth_(temp__5823__auto__)){ var handler = temp__5823__auto__; -var G__43488 = (function (){var undefined_arg_QMARK_ = (arg_val instanceof taoensso.truss.impl.ArgEvalError); +var G__29554 = (function (){var undefined_arg_QMARK_ = (arg_val instanceof taoensso.truss.impl.ArgEvalError); return (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword("truss","exception","truss/exception",1369199181):arg_val),(function (){var temp__5825__auto__ = data_fn; if(cljs.core.truth_(temp__5825__auto__)){ var df = temp__5825__auto__; try{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null)); -}catch (e43491){var _ = e43491; +}catch (e29557){var _ = e29557; return new cljs.core.Keyword("truss","exception","truss/exception",1369199181); }} else { return null; @@ -648,7 +655,7 @@ return null; })(),(((error === taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error )),null,null,null)); })(); -return (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__43488) : handler.call(null,G__43488)); +return (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__29554) : handler.call(null,G__29554)); } else { return arg_val; } @@ -660,19 +667,19 @@ return arg_val; taoensso.truss.legacy_error_fn = (function taoensso$truss$legacy_error_fn(f){ if(cljs.core.truth_(f)){ return (function (failed_assertion_info){ -var G__43509 = (new cljs.core.Delay((function (){ -var map__43511 = failed_assertion_info; -var map__43511__$1 = cljs.core.__destructure_map(map__43511); -var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"ns","ns",441598760)); -var coords = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"coords","coords",-599429112)); -var pred = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); -var arg_form = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013)); -var arg_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280)); -var data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"data","data",-232669377)); -var error = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,"error","error",-978969032)); -var vec__43513 = coords; -var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43513,(0),null); -var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43513,(1),null); +var G__29581 = (new cljs.core.Delay((function (){ +var map__29588 = failed_assertion_info; +var map__29588__$1 = cljs.core.__destructure_map(map__29588); +var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"ns","ns",441598760)); +var coords = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"coords","coords",-599429112)); +var pred = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); +var arg_form = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"arg-form","arg-form",1400564013)); +var arg_val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"arg-val","arg-val",1802419280)); +var data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"data","data",-232669377)); +var error = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,"error","error",-978969032)); +var vec__29589 = coords; +var line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(0),null); +var column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(1),null); var msg_ = (new cljs.core.Delay((function (){ var msg = ["Invariant failed at ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?["[",cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[",",cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(''):null),"]"].join(''):null),": ",cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(''); if(cljs.core.truth_(error)){ @@ -688,7 +695,7 @@ return msg; }),null)); return taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"msg_","msg_",-1925147000),msg_,new cljs.core.Keyword(null,"dt","dt",-368444759),(new Date()),new cljs.core.Keyword(null,"pred","pred",1927423397),pred,new cljs.core.Keyword(null,"arg","arg",-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"form","form",-1624062471),arg_form,new cljs.core.Keyword(null,"value","value",305978217),arg_val,new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,"env","env",-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"*assert*","*assert*",-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,"loc","loc",-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"ns","ns",441598760),ns,new cljs.core.Keyword(null,"line","line",212345235),line,new cljs.core.Keyword(null,"column","column",2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"data","data",-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"dynamic","dynamic",704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,"arg","arg",-1747261837),data], null)),new cljs.core.Keyword(null,"err","err",-2089457205),error], null)); }),null)); -return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43509) : f.call(null,G__43509)); +return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__29581) : f.call(null,G__29581)); }); } else { return null; diff --git a/public/js/cljs-runtime/taoensso.truss.js.map b/public/js/cljs-runtime/taoensso.truss.js.map index 2c7869d..83b66f8 100644 --- a/public/js/cljs-runtime/taoensso.truss.js.map +++ b/public/js/cljs-runtime/taoensso.truss.js.map @@ -1 +1 @@ -{"version":3,"sources":["taoensso/truss.cljc"],"mappings":";AAuBA,AAoCA;;;;;;;;;;;;+BAAA,/BAAeA,sEAWZC,UAAUC;AAXb,AAYE,OAACC,oBACC,WAAKC,EAAEC,QAAQC;AAAf,AACE,GAAI,AAACC,qBAAQD;AACX,IAAME,YAAU,AAACC,4CAAIR,UAAUI;AAA/B,AACE,IAAAK,qBAAgB,iBAAAE,oBAAK,AAACL,qBAAKC;AAAX,AAAA,GAAAI;AAAsB,QAACZ,6DAAAA,gFAAAA,rBAAQQ,4DAAAA,lDAAUF,4DAAAA;;AAAzCM;;;AAAhB,AAAA,oBAAAF;AAAA,mBAAAA,fAASC;AAAT,AAAA;;AAEE,yBAAA,lBAACE;;;AAEL,IAAML,YAAU,8DAAA,9DAACC,4CAAIR,UAAUI;AAA/B,AACE,IAAAK,qBACS,iBAAAA,qBAAiB,gCAAA,QAAA,tCAAM,AAACK,oBAAIT,UAASA;AAArC,AAAA,oBAAAI;AAAA,cAAAA,VAASI;AAAT,AACE,QAACA,wCAAAA,mDAAAA,bAAQN,+BAAAA;;AACT,IAAAQ,WAAMV;IAANU,eAAA,EAAA,CAAAA,oBAAAC,oBAAA,AAAAD,aAAA;AAAA,AAAA,QAAAA;KAAA;AACkB,OAAAE,6CAAA,VAAoBV;;;KADtC;AAEa,UAAK,AAAAU,6CAAA,VAAoBV;;;KAFtC;AAG+B,UAAA,cAAA,bAAOA;;;;AACpC,OAACW,6CAAEb,QAAQE;;;;;AAPxB,AAAA,oBAAAE;AAAA,mBAAAA,fAASC;AAAT,AAAA;;AASE,yBAAA,lBAACE;;;GAlBX,KAoBEX;;AAIJ;;;;;;;;;iCAAA,jCAAekB;AAUf;;;+BAAA,/BAAeC,sEAEZC,GAAGC,OAAOC,IAAIC,SAASC;AAF1B,AAGE,IAAMD,eACA,kBAAIF,QACF,6CAAA,2CAAA,mDAAA,3IAACI,wIAAUL,4DAAYC,eAAQE,UAC/B,6CAAA,2CAAA,xFAACE,wIAAUL,WAAoBG;IAEjCA,eACA,iBAAAf,qBAAaU;AAAb,AAAA,oBAAAV;AAAA,UAAAA,NAASkB;AAAT,AACE,kEAAA,3DAACC,8CAAMJ,yEAAoBG;;AAC3B,AAAOH;;;AARf,AAUE,OAACK,gDAAaN,IAAIC,aAASC;;AAE/B;;;4CAAA,5CAAeK,gGAEZT,GAAGC,OAAOS,IAAIC;AAFjB,AAGE,MACE,AAACZ,6BAASC,GAAGC,OACX,iBAAAW,mBAAO,gDAAA,hDAACzB,4CAAOwB;AAAf,AAAA,oBAAAC;AAAAA;;AAAyB,QAAA,oEAA6B,iBAAA,fAAI,QAAA,PAAMF,sBAAaA;;sYAD/E,jYAEE,sJAAA,tJAACH,8CAAM,mDAAA,nDAACM,+CAAOF,6GAAe,2CAAA,0DAAA,qDAAA,AAAAG,zDAAWJ,wEAAAA;;AAiD/C;;;+BAAA,/BAAMK,sEAEHC;AAFH,AAIW,QAAqBlB,iCAAekB;;AAM/C;;;4BAAA,5BAAeC,gEAEZC,QAAQC;AAFX,AAGE,GACE,qBAAA,pBAAMA;AAA4BD;;AADpC,GAEE,AAACjC,qBAAKkC;AAAkB,OAACd,6CAASa,QAASC;;AAF7C,GAGE,AAACC,qBAAKD;AAAkB,QAACA,iDAAAA,0DAAAA,XAAiBD,sCAAAA;;AAH5C,AAKE,OAAAT,0CAAA,iBAAA,mFAAA,IAAA,2BAAA,2CAAA,uDAAA,AAAA,iFAAA,2DAAA,AAAA,gGAAA,6DAAA,AAAA,5ZAAiBU;;;;;;AAmBrB;;;8BAAA,9BAAME,oEAGHC;AAHH,AAKW,qBAAWC,bAAUD;;AAEhC;;;;yBAAA,zBAAeE,0DAGZF;AAHH,AAIE,oBAAM,AAACD,4BAAOC;AAAd,AACE,IAAOG,QAAMH;;AAAb,AACE,IAAAlC,qBAAe,AAACsC,mBAASD;AAAzB,AAAA,oBAAArC;AAAA,YAAAA,RAASgB;AAAT,AACE,eAAOA;;;;AACPqB;;;;;AAJN;;;AAMF,AAEA;;;;yBAAA,zBAAeE,0DAGZL;AAHH,AAMK,GACE,cAAWM,bAAcN;AAD3B,AAAA;;AAAA,GAEE,cAAWC,bAAcD;AAAG,sDAAA,/CAACO,oDAAY,AAAQP;;AAFnD;;;;AAIL;;;;8BAAA,9BAAeQ,oEAGZR;AAHH,AAIE,IAAAS,qBAA2B,AAACC,qBAAWV;AAAvC,AAAA,oBAAAS;AAAA,AAAA,UAAAA,NAAW7B;AAAX,AACE,IAAAd,qBAAc,AAAC8C,oBAAU,AAACC,kBAAWb;AAArC,AAAA,oBAAAlC;AAAA,WAAAA,PAAS6C;AAAT,AAAA,kDAAA,+EAAA,wDAAA,lFACS,AAACN,uBAAQL,uDAASpB,yDAAW+B;;AADtC,kDAAA,+EAAA,1BAES,AAACN,uBAAQL,uDAASpB;;;AAH7B;;;AAKF,AAEA,AAAA;;;;0BAAA,kCAAAkC,5DAAeE;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAf,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAee,mEAGFhB;AAHb,AAGgB,6DAAA,tDAACiB,4DAAejB;;;AAHhC,CAAA,wDAAA,xDAAegB,mEAIXE,eAASlB;AAJb,AAKG,oBAAM,AAACD,4BAAOC;AAAd,AACE,IAAMmB,KAAG,kBAAID,gBAASV,4BAAQY;AAA9B,AACE,UAAA,NAAOC,yFAAK,CAACF,mCAAAA,sCAAAA,LAAGnB,kBAAAA;IAAKG,QAAMH;;AAA3B,AACE,IAAAlC,qBAAe,AAACsC,mBAASD;AAAzB,AAAA,oBAAArC;AAAA,YAAAA,RAASgB;AAAT,AACE,eAAO,AAACC,6CAAKsC,IAAI,CAACF,mCAAAA,0CAAAA,TAAGrC,sBAAAA;eAAQA;;;;;AAC7B,AAAauC;;;;;AALrB;;;;AALH,CAAA,kDAAA,lDAAeL;;AAAf,AAYA,AAeA;;;;wBAAA,xBAAeM,wDAGZtB;AAHH,AAIE,IAAAS,qBAAiB,AAACQ,sDAASjB;AAA3B,AAAA,oBAAAS;AAAA,AAAA,YAAAA,RAAWc;AAAX,AACE,IAAMC,OAAS,AAACC,6CAAKjB,4BAAQe;IACvBG,OAAS,AAACC,eAAKJ;IACfK,WAAS,AAACD,eAAKH;AAFrB,AAIE,6EAAA,2CAAA,0DAAA,3KAACK,6DAAgBD,yGACPJ,6DAEE,iBAAAf,yBAAc,AAASiB;AAAvB,AAAA,oBAAAjB;AAAA,AAAA,SAAAA,LAAWqB;AAAX,AAA8B,GAAU,gDAAA,hDAACvD,6CAAEuD;AAAb;;AAAA,AAAoBA;;;AAAlD;;;;AARhB;;;AAaF,AAgEA,AAYA,AAEA,AAAA;;;;;;;;;;;;;;;;;;;;gCAAA,wCAAAhB,xEAAMkB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAM+B,yEAmBG7B;AAnBT,AAmBgBA;;;AAnBhB,CAAA,8DAAA,9DAAM6B,yEAoBFC,KAAK9B;AApBT,AAqBG,IAAAM,qBACW,EACE,iBAAApC,hBAAU4D,oCACV,iBAAAC,WAAUD;IAAVC,eAAA,EAAA,CAAAA,oBAAA7D,oBAAA,AAAA6D,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAC2F,UAAA,UAAA,TAAyB/B;;;KADpH;AAE2F,yBAAWF,jBAAcE;;;KAFpH;AAG2F,yBAAWG,jBAAcH;;;KAHpH;KAAA;AAI2F,UAAA,UAAA,TAAyBA;;;;AAClH,MACE,AAAA1B,6BAAA,iBAAA,mFAAA,IAAA,WAAA,mDAAA,2CAAA,8OAAA,6DAAA,AAAA,uWAAA,5lBACa,2CAAA,2DAAA,qDAAA,AAAAe,1DAAWyC,yEAAAA;;;KAT9B,8GAAA,sIAAA,lOAYE,AAAClC,4BAAOkC,OAAM,AAAC1D,6CAAE0D,KAAK9B,SACtB,AAAChC,oBAAO8D,OAAM,CAACA,qCAAAA,4CAAAA,TAAK9B,wBAAAA,UACpB,AAACgC,qBAAOF,OAAM,0BAAA,WAAAG,rCAACC;AAAD,AAAa,mEAAAD,5DAACE,6EAAiBnC;SAd/C,NAcsD8B,MAC9C,kBAAWA,jBAAK9B;;AAhBnC,AAAA,oBAAAM;AAAA,AAAA,mBAAAA,fAAW1C;AAAX,AAiBEoC;;AAjBF;;;;AArBH,CAAA,8DAAA,9DAAM6B,yEAwCFC,KAAKM,QAAQpC;AAxCjB,AAyCG,IAAArC,qBACS,iBAAAE,oBACE,AAACsE,4DAAeL,KAAK9B;AADvB,AAAA,oBAAAnC;AAEE,GACE,YAAA,XAAkBuE;AADpB;;AAAA,GAEE,AAACJ,qBAAiBI;AAAS,iCAAA,WAAAC,rCAACH;AAAD,AAAa,wEAAAG,jEAACF,4DAAeL,sBAAO9B;GAAOoC;;AAFxE,GAGE,OAAkBA;AAAS,OAACE,wCAAuB,AAAC/B,qBAAWP,OAAOoC;;AAHxE,GAIE,AAACG,sCAAiBH;AAAS,OAACI,kBAAQJ,QAAe,AAAC7B,qBAAWP;;AAJjE,GAKE,AAACxC,qBAAiB4E;AAAS,IAAA9B,qBAAwB,AAACI,kBAAWV;AAApC,AAAA,oBAAAM;AAAA,AAAA,WAAAA,PAAWE;AAAX,AACE,OAACvD,6BAAQuD,KAAK4B;;AADhB;;;AAL7B,AAQE,OAAApD,0CAAA,iBAAA,mFAAA,IAAA,mBAAA,2CAAA,uDAAA,AAAA,+DAAA,2DAAA,AAAA,uGAAA,6DAAA,AAAA,xYAAiBoD;;;;;;;;AAVrBvE;;;AADT,AAAA,oBAAAF;AAAA,mBAAAA,fAASC;AAAT,AAeEoC;;AAEA,IAAAM,qBAAiB,AAACL,mBAASD;AAA3B,AAAA,oBAAAM;AAAA,AAAA,YAAAA,RAAW3B;AAAX,AACE,OAACwD,4DAAeL,KAAKM,QAAQzD;;AAD/B;;;;;AA1DL,CAAA,wDAAA,xDAAMkD;;AAAN,AAyFA,IAAMY,6BACA,WAAKC;AAAL,AACE,IAAMjE,MAAU,sDAAA,6DAAA,nHAACf,4CAAOgF;IAClBA,gBAAU,yDAAA,zDAACtD,+CAAOsD;AADxB,AAGE,iDAAsBlC,KAAK7B;AAA3B,AACE,MAAO,AAAAL,6BAAA,iBAAA,mFAAA,IAAA,WAASG,IAAI,AAACG,6CAAK8D,cAAUlC,MAAM7B;;;AANtD,AAQE,AAAA;;;;;;;;;;6BAAA,qCAAAgC,lEAAMiC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9C,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAM8C,sEASOC;AATb,AASiB,OAACC,yDAAY,2BAAA,2CAAA,tEAACL,uHAA0BI,YAAKA;;;AAT9D,CAAA,2DAAA,3DAAMD,sEAUFG,SAASF;AAVb,AAWG,IAAME,eACA,EAAI,AAACvF,qBAAKuF,WACR,AAACN,2BAAqBM,UACtB,AAAsBA;AAH9B,AAKE;;;AAAA,AACa,IAAA,AAAM,QAACF,mCAAAA,qCAAAA;gBAAP,QAAAG,JAA8BC;AAA9B,AAAgC,IAAAC,WAAA,2CAAA,oDAAA,qDAAA,AAAA,xDAAeL;IAAfM,WAA+BF;AAA/B,AAAA,gGAAAC,SAAAC,mCAAAD,SAAAC,7IAACJ,6CAAAA,gEAAAA;;+CAC1C7B;AAFJ,AAEa,IAAA,AAAM,QAAC2B,mCAAAA,wCAAAA,PAAG3B,oBAAAA;gBAAV,QAAAkC,JAA8BH;AAA9B,AAAgC,IAAAI,WAAA,2CAAA,oDAAA,qDAAA,AAAA,6HAAA,qDAAA,2CAAA,rRAAeR,uUAAkC,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA;IAA5DoC,WAAmEL;AAAnE,AAAA,gGAAAI,SAAAC,mCAAAD,SAAAC,7IAACP,6CAAAA,gEAAAA;;+CAC1C7B,IAAIqC;AAHR,AAGa,IAAA,AAAM,QAACV,mCAAAA,4CAAAA,XAAG3B,wBAAAA,pBAAIqC,wBAAAA;gBAAd,QAAAC,JAA8BP;AAA9B,AAAgC,IAAAQ,WAAA,2CAAA,oDAAA,qDAAA,AAAA,iLAAA,qDAAA,2CAAA,wOAAA,jjBAAeZ,2XAAkC,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA,+DACX,2CAAA,0DAAA,qDAAA,AAAA7B,zDAAWkE,wEAAAA;IAD5DG,WACkET;AADlE,AAAA,gGAAAQ,SAAAC,mCAAAD,SAAAC,7IAACX,6CAAAA,gEAAAA;;+CAE1C7B,IAAIyC,EAAEC;AALV,AAMG,IAAA,AAAM,QAACf,mCAAAA,4CAAAA,XAAG3B,wBAAAA,pBAAIyC,wBAAAA,tBAAEC,wBAAAA;gBAAhB,QAAAC,JACcZ;AADd,AAEI,IAAAa,WAAA,2CAAA,oDAAA,qDAAA,AAAA,mOAAA,qDAAA,2CAAA,wOAAA,kOAAA,r0BACWjB,6aAGF,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA,6DACX,2CAAA,wDAAA,qDAAA,AAAA7B,vDAAWsE,sEAAAA,wDACX,2CAAA,wDAAA,qDAAA,AAAAtE,vDAAWuE,sEAAAA;IANpBG,WAOEd;AAPF,AAAA,gGAAAa,SAAAC,mCAAAD,SAAAC,7IAAChB,6CAAAA,gEAAAA;;sCAHJ7B,IAAIyC,EAAEC;;;;;+CAAN1C;;+CAAAA,IAAIyC;;+CAAJzC,IAAIyC,EAAEC;;;;;;;;;;;;AArBf,CAAA,qDAAA,rDAAMhB;;AAAN,AAiCF,AAAA;;;;;;;;;;;gCAAA,wCAAAjC,xEAAMsD;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAnE,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAMmE,yEAWFlB,SAASmB;AAXb,AAWoB,OAACC,6CAAK,WAAKtB;AAAL,AAAS,OAACC,yDAAYC,SAASF;GAAKqB;;;AAX9D,CAAA,8DAAA,9DAAMD,yEAYOC;AAZb,AAYoB,OAACC,6CAAevB,2BAA0BsB;;;AAZ9D,CAAA,wDAAA,xDAAMD;;AAAN,AAgBA,6BAAA,7BAAeG;AAEf,IAAMC,8BAAgB;AAAtB,AAEE,AAAA;;;0CAAA,kDAAA1D,5FAAM4D;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sEAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAzE,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wEAAA,xEAAMyE,mFAEcC;AAFpB,AAE2C,OAACC,sEAAyBJ,4BAAgBG;;;AAFrF,CAAA,wEAAA,xEAAMD,mFAGFF,0BAAgBG;AAHpB,AAIG,IAAAE,aAAkEF;IAAlEE,iBAAA,AAAAC,4BAAAD;WAAA,AAAAhH,4CAAAgH,eAAA,lEAAcE;SAAd,AAAAlH,4CAAAgH,eAAA,hEAAmBnG;aAAnB,AAAAb,4CAAAgH,eAAA,pEAAsBlG;WAAtB,AAAAd,4CAAAgH,eAAA,lEAA8BG;eAA9B,AAAAnH,4CAAAgH,eAAA,tEAAmCI;cAAnC,AAAApH,4CAAAgH,eAAA,rEAA4CK;WAA5C,AAAArH,4CAAAgH,eAAA,lEAAqDlE;YAArD,AAAA9C,4CAAAgH,eAAA,nEAA0D1E;IACpDgF,uBAAe,AAAA7G,2CAAA,RAAoB4G;IAEnCE,aACA,iBAAA3E,qBAAyB9B;AAAzB,AAAA,oBAAA8B;AAAA,AAAA,IAAA4E,aAAA5E;WAAA,AAAA6E,4CAAAD,WAAA,IAAA,lEAAYE;aAAZ,AAAAD,4CAAAD,WAAA,IAAA,pEAAiBG;AAAjB,AACE,oBAAIA;AACF,QAAA,sDAAA,wDAAA,9DAASD,sDAASC;;AAClB,QAAA,sDAAA,NAASD;;;AAHb;;;IAKA3G,MAAI,CAAA,wFAAA,fAAkCF,IAAG0G,4DAAgB,KAAAK,eAAA,UAAA,KAAAA,eAAA,cAAA,KAAA,IAAA,OAAA,IAAA,3DAAMT,8BAAKC;IACpErG,UACA,kBAAIuB,OACF,iBAAMuF,YAAU,AAAChF,qBAAWP;AAA5B,AACE,GAAIgF;AACF,uCAAA,/BAAKvG,IAAI2F,gGAAsCmB;;AAC/C,uCAAA,/BAAK9G,IAAI2F,iGAAsCmB;;KACnD9G;AAhBR,AAkBE,OAAAH,6BAAA,iBAAA,mFAAA,IAAA,UAASG,QAEP,6CAAA,2CAAA,8DAAA,pIAAI4F,uHACO,KAAAmB,2DACA,iBAAAC,aAAoBjH;WAApB,AAAA2G,4CAAAM,WAAA,IAAA,lEAAOL;aAAP,AAAAD,4CAAAM,WAAA,IAAA,pEAAYJ;AAAZ,AAAA,kDAAA,mDAAA,yDAAA,5DAAiC9G,uDAAU6G,8DAAcC;KAFpE,4DAAA,0DAAA,qDAAA,2CAAA,yDAAA,iGAAA,oDAAA,2CAAA,kGAAA,6DAAA,oDAAA,2CAAA,+DAAA,8DAAA,txBAGW5G,6DACAoG,yJACMrE,+DAAenC,mMACVqH,4FACX1F,2JAEA8E,+DACAC,6DACA,wBAAA,tBAAIC,8FAAgC,AAAC3F,eAAK0F,0BAEnD,6DAAA,2CAAA,iEAAA,mDAAA,0DAAA,oDAAA,2CAAA,+DAAA,8DAAA,8LAAA,2CAAA,gEAAA,3xBAACrD,4JACU,KAAA8D,wDACAjH,wDACAsG,0JAEAC,+DACAC,6DACA,wBAAA,tBAAIC,8FAAgC,AAAC3F,eAAK0F,8HAC1CvG,4DACAgC,eAEbR;;;AAhDP,CAAA,kEAAA,lEAAMuE;;AAAN,AAkDF;;;;;;;;;;;;;;;;;;;AAAeoB,sDAmBb,8DAAMnB;AAAN,AACE,MAAA,sEAAIA,tEAAsBC;;AAE9B,AAIA;;;wCAAA,xCAAemB,wFAEZrH,GAAG6G,KAAKC,OAAQR,KAAKC,SAASC,QAASc,QAAQ7F;AAFlD,AAGE,IAAArC,qBACiBgI;AADjB,AAAA,oBAAAhI;AAAA,cAAAA,VACSmI;AADT,AAEE,IAAAC,WACE,iBAAMf,uBAAe,oBAAWgB,nBAAajB;AAA7C,AACE,YAAAkB,wCAAsB1H,GACpB,wBAAA,kOAAA,xOAAM6G,MAAK,0BAAA,uGAAA,/GAAIC,2FAAQD,KAAKC,kGAASD,oBACrCP,KAAKC,SACL,wBAAA,tBAAIE,8FAAgCD,SACpC,iBAAAzE,qBAAcuF;AAAd,AAAA,oBAAAvF;AAAA,AAAA,SAAAA,LAAW4F;AAAX,AAAuB,IAAA,AAAe,QAACA,mCAAAA,qCAAAA;gBAAhB,QAAAC,JAAoB9I;AAApB,AAAA;;AAAvB;;KACA,kDAAA,KAAA,iCAAA,tFACE,CAAY2C,UAAMoG,4CAClBpB,sBAAe,AAAoBhF,SACAA;GARvC,KAAA,KAAA;;AAFJ,AAAA,sFAAA+F,8BAAAA,5GAACD,wCAAAA,kDAAAA;;AAWDf;;;AA8DJ;;;;iCAAA,jCAAesB,0EAGZC;AAHH,AAIE,oBAAMA;AAAN,AACE,kBAAK9B;AAAL,AACE,IAAA+B,WACE,KAAAC,gBAAA;AAAA,AACE,IAAAC,aAA6DjC;IAA7DiC,iBAAA,AAAA9B,4BAAA8B;SAAA,AAAA/I,4CAAA+I,eAAA,hEAAclI;aAAd,AAAAb,4CAAA+I,eAAA,pEAAiBjI;WAAjB,AAAAd,4CAAA+I,eAAA,lEAAyB5B;eAAzB,AAAAnH,4CAAA+I,eAAA,tEAA8B3B;cAA9B,AAAApH,4CAAA+I,eAAA,rEAAuC1B;WAAvC,AAAArH,4CAAA+I,eAAA,lEAAgDjG;YAAhD,AAAA9C,4CAAA+I,eAAA,nEAAqDzG;IAArD0G,aACoBlI;WADpB,AAAA2G,4CAAAuB,WAAA,IAAA,lEACOtB;aADP,AAAAD,4CAAAuB,WAAA,IAAA,pEACYrB;IACNsB,OACA,KAAAH,gBAAA;AAAA,AACE,IAAM/H,MACA,CAAA,6QAAA,1MAA4BF,IAC1B,wBAAA,wKAAA,9KAAM6G,MAAK,CAAA,yJAAA,zGAASA,MAAK,0BAAA,mEAAA,3EAAMC,QAAO,CAAA,gDAASA,6FAC/C,KAAAC,eAAA,UAAA,KAAAA,eAAA,cAAA,KAAA,IAAA,OAAA,IAAA,3DAAMT,8BAAKC;AAHnB,AAKE,oBAAI9E;AACF,IAAMuF,YAAU,AAAChF,qBAAWP;AAA5B,AACE,GAAI,AAAA7B,2CAAA,RAAoB4G;AACtB,kEAAA,1DAAKtG,IAAI2F,2BAAYA,gGAAsCmB;;AAC3D,kEAAA,1DAAK9G,IAAI2F,2BAAYA,iGAAsCmB;;;AAC/D9G;;GAXN;AAHN,AAgBE,oEAAA,2CAAA,2DAAA,8DAAA,0DAAA,oDAAA,2CAAA,+DAAA,8DAAA,qFAAA,oDAAA,2CAAA,kGAAA,mDAAA,2CAAA,mDAAA,yDAAA,gFAAA,2CAAA,6TAAA,/4CAACiD,8JACQiF,sDACgC,KAAAnB,6DAChCX,0JACcC,+DACAC,6DACN,AAAC1F,eAAK0F,6KACHW,mLACNnH,uDAAU6G,8DAAcC,uHAE7B,6DAAA,KAAA,2CAAA,yFAAA,tMAAC3D,uKAA8BrD,mFAAWmC,kEAC1CR;GA5Bb;AADF,AAAA,0EAAAuG,wBAAAA,1FAACD,kCAAAA,4CAAAA;;;AAFL;;;AAiCF;;;4CAAA,5CAA4BM;AAA5B,AAA2EvI;;AAC3E;;;0BAAA,1BAA4BwI;AAA5B,AAA2ExI;;AAC3E;;;oCAAA,pCAA4ByI,gFAEzBR;AAFH,AAGW,QAAkBX,sDAAmC,AAACU,+BAAgBC;;AAYjF","names":["taoensso.truss/submap?","super-map","sub-map","cljs.core/reduce-kv","_","sub-key","sub-val","cljs.core/map?","super-val","cljs.core.get","temp__5823__auto__","match?","and__5023__auto__","cljs.core/reduced","pred-fn","cljs.core/fn?","G__43302","cljs.core/Keyword","cljs.core/keyword-identical?","cljs.core._EQ_","taoensso.truss/*ctx*","taoensso.truss/ex-info*","ns","coords","msg","data-map","cause","cljs.core.conj","ctx","cljs.core.assoc","cljs.core.ex_info","taoensso.truss/unexpected-arg!*","arg","kvs","or__5025__auto__","cljs.core.dissoc","cljs.core/type","taoensso.truss/set-ctx!","root-ctx-val","taoensso.truss/update-ctx","old-ctx","update-map-or-fn","cljs.core/ifn?","taoensso.truss/error?","x","js/Error","taoensso.truss/ex-root","error","cljs.core/ex-cause","taoensso.truss/ex-type","cljs.core/ExceptionInfo","cljs.core.symbol","taoensso.truss/ex-map*","temp__5825__auto__","cljs.core/ex-message","data","cljs.core/not-empty","cljs.core/ex-data","var_args","G__43328","taoensso.truss/ex-chain","taoensso.truss.ex_chain","as-maps?","xf","cljs.core/identity","acc","taoensso.truss/ex-map","chain","maps","cljs.core.mapv","root","cljs.core/peek","root-map","taoensso.truss.impl.assoc_some","st","G__43352","taoensso.truss/matching-error","kind","G__43361","cljs.core/set?","p1__43343#","taoensso.truss.impl/rsome","taoensso.truss.matching_error","pattern","p1__43347#","taoensso.truss.impl/str-contains?","taoensso.truss.impl/re-pattern?","cljs.core/re-find","get-default-error-fn","base-data","G__43391","taoensso.truss/catching-rf","rf","taoensso.truss.catching_rf","error-fn","e43407","t","G__43408","G__43409","e43410","G__43411","G__43412","in","e43413","G__43415","G__43416","k","v","e43417","G__43419","G__43420","G__43430","taoensso.truss/catching-xform","xform","cljs.core.comp","taoensso.truss/sys-newline","legacy-ex-data?","G__43445","taoensso.truss/failed-assertion-ex-info","failed-assertion-info","taoensso.truss.failed_assertion_ex_info","map__43462","cljs.core/--destructure-map","inst","pred","arg-form","arg-val","undefined-arg?","coords-str","vec__43475","cljs.core.nth","line","column","cljs.core/List","error-msg","js/Date","vec__43482","cljs.core/*assert*","taoensso.truss/*failed-assertion-handler*","taoensso.truss/failed-assertion!","data-fn","handler","G__43488","taoensso.truss.impl/ArgEvalError","taoensso.truss.impl/FailedAssertionInfo","df","e43491","taoensso.truss.impl/FalsePredError","taoensso.truss/legacy-error-fn","f","G__43509","cljs.core/Delay","map__43511","vec__43513","msg_","taoensso.truss/get-dynamic-assertion-data","taoensso.truss/get-data","taoensso.truss/set-error-fn!"],"sourcesContent":["(ns taoensso.truss\n \"A micro toolkit for Clojure/Script errors.\"\n {:author \"Peter Taoussanis (@ptaoussanis)\"}\n (:refer-clojure :exclude [ex-info])\n (:require\n #?(:clj [clojure.core :as core]\n :cljs [cljs.core :as core])\n\n #?(:clj [taoensso.truss.impl :as impl])\n #?(:cljs [taoensso.truss.impl :as impl :refer [FailedAssertionInfo ArgEvalError]]))\n\n #?(:cljs\n (:require-macros\n [taoensso.truss :refer\n [keep-callsite typed-val ex-info ex-info! unexpected-arg!\n with-ctx with-ctx+ try* catching throws throws?\n have have? have! have!?\n with-dynamic-assertion-data with-data with-error-fn]]))\n\n #?(:clj\n (:import\n [taoensso.truss.impl FailedAssertionInfo ArgEvalError])))\n\n(comment\n (require '[taoensso.encore :as enc])\n (enc/sortv (:api (enc/interns-overview))))\n\n;;;; Callsites\n\n#?(:clj\n (defn callsite-coords\n \"Returns [line column] from meta on given macro `&form`.\n See also `keep-callsite`.\"\n [macro-form]\n (when-let [{:keys [line column]} (meta macro-form)]\n (when line (if column [line column] [line])))))\n\n#?(:clj (defn ^:no-doc merge-callsite [macro-form inner-form] (vary-meta inner-form merge (meta macro-form))))\n#?(:clj\n (defmacro keep-callsite\n \"CLJ-865 means that it's not possible for an inner macro to access `&form`\n metadata (incl. {:keys [line column]}) of a wrapping outer macro:\n\n (defmacro inner [] (meta &form))\n (defmacro outer [] `(inner))\n (outer) => nil\n\n This util offers a workaround for authors of the outer macro, preserving\n the outer `&form` metadata for the inner macro:\n\n (defmacro inner [] (meta &form))\n (defmacro outer [] (keep-callsite `(inner)))\n (outer) => {:keys [line column ...]}\"\n [inner-form] `(merge-callsite ~'&form ~inner-form)))\n\n;;;; Misc\n\n#?(:clj (defmacro ^:no-doc typed-val [x] `{:value ~x, :type (type ~x)}))\n\n(defn ^:no-doc submap?\n \"Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n\n `sub-map` may contain special values:\n `:submap/nx` - Matches iff `super-map` does not contain key\n `:submap/ex` - Matches iff `super-map` does contain key (any val)\n `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n (fn [super-val]) - Matches iff given unary predicate returns truthy\n\n Uses stack recursion so supports only limited nesting.\"\n [super-map sub-map]\n (reduce-kv\n (fn [_ sub-key sub-val]\n (if (map? sub-val)\n (let [super-val (get super-map sub-key)]\n (if-let [match? (and (map? super-val) (submap? super-val sub-val))]\n true\n (reduced false)))\n\n (let [super-val (get super-map sub-key ::nx)]\n (if-let [match?\n (if-let [pred-fn (when (fn? sub-val) sub-val)]\n (pred-fn super-val)\n (case sub-val\n :submap/nx (impl/identical-kw? super-val ::nx)\n :submap/ex (not (impl/identical-kw? super-val ::nx))\n :submap/some (some? super-val)\n (= sub-val super-val)))]\n true\n (reduced false)))))\n true\n sub-map))\n\n;;;; Truss exceptions\n\n(def ^:dynamic *ctx*\n \"Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n\n Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n Modify root (default) value using `set-ctx!`.\n\n As with all dynamic Clojure vars, \\\"binding conveyance\\\" applies when\n using futures, agents, etc.\"\n nil)\n\n(defn ^:no-doc ex-info*\n \"Private, don't use.\"\n [ns coords msg data-map cause]\n (let [data-map\n (if coords\n (conj {:ns ns, :coords coords} data-map)\n (conj {:ns ns} data-map))\n\n data-map\n (if-let [ctx *ctx*]\n (assoc data-map :truss/ctx ctx)\n (do data-map))]\n\n (core/ex-info msg data-map cause)))\n\n(defn ^:no-doc unexpected-arg!*\n \"Private, don't use.\"\n [ns coords arg kvs]\n (throw\n (ex-info* ns coords\n (or (get kvs :msg) (str \"Unexpected argument: \" (if (nil? arg) \"\" arg)))\n (assoc (dissoc kvs :msg) :arg (typed-val arg)) nil)))\n\n#?(:clj\n (defmacro ex-info\n \"Macro version of `core/ex-info` that adds extra keys to ex-info's data map:\n `:truss/ctx` -- Value of dynamic `truss/*ctx*` when ex-info created\n `:ns` --------- Namespace string of ex-info callsite\n `:coords` ----- [line number] of ex-info callsite, only present\n if ex-info isn't wrapped by another macro (or see\n `keep-callsite` for a workaround).\"\n ([msg ] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg nil nil))\n ([msg data-map ] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map nil))\n ([msg data-map cause] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map ~cause))))\n\n#?(:clj\n (defmacro ex-info!\n \"Throws a `truss/ex-info`.\"\n ([msg ] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg nil nil)))\n ([msg data-map ] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map nil)))\n ([msg data-map cause] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map ~cause)))))\n\n#?(:clj\n (defmacro unexpected-arg!\n \"Throws a `truss/ex-info` to indicate an unexpected argument:\n\n (defn my-function [mode]\n (case mode\n :read (do <...>)\n :write (do <...>)\n (unexpected-arg! mode\n {:param 'mode\n :context `my-function\n :expected #{:read :write}})))\n\n (my-function :invalid-mode) => throws\n Unexpected argument: :invalid-mode\n {:param 'mode,\n :arg {:value :unexpected, :type clojure.lang.Keyword},\n :context 'my-ns/my-function,\n :expected #{:read :write}\n ...}\"\n\n {:arglists '([arg] [arg kvs])}\n ([arg k1 v1 & more] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg ~(apply hash-map k1 v1 more))) ; Back compatibility\n ([arg ] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg nil))\n ([arg kvs] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg ~kvs))))\n\n;;;; Context utils\n\n(defn set-ctx!\n \"Set `*ctx*` var's default (root) value. See `*ctx*` for details.\"\n [root-ctx-val]\n #?(:clj (alter-var-root (var *ctx*) (fn [_] root-ctx-val))\n :cljs (set! *ctx* root-ctx-val)))\n\n(defmacro with-ctx\n \"Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\"\n [ctx-val & body] `(binding [*ctx* ~ctx-val] ~@body))\n\n(defn ^:no-doc update-ctx\n \"Returns `new-ctx` given `old-ctx` and an update map or fn.\"\n [old-ctx update-map-or-fn]\n (cond\n (nil? update-map-or-fn) old-ctx\n (map? update-map-or-fn) (conj (or old-ctx) update-map-or-fn) ; Before ifn\n (ifn? update-map-or-fn) (update-map-or-fn old-ctx)\n :else\n (unexpected-arg! update-map-or-fn\n {:param 'update-map-or-fn\n :context `update-ctx\n :expected '#{nil map fn}})))\n\n(defmacro with-ctx+\n \"Evaluates given body with updated `*ctx*` value.\n\n `update-map-or-fn` may be:\n - A map to merge with current `*ctx*` value, or\n - A unary fn to apply to current `*ctx*` value\n\n See `*ctx*` for details.\"\n [update-map-or-fn & body]\n `(binding [*ctx* (update-ctx *ctx* ~update-map-or-fn)]\n ~@body))\n\n;;;; Error utils\n\n(defn error?\n \"Returns true iff given platform error (`Throwable` or `js/Error`).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? Throwable x)\n :cljs (instance? js/Error x)))\n\n(defn ^:no-doc ex-root\n \"Private, don't use.\n Returns root cause of given platform error.\"\n [x]\n (when (error? x)\n (loop [error x]\n (if-let [cause (ex-cause error)]\n (recur cause)\n error))))\n\n(comment (ex-root (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n(defn ^:no-doc ex-type\n \"Private, don't use.\n Returns class symbol of given platform error.\"\n [x]\n #?(:clj (symbol (.getName (class x)))\n :cljs\n (cond\n (instance? ExceptionInfo x) `ExceptionInfo ; Note namespaced\n (instance? js/Error x) (symbol \"js\" (.-name x)))))\n\n(defn ^:no-doc ex-map*\n \"Private, don't use.\n Returns ?{:keys [type msg data]} for given platform error.\"\n [x]\n (when-let [msg (ex-message x)]\n (if-let [data (not-empty (ex-data x))]\n {:type (ex-type x), :msg msg, :data data}\n {:type (ex-type x), :msg msg})))\n\n(comment (ex-map* (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n(defn ^:no-doc ex-chain\n \"Private, don't use.\n Returns vector cause chain of given platform error.\"\n ([ x] (ex-chain false x))\n ([as-maps? x]\n (when (error? x)\n (let [xf (if as-maps? ex-map* identity)]\n (loop [acc [(xf x)], error x]\n (if-let [cause (ex-cause error)]\n (recur (conj acc (xf cause)) cause)\n (do acc)))))))\n\n(comment (ex-chain :as-maps (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n#?(:clj\n (defn- st-element->map [^StackTraceElement ste]\n {:class (symbol (.getClassName ste))\n :method (symbol (.getMethodName ste))\n :file (.getFileName ste)\n :line (.getLineNumber ste)}))\n\n;; #?(:clj\n;; (defn- st-element->str ^String [^StackTraceElement ste]\n;; (str\n;; \"`\" (.getClassName ste) \"/\" (.getMethodName ste) \"`\"\n;; \" at \" (.getFileName ste) \":\" (.getLineNumber ste))))\n\n(defn ^:no-doc ex-map\n \"Private, don't use.\n Returns ?{:keys [type msg data chain trace]} for given platform error.\"\n [x]\n (when-let [chain (ex-chain x)]\n (let [maps (mapv ex-map* chain)\n root (peek chain)\n root-map (peek maps)]\n\n (impl/assoc-some root-map\n {:chain maps\n :trace\n #?(:cljs (when-let [st (.-stack root)] (when-not (= st \"\") st))\n :clj\n (when-let [st (not-empty (.getStackTrace ^Throwable root))] ; Don't delay\n (delay (mapv st-element->map st))))}))))\n\n(comment\n (ex-map (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"})))\n (ex-map (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"})))\n (let [ex (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))]\n (enc/qb 1e5 ; [21.22 114.51]\n (ex-map ex)\n (Throwable->map ex))))\n\n#?(:clj (defn ^:no-doc critical-error? [x] (and (instance? Error x) (not (instance? AssertionError x)))))\n#?(:clj (defn- non-critical-throwable? [x] (and (instance? Throwable x) (not (critical-error? x)))))\n#?(:clj\n (defn ^:no-doc throw-critical\n \"Private, don't use.\n If given any `Error` besides `AssertionError`, (re)throw it.\n Useful as a hack to allow easily catching both `Exception` and `AssertionError`:\n (try (catch Throwable t (throw-critical t) )), etc.\"\n [x] (when (critical-error? x) (throw x))))\n\n#?(:clj\n (defmacro try*\n \"Like `try`, but `catch` clause class may be:\n `:ex-info` -- Catches only `ExceptionInfo`\n `:common` --- Catches `js/Error` (Cljs), `Exception` (Clj)\n `:all` ------ Catches `:default` (Cljs), `Throwable` (Clj)\n `:default` -- Catches `:default` (Cljs), `Exception`, and `AssertionError` (Clj)\n but NOT other (usually critical) `Error`s\n\n Addresses CLJ-1293 and the fact that `AssertionError`s are typically NON-critical\n (so desirable to catch, in contrast to other `Error` classes).\"\n {:arglists '([expr* catch-clauses* ?finally-clause])}\n [& forms]\n (let [cljs? (some? (:ns &env))\n forms\n (mapv\n (fn [in]\n (if-not (impl/list-form? in)\n in\n (let [[s1 s2 s3 & more] in]\n (cond\n (not= s1 'catch) in\n (not (keyword? s2)) in\n :else\n (let [[rethrow-critical? s2]\n (case s2\n (:all :any) (if cljs? [false :default] [false `Throwable])\n (:default :all-but-critical) (if cljs? [false :default] [true `Throwable])\n (:common) (if cljs? [false 'js/Error] [false `Exception])\n (:ex-info)\n (if cljs?\n [false 'cljs.core.ExceptionInfo]\n [false 'clojure.lang.ExceptionInfo])\n\n (throw\n (ex-info \"Unexpected Truss `try*` catch clause keyword\"\n {:given {:value s2, :type (type s2)}\n :expected '#{:ex-info :common :all :default}})))]\n\n (if rethrow-critical?\n `(catch ~s2 ~s3 (throw-critical ~s3) ~@more)\n `(catch ~s2 ~s3 ~@more)))))))\n forms)]\n\n `(try ~@forms))))\n\n(comment\n (macroexpand '(try* (catch :all t t 1 2 3) (finally 1 2 3)))\n (macroexpand '(try* (/ 1 0) (catch :all t t 1 2 3) (finally 1 2 3)))\n (macroexpand '(try* (/ 1 0) (catch :default t t 1 2 3) (finally 1 2 3))))\n\n#?(:clj\n (defmacro catching\n \"Terse cross-platform util to swallow exceptions in `expr`.\n Like (try* expr (catch :default _ nil)). See also `try*`.\"\n ([ expr] `(try* ~expr (catch :default ~'_)))\n ([catch-class expr] `(try* ~expr (catch ~catch-class ~'_)))))\n\n(comment (catching (zero? \"9\")))\n\n(defn matching-error\n \"Given a platform error and criteria for matching, returns the error if it\n matches all criteria. Otherwise returns nil.\n\n `kind` may be:\n - A class (`ArithmeticException`, `AssertionError`, etc.)\n - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n - A set of `kind`s as above, at least one of which must match\n - A predicate function, (fn match? [x]) -> bool\n\n `pattern` may be:\n - A string or Regex against which `ex-message` must match\n - A map against which `ex-data` must match using `submap?`\n - A set of `pattern`s as above, at least one of which must match\n\n When an error with (nested) causes doesn't match, a match will be attempted\n against its (nested) causes.\n\n This is a low-level util, see also `throws`, `throws?`.\"\n ([ error] error)\n ([kind error]\n (when-let [match?\n (cond\n (keyword? kind)\n (case kind\n (:default :all-but-critical) #?(:clj (non-critical-throwable? error) :cljs (some? error))\n (:common) #?(:clj (instance? Exception error) :cljs (instance? js/Error error))\n (:ex-info) #?(:clj (instance? clojure.lang.IExceptionInfo error) :cljs (instance? ExceptionInfo error))\n (:all :any) #?(:clj (instance? Throwable error) :cljs (some? error))\n (throw\n (ex-info \"Unexpected Truss `matching-error` `kind` keyword\"\n {:given (typed-val kind)\n :expected '#{:default :common :ex-info :all}})))\n\n (error? kind) (= kind error) ; Exact match\n (fn? kind) (kind error) ; Pred\n (set? kind) (impl/rsome #(matching-error % error) kind)\n :else (instance? kind error))]\n error))\n\n ([kind pattern error]\n (if-let [match?\n (and\n (matching-error kind error)\n (cond\n (nil? pattern) true\n (set? pattern) (impl/rsome #(matching-error kind % error) pattern)\n (string? pattern) (impl/str-contains? (ex-message error) pattern)\n (impl/re-pattern? pattern) (re-find pattern (ex-message error))\n (map? pattern) (when-let [data (ex-data error)]\n (submap? data pattern))\n :else\n (unexpected-arg! pattern\n {:param 'pattern\n :context `matching-error\n :expected '#{nil set string re-pattern map}})))]\n error\n ;; Try match cause\n (when-let [cause (ex-cause error)]\n (matching-error kind pattern cause)))))\n\n#?(:clj\n (defmacro throws\n \"Evals `form` and if it throws an error that matches given criteria using\n `matching-error`, returns the matching error. Otherwise returns nil.\n\n Useful for unit tests, e.g.:\n (is (throws :default {:a :b} (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => ExceptionInfo\n (is (throws :default \\\"MyEx\\\" (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => ExceptionInfo\n\n See also `throws?`, `matching-error`.\"\n ([ form] ` (try* ~form nil (catch :all ~'t ~'t)))\n ([kind form] `(matching-error ~kind (try* ~form nil (catch :all ~'t ~'t))))\n ([kind pattern form] `(matching-error ~kind ~pattern (try* ~form nil (catch :all ~'t ~'t))))))\n\n#?(:clj\n (defmacro throws?\n \"Evals `form` and if it throws an error that matches given criteria using\n `matching-error`, returns true. Otherwise returns false.\n\n Useful for unit tests, e.g.:\n (is (throws? :default {:a :b} (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => true\n (is (throws? :default \\\"MyEx\\\" (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => true\n\n See also `throws`, `matching-error`.\"\n ([ form] `(boolean (throws ~form)))\n ([kind form] `(boolean (throws ~kind ~form)))\n ([kind pattern form] `(boolean (throws ~kind ~pattern ~form)))))\n\n(let [get-default-error-fn\n (fn [base-data]\n (let [msg (get base-data :error/msg \"Error thrown during reduction\")\n base-data (dissoc base-data :error/msg)]\n\n (fn default-error-fn [data cause] ; == (partial ex-info )\n (throw (ex-info msg (conj base-data data) cause)))))]\n\n (defn catching-rf\n \"Returns wrapper around given reducing function `rf` so that if `rf`\n throws, (error-fn ) will be called.\n\n The default `error-fn` will rethrow the original error, wrapped in\n extra contextual information to aid debugging.\n\n Helps make reducing fns easier to debug!\n See also `catching-xform`.\"\n ([ rf] (catching-rf (get-default-error-fn {:rf rf}) rf))\n ([error-fn rf]\n (let [error-fn\n (if (map? error-fn) ; Undocumented convenience\n (get-default-error-fn error-fn)\n (do error-fn))]\n\n (fn catching-rf\n ([ ] (try* (rf) (catch :all t (error-fn {:rf rf :call '(rf)} t))))\n ([acc ] (try* (rf acc) (catch :all t (error-fn {:rf rf :call '(rf acc) :args {:acc (typed-val acc)}} t))))\n ([acc in ] (try* (rf acc in) (catch :all t (error-fn {:rf rf :call '(rf acc in) :args {:acc (typed-val acc)\n :in (typed-val in)}} t))))\n ([acc k v]\n (try* (rf acc k v)\n (catch :all t\n (error-fn\n {:rf rf\n :call '(rf acc k v)\n :args\n {:acc (typed-val acc)\n :k (typed-val k)\n :v (typed-val v)}}\n t)))))))))\n\n(defn catching-xform\n \"Like `catching-rf`, but applies to a transducer (`xform`).\n\n Helps make transductions much easier to debug by greatly improving\n the info provided in any errors thrown by `xform` or the reducing fn:\n\n (transduce\n (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n \n <...>)\"\n\n ([error-fn xform] (comp (fn [rf] (catching-rf error-fn rf)) xform))\n ([ xform] (comp catching-rf xform)))\n\n;;;; Assertions\n\n(def ^:private sys-newline #?(:cljs \"\\n\" :clj (System/getProperty \"line.separator\")))\n\n(let [legacy-ex-data? (impl/legacy-assertion-ex-data?)]\n\n (defn failed-assertion-ex-info\n \"Returns an appropriate `truss/ex-info` for given failed assertion info map.\"\n ([ failed-assertion-info] (failed-assertion-ex-info legacy-ex-data? failed-assertion-info))\n ([legacy-ex-data? failed-assertion-info]\n (let [{:keys [inst ns coords, pred arg-form arg-val, data error]} failed-assertion-info\n undefined-arg? (impl/identical-kw? arg-val :truss/exception)\n\n coords-str ; Faster (str coords)\n (when-let [[line column] coords]\n (if column\n (str \"[\" line \",\" column \"]\")\n (str \"[\" line \"]\")))\n\n msg (str \"Truss assertion failed at \" ns coords-str \": \" (list pred arg-form))\n msg\n (if error\n (let [error-msg (ex-message error)]\n (if undefined-arg?\n (str msg sys-newline \"Error evaluating arg: \" error-msg)\n (str msg sys-newline \"Error evaluating pred: \" error-msg)))\n msg)]\n\n (ex-info msg\n\n (if legacy-ex-data?\n {:dt (impl/now-dt*)\n :loc (let [[line column] coords] {:ns ns, :line line, :column column})\n :msg msg\n :pred pred\n :data {:arg data, :dynamic *ctx*}\n :env {:*assert* *assert*}\n :error error\n :arg\n {:form arg-form\n :value arg-val\n :type (if undefined-arg? :truss/exception (type arg-val))}}\n\n (impl/assoc-some\n {:inst (impl/now-inst*)\n :ns ns\n :pred pred\n :arg\n {:form arg-form\n :value arg-val\n :type (if undefined-arg? :truss/exception (type arg-val))}}\n {:coords coords\n :data data}))\n\n error)))))\n\n(def ^:dynamic *failed-assertion-handler*\n \"Unary handler fn to call with failed assertion info map when a Truss\n assertion (`have`, `have?`, `have!`, `have!?`) fails.\n\n Will by default throw an appropriate `truss/ex-info`.\n This is a decent place to inject logging for assertion failures, etc.\n\n Arg given to handler is a map with keys:\n\n `:ns` ----------- ?str namespace of assertion callsite\n `:coords` ------- ?[line column] of assertion callsite\n\n `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n `:arg-val` ------ Runtime value of argument given to predicate\n\n `:data` --------- Optional arbitrary data map provided to assertion macro\n `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\"\n\n (fn [failed-assertion-info]\n (-> failed-assertion-info failed-assertion-ex-info throw)))\n\n(comment\n (let [foo (fn [x] (have true? x))]\n (binding [*failed-assertion-handler* identity] (foo false))))\n\n(defn ^:no-doc failed-assertion!\n \"Private, don't use.\"\n [ns line column, pred arg-form arg-val, data-fn error]\n (if-let [;; Not accessible from impl ns in Cljs\n handler *failed-assertion-handler*]\n (handler\n (let [undefined-arg? (instance? ArgEvalError arg-val)]\n (FailedAssertionInfo. ns\n (when line (if column [line column] [line]))\n pred arg-form\n (if undefined-arg? :truss/exception arg-val)\n (when-let [df data-fn] (impl/catching (df) _ :truss/exception))\n (cond\n (identical? error impl/FalsePredError) nil\n undefined-arg? (.-ex ^ArgEvalError error)\n :else error))))\n arg-val))\n\n#?(:clj\n (defmacro have\n \"Main Truss assertion util.\n Takes a (fn pred [x]) => truthy, and >=1 vals.\n Tests pred against each val,trapping errors.\n\n If any pred test fails, throws a detailed `truss/ex-info`.\n Otherwise returns input val/s for convenient inline-use/binding.\n\n Respects `*assert*`, so tests can be elided from production if desired\n (meaning zero runtime cost).\n\n Examples:\n (defn my-trim [x] (str/trim (have string? x)))\n\n ;; Add arb optional info to thrown ex-data using `:data`:\n (have string? \\\"foo\\\" :data {:user-id 101}) => \\\"foo\\\"\n\n ;; Assert inside collections using `:in`:\n (have string? :in #{\\\"foo\\\" \\\"bar\\\"}) => #{\\\"foo\\\" \\\"bar\\\"}\n\n Regarding use within other macros:\n Due to CLJ-865, callsite info like line number of outer macro\n will be lost. See `keep-callsite` for workaround.\n\n See also `have?`, `have!`.\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args true false ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have?\n \"Truss assertion util.\n Like `have` but returns `true` (rather than given arg value) on success.\n Handy for `:pre`/`:post` conditions. Compare:\n ((fn my-fn [] {:post [(have nil? %)]} nil)) ; {:post [nil ]} FAILS\n ((fn my-fn [] {:post [(have? nil? %)]} nil)) ; {:post [true]} passes as intended\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args true true ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have!\n \"Truss assertion util.\n Like `have` but ignores `*assert*` value (so will never be elided).\n Useful for important conditions in production (e.g. security checks).\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args false false ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have!?\n \"Truss assertion util.\n Returns `true` (rather than given arg value) on success, and ignores\n `*assert*` value (so will never be elided).\n \n **WARNING**: do NOT use in `:pre`/`:post` conditions since those ALWAYS\n respect `*assert*`, contradicting the intention of the bang (`!`) here.\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args false true ~(callsite-coords &form) ~args)))\n\n;;;; Deprecated\n\n(defn ^:no-doc legacy-error-fn\n \"Private, don't use. Wraps given Truss v1 `error-fn` to convert\n Truss v2 `*failed-assertion-handler*` arg.\"\n [f]\n (when f\n (fn [failed-assertion-info]\n (f\n (delay\n (let [{:keys [ns coords, pred arg-form arg-val, data error]} failed-assertion-info\n [line column] coords\n msg_\n (delay\n (let [msg\n (str \"Invariant failed at \" ns\n (when line (str \"[\" line (when column (str \",\" column)) \"]\")) \": \"\n (list pred arg-form))]\n\n (if error\n (let [error-msg (ex-message error)]\n (if (impl/identical-kw? arg-val :truss/exception)\n (str msg sys-newline sys-newline \"Error evaluating arg: \" error-msg)\n (str msg sys-newline sys-newline \"Error evaluating pred: \" error-msg)))\n msg)))]\n\n (impl/assoc-some\n {:msg_ msg_\n :dt #?(:clj (java.util.Date.) :cljs (js/Date.))\n :pred pred\n :arg {:form arg-form\n :value arg-val\n :type (type arg-val)}\n :env {:*assert* *assert*}\n :loc {:ns ns, :line line, :column column}}\n\n {:data (impl/assoc-some nil {:dynamic *ctx* :arg data})\n :err error})))))))\n\n(defn ^:no-doc ^:deprecated get-dynamic-assertion-data \"Prefer `*ctx*`\" [] *ctx*)\n(defn ^:no-doc ^:deprecated get-data \"Prefer `*ctx*`\" [] *ctx*)\n(defn ^:no-doc ^:deprecated set-error-fn!\n \"Prefer `*failed-assertion-handler*` (note breaking changes to argument).\"\n [f]\n #?(:cljs (set! *failed-assertion-handler* (legacy-error-fn f))\n :clj (alter-var-root #'*failed-assertion-handler* (fn [_] (legacy-error-fn f)))))\n\n#?(:clj (defmacro ^:no-doc ^:deprecated with-dynamic-assertion-data \"Prefer `*ctx*`\" [data & body] `(binding [*ctx* ~data] ~@body)))\n#?(:clj (defmacro ^:no-doc ^:deprecated with-data \"Prefer `*ctx*`\" [data & body] `(binding [*ctx* ~data] ~@body)))\n#?(:clj\n (defmacro ^:no-doc ^:deprecated with-error-fn\n \"Prefer `*failed-assertion-handler*` (note breaking changes to argument).\"\n [f & body]\n `(binding [*failed-assertion-handler* (legacy-error-fn ~f)]\n ~@body)))\n\n(comment (force (:msg_ (with-data {:a :A} (with-error-fn force (have true? false))))))\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"sources":["taoensso/truss.cljc"],"mappings":";AAuBA,AAoCA;;;;;;;;;;;;+BAAA,/BAAeA,sEAWZC,UAAUC;AAXb,AAYE,OAACC,oBACC,WAAKC,EAAEC,QAAQC;AAAf,AACE,GAAI,AAACC,qBAAQD;AACX,IAAME,YAAU,AAACC,4CAAIR,UAAUI;AAA/B,AACE,IAAAK,qBAAgB,iBAAAE,oBAAK,AAACL,qBAAKC;AAAX,AAAA,GAAAI;AAAsB,QAACZ,6DAAAA,gFAAAA,rBAAQQ,4DAAAA,lDAAUF,4DAAAA;;AAAzCM;;;AAAhB,AAAA,oBAAAF;AAAA,mBAAAA,fAASC;AAAT,AAAA;;AAEE,yBAAA,lBAACE;;;AAEL,IAAML,YAAU,8DAAA,9DAACC,4CAAIR,UAAUI;AAA/B,AACE,IAAAK,qBACS,iBAAAA,qBAAiB,gCAAA,QAAA,tCAAM,AAACK,oBAAIT,UAASA;AAArC,AAAA,oBAAAI;AAAA,cAAAA,VAASI;AAAT,AACE,QAACA,wCAAAA,mDAAAA,bAAQN,+BAAAA;;AACT,IAAAQ,WAAMV;IAANU,eAAA,EAAA,CAAAA,oBAAAC,oBAAA,AAAAD,aAAA;AAAA,AAAA,QAAAA;KAAA;AACkB,OAAAE,6CAAA,VAAoBV;;;KADtC;AAEa,UAAK,AAAAU,6CAAA,VAAoBV;;;KAFtC;AAG+B,UAAA,cAAA,bAAOA;;;;AACpC,OAACW,6CAAEb,QAAQE;;;;;AAPxB,AAAA,oBAAAE;AAAA,mBAAAA,fAASC;AAAT,AAAA;;AASE,yBAAA,lBAACE;;;GAlBX,KAoBEX;;AAIJ;;;;;;;;;iCAAA,jCAAekB;AAUf;;;+BAAA,/BAAeC,sEAEZC,GAAGC,OAAOC,IAAIC,SAASC;AAF1B,AAGE,IAAMD,eACA,yBAAA,uPAAA,9QACE,OAAA,NAAMH,aAAkCG,2BACxCF,QAAS,6CAAA,2CAAA,mDAAA,3IAACI,wIAAUL,4DAAYC,eAAQE,UAC/B,6CAAA,2CAAA,xFAACE,wIAAUL,WAAoBG;;IAE1CA,eACA,iBAAAf,qBAAaU;AAAb,AAAA,oBAAAV;AAAA,UAAAA,NAASkB;AAAT,AACE,kEAAA,3DAACC,8CAAMJ,yEAAoBG;;AAC3B,AAAOH;;;AATf,AAWE,OAACK,gDAAaN,IAAIC,aAASC;;AAE/B;;;4CAAA,5CAAeK,gGAEZT,GAAGC,OAAOS,IAAIC;AAFjB,AAGE,MACE,AAACZ,6BAASC,GAAGC,OACX,iBAAAW,mBAAO,gDAAA,hDAACzB,4CAAOwB;AAAf,AAAA,oBAAAC;AAAAA;;AAAyB,QAAA,oEAA6B,iBAAA,fAAI,QAAA,PAAMF,sBAAaA;;sYAD/E,jYAEE,sJAAA,tJAACH,8CAAM,mDAAA,nDAACM,+CAAOF,6GAAe,2CAAA,0DAAA,qDAAA,AAAAG,zDAAWJ,wEAAAA;;AAiD/C;;;+BAAA,/BAAMK,sEAEHC;AAFH,AAIW,QAAqBlB,iCAAekB;;AAM/C;;;4BAAA,5BAAeC,gEAEZC,QAAQC;AAFX,AAGE,GACE,qBAAA,pBAAMA;AAA4BD;;AADpC,GAEE,AAACjC,qBAAKkC;AAAkB,OAACd,6CAAK,iBAAAO,mBAAIM;AAAJ,AAAA,oBAAAN;AAAAA;;AAAA;;KAAgBO;;AAFhD,GAGE,AAACC,qBAAKD;AAAkB,QAACA,iDAAAA,0DAAAA,XAAiBD,sCAAAA;;AAH5C,AAKE,OAAAT,0CAAA,iBAAA,mFAAA,IAAA,2BAAA,2CAAA,uDAAA,AAAA,iFAAA,2DAAA,AAAA,gGAAA,6DAAA,AAAA,5ZAAiBU;;;;;;AAmBrB;;;8BAAA,9BAAME,oEAGHC;AAHH,AAKW,qBAAWC,bAAUD;;AAEhC;;;;yBAAA,zBAAeE,0DAGZF;AAHH,AAIE,oBAAM,AAACD,4BAAOC;AAAd,AACE,IAAOG,QAAMH;;AAAb,AACE,IAAAlC,qBAAe,AAACsC,mBAASD;AAAzB,AAAA,oBAAArC;AAAA,YAAAA,RAASgB;AAAT,AACE,eAAOA;;;;AACPqB;;;;;AAJN;;;AAMF,AAEA;;;;yBAAA,zBAAeE,0DAGZL;AAHH,AAMK,GACE,cAAWM,bAAcN;AAD3B,AAAA;;AAAA,GAEE,cAAWC,bAAcD;AAAG,sDAAA,/CAACO,oDAAY,AAAQP;;AAFnD;;;;AAIL;;;;8BAAA,9BAAeQ,oEAGZR;AAHH,AAIE,IAAAS,qBAA2B,AAACC,qBAAWV;AAAvC,AAAA,oBAAAS;AAAA,AAAA,UAAAA,NAAW7B;AAAX,AACE,IAAAd,qBAAc,AAAC8C,oBAAU,AAACC,kBAAWb;AAArC,AAAA,oBAAAlC;AAAA,WAAAA,PAAS6C;AAAT,AAAA,kDAAA,+EAAA,wDAAA,lFACS,AAACN,uBAAQL,uDAASpB,yDAAW+B;;AADtC,kDAAA,+EAAA,1BAES,AAACN,uBAAQL,uDAASpB;;;AAH7B;;;AAKF,AAEA,AAAA;;;;0BAAA,kCAAAkC,5DAAeE;AAAf,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAf,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAee,mEAGFhB;AAHb,AAGgB,6DAAA,tDAACiB,4DAAejB;;;AAHhC,CAAA,wDAAA,xDAAegB,mEAIXE,eAASlB;AAJb,AAKG,oBAAM,AAACD,4BAAOC;AAAd,AACE,IAAMmB,KAAG,kBAAID,gBAASV,4BAAQY;AAA9B,AACE,UAAA,NAAOC,yFAAK,CAACF,mCAAAA,sCAAAA,LAAGnB,kBAAAA;IAAKG,QAAMH;;AAA3B,AACE,IAAAlC,qBAAe,AAACsC,mBAASD;AAAzB,AAAA,oBAAArC;AAAA,YAAAA,RAASgB;AAAT,AACE,eAAO,AAACC,6CAAKsC,IAAI,CAACF,mCAAAA,0CAAAA,TAAGrC,sBAAAA;eAAQA;;;;;AAC7B,AAAauC;;;;;AALrB;;;;AALH,CAAA,kDAAA,lDAAeL;;AAAf,AAYA,AAeA;;;;wBAAA,xBAAeM,wDAGZtB;AAHH,AAIE,IAAAS,qBAAiB,AAACQ,sDAASjB;AAA3B,AAAA,oBAAAS;AAAA,AAAA,YAAAA,RAAWc;AAAX,AACE,IAAMC,OAAS,AAACC,6CAAKjB,4BAAQe;IACvBG,OAAS,AAACC,eAAKJ;IACfK,WAAS,AAACD,eAAKH;AAFrB,AAIE,6EAAA,2CAAA,0DAAA,3KAACK,6DAAgBD,yGACPJ,6DAEE,iBAAAf,yBAAc,AAASiB;AAAvB,AAAA,oBAAAjB;AAAA,AAAA,SAAAA,LAAWqB;AAAX,AAA8B,GAAU,gDAAA,hDAACvD,6CAAEuD;AAAb;;AAAA,AAAoBA;;;AAAlD;;;;AARhB;;;AAaF,AAgEA,AAYA,AAEA,AAAA;;;;;;;;;;;;;;;;;;;;gCAAA,wCAAAhB,xEAAMkB;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA/B,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAM+B,yEAmBG7B;AAnBT,AAmBgBA;;;AAnBhB,CAAA,8DAAA,9DAAM6B,yEAoBFC,KAAK9B;AApBT,AAqBG,IAAAM,qBACW,EACE,iBAAApC,hBAAU4D,oCACV,iBAAAC,WAAUD;IAAVC,eAAA,EAAA,CAAAA,oBAAA7D,oBAAA,AAAA6D,aAAA;AAAA,AAAA,QAAAA;KAAA;KAAA;AAC2F,UAAA,UAAA,TAAyB/B;;;KADpH;AAE2F,yBAAWF,jBAAcE;;;KAFpH;AAG2F,yBAAWG,jBAAcH;;;KAHpH;KAAA;AAI2F,UAAA,UAAA,TAAyBA;;;;AAClH,MACE,AAAA1B,6BAAA,iBAAA,mFAAA,IAAA,WAAA,mDAAA,2CAAA,8OAAA,6DAAA,AAAA,uWAAA,5lBACa,2CAAA,2DAAA,qDAAA,AAAAe,1DAAWyC,yEAAAA;;;KAT9B,8GAAA,sIAAA,lOAYE,AAAClC,4BAAOkC,OAAM,AAAC1D,6CAAE0D,KAAK9B,SACtB,AAAChC,oBAAO8D,OAAM,CAACA,qCAAAA,4CAAAA,TAAK9B,wBAAAA,UACpB,AAACgC,qBAAOF,OAAM,0BAAA,WAAAG,rCAACC;AAAD,AAAa,mEAAAD,5DAACE,6EAAiBnC;SAd/C,NAcsD8B,MAC9C,kBAAWA,jBAAK9B;;AAhBnC,AAAA,oBAAAM;AAAA,AAAA,mBAAAA,fAAW1C;AAAX,AAiBEoC;;AAjBF;;;;AArBH,CAAA,8DAAA,9DAAM6B,yEAwCFC,KAAKM,QAAQpC;AAxCjB,AAyCG,IAAArC,qBACS,iBAAAE,oBACE,AAACsE,4DAAeL,KAAK9B;AADvB,AAAA,oBAAAnC;AAEE,GACE,YAAA,XAAkBuE;AADpB;;AAAA,GAEE,AAACJ,qBAAiBI;AAAS,iCAAA,WAAAC,rCAACH;AAAD,AAAa,wEAAAG,jEAACF,4DAAeL,sBAAO9B;GAAOoC;;AAFxE,GAGE,OAAkBA;AAAS,OAACE,wCAAuB,AAAC/B,qBAAWP,OAAOoC;;AAHxE,GAIE,AAACG,sCAAiBH;AAAS,OAACI,kBAAQJ,QAAe,AAAC7B,qBAAWP;;AAJjE,GAKE,AAACxC,qBAAiB4E;AAAS,IAAA9B,qBAAwB,AAACI,kBAAWV;AAApC,AAAA,oBAAAM;AAAA,AAAA,WAAAA,PAAWE;AAAX,AACE,OAACvD,6BAAQuD,KAAK4B;;AADhB;;;AAL7B,AAQE,OAAApD,0CAAA,iBAAA,mFAAA,IAAA,mBAAA,2CAAA,uDAAA,AAAA,+DAAA,2DAAA,AAAA,uGAAA,6DAAA,AAAA,xYAAiBoD;;;;;;;;AAVrBvE;;;AADT,AAAA,oBAAAF;AAAA,mBAAAA,fAASC;AAAT,AAeEoC;;AAEA,IAAAM,qBAAiB,AAACL,mBAASD;AAA3B,AAAA,oBAAAM;AAAA,AAAA,YAAAA,RAAW3B;AAAX,AACE,OAACwD,4DAAeL,KAAKM,QAAQzD;;AAD/B;;;;;AA1DL,CAAA,wDAAA,xDAAMkD;;AAAN,AAyFA,IAAMY,6BACA,WAAKC;AAAL,AACE,IAAMjE,MAAU,sDAAA,6DAAA,nHAACf,4CAAOgF;IAClBA,gBAAU,yDAAA,zDAACtD,+CAAOsD;AADxB,AAGE,iDAAsBlC,KAAK7B;AAA3B,AACE,MAAO,6BAAA,KAAA,lCAACL,uCAAiBG,IAAI,AAACG,6CAAK8D,cAAUlC,MAAM7B;;;AAN/D,AAQE,AAAA;;;;;;;;;;6BAAA,qCAAAgC,lEAAMiC;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,yDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,yDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAA9C,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,2DAAA,3DAAM8C,sEASOC;AATb,AASiB,OAACC,yDAAY,2BAAA,2CAAA,tEAACL,uHAA0BI,YAAKA;;;AAT9D,CAAA,2DAAA,3DAAMD,sEAUFG,SAASF;AAVb,AAWG,IAAME,eACA,EAAI,AAACvF,qBAAKuF,WACR,AAACN,2BAAqBM,UACtB,AAAsBA;AAH9B,AAKE;;;AAAA,AACa,IAAA,AAAM,QAACF,mCAAAA,qCAAAA;gBAAP,QAAAG,JAA8BC;AAA9B,AAAgC,IAAAC,WAAA,2CAAA,oDAAA,qDAAA,AAAA,xDAAeL;IAAfM,WAA+BF;AAA/B,AAAA,gGAAAC,SAAAC,mCAAAD,SAAAC,7IAACJ,6CAAAA,gEAAAA;;+CAC1C7B;AAFJ,AAEa,IAAA,AAAM,QAAC2B,mCAAAA,wCAAAA,PAAG3B,oBAAAA;gBAAV,QAAAkC,JAA8BH;AAA9B,AAAgC,IAAAI,WAAA,2CAAA,oDAAA,qDAAA,AAAA,6HAAA,qDAAA,2CAAA,rRAAeR,uUAAkC,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA;IAA5DoC,WAAmEL;AAAnE,AAAA,gGAAAI,SAAAC,mCAAAD,SAAAC,7IAACP,6CAAAA,gEAAAA;;+CAC1C7B,IAAIqC;AAHR,AAGa,IAAA,AAAM,QAACV,mCAAAA,4CAAAA,XAAG3B,wBAAAA,pBAAIqC,wBAAAA;gBAAd,QAAAC,JAA8BP;AAA9B,AAAgC,IAAAQ,WAAA,2CAAA,oDAAA,qDAAA,AAAA,iLAAA,qDAAA,2CAAA,wOAAA,jjBAAeZ,2XAAkC,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA,+DACX,2CAAA,0DAAA,qDAAA,AAAA7B,zDAAWkE,wEAAAA;IAD5DG,WACkET;AADlE,AAAA,gGAAAQ,SAAAC,mCAAAD,SAAAC,7IAACX,6CAAAA,gEAAAA;;+CAE1C7B,IAAIyC,EAAEC;AALV,AAMG,IAAA,AAAM,QAACf,mCAAAA,4CAAAA,XAAG3B,wBAAAA,pBAAIyC,wBAAAA,tBAAEC,wBAAAA;gBAAhB,QAAAC,JACcZ;AADd,AAEI,IAAAa,WAAA,2CAAA,oDAAA,qDAAA,AAAA,mOAAA,qDAAA,2CAAA,wOAAA,kOAAA,r0BACWjB,6aAGF,2CAAA,0DAAA,qDAAA,AAAAxD,zDAAW6B,wEAAAA,6DACX,2CAAA,wDAAA,qDAAA,AAAA7B,vDAAWsE,sEAAAA,wDACX,2CAAA,wDAAA,qDAAA,AAAAtE,vDAAWuE,sEAAAA;IANpBG,WAOEd;AAPF,AAAA,gGAAAa,SAAAC,mCAAAD,SAAAC,7IAAChB,6CAAAA,gEAAAA;;sCAHJ7B,IAAIyC,EAAEC;;;;;+CAAN1C;;+CAAAA,IAAIyC;;+CAAJzC,IAAIyC,EAAEC;;;;;;;;;;;;AArBf,CAAA,qDAAA,rDAAMhB;;AAAN,AAiCF,AAAA;;;;;;;;;;;gCAAA,wCAAAjC,xEAAMsD;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4DAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4DAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAnE,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8DAAA,9DAAMmE,yEAWFlB,SAASmB;AAXb,AAWoB,OAACC,6CAAK,WAAKtB;AAAL,AAAS,OAACC,yDAAYC,SAASF;GAAKqB;;;AAX9D,CAAA,8DAAA,9DAAMD,yEAYOC;AAZb,AAYoB,OAACC,6CAAevB,2BAA0BsB;;;AAZ9D,CAAA,wDAAA,xDAAMD;;AAAN,AAgBA,6BAAA,7BAAeG;AAEf,IAAMC,8BAAgB;AAAtB,AAEE,AAAA;;;0CAAA,kDAAA1D,5FAAM4D;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sEAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sEAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAzE,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wEAAA,xEAAMyE,mFAEcC;AAFpB,AAE2C,OAACC,sEAAyBJ,4BAAgBG;;;AAFrF,CAAA,wEAAA,xEAAMD,mFAGFF,0BAAgBG;AAHpB,AAIG,IAAAE,aAAkEF;IAAlEE,iBAAA,AAAAC,4BAAAD;WAAA,AAAAhH,4CAAAgH,eAAA,lEAAcE;SAAd,AAAAlH,4CAAAgH,eAAA,hEAAmBnG;aAAnB,AAAAb,4CAAAgH,eAAA,pEAAsBlG;WAAtB,AAAAd,4CAAAgH,eAAA,lEAA8BG;eAA9B,AAAAnH,4CAAAgH,eAAA,tEAAmCI;cAAnC,AAAApH,4CAAAgH,eAAA,rEAA4CK;WAA5C,AAAArH,4CAAAgH,eAAA,lEAAqDlE;YAArD,AAAA9C,4CAAAgH,eAAA,nEAA0D1E;IACpDgF,uBAAe,AAAA7G,2CAAA,RAAoB4G;IAEnCE,aACA,iBAAA3E,qBAAyB9B;AAAzB,AAAA,oBAAA8B;AAAA,AAAA,IAAA4E,aAAA5E;WAAA,AAAA6E,4CAAAD,WAAA,IAAA,lEAAYE;aAAZ,AAAAD,4CAAAD,WAAA,IAAA,pEAAiBG;AAAjB,AACE,oBAAIA;AACF,QAAA,sDAAA,wDAAA,9DAASD,sDAASC;;AAClB,QAAA,sDAAA,NAASD;;;AAHb;;;IAKA3G,MAAI,CAAA,wFAAA,fAAkCF,IAAG0G,4DAAgB,KAAAK,eAAA,UAAA,KAAAA,eAAA,cAAA,KAAA,IAAA,OAAA,IAAA,3DAAMT,8BAAKC;IACpErG,UACA,kBAAIuB,OACF,iBAAMuF,YAAU,AAAChF,qBAAWP;AAA5B,AACE,GAAIgF;AACF,uCAAA,/BAAKvG,IAAI2F,gGAAsCmB;;AAC/C,uCAAA,/BAAK9G,IAAI2F,iGAAsCmB;;KACnD9G;AAhBR,AAkBE,oCAAA,KAAA,lCAACH,uCAAiBG,QAEhB,6CAAA,2CAAA,8DAAA,pIAAI4F,uHACO,KAAAmB,2DACA,iBAAAC,aAAoBjH;WAApB,AAAA2G,4CAAAM,WAAA,IAAA,lEAAOL;aAAP,AAAAD,4CAAAM,WAAA,IAAA,pEAAYJ;AAAZ,AAAA,kDAAA,mDAAA,yDAAA,5DAAiC9G,uDAAU6G,8DAAcC;KAFpE,4DAAA,0DAAA,qDAAA,2CAAA,yDAAA,iGAAA,oDAAA,2CAAA,kGAAA,6DAAA,oDAAA,2CAAA,+DAAA,8DAAA,txBAGW5G,6DACAoG,yJACMrE,+DAAenC,mMACVqH,4FACX1F,2JAEA8E,+DACAC,6DACA,wBAAA,tBAAIC,8FAAgC,AAAC3F,eAAK0F,0BAEnD,6DAAA,2CAAA,iEAAA,mDAAA,0DAAA,oDAAA,2CAAA,+DAAA,8DAAA,8LAAA,2CAAA,gEAAA,3xBAACrD,4JACU,KAAA8D,wDACAjH,wDACAsG,0JAEAC,+DACAC,6DACA,wBAAA,tBAAIC,8FAAgC,AAAC3F,eAAK0F,8HAC1CvG,4DACAgC,eAEbR;;;AAhDP,CAAA,kEAAA,lEAAMuE;;AAAN,AAkDF;;;;;;;;;;;;;;;;;;;AAAeoB,sDAmBb,8DAAMnB;AAAN,AACE,MAAA,sEAAIA,tEAAsBC;;AAE9B,AAIA;;;wCAAA,xCAAemB,wFAEZrH,GAAG6G,KAAKC,OAAQR,KAAKC,SAASC,QAASc,QAAQ7F;AAFlD,AAGE,IAAArC,qBACiBgI;AADjB,AAAA,oBAAAhI;AAAA,cAAAA,VACSmI;AADT,AAEE,IAAAC,WACE,iBAAMf,uBAAe,oBAAWgB,nBAAajB;AAA7C,AACE,YAAAkB,wCAAsB1H,GACpB,wBAAA,kOAAA,xOAAM6G,MAAK,0BAAA,uGAAA,/GAAIC,2FAAQD,KAAKC,kGAASD,oBACrCP,KAAKC,SACL,wBAAA,tBAAIE,8FAAgCD,SACpC,iBAAAzE,qBAAcuF;AAAd,AAAA,oBAAAvF;AAAA,AAAA,SAAAA,LAAW4F;AAAX,AAAuB,IAAA,AAAe,QAACA,mCAAAA,qCAAAA;gBAAhB,QAAAC,JAAoB9I;AAApB,AAAA;;AAAvB;;KACA,kDAAA,KAAA,iCAAA,tFACE,CAAY2C,UAAMoG,4CAClBpB,sBAAe,AAAoBhF,SACAA;GARvC,KAAA,KAAA;;AAFJ,AAAA,sFAAA+F,8BAAAA,5GAACD,wCAAAA,kDAAAA;;AAWDf;;;AA8DJ;;;;iCAAA,jCAAesB,0EAGZC;AAHH,AAIE,oBAAMA;AAAN,AACE,kBAAK9B;AAAL,AACE,IAAA+B,WACE,KAAAC,gBAAA;AAAA,AACE,IAAAC,aAA6DjC;IAA7DiC,iBAAA,AAAA9B,4BAAA8B;SAAA,AAAA/I,4CAAA+I,eAAA,hEAAclI;aAAd,AAAAb,4CAAA+I,eAAA,pEAAiBjI;WAAjB,AAAAd,4CAAA+I,eAAA,lEAAyB5B;eAAzB,AAAAnH,4CAAA+I,eAAA,tEAA8B3B;cAA9B,AAAApH,4CAAA+I,eAAA,rEAAuC1B;WAAvC,AAAArH,4CAAA+I,eAAA,lEAAgDjG;YAAhD,AAAA9C,4CAAA+I,eAAA,nEAAqDzG;IAArD0G,aACoBlI;WADpB,AAAA2G,4CAAAuB,WAAA,IAAA,lEACOtB;aADP,AAAAD,4CAAAuB,WAAA,IAAA,pEACYrB;IACNsB,OACA,KAAAH,gBAAA;AAAA,AACE,IAAM/H,MACA,CAAA,6QAAA,1MAA4BF,IAC1B,wBAAA,wKAAA,9KAAM6G,MAAK,CAAA,yJAAA,zGAASA,MAAK,0BAAA,mEAAA,3EAAMC,QAAO,CAAA,gDAASA,6FAC/C,KAAAC,eAAA,UAAA,KAAAA,eAAA,cAAA,KAAA,IAAA,OAAA,IAAA,3DAAMT,8BAAKC;AAHnB,AAKE,oBAAI9E;AACF,IAAMuF,YAAU,AAAChF,qBAAWP;AAA5B,AACE,GAAI,AAAA7B,2CAAA,RAAoB4G;AACtB,kEAAA,1DAAKtG,IAAI2F,2BAAYA,gGAAsCmB;;AAC3D,kEAAA,1DAAK9G,IAAI2F,2BAAYA,iGAAsCmB;;;AAC/D9G;;GAXN;AAHN,AAgBE,oEAAA,2CAAA,2DAAA,8DAAA,0DAAA,oDAAA,2CAAA,+DAAA,8DAAA,qFAAA,oDAAA,2CAAA,kGAAA,mDAAA,2CAAA,mDAAA,yDAAA,gFAAA,2CAAA,6TAAA,/4CAACiD,8JACQiF,sDACgC,KAAAnB,6DAChCX,0JACcC,+DACAC,6DACN,AAAC1F,eAAK0F,6KACHW,mLACNnH,uDAAU6G,8DAAcC,uHAE7B,6DAAA,KAAA,2CAAA,yFAAA,tMAAC3D,uKAA8BrD,mFAAWmC,kEAC1CR;GA5Bb;AADF,AAAA,0EAAAuG,wBAAAA,1FAACD,kCAAAA,4CAAAA;;;AAFL;;;AAiCF;;;4CAAA,5CAA4BM;AAA5B,AAA2EvI;;AAC3E;;;0BAAA,1BAA4BwI;AAA5B,AAA2ExI;;AAC3E;;;oCAAA,pCAA4ByI,gFAEzBR;AAFH,AAGW,QAAkBX,sDAAmC,AAACU,+BAAgBC;;AAYjF","names":["taoensso.truss/submap?","super-map","sub-map","cljs.core/reduce-kv","_","sub-key","sub-val","cljs.core/map?","super-val","cljs.core.get","temp__5823__auto__","match?","and__5023__auto__","cljs.core/reduced","pred-fn","cljs.core/fn?","G__28967","cljs.core/Keyword","cljs.core/keyword-identical?","cljs.core._EQ_","taoensso.truss/*ctx*","taoensso.truss/ex-info*","ns","coords","msg","data-map","cause","cljs.core.conj","ctx","cljs.core.assoc","cljs.core.ex_info","taoensso.truss/unexpected-arg!*","arg","kvs","or__5025__auto__","cljs.core.dissoc","cljs.core/type","taoensso.truss/set-ctx!","root-ctx-val","taoensso.truss/update-ctx","old-ctx","update-map-or-fn","cljs.core/ifn?","taoensso.truss/error?","x","js/Error","taoensso.truss/ex-root","error","cljs.core/ex-cause","taoensso.truss/ex-type","cljs.core/ExceptionInfo","cljs.core.symbol","taoensso.truss/ex-map*","temp__5825__auto__","cljs.core/ex-message","data","cljs.core/not-empty","cljs.core/ex-data","var_args","G__29025","taoensso.truss/ex-chain","taoensso.truss.ex_chain","as-maps?","xf","cljs.core/identity","acc","taoensso.truss/ex-map","chain","maps","cljs.core.mapv","root","cljs.core/peek","root-map","taoensso.truss.impl.assoc_some","st","G__29188","taoensso.truss/matching-error","kind","G__29198","cljs.core/set?","p1__29172#","taoensso.truss.impl/rsome","taoensso.truss.matching_error","pattern","p1__29175#","taoensso.truss.impl/str-contains?","taoensso.truss.impl/re-pattern?","cljs.core/re-find","get-default-error-fn","base-data","G__29301","taoensso.truss/catching-rf","rf","taoensso.truss.catching_rf","error-fn","e29328","t","G__29332","G__29333","e29345","G__29349","G__29350","in","e29364","G__29368","G__29369","k","v","e29374","G__29375","G__29376","G__29395","taoensso.truss/catching-xform","xform","cljs.core.comp","taoensso.truss/sys-newline","legacy-ex-data?","G__29442","taoensso.truss/failed-assertion-ex-info","failed-assertion-info","taoensso.truss.failed_assertion_ex_info","map__29454","cljs.core/--destructure-map","inst","pred","arg-form","arg-val","undefined-arg?","coords-str","vec__29471","cljs.core.nth","line","column","cljs.core/List","error-msg","js/Date","vec__29490","cljs.core/*assert*","taoensso.truss/*failed-assertion-handler*","taoensso.truss/failed-assertion!","data-fn","handler","G__29554","taoensso.truss.impl/ArgEvalError","taoensso.truss.impl/FailedAssertionInfo","df","e29557","taoensso.truss.impl/FalsePredError","taoensso.truss/legacy-error-fn","f","G__29581","cljs.core/Delay","map__29588","vec__29589","msg_","taoensso.truss/get-dynamic-assertion-data","taoensso.truss/get-data","taoensso.truss/set-error-fn!"],"sourcesContent":["(ns taoensso.truss\n \"A micro toolkit for Clojure/Script errors.\"\n {:author \"Peter Taoussanis (@ptaoussanis)\"}\n (:refer-clojure :exclude [ex-info])\n (:require\n #?(:clj [clojure.core :as core]\n :cljs [cljs.core :as core])\n\n #?(:clj [taoensso.truss.impl :as impl])\n #?(:cljs [taoensso.truss.impl :as impl :refer [FailedAssertionInfo ArgEvalError]]))\n\n #?(:cljs\n (:require-macros\n [taoensso.truss :refer\n [keep-callsite typed-val ex-info ex-info! unexpected-arg!\n with-ctx with-ctx+ try* catching throws throws?\n have have? have! have!?\n with-dynamic-assertion-data with-data with-error-fn]]))\n\n #?(:clj\n (:import\n [taoensso.truss.impl FailedAssertionInfo ArgEvalError])))\n\n(comment\n (require '[taoensso.encore :as enc])\n (enc/sortv (:api (enc/interns-overview))))\n\n;;;; Callsites\n\n#?(:clj\n (defn callsite-coords\n \"Returns [line column] from meta on given macro `&form`.\n See also `keep-callsite`.\"\n [macro-form]\n (when-let [{:keys [line column]} (meta macro-form)]\n (when line (if column [line column] [line])))))\n\n#?(:clj (defn ^:no-doc merge-callsite [macro-form inner-form] (vary-meta inner-form merge (meta macro-form))))\n#?(:clj\n (defmacro keep-callsite\n \"CLJ-865 means that it's not possible for an inner macro to access `&form`\n metadata (incl. {:keys [line column]}) of a wrapping outer macro:\n\n (defmacro inner [] (meta &form))\n (defmacro outer [] `(inner))\n (outer) => nil\n\n This util offers a workaround for authors of the outer macro, preserving\n the outer `&form` metadata for the inner macro:\n\n (defmacro inner [] (meta &form))\n (defmacro outer [] (keep-callsite `(inner)))\n (outer) => {:keys [line column ...]}\"\n [inner-form] `(merge-callsite ~'&form ~inner-form)))\n\n;;;; Misc\n\n#?(:clj (defmacro ^:no-doc typed-val [x] `{:value ~x, :type (type ~x)}))\n\n(defn ^:no-doc submap?\n \"Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n\n `sub-map` may contain special values:\n `:submap/nx` - Matches iff `super-map` does not contain key\n `:submap/ex` - Matches iff `super-map` does contain key (any val)\n `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n (fn [super-val]) - Matches iff given unary predicate returns truthy\n\n Uses stack recursion so supports only limited nesting.\"\n [super-map sub-map]\n (reduce-kv\n (fn [_ sub-key sub-val]\n (if (map? sub-val)\n (let [super-val (get super-map sub-key)]\n (if-let [match? (and (map? super-val) (submap? super-val sub-val))]\n true\n (reduced false)))\n\n (let [super-val (get super-map sub-key ::nx)]\n (if-let [match?\n (if-let [pred-fn (when (fn? sub-val) sub-val)]\n (pred-fn super-val)\n (case sub-val\n :submap/nx (impl/identical-kw? super-val ::nx)\n :submap/ex (not (impl/identical-kw? super-val ::nx))\n :submap/some (some? super-val)\n (= sub-val super-val)))]\n true\n (reduced false)))))\n true\n sub-map))\n\n;;;; Truss exceptions\n\n(def ^:dynamic *ctx*\n \"Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n\n Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n Modify root (default) value using `set-ctx!`.\n\n As with all dynamic Clojure vars, \\\"binding conveyance\\\" applies when\n using futures, agents, etc.\"\n nil)\n\n(defn ^:no-doc ex-info*\n \"Private, don't use.\"\n [ns coords msg data-map cause]\n (let [data-map\n (cond\n (nil? ns) data-map\n coords (conj {:ns ns, :coords coords} data-map)\n :else (conj {:ns ns} data-map))\n\n data-map\n (if-let [ctx *ctx*]\n (assoc data-map :truss/ctx ctx)\n (do data-map))]\n\n (core/ex-info msg data-map cause)))\n\n(defn ^:no-doc unexpected-arg!*\n \"Private, don't use.\"\n [ns coords arg kvs]\n (throw\n (ex-info* ns coords\n (or (get kvs :msg) (str \"Unexpected argument: \" (if (nil? arg) \"\" arg)))\n (assoc (dissoc kvs :msg) :arg (typed-val arg)) nil)))\n\n#?(:clj\n (defmacro ex-info\n \"Macro version of `core/ex-info` that adds extra keys to ex-info's data map:\n `:truss/ctx` -- Value of dynamic `truss/*ctx*` when ex-info created\n `:ns` --------- Namespace string of ex-info callsite\n `:coords` ----- [line number] of ex-info callsite, only present\n if ex-info isn't wrapped by another macro (or see\n `keep-callsite` for a workaround).\"\n ([msg ] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg nil nil))\n ([msg data-map ] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map nil))\n ([msg data-map cause] `(ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map ~cause))))\n\n#?(:clj\n (defmacro ex-info!\n \"Throws a `truss/ex-info`.\"\n ([msg ] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg nil nil)))\n ([msg data-map ] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map nil)))\n ([msg data-map cause] `(throw (ex-info* ~(str *ns*) ~(callsite-coords &form) ~msg ~data-map ~cause)))))\n\n#?(:clj\n (defmacro unexpected-arg!\n \"Throws a `truss/ex-info` to indicate an unexpected argument:\n\n (defn my-function [mode]\n (case mode\n :read (do <...>)\n :write (do <...>)\n (unexpected-arg! mode\n {:param 'mode\n :context `my-function\n :expected #{:read :write}})))\n\n (my-function :invalid-mode) => throws\n Unexpected argument: :invalid-mode\n {:param 'mode,\n :arg {:value :unexpected, :type clojure.lang.Keyword},\n :context 'my-ns/my-function,\n :expected #{:read :write}\n ...}\"\n\n {:arglists '([arg] [arg kvs])}\n ([arg k1 v1 & more] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg ~(apply hash-map k1 v1 more))) ; Back compatibility\n ([arg ] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg nil))\n ([arg kvs] `(unexpected-arg!* ~(str *ns*) ~(callsite-coords &form) ~arg ~kvs))))\n\n;;;; Context utils\n\n(defn set-ctx!\n \"Set `*ctx*` var's default (root) value. See `*ctx*` for details.\"\n [root-ctx-val]\n #?(:clj (alter-var-root (var *ctx*) (fn [_] root-ctx-val))\n :cljs (set! *ctx* root-ctx-val)))\n\n(defmacro with-ctx\n \"Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\"\n [ctx-val & body] `(binding [*ctx* ~ctx-val] ~@body))\n\n(defn ^:no-doc update-ctx\n \"Returns `new-ctx` given `old-ctx` and an update map or fn.\"\n [old-ctx update-map-or-fn]\n (cond\n (nil? update-map-or-fn) old-ctx\n (map? update-map-or-fn) (conj (or old-ctx {}) update-map-or-fn) ; Before ifn\n (ifn? update-map-or-fn) (update-map-or-fn old-ctx)\n :else\n (unexpected-arg! update-map-or-fn\n {:param 'update-map-or-fn\n :context `update-ctx\n :expected '#{nil map fn}})))\n\n(defmacro with-ctx+\n \"Evaluates given body with updated `*ctx*` value.\n\n `update-map-or-fn` may be:\n - A map to merge with current `*ctx*` value, or\n - A unary fn to apply to current `*ctx*` value\n\n See `*ctx*` for details.\"\n [update-map-or-fn & body]\n `(binding [*ctx* (update-ctx *ctx* ~update-map-or-fn)]\n ~@body))\n\n;;;; Error utils\n\n(defn error?\n \"Returns true iff given platform error (`Throwable` or `js/Error`).\"\n #?(:cljs {:tag 'boolean})\n [x]\n #?(:clj (instance? Throwable x)\n :cljs (instance? js/Error x)))\n\n(defn ^:no-doc ex-root\n \"Private, don't use.\n Returns root cause of given platform error.\"\n [x]\n (when (error? x)\n (loop [error x]\n (if-let [cause (ex-cause error)]\n (recur cause)\n error))))\n\n(comment (ex-root (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n(defn ^:no-doc ex-type\n \"Private, don't use.\n Returns class symbol of given platform error.\"\n [x]\n #?(:clj (symbol (.getName (class x)))\n :cljs\n (cond\n (instance? ExceptionInfo x) `ExceptionInfo ; Note namespaced\n (instance? js/Error x) (symbol \"js\" (.-name x)))))\n\n(defn ^:no-doc ex-map*\n \"Private, don't use.\n Returns ?{:keys [type msg data]} for given platform error.\"\n [x]\n (when-let [msg (ex-message x)]\n (if-let [data (not-empty (ex-data x))]\n {:type (ex-type x), :msg msg, :data data}\n {:type (ex-type x), :msg msg})))\n\n(comment (ex-map* (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n(defn ^:no-doc ex-chain\n \"Private, don't use.\n Returns vector cause chain of given platform error.\"\n ([ x] (ex-chain false x))\n ([as-maps? x]\n (when (error? x)\n (let [xf (if as-maps? ex-map* identity)]\n (loop [acc [(xf x)], error x]\n (if-let [cause (ex-cause error)]\n (recur (conj acc (xf cause)) cause)\n (do acc)))))))\n\n(comment (ex-chain :as-maps (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))))\n\n#?(:clj\n (defn- st-element->map [^StackTraceElement ste]\n {:class (symbol (.getClassName ste))\n :method (symbol (.getMethodName ste))\n :file (.getFileName ste)\n :line (.getLineNumber ste)}))\n\n;; #?(:clj\n;; (defn- st-element->str ^String [^StackTraceElement ste]\n;; (str\n;; \"`\" (.getClassName ste) \"/\" (.getMethodName ste) \"`\"\n;; \" at \" (.getFileName ste) \":\" (.getLineNumber ste))))\n\n(defn ^:no-doc ex-map\n \"Private, don't use.\n Returns ?{:keys [type msg data chain trace]} for given platform error.\"\n [x]\n (when-let [chain (ex-chain x)]\n (let [maps (mapv ex-map* chain)\n root (peek chain)\n root-map (peek maps)]\n\n (impl/assoc-some root-map\n {:chain maps\n :trace\n #?(:cljs (when-let [st (.-stack root)] (when-not (= st \"\") st))\n :clj\n (when-let [st (not-empty (.getStackTrace ^Throwable root))] ; Don't delay\n (delay (mapv st-element->map st))))}))))\n\n(comment\n (ex-map (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"})))\n (ex-map (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"})))\n (let [ex (ex-info \"Ex2\" {:k2 \"v2\"} (ex-info \"Ex1\" {:k1 \"v1\"}))]\n (enc/qb 1e5 ; [21.22 114.51]\n (ex-map ex)\n (Throwable->map ex))))\n\n#?(:clj (defn ^:no-doc critical-error? [x] (and (instance? Error x) (not (instance? AssertionError x)))))\n#?(:clj (defn- non-critical-throwable? [x] (and (instance? Throwable x) (not (critical-error? x)))))\n#?(:clj\n (defn ^:no-doc throw-critical\n \"Private, don't use.\n If given any `Error` besides `AssertionError`, (re)throw it.\n Useful as a hack to allow easily catching both `Exception` and `AssertionError`:\n (try (catch Throwable t (throw-critical t) )), etc.\"\n [x] (when (critical-error? x) (throw x))))\n\n#?(:clj\n (defmacro try*\n \"Like `try`, but `catch` clause class may be:\n `:ex-info` -- Catches only `ExceptionInfo`\n `:common` --- Catches `js/Error` (Cljs), `Exception` (Clj)\n `:all` ------ Catches `:default` (Cljs), `Throwable` (Clj)\n `:default` -- Catches `:default` (Cljs), `Exception`, and `AssertionError` (Clj)\n but NOT other (usually critical) `Error`s\n\n Addresses CLJ-1293 and the fact that `AssertionError`s are typically NON-critical\n (so desirable to catch, in contrast to other `Error` classes).\"\n {:arglists '([expr* catch-clauses* ?finally-clause])}\n [& forms]\n (let [cljs? (some? (:ns &env))\n forms\n (mapv\n (fn [in]\n (if-not (impl/list-form? in)\n in\n (let [[s1 s2 s3 & more] in]\n (cond\n (not= s1 'catch) in\n (not (keyword? s2)) in\n :else\n (let [[rethrow-critical? s2]\n (case s2\n (:all :any) (if cljs? [false :default] [false `Throwable])\n (:default :all-but-critical) (if cljs? [false :default] [true `Throwable])\n (:common) (if cljs? [false 'js/Error] [false `Exception])\n (:ex-info)\n (if cljs?\n [false 'cljs.core.ExceptionInfo]\n [false 'clojure.lang.ExceptionInfo])\n\n (throw\n (ex-info \"Unexpected Truss `try*` catch clause keyword\"\n {:given {:value s2, :type (type s2)}\n :expected '#{:ex-info :common :all :default}})))]\n\n (if rethrow-critical?\n `(catch ~s2 ~s3 (throw-critical ~s3) ~@more)\n `(catch ~s2 ~s3 ~@more)))))))\n forms)]\n\n `(try ~@forms))))\n\n(comment\n (macroexpand '(try* (catch :all t t 1 2 3) (finally 1 2 3)))\n (macroexpand '(try* (/ 1 0) (catch :all t t 1 2 3) (finally 1 2 3)))\n (macroexpand '(try* (/ 1 0) (catch :default t t 1 2 3) (finally 1 2 3))))\n\n#?(:clj\n (defmacro catching\n \"Terse cross-platform util to swallow exceptions in `expr`.\n Like (try* expr (catch :default _ nil)). See also `try*`.\"\n ([ expr] `(try* ~expr (catch :default ~'_)))\n ([catch-class expr] `(try* ~expr (catch ~catch-class ~'_)))))\n\n(comment (catching (zero? \"9\")))\n\n(defn matching-error\n \"Given a platform error and criteria for matching, returns the error if it\n matches all criteria. Otherwise returns nil.\n\n `kind` may be:\n - A class (`ArithmeticException`, `AssertionError`, etc.)\n - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n - A set of `kind`s as above, at least one of which must match\n - A predicate function, (fn match? [x]) -> bool\n\n `pattern` may be:\n - A string or Regex against which `ex-message` must match\n - A map against which `ex-data` must match using `submap?`\n - A set of `pattern`s as above, at least one of which must match\n\n When an error with (nested) causes doesn't match, a match will be attempted\n against its (nested) causes.\n\n This is a low-level util, see also `throws`, `throws?`.\"\n ([ error] error)\n ([kind error]\n (when-let [match?\n (cond\n (keyword? kind)\n (case kind\n (:default :all-but-critical) #?(:clj (non-critical-throwable? error) :cljs (some? error))\n (:common) #?(:clj (instance? Exception error) :cljs (instance? js/Error error))\n (:ex-info) #?(:clj (instance? clojure.lang.IExceptionInfo error) :cljs (instance? ExceptionInfo error))\n (:all :any) #?(:clj (instance? Throwable error) :cljs (some? error))\n (throw\n (ex-info \"Unexpected Truss `matching-error` `kind` keyword\"\n {:given (typed-val kind)\n :expected '#{:default :common :ex-info :all}})))\n\n (error? kind) (= kind error) ; Exact match\n (fn? kind) (kind error) ; Pred\n (set? kind) (impl/rsome #(matching-error % error) kind)\n :else (instance? kind error))]\n error))\n\n ([kind pattern error]\n (if-let [match?\n (and\n (matching-error kind error)\n (cond\n (nil? pattern) true\n (set? pattern) (impl/rsome #(matching-error kind % error) pattern)\n (string? pattern) (impl/str-contains? (ex-message error) pattern)\n (impl/re-pattern? pattern) (re-find pattern (ex-message error))\n (map? pattern) (when-let [data (ex-data error)]\n (submap? data pattern))\n :else\n (unexpected-arg! pattern\n {:param 'pattern\n :context `matching-error\n :expected '#{nil set string re-pattern map}})))]\n error\n ;; Try match cause\n (when-let [cause (ex-cause error)]\n (matching-error kind pattern cause)))))\n\n#?(:clj\n (defmacro throws\n \"Evals `form` and if it throws an error that matches given criteria using\n `matching-error`, returns the matching error. Otherwise returns nil.\n\n Useful for unit tests, e.g.:\n (is (throws :default {:a :b} (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => ExceptionInfo\n (is (throws :default \\\"MyEx\\\" (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => ExceptionInfo\n\n See also `throws?`, `matching-error`.\"\n ([ form] ` (try* ~form nil (catch :all ~'t ~'t)))\n ([kind form] `(matching-error ~kind (try* ~form nil (catch :all ~'t ~'t))))\n ([kind pattern form] `(matching-error ~kind ~pattern (try* ~form nil (catch :all ~'t ~'t))))))\n\n#?(:clj\n (defmacro throws?\n \"Evals `form` and if it throws an error that matches given criteria using\n `matching-error`, returns true. Otherwise returns false.\n\n Useful for unit tests, e.g.:\n (is (throws? :default {:a :b} (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => true\n (is (throws? :default \\\"MyEx\\\" (throw (ex-info \\\"MyEx\\\" {:a :b, :c :d})))) ; => true\n\n See also `throws`, `matching-error`.\"\n ([ form] `(boolean (throws ~form)))\n ([kind form] `(boolean (throws ~kind ~form)))\n ([kind pattern form] `(boolean (throws ~kind ~pattern ~form)))))\n\n(let [get-default-error-fn\n (fn [base-data]\n (let [msg (get base-data :error/msg \"Error thrown during reduction\")\n base-data (dissoc base-data :error/msg)]\n\n (fn default-error-fn [data cause] ; == (partial ex-info )\n (throw (ex-info* nil nil msg (conj base-data data) cause)))))]\n\n (defn catching-rf\n \"Returns wrapper around given reducing function `rf` so that if `rf`\n throws, (error-fn ) will be called.\n\n The default `error-fn` will rethrow the original error, wrapped in\n extra contextual information to aid debugging.\n\n Helps make reducing fns easier to debug!\n See also `catching-xform`.\"\n ([ rf] (catching-rf (get-default-error-fn {:rf rf}) rf))\n ([error-fn rf]\n (let [error-fn\n (if (map? error-fn) ; Undocumented convenience\n (get-default-error-fn error-fn)\n (do error-fn))]\n\n (fn catching-rf\n ([ ] (try* (rf) (catch :all t (error-fn {:rf rf :call '(rf)} t))))\n ([acc ] (try* (rf acc) (catch :all t (error-fn {:rf rf :call '(rf acc) :args {:acc (typed-val acc)}} t))))\n ([acc in ] (try* (rf acc in) (catch :all t (error-fn {:rf rf :call '(rf acc in) :args {:acc (typed-val acc)\n :in (typed-val in)}} t))))\n ([acc k v]\n (try* (rf acc k v)\n (catch :all t\n (error-fn\n {:rf rf\n :call '(rf acc k v)\n :args\n {:acc (typed-val acc)\n :k (typed-val k)\n :v (typed-val v)}}\n t)))))))))\n\n(defn catching-xform\n \"Like `catching-rf`, but applies to a transducer (`xform`).\n\n Helps make transductions much easier to debug by greatly improving\n the info provided in any errors thrown by `xform` or the reducing fn:\n\n (transduce\n (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n \n <...>)\"\n\n ([error-fn xform] (comp (fn [rf] (catching-rf error-fn rf)) xform))\n ([ xform] (comp catching-rf xform)))\n\n;;;; Assertions\n\n(def ^:private sys-newline #?(:cljs \"\\n\" :clj (System/getProperty \"line.separator\")))\n\n(let [legacy-ex-data? (impl/legacy-assertion-ex-data?)]\n\n (defn failed-assertion-ex-info\n \"Returns an appropriate `truss/ex-info` for given failed assertion info map.\"\n ([ failed-assertion-info] (failed-assertion-ex-info legacy-ex-data? failed-assertion-info))\n ([legacy-ex-data? failed-assertion-info]\n (let [{:keys [inst ns coords, pred arg-form arg-val, data error]} failed-assertion-info\n undefined-arg? (impl/identical-kw? arg-val :truss/exception)\n\n coords-str ; Faster (str coords)\n (when-let [[line column] coords]\n (if column\n (str \"[\" line \",\" column \"]\")\n (str \"[\" line \"]\")))\n\n msg (str \"Truss assertion failed at \" ns coords-str \": \" (list pred arg-form))\n msg\n (if error\n (let [error-msg (ex-message error)]\n (if undefined-arg?\n (str msg sys-newline \"Error evaluating arg: \" error-msg)\n (str msg sys-newline \"Error evaluating pred: \" error-msg)))\n msg)]\n\n (ex-info* nil nil msg\n\n (if legacy-ex-data?\n {:dt (impl/now-dt*)\n :loc (let [[line column] coords] {:ns ns, :line line, :column column})\n :msg msg\n :pred pred\n :data {:arg data, :dynamic *ctx*}\n :env {:*assert* *assert*}\n :error error\n :arg\n {:form arg-form\n :value arg-val\n :type (if undefined-arg? :truss/exception (type arg-val))}}\n\n (impl/assoc-some\n {:inst (impl/now-inst*)\n :ns ns\n :pred pred\n :arg\n {:form arg-form\n :value arg-val\n :type (if undefined-arg? :truss/exception (type arg-val))}}\n {:coords coords\n :data data}))\n\n error)))))\n\n(def ^:dynamic *failed-assertion-handler*\n \"Unary handler fn to call with failed assertion info map when a Truss\n assertion (`have`, `have?`, `have!`, `have!?`) fails.\n\n Will by default throw an appropriate `truss/ex-info`.\n This is a decent place to inject logging for assertion failures, etc.\n\n Arg given to handler is a map with keys:\n\n `:ns` ----------- ?str namespace of assertion callsite\n `:coords` ------- ?[line column] of assertion callsite\n\n `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n `:arg-val` ------ Runtime value of argument given to predicate\n\n `:data` --------- Optional arbitrary data map provided to assertion macro\n `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\"\n\n (fn [failed-assertion-info]\n (-> failed-assertion-info failed-assertion-ex-info throw)))\n\n(comment\n (let [foo (fn [x] (have true? x))]\n (binding [*failed-assertion-handler* identity] (foo false))))\n\n(defn ^:no-doc failed-assertion!\n \"Private, don't use.\"\n [ns line column, pred arg-form arg-val, data-fn error]\n (if-let [;; Not accessible from impl ns in Cljs\n handler *failed-assertion-handler*]\n (handler\n (let [undefined-arg? (instance? ArgEvalError arg-val)]\n (FailedAssertionInfo. ns\n (when line (if column [line column] [line]))\n pred arg-form\n (if undefined-arg? :truss/exception arg-val)\n (when-let [df data-fn] (impl/catching (df) _ :truss/exception))\n (cond\n (identical? error impl/FalsePredError) nil\n undefined-arg? (.-ex ^ArgEvalError error)\n :else error))))\n arg-val))\n\n#?(:clj\n (defmacro have\n \"Main Truss assertion util.\n Takes a (fn pred [x]) => truthy, and >=1 vals.\n Tests pred against each val,trapping errors.\n\n If any pred test fails, throws a detailed `truss/ex-info`.\n Otherwise returns input val/s for convenient inline-use/binding.\n\n Respects `*assert*`, so tests can be elided from production if desired\n (meaning zero runtime cost).\n\n Examples:\n (defn my-trim [x] (str/trim (have string? x)))\n\n ;; Add arb optional info to thrown ex-data using `:data`:\n (have string? \\\"foo\\\" :data {:user-id 101}) => \\\"foo\\\"\n\n ;; Assert inside collections using `:in`:\n (have string? :in #{\\\"foo\\\" \\\"bar\\\"}) => #{\\\"foo\\\" \\\"bar\\\"}\n\n Regarding use within other macros:\n Due to CLJ-865, callsite info like line number of outer macro\n will be lost. See `keep-callsite` for workaround.\n\n See also `have?`, `have!`.\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args true false ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have?\n \"Truss assertion util.\n Like `have` but returns `true` (rather than given arg value) on success.\n Handy for `:pre`/`:post` conditions. Compare:\n ((fn my-fn [] {:post [(have nil? %)]} nil)) ; {:post [nil ]} FAILS\n ((fn my-fn [] {:post [(have? nil? %)]} nil)) ; {:post [true]} passes as intended\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args true true ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have!\n \"Truss assertion util.\n Like `have` but ignores `*assert*` value (so will never be elided).\n Useful for important conditions in production (e.g. security checks).\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args false false ~(callsite-coords &form) ~args)))\n\n#?(:clj\n (defmacro have!?\n \"Truss assertion util.\n Returns `true` (rather than given arg value) on success, and ignores\n `*assert*` value (so will never be elided).\n \n **WARNING**: do NOT use in `:pre`/`:post` conditions since those ALWAYS\n respect `*assert*`, contradicting the intention of the bang (`!`) here.\"\n {:arglists '([x] [pred (:in) x] [pred (:in) x & more-xs])}\n [& args] `(impl/assert-args false true ~(callsite-coords &form) ~args)))\n\n;;;; Deprecated\n\n(defn ^:no-doc legacy-error-fn\n \"Private, don't use. Wraps given Truss v1 `error-fn` to convert\n Truss v2 `*failed-assertion-handler*` arg.\"\n [f]\n (when f\n (fn [failed-assertion-info]\n (f\n (delay\n (let [{:keys [ns coords, pred arg-form arg-val, data error]} failed-assertion-info\n [line column] coords\n msg_\n (delay\n (let [msg\n (str \"Invariant failed at \" ns\n (when line (str \"[\" line (when column (str \",\" column)) \"]\")) \": \"\n (list pred arg-form))]\n\n (if error\n (let [error-msg (ex-message error)]\n (if (impl/identical-kw? arg-val :truss/exception)\n (str msg sys-newline sys-newline \"Error evaluating arg: \" error-msg)\n (str msg sys-newline sys-newline \"Error evaluating pred: \" error-msg)))\n msg)))]\n\n (impl/assoc-some\n {:msg_ msg_\n :dt #?(:clj (java.util.Date.) :cljs (js/Date.))\n :pred pred\n :arg {:form arg-form\n :value arg-val\n :type (type arg-val)}\n :env {:*assert* *assert*}\n :loc {:ns ns, :line line, :column column}}\n\n {:data (impl/assoc-some nil {:dynamic *ctx* :arg data})\n :err error})))))))\n\n(defn ^:no-doc ^:deprecated get-dynamic-assertion-data \"Prefer `*ctx*`\" [] *ctx*)\n(defn ^:no-doc ^:deprecated get-data \"Prefer `*ctx*`\" [] *ctx*)\n(defn ^:no-doc ^:deprecated set-error-fn!\n \"Prefer `*failed-assertion-handler*` (note breaking changes to argument).\"\n [f]\n #?(:cljs (set! *failed-assertion-handler* (legacy-error-fn f))\n :clj (alter-var-root #'*failed-assertion-handler* (fn [_] (legacy-error-fn f)))))\n\n#?(:clj (defmacro ^:no-doc ^:deprecated with-dynamic-assertion-data \"Prefer `*ctx*`\" [data & body] `(binding [*ctx* ~data] ~@body)))\n#?(:clj (defmacro ^:no-doc ^:deprecated with-data \"Prefer `*ctx*`\" [data & body] `(binding [*ctx* ~data] ~@body)))\n#?(:clj\n (defmacro ^:no-doc ^:deprecated with-error-fn\n \"Prefer `*failed-assertion-handler*` (note breaking changes to argument).\"\n [f & body]\n `(binding [*failed-assertion-handler* (legacy-error-fn ~f)]\n ~@body)))\n\n(comment (force (:msg_ (with-data {:a :A} (with-error-fn force (have true? false))))))\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 4eceb19..7b355b1 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nvar f \x3d (function() { \nvar G__57429__delegate \x3d function (argv__56956__auto__){\nif((!((new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_) \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22No next-id function, are you inside `defn-workflow`?\x22,\x22\\n\x22,\x22(clojure.core/some? (:next-id intemporal.workflow.internal/*env*))\x22].join(\x27\x27)));\n}\n\nvar ref__56957__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56958__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar fvar__56959__auto__ \x3d new cljs.core.Var(function(){return intemporal.doc.nested_fn;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22nested-fn\x22,\x22intemporal.doc/nested-fn\x22,-804060883,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22nested-fn\x22,\x22nested-fn\x22,1357386556,null),\x22intemporal/doc.cljs\x22,16,1,11,11,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.nested_fn)?intemporal.doc.nested_fn.cljs$lang$test:null)]));\nvar store__56960__auto__ \x3d new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar protos__56961__auto__ \x3d new cljs.core.Keyword(null,\x22protos\x22,\x22protos\x22,-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56962__auto__ \x3d (function (){var fexpr__57391 \x3d new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nreturn (fexpr__57391.cljs$core$IFn$_invoke$arity$0 ? fexpr__57391.cljs$core$IFn$_invoke$arity$0() : fexpr__57391.call(null));\n})();\nvar ref__56957__auto____$1 \x3d null;\nvar task__56963__auto__ \x3d intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6(ref__56957__auto____$1,root__56958__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56959__auto__),fvar__56959__auto__,argv__56956__auto__,id__56962__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.doc\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56963__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id \x22,id__56962__auto__], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar res__56964__auto__ \x3d intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56960__auto__,protos__56961__auto__,task__56963__auto__);\nreturn res__56964__auto__;\n};\nvar G__57429 \x3d function (var_args){\nvar argv__56956__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__57430__i \x3d 0, G__57430__a \x3d new Array(arguments.length - 0);\nwhile (G__57430__i \x3c G__57430__a.length) {G__57430__a[G__57430__i] \x3d arguments[G__57430__i + 0]; ++G__57430__i;}\n argv__56956__auto__ \x3d new cljs.core.IndexedSeq(G__57430__a,0,null);\n} \nreturn G__57429__delegate.call(this,argv__56956__auto__);};\nG__57429.cljs$lang$maxFixedArity \x3d 0;\nG__57429.cljs$lang$applyTo \x3d (function (arglist__57431){\nvar argv__56956__auto__ \x3d cljs.core.seq(arglist__57431);\nreturn G__57429__delegate(argv__56956__auto__);\n});\nG__57429.cljs$core$IFn$_invoke$arity$variadic \x3d G__57429__delegate;\nreturn G__57429;\n})()\n;\nreturn f(new cljs.core.Keyword(null,\x22sub\x22,\x22sub\x22,-2093760025));\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_57432 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_57432(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k57393,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__57397 \x3d k57393;\nswitch (G__57397) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k57393,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__57398){\nvar vec__57399 \x3d p__57398;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__57399,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__57399,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__57392){\nvar self__ \x3d this;\nvar G__57392__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__57392__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this57394,other57395){\nvar self__ \x3d this;\nvar this57394__$1 \x3d this;\nreturn (((!((other57395 \x3d\x3d null)))) \x26\x26 ((((this57394__$1.constructor \x3d\x3d\x3d other57395.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this57394__$1.__extmap,other57395.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k57393){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k57393);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__57392){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__57402 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__57403 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__57392),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__57392){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__57392,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__57396){\nvar extmap__5365__auto__ \x3d (function (){var G__57405 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__57396);\nif(cljs.core.record_QMARK_(G__57396)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__57405);\n} else {\nreturn G__57405;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc57407 \x3d (function (i,sf,meta57408){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.meta57408 \x3d meta57408;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc57407.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_57409,meta57408__$1){\nvar self__ \x3d this;\nvar _57409__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc57407(self__.i,self__.sf,meta57408__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc57407.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_57409){\nvar self__ \x3d this;\nvar _57409__$1 \x3d this;\nreturn self__.meta57408;\n}));\n\n(intemporal.doc.t_intemporal$doc57407.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc57407.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__56970__auto__,a){\nvar self__ \x3d this;\nvar this__56970__auto____$1 \x3d this;\nvar aid__56971__auto__ \x3d new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null);\nvar act_opts__56972__auto__ \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar ref__56973__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56974__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar store__56975__auto__ \x3d new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar protos__56976__auto__ \x3d new cljs.core.Keyword(null,\x22protos\x22,\x22protos\x22,-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56977__auto__ \x3d (function (){var fexpr__57410 \x3d new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nreturn (fexpr__57410.cljs$core$IFn$_invoke$arity$0 ? fexpr__57410.cljs$core$IFn$_invoke$arity$0() : fexpr__57410.call(null));\n})();\nvar ref__56973__auto____$1 \x3d null;\nvar task__56978__auto__ \x3d intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$7(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(\x22intemporal.doc/MyActivities\x22),ref__56973__auto____$1,root__56974__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(aid__56971__auto__),(function() { \nvar G__57434__delegate \x3d function (impl_PLUS_args__56979__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal.doc.foo,impl_PLUS_args__56979__auto__);\n};\nvar G__57434 \x3d function (var_args){\nvar impl_PLUS_args__56979__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__57435__i \x3d 0, G__57435__a \x3d new Array(arguments.length - 0);\nwhile (G__57435__i \x3c G__57435__a.length) {G__57435__a[G__57435__i] \x3d arguments[G__57435__i + 0]; ++G__57435__i;}\n impl_PLUS_args__56979__auto__ \x3d new cljs.core.IndexedSeq(G__57435__a,0,null);\n} \nreturn G__57434__delegate.call(this,impl_PLUS_args__56979__auto__);};\nG__57434.cljs$lang$maxFixedArity \x3d 0;\nG__57434.cljs$lang$applyTo \x3d (function (arglist__57436){\nvar impl_PLUS_args__56979__auto__ \x3d cljs.core.seq(arglist__57436);\nreturn G__57434__delegate(impl_PLUS_args__56979__auto__);\n});\nG__57434.cljs$core$IFn$_invoke$arity$variadic \x3d G__57434__delegate;\nreturn G__57434;\n})()\n,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [a], null),id__56977__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.doc\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf__$1 \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf__$1)){\nreturn (sf__$1.cljs$core$IFn$_invoke$arity$4 ? sf__$1.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf__$1.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56978__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id\x22,id__56977__auto__], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56975__auto__,protos__56976__auto__,task__56978__auto__);\n}));\n\n(intemporal.doc.t_intemporal$doc57407.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22meta57408\x22,\x22meta57408\x22,-2004347558,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc57407.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc57407.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc57407\x22);\n\n(intemporal.doc.t_intemporal$doc57407.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc57407\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc57407.\n */\nintemporal.doc.__GT_t_intemporal$doc57407 \x3d (function intemporal$doc$__GT_t_intemporal$doc57407(i,sf,meta57408){\nreturn (new intemporal.doc.t_intemporal$doc57407(i,sf,meta57408));\n});\n\n\nintemporal.doc.my_workflow_ \x3d (function intemporal$doc$my_workflow_(i){\nvar sf \x3d (function() { \nvar G__57437__delegate \x3d function (argv__56956__auto__){\nif((!((new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_) \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22No next-id function, are you inside `defn-workflow`?\x22,\x22\\n\x22,\x22(clojure.core/some? (:next-id intemporal.workflow.internal/*env*))\x22].join(\x27\x27)));\n}\n\nvar ref__56957__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56958__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar fvar__56959__auto__ \x3d new cljs.core.Var(function(){return intemporal.doc.activity_fn;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22activity-fn\x22,\x22intemporal.doc/activity-fn\x22,1417063461,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22activity-fn\x22,\x22activity-fn\x22,-716588492,null),\x22intemporal/doc.cljs\x22,18,1,14,14,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.activity_fn)?intemporal.doc.activity_fn.cljs$lang$test:null)]));\nvar store__56960__auto__ \x3d new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar protos__56961__auto__ \x3d new cljs.core.Keyword(null,\x22protos\x22,\x22protos\x22,-804831293).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56962__auto__ \x3d (function (){var fexpr__57406 \x3d new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nreturn (fexpr__57406.cljs$core$IFn$_invoke$arity$0 ? fexpr__57406.cljs$core$IFn$_invoke$arity$0() : fexpr__57406.call(null));\n})();\nvar ref__56957__auto____$1 \x3d null;\nvar task__56963__auto__ \x3d intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6(ref__56957__auto____$1,root__56958__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56959__auto__),fvar__56959__auto__,argv__56956__auto__,id__56962__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.doc\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56963__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id \x22,id__56962__auto__], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar res__56964__auto__ \x3d intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(intemporal.workflow.internal._STAR_env_STAR_,store__56960__auto__,protos__56961__auto__,task__56963__auto__);\nreturn res__56964__auto__;\n};\nvar G__57437 \x3d function (var_args){\nvar argv__56956__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__57438__i \x3d 0, G__57438__a \x3d new Array(arguments.length - 0);\nwhile (G__57438__i \x3c G__57438__a.length) {G__57438__a[G__57438__i] \x3d arguments[G__57438__i + 0]; ++G__57438__i;}\n argv__56956__auto__ \x3d new cljs.core.IndexedSeq(G__57438__a,0,null);\n} \nreturn G__57437__delegate.call(this,argv__56956__auto__);};\nG__57437.cljs$lang$maxFixedArity \x3d 0;\nG__57437.cljs$lang$applyTo \x3d (function (arglist__57439){\nvar argv__56956__auto__ \x3d cljs.core.seq(arglist__57439);\nreturn G__57437__delegate(argv__56956__auto__);\n});\nG__57437.cljs$core$IFn$_invoke$arity$variadic \x3d G__57437__delegate;\nreturn G__57437;\n})()\n;\nvar pr \x3d (new intemporal.doc.t_intemporal$doc57407(i,sf,null));\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___49992__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){\nreturn promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)));\n}));\n}));\n}));\n});\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar ref__56946__auto__ \x3d new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar root__56947__auto__ \x3d new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar id__56948__auto__ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.workflow.internal.random_id();\n}\n})();\nvar fvar__56949__auto__ \x3d new cljs.core.Var(function(){return intemporal.doc.my_workflow_;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22my-workflow-\x22,\x22intemporal.doc/my-workflow-\x22,-465347473,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[true,new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22my-workflow-\x22,\x22my-workflow-\x22,1668689560,null),\x22intemporal/doc.cljs\x22,1,25,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null)], null)),null,(cljs.core.truth_(intemporal.doc.my_workflow_)?intemporal.doc.my_workflow_.cljs$lang$test:null)]));\nvar task__56950__auto__ \x3d intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$6(ref__56946__auto__,root__56947__auto__,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(fvar__56949__auto__),fvar__56949__auto__,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [i], null),id__56948__auto__);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.doc\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__56950__auto__,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),intemporal.workflow.internal._STAR_env_STAR_], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task__56950__auto__)], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.workflow.enqueue_and_wait(intemporal.workflow.internal._STAR_env_STAR_,task__56950__auto__);\n});\nintemporal.doc.mstore \x3d intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0();\nintemporal.doc.stop_worker \x3d intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$variadic(intemporal.doc.mstore,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),intemporal.doc.__GT_MyActivitiesImpl()], null)], null)], 0));\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__57411(s__57412){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57412__$1 \x3d s__57412;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__57412__$1);\nif(temp__5825__auto__){\nvar s__57412__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__57412__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57412__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57414 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57413 \x3d (0);\nwhile(true){\nif((i__57413 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__57413);\ncljs.core.chunk_append(b__57414,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__57440 \x3d (i__57413 + (1));\ni__57413 \x3d G__57440;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57414),intemporal$doc$render_table_BANG__$_iter__57411(cljs.core.chunk_rest(s__57412__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57414),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57412__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__57411(cljs.core.rest(s__57412__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__57415(s__57416){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57416__$1 \x3d s__57416;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__57416__$1);\nif(temp__5825__auto__){\nvar s__57416__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__57416__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57416__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57418 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57417 \x3d (0);\nwhile(true){\nif((i__57417 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__57417);\ncljs.core.chunk_append(b__57418,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(s__57420){\nreturn (new cljs.core.LazySeq(null,((function (i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__57420__$1 \x3d s__57420;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__57420__$1);\nif(temp__5825__auto____$1){\nvar s__57420__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__57420__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__57420__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__57422 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__57421 \x3d (0);\nwhile(true){\nif((i__57421 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__57421);\ncljs.core.chunk_append(b__57422,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__57441 \x3d (i__57421 + (1));\ni__57421 \x3d G__57441;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57422),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(cljs.core.chunk_rest(s__57420__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57422),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57420__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57419(cljs.core.rest(s__57420__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__57417,r,c__5501__auto__,size__5502__auto__,b__57418,s__57416__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__57442 \x3d (i__57417 + (1));\ni__57417 \x3d G__57442;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57418),intemporal$doc$render_table_BANG__$_iter__57415(cljs.core.chunk_rest(s__57416__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57418),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__57416__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__57416__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(s__57424){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__57424__$1 \x3d s__57424;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__57424__$1);\nif(temp__5825__auto____$1){\nvar s__57424__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__57424__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__57424__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__57426 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__57425 \x3d (0);\nwhile(true){\nif((i__57425 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__57425);\ncljs.core.chunk_append(b__57426,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__57443 \x3d (i__57425 + (1));\ni__57425 \x3d G__57443;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57426),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(cljs.core.chunk_rest(s__57424__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__57426),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__57424__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__57415_$_iter__57423(cljs.core.rest(s__57424__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__57416__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__57415(cljs.core.rest(s__57416__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(the_store){\nvar tasks \x3d intemporal.store.list_tasks(intemporal.doc.mstore);\nvar events \x3d cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),intemporal.store.list_events(intemporal.doc.mstore));\nintemporal.doc.render_table_BANG_(\x22tasks\x22,tasks);\n\nintemporal.doc.render_table_BANG_(\x22events\x22,events);\n\nconsole.table(cljs.core.clj__GT_js(tasks));\n\nreturn console.table(cljs.core.clj__GT_js(events));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar res \x3d (function (){var _STAR_env_STAR__orig_val__57427 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__57428 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.doc.mstore], null)], 0));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__57428);\n\ntry{return intemporal.doc.my_workflow((1));\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__57427);\n}})();\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,r);\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(intemporal.doc.mstore);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn null;\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_41034 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_41034(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k41003,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__41007 \x3d k41003;\nswitch (G__41007) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k41003,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__41008){\nvar vec__41009 \x3d p__41008;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__41002){\nvar self__ \x3d this;\nvar G__41002__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__41002__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this41004,other41005){\nvar self__ \x3d this;\nvar this41004__$1 \x3d this;\nreturn (((!((other41005 \x3d\x3d null)))) \x26\x26 ((((this41004__$1.constructor \x3d\x3d\x3d other41005.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this41004__$1.__extmap,other41005.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k41003){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k41003);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__41002){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__41012 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__41013 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__41002),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__41002){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__41002,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__41006){\nvar extmap__5365__auto__ \x3d (function (){var G__41015 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__41006);\nif(cljs.core.record_QMARK_(G__41006)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__41015);\n} else {\nreturn G__41015;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var G__41016 \x3d intemporal.doc.MyActivities;\nvar G__41017 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2 ? intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2(G__41016,G__41017) : intemporal.doc.stub_protocol.call(null,G__41016,G__41017));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d intemporal.doc.foo(pr,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){\nreturn promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)));\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__41018(s__41019){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41019__$1 \x3d s__41019;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__41019__$1);\nif(temp__5825__auto__){\nvar s__41019__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__41019__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41019__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41021 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41020 \x3d (0);\nwhile(true){\nif((i__41020 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__41020);\ncljs.core.chunk_append(b__41021,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__41036 \x3d (i__41020 + (1));\ni__41020 \x3d G__41036;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41021),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.chunk_rest(s__41019__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41021),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41019__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.rest(s__41019__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__41022(s__41023){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41023__$1 \x3d s__41023;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__41023__$1);\nif(temp__5825__auto__){\nvar s__41023__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__41023__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41023__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41025 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41024 \x3d (0);\nwhile(true){\nif((i__41024 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__41024);\ncljs.core.chunk_append(b__41025,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(s__41027){\nreturn (new cljs.core.LazySeq(null,((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__41027__$1 \x3d s__41027;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__41027__$1);\nif(temp__5825__auto____$1){\nvar s__41027__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__41027__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__41027__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__41029 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__41028 \x3d (0);\nwhile(true){\nif((i__41028 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__41028);\ncljs.core.chunk_append(b__41029,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__41037 \x3d (i__41028 + (1));\ni__41028 \x3d G__41037;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41029),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.chunk_rest(s__41027__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41029),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41027__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.rest(s__41027__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__41038 \x3d (i__41024 + (1));\ni__41024 \x3d G__41038;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41025),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.chunk_rest(s__41023__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41025),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__41023__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(s__41031){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41031__$1 \x3d s__41031;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__41031__$1);\nif(temp__5825__auto____$1){\nvar s__41031__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__41031__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41031__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41033 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41032 \x3d (0);\nwhile(true){\nif((i__41032 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__41032);\ncljs.core.chunk_append(b__41033,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__41039 \x3d (i__41032 + (1));\ni__41032 \x3d G__41039;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41033),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.chunk_rest(s__41031__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41033),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41031__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.rest(s__41031__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__41023__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.rest(s__41023__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/manifest.edn b/public/js/manifest.edn index 7108f7b..2471cc6 100644 --- a/public/js/manifest.edn +++ b/public/js/manifest.edn @@ -1 +1 @@ -[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljc.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core.cljc/async/impl/protocols.cljs" "cljs/core.cljc/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core.cljc/async/impl/dispatch.cljs" "cljs/core.cljc/async/impl/channels.cljs" "cljs/core.cljc/async/impl/timers.cljs" "cljs/core.cljc/async/impl/ioc_helpers.cljs" "cljs/core.cljc/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core.cljc/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "clojure/edn.cljs" "intemporal/error.cljc" "malli/impl/util.cljc" "malli/impl/regex.cljc" "malli/registry.cljc" "borkdude/dynaload.cljc" "malli/sci.cljc" "malli/core.cljc.cljc" "intemporal/store/internal.cljc" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/store.cljc" "intemporal/workflow/internal.cljc" "intemporal/workflow.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file +[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "intemporal/internal/error.cljc" "intemporal/protocol.cljc" "intemporal/internal/context.cljc" "intemporal/internal/activity.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/internal/logging.cljc" "intemporal/utils.cljc" "intemporal/internal/runtime.cljs" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "intemporal/internal/execution.cljs" "intemporal/internal/fns/start_workflow.cljs" "intemporal/store.cljc" "intemporal/observer.cljc" "intemporal/core.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index a74dbe3..e48a97d 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1,7 +1,7 @@ var shadow$provide = {}; var CLOSURE_NO_DEPS = true; var CLOSURE_BASE_PATH = '/js/cljs-runtime/'; -var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"48aa0608-49bd-4367-abbb-d3e52afae892","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"bb108437-6aba-4dc8-8b58-4606152f5dd6","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; +var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"70dcb574-f2fa-4957-900d-46780b2340be","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"3563441f-7854-4ff2-87a8-23fca905f33a","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; var COMPILED = false; var goog = goog || {}; goog.global = this || self; @@ -1535,6 +1535,12 @@ SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.shared.js", true, "goog.provide SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.hud.js", true, "goog.provide(\x27shadow.cljs.devtools.client.hud\x27);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_progress \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_progress\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_warnings \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_warnings\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_errors \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_errors\x22,true);\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud.dom_available_QMARK_ !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.hud.dom_available_QMARK_ \x3d (!((goog.global.document \x3d\x3d null)));\n}\nshadow.cljs.devtools.client.hud.open_file \x3d (function shadow$cljs$devtools$client$hud$open_file(file,line,column){\nconsole.log(\x22opening file\x22,file,line,column);\n\nreturn fetch([shadow.cljs.devtools.client.env.get_url_base(),\x22/api/open-file\x22].join(\x27\x27),({\x22method\x22: \x22POST\x22, \x22cache\x22: \x22no-cache\x22, \x22mode\x22: \x22cors\x22, \x22body\x22: shadow.cljs.devtools.client.shared.transit_str(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null))})).then((function (p1__43001_SHARP_){\nreturn p1__43001_SHARP_.text();\n})).then((function (result_text){\nvar data \x3d shadow.cljs.devtools.client.shared.transit_read(cljs.core.PersistentArrayMap.EMPTY,result_text);\nreturn console.log(\x22open file result\x22,data);\n}));\n});\nshadow.cljs.devtools.client.hud.dom_insert \x3d (function shadow$cljs$devtools$client$hud$dom_insert(var_args){\nvar G__43006 \x3d arguments.length;\nswitch (G__43006) {\ncase 1:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1 \x3d (function (node){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2(document.body,node);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2 \x3d (function (where,node){\nvar el \x3d shadow.dom.dom_node(node);\nvar id \x3d el.id;\nif(cljs.core.seq(id)){\n} else {\nthrow (new Error(\x22Assert failed: (seq id)\x22));\n}\n\nvar temp__5829__auto___43134 \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(id);\nif((temp__5829__auto___43134 \x3d\x3d null)){\n} else {\nvar x_43135 \x3d temp__5829__auto___43134;\nshadow.dom.remove(x_43135);\n}\n\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$2(where,el);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.hud_id \x3d \x22shadow-hud-container\x22;\nshadow.cljs.devtools.client.hud.load_id \x3d \x22shadow-hud-loading-container\x22;\nshadow.cljs.devtools.client.hud.logo_svg \x3d (new cljs.core.Delay((function (){\nvar s_path \x3d \x22M247.183941,141.416413 C247.183941,74.7839971 148.383423,78.9723529 148.383423,141.416413 C148.383423,203.860473 265.090698,171.864644 265.090698,248.900057 C265.090698,325.93547 135,325.851749 135,251.708304\x22;\nreturn shadow.dom.svg.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),\x22shadow-cljs-logo\x22,new cljs.core.Keyword(null,\x22version\x22,\x22version\x22,425292698),\x221.1\x22,new cljs.core.Keyword(null,\x22viewBox\x22,\x22viewBox\x22,-469489477),\x220 0 400 400\x22,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),\x22block\x22], null),new cljs.core.Keyword(null,\x22height\x22,\x22height\x22,1025178622),\x2260px\x22,new cljs.core.Keyword(null,\x22width\x22,\x22width\x22,-384071477),\x2260px\x22], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22title\x22,\x22title\x22,636505583),\x22shadow-cljs\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22mask#shadow-cljs-logo-mask\x22,\x22mask#shadow-cljs-logo-mask\x22,1690487509),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#fff\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle\x22,\x22circle\x22,1903212362),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22], null)], null)], null)], null),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fill-rule\x22,\x22fill-rule\x22,-1824841598),\x22evenodd\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22none\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x220\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22none\x22,new cljs.core.Keyword(null,\x22mask\x22,\x22mask\x22,-585748447),\x22url(#shadow-cljs-logo-mask)\x22], null),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g.circles\x22,\x22g.circles\x22,374463200),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.blue\x22,\x22circle.blue\x22,1902916291),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#4F80DF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-blue\x22,\x22circle.light-blue\x22,438137342),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x2271.5\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22370\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#89B4FF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.dark-green\x22,\x22circle.dark-green\x22,608465767),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22180\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22360\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x2260\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#40B400\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-green\x22,\x22circle.light-green\x22,-1663041285),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22129\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22320\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22280\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#76E013\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22animateTransform\x22,\x22animateTransform\x22,759329815),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22attributeType\x22,\x22attributeType\x22,1055561918),\x22xml\x22,new cljs.core.Keyword(null,\x22attributeName\x22,\x22attributeName\x22,-400177890),\x22transform\x22,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22rotate\x22,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),\x220 200 200\x22,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),\x22360 200 200\x22,new cljs.core.Keyword(null,\x22dur\x22,\x22dur\x22,1464522452),\x223s\x22,new cljs.core.Keyword(null,\x22repeatCount\x22,\x22repeatCount\x22,1447663848),\x22indefinite\x22], null)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),\x22translate(10,10)\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#aaa\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#FFFFFF\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null)], 0));\n}),null));\nshadow.cljs.devtools.client.hud.load_start \x3d (function shadow$cljs$devtools$client$hud$load_start(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.load_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),\x2240px\x22,new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),\x2240px\x22,new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),\x222px 2px 10px #aaa\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22], null)], null),cljs.core.deref(shadow.cljs.devtools.client.hud.logo_svg)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end_success \x3d (function shadow$cljs$devtools$client$hud$load_end_success(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar container_el \x3d temp__5829__auto__;\nvar el \x3d container_el.firstChild;\nshadow.animate.start((500),cljs.core.PersistentArrayMap.createAsIfByAssoc([el,shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,\x22#40B400\x22,\x22ease-out\x22)]));\n\nvar c__31339__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__31340__auto__ \x3d (function (){var switch__30106__auto__ \x3d (function (state_43050){\nvar state_val_43051 \x3d (state_43050[(1)]);\nif((state_val_43051 \x3d\x3d\x3d (1))){\nvar inst_43036 \x3d cljs.core.async.timeout((250));\nvar state_43050__$1 \x3d state_43050;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_43050__$1,(2),inst_43036);\n} else {\nif((state_val_43051 \x3d\x3d\x3d (2))){\nvar inst_43038 \x3d (state_43050[(2)]);\nvar inst_43039 \x3d [el];\nvar inst_43041 \x3d shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22opacity\x22,\x22opacity\x22,397153780),\x221\x22,\x220\x22,\x22ease-in\x22);\nvar inst_43042 \x3d [inst_43041];\nvar inst_43043 \x3d cljs.core.PersistentHashMap.fromArrays(inst_43039,inst_43042);\nvar inst_43045 \x3d shadow.animate.start((250),inst_43043);\nvar state_43050__$1 \x3d (function (){var statearr_43053 \x3d state_43050;\n(statearr_43053[(7)] \x3d inst_43038);\n\nreturn statearr_43053;\n})();\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_43050__$1,(3),inst_43045);\n} else {\nif((state_val_43051 \x3d\x3d\x3d (3))){\nvar inst_43047 \x3d (state_43050[(2)]);\nvar inst_43048 \x3d shadow.dom.remove(container_el);\nvar state_43050__$1 \x3d (function (){var statearr_43056 \x3d state_43050;\n(statearr_43056[(8)] \x3d inst_43047);\n\nreturn statearr_43056;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_43050__$1,inst_43048);\n} else {\nreturn null;\n}\n}\n}\n});\nreturn (function() {\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__ \x3d null;\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0 \x3d (function (){\nvar statearr_43059 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_43059[(0)] \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__);\n\n(statearr_43059[(1)] \x3d (1));\n\nreturn statearr_43059;\n});\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1 \x3d (function (state_43050){\nwhile(true){\nvar ret_value__30108__auto__ \x3d (function (){try{while(true){\nvar result__30109__auto__ \x3d switch__30106__auto__(state_43050);\nif(cljs.core.keyword_identical_QMARK_(result__30109__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__30109__auto__;\n}\nbreak;\n}\n}catch (e43060){var ex__30110__auto__ \x3d e43060;\nvar statearr_43061_43141 \x3d state_43050;\n(statearr_43061_43141[(2)] \x3d ex__30110__auto__);\n\n\nif(cljs.core.seq((state_43050[(4)]))){\nvar statearr_43062_43142 \x3d state_43050;\n(statearr_43062_43142[(1)] \x3d cljs.core.first((state_43050[(4)])));\n\n} else {\nthrow ex__30110__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__30108__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__43144 \x3d state_43050;\nstate_43050 \x3d G__43144;\ncontinue;\n} else {\nreturn ret_value__30108__auto__;\n}\nbreak;\n}\n});\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__ \x3d function(state_43050){\nswitch(arguments.length){\ncase 0:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0.call(this);\ncase 1:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1.call(this,state_43050);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__.cljs$core$IFn$_invoke$arity$0 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0;\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__.cljs$core$IFn$_invoke$arity$1 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1;\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__;\n})()\n})();\nvar state__31341__auto__ \x3d (function (){var statearr_43063 \x3d f__31340__auto__();\n(statearr_43063[(6)] \x3d c__31339__auto__);\n\nreturn statearr_43063;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__31341__auto__);\n}));\n\nreturn c__31339__auto__;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end \x3d (function shadow$cljs$devtools$client$hud$load_end(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar el \x3d temp__5829__auto__;\nreturn shadow.dom.remove(el);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_hide \x3d (function shadow$cljs$devtools$client$hud$hud_hide(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.hud_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar d \x3d temp__5829__auto__;\nreturn shadow.dom.remove(d);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.source_line_styles \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x220\x22,new cljs.core.Keyword(null,\x22margin\x22,\x22margin\x22,-995903681),\x220\x22], null);\nshadow.cljs.devtools.client.hud.source_highlight_styles \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.hud.source_line_styles,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22);\nshadow.cljs.devtools.client.hud.source_line_html \x3d (function shadow$cljs$devtools$client$hud$source_line_html(start_idx,lines,styles){\nvar iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(s__43070){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43070__$1 \x3d s__43070;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43070__$1);\nif(temp__5825__auto__){\nvar s__43070__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__43070__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43070__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43072 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43071 \x3d (0);\nwhile(true){\nif((i__43071 \x3c size__5502__auto__)){\nvar vec__43073 \x3d cljs.core._nth(c__5501__auto__,i__43071);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43073,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43073,(1),null);\ncljs.core.chunk_append(b__43072,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null));\n\nvar G__43153 \x3d (i__43071 + (1));\ni__43071 \x3d G__43153;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43072),shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(cljs.core.chunk_rest(s__43070__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43072),null);\n}\n} else {\nvar vec__43077 \x3d cljs.core.first(s__43070__$2);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43077,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43077,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null),shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(cljs.core.rest(s__43070__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,lines));\n});\nshadow.cljs.devtools.client.hud.sep_length \x3d (80);\nshadow.cljs.devtools.client.hud.sep_line \x3d (function shadow$cljs$devtools$client$hud$sep_line(var_args){\nvar G__43085 \x3d arguments.length;\nswitch (G__43085) {\ncase 0:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22\x22,(0));\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2 \x3d (function (label,offset){\nvar sep_len \x3d Math.max(shadow.cljs.devtools.client.hud.sep_length,offset);\nvar len \x3d cljs.core.count(label);\nvar sep \x3d (function (c){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x22,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,\x22-\x22));\n});\nreturn [sep(offset),cljs.core.str.cljs$core$IFn$_invoke$arity$1(label),sep((sep_len - (offset + len)))].join(\x27\x27);\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.file_link \x3d (function shadow$cljs$devtools$client$hud$file_link(p__43089){\nvar map__43090 \x3d p__43089;\nvar map__43090__$1 \x3d cljs.core.__destructure_map(map__43090);\nvar warning \x3d map__43090__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nif(cljs.core.not(file)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),resource_name], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22text-decoration\x22,\x22text-decoration\x22,1836813207),\x22underline\x22,new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),\x22blue\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),(function (e){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n\nreturn shadow.cljs.devtools.client.hud.open_file(file,line,column);\n})], null)], null),resource_name], null);\n}\n});\nshadow.cljs.devtools.client.hud.html_for_warning \x3d (function shadow$cljs$devtools$client$hud$html_for_warning(p__43096){\nvar map__43097 \x3d p__43096;\nvar map__43097__$1 \x3d cljs.core.__destructure_map(map__43097);\nvar warning \x3d map__43097__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar source_excerpt \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22source-excerpt\x22,\x22source-excerpt\x22,5665576));\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x2210px\x22], null)], null),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22line-height\x22,\x22line-height\x22,1870784992),\x2216px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fadb64\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),\x22WARNING in \x22], null),shadow.cljs.devtools.client.hud.file_link(warning)], null),(cljs.core.truth_(source_excerpt)?(function (){var map__43098 \x3d source_excerpt;\nvar map__43098__$1 \x3d cljs.core.__destructure_map(map__43098);\nvar start_idx \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22start-idx\x22,\x22start-idx\x22,-1600773745));\nvar before \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22before\x22,\x22before\x22,-1633692388));\nvar line__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar after \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22after\x22,\x22after\x22,594996914));\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22], null)], null),shadow.cljs.devtools.client.hud.source_line_html(start_idx,before,shadow.cljs.devtools.client.hud.source_line_styles),shadow.cljs.devtools.client.hud.source_line_html((start_idx + cljs.core.count(before)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line__$1], null),shadow.cljs.devtools.client.hud.source_highlight_styles),(function (){var arrow_idx \x3d ((6) + (function (){var or__5025__auto__ \x3d column;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (1);\n}\n})());\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22^\x22,arrow_idx)], null);\n})(),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 0\x22], null)], null),msg], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0()], null),shadow.cljs.devtools.client.hud.source_line_html(((start_idx + cljs.core.count(before)) + (1)),after,shadow.cljs.devtools.client.hud.source_line_styles)], null);\n})():null)], null);\n});\nshadow.cljs.devtools.client.hud.hud_warnings \x3d (function shadow$cljs$devtools$client$hud$hud_warnings(p__43101){\nvar map__43102 \x3d p__43101;\nvar map__43102__$1 \x3d cljs.core.__destructure_map(map__43102);\nvar msg \x3d map__43102__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43102__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43102__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar map__43103 \x3d info;\nvar map__43103__$1 \x3d cljs.core.__destructure_map(map__43103);\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43103__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar sources_with_warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__43100_SHARP_){\nreturn cljs.core.seq(new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651).cljs$core$IFn$_invoke$arity$1(p1__43100_SHARP_));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827),sources)));\nif(cljs.core.seq(sources_with_warnings)){\nshadow.cljs.devtools.client.hud.load_end();\n\nif(shadow.cljs.devtools.client.hud.show_warnings){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22flex-direction\x22,\x22flex-direction\x22,364609438),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x2210000\x22,\x220px\x22,\x22flex\x22,\x22fixed\x22,\x22monospace\x22,\x22column\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22align-self\x22,\x22align-self\x22,1475936794),\x22flex-end\x22,new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22border-bottom\x22,\x22border-bottom\x22,2110948415),\x220px\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x226px\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x22-2px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),shadow.cljs.devtools.client.hud.hud_hide], null)], null),\x22Close\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22flex\x22,\x22flex\x22,-1425124628),\x221\x22,new cljs.core.Keyword(null,\x22max-height\x22,\x22max-height\x22,-612563804),\x22300px\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px 0\x22,new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),\x22auto\x22], null)], null),(function (){var iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105(s__43106){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43106__$1 \x3d s__43106;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43106__$1);\nif(temp__5825__auto__){\nvar xs__6385__auto__ \x3d temp__5825__auto__;\nvar map__43115 \x3d cljs.core.first(xs__6385__auto__);\nvar map__43115__$1 \x3d cljs.core.__destructure_map(map__43115);\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43115__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nvar iterys__5499__auto__ \x3d ((function (s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info){\nreturn (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(s__43108){\nreturn (new cljs.core.LazySeq(null,((function (s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info){\nreturn (function (){\nvar s__43108__$1 \x3d s__43108;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__43108__$1);\nif(temp__5825__auto____$1){\nvar s__43108__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__43108__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43108__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43110 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43109 \x3d (0);\nwhile(true){\nif((i__43109 \x3c size__5502__auto__)){\nvar warning \x3d cljs.core._nth(c__5501__auto__,i__43109);\ncljs.core.chunk_append(b__43110,shadow.cljs.devtools.client.hud.html_for_warning(warning));\n\nvar G__43168 \x3d (i__43109 + (1));\ni__43109 \x3d G__43168;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43110),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(cljs.core.chunk_rest(s__43108__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43110),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__43108__$2);\nreturn cljs.core.cons(shadow.cljs.devtools.client.hud.html_for_warning(warning),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(cljs.core.rest(s__43108__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info))\n,null,null));\n});})(s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info))\n;\nvar fs__5500__auto__ \x3d cljs.core.seq(iterys__5499__auto__(warnings));\nif(fs__5500__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5500__auto__,shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105(cljs.core.rest(s__43106__$1)));\n} else {\nvar G__43169 \x3d cljs.core.rest(s__43106__$1);\ns__43106__$1 \x3d G__43169;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(sources_with_warnings);\n})()], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_error \x3d (function shadow$cljs$devtools$client$hud$hud_error(p__43119){\nvar map__43120 \x3d p__43119;\nvar map__43120__$1 \x3d cljs.core.__destructure_map(map__43120);\nvar msg \x3d map__43120__$1;\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43120__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22top\x22,\x22top\x22,-1856271961),new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x220px\x22,\x22auto\x22,\x22#fff\x22,\x2210000\x22,\x2220px\x22,\x220px\x22,\x22fixed\x22,\x225px solid red\x22,\x22monospace\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),\x22color: red; margin-bottom: 10px; font-size: 2em;\x22], null),\x22Compilation failed!\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),report], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error_id \x3d \x22shadow-connection-error\x22;\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_ \x3d (function shadow$cljs$devtools$client$hud$connection_error_clear_BANG_(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.connection_error_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar x \x3d temp__5829__auto__;\nreturn shadow.dom.remove(x);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error \x3d (function shadow$cljs$devtools$client$hud$connection_error(msg){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.connection_error_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874)],[\x222px 2px 10px #aaa\x22,\x22#fff\x22,\x2214px\x22,\x22bold\x22,\x2240px\x22,\x22#c00\x22,\x2210px\x22,\x2240px\x22,\x22monospace\x22])], null),[\x22shadow-cljs - \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_failure \x3d (function shadow$cljs$devtools$client$hud$load_failure(error,task,remaining){\nshadow.cljs.devtools.client.hud.load_end();\n\nconsole.error(\x22reload-failed\x22,error);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22[reload failed] \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error.message)].join(\x27\x27));\n});\n"); SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.websocket.js", true, "goog.provide(\x27shadow.cljs.devtools.client.websocket\x27);\nshadow.cljs.devtools.client.websocket.start \x3d (function shadow$cljs$devtools$client$websocket$start(var_args){\nvar G__42995 \x3d arguments.length;\nswitch (G__42995) {\ncase 1:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1 \x3d (function (runtime){\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2(WebSocket,runtime);\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2 \x3d (function (ws_impl,runtime){\nvar ws_url \x3d shadow.cljs.devtools.client.env.get_ws_relay_url();\nvar socket \x3d (new ws_impl(ws_url));\n(socket.onmessage \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_msg(runtime,e.data);\n}));\n\n(socket.onopen \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_open(runtime,e);\n}));\n\n(socket.onclose \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_close(runtime,e,ws_url);\n}));\n\n(socket.onerror \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_error(runtime,e);\n}));\n\nreturn socket;\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.websocket.send \x3d (function shadow$cljs$devtools$client$websocket$send(socket,msg){\nreturn socket.send(msg);\n});\nshadow.cljs.devtools.client.websocket.stop \x3d (function shadow$cljs$devtools$client$websocket$stop(socket){\n(socket.onopen \x3d null);\n\n(socket.onclose \x3d null);\n\n(socket.onmessage \x3d null);\n\n(socket.onerror \x3d null);\n\nreturn socket.close();\n});\n"); SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.browser.js", true, "goog.provide(\x27shadow.cljs.devtools.client.browser\x27);\nshadow.cljs.devtools.client.browser.devtools_msg \x3d (function shadow$cljs$devtools$client$browser$devtools_msg(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___44171 \x3d arguments.length;\nvar i__5750__auto___44172 \x3d (0);\nwhile(true){\nif((i__5750__auto___44172 \x3c len__5749__auto___44171)){\nargs__5755__auto__.push((arguments[i__5750__auto___44172]));\n\nvar G__44173 \x3d (i__5750__auto___44172 + (1));\ni__5750__auto___44172 \x3d G__44173;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic \x3d (function (msg,args){\nif(shadow.cljs.devtools.client.env.log){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.log_style)){\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22%cshadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27),shadow.cljs.devtools.client.env.log_style], null),args)));\n} else {\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22shadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null),args)));\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$applyTo \x3d (function (seq43292){\nvar G__43293 \x3d cljs.core.first(seq43292);\nvar seq43292__$1 \x3d cljs.core.next(seq43292);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__43293,seq43292__$1);\n}));\n\nshadow.cljs.devtools.client.browser.script_eval \x3d (function shadow$cljs$devtools$client$browser$script_eval(code){\nreturn goog.globalEval(code);\n});\nshadow.cljs.devtools.client.browser.do_js_load \x3d (function shadow$cljs$devtools$client$browser$do_js_load(sources){\nvar seq__43305 \x3d cljs.core.seq(sources);\nvar chunk__43306 \x3d null;\nvar count__43307 \x3d (0);\nvar i__43308 \x3d (0);\nwhile(true){\nif((i__43308 \x3c count__43307)){\nvar map__43318 \x3d chunk__43306.cljs$core$IIndexed$_nth$arity$2(null,i__43308);\nvar map__43318__$1 \x3d cljs.core.__destructure_map(map__43318);\nvar src \x3d map__43318__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43320){var e_44176 \x3d e43320;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44176);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44176.message)].join(\x27\x27)));\n}\n\nvar G__44179 \x3d seq__43305;\nvar G__44180 \x3d chunk__43306;\nvar G__44181 \x3d count__43307;\nvar G__44182 \x3d (i__43308 + (1));\nseq__43305 \x3d G__44179;\nchunk__43306 \x3d G__44180;\ncount__43307 \x3d G__44181;\ni__43308 \x3d G__44182;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43305);\nif(temp__5825__auto__){\nvar seq__43305__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43305__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43305__$1);\nvar G__44183 \x3d cljs.core.chunk_rest(seq__43305__$1);\nvar G__44184 \x3d c__5548__auto__;\nvar G__44185 \x3d cljs.core.count(c__5548__auto__);\nvar G__44186 \x3d (0);\nseq__43305 \x3d G__44183;\nchunk__43306 \x3d G__44184;\ncount__43307 \x3d G__44185;\ni__43308 \x3d G__44186;\ncontinue;\n} else {\nvar map__43324 \x3d cljs.core.first(seq__43305__$1);\nvar map__43324__$1 \x3d cljs.core.__destructure_map(map__43324);\nvar src \x3d map__43324__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43325){var e_44188 \x3d e43325;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44188);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44188.message)].join(\x27\x27)));\n}\n\nvar G__44190 \x3d cljs.core.next(seq__43305__$1);\nvar G__44191 \x3d null;\nvar G__44192 \x3d (0);\nvar G__44193 \x3d (0);\nseq__43305 \x3d G__44190;\nchunk__43306 \x3d G__44191;\ncount__43307 \x3d G__44192;\ni__43308 \x3d G__44193;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.do_js_reload \x3d (function shadow$cljs$devtools$client$browser$do_js_reload(msg,sources,complete_fn,failure_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(msg,new cljs.core.Keyword(null,\x22log-missing-fn\x22,\x22log-missing-fn\x22,732676765),(function (fn_sym){\nreturn null;\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22log-call-async\x22,\x22log-call-async\x22,183826192),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call async \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22log-call\x22,\x22log-call\x22,412404391),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n})], 0)),(function (next){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n}),complete_fn,failure_fn);\n});\n/**\n * when (require \x27[\x22some-str\x22 :as x]) is done at the REPL we need to manually call the shadow.js.require for it\n * since the file only adds the shadow$provide. only need to do this for shadow-js.\n */\nshadow.cljs.devtools.client.browser.do_js_requires \x3d (function shadow$cljs$devtools$client$browser$do_js_requires(js_requires){\nvar seq__43333 \x3d cljs.core.seq(js_requires);\nvar chunk__43334 \x3d null;\nvar count__43335 \x3d (0);\nvar i__43336 \x3d (0);\nwhile(true){\nif((i__43336 \x3c count__43335)){\nvar js_ns \x3d chunk__43334.cljs$core$IIndexed$_nth$arity$2(null,i__43336);\nvar require_str_44197 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44197);\n\n\nvar G__44201 \x3d seq__43333;\nvar G__44202 \x3d chunk__43334;\nvar G__44203 \x3d count__43335;\nvar G__44204 \x3d (i__43336 + (1));\nseq__43333 \x3d G__44201;\nchunk__43334 \x3d G__44202;\ncount__43335 \x3d G__44203;\ni__43336 \x3d G__44204;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43333);\nif(temp__5825__auto__){\nvar seq__43333__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43333__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43333__$1);\nvar G__44206 \x3d cljs.core.chunk_rest(seq__43333__$1);\nvar G__44207 \x3d c__5548__auto__;\nvar G__44208 \x3d cljs.core.count(c__5548__auto__);\nvar G__44209 \x3d (0);\nseq__43333 \x3d G__44206;\nchunk__43334 \x3d G__44207;\ncount__43335 \x3d G__44208;\ni__43336 \x3d G__44209;\ncontinue;\n} else {\nvar js_ns \x3d cljs.core.first(seq__43333__$1);\nvar require_str_44210 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44210);\n\n\nvar G__44211 \x3d cljs.core.next(seq__43333__$1);\nvar G__44212 \x3d null;\nvar G__44213 \x3d (0);\nvar G__44214 \x3d (0);\nseq__43333 \x3d G__44211;\nchunk__43334 \x3d G__44212;\ncount__43335 \x3d G__44213;\ni__43336 \x3d G__44214;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.handle_build_complete \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete(runtime,p__43350){\nvar map__43351 \x3d p__43350;\nvar map__43351__$1 \x3d cljs.core.__destructure_map(map__43351);\nvar msg \x3d map__43351__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(s__43354){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43354__$1 \x3d s__43354;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43354__$1);\nif(temp__5825__auto__){\nvar xs__6385__auto__ \x3d temp__5825__auto__;\nvar map__43363 \x3d cljs.core.first(xs__6385__auto__);\nvar map__43363__$1 \x3d cljs.core.__destructure_map(map__43363);\nvar src \x3d map__43363__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__5499__auto__ \x3d ((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(s__43356){\nreturn (new cljs.core.LazySeq(null,((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function (){\nvar s__43356__$1 \x3d s__43356;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__43356__$1);\nif(temp__5825__auto____$1){\nvar s__43356__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__43356__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43356__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43358 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43357 \x3d (0);\nwhile(true){\nif((i__43357 \x3c size__5502__auto__)){\nvar warning \x3d cljs.core._nth(c__5501__auto__,i__43357);\ncljs.core.chunk_append(b__43358,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name));\n\nvar G__44220 \x3d (i__43357 + (1));\ni__43357 \x3d G__44220;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.chunk_rest(s__43356__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__43356__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.rest(s__43356__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n,null,null));\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n;\nvar fs__5500__auto__ \x3d cljs.core.seq(iterys__5499__auto__(warnings));\nif(fs__5500__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5500__auto__,shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(cljs.core.rest(s__43354__$1)));\n} else {\nvar G__44221 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44221;\ncontinue;\n}\n} else {\nvar G__44222 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44222;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nif(shadow.cljs.devtools.client.env.log){\nvar seq__43368_44223 \x3d cljs.core.seq(warnings);\nvar chunk__43369_44224 \x3d null;\nvar count__43370_44225 \x3d (0);\nvar i__43371_44226 \x3d (0);\nwhile(true){\nif((i__43371_44226 \x3c count__43370_44225)){\nvar map__43400_44229 \x3d chunk__43369_44224.cljs$core$IIndexed$_nth$arity$2(null,i__43371_44226);\nvar map__43400_44230__$1 \x3d cljs.core.__destructure_map(map__43400_44229);\nvar w_44231 \x3d map__43400_44230__$1;\nvar msg_44232__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44233 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44234 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44235 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44235),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44233),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44234),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44232__$1)].join(\x27\x27));\n\n\nvar G__44238 \x3d seq__43368_44223;\nvar G__44239 \x3d chunk__43369_44224;\nvar G__44240 \x3d count__43370_44225;\nvar G__44241 \x3d (i__43371_44226 + (1));\nseq__43368_44223 \x3d G__44238;\nchunk__43369_44224 \x3d G__44239;\ncount__43370_44225 \x3d G__44240;\ni__43371_44226 \x3d G__44241;\ncontinue;\n} else {\nvar temp__5825__auto___44242 \x3d cljs.core.seq(seq__43368_44223);\nif(temp__5825__auto___44242){\nvar seq__43368_44243__$1 \x3d temp__5825__auto___44242;\nif(cljs.core.chunked_seq_QMARK_(seq__43368_44243__$1)){\nvar c__5548__auto___44245 \x3d cljs.core.chunk_first(seq__43368_44243__$1);\nvar G__44246 \x3d cljs.core.chunk_rest(seq__43368_44243__$1);\nvar G__44247 \x3d c__5548__auto___44245;\nvar G__44248 \x3d cljs.core.count(c__5548__auto___44245);\nvar G__44249 \x3d (0);\nseq__43368_44223 \x3d G__44246;\nchunk__43369_44224 \x3d G__44247;\ncount__43370_44225 \x3d G__44248;\ni__43371_44226 \x3d G__44249;\ncontinue;\n} else {\nvar map__43414_44250 \x3d cljs.core.first(seq__43368_44243__$1);\nvar map__43414_44251__$1 \x3d cljs.core.__destructure_map(map__43414_44250);\nvar w_44252 \x3d map__43414_44251__$1;\nvar msg_44253__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44254 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44255 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44256 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44256),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44254),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44255),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44253__$1)].join(\x27\x27));\n\n\nvar G__44258 \x3d cljs.core.next(seq__43368_44243__$1);\nvar G__44259 \x3d null;\nvar G__44260 \x3d (0);\nvar G__44261 \x3d (0);\nseq__43368_44223 \x3d G__44258;\nchunk__43369_44224 \x3d G__44259;\ncount__43370_44225 \x3d G__44260;\ni__43371_44226 \x3d G__44261;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nif((!(shadow.cljs.devtools.client.env.autoload))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(((cljs.core.empty_QMARK_(warnings)) || (shadow.cljs.devtools.client.env.ignore_warnings))){\nvar sources_to_get \x3d shadow.cljs.devtools.client.env.filter_reload_sources(info,reload_info);\nif(cljs.core.not(cljs.core.seq(sources_to_get))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22after-load\x22,\x22after-load\x22,-1278503285)], null)))){\n} else {\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22reloading code but no :after-load hooks are configured!\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22https://shadow-cljs.github.io/docs/UsersGuide.html#_lifecycle_hooks\x22], 0));\n}\n\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime,sources_to_get,(function (p1__43348_SHARP_){\nreturn shadow.cljs.devtools.client.browser.do_js_reload(msg,p1__43348_SHARP_,shadow.cljs.devtools.client.hud.load_end_success,shadow.cljs.devtools.client.hud.load_failure);\n}));\n}\n} else {\nreturn null;\n}\n}\n});\nshadow.cljs.devtools.client.browser.page_load_uri \x3d (cljs.core.truth_(goog.global.document)?goog.Uri.parse(document.location.href):null);\nshadow.cljs.devtools.client.browser.match_paths \x3d (function shadow$cljs$devtools$client$browser$match_paths(old,new$){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22file\x22,shadow.cljs.devtools.client.browser.page_load_uri.getScheme())){\nvar rel_new \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(new$,(1));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,rel_new)) || (clojure.string.starts_with_QMARK_(old,[rel_new,\x22?\x22].join(\x27\x27))))){\nreturn rel_new;\n} else {\nreturn null;\n}\n} else {\nvar node_uri \x3d goog.Uri.parse(old);\nvar node_uri_resolved \x3d shadow.cljs.devtools.client.browser.page_load_uri.resolve(node_uri);\nvar node_abs \x3d node_uri_resolved.getPath();\nvar and__5023__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.browser.page_load_uri.hasSameDomainAs(node_uri))) || (cljs.core.not(node_uri.hasDomain())));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node_abs,new$);\nif(and__5023__auto____$1){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__43435 \x3d node_uri;\nG__43435.setQuery(null);\n\nG__43435.setPath(new$);\n\nreturn G__43435;\n})());\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n});\nshadow.cljs.devtools.client.browser.handle_asset_update \x3d (function shadow$cljs$devtools$client$browser$handle_asset_update(p__43443){\nvar map__43444 \x3d p__43443;\nvar map__43444__$1 \x3d cljs.core.__destructure_map(map__43444);\nvar msg \x3d map__43444__$1;\nvar updates \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22updates\x22,\x22updates\x22,2013983452));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar seq__43446 \x3d cljs.core.seq(updates);\nvar chunk__43448 \x3d null;\nvar count__43449 \x3d (0);\nvar i__43450 \x3d (0);\nwhile(true){\nif((i__43450 \x3c count__43449)){\nvar path \x3d chunk__43448.cljs$core$IIndexed$_nth$arity$2(null,i__43450);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43728_44266 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43732_44267 \x3d null;\nvar count__43733_44268 \x3d (0);\nvar i__43734_44269 \x3d (0);\nwhile(true){\nif((i__43734_44269 \x3c count__43733_44268)){\nvar node_44270 \x3d chunk__43732_44267.cljs$core$IIndexed$_nth$arity$2(null,i__43734_44269);\nif(cljs.core.not(node_44270.shadow$old)){\nvar path_match_44271 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44270.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44271)){\nvar new_link_44272 \x3d (function (){var G__43814 \x3d node_44270.cloneNode(true);\nG__43814.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44271),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43814;\n})();\n(node_44270.shadow$old \x3d true);\n\n(new_link_44272.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43816_44273 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43818_44274 \x3d null;\nvar count__43819_44275 \x3d (0);\nvar i__43820_44276 \x3d (0);\nwhile(true){\nif((i__43820_44276 \x3c count__43819_44275)){\nvar map__43828_44279 \x3d chunk__43818_44274.cljs$core$IIndexed$_nth$arity$2(null,i__43820_44276);\nvar map__43828_44280__$1 \x3d cljs.core.__destructure_map(map__43828_44279);\nvar task_44281 \x3d map__43828_44280__$1;\nvar fn_str_44282 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44283 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44284 \x3d goog.getObjectByName(fn_str_44282,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44283)].join(\x27\x27));\n\n(fn_obj_44284.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44284.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44284.call(null,path,new_link_44272));\n\n\nvar G__44287 \x3d seq__43816_44273;\nvar G__44288 \x3d chunk__43818_44274;\nvar G__44289 \x3d count__43819_44275;\nvar G__44290 \x3d (i__43820_44276 + (1));\nseq__43816_44273 \x3d G__44287;\nchunk__43818_44274 \x3d G__44288;\ncount__43819_44275 \x3d G__44289;\ni__43820_44276 \x3d G__44290;\ncontinue;\n} else {\nvar temp__5825__auto___44291 \x3d cljs.core.seq(seq__43816_44273);\nif(temp__5825__auto___44291){\nvar seq__43816_44292__$1 \x3d temp__5825__auto___44291;\nif(cljs.core.chunked_seq_QMARK_(seq__43816_44292__$1)){\nvar c__5548__auto___44293 \x3d cljs.core.chunk_first(seq__43816_44292__$1);\nvar G__44294 \x3d cljs.core.chunk_rest(seq__43816_44292__$1);\nvar G__44295 \x3d c__5548__auto___44293;\nvar G__44296 \x3d cljs.core.count(c__5548__auto___44293);\nvar G__44297 \x3d (0);\nseq__43816_44273 \x3d G__44294;\nchunk__43818_44274 \x3d G__44295;\ncount__43819_44275 \x3d G__44296;\ni__43820_44276 \x3d G__44297;\ncontinue;\n} else {\nvar map__43833_44299 \x3d cljs.core.first(seq__43816_44292__$1);\nvar map__43833_44300__$1 \x3d cljs.core.__destructure_map(map__43833_44299);\nvar task_44301 \x3d map__43833_44300__$1;\nvar fn_str_44302 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44303 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44304 \x3d goog.getObjectByName(fn_str_44302,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44303)].join(\x27\x27));\n\n(fn_obj_44304.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44304.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44304.call(null,path,new_link_44272));\n\n\nvar G__44305 \x3d cljs.core.next(seq__43816_44292__$1);\nvar G__44306 \x3d null;\nvar G__44307 \x3d (0);\nvar G__44308 \x3d (0);\nseq__43816_44273 \x3d G__44305;\nchunk__43818_44274 \x3d G__44306;\ncount__43819_44275 \x3d G__44307;\ni__43820_44276 \x3d G__44308;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44270);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44271], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44272,node_44270);\n\n\nvar G__44309 \x3d seq__43728_44266;\nvar G__44310 \x3d chunk__43732_44267;\nvar G__44311 \x3d count__43733_44268;\nvar G__44312 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44309;\nchunk__43732_44267 \x3d G__44310;\ncount__43733_44268 \x3d G__44311;\ni__43734_44269 \x3d G__44312;\ncontinue;\n} else {\nvar G__44313 \x3d seq__43728_44266;\nvar G__44314 \x3d chunk__43732_44267;\nvar G__44315 \x3d count__43733_44268;\nvar G__44316 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44313;\nchunk__43732_44267 \x3d G__44314;\ncount__43733_44268 \x3d G__44315;\ni__43734_44269 \x3d G__44316;\ncontinue;\n}\n} else {\nvar G__44317 \x3d seq__43728_44266;\nvar G__44318 \x3d chunk__43732_44267;\nvar G__44319 \x3d count__43733_44268;\nvar G__44320 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44317;\nchunk__43732_44267 \x3d G__44318;\ncount__43733_44268 \x3d G__44319;\ni__43734_44269 \x3d G__44320;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44321 \x3d cljs.core.seq(seq__43728_44266);\nif(temp__5825__auto___44321){\nvar seq__43728_44322__$1 \x3d temp__5825__auto___44321;\nif(cljs.core.chunked_seq_QMARK_(seq__43728_44322__$1)){\nvar c__5548__auto___44323 \x3d cljs.core.chunk_first(seq__43728_44322__$1);\nvar G__44324 \x3d cljs.core.chunk_rest(seq__43728_44322__$1);\nvar G__44325 \x3d c__5548__auto___44323;\nvar G__44326 \x3d cljs.core.count(c__5548__auto___44323);\nvar G__44327 \x3d (0);\nseq__43728_44266 \x3d G__44324;\nchunk__43732_44267 \x3d G__44325;\ncount__43733_44268 \x3d G__44326;\ni__43734_44269 \x3d G__44327;\ncontinue;\n} else {\nvar node_44328 \x3d cljs.core.first(seq__43728_44322__$1);\nif(cljs.core.not(node_44328.shadow$old)){\nvar path_match_44329 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44328.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44329)){\nvar new_link_44331 \x3d (function (){var G__43844 \x3d node_44328.cloneNode(true);\nG__43844.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44329),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43844;\n})();\n(node_44328.shadow$old \x3d true);\n\n(new_link_44331.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43849_44332 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43851_44333 \x3d null;\nvar count__43852_44334 \x3d (0);\nvar i__43853_44335 \x3d (0);\nwhile(true){\nif((i__43853_44335 \x3c count__43852_44334)){\nvar map__43869_44336 \x3d chunk__43851_44333.cljs$core$IIndexed$_nth$arity$2(null,i__43853_44335);\nvar map__43869_44337__$1 \x3d cljs.core.__destructure_map(map__43869_44336);\nvar task_44338 \x3d map__43869_44337__$1;\nvar fn_str_44339 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44340 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44341 \x3d goog.getObjectByName(fn_str_44339,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44340)].join(\x27\x27));\n\n(fn_obj_44341.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44341.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44341.call(null,path,new_link_44331));\n\n\nvar G__44344 \x3d seq__43849_44332;\nvar G__44345 \x3d chunk__43851_44333;\nvar G__44346 \x3d count__43852_44334;\nvar G__44347 \x3d (i__43853_44335 + (1));\nseq__43849_44332 \x3d G__44344;\nchunk__43851_44333 \x3d G__44345;\ncount__43852_44334 \x3d G__44346;\ni__43853_44335 \x3d G__44347;\ncontinue;\n} else {\nvar temp__5825__auto___44348__$1 \x3d cljs.core.seq(seq__43849_44332);\nif(temp__5825__auto___44348__$1){\nvar seq__43849_44349__$1 \x3d temp__5825__auto___44348__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43849_44349__$1)){\nvar c__5548__auto___44352 \x3d cljs.core.chunk_first(seq__43849_44349__$1);\nvar G__44353 \x3d cljs.core.chunk_rest(seq__43849_44349__$1);\nvar G__44354 \x3d c__5548__auto___44352;\nvar G__44355 \x3d cljs.core.count(c__5548__auto___44352);\nvar G__44356 \x3d (0);\nseq__43849_44332 \x3d G__44353;\nchunk__43851_44333 \x3d G__44354;\ncount__43852_44334 \x3d G__44355;\ni__43853_44335 \x3d G__44356;\ncontinue;\n} else {\nvar map__43872_44357 \x3d cljs.core.first(seq__43849_44349__$1);\nvar map__43872_44358__$1 \x3d cljs.core.__destructure_map(map__43872_44357);\nvar task_44359 \x3d map__43872_44358__$1;\nvar fn_str_44360 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44361 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44362 \x3d goog.getObjectByName(fn_str_44360,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44361)].join(\x27\x27));\n\n(fn_obj_44362.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44362.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44362.call(null,path,new_link_44331));\n\n\nvar G__44363 \x3d cljs.core.next(seq__43849_44349__$1);\nvar G__44364 \x3d null;\nvar G__44365 \x3d (0);\nvar G__44366 \x3d (0);\nseq__43849_44332 \x3d G__44363;\nchunk__43851_44333 \x3d G__44364;\ncount__43852_44334 \x3d G__44365;\ni__43853_44335 \x3d G__44366;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44328);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44329], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44331,node_44328);\n\n\nvar G__44367 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44368 \x3d null;\nvar G__44369 \x3d (0);\nvar G__44370 \x3d (0);\nseq__43728_44266 \x3d G__44367;\nchunk__43732_44267 \x3d G__44368;\ncount__43733_44268 \x3d G__44369;\ni__43734_44269 \x3d G__44370;\ncontinue;\n} else {\nvar G__44371 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44372 \x3d null;\nvar G__44373 \x3d (0);\nvar G__44374 \x3d (0);\nseq__43728_44266 \x3d G__44371;\nchunk__43732_44267 \x3d G__44372;\ncount__43733_44268 \x3d G__44373;\ni__43734_44269 \x3d G__44374;\ncontinue;\n}\n} else {\nvar G__44375 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44376 \x3d null;\nvar G__44377 \x3d (0);\nvar G__44378 \x3d (0);\nseq__43728_44266 \x3d G__44375;\nchunk__43732_44267 \x3d G__44376;\ncount__43733_44268 \x3d G__44377;\ni__43734_44269 \x3d G__44378;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44379 \x3d seq__43446;\nvar G__44380 \x3d chunk__43448;\nvar G__44381 \x3d count__43449;\nvar G__44382 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44379;\nchunk__43448 \x3d G__44380;\ncount__43449 \x3d G__44381;\ni__43450 \x3d G__44382;\ncontinue;\n} else {\nvar G__44383 \x3d seq__43446;\nvar G__44384 \x3d chunk__43448;\nvar G__44385 \x3d count__43449;\nvar G__44386 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44383;\nchunk__43448 \x3d G__44384;\ncount__43449 \x3d G__44385;\ni__43450 \x3d G__44386;\ncontinue;\n}\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43446);\nif(temp__5825__auto__){\nvar seq__43446__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43446__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43446__$1);\nvar G__44387 \x3d cljs.core.chunk_rest(seq__43446__$1);\nvar G__44388 \x3d c__5548__auto__;\nvar G__44389 \x3d cljs.core.count(c__5548__auto__);\nvar G__44390 \x3d (0);\nseq__43446 \x3d G__44387;\nchunk__43448 \x3d G__44388;\ncount__43449 \x3d G__44389;\ni__43450 \x3d G__44390;\ncontinue;\n} else {\nvar path \x3d cljs.core.first(seq__43446__$1);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43880_44393 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43884_44394 \x3d null;\nvar count__43885_44395 \x3d (0);\nvar i__43886_44396 \x3d (0);\nwhile(true){\nif((i__43886_44396 \x3c count__43885_44395)){\nvar node_44397 \x3d chunk__43884_44394.cljs$core$IIndexed$_nth$arity$2(null,i__43886_44396);\nif(cljs.core.not(node_44397.shadow$old)){\nvar path_match_44398 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44397.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44398)){\nvar new_link_44399 \x3d (function (){var G__43984 \x3d node_44397.cloneNode(true);\nG__43984.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44398),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43984;\n})();\n(node_44397.shadow$old \x3d true);\n\n(new_link_44399.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43987_44401 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43989_44402 \x3d null;\nvar count__43990_44403 \x3d (0);\nvar i__43991_44404 \x3d (0);\nwhile(true){\nif((i__43991_44404 \x3c count__43990_44403)){\nvar map__44007_44406 \x3d chunk__43989_44402.cljs$core$IIndexed$_nth$arity$2(null,i__43991_44404);\nvar map__44007_44407__$1 \x3d cljs.core.__destructure_map(map__44007_44406);\nvar task_44408 \x3d map__44007_44407__$1;\nvar fn_str_44409 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44410 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44411 \x3d goog.getObjectByName(fn_str_44409,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44410)].join(\x27\x27));\n\n(fn_obj_44411.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44411.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44411.call(null,path,new_link_44399));\n\n\nvar G__44413 \x3d seq__43987_44401;\nvar G__44414 \x3d chunk__43989_44402;\nvar G__44415 \x3d count__43990_44403;\nvar G__44416 \x3d (i__43991_44404 + (1));\nseq__43987_44401 \x3d G__44413;\nchunk__43989_44402 \x3d G__44414;\ncount__43990_44403 \x3d G__44415;\ni__43991_44404 \x3d G__44416;\ncontinue;\n} else {\nvar temp__5825__auto___44417__$1 \x3d cljs.core.seq(seq__43987_44401);\nif(temp__5825__auto___44417__$1){\nvar seq__43987_44418__$1 \x3d temp__5825__auto___44417__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43987_44418__$1)){\nvar c__5548__auto___44419 \x3d cljs.core.chunk_first(seq__43987_44418__$1);\nvar G__44420 \x3d cljs.core.chunk_rest(seq__43987_44418__$1);\nvar G__44421 \x3d c__5548__auto___44419;\nvar G__44422 \x3d cljs.core.count(c__5548__auto___44419);\nvar G__44423 \x3d (0);\nseq__43987_44401 \x3d G__44420;\nchunk__43989_44402 \x3d G__44421;\ncount__43990_44403 \x3d G__44422;\ni__43991_44404 \x3d G__44423;\ncontinue;\n} else {\nvar map__44014_44424 \x3d cljs.core.first(seq__43987_44418__$1);\nvar map__44014_44425__$1 \x3d cljs.core.__destructure_map(map__44014_44424);\nvar task_44426 \x3d map__44014_44425__$1;\nvar fn_str_44427 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44428 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44430 \x3d goog.getObjectByName(fn_str_44427,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44428)].join(\x27\x27));\n\n(fn_obj_44430.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44430.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44430.call(null,path,new_link_44399));\n\n\nvar G__44431 \x3d cljs.core.next(seq__43987_44418__$1);\nvar G__44432 \x3d null;\nvar G__44433 \x3d (0);\nvar G__44434 \x3d (0);\nseq__43987_44401 \x3d G__44431;\nchunk__43989_44402 \x3d G__44432;\ncount__43990_44403 \x3d G__44433;\ni__43991_44404 \x3d G__44434;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44397);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44398], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44399,node_44397);\n\n\nvar G__44436 \x3d seq__43880_44393;\nvar G__44437 \x3d chunk__43884_44394;\nvar G__44438 \x3d count__43885_44395;\nvar G__44439 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44436;\nchunk__43884_44394 \x3d G__44437;\ncount__43885_44395 \x3d G__44438;\ni__43886_44396 \x3d G__44439;\ncontinue;\n} else {\nvar G__44440 \x3d seq__43880_44393;\nvar G__44441 \x3d chunk__43884_44394;\nvar G__44442 \x3d count__43885_44395;\nvar G__44443 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44440;\nchunk__43884_44394 \x3d G__44441;\ncount__43885_44395 \x3d G__44442;\ni__43886_44396 \x3d G__44443;\ncontinue;\n}\n} else {\nvar G__44444 \x3d seq__43880_44393;\nvar G__44445 \x3d chunk__43884_44394;\nvar G__44446 \x3d count__43885_44395;\nvar G__44447 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44444;\nchunk__43884_44394 \x3d G__44445;\ncount__43885_44395 \x3d G__44446;\ni__43886_44396 \x3d G__44447;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44448__$1 \x3d cljs.core.seq(seq__43880_44393);\nif(temp__5825__auto___44448__$1){\nvar seq__43880_44449__$1 \x3d temp__5825__auto___44448__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43880_44449__$1)){\nvar c__5548__auto___44450 \x3d cljs.core.chunk_first(seq__43880_44449__$1);\nvar G__44451 \x3d cljs.core.chunk_rest(seq__43880_44449__$1);\nvar G__44452 \x3d c__5548__auto___44450;\nvar G__44453 \x3d cljs.core.count(c__5548__auto___44450);\nvar G__44454 \x3d (0);\nseq__43880_44393 \x3d G__44451;\nchunk__43884_44394 \x3d G__44452;\ncount__43885_44395 \x3d G__44453;\ni__43886_44396 \x3d G__44454;\ncontinue;\n} else {\nvar node_44456 \x3d cljs.core.first(seq__43880_44449__$1);\nif(cljs.core.not(node_44456.shadow$old)){\nvar path_match_44457 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44456.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44457)){\nvar new_link_44458 \x3d (function (){var G__44034 \x3d node_44456.cloneNode(true);\nG__44034.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44457),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__44034;\n})();\n(node_44456.shadow$old \x3d true);\n\n(new_link_44458.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__44038_44460 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__44040_44461 \x3d null;\nvar count__44041_44462 \x3d (0);\nvar i__44042_44463 \x3d (0);\nwhile(true){\nif((i__44042_44463 \x3c count__44041_44462)){\nvar map__44059_44464 \x3d chunk__44040_44461.cljs$core$IIndexed$_nth$arity$2(null,i__44042_44463);\nvar map__44059_44465__$1 \x3d cljs.core.__destructure_map(map__44059_44464);\nvar task_44466 \x3d map__44059_44465__$1;\nvar fn_str_44467 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44468 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44470 \x3d goog.getObjectByName(fn_str_44467,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44468)].join(\x27\x27));\n\n(fn_obj_44470.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44470.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44470.call(null,path,new_link_44458));\n\n\nvar G__44471 \x3d seq__44038_44460;\nvar G__44472 \x3d chunk__44040_44461;\nvar G__44473 \x3d count__44041_44462;\nvar G__44474 \x3d (i__44042_44463 + (1));\nseq__44038_44460 \x3d G__44471;\nchunk__44040_44461 \x3d G__44472;\ncount__44041_44462 \x3d G__44473;\ni__44042_44463 \x3d G__44474;\ncontinue;\n} else {\nvar temp__5825__auto___44475__$2 \x3d cljs.core.seq(seq__44038_44460);\nif(temp__5825__auto___44475__$2){\nvar seq__44038_44477__$1 \x3d temp__5825__auto___44475__$2;\nif(cljs.core.chunked_seq_QMARK_(seq__44038_44477__$1)){\nvar c__5548__auto___44478 \x3d cljs.core.chunk_first(seq__44038_44477__$1);\nvar G__44479 \x3d cljs.core.chunk_rest(seq__44038_44477__$1);\nvar G__44480 \x3d c__5548__auto___44478;\nvar G__44481 \x3d cljs.core.count(c__5548__auto___44478);\nvar G__44482 \x3d (0);\nseq__44038_44460 \x3d G__44479;\nchunk__44040_44461 \x3d G__44480;\ncount__44041_44462 \x3d G__44481;\ni__44042_44463 \x3d G__44482;\ncontinue;\n} else {\nvar map__44066_44483 \x3d cljs.core.first(seq__44038_44477__$1);\nvar map__44066_44484__$1 \x3d cljs.core.__destructure_map(map__44066_44483);\nvar task_44485 \x3d map__44066_44484__$1;\nvar fn_str_44486 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44487 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44488 \x3d goog.getObjectByName(fn_str_44486,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44487)].join(\x27\x27));\n\n(fn_obj_44488.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44488.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44488.call(null,path,new_link_44458));\n\n\nvar G__44489 \x3d cljs.core.next(seq__44038_44477__$1);\nvar G__44490 \x3d null;\nvar G__44491 \x3d (0);\nvar G__44492 \x3d (0);\nseq__44038_44460 \x3d G__44489;\nchunk__44040_44461 \x3d G__44490;\ncount__44041_44462 \x3d G__44491;\ni__44042_44463 \x3d G__44492;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44456);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44457], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44458,node_44456);\n\n\nvar G__44494 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44495 \x3d null;\nvar G__44496 \x3d (0);\nvar G__44497 \x3d (0);\nseq__43880_44393 \x3d G__44494;\nchunk__43884_44394 \x3d G__44495;\ncount__43885_44395 \x3d G__44496;\ni__43886_44396 \x3d G__44497;\ncontinue;\n} else {\nvar G__44498 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44499 \x3d null;\nvar G__44500 \x3d (0);\nvar G__44501 \x3d (0);\nseq__43880_44393 \x3d G__44498;\nchunk__43884_44394 \x3d G__44499;\ncount__43885_44395 \x3d G__44500;\ni__43886_44396 \x3d G__44501;\ncontinue;\n}\n} else {\nvar G__44502 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44503 \x3d null;\nvar G__44504 \x3d (0);\nvar G__44505 \x3d (0);\nseq__43880_44393 \x3d G__44502;\nchunk__43884_44394 \x3d G__44503;\ncount__43885_44395 \x3d G__44504;\ni__43886_44396 \x3d G__44505;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44506 \x3d cljs.core.next(seq__43446__$1);\nvar G__44507 \x3d null;\nvar G__44508 \x3d (0);\nvar G__44509 \x3d (0);\nseq__43446 \x3d G__44506;\nchunk__43448 \x3d G__44507;\ncount__43449 \x3d G__44508;\ni__43450 \x3d G__44509;\ncontinue;\n} else {\nvar G__44510 \x3d cljs.core.next(seq__43446__$1);\nvar G__44511 \x3d null;\nvar G__44512 \x3d (0);\nvar G__44513 \x3d (0);\nseq__43446 \x3d G__44510;\nchunk__43448 \x3d G__44511;\ncount__43449 \x3d G__44512;\ni__43450 \x3d G__44513;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.global_eval \x3d (function shadow$cljs$devtools$client$browser$global_eval(js){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(\x22undefined\x22,typeof(module))){\nreturn eval(js);\n} else {\nreturn (0,eval)(js);;\n}\n});\nshadow.cljs.devtools.client.browser.runtime_info \x3d (((typeof SHADOW_CONFIG !\x3d\x3d \x27undefined\x27))?shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1(SHADOW_CONFIG):null);\nshadow.cljs.devtools.client.browser.client_info \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.cljs.devtools.client.browser.runtime_info,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),(cljs.core.truth_(goog.global.document)?new cljs.core.Keyword(null,\x22browser\x22,\x22browser\x22,828191719):new cljs.core.Keyword(null,\x22browser-worker\x22,\x22browser-worker\x22,1638998282)),new cljs.core.Keyword(null,\x22user-agent\x22,\x22user-agent\x22,1220426212),[(cljs.core.truth_(goog.userAgent.OPERA)?\x22Opera\x22:(cljs.core.truth_(goog.userAgent.product.CHROME)?\x22Chrome\x22:(cljs.core.truth_(goog.userAgent.IE)?\x22MSIE\x22:(cljs.core.truth_(goog.userAgent.EDGE)?\x22Edge\x22:(cljs.core.truth_(goog.userAgent.GECKO)?\x22Firefox\x22:(cljs.core.truth_(goog.userAgent.SAFARI)?\x22Safari\x22:(cljs.core.truth_(goog.userAgent.WEBKIT)?\x22Webkit\x22:null))))))),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.VERSION),\x22 [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.PLATFORM),\x22]\x22].join(\x27\x27),new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922),(!((goog.global.document \x3d\x3d null)))], null)], 0));\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser.ws_was_welcome_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.browser.ws_was_welcome_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\n}\nif(((shadow.cljs.devtools.client.env.enabled) \x26\x26 ((shadow.cljs.devtools.client.env.worker_client_id \x3e (0))))){\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$4 \x3d (function (this$,code,success,fail){\nvar this$__$1 \x3d this;\ntry{var G__44103 \x3d shadow.cljs.devtools.client.browser.global_eval(code);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44103) : success.call(null,G__44103));\n}catch (e44100){var e \x3d e44100;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$5 \x3d (function (this$,ns,p__44106,success,fail){\nvar map__44109 \x3d p__44106;\nvar map__44109__$1 \x3d cljs.core.__destructure_map(map__44109);\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44109__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\nvar this$__$1 \x3d this;\ntry{var G__44112 \x3d shadow.cljs.devtools.client.browser.global_eval(js);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44112) : success.call(null,G__44112));\n}catch (e44111){var e \x3d e44111;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4 \x3d (function (runtime,p__44113,done,error){\nvar map__44115 \x3d p__44113;\nvar map__44115__$1 \x3d cljs.core.__destructure_map(map__44115);\nvar repl_sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44115__$1,new cljs.core.Keyword(null,\x22repl-sources\x22,\x22repl-sources\x22,723867535));\nvar runtime__$1 \x3d this;\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime__$1,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_,repl_sources)),(function (sources){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (done.cljs$core$IFn$_invoke$arity$0 ? done.cljs$core$IFn$_invoke$arity$0() : done.call(null));\n}));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4 \x3d (function (runtime,p__44121,done,error){\nvar map__44122 \x3d p__44121;\nvar map__44122__$1 \x3d cljs.core.__destructure_map(map__44122);\nvar msg \x3d map__44122__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar reload_namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22reload-namespaces\x22,\x22reload-namespaces\x22,250210134));\nvar js_requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22js-requires\x22,\x22js-requires\x22,-1311472051));\nvar runtime__$1 \x3d this;\nvar sources_to_load \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__44123){\nvar map__44124 \x3d p__44123;\nvar map__44124__$1 \x3d cljs.core.__destructure_map(map__44124);\nvar src \x3d map__44124__$1;\nvar provides \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44124__$1,new cljs.core.Keyword(null,\x22provides\x22,\x22provides\x22,-1634397992));\nvar and__5023__auto__ \x3d shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.core.some(reload_namespaces,provides));\n} else {\nreturn and__5023__auto__;\n}\n}),sources));\nif(cljs.core.not(cljs.core.seq(sources_to_load))){\nvar G__44126 \x3d cljs.core.PersistentVector.EMPTY;\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(G__44126) : done.call(null,G__44126));\n} else {\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-load-sources\x22,\x22cljs-load-sources\x22,-1458295962),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582)),sources_to_load)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cljs-sources\x22,\x22cljs-sources\x22,31121610),(function (p__44130){\nvar map__44131 \x3d p__44130;\nvar map__44131__$1 \x3d cljs.core.__destructure_map(map__44131);\nvar msg__$1 \x3d map__44131__$1;\nvar sources__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44131__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\ntry{shadow.cljs.devtools.client.browser.do_js_load(sources__$1);\n\nif(cljs.core.seq(js_requires)){\nshadow.cljs.devtools.client.browser.do_js_requires(js_requires);\n} else {\n}\n\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(sources_to_load) : done.call(null,sources_to_load));\n}catch (e44132){var ex \x3d e44132;\nreturn (error.cljs$core$IFn$_invoke$arity$1 ? error.cljs$core$IFn$_invoke$arity$1(ex) : error.call(null,ex));\n}})], null));\n}\n}));\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),cljs.core.PersistentHashSet.EMPTY,(function (p__44134){\nvar map__44136 \x3d p__44134;\nvar map__44136__$1 \x3d cljs.core.__destructure_map(map__44136);\nvar env \x3d map__44136__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44136__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125),(function (){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,true);\n\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.env.patch_goog_BANG_();\n\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime)))),\x22 ready!\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22on-disconnect\x22,\x22on-disconnect\x22,-809021814),(function (e){\nif(cljs.core.truth_(cljs.core.deref(shadow.cljs.devtools.client.browser.ws_was_welcome_ref))){\nshadow.cljs.devtools.client.hud.connection_error(\x22The Websocket connection was closed!\x22);\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n} else {\nreturn null;\n}\n}),new cljs.core.Keyword(null,\x22on-reconnect\x22,\x22on-reconnect\x22,1239988702),(function (e){\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22Reconnecting ...\x22);\n}),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22access-denied\x22,\x22access-denied\x22,959449406),(function (msg){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22Stale Output! Your loaded JS was not produced by the running shadow-cljs instance.\x22,\x22 Is the watch for this build running?\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22cljs-asset-update\x22,\x22cljs-asset-update\x22,1224093028),(function (msg){\nreturn shadow.cljs.devtools.client.browser.handle_asset_update(msg);\n}),new cljs.core.Keyword(null,\x22cljs-build-configure\x22,\x22cljs-build-configure\x22,-2089891268),(function (msg){\nreturn null;\n}),new cljs.core.Keyword(null,\x22cljs-build-start\x22,\x22cljs-build-start\x22,-725781241),(function (msg){\nshadow.cljs.devtools.client.hud.hud_hide();\n\nshadow.cljs.devtools.client.hud.load_start();\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-start\x22,\x22build-start\x22,-959649480)));\n}),new cljs.core.Keyword(null,\x22cljs-build-complete\x22,\x22cljs-build-complete\x22,273626153),(function (msg){\nvar msg__$1 \x3d shadow.cljs.devtools.client.env.add_warnings_to_info(msg);\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.hud.hud_warnings(msg__$1);\n\nshadow.cljs.devtools.client.browser.handle_build_complete(runtime,msg__$1);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-complete\x22,\x22build-complete\x22,-501868472)));\n}),new cljs.core.Keyword(null,\x22cljs-build-failure\x22,\x22cljs-build-failure\x22,1718154990),(function (msg){\nshadow.cljs.devtools.client.hud.load_end();\n\nshadow.cljs.devtools.client.hud.hud_error(msg);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-failure\x22,\x22build-failure\x22,-2107487466)));\n}),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.env\x22,\x22worker-notify\x22,\x22shadow.cljs.devtools.client.env/worker-notify\x22,-1456820670),(function (p__44146){\nvar map__44147 \x3d p__44146;\nvar map__44147__$1 \x3d cljs.core.__destructure_map(map__44147);\nvar event_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22event-op\x22,\x22event-op\x22,200358057));\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-disconnect\x22,\x22client-disconnect\x22,640227957),event_op)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(client_id,shadow.cljs.devtools.client.env.worker_client_id)))){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was stopped!\x22);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-connect\x22,\x22client-connect\x22,-1113973888),event_op)){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was restarted. Reload required!\x22);\n} else {\nreturn null;\n}\n}\n})], null)], null));\n\nreturn svc;\n}),(function (p__44149){\nvar map__44150 \x3d p__44149;\nvar map__44150__$1 \x3d cljs.core.__destructure_map(map__44150);\nvar svc \x3d map__44150__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44150__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282));\n}));\n\nshadow.cljs.devtools.client.shared.init_runtime_BANG_(shadow.cljs.devtools.client.browser.client_info,shadow.cljs.devtools.client.websocket.start,shadow.cljs.devtools.client.websocket.send,shadow.cljs.devtools.client.websocket.stop);\n} else {\n}\n"); +SHADOW_ENV.evalLoad("intemporal.internal.error.js", true, "goog.provide(\x27intemporal.internal.error\x27);\n/**\n * Internal exception constructor, subclasses error to prevent userland code to caught this\n * exception in `(try ... (catch Exception e))` blocks\n */\nintemporal.internal.error.internal_error \x3d (function intemporal$internal$error$internal_error(var_args){\nvar G__28274 \x3d arguments.length;\nswitch (G__28274) {\ncase 2:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (message,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3(message,data,null);\n}));\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (message,data,cause){\nvar err \x3d (new Error(message));\n(err.data \x3d data);\n\n(err.cause \x3d cause);\n\nreturn err;\n}));\n\n(intemporal.internal.error.internal_error.cljs$lang$maxFixedArity \x3d 3);\n\nintemporal.internal.error.make_suspension \x3d (function intemporal$internal$error$make_suspension(type,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow suspended\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data,new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802),true], null));\n});\nintemporal.internal.error.suspension_QMARK_ \x3d (function intemporal$internal$error$suspension_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.interruption_QMARK_ \x3d (function intemporal$internal$error$interruption_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.rejection_QMARK_ \x3d (function intemporal$internal$error$rejection_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.suspension_type \x3d (function intemporal$internal$error$suspension_type(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.suspension_data \x3d (function intemporal$internal$error$suspension_data(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.workflow_cancelled_exception \x3d (function intemporal$internal$error$workflow_cancelled_exception(){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow cancelled\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358),true], null));\n});\nintemporal.internal.error.cancelled_exception_QMARK_ \x3d (function intemporal$internal$error$cancelled_exception_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.activity_rejected_exception \x3d (function intemporal$internal$error$activity_rejected_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Execution rejected\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_timeout_exception \x3d (function intemporal$internal$error$activity_timeout_exception(activity_name,timeout_ms){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity timed out\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-timeout\x22,\x22intemporal.internal.error/activity-timeout\x22,937937544),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms], null));\n});\nintemporal.internal.error.activity_interrupted_exception \x3d (function intemporal$internal$error$activity_interrupted_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity interrupted\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_failed_exception \x3d (function intemporal$internal$error$activity_failed_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(\x22Activity failed\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-failed\x22,\x22intemporal.internal.error/activity-failed\x22,1878780601),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null),cause);\n});\nintemporal.internal.error.async_failed_exception \x3d (function intemporal$internal$error$async_failed_exception(handle_seq,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Async operation failed\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22async-failed\x22,\x22intemporal.internal.error/async-failed\x22,-1692942380),true,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause], null));\n});\nintemporal.internal.error.throwable__GT_map \x3d (function intemporal$internal$error$throwable__GT_map(t){\nif(cljs.core.truth_(t)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(t)),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),t.message,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),(function (){var or__5025__auto__ \x3d t.data;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.ex_data(t);\n}\n})(),new cljs.core.Keyword(null,\x22stack-trace\x22,\x22stack-trace\x22,-1998072032),(cljs.core.truth_(t.stack)?clojure.string.split_lines(t.stack):null),new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),(cljs.core.truth_(t.cause)?(function (){var G__28443 \x3d t.cause;\nreturn (intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1 ? intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1(G__28443) : intemporal.internal.error.throwable__GT_map.call(null,G__28443));\n})():null)], null);\n} else {\nreturn null;\n}\n});\nintemporal.internal.error.map__GT_exception \x3d (function intemporal$internal$error$map__GT_exception(m){\nif(cljs.core.truth_(m)){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22Restored exception\x22;\n}\n})(),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22restored\x22,\x22restored\x22,1134950922),true], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(m)], 0)));\n} else {\nreturn null;\n}\n});\n"); +SHADOW_ENV.evalLoad("intemporal.protocol.js", true, "goog.provide(\x27intemporal.protocol\x27);\n\n/**\n * Protocol for workflow persistence\n * @interface\n */\nintemporal.protocol.IStore \x3d function(){};\n\nvar intemporal$protocol$IStore$load_history$dyn_28683 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.load_history[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.load_history[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.load-history\x22,store);\n}\n}\n});\n/**\n * Load history for a workflow\n */\nintemporal.protocol.load_history \x3d (function intemporal$protocol$load_history(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$load_history$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$load_history$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$load_history$dyn_28683(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$save_event$dyn_28684 \x3d (function (store,workflow_id,event){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5374__auto__.call(null,store,workflow_id,event));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5372__auto__.call(null,store,workflow_id,event));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-event\x22,store);\n}\n}\n});\n/**\n * Append an event to workflow history\n */\nintemporal.protocol.save_event \x3d (function intemporal$protocol$save_event(store,workflow_id,event){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_event$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_event$arity$3(store,workflow_id,event);\n} else {\nreturn intemporal$protocol$IStore$save_event$dyn_28684(store,workflow_id,event);\n}\n});\n\nvar intemporal$protocol$IStore$save_events$dyn_28690 \x3d (function (store,workflow_id,events){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5374__auto__.call(null,store,workflow_id,events));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5372__auto__.call(null,store,workflow_id,events));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-events\x22,store);\n}\n}\n});\n/**\n * Append multiple events atomically\n */\nintemporal.protocol.save_events \x3d (function intemporal$protocol$save_events(store,workflow_id,events){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_events$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_events$arity$3(store,workflow_id,events);\n} else {\nreturn intemporal$protocol$IStore$save_events$dyn_28690(store,workflow_id,events);\n}\n});\n\nvar intemporal$protocol$IStore$find_event$dyn_28694 \x3d (function (store,workflow_id,event_type,seq_num){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.find_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5374__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.find_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5372__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.find-event\x22,store);\n}\n}\n});\n/**\n * Finds the given event type by its sequence number\n */\nintemporal.protocol.find_event \x3d (function intemporal$protocol$find_event(store,workflow_id,event_type,seq_num){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$find_event$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$find_event$arity$4(store,workflow_id,event_type,seq_num);\n} else {\nreturn intemporal$protocol$IStore$find_event$dyn_28694(store,workflow_id,event_type,seq_num);\n}\n});\n\nvar intemporal$protocol$IStore$get_pending_signals$dyn_28700 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_pending_signals[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_pending_signals[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-pending-signals\x22,store);\n}\n}\n});\n/**\n * Get pending signals for workflow\n */\nintemporal.protocol.get_pending_signals \x3d (function intemporal$protocol$get_pending_signals(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_pending_signals$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_pending_signals$dyn_28700(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$add_signal$dyn_28707 \x3d (function (store,workflow_id,signal_name,signal_data){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.add_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5374__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.add_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5372__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.add-signal\x22,store);\n}\n}\n});\n/**\n * Add a signal to workflow\n */\nintemporal.protocol.add_signal \x3d (function intemporal$protocol$add_signal(store,workflow_id,signal_name,signal_data){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$add_signal$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$add_signal$arity$4(store,workflow_id,signal_name,signal_data);\n} else {\nreturn intemporal$protocol$IStore$add_signal$dyn_28707(store,workflow_id,signal_name,signal_data);\n}\n});\n\nvar intemporal$protocol$IStore$consume_signal$dyn_28709 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.consume_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.consume_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.consume-signal\x22,store);\n}\n}\n});\n/**\n * Consume and remove a signal\n */\nintemporal.protocol.consume_signal \x3d (function intemporal$protocol$consume_signal(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$consume_signal$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$consume_signal$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$consume_signal$dyn_28709(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$register_signal_callback$dyn_28714 \x3d (function (store,workflow_id,signal_name,callback){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.register_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5374__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.register_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5372__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.register-signal-callback\x22,store);\n}\n}\n});\n/**\n * Register callback to be invoked when signal arrives\n */\nintemporal.protocol.register_signal_callback \x3d (function intemporal$protocol$register_signal_callback(store,workflow_id,signal_name,callback){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$register_signal_callback$arity$4(store,workflow_id,signal_name,callback);\n} else {\nreturn intemporal$protocol$IStore$register_signal_callback$dyn_28714(store,workflow_id,signal_name,callback);\n}\n});\n\nvar intemporal$protocol$IStore$unregister_signal_callback$dyn_28716 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.unregister_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.unregister_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.unregister-signal-callback\x22,store);\n}\n}\n});\n/**\n * Unregister signal callback\n */\nintemporal.protocol.unregister_signal_callback \x3d (function intemporal$protocol$unregister_signal_callback(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$unregister_signal_callback$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$unregister_signal_callback$dyn_28716(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.is-cancelled?\x22,store);\n}\n}\n});\n/**\n * Check if workflow is cancelled\n */\nintemporal.protocol.is_cancelled_QMARK_ \x3d (function intemporal$protocol$is_cancelled_QMARK_(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$mark_cancelled$dyn_28718 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.mark_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.mark_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.mark-cancelled\x22,store);\n}\n}\n});\n/**\n * Mark workflow as cancelled\n */\nintemporal.protocol.mark_cancelled \x3d (function intemporal$protocol$mark_cancelled(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$mark_cancelled$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$mark_cancelled$dyn_28718(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$get_workflow_status$dyn_28720 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_workflow_status[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_workflow_status[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-workflow-status\x22,store);\n}\n}\n});\n/**\n * Get current workflow status\n */\nintemporal.protocol.get_workflow_status \x3d (function intemporal$protocol$get_workflow_status(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_workflow_status$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_workflow_status$dyn_28720(store,workflow_id);\n}\n});\n\n\n/**\n * Protocol for executing activities\n * @interface\n */\nintemporal.protocol.IActivityExecutor \x3d function(){};\n\nvar intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721 \x3d (function (executor,activity_name,args,timeout_ms){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activity[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5374__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activity[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5372__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activity\x22,executor);\n}\n}\n});\n/**\n * Execute an activity with given args and timeout\n */\nintemporal.protocol.execute_activity \x3d (function intemporal$protocol$execute_activity(executor,activity_name,args,timeout_ms){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4(executor,activity_name,args,timeout_ms);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721(executor,activity_name,args,timeout_ms);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729 \x3d (function (executor,activities){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activities_parallel[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5374__auto__.call(null,executor,activities));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activities_parallel[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5372__auto__.call(null,executor,activities));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activities-parallel\x22,executor);\n}\n}\n});\n/**\n * Execute multiple activities in parallel, returns seq of results in same order\n */\nintemporal.protocol.execute_activities_parallel \x3d (function intemporal$protocol$execute_activities_parallel(executor,activities){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2(executor,activities);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729(executor,activities);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732 \x3d (function (executor,grace_period_secs){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_executor[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5374__auto__.call(null,executor,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_executor[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5372__auto__.call(null,executor,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown-executor\x22,executor);\n}\n}\n});\n/**\n * Shutdown the executor and release resources\n */\nintemporal.protocol.shutdown_executor \x3d (function intemporal$protocol$shutdown_executor(executor,grace_period_secs){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2(executor,grace_period_secs);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732(executor,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_QMARK_ \x3d (function intemporal$protocol$shutdown_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734(executor);\n}\n});\n\n\n/**\n * Protocol for scheduling timers\n * @interface\n */\nintemporal.protocol.IScheduler \x3d function(){};\n\nvar intemporal$protocol$IScheduler$schedule_timer$dyn_28736 \x3d (function (scheduler,workflow_id,seq_num,fire_at,callback){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.schedule_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.schedule_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.schedule-timer\x22,scheduler);\n}\n}\n});\n/**\n * Schedule a timer to fire at given time, calls callback when ready\n */\nintemporal.protocol.schedule_timer \x3d (function intemporal$protocol$schedule_timer(scheduler,workflow_id,seq_num,fire_at,callback){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5(scheduler,workflow_id,seq_num,fire_at,callback);\n} else {\nreturn intemporal$protocol$IScheduler$schedule_timer$dyn_28736(scheduler,workflow_id,seq_num,fire_at,callback);\n}\n});\n\nvar intemporal$protocol$IScheduler$cancel_timer$dyn_28741 \x3d (function (scheduler,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.cancel_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.cancel_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.cancel-timer\x22,scheduler);\n}\n}\n});\n/**\n * Cancel a scheduled timer\n */\nintemporal.protocol.cancel_timer \x3d (function intemporal$protocol$cancel_timer(scheduler,workflow_id,seq_num){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3(scheduler,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IScheduler$cancel_timer$dyn_28741(scheduler,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755 \x3d (function (scheduler,grace_period_secs){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5374__auto__.call(null,scheduler,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5372__auto__.call(null,scheduler,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler\x22,scheduler);\n}\n}\n});\n/**\n * Shutdown the scheduler\n */\nintemporal.protocol.shutdown_scheduler \x3d (function intemporal$protocol$shutdown_scheduler(scheduler,grace_period_secs){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2(scheduler,grace_period_secs);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755(scheduler,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_scheduler_QMARK_ \x3d (function intemporal$protocol$shutdown_scheduler_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766(executor);\n}\n});\n\n\n/**\n * Protocol for observing workflow execution\n * @interface\n */\nintemporal.protocol.IWorkflowObserver \x3d function(){};\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769 \x3d (function (observer,workflow_id,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5374__auto__.call(null,observer,workflow_id,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5372__auto__.call(null,observer,workflow_id,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_started \x3d (function intemporal$protocol$on_workflow_started(observer,workflow_id,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3(observer,workflow_id,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769(observer,workflow_id,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772 \x3d (function (observer,workflow_id,suspension_type){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_suspended[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5374__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_suspended[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5372__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-suspended\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_suspended \x3d (function intemporal$protocol$on_workflow_suspended(observer,workflow_id,suspension_type){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3(observer,workflow_id,suspension_type);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772(observer,workflow_id,suspension_type);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_resumed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_resumed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-resumed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_resumed \x3d (function intemporal$protocol$on_workflow_resumed(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774(observer,workflow_id);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779 \x3d (function (observer,workflow_id,seq_num,activity_name,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_scheduled \x3d (function intemporal$protocol$on_activity_scheduled(observer,workflow_id,seq_num,activity_name,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5(observer,workflow_id,seq_num,activity_name,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779(observer,workflow_id,seq_num,activity_name,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783 \x3d (function (observer,workflow_id,seq_num,activity_name){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_started \x3d (function intemporal$protocol$on_activity_started(observer,workflow_id,seq_num,activity_name){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4(observer,workflow_id,seq_num,activity_name);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783(observer,workflow_id,seq_num,activity_name);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788 \x3d (function (observer,workflow_id,seq_num,activity_name,result,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_completed \x3d (function intemporal$protocol$on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796 \x3d (function (observer,workflow_id,seq_num,activity_name,error,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_failed \x3d (function intemporal$protocol$on_activity_failed(observer,workflow_id,seq_num,activity_name,error,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_started \x3d (function intemporal$protocol$on_async_started(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805 \x3d (function (observer,workflow_id,seq_num,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5374__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5372__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_completed \x3d (function intemporal$protocol$on_async_completed(observer,workflow_id,seq_num,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4(observer,workflow_id,seq_num,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805(observer,workflow_id,seq_num,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812 \x3d (function (observer,workflow_id,seq_num,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5374__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5372__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_failed \x3d (function intemporal$protocol$on_async_failed(observer,workflow_id,seq_num,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4(observer,workflow_id,seq_num,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812(observer,workflow_id,seq_num,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816 \x3d (function (observer,workflow_id,seq_num,fire_at){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5374__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5372__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_scheduled \x3d (function intemporal$protocol$on_timer_scheduled(observer,workflow_id,seq_num,fire_at){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4(observer,workflow_id,seq_num,fire_at);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816(observer,workflow_id,seq_num,fire_at);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_fired[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_fired[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-fired\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_fired \x3d (function intemporal$protocol$on_timer_fired(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827 \x3d (function (observer,workflow_id,signal_name,payload){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_signal_received[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5374__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_signal_received[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5372__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-signal-received\x22,observer);\n}\n}\n});\nintemporal.protocol.on_signal_received \x3d (function intemporal$protocol$on_signal_received(observer,workflow_id,signal_name,payload){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4(observer,workflow_id,signal_name,payload);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827(observer,workflow_id,signal_name,payload);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829 \x3d (function (observer,workflow_id,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5374__auto__.call(null,observer,workflow_id,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5372__auto__.call(null,observer,workflow_id,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_completed \x3d (function intemporal$protocol$on_workflow_completed(observer,workflow_id,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3(observer,workflow_id,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829(observer,workflow_id,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832 \x3d (function (observer,workflow_id,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5374__auto__.call(null,observer,workflow_id,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5372__auto__.call(null,observer,workflow_id,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_failed \x3d (function intemporal$protocol$on_workflow_failed(observer,workflow_id,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3(observer,workflow_id,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832(observer,workflow_id,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-cancelled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_cancelled \x3d (function intemporal$protocol$on_workflow_cancelled(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838(observer,workflow_id);\n}\n});\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__28806 \x3d (_ + (1));\n_ \x3d G__28806;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28731_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28731_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28731_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28818 \x3d arguments.length;\nvar i__5750__auto___28819 \x3d (0);\nwhile(true){\nif((i__5750__auto___28819 \x3c len__5749__auto___28818)){\nargs__5755__auto__.push((arguments[i__5750__auto___28819]));\n\nvar G__28820 \x3d (i__5750__auto___28819 + (1));\ni__5750__auto___28819 \x3d G__28820;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e28780){if((e28780 instanceof Error)){\nvar e \x3d e28780;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e28780;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq28764){\nvar G__28765 \x3d cljs.core.first(seq28764);\nvar seq28764__$1 \x3d cljs.core.next(seq28764);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28765,seq28764__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.activity.js", true, "goog.provide(\x27intemporal.internal.activity\x27);\n/**\n * Get a stable, qualified name string from a function.\n * On JVM: uses var metadata when available, otherwise class name.\n * On CLJS: demangles the JS function .name property (e.g. ns$fn_name -\x3e ns/fn-name).\n */\nintemporal.internal.activity.fn_name \x3d (function intemporal$internal$activity$fn_name(f){\nvar raw \x3d f.name;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d raw;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(clojure.string.blank_QMARK_(raw)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(raw,/\\$/);\nif((cljs.core.count(parts) \x3e (1))){\nvar ns_parts \x3d cljs.core.butlast(parts);\nvar fn_part \x3d cljs.core.last(parts);\nvar ns_str \x3d clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__28265_SHARP_){\nreturn clojure.string.replace(p1__28265_SHARP_,\x22_\x22,\x22-\x22);\n}),ns_parts));\nvar fn_str \x3d clojure.string.replace(fn_part,\x22_\x22,\x22-\x22);\nreturn [ns_str,\x22/\x22,fn_str].join(\x27\x27);\n} else {\nreturn clojure.string.replace(raw,\x22_\x22,\x22-\x22);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22activity-\x22));\n}\n});\n/**\n * Create a new activity registry\n */\nintemporal.internal.activity.make_registry \x3d (function intemporal$internal$activity$make_registry(){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\n/**\n * Register an activity function in a registry\n */\nintemporal.internal.activity.register_activity_BANG_ \x3d (function intemporal$internal$activity$register_activity_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28624 \x3d arguments.length;\nvar i__5750__auto___28625 \x3d (0);\nwhile(true){\nif((i__5750__auto___28625 \x3c len__5749__auto___28624)){\nargs__5755__auto__.push((arguments[i__5750__auto___28625]));\n\nvar G__28626 \x3d (i__5750__auto___28625 + (1));\ni__5750__auto___28625 \x3d G__28626;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (registry,f,p__28346){\nvar map__28347 \x3d p__28346;\nvar map__28347__$1 \x3d cljs.core.__destructure_map(map__28347);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar activity_name \x3d (function (){var or__5025__auto__ \x3d name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.var_QMARK_(f)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f));\n} else {\nreturn intemporal.internal.activity.fn_name(f);\n}\n}\n})();\nvar resolved_fn \x3d ((cljs.core.var_QMARK_(f))?cljs.core.deref(f):f);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(registry,cljs.core.assoc,activity_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),resolved_fn,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),retry_policy], null));\n\nreturn activity_name;\n}));\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$applyTo \x3d (function (seq28319){\nvar G__28329 \x3d cljs.core.first(seq28319);\nvar seq28319__$1 \x3d cljs.core.next(seq28319);\nvar G__28330 \x3d cljs.core.first(seq28319__$1);\nvar seq28319__$2 \x3d cljs.core.next(seq28319__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28329,G__28330,seq28319__$2);\n}));\n\nintemporal.internal.activity.get_activity_info \x3d (function intemporal$internal$activity$get_activity_info(registry,activity_name){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(registry),activity_name);\n});\nintemporal.internal.activity.get_activity_fn \x3d (function intemporal$internal$activity$get_activity_fn(registry,activity_name){\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(intemporal.internal.activity.get_activity_info(registry,activity_name));\n});\nintemporal.internal.activity.ensure_registered_BANG_ \x3d (function intemporal$internal$activity$ensure_registered_BANG_(registry,f){\nvar activity_name \x3d ((cljs.core.var_QMARK_(f))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f)):intemporal.internal.activity.fn_name(f));\nif(cljs.core.contains_QMARK_(cljs.core.deref(registry),activity_name)){\n} else {\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),activity_name], 0));\n}\n\nreturn activity_name;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.activity.RetryPolicy \x3d (function (max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,__meta,__extmap,__hash){\nthis.max_attempts \x3d max_attempts;\nthis.backoff_ms \x3d backoff_ms;\nthis.max_backoff_ms \x3d max_backoff_ms;\nthis.backoff_multiplier \x3d backoff_multiplier;\nthis.retryable_fn \x3d retryable_fn;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28407,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28458 \x3d k28407;\nvar G__28458__$1 \x3d (((G__28458 instanceof cljs.core.Keyword))?G__28458.fqn:null);\nswitch (G__28458__$1) {\ncase \x22max-attempts\x22:\nreturn self__.max_attempts;\n\nbreak;\ncase \x22backoff-ms\x22:\nreturn self__.backoff_ms;\n\nbreak;\ncase \x22max-backoff-ms\x22:\nreturn self__.max_backoff_ms;\n\nbreak;\ncase \x22backoff-multiplier\x22:\nreturn self__.backoff_multiplier;\n\nbreak;\ncase \x22retryable-fn\x22:\nreturn self__.retryable_fn;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28407,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28464){\nvar vec__28465 \x3d p__28464;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28465,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28465,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.activity.RetryPolicy{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28406){\nvar self__ \x3d this;\nvar G__28406__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28406__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (434457415 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28408,other28409){\nvar self__ \x3d this;\nvar this28408__$1 \x3d this;\nreturn (((!((other28409 \x3d\x3d null)))) \x26\x26 ((((this28408__$1.constructor \x3d\x3d\x3d other28409.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.max_attempts,other28409.max_attempts)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.backoff_ms,other28409.backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.max_backoff_ms,other28409.max_backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.backoff_multiplier,other28409.backoff_multiplier)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.retryable_fn,other28409.retryable_fn)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.__extmap,other28409.__extmap)))))))))))))));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28407){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28539 \x3d k28407;\nvar G__28539__$1 \x3d (((G__28539 instanceof cljs.core.Keyword))?G__28539.fqn:null);\nswitch (G__28539__$1) {\ncase \x22max-attempts\x22:\ncase \x22backoff-ms\x22:\ncase \x22max-backoff-ms\x22:\ncase \x22backoff-multiplier\x22:\ncase \x22retryable-fn\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28407);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28406){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28541 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28542 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(G__28406,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,G__28406,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,G__28406,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,G__28406,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,G__28406,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28406),null));\n}\n}\n}\n}\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28406){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,G__28406,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22max-attempts\x22,\x22max-attempts\x22,-967871472,null),new cljs.core.Symbol(null,\x22backoff-ms\x22,\x22backoff-ms\x22,-975154262,null),new cljs.core.Symbol(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,-570662135,null),new cljs.core.Symbol(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-200564171,null),new cljs.core.Symbol(null,\x22retryable-fn\x22,\x22retryable-fn\x22,-2084944186,null)], null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$type \x3d true);\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.activity/RetryPolicy\x22,null,(1),null));\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.activity/RetryPolicy\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.activity/RetryPolicy.\n */\nintemporal.internal.activity.__GT_RetryPolicy \x3d (function intemporal$internal$activity$__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn){\nreturn (new intemporal.internal.activity.RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.activity/RetryPolicy, taking a map of keywords to field values.\n */\nintemporal.internal.activity.map__GT_RetryPolicy \x3d (function intemporal$internal$activity$map__GT_RetryPolicy(G__28436){\nvar extmap__5365__auto__ \x3d (function (){var G__28574 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28436,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], 0));\nif(cljs.core.record_QMARK_(G__28436)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28574);\n} else {\nreturn G__28574;\n}\n})();\nreturn (new intemporal.internal.activity.RetryPolicy(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(G__28436),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a retry policy\n */\nintemporal.internal.activity.make_retry_policy \x3d (function intemporal$internal$activity$make_retry_policy(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28673 \x3d arguments.length;\nvar i__5750__auto___28676 \x3d (0);\nwhile(true){\nif((i__5750__auto___28676 \x3c len__5749__auto___28673)){\nargs__5755__auto__.push((arguments[i__5750__auto___28676]));\n\nvar G__28677 \x3d (i__5750__auto___28676 + (1));\ni__5750__auto___28676 \x3d G__28677;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__28609){\nvar map__28612 \x3d p__28609;\nvar map__28612__$1 \x3d cljs.core.__destructure_map(map__28612);\nvar max_attempts \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),(3));\nvar backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),(1000));\nvar max_backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),(60000));\nvar backoff_multiplier \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),2.0);\nvar retryable_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),cljs.core.constantly(true));\nreturn intemporal.internal.activity.__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn);\n}));\n\n(intemporal.internal.activity.make_retry_policy.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.activity.make_retry_policy.cljs$lang$applyTo \x3d (function (seq28606){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq28606));\n}));\n\nintemporal.internal.activity.calculate_backoff \x3d (function intemporal$internal$activity$calculate_backoff(policy,attempt){\nvar base \x3d new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(policy);\nvar multiplier \x3d new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(policy);\nvar max_backoff \x3d new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(policy);\nvar backoff \x3d (base * Math.pow(multiplier,(attempt - (1))));\nreturn cljs.core.long$((function (){var x__5113__auto__ \x3d backoff;\nvar y__5114__auto__ \x3d max_backoff;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\n});\nintemporal.internal.activity.should_retry_QMARK_ \x3d (function intemporal$internal$activity$should_retry_QMARK_(policy,error,attempt){\nvar and__5023__auto__ \x3d (attempt \x3c new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(policy));\nif(and__5023__auto__){\nvar fexpr__28623 \x3d new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(policy);\nreturn (fexpr__28623.cljs$core$IFn$_invoke$arity$1 ? fexpr__28623.cljs$core$IFn$_invoke$arity$1(error) : fexpr__28623.call(null,error));\n} else {\nreturn and__5023__auto__;\n}\n});\n"); +SHADOW_ENV.evalLoad("taoensso.truss.impl.js", true, "goog.provide(\x27taoensso.truss.impl\x27);\ntaoensso.truss.impl.re_pattern_QMARK_ \x3d (function taoensso$truss$impl$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\ntaoensso.truss.impl.str_contains_QMARK_ \x3d (function taoensso$truss$impl$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.truss.impl.revery_QMARK_ \x3d (function taoensso$truss$impl$revery_QMARK_(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,coll);\n});\ntaoensso.truss.impl.revery \x3d (function taoensso$truss$impl$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\ntaoensso.truss.impl.rsome \x3d (function taoensso$truss$impl$rsome(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nvar temp__5825__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar p \x3d temp__5825__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n}),null,coll);\n});\ntaoensso.truss.impl.assoc_some \x3d (function taoensso$truss$impl$assoc_some(var_args){\nvar G__28598 \x3d arguments.length;\nswitch (G__28598) {\ncase 3:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.truss.impl.assoc_some,m,m_kvs);\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.truss.impl.ensure_set \x3d (function taoensso$truss$impl$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\ntaoensso.truss.impl.ks_nnil_QMARK_ \x3d (function taoensso$truss$impl$ks_nnil_QMARK_(ks,m){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28613_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__28613_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.truss.impl.ks_EQ_ \x3d (function taoensso$truss$impl$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28617_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28617_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_GT__EQ_ \x3d (function taoensso$truss$impl$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28622_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28622_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_LT__EQ_ \x3d (function taoensso$truss$impl$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.truss.impl.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.truss.impl.FailedAssertionInfo \x3d (function (ns,coords,pred,arg_form,arg_val,data,error,__meta,__extmap,__hash){\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.pred \x3d pred;\nthis.arg_form \x3d arg_form;\nthis.arg_val \x3d arg_val;\nthis.data \x3d data;\nthis.error \x3d error;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28631,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28648 \x3d k28631;\nvar G__28648__$1 \x3d (((G__28648 instanceof cljs.core.Keyword))?G__28648.fqn:null);\nswitch (G__28648__$1) {\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22pred\x22:\nreturn self__.pred;\n\nbreak;\ncase \x22arg-form\x22:\nreturn self__.arg_form;\n\nbreak;\ncase \x22arg-val\x22:\nreturn self__.arg_val;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28631,else__5326__auto__);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28656){\nvar vec__28657 \x3d p__28656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.truss.impl.FailedAssertionInfo{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28630){\nvar self__ \x3d this;\nvar G__28630__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28630__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (7 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-352893736 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28632,other28633){\nvar self__ \x3d this;\nvar this28632__$1 \x3d this;\nreturn (((!((other28633 \x3d\x3d null)))) \x26\x26 ((((this28632__$1.constructor \x3d\x3d\x3d other28633.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.ns,other28633.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.coords,other28633.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.pred,other28633.pred)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_form,other28633.arg_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_val,other28633.arg_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.data,other28633.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.error,other28633.error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.__extmap,other28633.__extmap)))))))))))))))))));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28631){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28678 \x3d k28631;\nvar G__28678__$1 \x3d (((G__28678 instanceof cljs.core.Keyword))?G__28678.fqn:null);\nswitch (G__28678__$1) {\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22pred\x22:\ncase \x22arg-form\x22:\ncase \x22arg-val\x22:\ncase \x22data\x22:\ncase \x22error\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28631);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28679 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28680 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(G__28630,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__28630,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__28630,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__28630,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__28630,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__28630,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__28630,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28630),null));\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__28630,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22arg-form\x22,\x22arg-form\x22,-1253871756,null),new cljs.core.Symbol(null,\x22arg-val\x22,\x22arg-val\x22,-852016489,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null)], null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.truss.impl/FailedAssertionInfo\x22,null,(1),null));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.truss.impl/FailedAssertionInfo\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/FailedAssertionInfo.\n */\ntaoensso.truss.impl.__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$__GT_FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error,null,null,null));\n});\n\n/**\n * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values.\n */\ntaoensso.truss.impl.map__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__28640){\nvar extmap__5365__auto__ \x3d (function (){var G__28682 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28640,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], 0));\nif(cljs.core.record_QMARK_(G__28640)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28682);\n} else {\nreturn G__28682;\n}\n})();\nreturn (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__28640),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.truss.impl.ArgEvalError \x3d (function (ex){\nthis.ex \x3d ex;\n});\n\n(taoensso.truss.impl.ArgEvalError.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ex\x22,\x22ex\x22,226760186,null)], null);\n}));\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorStr \x3d \x22taoensso.truss.impl/ArgEvalError\x22);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.truss.impl/ArgEvalError\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/ArgEvalError.\n */\ntaoensso.truss.impl.__GT_ArgEvalError \x3d (function taoensso$truss$impl$__GT_ArgEvalError(ex){\nreturn (new taoensso.truss.impl.ArgEvalError(ex));\n});\n\ntaoensso.truss.impl.FalsePredError \x3d ({});\n"); +SHADOW_ENV.evalLoad("taoensso.truss.js", true, "goog.provide(\x27taoensso.truss\x27);\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.truss.submap_QMARK_ \x3d (function taoensso$truss$submap_QMARK_(super_map,sub_map){\nreturn cljs.core.reduce_kv((function (_,sub_key,sub_val){\nif(cljs.core.map_QMARK_(sub_val)){\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(super_map,sub_key);\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.map_QMARK_(super_val);\nif(and__5023__auto__){\nreturn (taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(super_val,sub_val) : taoensso.truss.submap_QMARK_.call(null,super_val,sub_val));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n} else {\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(super_map,sub_key,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\nvar temp__5823__auto__ \x3d (function (){var temp__5823__auto__ \x3d ((cljs.core.fn_QMARK_(sub_val))?sub_val:null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pred_fn \x3d temp__5823__auto__;\nreturn (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val));\n} else {\nvar G__28967 \x3d sub_val;\nvar G__28967__$1 \x3d (((G__28967 instanceof cljs.core.Keyword))?G__28967.fqn:null);\nswitch (G__28967__$1) {\ncase \x22submap/nx\x22:\nreturn cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\n\nbreak;\ncase \x22submap/ex\x22:\nreturn (!(cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303))));\n\nbreak;\ncase \x22submap/some\x22:\nreturn (!((super_val \x3d\x3d null)));\n\nbreak;\ndefault:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sub_val,super_val);\n\n}\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}\n}),true,sub_map);\n});\n/**\n * Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when\n * using futures, agents, etc.\n */\ntaoensso.truss._STAR_ctx_STAR_ \x3d null;\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.ex_info_STAR_ \x3d (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){\nvar data_map__$1 \x3d (((ns \x3d\x3d null))?data_map:(cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null),data_map)\n));\nvar data_map__$2 \x3d (function (){var temp__5823__auto__ \x3d taoensso.truss._STAR_ctx_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ctx \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data_map__$1,new cljs.core.Keyword(\x22truss\x22,\x22ctx\x22,\x22truss/ctx\x22,-336831129),ctx);\n} else {\nreturn data_map__$1;\n}\n})();\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data_map__$2,cause);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.unexpected_arg_BANG__STAR_ \x3d (function taoensso$truss$unexpected_arg_BANG__STAR_(ns,coords,arg,kvs){\nthrow taoensso.truss.ex_info_STAR_(ns,coords,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [\x22Unexpected argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((arg \x3d\x3d null))?\x22\x3cnil\x3e\x22:arg))].join(\x27\x27);\n}\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444)),new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg)], null)),null);\n});\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.truss.set_ctx_BANG_ \x3d (function taoensso$truss$set_ctx_BANG_(root_ctx_val){\nreturn (taoensso.truss._STAR_ctx_STAR_ \x3d root_ctx_val);\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.truss.update_ctx \x3d (function taoensso$truss$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d old_ctx;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [195,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22update-ctx\x22,\x22taoensso.truss/update-ctx\x22,2138642429,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.truss.error_QMARK_ \x3d (function taoensso$truss$error_QMARK_(x){\nreturn (x instanceof Error);\n});\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.truss.ex_root \x3d (function taoensso$truss$ex_root(x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29702 \x3d cause;\nerror \x3d G__29702;\ncontinue;\n} else {\nreturn error;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.truss.ex_type \x3d (function taoensso$truss$ex_type(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null);\n} else {\nif((x instanceof Error)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,x.name);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.truss.ex_map_STAR_ \x3d (function taoensso$truss$ex_map_STAR_(x){\nvar temp__5825__auto__ \x3d cljs.core.ex_message(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar msg \x3d temp__5825__auto__;\nvar temp__5823__auto__ \x3d cljs.core.not_empty(cljs.core.ex_data(x));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar data \x3d temp__5823__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.truss.ex_chain \x3d (function taoensso$truss$ex_chain(var_args){\nvar G__29025 \x3d arguments.length;\nswitch (G__29025) {\ncase 1:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (as_maps_QMARK_,x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar xf \x3d (cljs.core.truth_(as_maps_QMARK_)?taoensso.truss.ex_map_STAR_:cljs.core.identity);\nvar acc \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(x) : xf.call(null,x))], null);\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29732 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause)));\nvar G__29733 \x3d cause;\nacc \x3d G__29732;\nerror \x3d G__29733;\ncontinue;\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.ex_chain.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.truss.ex_map \x3d (function taoensso$truss$ex_map(x){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar chain \x3d temp__5825__auto__;\nvar maps \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.truss.ex_map_STAR_,chain);\nvar root \x3d cljs.core.peek(chain);\nvar root_map \x3d cljs.core.peek(maps);\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(root_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029),maps,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(function (){var temp__5825__auto____$1 \x3d root.stack;\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar st \x3d temp__5825__auto____$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(st,\x22\x22)){\nreturn null;\n} else {\nreturn st;\n}\n} else {\nreturn null;\n}\n})()], null));\n} else {\nreturn null;\n}\n});\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.truss.matching_error \x3d (function taoensso$truss$matching_error(var_args){\nvar G__29188 \x3d arguments.length;\nswitch (G__29188) {\ncase 1:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1 \x3d (function (error){\nreturn error;\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,error){\nvar temp__5825__auto__ \x3d (((kind instanceof cljs.core.Keyword))?(function (){var G__29198 \x3d kind;\nvar G__29198__$1 \x3d (((G__29198 instanceof cljs.core.Keyword))?G__29198.fqn:null);\nswitch (G__29198__$1) {\ncase \x22default\x22:\ncase \x22all-but-critical\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ncase \x22common\x22:\nreturn (error instanceof Error);\n\nbreak;\ncase \x22ex-info\x22:\nreturn (error instanceof cljs.core.ExceptionInfo);\n\nbreak;\ncase \x22all\x22:\ncase \x22any\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ndefault:\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [406,21], null),\x22Unexpected Truss `matching-error` `kind` keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),kind,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.Keyword(null,\x22all\x22,\x22all\x22,892129742),\x22null\x22,new cljs.core.Keyword(null,\x22common\x22,\x22common\x22,-1822281391),\x22null\x22,new cljs.core.Keyword(null,\x22ex-info\x22,\x22ex-info\x22,2114560529),\x22null\x22], null), null)], null),null);\n\n}\n})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__29172_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__29172_SHARP_,error);\n}),kind):(error instanceof kind)\n))));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar match_QMARK_ \x3d temp__5825__auto__;\nreturn error;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,pattern,error){\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(kind,error);\nif(cljs.core.truth_(and__5023__auto__)){\nif((pattern \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.set_QMARK_(pattern)){\nreturn taoensso.truss.impl.rsome((function (p1__29175_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__29175_SHARP_,error);\n}),pattern);\n} else {\nif(typeof pattern \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.truss.impl.str_contains_QMARK_(cljs.core.ex_message(error),pattern);\n} else {\nif(taoensso.truss.impl.re_pattern_QMARK_(pattern)){\nreturn cljs.core.re_find(pattern,cljs.core.ex_message(error));\n} else {\nif(cljs.core.map_QMARK_(pattern)){\nvar temp__5825__auto__ \x3d cljs.core.ex_data(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar data \x3d temp__5825__auto__;\nreturn taoensso.truss.submap_QMARK_(data,pattern);\n} else {\nreturn null;\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [428,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pattern\x22,\x22pattern\x22,1882666950,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22matching-error\x22,\x22taoensso.truss/matching-error\x22,557680092,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22re-pattern\x22,\x22re-pattern\x22,1047705161,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn error;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar cause \x3d temp__5825__auto__;\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,pattern,cause);\n} else {\nreturn null;\n}\n}\n}));\n\n(taoensso.truss.matching_error.cljs$lang$maxFixedArity \x3d 3);\n\nvar get_default_error_fn_29781 \x3d (function (base_data){\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468),\x22Error thrown during reduction\x22);\nvar base_data__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468));\nreturn (function taoensso$truss$default_error_fn(data,cause){\nthrow taoensso.truss.ex_info_STAR_(null,null,msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause);\n});\n});\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.truss.catching_rf \x3d (function taoensso$truss$catching_rf(var_args){\nvar G__29301 \x3d arguments.length;\nswitch (G__29301) {\ncase 1:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_29781(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf], null)),rf);\n}));\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,rf){\nvar error_fn__$1 \x3d ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_29781(error_fn):error_fn);\nreturn (function() {\nvar taoensso$truss$catching_rf \x3d null;\nvar taoensso$truss$catching_rf__0 \x3d (function (){\ntry{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n}catch (e29328){var t \x3d e29328;\nvar G__29332 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null))], null);\nvar G__29333 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29332,G__29333) : error_fn__$1.call(null,G__29332,G__29333));\n}});\nvar taoensso$truss$catching_rf__1 \x3d (function (acc){\ntry{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n}catch (e29345){var t \x3d e29345;\nvar G__29349 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null)], null)], null);\nvar G__29350 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29349,G__29350) : error_fn__$1.call(null,G__29349,G__29350));\n}});\nvar taoensso$truss$catching_rf__2 \x3d (function (acc,in$){\ntry{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}catch (e29364){var t \x3d e29364;\nvar G__29368 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),in$,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(in$)], null)], null)], null);\nvar G__29369 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29368,G__29369) : error_fn__$1.call(null,G__29368,G__29369));\n}});\nvar taoensso$truss$catching_rf__3 \x3d (function (acc,k,v){\ntry{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n}catch (e29374){var t \x3d e29374;\nvar G__29375 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),k,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,\x22v\x22,\x22v\x22,21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),v,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(v)], null)], null)], null);\nvar G__29376 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29375,G__29376) : error_fn__$1.call(null,G__29375,G__29376));\n}});\ntaoensso$truss$catching_rf \x3d function(acc,k,v){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$truss$catching_rf__0.call(this);\ncase 1:\nreturn taoensso$truss$catching_rf__1.call(this,acc);\ncase 2:\nreturn taoensso$truss$catching_rf__2.call(this,acc,k);\ncase 3:\nreturn taoensso$truss$catching_rf__3.call(this,acc,k,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$truss$catching_rf__0;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$truss$catching_rf__1;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$truss$catching_rf__2;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$truss$catching_rf__3;\nreturn taoensso$truss$catching_rf;\n})()\n}));\n\n(taoensso.truss.catching_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.truss.catching_xform \x3d (function taoensso$truss$catching_xform(var_args){\nvar G__29395 \x3d arguments.length;\nswitch (G__29395) {\ncase 2:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(error_fn,rf);\n}),xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.truss.sys_newline \x3d \x22\\n\x22;\nvar legacy_ex_data_QMARK__29853 \x3d false;\n/**\n * Returns an appropriate `truss/ex-info` for given failed assertion info map.\n */\ntaoensso.truss.failed_assertion_ex_info \x3d (function taoensso$truss$failed_assertion_ex_info(var_args){\nvar G__29442 \x3d arguments.length;\nswitch (G__29442) {\ncase 1:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (failed_assertion_info){\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__29853,failed_assertion_info);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (legacy_ex_data_QMARK___$1,failed_assertion_info){\nvar map__29454 \x3d failed_assertion_info;\nvar map__29454__$1 \x3d cljs.core.__destructure_map(map__29454);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar undefined_arg_QMARK_ \x3d cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181));\nvar coords_str \x3d (function (){var temp__5825__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__29471 \x3d temp__5825__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(1),null);\nif(cljs.core.truth_(column)){\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn null;\n}\n})();\nvar msg \x3d [\x22Truss assertion failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),coords_str,\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nvar msg__$1 \x3d (cljs.core.truth_(error)?(function (){var error_msg \x3d cljs.core.ex_message(error);\nif(undefined_arg_QMARK_){\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n})():msg);\nreturn taoensso.truss.ex_info_STAR_(null,null,msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),(function (){var vec__29490 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null);\n})(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),(new Date()),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null))),error);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unary handler fn to call with failed assertion info map when a Truss\n * assertion (`have`, `have?`, `have!`, `have!?`) fails.\n * \n * Will by default throw an appropriate `truss/ex-info`.\n * This is a decent place to inject logging for assertion failures, etc.\n * \n * Arg given to handler is a map with keys:\n * \n * `:ns` ----------- ?str namespace of assertion callsite\n * `:coords` ------- ?[line column] of assertion callsite\n * \n * `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n * `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n * `:arg-val` ------ Runtime value of argument given to predicate\n * \n * `:data` --------- Optional arbitrary data map provided to assertion macro\n * `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\n */\ntaoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d (function taoensso$truss$_STAR_failed_assertion_handler_STAR_(failed_assertion_info){\nthrow taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1(failed_assertion_info);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.failed_assertion_BANG_ \x3d (function taoensso$truss$failed_assertion_BANG_(ns,line,column,pred,arg_form,arg_val,data_fn,error){\nvar temp__5823__auto__ \x3d taoensso.truss._STAR_failed_assertion_handler_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar handler \x3d temp__5823__auto__;\nvar G__29554 \x3d (function (){var undefined_arg_QMARK_ \x3d (arg_val instanceof taoensso.truss.impl.ArgEvalError);\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):arg_val),(function (){var temp__5825__auto__ \x3d data_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar df \x3d temp__5825__auto__;\ntry{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null));\n}catch (e29557){var _ \x3d e29557;\nreturn new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181);\n}} else {\nreturn null;\n}\n})(),(((error \x3d\x3d\x3d taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error\n)),null,null,null));\n})();\nreturn (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__29554) : handler.call(null,G__29554));\n} else {\nreturn arg_val;\n}\n});\n/**\n * Private, don\x27t use. Wraps given Truss v1 `error-fn` to convert\n * Truss v2 `*failed-assertion-handler*` arg.\n */\ntaoensso.truss.legacy_error_fn \x3d (function taoensso$truss$legacy_error_fn(f){\nif(cljs.core.truth_(f)){\nreturn (function (failed_assertion_info){\nvar G__29581 \x3d (new cljs.core.Delay((function (){\nvar map__29588 \x3d failed_assertion_info;\nvar map__29588__$1 \x3d cljs.core.__destructure_map(map__29588);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar vec__29589 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(1),null);\nvar msg_ \x3d (new cljs.core.Delay((function (){\nvar msg \x3d [\x22Invariant failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?[\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):null),\x22]\x22].join(\x27\x27):null),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nif(cljs.core.truth_(error)){\nvar error_msg \x3d cljs.core.ex_message(error);\nif(cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181))){\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n} else {\nreturn msg;\n}\n}),null));\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),msg_,new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data], null)),new cljs.core.Keyword(null,\x22err\x22,\x22err\x22,-2089457205),error], null));\n}),null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__29581) : f.call(null,G__29581));\n});\n} else {\nreturn null;\n}\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_dynamic_assertion_data \x3d (function taoensso$truss$get_dynamic_assertion_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_data \x3d (function taoensso$truss$get_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*failed-assertion-handler*` (note breaking changes to argument).\n */\ntaoensso.truss.set_error_fn_BANG_ \x3d (function taoensso$truss$set_error_fn_BANG_(f){\nreturn (taoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d taoensso.truss.legacy_error_fn(f));\n});\n"); SHADOW_ENV.evalLoad("cljs.tools.reader.impl.utils.js", true, "goog.provide(\x27cljs.tools.reader.impl.utils\x27);\ncljs.tools.reader.impl.utils.char$ \x3d (function cljs$tools$reader$impl$utils$char(x){\nif((x \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.char$(x);\n}\n});\ncljs.tools.reader.impl.utils.ex_info_QMARK_ \x3d (function cljs$tools$reader$impl$utils$ex_info_QMARK_(ex){\nreturn (ex instanceof cljs.core.ExceptionInfo);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.tools.reader.impl.utils.ReaderConditional \x3d (function (splicing_QMARK_,form,__meta,__extmap,__hash){\nthis.splicing_QMARK_ \x3d splicing_QMARK_;\nthis.form \x3d form;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k33250,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__33274 \x3d k33250;\nvar G__33274__$1 \x3d (((G__33274 instanceof cljs.core.Keyword))?G__33274.fqn:null);\nswitch (G__33274__$1) {\ncase \x22splicing?\x22:\nreturn self__.splicing_QMARK_;\n\nbreak;\ncase \x22form\x22:\nreturn self__.form;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k33250,else__5326__auto__);\n\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__33285){\nvar vec__33287 \x3d p__33285;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33287,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33287,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#cljs.tools.reader.impl.utils.ReaderConditional{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),self__.splicing_QMARK_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),self__.form],null))], null),self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__33249){\nvar self__ \x3d this;\nvar G__33249__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__33249__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-209062840 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this33251,other33252){\nvar self__ \x3d this;\nvar this33251__$1 \x3d this;\nreturn (((!((other33252 \x3d\x3d null)))) \x26\x26 ((((this33251__$1.constructor \x3d\x3d\x3d other33252.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.splicing_QMARK_,other33252.splicing_QMARK_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.form,other33252.form)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.__extmap,other33252.__extmap)))))))));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),null,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k33250){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__33351 \x3d k33250;\nvar G__33351__$1 \x3d (((G__33351 instanceof cljs.core.Keyword))?G__33351.fqn:null);\nswitch (G__33351__$1) {\ncase \x22splicing?\x22:\ncase \x22form\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k33250);\n\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__33249){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__33359 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__33360 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__33359.cljs$core$IFn$_invoke$arity$2 ? pred__33359.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),expr__33360) : pred__33359.call(null,new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),expr__33360)))){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(G__33249,self__.form,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__33359.cljs$core$IFn$_invoke$arity$2 ? pred__33359.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),expr__33360) : pred__33359.call(null,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),expr__33360)))){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,G__33249,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__33249),null));\n}\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),self__.splicing_QMARK_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),self__.form,null))], null),self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__33249){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,G__33249,self__.__extmap,self__.__hash));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22splicing?\x22,\x22splicing?\x22,1211935161,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null)], null);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22cljs.tools.reader.impl.utils/ReaderConditional\x22,null,(1),null));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22cljs.tools.reader.impl.utils/ReaderConditional\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.impl.utils/ReaderConditional.\n */\ncljs.tools.reader.impl.utils.__GT_ReaderConditional \x3d (function cljs$tools$reader$impl$utils$__GT_ReaderConditional(splicing_QMARK_,form){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(splicing_QMARK_,form,null,null,null));\n});\n\n/**\n * Factory function for cljs.tools.reader.impl.utils/ReaderConditional, taking a map of keywords to field values.\n */\ncljs.tools.reader.impl.utils.map__GT_ReaderConditional \x3d (function cljs$tools$reader$impl$utils$map__GT_ReaderConditional(G__33265){\nvar extmap__5365__auto__ \x3d (function (){var G__33401 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__33265,new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471)], 0));\nif(cljs.core.record_QMARK_(G__33265)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__33401);\n} else {\nreturn G__33401;\n}\n})();\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366).cljs$core$IFn$_invoke$arity$1(G__33265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(G__33265),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Return true if the value is the data representation of a reader conditional\n */\ncljs.tools.reader.impl.utils.reader_conditional_QMARK_ \x3d (function cljs$tools$reader$impl$utils$reader_conditional_QMARK_(value){\nreturn (value instanceof cljs.tools.reader.impl.utils.ReaderConditional);\n});\n/**\n * Construct a data representation of a reader conditional.\n * If true, splicing? indicates read-cond-splicing.\n */\ncljs.tools.reader.impl.utils.reader_conditional \x3d (function cljs$tools$reader$impl$utils$reader_conditional(form,splicing_QMARK_){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(splicing_QMARK_,form,null,null,null));\n});\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\ncljs.core._write(writer,[\x22#?\x22,(cljs.core.truth_(coll__$1.splicing_QMARK_)?\x22@\x22:null)].join(\x27\x27));\n\nreturn cljs.core.pr_writer(coll__$1.form,writer,opts);\n}));\ncljs.tools.reader.impl.utils.ws_rx \x3d /[\\s]/;\n/**\n * Checks whether a given character is whitespace\n */\ncljs.tools.reader.impl.utils.whitespace_QMARK_ \x3d (function cljs$tools$reader$impl$utils$whitespace_QMARK_(ch){\nif((ch \x3d\x3d null)){\nreturn null;\n} else {\nif((ch \x3d\x3d\x3d \x22,\x22)){\nreturn true;\n} else {\nreturn cljs.tools.reader.impl.utils.ws_rx.test(ch);\n}\n}\n});\n/**\n * Checks whether a given character is numeric\n */\ncljs.tools.reader.impl.utils.numeric_QMARK_ \x3d (function cljs$tools$reader$impl$utils$numeric_QMARK_(ch){\nif((ch \x3d\x3d null)){\nreturn null;\n} else {\nreturn goog.string.isNumeric(ch);\n}\n});\n/**\n * Checks whether the character is a newline\n */\ncljs.tools.reader.impl.utils.newline_QMARK_ \x3d (function cljs$tools$reader$impl$utils$newline_QMARK_(c){\nreturn (((\x22\\n\x22 \x3d\x3d\x3d c)) || ((((\x22\\n\x22 \x3d\x3d\x3d c)) || ((c \x3d\x3d null)))));\n});\n/**\n * Resolves syntactical sugar in metadata\n */\ncljs.tools.reader.impl.utils.desugar_meta \x3d (function cljs$tools$reader$impl$utils$desugar_meta(f){\nif((f instanceof cljs.core.Keyword)){\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([f,true]);\n} else {\nif((f instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),f], null);\n} else {\nif(typeof f \x3d\x3d\x3d \x27string\x27){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),f], null);\n} else {\nif(cljs.core.vector_QMARK_(f)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22param-tags\x22,\x22param-tags\x22,250134169),f], null);\n} else {\nreturn f;\n\n}\n}\n}\n}\n});\ncljs.tools.reader.impl.utils.last_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\ncljs.tools.reader.impl.utils.next_id \x3d (function cljs$tools$reader$impl$utils$next_id(){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.impl.utils.last_id,cljs.core.inc);\n});\ncljs.tools.reader.impl.utils.namespace_keys \x3d (function cljs$tools$reader$impl$utils$namespace_keys(ns,keys){\nvar iter__5503__auto__ \x3d (function cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(s__33433){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__33433__$1 \x3d s__33433;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__33433__$1);\nif(temp__5825__auto__){\nvar s__33433__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__33433__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__33433__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__33435 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__33434 \x3d (0);\nwhile(true){\nif((i__33434 \x3c size__5502__auto__)){\nvar key \x3d cljs.core._nth(c__5501__auto__,i__33434);\ncljs.core.chunk_append(b__33435,(((((key instanceof cljs.core.Symbol)) || ((key instanceof cljs.core.Keyword))))?(function (){var vec__33441 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,cljs.core.name)(key);\nvar key_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33441,(0),null);\nvar key_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33441,(1),null);\nvar __GT_key \x3d (((key instanceof cljs.core.Symbol))?cljs.core.symbol:cljs.core.keyword);\nif((key_ns \x3d\x3d null)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$2 ? __GT_key.cljs$core$IFn$_invoke$arity$2(ns,key_name) : __GT_key.call(null,ns,key_name));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22_\x22,key_ns)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(key_name) : __GT_key.call(null,key_name));\n} else {\nreturn key;\n\n}\n}\n})():key));\n\nvar G__33546 \x3d (i__33434 + (1));\ni__33434 \x3d G__33546;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__33435),cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(cljs.core.chunk_rest(s__33433__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__33435),null);\n}\n} else {\nvar key \x3d cljs.core.first(s__33433__$2);\nreturn cljs.core.cons((((((key instanceof cljs.core.Symbol)) || ((key instanceof cljs.core.Keyword))))?(function (){var vec__33450 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,cljs.core.name)(key);\nvar key_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33450,(0),null);\nvar key_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33450,(1),null);\nvar __GT_key \x3d (((key instanceof cljs.core.Symbol))?cljs.core.symbol:cljs.core.keyword);\nif((key_ns \x3d\x3d null)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$2 ? __GT_key.cljs$core$IFn$_invoke$arity$2(ns,key_name) : __GT_key.call(null,ns,key_name));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22_\x22,key_ns)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(key_name) : __GT_key.call(null,key_name));\n} else {\nreturn key;\n\n}\n}\n})():key),cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(cljs.core.rest(s__33433__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(keys);\n});\ncljs.tools.reader.impl.utils.second_SINGLEQUOTE_ \x3d (function cljs$tools$reader$impl$utils$second_SINGLEQUOTE_(p__33461){\nvar vec__33463 \x3d p__33461;\nvar a \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33463,(0),null);\nvar b \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33463,(1),null);\nif(cljs.core.truth_(a)){\nreturn null;\n} else {\nreturn b;\n}\n});\ncljs.tools.reader.impl.utils.char_code \x3d (function cljs$tools$reader$impl$utils$char_code(ch,base){\nvar code \x3d parseInt(ch,base);\nif(cljs.core.truth_(isNaN(code))){\nreturn (-1);\n} else {\nreturn code;\n}\n});\n"); SHADOW_ENV.evalLoad("cljs.tools.reader.reader_types.js", true, "goog.provide(\x27cljs.tools.reader.reader_types\x27);\n\n/**\n * @interface\n */\ncljs.tools.reader.reader_types.Reader \x3d function(){};\n\nvar cljs$tools$reader$reader_types$Reader$read_char$dyn_34070 \x3d (function (reader){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.read_char[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5374__auto__.call(null,reader));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.read_char[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5372__auto__.call(null,reader));\n} else {\nthrow cljs.core.missing_protocol(\x22Reader.read-char\x22,reader);\n}\n}\n});\n/**\n * Returns the next char from the Reader, nil if the end of stream has been reached\n */\ncljs.tools.reader.reader_types.read_char \x3d (function cljs$tools$reader$reader_types$read_char(reader){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(reader);\n} else {\nreturn cljs$tools$reader$reader_types$Reader$read_char$dyn_34070(reader);\n}\n});\n\nvar cljs$tools$reader$reader_types$Reader$peek_char$dyn_34074 \x3d (function (reader){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.peek_char[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5374__auto__.call(null,reader));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.peek_char[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5372__auto__.call(null,reader));\n} else {\nthrow cljs.core.missing_protocol(\x22Reader.peek-char\x22,reader);\n}\n}\n});\n/**\n * Returns the next char from the Reader without removing it from the reader stream\n */\ncljs.tools.reader.reader_types.peek_char \x3d (function cljs$tools$reader$reader_types$peek_char(reader){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(reader);\n} else {\nreturn cljs$tools$reader$reader_types$Reader$peek_char$dyn_34074(reader);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.tools.reader.reader_types.IPushbackReader \x3d function(){};\n\nvar cljs$tools$reader$reader_types$IPushbackReader$unread$dyn_34079 \x3d (function (reader,ch){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.unread[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(reader,ch) : m__5374__auto__.call(null,reader,ch));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.unread[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(reader,ch) : m__5372__auto__.call(null,reader,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IPushbackReader.unread\x22,reader);\n}\n}\n});\n/**\n * Pushes back a single character on to the stream\n */\ncljs.tools.reader.reader_types.unread \x3d (function cljs$tools$reader$reader_types$unread(reader,ch){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(reader,ch);\n} else {\nreturn cljs$tools$reader$reader_types$IPushbackReader$unread$dyn_34079(reader,ch);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.tools.reader.reader_types.IndexingReader \x3d function(){};\n\nvar cljs$tools$reader$reader_types$IndexingReader$get_line_number$dyn_34086 \x3d (function (reader){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.get_line_number[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5374__auto__.call(null,reader));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.get_line_number[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5372__auto__.call(null,reader));\n} else {\nthrow cljs.core.missing_protocol(\x22IndexingReader.get-line-number\x22,reader);\n}\n}\n});\n/**\n * Returns the line number of the next character to be read from the stream\n */\ncljs.tools.reader.reader_types.get_line_number \x3d (function cljs$tools$reader$reader_types$get_line_number(reader){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(reader);\n} else {\nreturn cljs$tools$reader$reader_types$IndexingReader$get_line_number$dyn_34086(reader);\n}\n});\n\nvar cljs$tools$reader$reader_types$IndexingReader$get_column_number$dyn_34089 \x3d (function (reader){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.get_column_number[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5374__auto__.call(null,reader));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.get_column_number[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5372__auto__.call(null,reader));\n} else {\nthrow cljs.core.missing_protocol(\x22IndexingReader.get-column-number\x22,reader);\n}\n}\n});\n/**\n * Returns the column number of the next character to be read from the stream\n */\ncljs.tools.reader.reader_types.get_column_number \x3d (function cljs$tools$reader$reader_types$get_column_number(reader){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(reader);\n} else {\nreturn cljs$tools$reader$reader_types$IndexingReader$get_column_number$dyn_34089(reader);\n}\n});\n\nvar cljs$tools$reader$reader_types$IndexingReader$get_file_name$dyn_34090 \x3d (function (reader){\nvar x__5373__auto__ \x3d (((reader \x3d\x3d null))?null:reader);\nvar m__5374__auto__ \x3d (cljs.tools.reader.reader_types.get_file_name[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5374__auto__.call(null,reader));\n} else {\nvar m__5372__auto__ \x3d (cljs.tools.reader.reader_types.get_file_name[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(reader) : m__5372__auto__.call(null,reader));\n} else {\nthrow cljs.core.missing_protocol(\x22IndexingReader.get-file-name\x22,reader);\n}\n}\n});\n/**\n * Returns the file name the reader is reading from, or nil\n */\ncljs.tools.reader.reader_types.get_file_name \x3d (function cljs$tools$reader$reader_types$get_file_name(reader){\nif((((!((reader \x3d\x3d null)))) \x26\x26 ((!((reader.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1 \x3d\x3d null)))))){\nreturn reader.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(reader);\n} else {\nreturn cljs$tools$reader$reader_types$IndexingReader$get_file_name$dyn_34090(reader);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.tools.reader.reader_types.Reader}\n*/\ncljs.tools.reader.reader_types.StringReader \x3d (function (s,s_len,s_pos){\nthis.s \x3d s;\nthis.s_len \x3d s_len;\nthis.s_pos \x3d s_pos;\n});\n(cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif((self__.s_len \x3e self__.s_pos)){\nvar r \x3d self__.s.charAt(self__.s_pos);\n(self__.s_pos \x3d (self__.s_pos + (1)));\n\nreturn r;\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif((self__.s_len \x3e self__.s_pos)){\nreturn self__.s.charAt(self__.s_pos);\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.StringReader.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),new cljs.core.Symbol(null,\x22s-len\x22,\x22s-len\x22,1869978331,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22s-pos\x22,\x22s-pos\x22,-540562492,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.tools.reader.reader_types.StringReader.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorStr \x3d \x22cljs.tools.reader.reader-types/StringReader\x22);\n\n(cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tools.reader.reader-types/StringReader\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.reader-types/StringReader.\n */\ncljs.tools.reader.reader_types.__GT_StringReader \x3d (function cljs$tools$reader$reader_types$__GT_StringReader(s,s_len,s_pos){\nreturn (new cljs.tools.reader.reader_types.StringReader(s,s_len,s_pos));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.tools.reader.reader_types.Reader}\n*/\ncljs.tools.reader.reader_types.NodeReadableReader \x3d (function (readable,buf){\nthis.readable \x3d readable;\nthis.buf \x3d buf;\n});\n(cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif(cljs.core.truth_(self__.buf)){\nvar c \x3d (self__.buf[(0)]);\n(self__.buf \x3d null);\n\nreturn cljs.tools.reader.impl.utils.char$(c);\n} else {\nvar c \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.readable.read((1)));\nif(cljs.core.truth_(c)){\nreturn cljs.tools.reader.impl.utils.char$(c);\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif(cljs.core.truth_(self__.buf)){\n} else {\n(self__.buf \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.readable.read((1))));\n}\n\nif(cljs.core.truth_(self__.buf)){\nreturn cljs.tools.reader.impl.utils.char$((self__.buf[(0)]));\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.NodeReadableReader.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22readable\x22,\x22readable\x22,2113054478,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorStr \x3d \x22cljs.tools.reader.reader-types/NodeReadableReader\x22);\n\n(cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tools.reader.reader-types/NodeReadableReader\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.reader-types/NodeReadableReader.\n */\ncljs.tools.reader.reader_types.__GT_NodeReadableReader \x3d (function cljs$tools$reader$reader_types$__GT_NodeReadableReader(readable,buf){\nreturn (new cljs.tools.reader.reader_types.NodeReadableReader(readable,buf));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.tools.reader.reader_types.Reader}\n * @implements {cljs.tools.reader.reader_types.IPushbackReader}\n*/\ncljs.tools.reader.reader_types.PushbackReader \x3d (function (rdr,buf,buf_len,buf_pos){\nthis.rdr \x3d rdr;\nthis.buf \x3d buf;\nthis.buf_len \x3d buf_len;\nthis.buf_pos \x3d buf_pos;\n});\n(cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nvar c \x3d (((self__.buf_pos \x3c self__.buf_len))?(self__.buf[self__.buf_pos]):self__.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null));\nif((self__.buf_pos \x3c self__.buf_len)){\n(self__.buf_pos \x3d (self__.buf_pos + (1)));\n} else {\n}\n\nreturn cljs.tools.reader.impl.utils.char$(c);\n}));\n\n(cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nvar c \x3d (((self__.buf_pos \x3c self__.buf_len))?(self__.buf[self__.buf_pos]):self__.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null));\nreturn cljs.tools.reader.impl.utils.char$(c);\n}));\n\n(cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2 \x3d (function (reader,ch){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif(cljs.core.truth_(ch)){\nif((self__.buf_pos \x3d\x3d\x3d (0))){\nthrow (new Error(\x22Pushback buffer is full\x22));\n} else {\n}\n\n(self__.buf_pos \x3d (self__.buf_pos - (1)));\n\nreturn (self__.buf[self__.buf_pos] \x3d ch);\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.PushbackReader.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22rdr\x22,\x22rdr\x22,190007785,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.Symbol(null,\x22buf-len\x22,\x22buf-len\x22,404510846,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22buf-pos\x22,\x22buf-pos\x22,-807229033,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.tools.reader.reader_types.PushbackReader.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.reader_types.PushbackReader.cljs$lang$ctorStr \x3d \x22cljs.tools.reader.reader-types/PushbackReader\x22);\n\n(cljs.tools.reader.reader_types.PushbackReader.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tools.reader.reader-types/PushbackReader\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.reader-types/PushbackReader.\n */\ncljs.tools.reader.reader_types.__GT_PushbackReader \x3d (function cljs$tools$reader$reader_types$__GT_PushbackReader(rdr,buf,buf_len,buf_pos){\nreturn (new cljs.tools.reader.reader_types.PushbackReader(rdr,buf,buf_len,buf_pos));\n});\n\ncljs.tools.reader.reader_types.normalize_newline \x3d (function cljs$tools$reader$reader_types$normalize_newline(rdr,ch){\nif((\x22\\r\x22 \x3d\x3d\x3d ch)){\nvar c \x3d rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\nif((((\x22\\f\x22 \x3d\x3d\x3d c)) || ((\x22\\n\x22 \x3d\x3d\x3d c)))){\nrdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\n} else {\n}\n\nreturn \x22\\n\x22;\n} else {\nreturn ch;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.tools.reader.reader_types.IndexingReader}\n * @implements {cljs.tools.reader.reader_types.Reader}\n * @implements {cljs.tools.reader.reader_types.IPushbackReader}\n*/\ncljs.tools.reader.reader_types.IndexingPushbackReader \x3d (function (rdr,line,column,line_start_QMARK_,prev,prev_column,file_name){\nthis.rdr \x3d rdr;\nthis.line \x3d line;\nthis.column \x3d column;\nthis.line_start_QMARK_ \x3d line_start_QMARK_;\nthis.prev \x3d prev;\nthis.prev_column \x3d prev_column;\nthis.file_name \x3d file_name;\n});\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nvar temp__5825__auto__ \x3d self__.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ch \x3d temp__5825__auto__;\nvar ch__$1 \x3d cljs.tools.reader.reader_types.normalize_newline(self__.rdr,ch);\n(self__.prev \x3d self__.line_start_QMARK_);\n\n(self__.line_start_QMARK_ \x3d cljs.tools.reader.impl.utils.newline_QMARK_(ch__$1));\n\nif(cljs.core.truth_(self__.line_start_QMARK_)){\n(self__.prev_column \x3d self__.column);\n\n(self__.column \x3d (0));\n\n(self__.line \x3d (self__.line + (1)));\n} else {\n}\n\n(self__.column \x3d (self__.column + (1)));\n\nreturn ch__$1;\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn self__.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2 \x3d (function (reader,ch){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif(cljs.core.truth_(self__.line_start_QMARK_)){\n(self__.line \x3d (self__.line - (1)));\n\n(self__.column \x3d self__.prev_column);\n} else {\n(self__.column \x3d (self__.column - (1)));\n}\n\n(self__.line_start_QMARK_ \x3d self__.prev);\n\nreturn self__.rdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn (self__.line | (0));\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn (self__.column | (0));\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn self__.file_name;\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22rdr\x22,\x22rdr\x22,190007785,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22line\x22,\x22line\x22,1852876762,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22column\x22,\x22column\x22,-576213674,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22line-start?\x22,\x22line-start?\x22,1357012474,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22prev\x22,\x22prev\x22,43462301,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22prev-column\x22,\x22prev-column\x22,324083974,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22file-name\x22,\x22file-name\x22,-13685732,null)], null);\n}));\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$ctorStr \x3d \x22cljs.tools.reader.reader-types/IndexingPushbackReader\x22);\n\n(cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tools.reader.reader-types/IndexingPushbackReader\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.reader-types/IndexingPushbackReader.\n */\ncljs.tools.reader.reader_types.__GT_IndexingPushbackReader \x3d (function cljs$tools$reader$reader_types$__GT_IndexingPushbackReader(rdr,line,column,line_start_QMARK_,prev,prev_column,file_name){\nreturn (new cljs.tools.reader.reader_types.IndexingPushbackReader(rdr,line,column,line_start_QMARK_,prev,prev_column,file_name));\n});\n\n/**\n * Returns an object of the same type and value as `obj`, with its\n * metadata merged over `m`.\n */\ncljs.tools.reader.reader_types.merge_meta \x3d (function cljs$tools$reader$reader_types$merge_meta(obj,m){\nvar orig_meta \x3d cljs.core.meta(obj);\nreturn cljs.core.with_meta(obj,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(orig_meta,new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539))], 0)));\n});\n/**\n * Returns a string containing the contents of the top most source\n * logging frame.\n */\ncljs.tools.reader.reader_types.peek_source_log \x3d (function cljs$tools$reader$reader_types$peek_source_log(frames){\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(frames)),cljs.core.first(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(frames)));\n});\n/**\n * Logs `char` to all currently active source logging frames.\n */\ncljs.tools.reader.reader_types.log_source_char \x3d (function cljs$tools$reader$reader_types$log_source_char(frames,char$){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(frames);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar buffer \x3d temp__5825__auto__;\nreturn buffer.append(char$);\n} else {\nreturn null;\n}\n});\n/**\n * Removes the last logged character from all currently active source\n * logging frames. Called when pushing a character back.\n */\ncljs.tools.reader.reader_types.drop_last_logged_char \x3d (function cljs$tools$reader$reader_types$drop_last_logged_char(frames){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(frames);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar buffer \x3d temp__5825__auto__;\nreturn buffer.set(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(buffer),(0),(buffer.getLength() - (1))));\n} else {\nreturn null;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.tools.reader.reader_types.IndexingReader}\n * @implements {cljs.tools.reader.reader_types.Reader}\n * @implements {cljs.tools.reader.reader_types.IPushbackReader}\n*/\ncljs.tools.reader.reader_types.SourceLoggingPushbackReader \x3d (function (rdr,line,column,line_start_QMARK_,prev,prev_column,file_name,frames){\nthis.rdr \x3d rdr;\nthis.line \x3d line;\nthis.column \x3d column;\nthis.line_start_QMARK_ \x3d line_start_QMARK_;\nthis.prev \x3d prev;\nthis.prev_column \x3d prev_column;\nthis.file_name \x3d file_name;\nthis.frames \x3d frames;\n});\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nvar temp__5825__auto__ \x3d self__.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ch \x3d temp__5825__auto__;\nvar ch__$1 \x3d cljs.tools.reader.reader_types.normalize_newline(self__.rdr,ch);\n(self__.prev \x3d self__.line_start_QMARK_);\n\n(self__.line_start_QMARK_ \x3d cljs.tools.reader.impl.utils.newline_QMARK_(ch__$1));\n\nif(cljs.core.truth_(self__.line_start_QMARK_)){\n(self__.prev_column \x3d self__.column);\n\n(self__.column \x3d (0));\n\n(self__.line \x3d (self__.line + (1)));\n} else {\n}\n\n(self__.column \x3d (self__.column + (1)));\n\ncljs.tools.reader.reader_types.log_source_char(cljs.core.deref(self__.frames),ch__$1);\n\nreturn ch__$1;\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn self__.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2 \x3d (function (reader,ch){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nif(cljs.core.truth_(self__.line_start_QMARK_)){\n(self__.line \x3d (self__.line - (1)));\n\n(self__.column \x3d self__.prev_column);\n} else {\n(self__.column \x3d (self__.column - (1)));\n}\n\n(self__.line_start_QMARK_ \x3d self__.prev);\n\nif(cljs.core.truth_(ch)){\ncljs.tools.reader.reader_types.drop_last_logged_char(cljs.core.deref(self__.frames));\n} else {\n}\n\nreturn self__.rdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn (self__.line | (0));\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn (self__.column | (0));\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1 \x3d (function (reader){\nvar self__ \x3d this;\nvar reader__$1 \x3d this;\nreturn self__.file_name;\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22rdr\x22,\x22rdr\x22,190007785,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22line\x22,\x22line\x22,1852876762,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22column\x22,\x22column\x22,-576213674,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22line-start?\x22,\x22line-start?\x22,1357012474,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22prev\x22,\x22prev\x22,43462301,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22prev-column\x22,\x22prev-column\x22,324083974,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22file-name\x22,\x22file-name\x22,-13685732,null),new cljs.core.Symbol(null,\x22frames\x22,\x22frames\x22,-888748272,null)], null);\n}));\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$ctorStr \x3d \x22cljs.tools.reader.reader-types/SourceLoggingPushbackReader\x22);\n\n(cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tools.reader.reader-types/SourceLoggingPushbackReader\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.reader-types/SourceLoggingPushbackReader.\n */\ncljs.tools.reader.reader_types.__GT_SourceLoggingPushbackReader \x3d (function cljs$tools$reader$reader_types$__GT_SourceLoggingPushbackReader(rdr,line,column,line_start_QMARK_,prev,prev_column,file_name,frames){\nreturn (new cljs.tools.reader.reader_types.SourceLoggingPushbackReader(rdr,line,column,line_start_QMARK_,prev,prev_column,file_name,frames));\n});\n\n/**\n * Returns true if the reader satisfies IndexingReader\n */\ncljs.tools.reader.reader_types.indexing_reader_QMARK_ \x3d (function cljs$tools$reader$reader_types$indexing_reader_QMARK_(rdr){\nif((!((rdr \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d rdr.cljs$tools$reader$reader_types$IndexingReader$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n/**\n * Creates a StringReader from a given string\n */\ncljs.tools.reader.reader_types.string_reader \x3d (function cljs$tools$reader$reader_types$string_reader(s){\nreturn (new cljs.tools.reader.reader_types.StringReader(s,cljs.core.count(s),(0)));\n});\n/**\n * Creates a PushbackReader from a given string\n */\ncljs.tools.reader.reader_types.string_push_back_reader \x3d (function cljs$tools$reader$reader_types$string_push_back_reader(var_args){\nvar G__33863 \x3d arguments.length;\nswitch (G__33863) {\ncase 1:\nreturn cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(s,(1));\n}));\n\n(cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,buf_len){\nreturn (new cljs.tools.reader.reader_types.PushbackReader(cljs.tools.reader.reader_types.string_reader(s),cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(buf_len),buf_len,buf_len));\n}));\n\n(cljs.tools.reader.reader_types.string_push_back_reader.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.tools.reader.reader_types.node_readable_push_back_reader \x3d (function cljs$tools$reader$reader_types$node_readable_push_back_reader(readable){\nreturn (new cljs.tools.reader.reader_types.PushbackReader((new cljs.tools.reader.reader_types.NodeReadableReader(readable,null)),cljs.core.object_array.cljs$core$IFn$_invoke$arity$1((1)),(1),(1)));\n});\n/**\n * Creates an IndexingPushbackReader from a given string or PushbackReader\n */\ncljs.tools.reader.reader_types.indexing_push_back_reader \x3d (function cljs$tools$reader$reader_types$indexing_push_back_reader(var_args){\nvar G__33963 \x3d arguments.length;\nswitch (G__33963) {\ncase 1:\nreturn cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$1 \x3d (function (s_or_rdr){\nreturn cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2(s_or_rdr,(1));\n}));\n\n(cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2 \x3d (function (s_or_rdr,buf_len){\nreturn cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3(s_or_rdr,buf_len,null);\n}));\n\n(cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3 \x3d (function (s_or_rdr,buf_len,file_name){\nreturn (new cljs.tools.reader.reader_types.IndexingPushbackReader(((typeof s_or_rdr \x3d\x3d\x3d \x27string\x27)?cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(s_or_rdr,buf_len):s_or_rdr),(1),(1),true,null,(0),file_name));\n}));\n\n(cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Creates a SourceLoggingPushbackReader from a given string or PushbackReader\n */\ncljs.tools.reader.reader_types.source_logging_push_back_reader \x3d (function cljs$tools$reader$reader_types$source_logging_push_back_reader(var_args){\nvar G__34012 \x3d arguments.length;\nswitch (G__34012) {\ncase 1:\nreturn cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$1 \x3d (function (s_or_rdr){\nreturn cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2(s_or_rdr,(1));\n}));\n\n(cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2 \x3d (function (s_or_rdr,buf_len){\nreturn cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3(s_or_rdr,buf_len,null);\n}));\n\n(cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3 \x3d (function (s_or_rdr,buf_len,file_name){\nreturn (new cljs.tools.reader.reader_types.SourceLoggingPushbackReader(((typeof s_or_rdr \x3d\x3d\x3d \x27string\x27)?cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(s_or_rdr,buf_len):s_or_rdr),(1),(1),true,null,(0),file_name,cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198),(new goog.string.StringBuffer()),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),cljs.core.list((0))], null))));\n}));\n\n(cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Reads a line from the reader or from *in* if no reader is specified\n */\ncljs.tools.reader.reader_types.read_line \x3d (function cljs$tools$reader$reader_types$read_line(rdr){\nvar c \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nvar s \x3d (new goog.string.StringBuffer());\nwhile(true){\nif(cljs.tools.reader.impl.utils.newline_QMARK_(c)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(s);\n} else {\nvar G__34216 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nvar G__34217 \x3d s.append(c);\nc \x3d G__34216;\ns \x3d G__34217;\ncontinue;\n}\nbreak;\n}\n});\ncljs.tools.reader.reader_types.source_logging_reader_QMARK_ \x3d (function cljs$tools$reader$reader_types$source_logging_reader_QMARK_(rdr){\nreturn (rdr instanceof cljs.tools.reader.reader_types.SourceLoggingPushbackReader);\n});\n/**\n * Returns true if rdr is an IndexingReader and the current char starts a new line\n */\ncljs.tools.reader.reader_types.line_start_QMARK_ \x3d (function cljs$tools$reader$reader_types$line_start_QMARK_(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn ((1) \x3d\x3d\x3d rdr.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null));\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.reader_types.log_source_STAR_ \x3d (function cljs$tools$reader$reader_types$log_source_STAR_(reader,f){\nvar buffer \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(reader.frames));\ntry{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(reader.frames,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311)], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([buffer.getLength()], 0));\n\nvar ret \x3d (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\nif((((!((ret \x3d\x3d null))))?(((((ret.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d ret.cljs$core$IMeta$))))?true:false):false)){\nreturn cljs.tools.reader.reader_types.merge_meta(ret,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539),cljs.tools.reader.reader_types.peek_source_log(cljs.core.deref(reader.frames))], null));\n} else {\nreturn ret;\n}\n}finally {cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reader.frames,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311)], null),cljs.core.rest);\n}});\n"); SHADOW_ENV.evalLoad("cljs.tools.reader.impl.inspect.js", true, "goog.provide(\x27cljs.tools.reader.impl.inspect\x27);\ncljs.tools.reader.impl.inspect.inspect_STAR__col \x3d (function cljs$tools$reader$impl$inspect$inspect_STAR__col(truncate,col,start,end){\nvar n \x3d cljs.core.count(col);\nvar l \x3d (cljs.core.truth_(truncate)?(0):(function (){var x__5113__auto__ \x3d (10);\nvar y__5114__auto__ \x3d n;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\nvar elements \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.impl.inspect.inspect_STAR_,true),cljs.core.take.cljs$core$IFn$_invoke$arity$2(l,col));\nvar content \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 \x22,elements));\nvar suffix \x3d (((l \x3c n))?\x22...\x22:null);\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(start),cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),suffix,cljs.core.str.cljs$core$IFn$_invoke$arity$1(end)].join(\x27\x27);\n});\ncljs.tools.reader.impl.inspect.dispatch_inspect \x3d (function cljs$tools$reader$impl$inspect$dispatch_inspect(_,x){\nif((x \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22nil\x22,\x22nil\x22,99600501);\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047);\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047);\n} else {\nif((x instanceof cljs.core.Symbol)){\nreturn new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047);\n} else {\nif(cljs.core.vector_QMARK_(x)){\nreturn new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158);\n} else {\nif(cljs.core.list_QMARK_(x)){\nreturn new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683);\n} else {\nif(cljs.core.map_QMARK_(x)){\nreturn new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461);\n} else {\nif(cljs.core.set_QMARK_(x)){\nreturn new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,true)){\nreturn new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,false)){\nreturn new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047);\n} else {\nreturn cljs.core.type(x);\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.impl.inspect !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.impl.inspect.inspect_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.tools.reader.impl.inspect.inspect_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__33799 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__33799.cljs$core$IFn$_invoke$arity$0 ? fexpr__33799.cljs$core$IFn$_invoke$arity$0() : fexpr__33799.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.tools.reader.impl.inspect\x22,\x22inspect*\x22),cljs.tools.reader.impl.inspect.dispatch_inspect,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),(function (truncate,x){\nvar n \x3d (cljs.core.truth_(truncate)?(5):(20));\nvar suffix \x3d (((x.length \x3e n))?\x22...\\\x22\x22:\x22\\\x22\x22);\nreturn [\x22\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x.substring((0),(function (){var x__5113__auto__ \x3d n;\nvar y__5114__auto__ \x3d x.length;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})())),suffix].join(\x27\x27);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22strable\x22,\x22strable\x22,1877668047),(function (truncate,x){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.IndexedSeq,(function (truncate,x){\nreturn \x22\x3cindexed seq\x3e\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.PersistentArrayMapSeq,(function (truncate,x){\nreturn \x22\x3cmap seq\x3e\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.NodeSeq,(function (truncate,x){\nreturn \x22\x3cmap seq\x3e\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.Cons,(function (truncate,x){\nreturn \x22\x3ccons\x3e\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.LazySeq,(function (truncate,x){\nreturn \x22\x3clazy seq\x3e\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22nil\x22,\x22nil\x22,99600501),(function (_,___$1){\nreturn \x22nil\x22;\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),(function (truncate,col){\nreturn cljs.tools.reader.impl.inspect.inspect_STAR__col(truncate,col,\x22(\x22,\x22)\x22);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),(function (truncate,m){\nvar len \x3d cljs.core.count(m);\nvar n_shown \x3d (cljs.core.truth_(truncate)?(0):len);\nvar contents \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.take.cljs$core$IFn$_invoke$arity$2(n_shown,m));\nvar suffix \x3d (((len \x3e n_shown))?\x22...}\x22:\x22}\x22);\nreturn cljs.tools.reader.impl.inspect.inspect_STAR__col(truncate,contents,\x22{\x22,suffix);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),(function (truncate,col){\nreturn cljs.tools.reader.impl.inspect.inspect_STAR__col(truncate,col,\x22#{\x22,\x22}\x22);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),(function (truncate,col){\nreturn cljs.tools.reader.impl.inspect.inspect_STAR__col(truncate,col,\x22[\x22,\x22]\x22);\n}));\ncljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (truncate,x){\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0));\n}));\n/**\n * Return a string description of the value supplied.\n * May be the a string version of the value itself (e.g. \x22true\x22)\n * or it may be a description (e.g. \x22an instance of Foo\x22).\n * If truncate is true then return a very terse version of\n * the inspection.\n */\ncljs.tools.reader.impl.inspect.inspect \x3d (function cljs$tools$reader$impl$inspect$inspect(var_args){\nvar G__33821 \x3d arguments.length;\nswitch (G__33821) {\ncase 1:\nreturn cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2 \x3d (function (truncate,x){\nreturn cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IFn$_invoke$arity$2(truncate,x);\n}));\n\n(cljs.tools.reader.impl.inspect.inspect.cljs$lang$maxFixedArity \x3d 2);\n\n"); @@ -1543,23 +1549,6 @@ SHADOW_ENV.evalLoad("cljs.tools.reader.impl.commons.js", true, "goog.provide(\x2 SHADOW_ENV.evalLoad("cljs.tools.reader.js", true, "goog.provide(\x27cljs.tools.reader\x27);\ngoog.scope(function(){\n cljs.tools.reader.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n\n\n\n\n\n\ncljs.tools.reader.macro_terminating_QMARK_ \x3d (function cljs$tools$reader$macro_terminating_QMARK_(ch){\nvar G__34743 \x3d ch;\nswitch (G__34743) {\ncase \x22\\\x22\x22:\ncase \x22;\x22:\ncase \x22@\x22:\ncase \x22^\x22:\ncase \x22`\x22:\ncase \x22~\x22:\ncase \x22(\x22:\ncase \x22)\x22:\ncase \x22[\x22:\ncase \x22]\x22:\ncase \x22{\x22:\ncase \x22}\x22:\ncase \x22\\\\\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n});\ncljs.tools.reader.sb \x3d (new goog.string.StringBuffer());\n/**\n * Read in a single logical token from the reader\n */\ncljs.tools.reader.read_token \x3d (function cljs$tools$reader$read_token(rdr,kind,initch){\nif((initch \x3d\x3d null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_at_start(rdr,kind);\n} else {\ncljs.tools.reader.sb.clear();\n\nvar ch \x3d initch;\nwhile(true){\nif(((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)) || (((cljs.tools.reader.macro_terminating_QMARK_(ch)) || ((ch \x3d\x3d null)))))){\nif((ch \x3d\x3d null)){\n} else {\nrdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n}\n\nreturn cljs.tools.reader.sb.toString();\n} else {\ncljs.tools.reader.sb.append(ch);\n\nvar G__36101 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nch \x3d G__36101;\ncontinue;\n}\nbreak;\n}\n}\n});\ncljs.tools.reader.read_dispatch \x3d (function cljs$tools$reader$read_dispatch(rdr,_,opts,pending_forms){\nvar temp__5823__auto__ \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ch \x3d temp__5823__auto__;\nvar temp__5823__auto____$1 \x3d (cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.dispatch_macros.call(null,ch));\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar dm \x3d temp__5823__auto____$1;\nreturn (dm.cljs$core$IFn$_invoke$arity$4 ? dm.cljs$core$IFn$_invoke$arity$4(rdr,ch,opts,pending_forms) : dm.call(null,rdr,ch,opts,pending_forms));\n} else {\nvar G__34815 \x3d (function (){var G__34820 \x3d rdr;\nG__34820.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n\nreturn G__34820;\n})();\nvar G__34816 \x3d ch;\nvar G__34817 \x3d opts;\nvar G__34818 \x3d pending_forms;\nreturn (cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4(G__34815,G__34816,G__34817,G__34818) : cljs.tools.reader.read_tagged.call(null,G__34815,G__34816,G__34817,G__34818));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_at_dispatch(rdr);\n}\n});\ncljs.tools.reader.read_unmatched_delimiter \x3d (function cljs$tools$reader$read_unmatched_delimiter(rdr,ch,opts,pending_forms){\nreturn cljs.tools.reader.impl.errors.throw_unmatch_delimiter(rdr,ch);\n});\ncljs.tools.reader.read_regex \x3d (function cljs$tools$reader$read_regex(rdr,ch,opts,pending_forms){\nvar sb \x3d (new goog.string.StringBuffer());\nvar ch__$1 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif((\x22\\\x22\x22 \x3d\x3d\x3d ch__$1)){\nreturn cljs.core.re_pattern(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb));\n} else {\nif((ch__$1 \x3d\x3d null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(rdr,new cljs.core.Keyword(null,\x22regex\x22,\x22regex\x22,939488856),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sb], 0));\n} else {\nsb.append(ch__$1);\n\nif((\x22\\\\\x22 \x3d\x3d\x3d ch__$1)){\nvar ch_36125__$2 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((ch_36125__$2 \x3d\x3d null)){\ncljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(rdr,new cljs.core.Keyword(null,\x22regex\x22,\x22regex\x22,939488856),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sb], 0));\n} else {\n}\n\nsb.append(ch_36125__$2);\n} else {\n}\n\nvar G__36136 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nch__$1 \x3d G__36136;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.read_unicode_char \x3d (function cljs$tools$reader$read_unicode_char(var_args){\nvar G__34855 \x3d arguments.length;\nswitch (G__34855) {\ncase 4:\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4 \x3d (function (token,offset,length,base){\nvar l \x3d (offset + length);\nif((cljs.core.count(token) \x3d\x3d\x3d l)){\n} else {\ncljs.tools.reader.impl.errors.throw_invalid_unicode_literal(null,token);\n}\n\nvar i \x3d offset;\nvar uc \x3d (0);\nwhile(true){\nif((i \x3d\x3d\x3d l)){\nreturn String.fromCharCode(uc);\n} else {\nvar d \x3d cljs.tools.reader.impl.utils.char_code(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),base);\nif((d \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token(null,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),token);\n} else {\nvar G__36146 \x3d (i + (1));\nvar G__36147 \x3d (d + (uc * base));\ni \x3d G__36146;\nuc \x3d G__36147;\ncontinue;\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5 \x3d (function (rdr,initch,base,length,exact_QMARK_){\nvar i \x3d (1);\nvar uc \x3d cljs.tools.reader.impl.utils.char_code(initch,base);\nwhile(true){\nif((uc \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,initch);\n} else {\nif((!((i \x3d\x3d\x3d length)))){\nvar ch \x3d rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.macros.call(null,ch));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn (ch \x3d\x3d null);\n}\n}\n})())){\nif(cljs.core.truth_(exact_QMARK_)){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_len(rdr,i,length);\n} else {\nreturn String.fromCharCode(uc);\n}\n} else {\nvar d \x3d cljs.tools.reader.impl.utils.char_code(ch,base);\nrdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\n\nif((d \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,ch);\n} else {\nvar G__36158 \x3d (i + (1));\nvar G__36159 \x3d (d + (uc * base));\ni \x3d G__36158;\nuc \x3d G__36159;\ncontinue;\n}\n}\n} else {\nreturn String.fromCharCode(uc);\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.read_unicode_char.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.tools.reader.upper_limit \x3d \x22\\uD7FF\x22.charCodeAt((0));\ncljs.tools.reader.lower_limit \x3d \x22\\uE000\x22.charCodeAt((0));\ncljs.tools.reader.valid_octal_QMARK_ \x3d (function cljs$tools$reader$valid_octal_QMARK_(token,base){\nreturn (parseInt(token,base) \x3c\x3d (255));\n});\n/**\n * Read in a character literal\n */\ncljs.tools.reader.read_char_STAR_ \x3d (function cljs$tools$reader$read_char_STAR_(rdr,backslash,opts,pending_forms){\nvar ch \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((!((ch \x3d\x3d null)))){\nvar token \x3d ((((cljs.tools.reader.macro_terminating_QMARK_(ch)) || (cljs.tools.reader.impl.utils.whitespace_QMARK_(ch))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(ch):cljs.tools.reader.read_token(rdr,new cljs.core.Keyword(null,\x22character\x22,\x22character\x22,380652989),ch));\nvar token_len \x3d token.length;\nif(((1) \x3d\x3d\x3d token_len)){\nreturn token.charAt((0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22newline\x22)){\nreturn \x22\\n\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22space\x22)){\nreturn \x22 \x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22tab\x22)){\nreturn \x22\\t\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22backspace\x22)){\nreturn \x22\\b\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22formfeed\x22)){\nreturn \x22\\f\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22return\x22)){\nreturn \x22\\r\x22;\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\x22u\x22))){\nvar c \x3d cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,(1),(4),(16));\nvar ic \x3d c.charCodeAt((0));\nif((((ic \x3e cljs.tools.reader.upper_limit)) \x26\x26 ((ic \x3c cljs.tools.reader.lower_limit)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_character_literal(rdr,ic.toString((16)));\n} else {\nreturn c;\n}\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\x22o\x22))){\nvar len \x3d (token_len - (1));\nif((len \x3e (3))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_octal_len(rdr,token);\n} else {\nvar offset \x3d (1);\nvar base \x3d (8);\nvar uc \x3d cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,offset,len,base);\nif((!(cljs.tools.reader.valid_octal_QMARK_(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(token,offset),base)))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn uc;\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_unsupported_character(rdr,token);\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n});\ncljs.tools.reader.starting_line_col_info \x3d (function cljs$tools$reader$starting_line_col_info(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [rdr.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),((rdr.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null) - (1)) | (0))], null);\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.ending_line_col_info \x3d (function cljs$tools$reader$ending_line_col_info(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [rdr.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),rdr.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null)], null);\n} else {\nreturn null;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.READ_EOF !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.tools.reader.READ_EOF \x3d (new Object());\n}\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.READ_FINISHED !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.tools.reader.READ_FINISHED \x3d (new Object());\n}\ncljs.tools.reader._STAR_read_delim_STAR_ \x3d false;\ncljs.tools.reader.read_delimited_internal \x3d (function cljs$tools$reader$read_delimited_internal(kind,delim,rdr,opts,pending_forms){\nvar vec__34951 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34951,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34951,(1),null);\nvar delim__$1 \x3d cljs.tools.reader.impl.utils.char$(delim);\nvar a \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nvar form \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(rdr,false,cljs.tools.reader.READ_EOF,delim__$1,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,delim__$1,opts,pending_forms));\nif((form \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)){\nreturn cljs.core.persistent_BANG_(a);\n} else {\nif((form \x3d\x3d\x3d cljs.tools.reader.READ_EOF)){\nreturn cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(rdr,kind,start_line,start_column,cljs.core.count(a));\n} else {\nvar G__36221 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(a,form);\na \x3d G__36221;\ncontinue;\n}\n}\nbreak;\n}\n});\n/**\n * Reads and returns a collection ended with delim\n */\ncljs.tools.reader.read_delimited \x3d (function cljs$tools$reader$read_delimited(kind,delim,rdr,opts,pending_forms){\nvar _STAR_read_delim_STAR__orig_val__34988 \x3d cljs.tools.reader._STAR_read_delim_STAR_;\nvar _STAR_read_delim_STAR__temp_val__34989 \x3d true;\n(cljs.tools.reader._STAR_read_delim_STAR_ \x3d _STAR_read_delim_STAR__temp_val__34989);\n\ntry{return cljs.tools.reader.read_delimited_internal(kind,delim,rdr,opts,pending_forms);\n}finally {(cljs.tools.reader._STAR_read_delim_STAR_ \x3d _STAR_read_delim_STAR__orig_val__34988);\n}});\n/**\n * Read in a list, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_list \x3d (function cljs$tools$reader$read_list(rdr,_,opts,pending_forms){\nvar vec__34995 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34995,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34995,(1),null);\nvar the_list \x3d cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),\x22)\x22,rdr,opts,pending_forms);\nvar vec__34998 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34998,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34998,(1),null);\nreturn cljs.core.with_meta(((cljs.core.empty_QMARK_(the_list))?cljs.core.List.EMPTY:cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,the_list)),(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar file \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),start_line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),start_column,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read in a vector, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_vector \x3d (function cljs$tools$reader$read_vector(rdr,_,opts,pending_forms){\nvar vec__35018 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35018,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35018,(1),null);\nvar the_vector \x3d cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),\x22]\x22,rdr,opts,pending_forms);\nvar vec__35021 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35021,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35021,(1),null);\nreturn cljs.core.with_meta(the_vector,(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar file \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),start_line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),start_column,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read in a map, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_map \x3d (function cljs$tools$reader$read_map(rdr,_,opts,pending_forms){\nvar vec__35040 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35040,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35040,(1),null);\nvar the_map \x3d cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),\x22}\x22,rdr,opts,pending_forms);\nvar map_count \x3d cljs.core.count(the_map);\nvar ks \x3d cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),the_map);\nvar key_set \x3d cljs.core.set(ks);\nvar vec__35043 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35043,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35043,(1),null);\nif(cljs.core.odd_QMARK_(map_count)){\ncljs.tools.reader.impl.errors.throw_odd_map(rdr,start_line,start_column,the_map);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(key_set),cljs.core.count(ks))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),ks);\n}\n\nreturn cljs.core.with_meta((((map_count \x3c\x3d ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD)))?cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array(the_map),true,true):cljs.core.PersistentHashMap.fromArray(cljs.core.to_array(the_map),true)),(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar file \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),start_line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),start_column,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null)], 0)):null));\n});\ncljs.tools.reader.read_number \x3d (function cljs$tools$reader$read_number(rdr,initch){\nvar sb \x3d (function (){var G__35063 \x3d (new goog.string.StringBuffer());\nG__35063.append(initch);\n\nreturn G__35063;\n})();\nvar ch \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.macros.call(null,ch));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn (ch \x3d\x3d null);\n}\n}\n})())){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\nif((ch \x3d\x3d null)){\n} else {\nrdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n}\n\nvar or__5025__auto__ \x3d cljs.tools.reader.impl.commons.match_number(s);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid_number(rdr,s);\n}\n} else {\nvar G__36250 \x3d (function (){var G__35106 \x3d sb;\nG__35106.append(ch);\n\nreturn G__35106;\n})();\nvar G__36251 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb \x3d G__36250;\nch \x3d G__36251;\ncontinue;\n}\nbreak;\n}\n});\ncljs.tools.reader.escape_char \x3d (function cljs$tools$reader$escape_char(sb,rdr){\nvar ch \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nvar G__35108 \x3d ch;\nswitch (G__35108) {\ncase \x22t\x22:\nreturn \x22\\t\x22;\n\nbreak;\ncase \x22r\x22:\nreturn \x22\\r\x22;\n\nbreak;\ncase \x22n\x22:\nreturn \x22\\n\x22;\n\nbreak;\ncase \x22\\\\\x22:\nreturn \x22\\\\\x22;\n\nbreak;\ncase \x22\\\x22\x22:\nreturn \x22\\\x22\x22;\n\nbreak;\ncase \x22b\x22:\nreturn \x22\\b\x22;\n\nbreak;\ncase \x22f\x22:\nreturn \x22\\f\x22;\n\nbreak;\ncase \x22u\x22:\nvar ch__$1 \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(((-1) \x3d\x3d\x3d parseInt((ch__$1 | (0)),(16)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_escape(rdr,ch__$1);\n} else {\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch__$1,(16),(4),true);\n}\n\nbreak;\ndefault:\nif(cljs.tools.reader.impl.utils.numeric_QMARK_(ch)){\nvar ch__$1 \x3d cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch,(8),(3),false);\nif(((ch__$1 | (0)) \x3e (255))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn ch__$1;\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_escape_char(rdr,ch);\n}\n\n}\n});\ncljs.tools.reader.read_string_STAR_ \x3d (function cljs$tools$reader$read_string_STAR_(reader,_,opts,pending_forms){\nvar sb \x3d (new goog.string.StringBuffer());\nvar ch \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif((ch \x3d\x3d null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(reader,new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\\x22\x22,sb], 0));\n} else {\nvar G__35118 \x3d ch;\nswitch (G__35118) {\ncase \x22\\\\\x22:\nvar G__36263 \x3d (function (){var G__35119 \x3d sb;\nG__35119.append(cljs.tools.reader.escape_char(sb,reader));\n\nreturn G__35119;\n})();\nvar G__36264 \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb \x3d G__36263;\nch \x3d G__36264;\ncontinue;\n\nbreak;\ncase \x22\\\x22\x22:\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n\nbreak;\ndefault:\nvar G__36269 \x3d (function (){var G__35123 \x3d sb;\nG__35123.append(ch);\n\nreturn G__35123;\n})();\nvar G__36270 \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb \x3d G__36269;\nch \x3d G__36270;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.loc_info \x3d (function cljs$tools$reader$loc_info(rdr,line,column){\nif((line \x3d\x3d null)){\nreturn null;\n} else {\nvar file \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nvar filem \x3d (((file \x3d\x3d null))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null));\nvar vec__35127 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35127,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35127,(1),null);\nvar lcm \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([filem,lcm], 0));\n}\n});\ncljs.tools.reader.read_symbol \x3d (function cljs$tools$reader$read_symbol(rdr,initch){\nvar vec__35141 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35141,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35141,(1),null);\nvar token \x3d cljs.tools.reader.read_token(rdr,new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),initch);\nif((token \x3d\x3d null)){\nreturn null;\n} else {\nvar G__35145 \x3d token;\nswitch (G__35145) {\ncase \x22nil\x22:\nreturn null;\n\nbreak;\ncase \x22true\x22:\nreturn true;\n\nbreak;\ncase \x22false\x22:\nreturn false;\n\nbreak;\ncase \x22/\x22:\nreturn new cljs.core.Symbol(null,\x22/\x22,\x22/\x22,-1371932971,null);\n\nbreak;\ndefault:\nvar p \x3d cljs.tools.reader.impl.commons.parse_symbol(token);\nif((!((p \x3d\x3d null)))){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(p.cljs$core$IIndexed$_nth$arity$2(null,(0)),p.cljs$core$IIndexed$_nth$arity$2(null,(1)));\nreturn sym.cljs$core$IWithMeta$_with_meta$arity$2(null,cljs.tools.reader.loc_info(rdr,line,column));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(rdr,new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),token);\n}\n\n}\n}\n});\n/**\n * Map from ns alias to ns, if non-nil, it will be used to resolve read-time\n * ns aliases.\n * \n * Defaults to nil\n */\ncljs.tools.reader._STAR_alias_map_STAR_ \x3d null;\ncljs.tools.reader.resolve_alias \x3d (function cljs$tools$reader$resolve_alias(sym){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader._STAR_alias_map_STAR_,sym);\n});\ncljs.tools.reader.resolve_ns \x3d (function cljs$tools$reader$resolve_ns(sym){\nvar or__5025__auto__ \x3d cljs.tools.reader.resolve_alias(sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.find_ns(sym);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ns \x3d temp__5825__auto__;\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.ns_name(ns));\n} else {\nreturn null;\n}\n}\n});\ncljs.tools.reader.read_keyword \x3d (function cljs$tools$reader$read_keyword(reader,initch,opts,pending_forms){\nvar ch \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)))){\nvar token \x3d cljs.tools.reader.read_token(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),ch);\nvar s \x3d cljs.tools.reader.impl.commons.parse_symbol(token);\nif((!((s \x3d\x3d null)))){\nvar ns \x3d s.cljs$core$IIndexed$_nth$arity$2(null,(0));\nvar name \x3d s.cljs$core$IIndexed$_nth$arity$2(null,(1));\nif((\x22:\x22 \x3d\x3d\x3d token.charAt((0)))){\nif((!((ns \x3d\x3d null)))){\nvar temp__5823__auto__ \x3d cljs.tools.reader.resolve_alias(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(ns,(1))));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ns__$1 \x3d temp__5823__auto__;\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),name);\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(\x27\x27));\n}\n} else {\nvar temp__5823__auto__ \x3d cljs.core._STAR_ns_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ns__$1 \x3d temp__5823__auto__;\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(name,(1)));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(reader,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invalid token: :\x22,token], 0));\n}\n}\n} else {\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(ns,name);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(\x27\x27));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_single_colon(reader);\n}\n});\n/**\n * Returns a function which wraps a reader in a call to sym\n */\ncljs.tools.reader.wrapping_reader \x3d (function cljs$tools$reader$wrapping_reader(sym){\nreturn (function (rdr,_,opts,pending_forms){\nreturn (new cljs.core.List(null,sym,(new cljs.core.List(null,(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)),null,(1),null)),(2),null));\n});\n});\n/**\n * Read metadata and return the following object with the metadata applied\n */\ncljs.tools.reader.read_meta \x3d (function cljs$tools$reader$read_meta(rdr,_,opts,pending_forms){\nif(((cljs.tools.reader.reader_types.source_logging_reader_QMARK_(rdr)) \x26\x26 ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(rdr))))))){\nreturn cljs.tools.reader.reader_types.log_source_STAR_(rdr,(function (){\nvar vec__35222 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35222,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35222,(1),null);\nvar m \x3d cljs.tools.reader.impl.utils.desugar_meta((cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\nif(cljs.core.map_QMARK_(m)){\n} else {\ncljs.tools.reader.impl.errors.throw_bad_metadata(rdr,m);\n}\n\nvar o \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IMeta$))))?true:false):false)){\nvar m__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d line;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq_QMARK_(o);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], 0)):m);\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IWithMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(o,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(o),m__$1], 0)));\n} else {\nreturn cljs.core.reset_meta_BANG_(o,m__$1);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_metadata_target(rdr,o);\n}\n}));\n} else {\nvar vec__35240 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35240,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35240,(1),null);\nvar m \x3d cljs.tools.reader.impl.utils.desugar_meta((cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\nif(cljs.core.map_QMARK_(m)){\n} else {\ncljs.tools.reader.impl.errors.throw_bad_metadata(rdr,m);\n}\n\nvar o \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IMeta$))))?true:false):false)){\nvar m__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d line;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq_QMARK_(o);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], 0)):m);\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IWithMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(o,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(o),m__$1], 0)));\n} else {\nreturn cljs.core.reset_meta_BANG_(o,m__$1);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_metadata_target(rdr,o);\n}\n}\n});\ncljs.tools.reader.read_set \x3d (function cljs$tools$reader$read_set(rdr,_,opts,pending_forms){\nvar vec__35260 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35260,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35260,(1),null);\nvar start_column__$1 \x3d (cljs.core.truth_(start_column)?((start_column - (1)) | (0)):null);\nvar coll \x3d cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),\x22}\x22,rdr,opts,pending_forms);\nvar the_set \x3d cljs.core.set(coll);\nvar vec__35263 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35263,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35263,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(coll),cljs.core.count(the_set))){\n} else {\ncljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),coll)], 0));\n}\n\nreturn cljs.core.with_meta(the_set,(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar file \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),start_line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),start_column__$1,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read and discard the first object from rdr\n */\ncljs.tools.reader.read_discard \x3d (function cljs$tools$reader$read_discard(rdr,_,opts,pending_forms){\nvar G__35274 \x3d rdr;\n(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(G__35274,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,G__35274,true,null,opts,pending_forms));\n\nreturn G__35274;\n});\ncljs.tools.reader.read_symbolic_value \x3d (function cljs$tools$reader$read_symbolic_value(rdr,_,opts,pending_forms){\nvar sym \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nvar G__35279 \x3d sym;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22NaN\x22,\x22NaN\x22,666918153,null),G__35279)){\nreturn Number.NaN;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22-Inf\x22,\x22-Inf\x22,-2123243689,null),G__35279)){\nreturn Number.NEGATIVE_INFINITY;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Inf\x22,\x22Inf\x22,647172781,null),G__35279)){\nreturn Number.POSITIVE_INFINITY;\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22Invalid token: ##\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27)], 0));\n\n}\n}\n}\n});\ncljs.tools.reader.RESERVED_FEATURES \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,new cljs.core.Keyword(null,\x22none\x22,\x22none\x22,1333468478),null], null), null);\ncljs.tools.reader.has_feature_QMARK_ \x3d (function cljs$tools$reader$has_feature_QMARK_(rdr,feature,opts){\nif((feature instanceof cljs.core.Keyword)){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),feature)) || (cljs.core.contains_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22features\x22,\x22features\x22,-1146962336)),feature)));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Feature should be a keyword: \x22,feature], 0));\n}\n});\ncljs.tools.reader.check_eof_error \x3d (function cljs$tools$reader$check_eof_error(form,rdr,first_line){\nif((form \x3d\x3d\x3d cljs.tools.reader.READ_EOF)){\nreturn cljs.tools.reader.impl.errors.throw_eof_error(rdr,(function (){var and__5023__auto__ \x3d (first_line \x3c (0));\nif(and__5023__auto__){\nreturn first_line;\n} else {\nreturn and__5023__auto__;\n}\n})());\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.check_reserved_features \x3d (function cljs$tools$reader$check_reserved_features(rdr,form){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.RESERVED_FEATURES,form))){\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Feature name \x22,form,\x22 is reserved\x22], 0));\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.check_invalid_read_cond \x3d (function cljs$tools$reader$check_invalid_read_cond(form,rdr,first_line){\nif((form \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)){\nif((first_line \x3c (0))){\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22read-cond requires an even number of forms\x22], 0));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22read-cond starting on line \x22,first_line,\x22 requires an even number of forms\x22], 0));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Read next form and suppress. Return nil or READ_FINISHED.\n */\ncljs.tools.reader.read_suppress \x3d (function cljs$tools$reader$read_suppress(first_line,rdr,opts,pending_forms){\nvar _STAR_suppress_read_STAR__orig_val__35331 \x3d cljs.tools.reader._STAR_suppress_read_STAR_;\nvar _STAR_suppress_read_STAR__temp_val__35332 \x3d true;\n(cljs.tools.reader._STAR_suppress_read_STAR_ \x3d _STAR_suppress_read_STAR__temp_val__35332);\n\ntry{var form \x3d (function (){var G__35334 \x3d rdr;\nvar G__35336 \x3d false;\nvar G__35337 \x3d cljs.tools.reader.READ_EOF;\nvar G__35338 \x3d \x22)\x22;\nvar G__35339 \x3d opts;\nvar G__35340 \x3d pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__35334,G__35336,G__35337,G__35338,G__35339,G__35340) : cljs.tools.reader.read_STAR_.call(null,G__35334,G__35336,G__35337,G__35338,G__35339,G__35340));\n})();\ncljs.tools.reader.check_eof_error(form,rdr,first_line);\n\nif((form \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nreturn null;\n}\n}finally {(cljs.tools.reader._STAR_suppress_read_STAR_ \x3d _STAR_suppress_read_STAR__orig_val__35331);\n}});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.tools.reader.NO_MATCH !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.tools.reader.NO_MATCH \x3d (new Object());\n}\n/**\n * Read next feature. If matched, read next form and return.\n * Otherwise, read and skip next form, returning READ_FINISHED or nil.\n */\ncljs.tools.reader.match_feature \x3d (function cljs$tools$reader$match_feature(first_line,rdr,opts,pending_forms){\nvar feature \x3d (function (){var G__35344 \x3d rdr;\nvar G__35345 \x3d false;\nvar G__35346 \x3d cljs.tools.reader.READ_EOF;\nvar G__35347 \x3d \x22)\x22;\nvar G__35348 \x3d opts;\nvar G__35349 \x3d pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__35344,G__35345,G__35346,G__35347,G__35348,G__35349) : cljs.tools.reader.read_STAR_.call(null,G__35344,G__35345,G__35346,G__35347,G__35348,G__35349));\n})();\ncljs.tools.reader.check_eof_error(feature,rdr,first_line);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(feature,cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\ncljs.tools.reader.check_reserved_features(rdr,feature);\n\nif(cljs.tools.reader.has_feature_QMARK_(rdr,feature,opts)){\nvar G__35350 \x3d (function (){var G__35352 \x3d rdr;\nvar G__35353 \x3d false;\nvar G__35354 \x3d cljs.tools.reader.READ_EOF;\nvar G__35355 \x3d \x22)\x22;\nvar G__35356 \x3d opts;\nvar G__35357 \x3d pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__35352,G__35353,G__35354,G__35355,G__35356,G__35357) : cljs.tools.reader.read_STAR_.call(null,G__35352,G__35353,G__35354,G__35355,G__35356,G__35357));\n})();\ncljs.tools.reader.check_eof_error(G__35350,rdr,first_line);\n\ncljs.tools.reader.check_invalid_read_cond(G__35350,rdr,first_line);\n\nreturn G__35350;\n} else {\nvar or__5025__auto__ \x3d cljs.tools.reader.read_suppress(first_line,rdr,opts,pending_forms);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.tools.reader.NO_MATCH;\n}\n}\n}\n});\ncljs.tools.reader.read_cond_delimited \x3d (function cljs$tools$reader$read_cond_delimited(rdr,splicing,opts,pending_forms){\nvar first_line \x3d ((cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr))?cljs.tools.reader.reader_types.get_line_number(rdr):(-1));\nvar result \x3d (function (){var matched \x3d cljs.tools.reader.NO_MATCH;\nvar finished \x3d null;\nwhile(true){\nif((matched \x3d\x3d\x3d cljs.tools.reader.NO_MATCH)){\nvar match \x3d cljs.tools.reader.match_feature(first_line,rdr,opts,pending_forms);\nif((match \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nvar G__36332 \x3d match;\nvar G__36333 \x3d null;\nmatched \x3d G__36332;\nfinished \x3d G__36333;\ncontinue;\n}\n} else {\nif((!((finished \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)))){\nvar G__36334 \x3d matched;\nvar G__36335 \x3d cljs.tools.reader.read_suppress(first_line,rdr,opts,pending_forms);\nmatched \x3d G__36334;\nfinished \x3d G__36335;\ncontinue;\n} else {\nreturn matched;\n\n}\n}\nbreak;\n}\n})();\nif((result \x3d\x3d\x3d cljs.tools.reader.READ_FINISHED)){\nreturn rdr;\n} else {\nif(cljs.core.truth_(splicing)){\nif((((!((result \x3d\x3d null))))?(((((result.cljs$lang$protocol_mask$partition0$ \x26 (16777216))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d result.cljs$core$ISequential$))))?true:false):false)){\ncljs.tools.reader.goog$module$goog$array.insertArrayAt(pending_forms,cljs.core.to_array(result),(0));\n\nreturn rdr;\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Spliced form list in read-cond-splicing must implement ISequential\x22], 0));\n}\n} else {\nreturn result;\n}\n}\n});\ncljs.tools.reader.read_cond \x3d (function cljs$tools$reader$read_cond(rdr,_,opts,pending_forms){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d opts;\nif(cljs.core.truth_(and__5023__auto__)){\nvar G__35381 \x3d new cljs.core.Keyword(null,\x22read-cond\x22,\x22read-cond\x22,1056899244).cljs$core$IFn$_invoke$arity$1(opts);\nvar fexpr__35380 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22preserve\x22,\x22preserve\x22,1276846509),null,new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),null], null), null);\nreturn (fexpr__35380.cljs$core$IFn$_invoke$arity$1 ? fexpr__35380.cljs$core$IFn$_invoke$arity$1(G__35381) : fexpr__35380.call(null,G__35381));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Conditional read not allowed\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22runtime-exception\x22,\x22runtime-exception\x22,-1495664514)], null));\n} else {\n}\n\nvar temp__5823__auto__ \x3d rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ch \x3d temp__5823__auto__;\nvar splicing \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ch,\x22@\x22);\nvar ch__$1 \x3d ((splicing)?rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null):ch);\nif(splicing){\nif(cljs.core.truth_(cljs.tools.reader._STAR_read_delim_STAR_)){\n} else {\ncljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22cond-splice not in list\x22], 0));\n}\n} else {\n}\n\nvar temp__5823__auto____$1 \x3d ((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch__$1))?cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr):ch__$1);\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar ch__$2 \x3d temp__5823__auto____$1;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ch__$2,\x22(\x22)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22read-cond body must be a list\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22runtime-exception\x22,\x22runtime-exception\x22,-1495664514)], null));\n} else {\nvar _STAR_suppress_read_STAR__orig_val__35395 \x3d cljs.tools.reader._STAR_suppress_read_STAR_;\nvar _STAR_suppress_read_STAR__temp_val__35396 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_suppress_read_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22preserve\x22,\x22preserve\x22,1276846509),new cljs.core.Keyword(null,\x22read-cond\x22,\x22read-cond\x22,1056899244).cljs$core$IFn$_invoke$arity$1(opts));\n}\n})();\n(cljs.tools.reader._STAR_suppress_read_STAR_ \x3d _STAR_suppress_read_STAR__temp_val__35396);\n\ntry{if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)){\nreturn cljs.tools.reader.impl.utils.reader_conditional(cljs.tools.reader.read_list(rdr,ch__$2,opts,pending_forms),splicing);\n} else {\nreturn cljs.tools.reader.read_cond_delimited(rdr,splicing,opts,pending_forms);\n}\n}finally {(cljs.tools.reader._STAR_suppress_read_STAR_ \x3d _STAR_suppress_read_STAR__orig_val__35395);\n}}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n});\ncljs.tools.reader.arg_env \x3d null;\n/**\n * Get a symbol for an anonymous ?argument?\n */\ncljs.tools.reader.garg \x3d (function cljs$tools$reader$garg(n){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([((((-1) \x3d\x3d\x3d n))?\x22rest\x22:[\x22p\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n)].join(\x27\x27)),\x22__\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id()),\x22#\x22].join(\x27\x27));\n});\ncljs.tools.reader.read_fn \x3d (function cljs$tools$reader$read_fn(rdr,_,opts,pending_forms){\nif(cljs.core.truth_(cljs.tools.reader.arg_env)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Nested #()s are not allowed\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22illegal-state\x22,\x22illegal-state\x22,-1519851182)], null));\n} else {\n}\n\nvar arg_env_orig_val__35414 \x3d cljs.tools.reader.arg_env;\nvar arg_env_temp_val__35416 \x3d cljs.core.sorted_map();\n(cljs.tools.reader.arg_env \x3d arg_env_temp_val__35416);\n\ntry{var form \x3d (function (){var G__35418 \x3d (function (){var G__35424 \x3d rdr;\ncljs.tools.reader.reader_types.unread(G__35424,\x22(\x22);\n\nreturn G__35424;\n})();\nvar G__35419 \x3d true;\nvar G__35420 \x3d null;\nvar G__35421 \x3d opts;\nvar G__35422 \x3d pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(G__35418,G__35419,G__35420,G__35421,G__35422) : cljs.tools.reader.read_STAR_.call(null,G__35418,G__35419,G__35420,G__35421,G__35422));\n})();\nvar rargs \x3d cljs.core.rseq(cljs.tools.reader.arg_env);\nvar args \x3d ((rargs)?(function (){var higharg \x3d cljs.core.key(cljs.core.first(rargs));\nvar args \x3d (function (){var i \x3d (1);\nvar args \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nif((i \x3e higharg)){\nreturn cljs.core.persistent_BANG_(args);\n} else {\nvar G__36364 \x3d (i + (1));\nvar G__36365 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(args,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.arg_env,i);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.tools.reader.garg(i);\n}\n})());\ni \x3d G__36364;\nargs \x3d G__36365;\ncontinue;\n}\nbreak;\n}\n})();\nvar args__$1 \x3d (cljs.core.truth_(cljs.tools.reader.arg_env.call(null,(-1)))?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(args,new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.arg_env.call(null,(-1))], 0)):args);\nreturn args__$1;\n})():cljs.core.PersistentVector.EMPTY);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(new cljs.core.List(null,args,(new cljs.core.List(null,form,null,(1),null)),(2),null)),(3),null));\n}finally {(cljs.tools.reader.arg_env \x3d arg_env_orig_val__35414);\n}});\n/**\n * Registers an argument to the arg-env\n */\ncljs.tools.reader.register_arg \x3d (function cljs$tools$reader$register_arg(n){\nif(cljs.core.truth_(cljs.tools.reader.arg_env)){\nvar temp__5823__auto__ \x3d cljs.tools.reader.arg_env.call(null,n);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ret \x3d temp__5823__auto__;\nreturn ret;\n} else {\nvar g \x3d cljs.tools.reader.garg(n);\n(cljs.tools.reader.arg_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.tools.reader.arg_env,n,g));\n\nreturn g;\n}\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Arg literal not in #()\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22illegal-state\x22,\x22illegal-state\x22,-1519851182)], null));\n}\n});\ncljs.tools.reader.read_arg \x3d (function cljs$tools$reader$read_arg(rdr,pct,opts,pending_forms){\nif((cljs.tools.reader.arg_env \x3d\x3d null)){\nreturn cljs.tools.reader.read_symbol(rdr,pct);\n} else {\nvar ch \x3d rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\nif(((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)) || (((cljs.tools.reader.macro_terminating_QMARK_(ch)) || ((ch \x3d\x3d null)))))){\nreturn cljs.tools.reader.register_arg((1));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ch,\x22\x26\x22)){\nrdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\n\nreturn cljs.tools.reader.register_arg((-1));\n} else {\nvar n \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((!(cljs.core.integer_QMARK_(n)))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Arg literal must be %, %\x26 or %integer\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22illegal-state\x22,\x22illegal-state\x22,-1519851182)], null));\n} else {\nreturn cljs.tools.reader.register_arg(n);\n}\n\n}\n}\n}\n});\ncljs.tools.reader.gensym_env \x3d null;\ncljs.tools.reader.read_unquote \x3d (function cljs$tools$reader$read_unquote(rdr,comma,opts,pending_forms){\nvar temp__5823__auto__ \x3d rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ch \x3d temp__5823__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22@\x22,ch)){\nreturn cljs.tools.reader.wrapping_reader(new cljs.core.Symbol(\x22clojure.core\x22,\x22unquote-splicing\x22,\x22clojure.core/unquote-splicing\x22,-552003150,null))((function (){var G__35477 \x3d rdr;\nG__35477.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\n\nreturn G__35477;\n})(),\x22@\x22,opts,pending_forms);\n} else {\nreturn cljs.tools.reader.wrapping_reader(new cljs.core.Symbol(\x22clojure.core\x22,\x22unquote\x22,\x22clojure.core/unquote\x22,843087510,null))(rdr,\x22~\x22,opts,pending_forms);\n}\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.unquote_splicing_QMARK_ \x3d (function cljs$tools$reader$unquote_splicing_QMARK_(form){\nreturn ((cljs.core.seq_QMARK_(form)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(form),new cljs.core.Symbol(\x22clojure.core\x22,\x22unquote-splicing\x22,\x22clojure.core/unquote-splicing\x22,-552003150,null))));\n});\ncljs.tools.reader.unquote_QMARK_ \x3d (function cljs$tools$reader$unquote_QMARK_(form){\nreturn ((cljs.core.seq_QMARK_(form)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(form),new cljs.core.Symbol(\x22clojure.core\x22,\x22unquote\x22,\x22clojure.core/unquote\x22,843087510,null))));\n});\n/**\n * Expand a list by resolving its syntax quotes and unquotes\n */\ncljs.tools.reader.expand_list \x3d (function cljs$tools$reader$expand_list(s){\nvar s__$1 \x3d cljs.core.seq(s);\nvar r \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nif(s__$1){\nvar item \x3d cljs.core.first(s__$1);\nvar ret \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(r,((cljs.tools.reader.unquote_QMARK_(item))?(new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22list\x22,\x22clojure.core/list\x22,-1119203325,null),(new cljs.core.List(null,cljs.core.second(item),null,(1),null)),(2),null)):((cljs.tools.reader.unquote_splicing_QMARK_(item))?cljs.core.second(item):(new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22list\x22,\x22clojure.core/list\x22,-1119203325,null),(new cljs.core.List(null,(cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1(item) : cljs.tools.reader.syntax_quote_STAR_.call(null,item)),null,(1),null)),(2),null))\n)));\nvar G__36393 \x3d cljs.core.next(s__$1);\nvar G__36394 \x3d ret;\ns__$1 \x3d G__36393;\nr \x3d G__36394;\ncontinue;\n} else {\nreturn cljs.core.seq(cljs.core.persistent_BANG_(r));\n}\nbreak;\n}\n});\n/**\n * Flatten a map into a seq of alternate keys and values\n */\ncljs.tools.reader.flatten_map \x3d (function cljs$tools$reader$flatten_map(form){\nvar s \x3d cljs.core.seq(form);\nvar key_vals \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nif(s){\nvar e \x3d cljs.core.first(s);\nvar G__36397 \x3d cljs.core.next(s);\nvar G__36398 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(key_vals,cljs.core.key(e)),cljs.core.val(e));\ns \x3d G__36397;\nkey_vals \x3d G__36398;\ncontinue;\n} else {\nreturn cljs.core.seq(cljs.core.persistent_BANG_(key_vals));\n}\nbreak;\n}\n});\ncljs.tools.reader.register_gensym \x3d (function cljs$tools$reader$register_gensym(sym){\nif(cljs.core.not(cljs.tools.reader.gensym_env)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Gensym literal not in syntax-quote\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22illegal-state\x22,\x22illegal-state\x22,-1519851182)], null));\n} else {\n}\n\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.gensym_env,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar gs \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.name(sym),(0),(((cljs.core.name(sym)).length) - (1))),\x22__\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id()),\x22__auto__\x22].join(\x27\x27));\n(cljs.tools.reader.gensym_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.tools.reader.gensym_env,sym,gs));\n\nreturn gs;\n}\n});\ncljs.tools.reader.add_meta \x3d (function cljs$tools$reader$add_meta(form,ret){\nif((function (){var and__5023__auto__ \x3d (((!((form \x3d\x3d null))))?(((((form.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d form.cljs$core$IWithMeta$))))?true:false):false);\nif(and__5023__auto__){\nreturn cljs.core.seq(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.meta(form),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0)));\n} else {\nreturn and__5023__auto__;\n}\n})()){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22with-meta\x22,\x22cljs.core/with-meta\x22,749126446,null),(new cljs.core.List(null,ret,(new cljs.core.List(null,(function (){var G__35548 \x3d cljs.core.meta(form);\nreturn (cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1(G__35548) : cljs.tools.reader.syntax_quote_STAR_.call(null,G__35548));\n})(),null,(1),null)),(2),null)),(3),null));\n} else {\nreturn ret;\n}\n});\ncljs.tools.reader.syntax_quote_coll \x3d (function cljs$tools$reader$syntax_quote_coll(type,coll){\nvar res \x3d (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22sequence\x22,\x22cljs.core/sequence\x22,1908459032,null),(new cljs.core.List(null,cljs.core.cons(new cljs.core.Symbol(\x22cljs.core\x22,\x22concat\x22,\x22cljs.core/concat\x22,-1133584918,null),cljs.tools.reader.expand_list(coll)),null,(1),null)),(2),null));\nif(cljs.core.truth_(type)){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22apply\x22,\x22cljs.core/apply\x22,1757277831,null),(new cljs.core.List(null,type,(new cljs.core.List(null,res,null,(1),null)),(2),null)),(3),null));\n} else {\nreturn res;\n}\n});\n/**\n * Decide which map type to use, array-map if less than 16 elements\n */\ncljs.tools.reader.map_func \x3d (function cljs$tools$reader$map_func(coll){\nif((cljs.core.count(coll) \x3e\x3d (16))){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22hash-map\x22,\x22cljs.core/hash-map\x22,303385767,null);\n} else {\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22array-map\x22,\x22cljs.core/array-map\x22,-1519210683,null);\n}\n});\ncljs.tools.reader.bool_QMARK_ \x3d (function cljs$tools$reader$bool_QMARK_(x){\nreturn (((x instanceof Boolean)) || (((x \x3d\x3d\x3d true) || (x \x3d\x3d\x3d false))));\n});\n/**\n * Resolve a symbol s into its fully qualified namespace version\n */\ncljs.tools.reader.resolve_symbol \x3d (function cljs$tools$reader$resolve_symbol(s){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22resolve-symbol is not implemented\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),s], null));\n});\ncljs.tools.reader.syntax_quote_STAR_ \x3d (function cljs$tools$reader$syntax_quote_STAR_(form){\nreturn cljs.tools.reader.add_meta(form,((cljs.core.special_symbol_QMARK_(form))?(new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,form,null,(1),null)),(2),null)):(((form instanceof cljs.core.Symbol))?(new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.core.namespace(form));\nif(and__5023__auto__){\nreturn goog.string.endsWith(cljs.core.name(form),\x22#\x22);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.tools.reader.register_gensym(form):(function (){var sym \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(form);\nif(cljs.core.truth_(goog.string.endsWith(sym,\x22.\x22))){\nvar csym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(sym,(0),(((sym).length) - (1))));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.resolve_symbol.call(null,csym)),\x22.\x22].join(\x27\x27));\n} else {\nreturn cljs.tools.reader.resolve_symbol.call(null,form);\n}\n})()),null,(1),null)),(2),null)):((cljs.tools.reader.unquote_QMARK_(form))?cljs.core.second(form):((cljs.tools.reader.unquote_splicing_QMARK_(form))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22unquote-splice not in list\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22illegal-state\x22,\x22illegal-state\x22,-1519851182)], null))})():((cljs.core.coll_QMARK_(form))?(((((!((form \x3d\x3d null))))?(((((form.cljs$lang$protocol_mask$partition0$ \x26 (67108864))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d form.cljs$core$IRecord$))))?true:false):false))?form:((cljs.core.map_QMARK_(form))?cljs.tools.reader.syntax_quote_coll(cljs.tools.reader.map_func(form),cljs.tools.reader.flatten_map(form)):((cljs.core.vector_QMARK_(form))?(new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22vec\x22,\x22cljs.core/vec\x22,307622519,null),(new cljs.core.List(null,cljs.tools.reader.syntax_quote_coll(null,form),null,(1),null)),(2),null)):((cljs.core.set_QMARK_(form))?cljs.tools.reader.syntax_quote_coll(new cljs.core.Symbol(\x22cljs.core\x22,\x22hash-set\x22,\x22cljs.core/hash-set\x22,1130426749,null),form):((((cljs.core.seq_QMARK_(form)) || (cljs.core.list_QMARK_(form))))?(function (){var seq \x3d cljs.core.seq(form);\nif(seq){\nreturn cljs.tools.reader.syntax_quote_coll(null,seq);\n} else {\nreturn cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22list\x22,\x22cljs.core/list\x22,-1331406371,null));\n}\n})():(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Unknown Collection type\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22unsupported-operation\x22,\x22unsupported-operation\x22,1890540953)], null))})()\n))))):(((((form instanceof cljs.core.Keyword)) || (((typeof form \x3d\x3d\x3d \x27number\x27) || (((typeof form \x3d\x3d\x3d \x27string\x27) || ((((form \x3d\x3d null)) || (((cljs.tools.reader.bool_QMARK_(form)) || ((form instanceof RegExp))))))))))))?form:(new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,form,null,(1),null)),(2),null))\n)))))));\n});\ncljs.tools.reader.read_syntax_quote \x3d (function cljs$tools$reader$read_syntax_quote(rdr,backquote,opts,pending_forms){\nvar gensym_env_orig_val__35728 \x3d cljs.tools.reader.gensym_env;\nvar gensym_env_temp_val__35729 \x3d cljs.core.PersistentArrayMap.EMPTY;\n(cljs.tools.reader.gensym_env \x3d gensym_env_temp_val__35729);\n\ntry{return cljs.tools.reader.syntax_quote_STAR_((cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\n}finally {(cljs.tools.reader.gensym_env \x3d gensym_env_orig_val__35728);\n}});\ncljs.tools.reader.read_namespaced_map \x3d (function cljs$tools$reader$read_namespaced_map(rdr,_,opts,pending_forms){\nvar vec__35749 \x3d cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35749,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35749,(1),null);\nvar token \x3d cljs.tools.reader.read_token(rdr,new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),cljs.tools.reader.reader_types.read_char(rdr));\nvar temp__5823__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\x22:\x22))?cljs.core.ns_name(cljs.core._STAR_ns_STAR_):((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22:\x22,cljs.core.first(token)))?(function (){var G__35759 \x3d token;\nvar G__35759__$1 \x3d (((G__35759 \x3d\x3d null))?null:cljs.core.subs.cljs$core$IFn$_invoke$arity$2(G__35759,(1)));\nvar G__35759__$2 \x3d (((G__35759__$1 \x3d\x3d null))?null:cljs.tools.reader.impl.commons.parse_symbol(G__35759__$1));\nvar G__35759__$3 \x3d (((G__35759__$2 \x3d\x3d null))?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(G__35759__$2));\nvar G__35759__$4 \x3d (((G__35759__$3 \x3d\x3d null))?null:cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(G__35759__$3));\nif((G__35759__$4 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.tools.reader.resolve_ns(G__35759__$4);\n}\n})():(function (){var G__35768 \x3d token;\nvar G__35768__$1 \x3d (((G__35768 \x3d\x3d null))?null:cljs.tools.reader.impl.commons.parse_symbol(G__35768));\nif((G__35768__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(G__35768__$1);\n}\n})()\n));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ns \x3d temp__5823__auto__;\nvar ch \x3d cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr);\nif((ch \x3d\x3d\x3d \x22{\x22)){\nvar items \x3d cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),\x22}\x22,rdr,opts,pending_forms);\nvar vec__35783 \x3d cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35783,(0),null);\nvar end_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35783,(1),null);\nif(cljs.core.odd_QMARK_(cljs.core.count(items))){\ncljs.tools.reader.impl.errors.throw_odd_map(rdr,null,null,items);\n} else {\n}\n\nvar keys \x3d cljs.tools.reader.impl.utils.namespace_keys(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),items));\nvar vals \x3d cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(items));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(cljs.core.set(keys)),cljs.core.count(keys))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),keys);\n}\n\nreturn cljs.core.with_meta(cljs.core.zipmap(keys,vals),(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar file \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),start_line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),start_column,new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),end_line,new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),end_column], null)], 0)):null));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_ns_map_no_map(rdr,token);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_ns(rdr,token);\n}\n});\ncljs.tools.reader.macros \x3d (function cljs$tools$reader$macros(ch){\nvar G__35810 \x3d ch;\nswitch (G__35810) {\ncase \x22\\\x22\x22:\nreturn cljs.tools.reader.read_string_STAR_;\n\nbreak;\ncase \x22:\x22:\nreturn cljs.tools.reader.read_keyword;\n\nbreak;\ncase \x22;\x22:\nreturn cljs.tools.reader.impl.commons.read_comment;\n\nbreak;\ncase \x22\x27\x22:\nreturn cljs.tools.reader.wrapping_reader(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null));\n\nbreak;\ncase \x22@\x22:\nreturn cljs.tools.reader.wrapping_reader(new cljs.core.Symbol(\x22clojure.core\x22,\x22deref\x22,\x22clojure.core/deref\x22,188719157,null));\n\nbreak;\ncase \x22^\x22:\nreturn cljs.tools.reader.read_meta;\n\nbreak;\ncase \x22`\x22:\nreturn cljs.tools.reader.read_syntax_quote;\n\nbreak;\ncase \x22~\x22:\nreturn cljs.tools.reader.read_unquote;\n\nbreak;\ncase \x22(\x22:\nreturn cljs.tools.reader.read_list;\n\nbreak;\ncase \x22)\x22:\nreturn cljs.tools.reader.read_unmatched_delimiter;\n\nbreak;\ncase \x22[\x22:\nreturn cljs.tools.reader.read_vector;\n\nbreak;\ncase \x22]\x22:\nreturn cljs.tools.reader.read_unmatched_delimiter;\n\nbreak;\ncase \x22{\x22:\nreturn cljs.tools.reader.read_map;\n\nbreak;\ncase \x22}\x22:\nreturn cljs.tools.reader.read_unmatched_delimiter;\n\nbreak;\ncase \x22\\\\\x22:\nreturn cljs.tools.reader.read_char_STAR_;\n\nbreak;\ncase \x22%\x22:\nreturn cljs.tools.reader.read_arg;\n\nbreak;\ncase \x22#\x22:\nreturn cljs.tools.reader.read_dispatch;\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\ncljs.tools.reader.dispatch_macros \x3d (function cljs$tools$reader$dispatch_macros(ch){\nvar G__35847 \x3d ch;\nswitch (G__35847) {\ncase \x22^\x22:\nreturn cljs.tools.reader.read_meta;\n\nbreak;\ncase \x22\x27\x22:\nreturn cljs.tools.reader.wrapping_reader(new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null));\n\nbreak;\ncase \x22(\x22:\nreturn cljs.tools.reader.read_fn;\n\nbreak;\ncase \x22{\x22:\nreturn cljs.tools.reader.read_set;\n\nbreak;\ncase \x22\x3c\x22:\nreturn cljs.tools.reader.impl.commons.throwing_reader(\x22Unreadable form\x22);\n\nbreak;\ncase \x22\x3d\x22:\nreturn cljs.tools.reader.impl.commons.throwing_reader(\x22read-eval not supported\x22);\n\nbreak;\ncase \x22\\\x22\x22:\nreturn cljs.tools.reader.read_regex;\n\nbreak;\ncase \x22!\x22:\nreturn cljs.tools.reader.impl.commons.read_comment;\n\nbreak;\ncase \x22_\x22:\nreturn cljs.tools.reader.read_discard;\n\nbreak;\ncase \x22?\x22:\nreturn cljs.tools.reader.read_cond;\n\nbreak;\ncase \x22:\x22:\nreturn cljs.tools.reader.read_namespaced_map;\n\nbreak;\ncase \x22#\x22:\nreturn cljs.tools.reader.read_symbolic_value;\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\ncljs.tools.reader.read_tagged \x3d (function cljs$tools$reader$read_tagged(rdr,initch,opts,pending_forms){\nvar tag \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((!((tag instanceof cljs.core.Symbol)))){\ncljs.tools.reader.impl.errors.throw_bad_reader_tag(rdr,tag);\n} else {\n}\n\nif(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)){\nreturn cljs.core.tagged_literal(tag,(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\n} else {\nvar temp__5823__auto__ \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_data_readers_STAR_.call(null,tag);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1(tag) : cljs.tools.reader.default_data_readers.call(null,tag));\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar f \x3d temp__5823__auto__;\nvar G__35859 \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__35859) : f.call(null,G__35859));\n} else {\nvar temp__5823__auto____$1 \x3d cljs.tools.reader._STAR_default_data_reader_fn_STAR_;\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar f \x3d temp__5823__auto____$1;\nvar G__35864 \x3d tag;\nvar G__35865 \x3d (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__35864,G__35865) : f.call(null,G__35864,G__35865));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_unknown_reader_tag(rdr,tag);\n}\n}\n}\n});\n/**\n * Map from reader tag symbols to data reader Vars.\n * Reader tags without namespace qualifiers are reserved for Clojure.\n * This light version of tools.reader has no implementation for default\n * reader tags such as #inst and #uuid.\n */\ncljs.tools.reader._STAR_data_readers_STAR_ \x3d cljs.core.PersistentArrayMap.EMPTY;\n/**\n * When no data reader is found for a tag and *default-data-reader-fn*\n * is non-nil, it will be called with two arguments, the tag and the value.\n * If *default-data-reader-fn* is nil (the default value), an exception\n * will be thrown for the unknown tag.\n */\ncljs.tools.reader._STAR_default_data_reader_fn_STAR_ \x3d null;\ncljs.tools.reader._STAR_suppress_read_STAR_ \x3d false;\n/**\n * Default map of data reader functions provided by Clojure.\n * May be overridden by binding *data-readers*\n */\ncljs.tools.reader.default_data_readers \x3d cljs.core.PersistentArrayMap.EMPTY;\ncljs.tools.reader.read_STAR__internal \x3d (function cljs$tools$reader$read_STAR__internal(reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms){\nwhile(true){\nif(((cljs.tools.reader.reader_types.source_logging_reader_QMARK_(reader)) \x26\x26 ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(reader.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null))))))){\nreturn cljs.tools.reader.reader_types.log_source_STAR_(reader,(function (){\nwhile(true){\nif((!(cljs.tools.reader.goog$module$goog$array.isEmpty(pending_forms)))){\nvar form \x3d (pending_forms[(0)]);\ncljs.tools.reader.goog$module$goog$array.removeAt(pending_forms,(0));\n\nreturn form;\n} else {\nvar ch \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)){\ncontinue;\n} else {\nif((ch \x3d\x3d null)){\nif(eof_error_QMARK_){\nreturn cljs.tools.reader.impl.errors.throw_eof_error(reader,null);\n} else {\nreturn sentinel;\n}\n} else {\nif((ch \x3d\x3d\x3d return_on)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nif(cljs.tools.reader.impl.commons.number_literal_QMARK_(reader,ch)){\nreturn cljs.tools.reader.read_number(reader,ch);\n} else {\nvar f \x3d cljs.tools.reader.macros(ch);\nif((!((f \x3d\x3d null)))){\nvar res \x3d (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(reader,ch,opts,pending_forms) : f.call(null,reader,ch,opts,pending_forms));\nif((res \x3d\x3d\x3d reader)){\ncontinue;\n} else {\nreturn res;\n}\n} else {\nreturn cljs.tools.reader.read_symbol(reader,ch);\n}\n\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n} else {\nif((!(cljs.tools.reader.goog$module$goog$array.isEmpty(pending_forms)))){\nvar form \x3d (pending_forms[(0)]);\ncljs.tools.reader.goog$module$goog$array.removeAt(pending_forms,(0));\n\nreturn form;\n} else {\nvar ch \x3d reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)){\ncontinue;\n} else {\nif((ch \x3d\x3d null)){\nif(eof_error_QMARK_){\nreturn cljs.tools.reader.impl.errors.throw_eof_error(reader,null);\n} else {\nreturn sentinel;\n}\n} else {\nif((ch \x3d\x3d\x3d return_on)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nif(cljs.tools.reader.impl.commons.number_literal_QMARK_(reader,ch)){\nreturn cljs.tools.reader.read_number(reader,ch);\n} else {\nvar f \x3d cljs.tools.reader.macros(ch);\nif((!((f \x3d\x3d null)))){\nvar res \x3d (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(reader,ch,opts,pending_forms) : f.call(null,reader,ch,opts,pending_forms));\nif((res \x3d\x3d\x3d reader)){\ncontinue;\n} else {\nreturn res;\n}\n} else {\nreturn cljs.tools.reader.read_symbol(reader,ch);\n}\n\n}\n}\n}\n}\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.read_STAR_ \x3d (function cljs$tools$reader$read_STAR_(var_args){\nvar G__35897 \x3d arguments.length;\nswitch (G__35897) {\ncase 5:\nreturn cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 \x3d (function (reader,eof_error_QMARK_,sentinel,opts,pending_forms){\nreturn cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(reader,eof_error_QMARK_,sentinel,null,opts,pending_forms);\n}));\n\n(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 \x3d (function (reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms){\ntry{return cljs.tools.reader.read_STAR__internal(reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms);\n}catch (e35913){if((e35913 instanceof Error)){\nvar e \x3d e35913;\nif(cljs.tools.reader.impl.utils.ex_info_QMARK_(e)){\nvar d \x3d cljs.core.ex_data(e);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(d))){\nthrow e;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(e.message,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098)], null),d,((cljs.tools.reader.reader_types.indexing_reader_QMARK_(reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),reader.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),reader.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),reader.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(null)], null):null)], 0)),e);\n}\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(e.message,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098)], null),((cljs.tools.reader.reader_types.indexing_reader_QMARK_(reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),reader.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),reader.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),reader.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(null)], null):null)], 0)),e);\n}\n} else {\nthrow e35913;\n\n}\n}}));\n\n(cljs.tools.reader.read_STAR_.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Reads the first object from an IPushbackReader.\n * Returns the object read. If EOF, throws if eof-error? is true.\n * Otherwise returns sentinel. If no stream is provided, *in* will be used.\n * \n * Opts is a persistent map with valid keys:\n * :read-cond - :allow to process reader conditionals, or\n * :preserve to keep all branches\n * :features - persistent set of feature keywords for reader conditionals\n * :eof - on eof, return value unless :eofthrow, then throw.\n * if not specified, will throw\n * \n * To read data structures only, use cljs.tools.reader.edn/read\n * \n * Note that the function signature of cljs.tools.reader/read and\n * cljs.tools.reader.edn/read is not the same for eof-handling\n */\ncljs.tools.reader.read \x3d (function cljs$tools$reader$read(var_args){\nvar G__35934 \x3d arguments.length;\nswitch (G__35934) {\ncase 1:\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1 \x3d (function (reader){\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(reader,true,null);\n}));\n\n(cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__35943,reader){\nvar map__35949 \x3d p__35943;\nvar map__35949__$1 \x3d cljs.core.__destructure_map(map__35949);\nvar opts \x3d map__35949__$1;\nvar eof \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__35949__$1,new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237),new cljs.core.Keyword(null,\x22eofthrow\x22,\x22eofthrow\x22,-334166531));\nreturn cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(reader,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(eof,new cljs.core.Keyword(null,\x22eofthrow\x22,\x22eofthrow\x22,-334166531)),eof,null,opts,cljs.core.to_array(cljs.core.PersistentVector.EMPTY));\n}));\n\n(cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3 \x3d (function (reader,eof_error_QMARK_,sentinel){\nreturn cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(reader,eof_error_QMARK_,sentinel,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.to_array(cljs.core.PersistentVector.EMPTY));\n}));\n\n(cljs.tools.reader.read.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Reads one object from the string s.\n * Returns nil when s is nil or empty.\n * \n * To read data structures only, use cljs.tools.reader.edn/read-string\n * \n * Note that the function signature of cljs.tools.reader/read-string and\n * cljs.tools.reader.edn/read-string is not the same for eof-handling\n */\ncljs.tools.reader.read_string \x3d (function cljs$tools$reader$read_string(var_args){\nvar G__35978 \x3d arguments.length;\nswitch (G__35978) {\ncase 1:\nreturn cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,s);\n}));\n\n(cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d s;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!((s \x3d\x3d\x3d \x22\x22)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(opts,cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1(s));\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.read_string.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like read, and taking the same args. reader must be a SourceLoggingPushbackReader.\n * Returns a vector containing the object read and the (whitespace-trimmed) string read.\n */\ncljs.tools.reader.read_PLUS_string \x3d (function cljs$tools$reader$read_PLUS_string(var_args){\nvar G__36007 \x3d arguments.length;\nswitch (G__36007) {\ncase 1:\nreturn cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 3:\nreturn cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1 \x3d (function (stream){\nreturn cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3(stream,true,null);\n}));\n\n(cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3 \x3d (function (stream,eof_error_QMARK_,eof_value){\nvar buf \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(stream.frames));\nvar _ \x3d buf.clear();\nvar o \x3d ((((cljs.tools.reader.reader_types.source_logging_reader_QMARK_(stream)) \x26\x26 ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(stream)))))))?cljs.tools.reader.reader_types.log_source_STAR_(stream,(function (){\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(stream,eof_error_QMARK_,eof_value);\n})):cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(stream,eof_error_QMARK_,eof_value));\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(buf).trim();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [o,s], null);\n}));\n\n(cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,stream){\nvar buf \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(stream.frames));\nvar _ \x3d buf.clear();\nvar o \x3d ((((cljs.tools.reader.reader_types.source_logging_reader_QMARK_(stream)) \x26\x26 ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(stream)))))))?cljs.tools.reader.reader_types.log_source_STAR_(stream,(function (){\nreturn cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(opts,stream);\n})):cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(opts,stream));\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(buf).trim();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [o,s], null);\n}));\n\n(cljs.tools.reader.read_PLUS_string.cljs$lang$maxFixedArity \x3d 3);\n\n"); SHADOW_ENV.evalLoad("cljs.tools.reader.edn.js", true, "goog.provide(\x27cljs.tools.reader.edn\x27);\n\n\ncljs.tools.reader.edn.macro_terminating_QMARK_ \x3d (function cljs$tools$reader$edn$macro_terminating_QMARK_(ch){\nvar and__5023__auto__ \x3d (!((\x22#\x22 \x3d\x3d\x3d ch)));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((\x22\x27\x22 \x3d\x3d\x3d ch)));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d (!((\x22:\x22 \x3d\x3d\x3d ch)));\nif(and__5023__auto____$2){\nreturn (cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.edn.macros.call(null,ch));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.tools.reader.edn.not_constituent_QMARK_ \x3d (function cljs$tools$reader$edn$not_constituent_QMARK_(ch){\nreturn (((\x22@\x22 \x3d\x3d\x3d ch)) || ((((\x22`\x22 \x3d\x3d\x3d ch)) || ((\x22~\x22 \x3d\x3d\x3d ch)))));\n});\ncljs.tools.reader.edn.read_token \x3d (function cljs$tools$reader$edn$read_token(var_args){\nvar G__36208 \x3d arguments.length;\nswitch (G__36208) {\ncase 3:\nreturn cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3 \x3d (function (rdr,kind,initch){\nreturn cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(rdr,kind,initch,true);\n}));\n\n(cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4 \x3d (function (rdr,kind,initch,validate_leading_QMARK_){\nif(cljs.core.not(initch)){\nreturn cljs.tools.reader.impl.errors.throw_eof_at_start(rdr,kind);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d validate_leading_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.tools.reader.edn.not_constituent_QMARK_(initch);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.tools.reader.impl.errors.throw_bad_char(rdr,kind,initch);\n} else {\nvar sb \x3d (new goog.string.StringBuffer());\nvar ch \x3d initch;\nwhile(true){\nif(((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)) || (((cljs.tools.reader.edn.macro_terminating_QMARK_(ch)) || ((ch \x3d\x3d null)))))){\nif((ch \x3d\x3d null)){\n} else {\ncljs.tools.reader.reader_types.unread(rdr,ch);\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nif(cljs.tools.reader.edn.not_constituent_QMARK_(ch)){\nreturn cljs.tools.reader.impl.errors.throw_bad_char(rdr,kind,ch);\n} else {\nvar G__36621 \x3d (function (){var G__36240 \x3d sb;\nG__36240.append(ch);\n\nreturn G__36240;\n})();\nvar G__36622 \x3d cljs.tools.reader.reader_types.read_char(rdr);\nsb \x3d G__36621;\nch \x3d G__36622;\ncontinue;\n}\n}\nbreak;\n}\n\n}\n}\n}));\n\n(cljs.tools.reader.edn.read_token.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.tools.reader.edn.read_dispatch \x3d (function cljs$tools$reader$edn$read_dispatch(rdr,_,opts){\nvar temp__5823__auto__ \x3d cljs.tools.reader.reader_types.read_char(rdr);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ch \x3d temp__5823__auto__;\nvar temp__5823__auto____$1 \x3d (cljs.tools.reader.edn.dispatch_macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.edn.dispatch_macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.edn.dispatch_macros.call(null,ch));\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar dm \x3d temp__5823__auto____$1;\nreturn (dm.cljs$core$IFn$_invoke$arity$3 ? dm.cljs$core$IFn$_invoke$arity$3(rdr,ch,opts) : dm.call(null,rdr,ch,opts));\n} else {\nvar G__36254 \x3d (function (){var G__36257 \x3d rdr;\ncljs.tools.reader.reader_types.unread(G__36257,ch);\n\nreturn G__36257;\n})();\nvar G__36255 \x3d ch;\nvar G__36256 \x3d opts;\nreturn (cljs.tools.reader.edn.read_tagged.cljs$core$IFn$_invoke$arity$3 ? cljs.tools.reader.edn.read_tagged.cljs$core$IFn$_invoke$arity$3(G__36254,G__36255,G__36256) : cljs.tools.reader.edn.read_tagged.call(null,G__36254,G__36255,G__36256));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_at_dispatch(rdr);\n}\n});\ncljs.tools.reader.edn.read_unmatched_delimiter \x3d (function cljs$tools$reader$edn$read_unmatched_delimiter(rdr,ch,opts){\nreturn cljs.tools.reader.impl.errors.throw_unmatch_delimiter(rdr,ch);\n});\ncljs.tools.reader.edn.read_unicode_char \x3d (function cljs$tools$reader$edn$read_unicode_char(var_args){\nvar G__36289 \x3d arguments.length;\nswitch (G__36289) {\ncase 4:\nreturn cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4 \x3d (function (token,offset,length,base){\nvar l \x3d (offset + length);\nif((cljs.core.count(token) \x3d\x3d\x3d l)){\n} else {\ncljs.tools.reader.impl.errors.throw_invalid_unicode_literal(null,token);\n}\n\nvar i \x3d offset;\nvar uc \x3d (0);\nwhile(true){\nif((i \x3d\x3d\x3d l)){\nreturn String.fromCharCode(uc);\n} else {\nvar d \x3d cljs.tools.reader.impl.utils.char_code(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),base);\nif((d \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token(null,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),token);\n} else {\nvar G__36632 \x3d (i + (1));\nvar G__36633 \x3d (d + (uc * base));\ni \x3d G__36632;\nuc \x3d G__36633;\ncontinue;\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5 \x3d (function (rdr,initch,base,length,exact_QMARK_){\nvar i \x3d (1);\nvar uc \x3d cljs.tools.reader.impl.utils.char_code(initch,base);\nwhile(true){\nif((uc \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,initch);\n} else {\nif((!((i \x3d\x3d\x3d length)))){\nvar ch \x3d cljs.tools.reader.reader_types.peek_char(rdr);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.edn.macros.call(null,ch));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn (ch \x3d\x3d null);\n}\n}\n})())){\nif(cljs.core.truth_(exact_QMARK_)){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_len(rdr,i,length);\n} else {\nreturn String.fromCharCode(uc);\n}\n} else {\nvar d \x3d cljs.tools.reader.impl.utils.char_code(ch,base);\ncljs.tools.reader.reader_types.read_char(rdr);\n\nif((d \x3d\x3d\x3d (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,ch);\n} else {\nvar G__36635 \x3d (i + (1));\nvar G__36636 \x3d (d + (uc * base));\ni \x3d G__36635;\nuc \x3d G__36636;\ncontinue;\n}\n}\n} else {\nreturn String.fromCharCode(uc);\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.edn.read_unicode_char.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.tools.reader.edn.upper_limit \x3d \x22\\uD7FF\x22.charCodeAt((0));\ncljs.tools.reader.edn.lower_limit \x3d \x22\\uE000\x22.charCodeAt((0));\ncljs.tools.reader.edn.read_char_STAR_ \x3d (function cljs$tools$reader$edn$read_char_STAR_(rdr,backslash,opts){\nvar ch \x3d cljs.tools.reader.reader_types.read_char(rdr);\nif((!((ch \x3d\x3d null)))){\nvar token \x3d ((((cljs.tools.reader.edn.macro_terminating_QMARK_(ch)) || (((cljs.tools.reader.edn.not_constituent_QMARK_(ch)) || (cljs.tools.reader.impl.utils.whitespace_QMARK_(ch))))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(ch):cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(rdr,new cljs.core.Keyword(null,\x22character\x22,\x22character\x22,380652989),ch,false));\nvar token_len \x3d ((token).length);\nif(((1) \x3d\x3d\x3d token_len)){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,(0));\n} else {\nif((token \x3d\x3d\x3d \x22newline\x22)){\nreturn \x22\\n\x22;\n} else {\nif((token \x3d\x3d\x3d \x22space\x22)){\nreturn \x22 \x22;\n} else {\nif((token \x3d\x3d\x3d \x22tab\x22)){\nreturn \x22\\t\x22;\n} else {\nif((token \x3d\x3d\x3d \x22backspace\x22)){\nreturn \x22\\b\x22;\n} else {\nif((token \x3d\x3d\x3d \x22formfeed\x22)){\nreturn \x22\\f\x22;\n} else {\nif((token \x3d\x3d\x3d \x22return\x22)){\nreturn \x22\\r\x22;\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\x22u\x22))){\nvar c \x3d cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,(1),(4),(16));\nvar ic \x3d c.charCodeAt();\nif((((ic \x3e cljs.tools.reader.edn.upper_limit)) \x26\x26 ((ic \x3c cljs.tools.reader.edn.lower_limit)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_character_literal(rdr,ic.toString((16)));\n} else {\nreturn c;\n}\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\x22o\x22))){\nvar len \x3d (token_len - (1));\nif((len \x3e (3))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_octal_len(rdr,token);\n} else {\nvar uc \x3d cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,(1),len,(8));\nif(((uc | (0)) \x3e (255))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn uc;\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_unsupported_character(rdr,token);\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n});\ncljs.tools.reader.edn.starting_line_col_info \x3d (function cljs$tools$reader$edn$starting_line_col_info(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.tools.reader.reader_types.get_line_number(rdr),(((cljs.tools.reader.reader_types.get_column_number(rdr) | (0)) - (1)) | (0))], null);\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.edn.read_delimited \x3d (function cljs$tools$reader$edn$read_delimited(kind,delim,rdr,opts){\nvar vec__36344 \x3d cljs.tools.reader.edn.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36344,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36344,(1),null);\nvar delim__$1 \x3d cljs.tools.reader.impl.utils.char$(delim);\nvar a \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nvar ch \x3d cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr);\nif(cljs.core.truth_(ch)){\n} else {\ncljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(rdr,kind,start_line,start_column,cljs.core.count(a));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(delim__$1,cljs.tools.reader.impl.utils.char$(ch))){\nreturn cljs.core.persistent_BANG_(a);\n} else {\nvar temp__5823__auto__ \x3d (cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.edn.macros.call(null,ch));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar macrofn \x3d temp__5823__auto__;\nvar mret \x3d (macrofn.cljs$core$IFn$_invoke$arity$3 ? macrofn.cljs$core$IFn$_invoke$arity$3(rdr,ch,opts) : macrofn.call(null,rdr,ch,opts));\nvar G__36641 \x3d (((!((mret \x3d\x3d\x3d rdr))))?cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(a,mret):a);\na \x3d G__36641;\ncontinue;\n} else {\nvar o \x3d (function (){var G__36367 \x3d (function (){var G__36371 \x3d rdr;\ncljs.tools.reader.reader_types.unread(G__36371,ch);\n\nreturn G__36371;\n})();\nvar G__36368 \x3d true;\nvar G__36369 \x3d null;\nvar G__36370 \x3d opts;\nreturn (cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(G__36367,G__36368,G__36369,G__36370) : cljs.tools.reader.edn.read.call(null,G__36367,G__36368,G__36369,G__36370));\n})();\nvar G__36642 \x3d (((!((o \x3d\x3d\x3d rdr))))?cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(a,o):a);\na \x3d G__36642;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.edn.read_list \x3d (function cljs$tools$reader$edn$read_list(rdr,_,opts){\nvar the_list \x3d cljs.tools.reader.edn.read_delimited(new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),\x22)\x22,rdr,opts);\nif(cljs.core.empty_QMARK_(the_list)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,the_list);\n}\n});\ncljs.tools.reader.edn.read_vector \x3d (function cljs$tools$reader$edn$read_vector(rdr,_,opts){\nreturn cljs.tools.reader.edn.read_delimited(new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),\x22]\x22,rdr,opts);\n});\ncljs.tools.reader.edn.read_map \x3d (function cljs$tools$reader$edn$read_map(rdr,_,opts){\nvar vec__36406 \x3d cljs.tools.reader.edn.starting_line_col_info(rdr);\nvar start_line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36406,(0),null);\nvar start_column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36406,(1),null);\nvar the_map \x3d cljs.tools.reader.edn.read_delimited(new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),\x22}\x22,rdr,opts);\nvar map_count \x3d cljs.core.count(the_map);\nvar ks \x3d cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),the_map);\nvar key_set \x3d cljs.core.set(ks);\nif(cljs.core.odd_QMARK_(map_count)){\ncljs.tools.reader.impl.errors.throw_odd_map(rdr,start_line,start_column,the_map);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(key_set),cljs.core.count(ks))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),ks);\n}\n\nif((map_count \x3c\x3d ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD))){\nreturn cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array(the_map),true,true);\n} else {\nreturn cljs.core.PersistentHashMap.fromArray(cljs.core.to_array(the_map),true);\n}\n});\ncljs.tools.reader.edn.read_number \x3d (function cljs$tools$reader$edn$read_number(rdr,initch,opts){\nvar sb \x3d (function (){var G__36449 \x3d (new goog.string.StringBuffer());\nG__36449.append(initch);\n\nreturn G__36449;\n})();\nvar ch \x3d cljs.tools.reader.reader_types.read_char(rdr);\nwhile(true){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.edn.macros.call(null,ch));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn (ch \x3d\x3d null);\n}\n}\n})())){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\nif((ch \x3d\x3d null)){\n} else {\ncljs.tools.reader.reader_types.unread(rdr,ch);\n}\n\nvar or__5025__auto__ \x3d cljs.tools.reader.impl.commons.match_number(s);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid_number(rdr,s);\n}\n} else {\nvar G__36653 \x3d (function (){var G__36457 \x3d sb;\nG__36457.append(ch);\n\nreturn G__36457;\n})();\nvar G__36654 \x3d cljs.tools.reader.reader_types.read_char(rdr);\nsb \x3d G__36653;\nch \x3d G__36654;\ncontinue;\n}\nbreak;\n}\n});\ncljs.tools.reader.edn.escape_char \x3d (function cljs$tools$reader$edn$escape_char(sb,rdr){\nvar ch \x3d cljs.tools.reader.reader_types.read_char(rdr);\nvar G__36467 \x3d ch;\nswitch (G__36467) {\ncase \x22t\x22:\nreturn \x22\\t\x22;\n\nbreak;\ncase \x22r\x22:\nreturn \x22\\r\x22;\n\nbreak;\ncase \x22n\x22:\nreturn \x22\\n\x22;\n\nbreak;\ncase \x22\\\\\x22:\nreturn \x22\\\\\x22;\n\nbreak;\ncase \x22\\\x22\x22:\nreturn \x22\\\x22\x22;\n\nbreak;\ncase \x22b\x22:\nreturn \x22\\b\x22;\n\nbreak;\ncase \x22f\x22:\nreturn \x22\\f\x22;\n\nbreak;\ncase \x22u\x22:\nvar ch__$1 \x3d cljs.tools.reader.reader_types.read_char(rdr);\nif(((-1) \x3d\x3d\x3d parseInt((ch__$1 | (0)),(16)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_escape(rdr,ch__$1);\n} else {\nreturn cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch__$1,(16),(4),true);\n}\n\nbreak;\ndefault:\nif(cljs.tools.reader.impl.utils.numeric_QMARK_(ch)){\nvar ch__$1 \x3d cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch,(8),(3),false);\nif(((ch__$1 | (0)) \x3e (255))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn ch__$1;\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_escape_char(rdr,ch);\n}\n\n}\n});\ncljs.tools.reader.edn.read_string_STAR_ \x3d (function cljs$tools$reader$edn$read_string_STAR_(rdr,_,opts){\nvar sb \x3d (new goog.string.StringBuffer());\nvar ch \x3d cljs.tools.reader.reader_types.read_char(rdr);\nwhile(true){\nvar G__36480 \x3d ch;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__36480)){\nreturn cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(rdr,new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\\x22\x22,sb], 0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22\\\\\x22,G__36480)){\nvar G__36658 \x3d (function (){var G__36483 \x3d sb;\nG__36483.append(cljs.tools.reader.edn.escape_char(sb,rdr));\n\nreturn G__36483;\n})();\nvar G__36659 \x3d cljs.tools.reader.reader_types.read_char(rdr);\nsb \x3d G__36658;\nch \x3d G__36659;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22\\\x22\x22,G__36480)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nvar G__36661 \x3d (function (){var G__36485 \x3d sb;\nG__36485.append(ch);\n\nreturn G__36485;\n})();\nvar G__36662 \x3d cljs.tools.reader.reader_types.read_char(rdr);\nsb \x3d G__36661;\nch \x3d G__36662;\ncontinue;\n\n}\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.edn.read_symbol \x3d (function cljs$tools$reader$edn$read_symbol(rdr,initch){\nvar temp__5825__auto__ \x3d cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(rdr,new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),initch);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar token \x3d temp__5825__auto__;\nvar G__36503 \x3d token;\nswitch (G__36503) {\ncase \x22nil\x22:\nreturn null;\n\nbreak;\ncase \x22true\x22:\nreturn true;\n\nbreak;\ncase \x22false\x22:\nreturn false;\n\nbreak;\ncase \x22/\x22:\nreturn new cljs.core.Symbol(null,\x22/\x22,\x22/\x22,-1371932971,null);\n\nbreak;\ndefault:\nvar or__5025__auto__ \x3d (function (){var temp__5825__auto____$1 \x3d cljs.tools.reader.impl.commons.parse_symbol(token);\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar p \x3d temp__5825__auto____$1;\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2((p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1((0)) : p.call(null,(0))),(p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1((1)) : p.call(null,(1))));\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(rdr,new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),token);\n}\n\n}\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.edn.read_keyword \x3d (function cljs$tools$reader$edn$read_keyword(reader,initch,opts){\nvar ch \x3d cljs.tools.reader.reader_types.read_char(reader);\nif((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)))){\nvar token \x3d cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),ch);\nvar s \x3d cljs.tools.reader.impl.commons.parse_symbol(token);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d s;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((-1) \x3d\x3d\x3d token.indexOf(\x22::\x22));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar ns \x3d (s.cljs$core$IFn$_invoke$arity$1 ? s.cljs$core$IFn$_invoke$arity$1((0)) : s.call(null,(0)));\nvar name \x3d (s.cljs$core$IFn$_invoke$arity$1 ? s.cljs$core$IFn$_invoke$arity$1((1)) : s.call(null,(1)));\nif((\x22:\x22 \x3d\x3d\x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,(0)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(\x27\x27));\n} else {\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(ns,name);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(\x27\x27));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_single_colon(reader);\n}\n});\ncljs.tools.reader.edn.wrapping_reader \x3d (function cljs$tools$reader$edn$wrapping_reader(sym){\nreturn (function (rdr,_,opts){\nreturn (new cljs.core.List(null,sym,(new cljs.core.List(null,(cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts)),null,(1),null)),(2),null));\n});\n});\ncljs.tools.reader.edn.read_meta \x3d (function cljs$tools$reader$edn$read_meta(rdr,_,opts){\nvar m \x3d cljs.tools.reader.impl.utils.desugar_meta((cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts)));\nif(cljs.core.map_QMARK_(m)){\n} else {\ncljs.tools.reader.impl.errors.throw_bad_metadata(rdr,m);\n}\n\nvar o \x3d (cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts));\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(o,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(o),m], 0)));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_metadata_target(rdr,o);\n}\n});\ncljs.tools.reader.edn.read_set \x3d (function cljs$tools$reader$edn$read_set(rdr,_,opts){\nvar coll \x3d cljs.tools.reader.edn.read_delimited(new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),\x22}\x22,rdr,opts);\nvar the_set \x3d cljs.core.set(coll);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(coll),cljs.core.count(the_set))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),coll);\n}\n\nreturn the_set;\n});\ncljs.tools.reader.edn.read_discard \x3d (function cljs$tools$reader$edn$read_discard(rdr,_,opts){\nvar G__36533 \x3d rdr;\n(cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(G__36533,true,null,true) : cljs.tools.reader.edn.read.call(null,G__36533,true,null,true));\n\nreturn G__36533;\n});\ncljs.tools.reader.edn.read_namespaced_map \x3d (function cljs$tools$reader$edn$read_namespaced_map(rdr,_,opts){\nvar token \x3d cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(rdr,new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),cljs.tools.reader.reader_types.read_char(rdr));\nvar temp__5823__auto__ \x3d (function (){var G__36541 \x3d token;\nvar G__36541__$1 \x3d (((G__36541 \x3d\x3d null))?null:cljs.tools.reader.impl.commons.parse_symbol(G__36541));\nif((G__36541__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(G__36541__$1);\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ns \x3d temp__5823__auto__;\nvar ch \x3d cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr);\nif((ch \x3d\x3d\x3d \x22{\x22)){\nvar items \x3d cljs.tools.reader.edn.read_delimited(new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),\x22}\x22,rdr,opts);\nif(cljs.core.odd_QMARK_(cljs.core.count(items))){\ncljs.tools.reader.impl.errors.throw_odd_map(rdr,null,null,items);\n} else {\n}\n\nvar keys \x3d cljs.tools.reader.impl.utils.namespace_keys(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),items));\nvar vals \x3d cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(items));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(cljs.core.set(keys)),cljs.core.count(keys))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\x22namespaced-map\x22,\x22namespaced-map\x22,1235665380),keys);\n}\n\nreturn cljs.core.zipmap(keys,vals);\n} else {\nreturn cljs.tools.reader.impl.errors.throw_ns_map_no_map(rdr,token);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_ns(rdr,token);\n}\n});\ncljs.tools.reader.edn.read_symbolic_value \x3d (function cljs$tools$reader$edn$read_symbolic_value(rdr,_,opts){\nvar sym \x3d (cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts));\nvar G__36543 \x3d sym;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22NaN\x22,\x22NaN\x22,666918153,null),G__36543)){\nreturn Number.NaN;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22-Inf\x22,\x22-Inf\x22,-2123243689,null),G__36543)){\nreturn Number.NEGATIVE_INFINITY;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Inf\x22,\x22Inf\x22,647172781,null),G__36543)){\nreturn Number.POSITIVE_INFINITY;\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22Invalid token: ##\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27)], 0));\n\n}\n}\n}\n});\ncljs.tools.reader.edn.macros \x3d (function cljs$tools$reader$edn$macros(ch){\nvar G__36556 \x3d ch;\nswitch (G__36556) {\ncase \x22\\\x22\x22:\nreturn cljs.tools.reader.edn.read_string_STAR_;\n\nbreak;\ncase \x22:\x22:\nreturn cljs.tools.reader.edn.read_keyword;\n\nbreak;\ncase \x22;\x22:\nreturn cljs.tools.reader.impl.commons.read_comment;\n\nbreak;\ncase \x22^\x22:\nreturn cljs.tools.reader.edn.read_meta;\n\nbreak;\ncase \x22(\x22:\nreturn cljs.tools.reader.edn.read_list;\n\nbreak;\ncase \x22)\x22:\nreturn cljs.tools.reader.edn.read_unmatched_delimiter;\n\nbreak;\ncase \x22[\x22:\nreturn cljs.tools.reader.edn.read_vector;\n\nbreak;\ncase \x22]\x22:\nreturn cljs.tools.reader.edn.read_unmatched_delimiter;\n\nbreak;\ncase \x22{\x22:\nreturn cljs.tools.reader.edn.read_map;\n\nbreak;\ncase \x22}\x22:\nreturn cljs.tools.reader.edn.read_unmatched_delimiter;\n\nbreak;\ncase \x22\\\\\x22:\nreturn cljs.tools.reader.edn.read_char_STAR_;\n\nbreak;\ncase \x22#\x22:\nreturn cljs.tools.reader.edn.read_dispatch;\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\ncljs.tools.reader.edn.dispatch_macros \x3d (function cljs$tools$reader$edn$dispatch_macros(ch){\nvar G__36568 \x3d ch;\nswitch (G__36568) {\ncase \x22^\x22:\nreturn cljs.tools.reader.edn.read_meta;\n\nbreak;\ncase \x22{\x22:\nreturn cljs.tools.reader.edn.read_set;\n\nbreak;\ncase \x22\x3c\x22:\nreturn cljs.tools.reader.impl.commons.throwing_reader(\x22Unreadable form\x22);\n\nbreak;\ncase \x22!\x22:\nreturn cljs.tools.reader.impl.commons.read_comment;\n\nbreak;\ncase \x22_\x22:\nreturn cljs.tools.reader.edn.read_discard;\n\nbreak;\ncase \x22:\x22:\nreturn cljs.tools.reader.edn.read_namespaced_map;\n\nbreak;\ncase \x22#\x22:\nreturn cljs.tools.reader.edn.read_symbolic_value;\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\ncljs.tools.reader.edn.read_tagged \x3d (function cljs$tools$reader$edn$read_tagged(rdr,initch,opts){\nvar tag \x3d (cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts));\nvar object \x3d (cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(rdr,true,null,opts) : cljs.tools.reader.edn.read.call(null,rdr,true,null,opts));\nif((!((tag instanceof cljs.core.Symbol)))){\ncljs.tools.reader.impl.errors.throw_bad_reader_tag(rdr,\x22Reader tag must be a symbol\x22);\n} else {\n}\n\nvar temp__5823__auto__ \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030).cljs$core$IFn$_invoke$arity$1(opts),tag);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1(tag) : cljs.tools.reader.default_data_readers.call(null,tag));\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar f \x3d temp__5823__auto__;\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(object) : f.call(null,object));\n} else {\nvar temp__5823__auto____$1 \x3d new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328).cljs$core$IFn$_invoke$arity$1(opts);\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar d \x3d temp__5823__auto____$1;\nreturn (d.cljs$core$IFn$_invoke$arity$2 ? d.cljs$core$IFn$_invoke$arity$2(tag,object) : d.call(null,tag,object));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_unknown_reader_tag(rdr,tag);\n}\n}\n});\n/**\n * Reads the first object from an IPushbackReader.\n * Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.\n * If no reader is provided, *in* will be used.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * cljs.tools.reader.edn/read doesn\x27t depend on dynamic Vars, all configuration\n * is done by passing an opt map.\n * \n * opts is a map that can include the following keys:\n * :eof - value to return on end-of-file. When not supplied, eof throws an exception.\n * :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers.\n * When not supplied, only the default-data-readers will be used.\n * :default - A function of two args, that will, if present and no reader is found for a tag,\n * be called with the tag and the value.\n */\ncljs.tools.reader.edn.read \x3d (function cljs$tools$reader$edn$read(var_args){\nvar G__36588 \x3d arguments.length;\nswitch (G__36588) {\ncase 1:\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$1 \x3d (function (reader){\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,reader);\n}));\n\n(cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__36593,reader){\nvar map__36594 \x3d p__36593;\nvar map__36594__$1 \x3d cljs.core.__destructure_map(map__36594);\nvar opts \x3d map__36594__$1;\nvar eof \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36594__$1,new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237));\nvar eof_error_QMARK_ \x3d (!(cljs.core.contains_QMARK_(opts,new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237))));\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(reader,eof_error_QMARK_,eof,opts);\n}));\n\n(cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4 \x3d (function (reader,eof_error_QMARK_,eof,opts){\ntry{while(true){\nvar ch \x3d cljs.tools.reader.reader_types.read_char(reader);\nif(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)){\ncontinue;\n} else {\nif((ch \x3d\x3d null)){\nif(cljs.core.truth_(eof_error_QMARK_)){\nreturn cljs.tools.reader.impl.errors.throw_eof_error(reader,null);\n} else {\nreturn eof;\n}\n} else {\nif(cljs.tools.reader.impl.commons.number_literal_QMARK_(reader,ch)){\nreturn cljs.tools.reader.edn.read_number(reader,ch,opts);\n} else {\nvar f \x3d cljs.tools.reader.edn.macros(ch);\nif(cljs.core.truth_(f)){\nvar res \x3d (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(reader,ch,opts) : f.call(null,reader,ch,opts));\nif((res \x3d\x3d\x3d reader)){\ncontinue;\n} else {\nreturn res;\n}\n} else {\nreturn cljs.tools.reader.edn.read_symbol(reader,ch);\n}\n\n}\n}\n}\nbreak;\n}\n}catch (e36595){if((e36595 instanceof Error)){\nvar e \x3d e36595;\nif(cljs.tools.reader.impl.utils.ex_info_QMARK_(e)){\nvar d \x3d cljs.core.ex_data(e);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(d))){\nthrow e;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(e.message,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098)], null),d,((cljs.tools.reader.reader_types.indexing_reader_QMARK_(reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.tools.reader.reader_types.get_line_number(reader),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.tools.reader.reader_types.get_column_number(reader),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.tools.reader.reader_types.get_file_name(reader)], null):null)], 0)),e);\n}\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(e.message,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22reader-exception\x22,\x22reader-exception\x22,-1938323098)], null),((cljs.tools.reader.reader_types.indexing_reader_QMARK_(reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.tools.reader.reader_types.get_line_number(reader),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.tools.reader.reader_types.get_column_number(reader),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.tools.reader.reader_types.get_file_name(reader)], null):null)], 0)),e);\n}\n} else {\nthrow e36595;\n\n}\n}}));\n\n(cljs.tools.reader.edn.read.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Reads one object from the string s.\n * Returns nil when s is nil or empty.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * opts is a map as per cljs.tools.reader.edn/read\n */\ncljs.tools.reader.edn.read_string \x3d (function cljs$tools$reader$edn$read_string(var_args){\nvar G__36606 \x3d arguments.length;\nswitch (G__36606) {\ncase 1:\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237),null], null),s);\n}));\n\n(cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d s;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(opts,cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1(s));\n} else {\nreturn null;\n}\n}));\n\n(cljs.tools.reader.edn.read_string.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("cljs.reader.js", true, "goog.provide(\x27cljs.reader\x27);\ngoog.scope(function(){\n cljs.reader.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\ncljs.reader.zero_fill_right_and_truncate \x3d (function cljs$reader$zero_fill_right_and_truncate(s,width){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(width,cljs.core.count(s))){\nreturn s;\n} else {\nif((width \x3c cljs.core.count(s))){\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),width);\n} else {\nvar b \x3d (new goog.string.StringBuffer(s));\nwhile(true){\nif((b.getLength() \x3c width)){\nvar G__36930 \x3d b.append(\x220\x22);\nb \x3d G__36930;\ncontinue;\n} else {\nreturn b.toString();\n}\nbreak;\n}\n\n}\n}\n});\ncljs.reader.divisible_QMARK_ \x3d (function cljs$reader$divisible_QMARK_(num,div){\nreturn (cljs.core.mod(num,div) \x3d\x3d\x3d (0));\n});\ncljs.reader.indivisible_QMARK_ \x3d (function cljs$reader$indivisible_QMARK_(num,div){\nreturn (!(cljs.reader.divisible_QMARK_(num,div)));\n});\ncljs.reader.leap_year_QMARK_ \x3d (function cljs$reader$leap_year_QMARK_(year){\nreturn ((cljs.reader.divisible_QMARK_(year,(4))) \x26\x26 (((cljs.reader.indivisible_QMARK_(year,(100))) || (cljs.reader.divisible_QMARK_(year,(400))))));\n});\ncljs.reader.days_in_month \x3d (function (){var dim_norm \x3d new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,(31),(28),(31),(30),(31),(30),(31),(31),(30),(31),(30),(31)], null);\nvar dim_leap \x3d new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,(31),(29),(31),(30),(31),(30),(31),(31),(30),(31),(30),(31)], null);\nreturn (function (month,leap_year_QMARK_){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(leap_year_QMARK_)?dim_leap:dim_norm),month);\n});\n})();\ncljs.reader.timestamp_regex \x3d /(\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d)(?:[T](\\d\\d)(?::(\\d\\d)(?::(\\d\\d)(?:[.](\\d+))?)?)?)?)?)?(?:[Z]|([-+])(\\d\\d):(\\d\\d))?/;\ncljs.reader.parse_int \x3d (function cljs$reader$parse_int(s){\nvar n \x3d parseInt(s,(10));\nif(cljs.core.not(isNaN(n))){\nreturn n;\n} else {\nreturn null;\n}\n});\ncljs.reader.check \x3d (function cljs$reader$check(low,n,high,msg){\nif((((low \x3c\x3d n)) \x26\x26 ((n \x3c\x3d high)))){\n} else {\nthrow (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22 Failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(low),\x22\x3c\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n),\x22\x3c\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(high)].join(\x27\x27)));\n}\n\nreturn n;\n});\ncljs.reader.parse_and_validate_timestamp \x3d (function cljs$reader$parse_and_validate_timestamp(s){\nvar vec__36754 \x3d cljs.core.re_matches(cljs.reader.timestamp_regex,s);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(0),null);\nvar years \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(1),null);\nvar months \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(2),null);\nvar days \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(3),null);\nvar hours \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(4),null);\nvar minutes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(5),null);\nvar seconds \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(6),null);\nvar fraction \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(7),null);\nvar offset_sign \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(8),null);\nvar offset_hours \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(9),null);\nvar offset_minutes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36754,(10),null);\nvar v \x3d vec__36754;\nif(cljs.core.not(v)){\nthrow (new Error([\x22Unrecognized date/time syntax: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27)));\n} else {\nvar years__$1 \x3d cljs.reader.parse_int(years);\nvar months__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(months);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (1);\n}\n})();\nvar days__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(days);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (1);\n}\n})();\nvar hours__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(hours);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar minutes__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(minutes);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar seconds__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(seconds);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar fraction__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(cljs.reader.zero_fill_right_and_truncate(fraction,(3)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar offset_sign__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(offset_sign,\x22-\x22))?(-1):(1));\nvar offset_hours__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(offset_hours);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar offset_minutes__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.reader.parse_int(offset_minutes);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar offset \x3d (offset_sign__$1 * ((offset_hours__$1 * (60)) + offset_minutes__$1));\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [years__$1,cljs.reader.check((1),months__$1,(12),\x22timestamp month field must be in range 1..12\x22),cljs.reader.check((1),days__$1,cljs.reader.days_in_month(months__$1,cljs.reader.leap_year_QMARK_(years__$1)),\x22timestamp day field must be in range 1..last day in month\x22),cljs.reader.check((0),hours__$1,(23),\x22timestamp hour field must be in range 0..23\x22),cljs.reader.check((0),minutes__$1,(59),\x22timestamp minute field must be in range 0..59\x22),cljs.reader.check((0),seconds__$1,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(minutes__$1,(59)))?(60):(59)),\x22timestamp second field must be in range 0..60\x22),cljs.reader.check((0),fraction__$1,(999),\x22timestamp millisecond field must be in range 0..999\x22),offset], null);\n}\n});\ncljs.reader.parse_timestamp \x3d (function cljs$reader$parse_timestamp(ts){\nvar temp__5823__auto__ \x3d cljs.reader.parse_and_validate_timestamp(ts);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36763 \x3d temp__5823__auto__;\nvar years \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(0),null);\nvar months \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(1),null);\nvar days \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(2),null);\nvar hours \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(3),null);\nvar minutes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(4),null);\nvar seconds \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(5),null);\nvar ms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(6),null);\nvar offset \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36763,(7),null);\nreturn (new Date((Date.UTC(years,(months - (1)),days,hours,minutes,seconds,ms) - ((offset * (60)) * (1000)))));\n} else {\nthrow (new Error([\x22Unrecognized date/time syntax: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ts)].join(\x27\x27)));\n}\n});\ncljs.reader.read_date \x3d (function cljs$reader$read_date(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nreturn cljs.reader.parse_timestamp(s);\n} else {\nthrow (new Error(\x22Instance literal expects a string for its timestamp.\x22));\n}\n});\ncljs.reader.read_queue \x3d (function cljs$reader$read_queue(elems){\nif(cljs.core.vector_QMARK_(elems)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentQueue.EMPTY,elems);\n} else {\nthrow (new Error(\x22Queue literal expects a vector for its elements.\x22));\n}\n});\ncljs.reader.read_js \x3d (function cljs$reader$read_js(form){\nif(cljs.core.vector_QMARK_(form)){\nvar arr \x3d [];\nvar seq__36775_36937 \x3d cljs.core.seq(form);\nvar chunk__36776_36938 \x3d null;\nvar count__36777_36939 \x3d (0);\nvar i__36778_36940 \x3d (0);\nwhile(true){\nif((i__36778_36940 \x3c count__36777_36939)){\nvar x_36941 \x3d chunk__36776_36938.cljs$core$IIndexed$_nth$arity$2(null,i__36778_36940);\narr.push(x_36941);\n\n\nvar G__36943 \x3d seq__36775_36937;\nvar G__36944 \x3d chunk__36776_36938;\nvar G__36945 \x3d count__36777_36939;\nvar G__36946 \x3d (i__36778_36940 + (1));\nseq__36775_36937 \x3d G__36943;\nchunk__36776_36938 \x3d G__36944;\ncount__36777_36939 \x3d G__36945;\ni__36778_36940 \x3d G__36946;\ncontinue;\n} else {\nvar temp__5825__auto___36947 \x3d cljs.core.seq(seq__36775_36937);\nif(temp__5825__auto___36947){\nvar seq__36775_36948__$1 \x3d temp__5825__auto___36947;\nif(cljs.core.chunked_seq_QMARK_(seq__36775_36948__$1)){\nvar c__5548__auto___36949 \x3d cljs.core.chunk_first(seq__36775_36948__$1);\nvar G__36950 \x3d cljs.core.chunk_rest(seq__36775_36948__$1);\nvar G__36951 \x3d c__5548__auto___36949;\nvar G__36952 \x3d cljs.core.count(c__5548__auto___36949);\nvar G__36953 \x3d (0);\nseq__36775_36937 \x3d G__36950;\nchunk__36776_36938 \x3d G__36951;\ncount__36777_36939 \x3d G__36952;\ni__36778_36940 \x3d G__36953;\ncontinue;\n} else {\nvar x_36954 \x3d cljs.core.first(seq__36775_36948__$1);\narr.push(x_36954);\n\n\nvar G__36955 \x3d cljs.core.next(seq__36775_36948__$1);\nvar G__36956 \x3d null;\nvar G__36957 \x3d (0);\nvar G__36958 \x3d (0);\nseq__36775_36937 \x3d G__36955;\nchunk__36776_36938 \x3d G__36956;\ncount__36777_36939 \x3d G__36957;\ni__36778_36940 \x3d G__36958;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn arr;\n} else {\nif(cljs.core.map_QMARK_(form)){\nvar obj \x3d ({});\nvar seq__36791_36959 \x3d cljs.core.seq(form);\nvar chunk__36792_36960 \x3d null;\nvar count__36793_36961 \x3d (0);\nvar i__36794_36962 \x3d (0);\nwhile(true){\nif((i__36794_36962 \x3c count__36793_36961)){\nvar vec__36810_36963 \x3d chunk__36792_36960.cljs$core$IIndexed$_nth$arity$2(null,i__36794_36962);\nvar k_36964 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36810_36963,(0),null);\nvar v_36965 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36810_36963,(1),null);\ncljs.reader.goog$module$goog$object.set(obj,cljs.core.name(k_36964),v_36965);\n\n\nvar G__36966 \x3d seq__36791_36959;\nvar G__36967 \x3d chunk__36792_36960;\nvar G__36968 \x3d count__36793_36961;\nvar G__36969 \x3d (i__36794_36962 + (1));\nseq__36791_36959 \x3d G__36966;\nchunk__36792_36960 \x3d G__36967;\ncount__36793_36961 \x3d G__36968;\ni__36794_36962 \x3d G__36969;\ncontinue;\n} else {\nvar temp__5825__auto___36970 \x3d cljs.core.seq(seq__36791_36959);\nif(temp__5825__auto___36970){\nvar seq__36791_36971__$1 \x3d temp__5825__auto___36970;\nif(cljs.core.chunked_seq_QMARK_(seq__36791_36971__$1)){\nvar c__5548__auto___36972 \x3d cljs.core.chunk_first(seq__36791_36971__$1);\nvar G__36973 \x3d cljs.core.chunk_rest(seq__36791_36971__$1);\nvar G__36974 \x3d c__5548__auto___36972;\nvar G__36975 \x3d cljs.core.count(c__5548__auto___36972);\nvar G__36976 \x3d (0);\nseq__36791_36959 \x3d G__36973;\nchunk__36792_36960 \x3d G__36974;\ncount__36793_36961 \x3d G__36975;\ni__36794_36962 \x3d G__36976;\ncontinue;\n} else {\nvar vec__36819_36977 \x3d cljs.core.first(seq__36791_36971__$1);\nvar k_36978 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36819_36977,(0),null);\nvar v_36979 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36819_36977,(1),null);\ncljs.reader.goog$module$goog$object.set(obj,cljs.core.name(k_36978),v_36979);\n\n\nvar G__36984 \x3d cljs.core.next(seq__36791_36971__$1);\nvar G__36985 \x3d null;\nvar G__36986 \x3d (0);\nvar G__36987 \x3d (0);\nseq__36791_36959 \x3d G__36984;\nchunk__36792_36960 \x3d G__36985;\ncount__36793_36961 \x3d G__36986;\ni__36794_36962 \x3d G__36987;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn obj;\n} else {\nthrow (new Error([\x22JS literal expects a vector or map containing \x22,\x22only string or unqualified keyword keys\x22].join(\x27\x27)));\n\n}\n}\n});\ncljs.reader.read_uuid \x3d (function cljs$reader$read_uuid(uuid){\nif(typeof uuid \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.uuid(uuid);\n} else {\nthrow (new Error(\x22UUID literal expects a string as its representation.\x22));\n}\n});\ncljs.reader._STAR_default_data_reader_fn_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.reader._STAR_tag_table_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22inst\x22,\x22inst\x22,-2008473268,null),cljs.reader.read_date,new cljs.core.Symbol(null,\x22uuid\x22,\x22uuid\x22,-504564192,null),cljs.reader.read_uuid,new cljs.core.Symbol(null,\x22queue\x22,\x22queue\x22,-1198599890,null),cljs.reader.read_queue,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),cljs.reader.read_js], null),cljs.core.PersistentArrayMap.EMPTY], 0)));\n/**\n * Reads the first object from an cljs.tools.reader.reader-types/IPushbackReader.\n * Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.\n * If no reader is provided, *in* will be used.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * cljs.tools.reader.edn/read doesn\x27t depend on dynamic Vars, all configuration\n * is done by passing an opt map.\n * \n * opts is a map that can include the following keys:\n * :eof - value to return on end-of-file. When not supplied, eof throws an exception.\n * :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers.\n * When not supplied, only the default-data-readers will be used.\n * :default - A function of two args, that will, if present and no reader is found for a tag,\n * be called with the tag and the value.\n */\ncljs.reader.read \x3d (function cljs$reader$read(var_args){\nvar G__36874 \x3d arguments.length;\nswitch (G__36874) {\ncase 1:\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.reader.read.cljs$core$IFn$_invoke$arity$1 \x3d (function (reader){\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_),new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237),null], null),reader);\n}));\n\n(cljs.reader.read.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__36879,reader){\nvar map__36881 \x3d p__36879;\nvar map__36881__$1 \x3d cljs.core.__destructure_map(map__36881);\nvar opts \x3d map__36881__$1;\nvar eof \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36881__$1,new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237));\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)], null)], 0)),new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),(function (m){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),m], 0));\n})),reader);\n}));\n\n(cljs.reader.read.cljs$core$IFn$_invoke$arity$4 \x3d (function (reader,eof_error_QMARK_,eof,opts){\nreturn cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(reader,eof_error_QMARK_,eof,cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)], null)], 0)),new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),(function (m){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),m], 0));\n})));\n}));\n\n(cljs.reader.read.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Reads one object from the string s.\n * Returns nil when s is nil or empty.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * opts is a map as per cljs.tools.reader.edn/read\n */\ncljs.reader.read_string \x3d (function cljs$reader$read_string(var_args){\nvar G__36901 \x3d arguments.length;\nswitch (G__36901) {\ncase 1:\nreturn cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_),new cljs.core.Keyword(null,\x22eof\x22,\x22eof\x22,-489063237),null], null),s);\n}));\n\n(cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)], null),opts], 0)),new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),(function (m){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),m], 0));\n})),s);\n}));\n\n(cljs.reader.read_string.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.reader.register_tag_parser_BANG_ \x3d (function cljs$reader$register_tag_parser_BANG_(tag,f){\nvar old_parser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),tag);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.reader._STAR_tag_table_STAR_,cljs.core.assoc,tag,f);\n\nreturn old_parser;\n});\ncljs.reader.deregister_tag_parser_BANG_ \x3d (function cljs$reader$deregister_tag_parser_BANG_(tag){\nvar old_parser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),tag);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.reader._STAR_tag_table_STAR_,cljs.core.dissoc,tag);\n\nreturn old_parser;\n});\ncljs.reader.register_default_tag_parser_BANG_ \x3d (function cljs$reader$register_default_tag_parser_BANG_(f){\nvar old_parser \x3d cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.reader._STAR_default_data_reader_fn_STAR_,(function (_){\nreturn f;\n}));\n\nreturn old_parser;\n});\ncljs.reader.deregister_default_tag_parser_BANG_ \x3d (function cljs$reader$deregister_default_tag_parser_BANG_(){\nvar old_parser \x3d cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.reader._STAR_default_data_reader_fn_STAR_,(function (_){\nreturn null;\n}));\n\nreturn old_parser;\n});\n"); -SHADOW_ENV.evalLoad("clojure.edn.js", true, "goog.provide(\x27clojure.edn\x27);\n/**\n * Reads the first object from an cljs.tools.reader.reader-types/IPushbackReader.\n * Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.\n * If no reader is provided, *in* will be used.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * cljs.tools.reader.edn/read doesn\x27t depend on dynamic Vars, all configuration\n * is done by passing an opt map.\n * \n * opts is a map that can include the following keys:\n * :eof - value to return on end-of-file. When not supplied, eof throws an exception.\n * :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers.\n * When not supplied, only the default-data-readers will be used.\n * :default - A function of two args, that will, if present and no reader is found for a tag,\n * be called with the tag and the value.\n */\nclojure.edn.read \x3d (function clojure$edn$read(var_args){\nvar G__36933 \x3d arguments.length;\nswitch (G__36933) {\ncase 1:\nreturn clojure.edn.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.edn.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn clojure.edn.read.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.edn.read.cljs$core$IFn$_invoke$arity$1 \x3d (function (reader){\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$1(reader);\n}));\n\n(clojure.edn.read.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,reader){\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$2(opts,reader);\n}));\n\n(clojure.edn.read.cljs$core$IFn$_invoke$arity$4 \x3d (function (reader,eof_error_QMARK_,eof,opts){\nreturn cljs.reader.read.cljs$core$IFn$_invoke$arity$4(reader,eof_error_QMARK_,eof,opts);\n}));\n\n(clojure.edn.read.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Reads one object from the string s.\n * Returns nil when s is nil or empty.\n * \n * Reads data in the edn format (subset of Clojure data):\n * http://edn-format.org\n * \n * opts is a map as per cljs.tools.reader.edn/read\n */\nclojure.edn.read_string \x3d (function clojure$edn$read_string(var_args){\nvar G__36942 \x3d arguments.length;\nswitch (G__36942) {\ncase 1:\nreturn clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.edn.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1(s);\n}));\n\n(clojure.edn.read_string.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nreturn cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2(opts,s);\n}));\n\n(clojure.edn.read_string.cljs$lang$maxFixedArity \x3d 2);\n\n"); -SHADOW_ENV.evalLoad("intemporal.error.js", true, "goog.provide(\x27intemporal.error\x27);\nintemporal.error.internal_error_QMARK_ \x3d (function intemporal$error$internal_error_QMARK_(ex){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(\x22intemporal.error\x22,\x22type\x22,\x22intemporal.error/type\x22,1880380717).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar t \x3d temp__5825__auto__;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097),t)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22panic\x22,\x22panic\x22,-1043312570),t)));\n} else {\nreturn null;\n}\n});\nintemporal.error.panic_QMARK_ \x3d (function intemporal$error$panic_QMARK_(ex){\nreturn (((ex instanceof Error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22panic\x22,\x22panic\x22,-1043312570),new cljs.core.Keyword(\x22intemporal.error\x22,\x22type\x22,\x22intemporal.error/type\x22,1880380717).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)))));\n});\nintemporal.error.internal_error \x3d (function intemporal$error$internal_error(msg,data){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(msg,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([data,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.error\x22,\x22type\x22,\x22intemporal.error/type\x22,1880380717),new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097)], null)], 0)));\n});\nintemporal.error.panic \x3d (function intemporal$error$panic(msg){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.error\x22,\x22type\x22,\x22intemporal.error/type\x22,1880380717),new cljs.core.Keyword(null,\x22panic\x22,\x22panic\x22,-1043312570)], null));\n});\n"); -SHADOW_ENV.evalLoad("malli.impl.util.js", true, "goog.provide(\x27malli.impl.util\x27);\nmalli.impl.util._PLUS_max_size_PLUS_ \x3d Number.MAX_VALUE;\nmalli.impl.util._entry \x3d (function malli$impl$util$_entry(k,v){\nreturn (new cljs.core.MapEntry(k,v,null));\n});\nmalli.impl.util._invalid_QMARK_ \x3d (function malli$impl$util$_invalid_QMARK_(x){\nreturn cljs.core.keyword_identical_QMARK_(x,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900));\n});\nmalli.impl.util._map_valid \x3d (function malli$impl$util$_map_valid(f,v){\nif(malli.impl.util._invalid_QMARK_(v)){\nreturn v;\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}\n});\nmalli.impl.util._map_invalid \x3d (function malli$impl$util$_map_invalid(f,v){\nif(malli.impl.util._invalid_QMARK_(v)){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n} else {\nreturn v;\n}\n});\nmalli.impl.util._reduce_kv_valid \x3d (function malli$impl$util$_reduce_kv_valid(f,init,coll){\nreturn cljs.core.reduce_kv(cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (p1__37121_SHARP_){\nreturn malli.impl.util._map_invalid(cljs.core.reduced,p1__37121_SHARP_);\n}),f),init,coll);\n});\nmalli.impl.util._last \x3d (function malli$impl$util$_last(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn cljs.core.peek(x);\n} else {\nreturn cljs.core.last(x);\n}\n});\nmalli.impl.util._some \x3d (function malli$impl$util$_some(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x)))){\nreturn cljs.core.reduced(true);\n} else {\nreturn ret;\n}\n}),null,coll);\n});\nmalli.impl.util._merge \x3d (function malli$impl$util$_merge(m1,m2){\nif(cljs.core.truth_(m1)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv(cljs.core.assoc_BANG_,cljs.core.transient$(m1),m2));\n} else {\nreturn m2;\n}\n});\nmalli.impl.util._error \x3d (function malli$impl$util$_error(var_args){\nvar G__37191 \x3d arguments.length;\nswitch (G__37191) {\ncase 4:\nreturn malli.impl.util._error.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn malli.impl.util._error.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.impl.util._error.cljs$core$IFn$_invoke$arity$4 \x3d (function (path,in$,schema,value){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value], null);\n}));\n\n(malli.impl.util._error.cljs$core$IFn$_invoke$arity$5 \x3d (function (path,in$,schema,value,type){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type], null);\n}));\n\n(malli.impl.util._error.cljs$lang$maxFixedArity \x3d 5);\n\nmalli.impl.util._vmap \x3d (function malli$impl$util$_vmap(var_args){\nvar G__37210 \x3d arguments.length;\nswitch (G__37210) {\ncase 1:\nreturn malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$1 \x3d (function (os){\nreturn malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,os);\n}));\n\n(malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,os){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(f),os);\n}));\n\n(malli.impl.util._vmap.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.impl.util._every_pred \x3d (function malli$impl$util$_every_pred(preds){\nreturn (function (m){\nreturn cljs.core.boolean$(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__37221_SHARP_,p2__37220_SHARP_){\nvar or__5025__auto__ \x3d (p2__37220_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p2__37220_SHARP_.cljs$core$IFn$_invoke$arity$1(m) : p2__37220_SHARP_.call(null,m));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,preds));\n});\n});\nmalli.impl.util._some_pred \x3d (function malli$impl$util$_some_pred(preds){\nreturn (function (x){\nreturn cljs.core.boolean$(cljs.core.some((function (p1__37228_SHARP_){\nreturn (p1__37228_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__37228_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__37228_SHARP_.call(null,x));\n}),preds));\n});\n});\n"); -SHADOW_ENV.evalLoad("malli.impl.regex.js", true, "goog.provide(\x27malli.impl.regex\x27);\n\n/**\n * @interface\n */\nmalli.impl.regex.Driver \x3d function(){};\n\nvar malli$impl$regex$Driver$succeed_BANG_$dyn_38664 \x3d (function (self){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.succeed_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5374__auto__.call(null,self));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.succeed_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5372__auto__.call(null,self));\n} else {\nthrow cljs.core.missing_protocol(\x22Driver.succeed!\x22,self);\n}\n}\n});\nmalli.impl.regex.succeed_BANG_ \x3d (function malli$impl$regex$succeed_BANG_(self){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$Driver$succeed_BANG_$arity$1 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$Driver$succeed_BANG_$arity$1(self);\n} else {\nreturn malli$impl$regex$Driver$succeed_BANG_$dyn_38664(self);\n}\n});\n\nvar malli$impl$regex$Driver$succeeded_QMARK_$dyn_38667 \x3d (function (self){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.succeeded_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5374__auto__.call(null,self));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.succeeded_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5372__auto__.call(null,self));\n} else {\nthrow cljs.core.missing_protocol(\x22Driver.succeeded?\x22,self);\n}\n}\n});\nmalli.impl.regex.succeeded_QMARK_ \x3d (function malli$impl$regex$succeeded_QMARK_(self){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$Driver$succeeded_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(self);\n} else {\nreturn malli$impl$regex$Driver$succeeded_QMARK_$dyn_38667(self);\n}\n});\n\nvar malli$impl$regex$Driver$pop_thunk_BANG_$dyn_38668 \x3d (function (self){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.pop_thunk_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5374__auto__.call(null,self));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.pop_thunk_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5372__auto__.call(null,self));\n} else {\nthrow cljs.core.missing_protocol(\x22Driver.pop-thunk!\x22,self);\n}\n}\n});\nmalli.impl.regex.pop_thunk_BANG_ \x3d (function malli$impl$regex$pop_thunk_BANG_(self){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1(self);\n} else {\nreturn malli$impl$regex$Driver$pop_thunk_BANG_$dyn_38668(self);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.impl.regex.IValidationDriver \x3d function(){};\n\nvar malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$dyn_38671 \x3d (function (driver,validator,regs,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.noncaching_park_validator_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(driver,validator,regs,pos,coll,k) : m__5374__auto__.call(null,driver,validator,regs,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.noncaching_park_validator_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(driver,validator,regs,pos,coll,k) : m__5372__auto__.call(null,driver,validator,regs,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IValidationDriver.noncaching-park-validator!\x22,driver);\n}\n}\n});\nmalli.impl.regex.noncaching_park_validator_BANG_ \x3d (function malli$impl$regex$noncaching_park_validator_BANG_(driver,validator,regs,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6(driver,validator,regs,pos,coll,k);\n} else {\nreturn malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$dyn_38671(driver,validator,regs,pos,coll,k);\n}\n});\n\nvar malli$impl$regex$IValidationDriver$park_validator_BANG_$dyn_38676 \x3d (function (driver,validator,regs,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.park_validator_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(driver,validator,regs,pos,coll,k) : m__5374__auto__.call(null,driver,validator,regs,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.park_validator_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(driver,validator,regs,pos,coll,k) : m__5372__auto__.call(null,driver,validator,regs,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IValidationDriver.park-validator!\x22,driver);\n}\n}\n});\nmalli.impl.regex.park_validator_BANG_ \x3d (function malli$impl$regex$park_validator_BANG_(driver,validator,regs,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IValidationDriver$park_validator_BANG_$arity$6 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IValidationDriver$park_validator_BANG_$arity$6(driver,validator,regs,pos,coll,k);\n} else {\nreturn malli$impl$regex$IValidationDriver$park_validator_BANG_$dyn_38676(driver,validator,regs,pos,coll,k);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.impl.regex.IExplanationDriver \x3d function(){};\n\nvar malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$dyn_38677 \x3d (function (driver,explainer,regs,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.noncaching_park_explainer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(driver,explainer,regs,pos,coll,k) : m__5374__auto__.call(null,driver,explainer,regs,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.noncaching_park_explainer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(driver,explainer,regs,pos,coll,k) : m__5372__auto__.call(null,driver,explainer,regs,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IExplanationDriver.noncaching-park-explainer!\x22,driver);\n}\n}\n});\nmalli.impl.regex.noncaching_park_explainer_BANG_ \x3d (function malli$impl$regex$noncaching_park_explainer_BANG_(driver,explainer,regs,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$arity$6 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$arity$6(driver,explainer,regs,pos,coll,k);\n} else {\nreturn malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$dyn_38677(driver,explainer,regs,pos,coll,k);\n}\n});\n\nvar malli$impl$regex$IExplanationDriver$park_explainer_BANG_$dyn_38678 \x3d (function (driver,explainer,regs,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.park_explainer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(driver,explainer,regs,pos,coll,k) : m__5374__auto__.call(null,driver,explainer,regs,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.park_explainer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(driver,explainer,regs,pos,coll,k) : m__5372__auto__.call(null,driver,explainer,regs,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IExplanationDriver.park-explainer!\x22,driver);\n}\n}\n});\nmalli.impl.regex.park_explainer_BANG_ \x3d (function malli$impl$regex$park_explainer_BANG_(driver,explainer,regs,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IExplanationDriver$park_explainer_BANG_$arity$6 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IExplanationDriver$park_explainer_BANG_$arity$6(driver,explainer,regs,pos,coll,k);\n} else {\nreturn malli$impl$regex$IExplanationDriver$park_explainer_BANG_$dyn_38678(driver,explainer,regs,pos,coll,k);\n}\n});\n\nvar malli$impl$regex$IExplanationDriver$value_path$dyn_38679 \x3d (function (self,pos){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.value_path[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(self,pos) : m__5374__auto__.call(null,self,pos));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.value_path[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(self,pos) : m__5372__auto__.call(null,self,pos));\n} else {\nthrow cljs.core.missing_protocol(\x22IExplanationDriver.value-path\x22,self);\n}\n}\n});\nmalli.impl.regex.value_path \x3d (function malli$impl$regex$value_path(self,pos){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$IExplanationDriver$value_path$arity$2 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$IExplanationDriver$value_path$arity$2(self,pos);\n} else {\nreturn malli$impl$regex$IExplanationDriver$value_path$dyn_38679(self,pos);\n}\n});\n\nvar malli$impl$regex$IExplanationDriver$fail_BANG_$dyn_38683 \x3d (function (self,pos,errors_STAR_){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.fail_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(self,pos,errors_STAR_) : m__5374__auto__.call(null,self,pos,errors_STAR_));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.fail_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(self,pos,errors_STAR_) : m__5372__auto__.call(null,self,pos,errors_STAR_));\n} else {\nthrow cljs.core.missing_protocol(\x22IExplanationDriver.fail!\x22,self);\n}\n}\n});\nmalli.impl.regex.fail_BANG_ \x3d (function malli$impl$regex$fail_BANG_(self,pos,errors_STAR_){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$IExplanationDriver$fail_BANG_$arity$3 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$IExplanationDriver$fail_BANG_$arity$3(self,pos,errors_STAR_);\n} else {\nreturn malli$impl$regex$IExplanationDriver$fail_BANG_$dyn_38683(self,pos,errors_STAR_);\n}\n});\n\nvar malli$impl$regex$IExplanationDriver$latest_errors$dyn_38685 \x3d (function (self){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.latest_errors[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5374__auto__.call(null,self));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.latest_errors[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5372__auto__.call(null,self));\n} else {\nthrow cljs.core.missing_protocol(\x22IExplanationDriver.latest-errors\x22,self);\n}\n}\n});\nmalli.impl.regex.latest_errors \x3d (function malli$impl$regex$latest_errors(self){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$IExplanationDriver$latest_errors$arity$1 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$IExplanationDriver$latest_errors$arity$1(self);\n} else {\nreturn malli$impl$regex$IExplanationDriver$latest_errors$dyn_38685(self);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.impl.regex.IParseDriver \x3d function(){};\n\nvar malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$dyn_38686 \x3d (function (driver,transformer,regs,coll_STAR_,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.noncaching_park_transformer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k) : m__5374__auto__.call(null,driver,transformer,regs,coll_STAR_,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.noncaching_park_transformer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k) : m__5372__auto__.call(null,driver,transformer,regs,coll_STAR_,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IParseDriver.noncaching-park-transformer!\x22,driver);\n}\n}\n});\nmalli.impl.regex.noncaching_park_transformer_BANG_ \x3d (function malli$impl$regex$noncaching_park_transformer_BANG_(driver,transformer,regs,coll_STAR_,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$arity$7 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k);\n} else {\nreturn malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$dyn_38686(driver,transformer,regs,coll_STAR_,pos,coll,k);\n}\n});\n\nvar malli$impl$regex$IParseDriver$park_transformer_BANG_$dyn_38689 \x3d (function (driver,transformer,regs,coll_STAR_,pos,coll,k){\nvar x__5373__auto__ \x3d (((driver \x3d\x3d null))?null:driver);\nvar m__5374__auto__ \x3d (malli.impl.regex.park_transformer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k) : m__5374__auto__.call(null,driver,transformer,regs,coll_STAR_,pos,coll,k));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.park_transformer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k) : m__5372__auto__.call(null,driver,transformer,regs,coll_STAR_,pos,coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IParseDriver.park-transformer!\x22,driver);\n}\n}\n});\nmalli.impl.regex.park_transformer_BANG_ \x3d (function malli$impl$regex$park_transformer_BANG_(driver,transformer,regs,coll_STAR_,pos,coll,k){\nif((((!((driver \x3d\x3d null)))) \x26\x26 ((!((driver.malli$impl$regex$IParseDriver$park_transformer_BANG_$arity$7 \x3d\x3d null)))))){\nreturn driver.malli$impl$regex$IParseDriver$park_transformer_BANG_$arity$7(driver,transformer,regs,coll_STAR_,pos,coll,k);\n} else {\nreturn malli$impl$regex$IParseDriver$park_transformer_BANG_$dyn_38689(driver,transformer,regs,coll_STAR_,pos,coll,k);\n}\n});\n\nvar malli$impl$regex$IParseDriver$succeed_with_BANG_$dyn_38690 \x3d (function (self,v){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.succeed_with_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(self,v) : m__5374__auto__.call(null,self,v));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.succeed_with_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(self,v) : m__5372__auto__.call(null,self,v));\n} else {\nthrow cljs.core.missing_protocol(\x22IParseDriver.succeed-with!\x22,self);\n}\n}\n});\nmalli.impl.regex.succeed_with_BANG_ \x3d (function malli$impl$regex$succeed_with_BANG_(self,v){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$IParseDriver$succeed_with_BANG_$arity$2 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$IParseDriver$succeed_with_BANG_$arity$2(self,v);\n} else {\nreturn malli$impl$regex$IParseDriver$succeed_with_BANG_$dyn_38690(self,v);\n}\n});\n\nvar malli$impl$regex$IParseDriver$success_result$dyn_38691 \x3d (function (self){\nvar x__5373__auto__ \x3d (((self \x3d\x3d null))?null:self);\nvar m__5374__auto__ \x3d (malli.impl.regex.success_result[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5374__auto__.call(null,self));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.success_result[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(self) : m__5372__auto__.call(null,self));\n} else {\nthrow cljs.core.missing_protocol(\x22IParseDriver.success-result\x22,self);\n}\n}\n});\nmalli.impl.regex.success_result \x3d (function malli$impl$regex$success_result(self){\nif((((!((self \x3d\x3d null)))) \x26\x26 ((!((self.malli$impl$regex$IParseDriver$success_result$arity$1 \x3d\x3d null)))))){\nreturn self.malli$impl$regex$IParseDriver$success_result$arity$1(self);\n} else {\nreturn malli$impl$regex$IParseDriver$success_result$dyn_38691(self);\n}\n});\n\nmalli.impl.regex.item_validator \x3d (function malli$impl$regex$item_validator(valid_QMARK_){\nreturn (function (_,___$1,pos,coll,k){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.seq(coll);\nif(and__5023__auto__){\nvar G__37445 \x3d cljs.core.first(coll);\nreturn (valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(G__37445) : valid_QMARK_.call(null,G__37445));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__37449 \x3d (pos + (1));\nvar G__37450 \x3d cljs.core.rest(coll);\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(G__37449,G__37450) : k.call(null,G__37449,G__37450));\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.item_explainer \x3d (function malli$impl$regex$item_explainer(path,schema,schema_explainer){\nreturn (function (driver,_,pos,coll,k){\nvar in$ \x3d malli.impl.regex.value_path(driver,pos);\nif(cljs.core.seq(coll)){\nvar errors \x3d (function (){var G__37463 \x3d cljs.core.first(coll);\nvar G__37464 \x3d in$;\nvar G__37465 \x3d cljs.core.PersistentVector.EMPTY;\nreturn (schema_explainer.cljs$core$IFn$_invoke$arity$3 ? schema_explainer.cljs$core$IFn$_invoke$arity$3(G__37463,G__37464,G__37465) : schema_explainer.call(null,G__37463,G__37464,G__37465));\n})();\nif(cljs.core.seq(errors)){\nreturn malli.impl.regex.fail_BANG_(driver,pos,errors);\n} else {\nvar G__37466 \x3d (pos + (1));\nvar G__37467 \x3d cljs.core.rest(coll);\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(G__37466,G__37467) : k.call(null,G__37466,G__37467));\n}\n} else {\nreturn malli.impl.regex.fail_BANG_(driver,pos,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,schema,null,new cljs.core.Keyword(\x22malli.core\x22,\x22end-of-input\x22,\x22malli.core/end-of-input\x22,-491237771))], null));\n}\n});\n});\nmalli.impl.regex.item_parser \x3d (function malli$impl$regex$item_parser(parse){\nreturn (function (_,___$1,pos,coll,k){\nif(cljs.core.seq(coll)){\nvar v \x3d (function (){var G__37474 \x3d cljs.core.first(coll);\nreturn (parse.cljs$core$IFn$_invoke$arity$1 ? parse.cljs$core$IFn$_invoke$arity$1(G__37474) : parse.call(null,G__37474));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900))){\nreturn null;\n} else {\nvar G__37475 \x3d v;\nvar G__37476 \x3d (pos + (1));\nvar G__37477 \x3d cljs.core.rest(coll);\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37475,G__37476,G__37477) : k.call(null,G__37475,G__37476,G__37477));\n}\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.item_unparser \x3d (function malli$impl$regex$item_unparser(unparse){\nreturn (function (v){\nreturn malli.impl.util._map_valid(cljs.core.vector,(unparse.cljs$core$IFn$_invoke$arity$1 ? unparse.cljs$core$IFn$_invoke$arity$1(v) : unparse.call(null,v)));\n});\n});\nmalli.impl.regex.item_encoder \x3d (function malli$impl$regex$item_encoder(valid_QMARK_,encode){\nreturn (function (_,___$1,coll_STAR_,pos,coll,k){\nif(cljs.core.seq(coll)){\nvar v \x3d cljs.core.first(coll);\nif(cljs.core.truth_((valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(v) : valid_QMARK_.call(null,v)))){\nvar G__37495 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR_,(encode.cljs$core$IFn$_invoke$arity$1 ? encode.cljs$core$IFn$_invoke$arity$1(v) : encode.call(null,v)));\nvar G__37496 \x3d (pos + (1));\nvar G__37497 \x3d cljs.core.rest(coll);\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37495,G__37496,G__37497) : k.call(null,G__37495,G__37496,G__37497));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.item_decoder \x3d (function malli$impl$regex$item_decoder(decode,valid_QMARK_){\nreturn (function (_,___$1,coll_STAR_,pos,coll,k){\nif(cljs.core.seq(coll)){\nvar v \x3d (function (){var G__37506 \x3d cljs.core.first(coll);\nreturn (decode.cljs$core$IFn$_invoke$arity$1 ? decode.cljs$core$IFn$_invoke$arity$1(G__37506) : decode.call(null,G__37506));\n})();\nif(cljs.core.truth_((valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(v) : valid_QMARK_.call(null,v)))){\nvar G__37509 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR_,v);\nvar G__37510 \x3d (pos + (1));\nvar G__37511 \x3d cljs.core.rest(coll);\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37509,G__37510,G__37511) : k.call(null,G__37509,G__37510,G__37511));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.item_transformer \x3d (function malli$impl$regex$item_transformer(method,validator,t){\nvar G__37518 \x3d method;\nvar G__37518__$1 \x3d (((G__37518 instanceof cljs.core.Keyword))?G__37518.fqn:null);\nswitch (G__37518__$1) {\ncase \x22encode\x22:\nreturn malli.impl.regex.item_encoder(validator,t);\n\nbreak;\ncase \x22decode\x22:\nreturn malli.impl.regex.item_decoder(t,validator);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37518__$1)].join(\x27\x27)));\n\n}\n});\nmalli.impl.regex.end_validator \x3d (function malli$impl$regex$end_validator(){\nreturn (function (_,___$1,pos,coll,k){\nif(cljs.core.empty_QMARK_(coll)){\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.end_explainer \x3d (function malli$impl$regex$end_explainer(schema,path){\nreturn (function (driver,_,pos,coll,k){\nif(cljs.core.empty_QMARK_(coll)){\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n} else {\nreturn malli.impl.regex.fail_BANG_(driver,pos,(new cljs.core.List(null,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,malli.impl.regex.value_path(driver,pos),schema,cljs.core.first(coll),new cljs.core.Keyword(\x22malli.core\x22,\x22input-remaining\x22,\x22malli.core/input-remaining\x22,372310422)),null,(1),null)));\n}\n});\n});\nmalli.impl.regex.end_parser \x3d (function malli$impl$regex$end_parser(){\nreturn (function (_,___$1,pos,coll,k){\nif(cljs.core.empty_QMARK_(coll)){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(null,pos,coll) : k.call(null,null,pos,coll));\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.end_transformer \x3d (function malli$impl$regex$end_transformer(){\nreturn (function (_,___$1,coll_STAR_,pos,coll,k){\nif(cljs.core.empty_QMARK_(coll)){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n} else {\nreturn null;\n}\n});\n});\nmalli.impl.regex.pure_parser \x3d (function malli$impl$regex$pure_parser(v){\nreturn (function (_,___$1,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(v,pos,coll) : k.call(null,v,pos,coll));\n});\n});\nmalli.impl.regex.pure_unparser \x3d (function malli$impl$regex$pure_unparser(_){\nreturn cljs.core.PersistentVector.EMPTY;\n});\nmalli.impl.regex.fmap_parser \x3d (function malli$impl$regex$fmap_parser(f,p){\nreturn (function (driver,regs,pos,coll,k){\nvar G__37540 \x3d driver;\nvar G__37541 \x3d regs;\nvar G__37542 \x3d pos;\nvar G__37543 \x3d coll;\nvar G__37544 \x3d (function (v,pos__$1,coll__$1){\nvar G__37545 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\nvar G__37546 \x3d pos__$1;\nvar G__37547 \x3d coll__$1;\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37545,G__37546,G__37547) : k.call(null,G__37545,G__37546,G__37547));\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__37540,G__37541,G__37542,G__37543,G__37544) : p.call(null,G__37540,G__37541,G__37542,G__37543,G__37544));\n});\n});\nmalli.impl.regex.entry__GT_regex \x3d (function malli$impl$regex$entry__GT_regex(_QMARK_kr){\nif(cljs.core.vector_QMARK_(_QMARK_kr)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(_QMARK_kr,(1));\n} else {\nreturn _QMARK_kr;\n}\n});\nmalli.impl.regex.cat_validator \x3d (function malli$impl$regex$cat_validator(var_args){\nvar G__37560 \x3d arguments.length;\nswitch (G__37560) {\ncase 0:\nreturn malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38701 \x3d arguments.length;\nvar i__5750__auto___38702 \x3d (0);\nwhile(true){\nif((i__5750__auto___38702 \x3c len__5749__auto___38701)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38702]));\n\nvar G__38704 \x3d (i__5750__auto___38702 + (1));\ni__5750__auto___38702 \x3d G__38704;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((1) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (_,___$1,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n});\n}));\n\n(malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,_QMARK_kr__$1){\nvar r_STAR_ \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,pos,coll,k){\nvar G__37567 \x3d driver;\nvar G__37568 \x3d regs;\nvar G__37569 \x3d pos;\nvar G__37570 \x3d coll;\nvar G__37571 \x3d (function (pos__$1,coll__$1){\nreturn (r_STAR_.cljs$core$IFn$_invoke$arity$5 ? r_STAR_.cljs$core$IFn$_invoke$arity$5(driver,regs,pos__$1,coll__$1,k) : r_STAR_.call(null,driver,regs,pos__$1,coll__$1,k));\n});\nreturn (acc.cljs$core$IFn$_invoke$arity$5 ? acc.cljs$core$IFn$_invoke$arity$5(G__37567,G__37568,G__37569,G__37570,G__37571) : acc.call(null,G__37567,G__37568,G__37569,G__37570,G__37571));\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n/** @this {Function} */\n(malli.impl.regex.cat_validator.cljs$lang$applyTo \x3d (function (seq37558){\nvar G__37559 \x3d cljs.core.first(seq37558);\nvar seq37558__$1 \x3d cljs.core.next(seq37558);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37559,seq37558__$1);\n}));\n\n(malli.impl.regex.cat_validator.cljs$lang$maxFixedArity \x3d (1));\n\nmalli.impl.regex.cat_explainer \x3d (function malli$impl$regex$cat_explainer(var_args){\nvar G__37581 \x3d arguments.length;\nswitch (G__37581) {\ncase 0:\nreturn malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38708 \x3d arguments.length;\nvar i__5750__auto___38709 \x3d (0);\nwhile(true){\nif((i__5750__auto___38709 \x3c len__5749__auto___38708)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38709]));\n\nvar G__38710 \x3d (i__5750__auto___38709 + (1));\ni__5750__auto___38709 \x3d G__38710;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((1) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (_,___$1,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n});\n}));\n\n(malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,_QMARK_kr__$1){\nvar r_STAR_ \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,pos,coll,k){\nvar G__37663 \x3d driver;\nvar G__37664 \x3d regs;\nvar G__37665 \x3d pos;\nvar G__37666 \x3d coll;\nvar G__37667 \x3d (function (pos__$1,coll__$1){\nreturn (r_STAR_.cljs$core$IFn$_invoke$arity$5 ? r_STAR_.cljs$core$IFn$_invoke$arity$5(driver,regs,pos__$1,coll__$1,k) : r_STAR_.call(null,driver,regs,pos__$1,coll__$1,k));\n});\nreturn (acc.cljs$core$IFn$_invoke$arity$5 ? acc.cljs$core$IFn$_invoke$arity$5(G__37663,G__37664,G__37665,G__37666,G__37667) : acc.call(null,G__37663,G__37664,G__37665,G__37666,G__37667));\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n/** @this {Function} */\n(malli.impl.regex.cat_explainer.cljs$lang$applyTo \x3d (function (seq37577){\nvar G__37578 \x3d cljs.core.first(seq37577);\nvar seq37577__$1 \x3d cljs.core.next(seq37577);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37578,seq37577__$1);\n}));\n\n(malli.impl.regex.cat_explainer.cljs$lang$maxFixedArity \x3d (1));\n\nmalli.impl.regex.cat_parser \x3d (function malli$impl$regex$cat_parser(var_args){\nvar G__37680 \x3d arguments.length;\nswitch (G__37680) {\ncase 0:\nreturn malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38715 \x3d arguments.length;\nvar i__5750__auto___38716 \x3d (0);\nwhile(true){\nif((i__5750__auto___38716 \x3c len__5749__auto___38715)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38716]));\n\nvar G__38717 \x3d (i__5750__auto___38716 + (1));\ni__5750__auto___38716 \x3d G__38717;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((1) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (_,___$1,pos,coll,k){\nvar G__37749 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__37750 \x3d pos;\nvar G__37751 \x3d coll;\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37749,G__37750,G__37751) : k.call(null,G__37749,G__37750,G__37751));\n});\n}));\n\n(malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (r,rs){\nvar sp \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,r__$1){\nreturn (function (driver,regs,coll_STAR_,pos,coll,k){\nvar G__37755 \x3d driver;\nvar G__37756 \x3d regs;\nvar G__37757 \x3d pos;\nvar G__37758 \x3d coll;\nvar G__37759 \x3d (function (v,pos__$1,coll__$1){\nvar G__37761 \x3d driver;\nvar G__37762 \x3d regs;\nvar G__37763 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR_,v);\nvar G__37764 \x3d pos__$1;\nvar G__37765 \x3d coll__$1;\nvar G__37766 \x3d k;\nreturn (acc.cljs$core$IFn$_invoke$arity$6 ? acc.cljs$core$IFn$_invoke$arity$6(G__37761,G__37762,G__37763,G__37764,G__37765,G__37766) : acc.call(null,G__37761,G__37762,G__37763,G__37764,G__37765,G__37766));\n});\nreturn (r__$1.cljs$core$IFn$_invoke$arity$5 ? r__$1.cljs$core$IFn$_invoke$arity$5(G__37755,G__37756,G__37757,G__37758,G__37759) : r__$1.call(null,G__37755,G__37756,G__37757,G__37758,G__37759));\n});\n}),(function (_,___$1,coll_STAR_,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n}),cljs.core.reverse(cljs.core.cons(r,rs)));\nreturn (function (driver,regs,pos,coll,k){\nvar G__37772 \x3d driver;\nvar G__37773 \x3d regs;\nvar G__37774 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__37775 \x3d pos;\nvar G__37776 \x3d coll;\nvar G__37777 \x3d k;\nreturn (sp.cljs$core$IFn$_invoke$arity$6 ? sp.cljs$core$IFn$_invoke$arity$6(G__37772,G__37773,G__37774,G__37775,G__37776,G__37777) : sp.call(null,G__37772,G__37773,G__37774,G__37775,G__37776,G__37777));\n});\n}));\n\n/** @this {Function} */\n(malli.impl.regex.cat_parser.cljs$lang$applyTo \x3d (function (seq37676){\nvar G__37678 \x3d cljs.core.first(seq37676);\nvar seq37676__$1 \x3d cljs.core.next(seq37676);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37678,seq37676__$1);\n}));\n\n(malli.impl.regex.cat_parser.cljs$lang$maxFixedArity \x3d (1));\n\nmalli.impl.regex.catn_parser \x3d (function malli$impl$regex$catn_parser(var_args){\nvar G__37810 \x3d arguments.length;\nswitch (G__37810) {\ncase 1:\nreturn malli.impl.regex.catn_parser.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38724 \x3d arguments.length;\nvar i__5750__auto___38725 \x3d (0);\nwhile(true){\nif((i__5750__auto___38725 \x3c len__5749__auto___38724)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38725]));\n\nvar G__38726 \x3d (i__5750__auto___38725 + (1));\ni__5750__auto___38725 \x3d G__38726;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn malli.impl.regex.catn_parser.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.impl.regex.catn_parser.cljs$core$IFn$_invoke$arity$1 \x3d (function (tags){\nreturn (function (_,___$1,pos,coll,k){\nvar G__37828 \x3d (function (){var G__37831 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (tags.cljs$core$IFn$_invoke$arity$1 ? tags.cljs$core$IFn$_invoke$arity$1(G__37831) : tags.call(null,G__37831));\n})();\nvar G__37829 \x3d pos;\nvar G__37830 \x3d coll;\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37828,G__37829,G__37830) : k.call(null,G__37828,G__37829,G__37830));\n});\n}));\n\n(malli.impl.regex.catn_parser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tags,kr,krs){\nvar sp \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__37841){\nvar vec__37846 \x3d p__37841;\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37846,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37846,(1),null);\nreturn (function (driver,regs,m,pos,coll,k){\nvar G__37849 \x3d driver;\nvar G__37850 \x3d regs;\nvar G__37851 \x3d pos;\nvar G__37852 \x3d coll;\nvar G__37853 \x3d (function (v,pos__$1,coll__$1){\nvar G__37855 \x3d driver;\nvar G__37856 \x3d regs;\nvar G__37857 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,tag,v);\nvar G__37858 \x3d pos__$1;\nvar G__37859 \x3d coll__$1;\nvar G__37860 \x3d k;\nreturn (acc.cljs$core$IFn$_invoke$arity$6 ? acc.cljs$core$IFn$_invoke$arity$6(G__37855,G__37856,G__37857,G__37858,G__37859,G__37860) : acc.call(null,G__37855,G__37856,G__37857,G__37858,G__37859,G__37860));\n});\nreturn (r.cljs$core$IFn$_invoke$arity$5 ? r.cljs$core$IFn$_invoke$arity$5(G__37849,G__37850,G__37851,G__37852,G__37853) : r.call(null,G__37849,G__37850,G__37851,G__37852,G__37853));\n});\n}),(function (_,___$1,m,pos,coll,k){\nvar G__37861 \x3d (tags.cljs$core$IFn$_invoke$arity$1 ? tags.cljs$core$IFn$_invoke$arity$1(m) : tags.call(null,m));\nvar G__37862 \x3d pos;\nvar G__37863 \x3d coll;\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(G__37861,G__37862,G__37863) : k.call(null,G__37861,G__37862,G__37863));\n}),cljs.core.reverse(cljs.core.cons(kr,krs)));\nreturn (function (driver,regs,pos,coll,k){\nvar G__37873 \x3d driver;\nvar G__37874 \x3d regs;\nvar G__37875 \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar G__37876 \x3d pos;\nvar G__37877 \x3d coll;\nvar G__37878 \x3d k;\nreturn (sp.cljs$core$IFn$_invoke$arity$6 ? sp.cljs$core$IFn$_invoke$arity$6(G__37873,G__37874,G__37875,G__37876,G__37877,G__37878) : sp.call(null,G__37873,G__37874,G__37875,G__37876,G__37877,G__37878));\n});\n}));\n\n/** @this {Function} */\n(malli.impl.regex.catn_parser.cljs$lang$applyTo \x3d (function (seq37801){\nvar G__37803 \x3d cljs.core.first(seq37801);\nvar seq37801__$1 \x3d cljs.core.next(seq37801);\nvar G__37804 \x3d cljs.core.first(seq37801__$1);\nvar seq37801__$2 \x3d cljs.core.next(seq37801__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37803,G__37804,seq37801__$2);\n}));\n\n(malli.impl.regex.catn_parser.cljs$lang$maxFixedArity \x3d (2));\n\nmalli.impl.regex.cat_unparser \x3d (function malli$impl$regex$cat_unparser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38738 \x3d arguments.length;\nvar i__5750__auto___38739 \x3d (0);\nwhile(true){\nif((i__5750__auto___38739 \x3c len__5749__auto___38738)){\nargs__5755__auto__.push((arguments[i__5750__auto___38739]));\n\nvar G__38741 \x3d (i__5750__auto___38739 + (1));\ni__5750__auto___38739 \x3d G__38741;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn malli.impl.regex.cat_unparser.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(malli.impl.regex.cat_unparser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (unparsers){\nvar unparsers__$1 \x3d cljs.core.vec(unparsers);\nreturn (function (tup){\nif(((cljs.core.vector_QMARK_(tup)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(tup),cljs.core.count(unparsers__$1))))){\nreturn malli.impl.util._reduce_kv_valid((function (coll,i,unparser){\nreturn malli.impl.util._map_valid((function (p1__37885_SHARP_){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(coll,p1__37885_SHARP_);\n}),(function (){var G__37890 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(tup,i);\nreturn (unparser.cljs$core$IFn$_invoke$arity$1 ? unparser.cljs$core$IFn$_invoke$arity$1(G__37890) : unparser.call(null,G__37890));\n})());\n}),cljs.core.PersistentVector.EMPTY,unparsers__$1);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.impl.regex.cat_unparser.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(malli.impl.regex.cat_unparser.cljs$lang$applyTo \x3d (function (seq37886){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37886));\n}));\n\nmalli.impl.regex.catn_unparser \x3d (function malli$impl$regex$catn_unparser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38746 \x3d arguments.length;\nvar i__5750__auto___38747 \x3d (0);\nwhile(true){\nif((i__5750__auto___38747 \x3c len__5749__auto___38746)){\nargs__5755__auto__.push((arguments[i__5750__auto___38747]));\n\nvar G__38748 \x3d (i__5750__auto___38747 + (1));\ni__5750__auto___38747 \x3d G__38748;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.catn_unparser.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.catn_unparser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tags_QMARK_,unparsers){\nvar unparsers__$1 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.array_map,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([unparsers], 0)));\nreturn (function (m){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (tags_QMARK_.cljs$core$IFn$_invoke$arity$1 ? tags_QMARK_.cljs$core$IFn$_invoke$arity$1(m) : tags_QMARK_.call(null,m));\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556).cljs$core$IFn$_invoke$arity$1(m)),cljs.core.count(unparsers__$1));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn malli.impl.util._reduce_kv_valid((function (coll,tag,unparser){\nvar temp__5827__auto__ \x3d cljs.core.find(new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556).cljs$core$IFn$_invoke$arity$1(m),tag);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar kv \x3d temp__5827__auto__;\nreturn malli.impl.util._map_valid((function (p1__37897_SHARP_){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(coll,p1__37897_SHARP_);\n}),(function (){var G__37915 \x3d cljs.core.val(kv);\nreturn (unparser.cljs$core$IFn$_invoke$arity$1 ? unparser.cljs$core$IFn$_invoke$arity$1(G__37915) : unparser.call(null,G__37915));\n})());\n}\n}),cljs.core.PersistentVector.EMPTY,unparsers__$1);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.impl.regex.catn_unparser.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(malli.impl.regex.catn_unparser.cljs$lang$applyTo \x3d (function (seq37898){\nvar G__37899 \x3d cljs.core.first(seq37898);\nvar seq37898__$1 \x3d cljs.core.next(seq37898);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37899,seq37898__$1);\n}));\n\nmalli.impl.regex.cat_transformer \x3d (function malli$impl$regex$cat_transformer(var_args){\nvar G__37929 \x3d arguments.length;\nswitch (G__37929) {\ncase 0:\nreturn malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38753 \x3d arguments.length;\nvar i__5750__auto___38755 \x3d (0);\nwhile(true){\nif((i__5750__auto___38755 \x3c len__5749__auto___38753)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38755]));\n\nvar G__38756 \x3d (i__5750__auto___38755 + (1));\ni__5750__auto___38755 \x3d G__38756;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((1) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (_,___$1,coll_STAR_,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n});\n}));\n\n(malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,_QMARK_kr__$1){\nvar r \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,coll_STAR_,pos,coll,k){\nvar G__37932 \x3d driver;\nvar G__37933 \x3d regs;\nvar G__37934 \x3d coll_STAR_;\nvar G__37935 \x3d pos;\nvar G__37936 \x3d coll;\nvar G__37937 \x3d (function (coll_STAR___$1,pos__$1,coll__$1){\nreturn (r.cljs$core$IFn$_invoke$arity$6 ? r.cljs$core$IFn$_invoke$arity$6(driver,regs,coll_STAR___$1,pos__$1,coll__$1,k) : r.call(null,driver,regs,coll_STAR___$1,pos__$1,coll__$1,k));\n});\nreturn (acc.cljs$core$IFn$_invoke$arity$6 ? acc.cljs$core$IFn$_invoke$arity$6(G__37932,G__37933,G__37934,G__37935,G__37936,G__37937) : acc.call(null,G__37932,G__37933,G__37934,G__37935,G__37936,G__37937));\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n/** @this {Function} */\n(malli.impl.regex.cat_transformer.cljs$lang$applyTo \x3d (function (seq37927){\nvar G__37928 \x3d cljs.core.first(seq37927);\nvar seq37927__$1 \x3d cljs.core.next(seq37927);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37928,seq37927__$1);\n}));\n\n(malli.impl.regex.cat_transformer.cljs$lang$maxFixedArity \x3d (1));\n\nmalli.impl.regex.alt_validator \x3d (function malli$impl$regex$alt_validator(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38761 \x3d arguments.length;\nvar i__5750__auto___38762 \x3d (0);\nwhile(true){\nif((i__5750__auto___38762 \x3c len__5749__auto___38761)){\nargs__5755__auto__.push((arguments[i__5750__auto___38762]));\n\nvar G__38763 \x3d (i__5750__auto___38762 + (1));\ni__5750__auto___38762 \x3d G__38763;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.alt_validator.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.alt_validator.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,_QMARK_kr__$1){\nvar r_STAR_ \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,pos,coll,k){\nmalli.impl.regex.park_validator_BANG_(driver,r_STAR_,regs,pos,coll,k);\n\nreturn malli.impl.regex.park_validator_BANG_(driver,r,regs,pos,coll,k);\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n(malli.impl.regex.alt_validator.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(malli.impl.regex.alt_validator.cljs$lang$applyTo \x3d (function (seq37938){\nvar G__37939 \x3d cljs.core.first(seq37938);\nvar seq37938__$1 \x3d cljs.core.next(seq37938);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37939,seq37938__$1);\n}));\n\nmalli.impl.regex.alt_explainer \x3d (function malli$impl$regex$alt_explainer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38769 \x3d arguments.length;\nvar i__5750__auto___38770 \x3d (0);\nwhile(true){\nif((i__5750__auto___38770 \x3c len__5749__auto___38769)){\nargs__5755__auto__.push((arguments[i__5750__auto___38770]));\n\nvar G__38771 \x3d (i__5750__auto___38770 + (1));\ni__5750__auto___38770 \x3d G__38771;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.alt_explainer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.alt_explainer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,_QMARK_kr__$1){\nvar r_STAR_ \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,pos,coll,k){\nmalli.impl.regex.park_explainer_BANG_(driver,r_STAR_,regs,pos,coll,k);\n\nreturn malli.impl.regex.park_explainer_BANG_(driver,r,regs,pos,coll,k);\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n(malli.impl.regex.alt_explainer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(malli.impl.regex.alt_explainer.cljs$lang$applyTo \x3d (function (seq37940){\nvar G__37941 \x3d cljs.core.first(seq37940);\nvar seq37940__$1 \x3d cljs.core.next(seq37940);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37941,seq37940__$1);\n}));\n\nmalli.impl.regex.alt_parser \x3d (function malli$impl$regex$alt_parser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38776 \x3d arguments.length;\nvar i__5750__auto___38777 \x3d (0);\nwhile(true){\nif((i__5750__auto___38777 \x3c len__5749__auto___38776)){\nargs__5755__auto__.push((arguments[i__5750__auto___38777]));\n\nvar G__38779 \x3d (i__5750__auto___38777 + (1));\ni__5750__auto___38777 \x3d G__38779;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn malli.impl.regex.alt_parser.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(malli.impl.regex.alt_parser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (r,r_STAR_){\nreturn (function (driver,regs,pos,coll,k){\nmalli.impl.regex.park_validator_BANG_(driver,r_STAR_,regs,pos,coll,k);\n\nreturn malli.impl.regex.park_validator_BANG_(driver,r,regs,pos,coll,k);\n});\n}),rs);\n}));\n\n(malli.impl.regex.alt_parser.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(malli.impl.regex.alt_parser.cljs$lang$applyTo \x3d (function (seq37946){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37946));\n}));\n\nmalli.impl.regex.altn_parser \x3d (function malli$impl$regex$altn_parser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38781 \x3d arguments.length;\nvar i__5750__auto___38782 \x3d (0);\nwhile(true){\nif((i__5750__auto___38782 \x3c len__5749__auto___38781)){\nargs__5755__auto__.push((arguments[i__5750__auto___38782]));\n\nvar G__38783 \x3d (i__5750__auto___38782 + (1));\ni__5750__auto___38782 \x3d G__38783;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn malli.impl.regex.altn_parser.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.altn_parser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tag,kr,krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,p__37953){\nvar vec__37954 \x3d p__37953;\nvar t \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37954,(0),null);\nvar r_STAR_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37954,(1),null);\nvar r_STAR___$1 \x3d malli.impl.regex.fmap_parser((function (v){\nreturn (tag.cljs$core$IFn$_invoke$arity$2 ? tag.cljs$core$IFn$_invoke$arity$2(t,v) : tag.call(null,t,v));\n}),r_STAR_);\nreturn (function (driver,regs,pos,coll,k){\nmalli.impl.regex.park_validator_BANG_(driver,r_STAR___$1,regs,pos,coll,k);\n\nreturn malli.impl.regex.park_validator_BANG_(driver,r,regs,pos,coll,k);\n});\n}),(function (){var vec__37957 \x3d kr;\nvar t \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37957,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37957,(1),null);\nreturn malli.impl.regex.fmap_parser((function (v){\nreturn (tag.cljs$core$IFn$_invoke$arity$2 ? tag.cljs$core$IFn$_invoke$arity$2(t,v) : tag.call(null,t,v));\n}),r);\n})(),krs);\n}));\n\n(malli.impl.regex.altn_parser.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(malli.impl.regex.altn_parser.cljs$lang$applyTo \x3d (function (seq37949){\nvar G__37950 \x3d cljs.core.first(seq37949);\nvar seq37949__$1 \x3d cljs.core.next(seq37949);\nvar G__37951 \x3d cljs.core.first(seq37949__$1);\nvar seq37949__$2 \x3d cljs.core.next(seq37949__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37950,G__37951,seq37949__$2);\n}));\n\nmalli.impl.regex.alt_unparser \x3d (function malli$impl$regex$alt_unparser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38787 \x3d arguments.length;\nvar i__5750__auto___38788 \x3d (0);\nwhile(true){\nif((i__5750__auto___38788 \x3c len__5749__auto___38787)){\nargs__5755__auto__.push((arguments[i__5750__auto___38788]));\n\nvar G__38791 \x3d (i__5750__auto___38788 + (1));\ni__5750__auto___38788 \x3d G__38791;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn malli.impl.regex.alt_unparser.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(malli.impl.regex.alt_unparser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (unparsers){\nreturn (function (x){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,unparse){\nreturn malli.impl.util._map_valid(cljs.core.reduced,(unparse.cljs$core$IFn$_invoke$arity$1 ? unparse.cljs$core$IFn$_invoke$arity$1(x) : unparse.call(null,x)));\n}),new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900),unparsers);\n});\n}));\n\n(malli.impl.regex.alt_unparser.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(malli.impl.regex.alt_unparser.cljs$lang$applyTo \x3d (function (seq37960){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37960));\n}));\n\nmalli.impl.regex.altn_unparser \x3d (function malli$impl$regex$altn_unparser(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38796 \x3d arguments.length;\nvar i__5750__auto___38797 \x3d (0);\nwhile(true){\nif((i__5750__auto___38797 \x3c len__5749__auto___38796)){\nargs__5755__auto__.push((arguments[i__5750__auto___38797]));\n\nvar G__38800 \x3d (i__5750__auto___38797 + (1));\ni__5750__auto___38797 \x3d G__38800;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.altn_unparser.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.altn_unparser.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tag_QMARK_,unparsers){\nvar unparsers__$1 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,unparsers);\nreturn (function (x){\nif(cljs.core.truth_((tag_QMARK_.cljs$core$IFn$_invoke$arity$1 ? tag_QMARK_.cljs$core$IFn$_invoke$arity$1(x) : tag_QMARK_.call(null,x)))){\nvar temp__5827__auto__ \x3d cljs.core.find(unparsers__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(x));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar kv \x3d temp__5827__auto__;\nvar G__37969 \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(x);\nvar fexpr__37968 \x3d cljs.core.val(kv);\nreturn (fexpr__37968.cljs$core$IFn$_invoke$arity$1 ? fexpr__37968.cljs$core$IFn$_invoke$arity$1(G__37969) : fexpr__37968.call(null,G__37969));\n}\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.impl.regex.altn_unparser.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(malli.impl.regex.altn_unparser.cljs$lang$applyTo \x3d (function (seq37965){\nvar G__37966 \x3d cljs.core.first(seq37965);\nvar seq37965__$1 \x3d cljs.core.next(seq37965);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37966,seq37965__$1);\n}));\n\nmalli.impl.regex.alt_transformer \x3d (function malli$impl$regex$alt_transformer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38802 \x3d arguments.length;\nvar i__5750__auto___38803 \x3d (0);\nwhile(true){\nif((i__5750__auto___38803 \x3c len__5749__auto___38802)){\nargs__5755__auto__.push((arguments[i__5750__auto___38803]));\n\nvar G__38804 \x3d (i__5750__auto___38803 + (1));\ni__5750__auto___38803 \x3d G__38804;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn malli.impl.regex.alt_transformer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(malli.impl.regex.alt_transformer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_kr,_QMARK_krs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,_QMARK_kr__$1){\nvar r_STAR_ \x3d malli.impl.regex.entry__GT_regex(_QMARK_kr__$1);\nreturn (function (driver,regs,coll_STAR_,pos,coll,k){\nmalli.impl.regex.park_transformer_BANG_(driver,r_STAR_,regs,coll_STAR_,pos,coll,k);\n\nreturn malli.impl.regex.park_transformer_BANG_(driver,r,regs,coll_STAR_,pos,coll,k);\n});\n}),malli.impl.regex.entry__GT_regex(_QMARK_kr),_QMARK_krs);\n}));\n\n(malli.impl.regex.alt_transformer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(malli.impl.regex.alt_transformer.cljs$lang$applyTo \x3d (function (seq37970){\nvar G__37971 \x3d cljs.core.first(seq37970);\nvar seq37970__$1 \x3d cljs.core.next(seq37970);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37971,seq37970__$1);\n}));\n\nmalli.impl.regex._QMARK__validator \x3d (function malli$impl$regex$_QMARK__validator(p){\nreturn malli.impl.regex.alt_validator.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$0()], 0));\n});\nmalli.impl.regex._QMARK__explainer \x3d (function malli$impl$regex$_QMARK__explainer(p){\nreturn malli.impl.regex.alt_explainer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$0()], 0));\n});\nmalli.impl.regex._QMARK__parser \x3d (function malli$impl$regex$_QMARK__parser(p){\nreturn malli.impl.regex.alt_parser.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p,malli.impl.regex.pure_parser(null)], 0));\n});\nmalli.impl.regex._QMARK__unparser \x3d (function malli$impl$regex$_QMARK__unparser(p){\nreturn malli.impl.regex.alt_unparser.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p,malli.impl.regex.pure_unparser], 0));\n});\nmalli.impl.regex._QMARK__transformer \x3d (function malli$impl$regex$_QMARK__transformer(p){\nreturn malli.impl.regex.alt_transformer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$0()], 0));\n});\nmalli.impl.regex._STAR__validator \x3d (function malli$impl$regex$_STAR__validator(p){\nvar _STAR_p_epsilon \x3d malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$0();\nreturn (function malli$impl$regex$_STAR__validator_$__STAR_p(driver,regs,pos,coll,k){\nmalli.impl.regex.park_validator_BANG_(driver,_STAR_p_epsilon,regs,pos,coll,k);\n\nvar G__37986 \x3d driver;\nvar G__37987 \x3d regs;\nvar G__37988 \x3d pos;\nvar G__37989 \x3d coll;\nvar G__37990 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.park_validator_BANG_(driver,malli$impl$regex$_STAR__validator_$__STAR_p,regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__37986,G__37987,G__37988,G__37989,G__37990) : p.call(null,G__37986,G__37987,G__37988,G__37989,G__37990));\n});\n});\nmalli.impl.regex._STAR__explainer \x3d (function malli$impl$regex$_STAR__explainer(p){\nvar _STAR_p_epsilon \x3d malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$0();\nreturn (function malli$impl$regex$_STAR__explainer_$__STAR_p(driver,regs,pos,coll,k){\nmalli.impl.regex.park_explainer_BANG_(driver,_STAR_p_epsilon,regs,pos,coll,k);\n\nvar G__37992 \x3d driver;\nvar G__37993 \x3d regs;\nvar G__37994 \x3d pos;\nvar G__37995 \x3d coll;\nvar G__37996 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.park_explainer_BANG_(driver,malli$impl$regex$_STAR__explainer_$__STAR_p,regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__37992,G__37993,G__37994,G__37995,G__37996) : p.call(null,G__37992,G__37993,G__37994,G__37995,G__37996));\n});\n});\nmalli.impl.regex._STAR__parser \x3d (function malli$impl$regex$_STAR__parser(p){\nvar _STAR_p_epsilon \x3d (function (_,___$1,coll_STAR_,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n});\nreturn (function() {\nvar malli$impl$regex$_STAR__parser_$__STAR_p \x3d null;\nvar malli$impl$regex$_STAR__parser_$__STAR_p__5 \x3d (function (driver,regs,pos,coll,k){\nreturn malli$impl$regex$_STAR__parser_$__STAR_p.cljs$core$IFn$_invoke$arity$6(driver,regs,cljs.core.PersistentVector.EMPTY,pos,coll,k);\n});\nvar malli$impl$regex$_STAR__parser_$__STAR_p__6 \x3d (function (driver,regs,coll_STAR_,pos,coll,k){\nmalli.impl.regex.park_transformer_BANG_(driver,_STAR_p_epsilon,regs,coll_STAR_,pos,coll,k);\n\nvar G__38005 \x3d driver;\nvar G__38006 \x3d regs;\nvar G__38007 \x3d pos;\nvar G__38008 \x3d coll;\nvar G__38009 \x3d (function (v,pos__$1,coll__$1){\nreturn malli.impl.regex.park_transformer_BANG_(driver,malli$impl$regex$_STAR__parser_$__STAR_p,regs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR_,v),pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38005,G__38006,G__38007,G__38008,G__38009) : p.call(null,G__38005,G__38006,G__38007,G__38008,G__38009));\n});\nmalli$impl$regex$_STAR__parser_$__STAR_p \x3d function(driver,regs,coll_STAR_,pos,coll,k){\nswitch(arguments.length){\ncase 5:\nreturn malli$impl$regex$_STAR__parser_$__STAR_p__5.call(this,driver,regs,coll_STAR_,pos,coll);\ncase 6:\nreturn malli$impl$regex$_STAR__parser_$__STAR_p__6.call(this,driver,regs,coll_STAR_,pos,coll,k);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nmalli$impl$regex$_STAR__parser_$__STAR_p.cljs$core$IFn$_invoke$arity$5 \x3d malli$impl$regex$_STAR__parser_$__STAR_p__5;\nmalli$impl$regex$_STAR__parser_$__STAR_p.cljs$core$IFn$_invoke$arity$6 \x3d malli$impl$regex$_STAR__parser_$__STAR_p__6;\nreturn malli$impl$regex$_STAR__parser_$__STAR_p;\n})()\n});\nmalli.impl.regex._STAR__unparser \x3d (function malli$impl$regex$_STAR__unparser(up){\nreturn (function (v){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,v__$1){\nvar result \x3d (up.cljs$core$IFn$_invoke$arity$1 ? up.cljs$core$IFn$_invoke$arity$1(v__$1) : up.call(null,v__$1));\nif(malli.impl.util._invalid_QMARK_(result)){\nreturn cljs.core.reduced(result);\n} else {\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(acc,result);\n}\n}),cljs.core.PersistentVector.EMPTY,v);\n});\n});\nmalli.impl.regex._STAR__transformer \x3d (function malli$impl$regex$_STAR__transformer(p){\nvar _STAR_p_epsilon \x3d malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$0();\nreturn (function malli$impl$regex$_STAR__transformer_$__STAR_p(driver,regs,coll_STAR_,pos,coll,k){\nmalli.impl.regex.park_transformer_BANG_(driver,_STAR_p_epsilon,regs,coll_STAR_,pos,coll,k);\n\nvar G__38024 \x3d driver;\nvar G__38025 \x3d regs;\nvar G__38026 \x3d coll_STAR_;\nvar G__38027 \x3d pos;\nvar G__38028 \x3d coll;\nvar G__38029 \x3d (function (coll_STAR___$1,pos__$1,coll__$1){\nreturn malli.impl.regex.park_transformer_BANG_(driver,malli$impl$regex$_STAR__transformer_$__STAR_p,regs,coll_STAR___$1,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$6 ? p.cljs$core$IFn$_invoke$arity$6(G__38024,G__38025,G__38026,G__38027,G__38028,G__38029) : p.call(null,G__38024,G__38025,G__38026,G__38027,G__38028,G__38029));\n});\n});\nmalli.impl.regex._PLUS__validator \x3d (function malli$impl$regex$_PLUS__validator(p){\nreturn malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex._STAR__validator(p)], 0));\n});\nmalli.impl.regex._PLUS__explainer \x3d (function malli$impl$regex$_PLUS__explainer(p){\nreturn malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex._STAR__explainer(p)], 0));\n});\nmalli.impl.regex._PLUS__parser \x3d (function malli$impl$regex$_PLUS__parser(p){\nreturn malli.impl.regex.fmap_parser((function (p__38055){\nvar vec__38056 \x3d p__38055;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38056,(0),null);\nvar vs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38056,(1),null);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [v], null),vs);\n}),malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex._STAR__parser(p)], 0)));\n});\nmalli.impl.regex._PLUS__unparser \x3d (function malli$impl$regex$_PLUS__unparser(up){\nvar up_STAR_ \x3d malli.impl.regex._STAR__unparser(up);\nreturn (function (x){\nif(((cljs.core.vector_QMARK_(x)) \x26\x26 (((1) \x3c\x3d cljs.core.count(x))))){\nreturn up_STAR_(x);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n});\nmalli.impl.regex._PLUS__transformer \x3d (function malli$impl$regex$_PLUS__transformer(p){\nreturn malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex._STAR__transformer(p)], 0));\n});\nmalli.impl.regex.repeat_validator \x3d (function malli$impl$regex$repeat_validator(min,max,p){\nvar rep_epsilon \x3d malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$0();\nvar compulsories \x3d (function malli$impl$regex$repeat_validator_$_compulsories(driver,regs,pos,coll,k){\nif((cljs.core.peek(regs) \x3c min)){\nvar G__38110 \x3d driver;\nvar G__38111 \x3d regs;\nvar G__38112 \x3d pos;\nvar G__38113 \x3d coll;\nvar G__38114 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.noncaching_park_validator_BANG_(driver,(function (driver__$1,stack,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_validator_$_compulsories(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(stack),(cljs.core.peek(stack) + (1))),pos__$2,coll__$2,k__$1);\n}),regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38110,G__38111,G__38112,G__38113,G__38114) : p.call(null,G__38110,G__38111,G__38112,G__38113,G__38114));\n} else {\nreturn optionals(driver,regs,pos,coll,k);\n}\n});\nvar optionals \x3d (function malli$impl$regex$repeat_validator_$_optionals(driver,regs,pos,coll,k){\nif((((cljs.core.peek(regs) \x3c max)) \x26\x26 ((((cljs.core.peek(regs) \x3c\x3d pos)) \x26\x26 (cljs.core.seq(coll)))))){\nmalli.impl.regex.park_validator_BANG_(driver,rep_epsilon,regs,pos,coll,k);\n\nvar G__38145 \x3d driver;\nvar G__38146 \x3d regs;\nvar G__38147 \x3d pos;\nvar G__38148 \x3d coll;\nvar G__38149 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.park_validator_BANG_(driver,(function (driver__$1,regs__$1,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_validator_$_optionals(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),pos__$2,coll__$2,k__$1);\n}),regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38145,G__38146,G__38147,G__38148,G__38149) : p.call(null,G__38145,G__38146,G__38147,G__38148,G__38149));\n} else {\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n}\n});\nreturn (function (driver,regs,pos,coll,k){\nreturn compulsories(driver,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(regs,(0)),pos,coll,k);\n});\n});\nmalli.impl.regex.repeat_explainer \x3d (function malli$impl$regex$repeat_explainer(min,max,p){\nvar rep_epsilon \x3d malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$0();\nvar compulsories \x3d (function malli$impl$regex$repeat_explainer_$_compulsories(driver,regs,pos,coll,k){\nif((cljs.core.peek(regs) \x3c min)){\nvar G__38237 \x3d driver;\nvar G__38238 \x3d regs;\nvar G__38239 \x3d pos;\nvar G__38240 \x3d coll;\nvar G__38241 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.noncaching_park_explainer_BANG_(driver,(function (driver__$1,regs__$1,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_explainer_$_compulsories(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),pos__$2,coll__$2,k__$1);\n}),regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38237,G__38238,G__38239,G__38240,G__38241) : p.call(null,G__38237,G__38238,G__38239,G__38240,G__38241));\n} else {\nreturn optionals(driver,regs,pos,coll,k);\n}\n});\nvar optionals \x3d (function malli$impl$regex$repeat_explainer_$_optionals(driver,regs,pos,coll,k){\nif((((cljs.core.peek(regs) \x3c max)) \x26\x26 ((((cljs.core.peek(regs) \x3c\x3d pos)) \x26\x26 (cljs.core.seq(coll)))))){\nmalli.impl.regex.park_explainer_BANG_(driver,rep_epsilon,regs,pos,coll,k);\n\nvar G__38263 \x3d driver;\nvar G__38264 \x3d regs;\nvar G__38265 \x3d pos;\nvar G__38266 \x3d coll;\nvar G__38267 \x3d (function (pos__$1,coll__$1){\nreturn malli.impl.regex.park_explainer_BANG_(driver,(function (driver__$1,regs__$1,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_explainer_$_optionals(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),pos__$2,coll__$2,k__$1);\n}),regs,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38263,G__38264,G__38265,G__38266,G__38267) : p.call(null,G__38263,G__38264,G__38265,G__38266,G__38267));\n} else {\nreturn (k.cljs$core$IFn$_invoke$arity$2 ? k.cljs$core$IFn$_invoke$arity$2(pos,coll) : k.call(null,pos,coll));\n}\n});\nreturn (function (driver,regs,pos,coll,k){\nreturn compulsories(driver,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(regs,(0)),pos,coll,k);\n});\n});\nmalli.impl.regex.repeat_parser \x3d (function malli$impl$regex$repeat_parser(min,max,p){\nvar rep_epsilon \x3d (function (_,___$1,coll_STAR_,pos,coll,k){\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n});\nvar compulsories \x3d (function malli$impl$regex$repeat_parser_$_compulsories(driver,regs,coll_STAR_,pos,coll,k){\nif((cljs.core.peek(regs) \x3c min)){\nvar G__38354 \x3d driver;\nvar G__38355 \x3d regs;\nvar G__38356 \x3d pos;\nvar G__38357 \x3d coll;\nvar G__38358 \x3d (function (v,pos__$1,coll__$1){\nreturn malli.impl.regex.noncaching_park_transformer_BANG_(driver,(function (driver__$1,regs__$1,coll_STAR___$1,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_parser_$_compulsories(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR___$1,v),pos__$2,coll__$2,k__$1);\n}),regs,coll_STAR_,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38354,G__38355,G__38356,G__38357,G__38358) : p.call(null,G__38354,G__38355,G__38356,G__38357,G__38358));\n} else {\nreturn optionals(driver,regs,coll_STAR_,pos,coll,k);\n}\n});\nvar optionals \x3d (function malli$impl$regex$repeat_parser_$_optionals(driver,regs,coll_STAR_,pos,coll,k){\nif((((cljs.core.peek(regs) \x3c max)) \x26\x26 ((((cljs.core.peek(regs) \x3c\x3d pos)) \x26\x26 (cljs.core.seq(coll)))))){\nmalli.impl.regex.park_transformer_BANG_(driver,rep_epsilon,regs,coll_STAR_,pos,coll,k);\n\nvar G__38376 \x3d driver;\nvar G__38377 \x3d regs;\nvar G__38378 \x3d pos;\nvar G__38379 \x3d coll;\nvar G__38380 \x3d (function (v,pos__$1,coll__$1){\nreturn malli.impl.regex.park_transformer_BANG_(driver,(function (driver__$1,regs__$1,coll_STAR___$1,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_parser_$_optionals(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll_STAR___$1,v),pos__$2,coll__$2,k__$1);\n}),regs,coll_STAR_,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$5 ? p.cljs$core$IFn$_invoke$arity$5(G__38376,G__38377,G__38378,G__38379,G__38380) : p.call(null,G__38376,G__38377,G__38378,G__38379,G__38380));\n} else {\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n}\n});\nreturn (function (driver,regs,pos,coll,k){\nreturn compulsories(driver,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(regs,(0)),cljs.core.PersistentVector.EMPTY,pos,coll,k);\n});\n});\nmalli.impl.regex.repeat_unparser \x3d (function malli$impl$regex$repeat_unparser(min,max,up){\nvar up_STAR_ \x3d malli.impl.regex._STAR__unparser(up);\nreturn (function (v){\nif(((cljs.core.vector_QMARK_(v)) \x26\x26 ((((min \x3c\x3d cljs.core.count(v))) \x26\x26 ((cljs.core.count(v) \x3c\x3d max)))))){\nreturn up_STAR_(v);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n});\nmalli.impl.regex.repeat_transformer \x3d (function malli$impl$regex$repeat_transformer(min,max,p){\nvar rep_epsilon \x3d malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$0();\nvar compulsories \x3d (function malli$impl$regex$repeat_transformer_$_compulsories(driver,regs,coll_STAR_,pos,coll,k){\nif((cljs.core.peek(regs) \x3c min)){\nvar G__38436 \x3d driver;\nvar G__38437 \x3d regs;\nvar G__38438 \x3d coll_STAR_;\nvar G__38439 \x3d pos;\nvar G__38440 \x3d coll;\nvar G__38441 \x3d (function (coll_STAR___$1,pos__$1,coll__$1){\nreturn malli.impl.regex.noncaching_park_transformer_BANG_(driver,(function (driver__$1,regs__$1,coll_STAR___$2,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_transformer_$_compulsories(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),coll_STAR___$2,pos__$2,coll__$2,k__$1);\n}),regs,coll_STAR___$1,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$6 ? p.cljs$core$IFn$_invoke$arity$6(G__38436,G__38437,G__38438,G__38439,G__38440,G__38441) : p.call(null,G__38436,G__38437,G__38438,G__38439,G__38440,G__38441));\n} else {\nreturn optionals(driver,regs,coll_STAR_,pos,coll,k);\n}\n});\nvar optionals \x3d (function malli$impl$regex$repeat_transformer_$_optionals(driver,regs,coll_STAR_,pos,coll,k){\nif((((cljs.core.peek(regs) \x3c max)) \x26\x26 ((((cljs.core.peek(regs) \x3c\x3d pos)) \x26\x26 (cljs.core.seq(coll)))))){\nmalli.impl.regex.park_transformer_BANG_(driver,rep_epsilon,regs,coll_STAR_,pos,coll,k);\n\nvar G__38463 \x3d driver;\nvar G__38464 \x3d regs;\nvar G__38465 \x3d coll_STAR_;\nvar G__38466 \x3d pos;\nvar G__38467 \x3d coll;\nvar G__38468 \x3d (function (coll_STAR___$1,pos__$1,coll__$1){\nreturn malli.impl.regex.park_transformer_BANG_(driver,(function (driver__$1,regs__$1,coll_STAR___$2,pos__$2,coll__$2,k__$1){\nreturn malli$impl$regex$repeat_transformer_$_optionals(driver__$1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.pop(regs__$1),(cljs.core.peek(regs__$1) + (1))),coll_STAR___$2,pos__$2,coll__$2,k__$1);\n}),regs,coll_STAR___$1,pos__$1,coll__$1,k);\n});\nreturn (p.cljs$core$IFn$_invoke$arity$6 ? p.cljs$core$IFn$_invoke$arity$6(G__38463,G__38464,G__38465,G__38466,G__38467,G__38468) : p.call(null,G__38463,G__38464,G__38465,G__38466,G__38467,G__38468));\n} else {\nreturn (k.cljs$core$IFn$_invoke$arity$3 ? k.cljs$core$IFn$_invoke$arity$3(coll_STAR_,pos,coll) : k.call(null,coll_STAR_,pos,coll));\n}\n});\nreturn (function (driver,regs,coll_STAR_,pos,coll,k){\nreturn compulsories(driver,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(regs,(0)),coll_STAR_,pos,coll,k);\n});\n});\nmalli.impl.regex.make_stack \x3d (function malli$impl$regex$make_stack(){\nreturn [];\n});\nmalli.impl.regex.empty_stack_QMARK_ \x3d (function malli$impl$regex$empty_stack_QMARK_(stack){\nreturn (stack.length \x3d\x3d\x3d (0));\n});\n\n/**\n * @interface\n */\nmalli.impl.regex.ICache \x3d function(){};\n\nvar malli$impl$regex$ICache$ensure_cached_BANG_$dyn_38873 \x3d (function (cache,f,pos,regs){\nvar x__5373__auto__ \x3d (((cache \x3d\x3d null))?null:cache);\nvar m__5374__auto__ \x3d (malli.impl.regex.ensure_cached_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(cache,f,pos,regs) : m__5374__auto__.call(null,cache,f,pos,regs));\n} else {\nvar m__5372__auto__ \x3d (malli.impl.regex.ensure_cached_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(cache,f,pos,regs) : m__5372__auto__.call(null,cache,f,pos,regs));\n} else {\nthrow cljs.core.missing_protocol(\x22ICache.ensure-cached!\x22,cache);\n}\n}\n});\nmalli.impl.regex.ensure_cached_BANG_ \x3d (function malli$impl$regex$ensure_cached_BANG_(cache,f,pos,regs){\nif((((!((cache \x3d\x3d null)))) \x26\x26 ((!((cache.malli$impl$regex$ICache$ensure_cached_BANG_$arity$4 \x3d\x3d null)))))){\nreturn cache.malli$impl$regex$ICache$ensure_cached_BANG_$arity$4(cache,f,pos,regs);\n} else {\nreturn malli$impl$regex$ICache$ensure_cached_BANG_$dyn_38873(cache,f,pos,regs);\n}\n});\n\n\n/**\n* @constructor\n*/\nmalli.impl.regex.CacheEntry \x3d (function (hash,f,pos,regs){\nthis.hash \x3d hash;\nthis.f \x3d f;\nthis.pos \x3d pos;\nthis.regs \x3d regs;\n});\n\n(malli.impl.regex.CacheEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22hash\x22,\x22hash\x22,1626749931,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22pos\x22,\x22pos\x22,775924307,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),new cljs.core.Symbol(null,\x22regs\x22,\x22regs\x22,-1837635361,null)], null);\n}));\n\n(malli.impl.regex.CacheEntry.cljs$lang$type \x3d true);\n\n(malli.impl.regex.CacheEntry.cljs$lang$ctorStr \x3d \x22malli.impl.regex/CacheEntry\x22);\n\n(malli.impl.regex.CacheEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.impl.regex/CacheEntry\x22);\n}));\n\n/**\n * Positional factory function for malli.impl.regex/CacheEntry.\n */\nmalli.impl.regex.__GT_CacheEntry \x3d (function malli$impl$regex$__GT_CacheEntry(hash,f,pos,regs){\nreturn (new malli.impl.regex.CacheEntry(hash,f,pos,regs));\n});\n\n\n/**\n* @constructor\n * @implements {malli.impl.regex.ICache}\n*/\nmalli.impl.regex.Cache \x3d (function (values,size){\nthis.values \x3d values;\nthis.size \x3d size;\n});\n(malli.impl.regex.Cache.prototype.malli$impl$regex$ICache$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.Cache.prototype.malli$impl$regex$ICache$ensure_cached_BANG_$arity$4 \x3d (function (_,f,pos,regs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(((self__.size + (1)) \x3e (self__.values.length \x3e\x3e (1)))){\nvar capacity_STAR__38879 \x3d (self__.values.length \x3c\x3c (1));\nvar values_STAR__38880 \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(capacity_STAR__38879);\nvar max_index_38881 \x3d (capacity_STAR__38879 - (1));\nvar len_38884 \x3d self__.values.length;\nvar i_38887 \x3d (0);\nwhile(true){\nif((i_38887 \x3c len_38884)){\nvar temp__5829__auto___38888 \x3d (self__.values[i_38887]);\nif((temp__5829__auto___38888 \x3d\x3d null)){\n} else {\nvar v_38889 \x3d temp__5829__auto___38888;\nvar i_STAR__38890 \x3d (v_38889.hash \x26 max_index_38881);\nvar collisions_38891 \x3d (0);\nwhile(true){\nif(cljs.core.truth_((values_STAR__38880[i_STAR__38890]))){\nvar collisions_38892__$1 \x3d (collisions_38891 + (1));\nvar G__38893 \x3d ((i_STAR__38890 + collisions_38892__$1) \x26 max_index_38881);\nvar G__38894 \x3d collisions_38892__$1;\ni_STAR__38890 \x3d G__38893;\ncollisions_38891 \x3d G__38894;\ncontinue;\n} else {\n(values_STAR__38880[i_STAR__38890] \x3d v_38889);\n}\nbreak;\n}\n}\n\nvar G__38895 \x3d (i_38887 + (1));\ni_38887 \x3d G__38895;\ncontinue;\n} else {\n}\nbreak;\n}\n\n(self__.values \x3d values_STAR__38880);\n} else {\n}\n\nvar capacity \x3d self__.values.length;\nvar max_index \x3d (capacity - (1));\nvar h \x3d cljs.core.hash_combine(cljs.core.hash_combine(cljs.core.hash(f),cljs.core.hash(pos)),cljs.core.hash(regs));\nvar i \x3d (h \x26 max_index);\nvar collisions \x3d (0);\nwhile(true){\nvar temp__5827__auto__ \x3d (self__.values[i]);\nif((temp__5827__auto__ \x3d\x3d null)){\n(self__.values[i] \x3d (new malli.impl.regex.CacheEntry(h,f,pos,regs)));\n\n(self__.size \x3d (self__.size + (1)));\n\nreturn false;\n} else {\nvar entry \x3d temp__5827__auto__;\nvar or__5025__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry.hash,h)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry.f,f)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry.pos,pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry.regs,regs)))))));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar collisions__$1 \x3d (collisions + (1));\nvar G__38901 \x3d ((i + collisions__$1) \x26 max_index);\nvar G__38902 \x3d collisions__$1;\ni \x3d G__38901;\ncollisions \x3d G__38902;\ncontinue;\n}\n}\nbreak;\n}\n}));\n\n(malli.impl.regex.Cache.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22values\x22,\x22values\x22,2013177083,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22size\x22,\x22size\x22,-1555742762,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(malli.impl.regex.Cache.cljs$lang$type \x3d true);\n\n(malli.impl.regex.Cache.cljs$lang$ctorStr \x3d \x22malli.impl.regex/Cache\x22);\n\n(malli.impl.regex.Cache.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.impl.regex/Cache\x22);\n}));\n\n/**\n * Positional factory function for malli.impl.regex/Cache.\n */\nmalli.impl.regex.__GT_Cache \x3d (function malli$impl$regex$__GT_Cache(values,size){\nreturn (new malli.impl.regex.Cache(values,size));\n});\n\nmalli.impl.regex.make_cache \x3d (function malli$impl$regex$make_cache(){\nreturn (new malli.impl.regex.Cache(cljs.core.object_array.cljs$core$IFn$_invoke$arity$1((2)),(0)));\n});\n\n/**\n* @constructor\n * @implements {malli.impl.regex.Driver}\n * @implements {malli.impl.regex.IValidationDriver}\n*/\nmalli.impl.regex.CheckDriver \x3d (function (success,stack,cache){\nthis.success \x3d success;\nthis.stack \x3d stack;\nthis.cache \x3d cache;\n});\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$Driver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$Driver$succeed_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.success \x3d cljs.core.boolean$(true));\n}));\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$Driver$succeeded_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.success;\n}));\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(malli.impl.regex.empty_stack_QMARK_(self__.stack)){\nreturn null;\n} else {\nreturn self__.stack.pop();\n}\n}));\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$IValidationDriver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nreturn self__.stack.push((function (){\nreturn (validator.cljs$core$IFn$_invoke$arity$5 ? validator.cljs$core$IFn$_invoke$arity$5(self__$1,regs,pos,coll,k) : validator.call(null,self__$1,regs,pos,coll,k));\n}));\n}));\n\n(malli.impl.regex.CheckDriver.prototype.malli$impl$regex$IValidationDriver$park_validator_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nif(cljs.core.truth_(malli.impl.regex.ensure_cached_BANG_(self__.cache,validator,pos,regs))){\nreturn null;\n} else {\nreturn self__$1.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6(null,validator,regs,pos,coll,k);\n}\n}));\n\n(malli.impl.regex.CheckDriver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22success\x22,\x22success\x22,-763789863,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22stack\x22,\x22stack\x22,847125597,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null)], null);\n}));\n\n(malli.impl.regex.CheckDriver.cljs$lang$type \x3d true);\n\n(malli.impl.regex.CheckDriver.cljs$lang$ctorStr \x3d \x22malli.impl.regex/CheckDriver\x22);\n\n(malli.impl.regex.CheckDriver.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.impl.regex/CheckDriver\x22);\n}));\n\n/**\n * Positional factory function for malli.impl.regex/CheckDriver.\n */\nmalli.impl.regex.__GT_CheckDriver \x3d (function malli$impl$regex$__GT_CheckDriver(success,stack,cache){\nreturn (new malli.impl.regex.CheckDriver(success,stack,cache));\n});\n\n\n/**\n* @constructor\n * @implements {malli.impl.regex.IParseDriver}\n * @implements {malli.impl.regex.Driver}\n * @implements {malli.impl.regex.IValidationDriver}\n*/\nmalli.impl.regex.ParseDriver \x3d (function (success,stack,cache,result){\nthis.success \x3d success;\nthis.stack \x3d stack;\nthis.cache \x3d cache;\nthis.result \x3d result;\n});\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$Driver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$Driver$succeed_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.success \x3d cljs.core.boolean$(true));\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$Driver$succeeded_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.success;\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(malli.impl.regex.empty_stack_QMARK_(self__.stack)){\nreturn null;\n} else {\nreturn self__.stack.pop();\n}\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IValidationDriver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nreturn self__.stack.push((function (){\nreturn (validator.cljs$core$IFn$_invoke$arity$5 ? validator.cljs$core$IFn$_invoke$arity$5(self__$1,regs,pos,coll,k) : validator.call(null,self__$1,regs,pos,coll,k));\n}));\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IValidationDriver$park_validator_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nif(cljs.core.truth_(malli.impl.regex.ensure_cached_BANG_(self__.cache,validator,pos,regs))){\nreturn null;\n} else {\nreturn self__$1.malli$impl$regex$IValidationDriver$noncaching_park_validator_BANG_$arity$6(null,validator,regs,pos,coll,k);\n}\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IParseDriver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$arity$7 \x3d (function (driver,transformer,regs,coll_STAR_,pos,coll,k){\nvar self__ \x3d this;\nvar driver__$1 \x3d this;\nreturn self__.stack.push((function (){\nreturn (transformer.cljs$core$IFn$_invoke$arity$6 ? transformer.cljs$core$IFn$_invoke$arity$6(driver__$1,regs,coll_STAR_,pos,coll,k) : transformer.call(null,driver__$1,regs,coll_STAR_,pos,coll,k));\n}));\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IParseDriver$park_transformer_BANG_$arity$7 \x3d (function (driver,transformer,regs,coll_STAR_,pos,coll,k){\nvar self__ \x3d this;\nvar driver__$1 \x3d this;\nif(cljs.core.truth_(malli.impl.regex.ensure_cached_BANG_(self__.cache,transformer,pos,regs))){\nreturn null;\n} else {\nreturn driver__$1.malli$impl$regex$IParseDriver$noncaching_park_transformer_BANG_$arity$7(null,transformer,regs,coll_STAR_,pos,coll,k);\n}\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IParseDriver$succeed_with_BANG_$arity$2 \x3d (function (self,v){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nself__$1.malli$impl$regex$Driver$succeed_BANG_$arity$1(null);\n\nreturn (self__.result \x3d v);\n}));\n\n(malli.impl.regex.ParseDriver.prototype.malli$impl$regex$IParseDriver$success_result$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.result;\n}));\n\n(malli.impl.regex.ParseDriver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22success\x22,\x22success\x22,-763789863,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22stack\x22,\x22stack\x22,847125597,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22result\x22,\x22result\x22,-1239343558,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(malli.impl.regex.ParseDriver.cljs$lang$type \x3d true);\n\n(malli.impl.regex.ParseDriver.cljs$lang$ctorStr \x3d \x22malli.impl.regex/ParseDriver\x22);\n\n(malli.impl.regex.ParseDriver.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.impl.regex/ParseDriver\x22);\n}));\n\n/**\n * Positional factory function for malli.impl.regex/ParseDriver.\n */\nmalli.impl.regex.__GT_ParseDriver \x3d (function malli$impl$regex$__GT_ParseDriver(success,stack,cache,result){\nreturn (new malli.impl.regex.ParseDriver(success,stack,cache,result));\n});\n\nmalli.impl.regex.validator \x3d (function malli$impl$regex$validator(p){\nvar p__$1 \x3d malli.impl.regex.cat_validator.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.end_validator()], 0));\nreturn (function (coll){\nvar and__5023__auto__ \x3d cljs.core.sequential_QMARK_(coll);\nif(and__5023__auto__){\nvar driver \x3d (new malli.impl.regex.CheckDriver(false,malli.impl.regex.make_stack(),malli.impl.regex.make_cache()));\nvar G__38583_38985 \x3d driver;\nvar G__38584_38986 \x3d cljs.core.List.EMPTY;\nvar G__38585_38987 \x3d (0);\nvar G__38586_38988 \x3d coll;\nvar G__38587_38989 \x3d (function (_,___$1){\nreturn driver.malli$impl$regex$Driver$succeed_BANG_$arity$1(null);\n});\n(p__$1.cljs$core$IFn$_invoke$arity$5 ? p__$1.cljs$core$IFn$_invoke$arity$5(G__38583_38985,G__38584_38986,G__38585_38987,G__38586_38988,G__38587_38989) : p__$1.call(null,G__38583_38985,G__38584_38986,G__38585_38987,G__38586_38988,G__38587_38989));\n\nvar or__5025__auto__ \x3d driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nwhile(true){\nvar temp__5827__auto__ \x3d driver.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1(null);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar thunk \x3d temp__5827__auto__;\n(thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\n\nvar or__5025__auto____$1 \x3d driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n});\n\n/**\n* @constructor\n * @implements {malli.impl.regex.IExplanationDriver}\n * @implements {malli.impl.regex.Driver}\n*/\nmalli.impl.regex.ExplanationDriver \x3d (function (success,stack,cache,in$,errors_max_pos,errors){\nthis.success \x3d success;\nthis.stack \x3d stack;\nthis.cache \x3d cache;\nthis.in$ \x3d in$;\nthis.errors_max_pos \x3d errors_max_pos;\nthis.errors \x3d errors;\n});\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$Driver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$Driver$succeed_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.success \x3d cljs.core.boolean$(true));\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$Driver$succeeded_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.success;\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(malli.impl.regex.empty_stack_QMARK_(self__.stack)){\nreturn null;\n} else {\nreturn self__.stack.pop();\n}\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nreturn self__.stack.push((function (){\nreturn (validator.cljs$core$IFn$_invoke$arity$5 ? validator.cljs$core$IFn$_invoke$arity$5(self__$1,regs,pos,coll,k) : validator.call(null,self__$1,regs,pos,coll,k));\n}));\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$park_explainer_BANG_$arity$6 \x3d (function (self,validator,regs,pos,coll,k){\nvar self__ \x3d this;\nvar self__$1 \x3d this;\nif(cljs.core.truth_(malli.impl.regex.ensure_cached_BANG_(self__.cache,validator,pos,regs))){\nreturn null;\n} else {\nreturn self__$1.malli$impl$regex$IExplanationDriver$noncaching_park_explainer_BANG_$arity$6(null,validator,regs,pos,coll,k);\n}\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$value_path$arity$2 \x3d (function (_,pos){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(self__.in$,pos);\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$fail_BANG_$arity$3 \x3d (function (_,pos,errors_STAR_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((pos \x3e self__.errors_max_pos)){\n(self__.errors_max_pos \x3d pos);\n\nreturn (self__.errors \x3d errors_STAR_);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(pos,self__.errors_max_pos)){\nreturn (self__.errors \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(self__.errors,errors_STAR_));\n} else {\nreturn null;\n}\n}\n}));\n\n(malli.impl.regex.ExplanationDriver.prototype.malli$impl$regex$IExplanationDriver$latest_errors$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.errors;\n}));\n\n(malli.impl.regex.ExplanationDriver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22success\x22,\x22success\x22,-763789863,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22stack\x22,\x22stack\x22,847125597,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22errors-max-pos\x22,\x22errors-max-pos\x22,798451976,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22errors\x22,\x22errors\x22,731740809,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(malli.impl.regex.ExplanationDriver.cljs$lang$type \x3d true);\n\n(malli.impl.regex.ExplanationDriver.cljs$lang$ctorStr \x3d \x22malli.impl.regex/ExplanationDriver\x22);\n\n(malli.impl.regex.ExplanationDriver.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.impl.regex/ExplanationDriver\x22);\n}));\n\n/**\n * Positional factory function for malli.impl.regex/ExplanationDriver.\n */\nmalli.impl.regex.__GT_ExplanationDriver \x3d (function malli$impl$regex$__GT_ExplanationDriver(success,stack,cache,in$,errors_max_pos,errors){\nreturn (new malli.impl.regex.ExplanationDriver(success,stack,cache,in$,errors_max_pos,errors));\n});\n\nmalli.impl.regex.explainer \x3d (function malli$impl$regex$explainer(schema,path,p){\nvar p__$1 \x3d malli.impl.regex.cat_explainer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.end_explainer(schema,path)], 0));\nreturn (function (coll,in$,errors){\nif(cljs.core.sequential_QMARK_(coll)){\nvar pos \x3d (0);\nvar driver \x3d (new malli.impl.regex.ExplanationDriver(false,malli.impl.regex.make_stack(),malli.impl.regex.make_cache(),in$,pos,cljs.core.PersistentVector.EMPTY));\nvar G__38626_39057 \x3d driver;\nvar G__38627_39058 \x3d cljs.core.List.EMPTY;\nvar G__38628_39059 \x3d pos;\nvar G__38629_39060 \x3d coll;\nvar G__38630_39061 \x3d (function (_,___$1){\nreturn driver.malli$impl$regex$Driver$succeed_BANG_$arity$1(null);\n});\n(p__$1.cljs$core$IFn$_invoke$arity$5 ? p__$1.cljs$core$IFn$_invoke$arity$5(G__38626_39057,G__38627_39058,G__38628_39059,G__38629_39060,G__38630_39061) : p__$1.call(null,G__38626_39057,G__38627_39058,G__38628_39059,G__38629_39060,G__38630_39061));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn errors;\n} else {\nwhile(true){\nvar temp__5827__auto__ \x3d driver.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1(null);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(errors,driver.malli$impl$regex$IExplanationDriver$latest_errors$arity$1(null));\n} else {\nvar thunk \x3d temp__5827__auto__;\n(thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn errors;\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,schema,coll,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-type\x22,\x22malli.core/invalid-type\x22,-1367388450)));\n}\n});\n});\nmalli.impl.regex.parser \x3d (function malli$impl$regex$parser(p){\nvar p__$1 \x3d malli.impl.regex.cat_parser.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.end_parser()], 0));\nreturn (function (coll){\nif(cljs.core.sequential_QMARK_(coll)){\nvar driver \x3d (new malli.impl.regex.ParseDriver(false,malli.impl.regex.make_stack(),malli.impl.regex.make_cache(),null));\np__$1(driver,cljs.core.List.EMPTY,(0),coll,(function (v,_,___$1){\nreturn driver.malli$impl$regex$IParseDriver$succeed_with_BANG_$arity$2(null,v);\n}));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn cljs.core.first(driver.malli$impl$regex$IParseDriver$success_result$arity$1(null));\n} else {\nwhile(true){\nvar temp__5827__auto__ \x3d driver.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1(null);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar thunk \x3d temp__5827__auto__;\n(thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn cljs.core.first(driver.malli$impl$regex$IParseDriver$success_result$arity$1(null));\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n});\nmalli.impl.regex.transformer \x3d (function malli$impl$regex$transformer(p){\nvar p__$1 \x3d malli.impl.regex.cat_transformer.cljs$core$IFn$_invoke$arity$variadic(p,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.impl.regex.end_transformer()], 0));\nreturn (function (coll){\nif(cljs.core.sequential_QMARK_(coll)){\nvar driver \x3d (new malli.impl.regex.ParseDriver(false,malli.impl.regex.make_stack(),malli.impl.regex.make_cache(),null));\nvar G__38645_39088 \x3d driver;\nvar G__38646_39089 \x3d cljs.core.List.EMPTY;\nvar G__38647_39090 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38648_39091 \x3d (0);\nvar G__38649_39092 \x3d coll;\nvar G__38650_39093 \x3d (function (coll_STAR_,_,___$1){\nreturn driver.malli$impl$regex$IParseDriver$succeed_with_BANG_$arity$2(null,coll_STAR_);\n});\n(p__$1.cljs$core$IFn$_invoke$arity$6 ? p__$1.cljs$core$IFn$_invoke$arity$6(G__38645_39088,G__38646_39089,G__38647_39090,G__38648_39091,G__38649_39092,G__38650_39093) : p__$1.call(null,G__38645_39088,G__38646_39089,G__38647_39090,G__38648_39091,G__38649_39092,G__38650_39093));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn driver.malli$impl$regex$IParseDriver$success_result$arity$1(null);\n} else {\nwhile(true){\nvar temp__5827__auto__ \x3d driver.malli$impl$regex$Driver$pop_thunk_BANG_$arity$1(null);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn coll;\n} else {\nvar thunk \x3d temp__5827__auto__;\n(thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\n\nif(cljs.core.truth_(driver.malli$impl$regex$Driver$succeeded_QMARK_$arity$1(null))){\nreturn driver.malli$impl$regex$IParseDriver$success_result$arity$1(null);\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn coll;\n}\n});\n});\n"); -SHADOW_ENV.evalLoad("malli.registry.js", true, "goog.provide(\x27malli.registry\x27);\n/**\n * @define {string}\n */\nmalli.registry.mode \x3d goog.define(\x22malli.registry.mode\x22,\x22default\x22);\n/**\n * @define {string}\n */\nmalli.registry.type \x3d goog.define(\x22malli.registry.type\x22,\x22default\x22);\n\n/**\n * @interface\n */\nmalli.registry.Registry \x3d function(){};\n\nvar malli$registry$Registry$_schema$dyn_37580 \x3d (function (this$,type){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.registry._schema[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,type) : m__5374__auto__.call(null,this$,type));\n} else {\nvar m__5372__auto__ \x3d (malli.registry._schema[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,type) : m__5372__auto__.call(null,this$,type));\n} else {\nthrow cljs.core.missing_protocol(\x22Registry.-schema\x22,this$);\n}\n}\n});\n/**\n * returns the schema from a registry\n */\nmalli.registry._schema \x3d (function malli$registry$_schema(this$,type){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$registry$Registry$_schema$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$registry$Registry$_schema$arity$2(this$,type);\n} else {\nreturn malli$registry$Registry$_schema$dyn_37580(this$,type);\n}\n});\n\nvar malli$registry$Registry$_schemas$dyn_37583 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.registry._schemas[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.registry._schemas[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Registry.-schemas\x22,this$);\n}\n}\n});\n/**\n * returns all schemas from a registry\n */\nmalli.registry._schemas \x3d (function malli$registry$_schemas(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$registry$Registry$_schemas$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$registry$Registry$_schemas$arity$1(this$);\n} else {\nreturn malli$registry$Registry$_schemas$dyn_37583(this$);\n}\n});\n\nmalli.registry.registry_QMARK_ \x3d (function malli$registry$registry_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$registry$Registry$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37288 \x3d (function (m,fm,meta37289){\nthis.m \x3d m;\nthis.fm \x3d fm;\nthis.meta37289 \x3d meta37289;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37288.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37290,meta37289__$1){\nvar self__ \x3d this;\nvar _37290__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37288(self__.m,self__.fm,meta37289__$1));\n}));\n\n(malli.registry.t_malli$registry37288.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37290){\nvar self__ \x3d this;\nvar _37290__$1 \x3d this;\nreturn self__.meta37289;\n}));\n\n(malli.registry.t_malli$registry37288.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37288.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.fm.get(type);\n}));\n\n(malli.registry.t_malli$registry37288.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.m;\n}));\n\n(malli.registry.t_malli$registry37288.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22fm\x22,\x22fm\x22,-1190690268,null),new cljs.core.Symbol(null,\x22meta37289\x22,\x22meta37289\x22,-560645192,null)], null);\n}));\n\n(malli.registry.t_malli$registry37288.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37288.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37288\x22);\n\n(malli.registry.t_malli$registry37288.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37288\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37288.\n */\nmalli.registry.__GT_t_malli$registry37288 \x3d (function malli$registry$__GT_t_malli$registry37288(m,fm,meta37289){\nreturn (new malli.registry.t_malli$registry37288(m,fm,meta37289));\n});\n\n\nmalli.registry.fast_registry \x3d (function malli$registry$fast_registry(m){\nvar fm \x3d m;\nreturn (new malli.registry.t_malli$registry37288(m,fm,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37348 \x3d (function (m,meta37349){\nthis.m \x3d m;\nthis.meta37349 \x3d meta37349;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37348.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37350,meta37349__$1){\nvar self__ \x3d this;\nvar _37350__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37348(self__.m,meta37349__$1));\n}));\n\n(malli.registry.t_malli$registry37348.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37350){\nvar self__ \x3d this;\nvar _37350__$1 \x3d this;\nreturn self__.meta37349;\n}));\n\n(malli.registry.t_malli$registry37348.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37348.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.m.cljs$core$IFn$_invoke$arity$1 ? self__.m.cljs$core$IFn$_invoke$arity$1(type) : self__.m.call(null,type));\n}));\n\n(malli.registry.t_malli$registry37348.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.m;\n}));\n\n(malli.registry.t_malli$registry37348.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22meta37349\x22,\x22meta37349\x22,77334640,null)], null);\n}));\n\n(malli.registry.t_malli$registry37348.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37348.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37348\x22);\n\n(malli.registry.t_malli$registry37348.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37348\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37348.\n */\nmalli.registry.__GT_t_malli$registry37348 \x3d (function malli$registry$__GT_t_malli$registry37348(m,meta37349){\nreturn (new malli.registry.t_malli$registry37348(m,meta37349));\n});\n\n\nmalli.registry.simple_registry \x3d (function malli$registry$simple_registry(m){\nreturn (new malli.registry.t_malli$registry37348(m,cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.registry.registry \x3d (function malli$registry$registry(_QMARK_registry){\nif((_QMARK_registry \x3d\x3d null)){\nreturn null;\n} else {\nif(malli.registry.registry_QMARK_(_QMARK_registry)){\nreturn _QMARK_registry;\n} else {\nif(cljs.core.map_QMARK_(_QMARK_registry)){\nreturn malli.registry.simple_registry(_QMARK_registry);\n} else {\nif((((!((_QMARK_registry \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d _QMARK_registry.malli$registry$Registry$))))?true:(((!_QMARK_registry.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(malli.registry.Registry,_QMARK_registry):false)):cljs.core.native_satisfies_QMARK_(malli.registry.Registry,_QMARK_registry))){\nreturn _QMARK_registry;\n} else {\nreturn null;\n}\n}\n}\n}\n});\nmalli.registry.registry_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(malli.registry.simple_registry(cljs.core.PersistentArrayMap.EMPTY));\nmalli.registry.set_default_registry_BANG_ \x3d (function malli$registry$set_default_registry_BANG_(_QMARK_registry){\nif((!((malli.registry.mode \x3d\x3d\x3d \x22strict\x22)))){\nreturn cljs.core.reset_BANG_(malli.registry.registry_STAR_,malli.registry.registry(_QMARK_registry));\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22can\x27t set default registry, invalid mode\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691),malli.registry.mode,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),malli.registry.type], null));\n}\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37408 \x3d (function (meta37409){\nthis.meta37409 \x3d meta37409;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37408.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37410,meta37409__$1){\nvar self__ \x3d this;\nvar _37410__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37408(meta37409__$1));\n}));\n\n(malli.registry.t_malli$registry37408.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37410){\nvar self__ \x3d this;\nvar _37410__$1 \x3d this;\nreturn self__.meta37409;\n}));\n\n(malli.registry.t_malli$registry37408.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37408.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schema(cljs.core.deref(malli.registry.registry_STAR_),type);\n}));\n\n(malli.registry.t_malli$registry37408.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schemas(cljs.core.deref(malli.registry.registry_STAR_));\n}));\n\n(malli.registry.t_malli$registry37408.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta37409\x22,\x22meta37409\x22,1760591992,null)], null);\n}));\n\n(malli.registry.t_malli$registry37408.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37408.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37408\x22);\n\n(malli.registry.t_malli$registry37408.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37408\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37408.\n */\nmalli.registry.__GT_t_malli$registry37408 \x3d (function malli$registry$__GT_t_malli$registry37408(meta37409){\nreturn (new malli.registry.t_malli$registry37408(meta37409));\n});\n\n\nmalli.registry.custom_default_registry \x3d (function malli$registry$custom_default_registry(){\nreturn (new malli.registry.t_malli$registry37408(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37428 \x3d (function (_QMARK_registries,registries,meta37429){\nthis._QMARK_registries \x3d _QMARK_registries;\nthis.registries \x3d registries;\nthis.meta37429 \x3d meta37429;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37428.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37430,meta37429__$1){\nvar self__ \x3d this;\nvar _37430__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37428(self__._QMARK_registries,self__.registries,meta37429__$1));\n}));\n\n(malli.registry.t_malli$registry37428.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37430){\nvar self__ \x3d this;\nvar _37430__$1 \x3d this;\nreturn self__.meta37429;\n}));\n\n(malli.registry.t_malli$registry37428.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37428.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.some((function (p1__37420_SHARP_){\nreturn malli.registry._schema(p1__37420_SHARP_,type);\n}),self__.registries);\n}));\n\n(malli.registry.t_malli$registry37428.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.map.cljs$core$IFn$_invoke$arity$2(malli.registry._schemas,cljs.core.reverse(self__.registries)));\n}));\n\n(malli.registry.t_malli$registry37428.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22?registries\x22,\x22?registries\x22,2135368100,null),new cljs.core.Symbol(null,\x22registries\x22,\x22registries\x22,-1366064418,null),new cljs.core.Symbol(null,\x22meta37429\x22,\x22meta37429\x22,-842361958,null)], null);\n}));\n\n(malli.registry.t_malli$registry37428.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37428.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37428\x22);\n\n(malli.registry.t_malli$registry37428.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37428\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37428.\n */\nmalli.registry.__GT_t_malli$registry37428 \x3d (function malli$registry$__GT_t_malli$registry37428(_QMARK_registries,registries,meta37429){\nreturn (new malli.registry.t_malli$registry37428(_QMARK_registries,registries,meta37429));\n});\n\n\nmalli.registry.composite_registry \x3d (function malli$registry$composite_registry(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37628 \x3d arguments.length;\nvar i__5750__auto___37629 \x3d (0);\nwhile(true){\nif((i__5750__auto___37629 \x3c len__5749__auto___37628)){\nargs__5755__auto__.push((arguments[i__5750__auto___37629]));\n\nvar G__37632 \x3d (i__5750__auto___37629 + (1));\ni__5750__auto___37629 \x3d G__37632;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_QMARK_registries){\nvar registries \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(malli.registry.registry,_QMARK_registries);\nreturn (new malli.registry.t_malli$registry37428(_QMARK_registries,registries,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(malli.registry.composite_registry.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(malli.registry.composite_registry.cljs$lang$applyTo \x3d (function (seq37421){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37421));\n}));\n\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37446 \x3d (function (db,meta37447){\nthis.db \x3d db;\nthis.meta37447 \x3d meta37447;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37446.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37448,meta37447__$1){\nvar self__ \x3d this;\nvar _37448__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37446(self__.db,meta37447__$1));\n}));\n\n(malli.registry.t_malli$registry37446.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37448){\nvar self__ \x3d this;\nvar _37448__$1 \x3d this;\nreturn self__.meta37447;\n}));\n\n(malli.registry.t_malli$registry37446.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37446.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schema(malli.registry.registry(cljs.core.deref(self__.db)),type);\n}));\n\n(malli.registry.t_malli$registry37446.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schemas(malli.registry.registry(cljs.core.deref(self__.db)));\n}));\n\n(malli.registry.t_malli$registry37446.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22db\x22,\x22db\x22,-1661185010,null),new cljs.core.Symbol(null,\x22meta37447\x22,\x22meta37447\x22,-54061404,null)], null);\n}));\n\n(malli.registry.t_malli$registry37446.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37446.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37446\x22);\n\n(malli.registry.t_malli$registry37446.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37446\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37446.\n */\nmalli.registry.__GT_t_malli$registry37446 \x3d (function malli$registry$__GT_t_malli$registry37446(db,meta37447){\nreturn (new malli.registry.t_malli$registry37446(db,meta37447));\n});\n\n\nmalli.registry.mutable_registry \x3d (function malli$registry$mutable_registry(db){\nreturn (new malli.registry.t_malli$registry37446(db,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37488 \x3d (function (meta37489){\nthis.meta37489 \x3d meta37489;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37488.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37490,meta37489__$1){\nvar self__ \x3d this;\nvar _37490__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37488(meta37489__$1));\n}));\n\n(malli.registry.t_malli$registry37488.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37490){\nvar self__ \x3d this;\nvar _37490__$1 \x3d this;\nreturn self__.meta37489;\n}));\n\n(malli.registry.t_malli$registry37488.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37488.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.var_QMARK_(type)){\nreturn cljs.core.deref(type);\n} else {\nreturn null;\n}\n}));\n\n(malli.registry.t_malli$registry37488.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.registry.t_malli$registry37488.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta37489\x22,\x22meta37489\x22,187020231,null)], null);\n}));\n\n(malli.registry.t_malli$registry37488.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37488.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37488\x22);\n\n(malli.registry.t_malli$registry37488.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37488\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37488.\n */\nmalli.registry.__GT_t_malli$registry37488 \x3d (function malli$registry$__GT_t_malli$registry37488(meta37489){\nreturn (new malli.registry.t_malli$registry37488(meta37489));\n});\n\n\nmalli.registry.var_registry \x3d (function malli$registry$var_registry(){\nreturn (new malli.registry.t_malli$registry37488(cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.registry._STAR_registry_STAR_ \x3d cljs.core.PersistentArrayMap.EMPTY;\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37519 \x3d (function (meta37520){\nthis.meta37520 \x3d meta37520;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37519.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37521,meta37520__$1){\nvar self__ \x3d this;\nvar _37521__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37519(meta37520__$1));\n}));\n\n(malli.registry.t_malli$registry37519.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37521){\nvar self__ \x3d this;\nvar _37521__$1 \x3d this;\nreturn self__.meta37520;\n}));\n\n(malli.registry.t_malli$registry37519.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37519.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schema(malli.registry.registry(malli.registry._STAR_registry_STAR_),type);\n}));\n\n(malli.registry.t_malli$registry37519.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.registry._schemas(malli.registry.registry(malli.registry._STAR_registry_STAR_));\n}));\n\n(malli.registry.t_malli$registry37519.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta37520\x22,\x22meta37520\x22,-1340503353,null)], null);\n}));\n\n(malli.registry.t_malli$registry37519.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37519.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37519\x22);\n\n(malli.registry.t_malli$registry37519.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37519\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37519.\n */\nmalli.registry.__GT_t_malli$registry37519 \x3d (function malli$registry$__GT_t_malli$registry37519(meta37520){\nreturn (new malli.registry.t_malli$registry37519(meta37520));\n});\n\n\nmalli.registry.dynamic_registry \x3d (function malli$registry$dynamic_registry(){\nreturn (new malli.registry.t_malli$registry37519(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {malli.registry.Registry}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.registry.t_malli$registry37537 \x3d (function (default_registry,provider,cache_STAR_,registry_STAR_,meta37538){\nthis.default_registry \x3d default_registry;\nthis.provider \x3d provider;\nthis.cache_STAR_ \x3d cache_STAR_;\nthis.registry_STAR_ \x3d registry_STAR_;\nthis.meta37538 \x3d meta37538;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.registry.t_malli$registry37537.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_37539,meta37538__$1){\nvar self__ \x3d this;\nvar _37539__$1 \x3d this;\nreturn (new malli.registry.t_malli$registry37537(self__.default_registry,self__.provider,self__.cache_STAR_,self__.registry_STAR_,meta37538__$1));\n}));\n\n(malli.registry.t_malli$registry37537.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_37539){\nvar self__ \x3d this;\nvar _37539__$1 \x3d this;\nreturn self__.meta37538;\n}));\n\n(malli.registry.t_malli$registry37537.prototype.malli$registry$Registry$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.registry.t_malli$registry37537.prototype.malli$registry$Registry$_schema$arity$2 \x3d (function (_,name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar or__5025__auto__ \x3d (function (){var fexpr__37551 \x3d cljs.core.deref(self__.cache_STAR_);\nreturn (fexpr__37551.cljs$core$IFn$_invoke$arity$1 ? fexpr__37551.cljs$core$IFn$_invoke$arity$1(name) : fexpr__37551.call(null,name));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d (function (){var G__37553 \x3d name;\nvar G__37554 \x3d cljs.core.deref(self__.registry_STAR_);\nreturn (self__.provider.cljs$core$IFn$_invoke$arity$2 ? self__.provider.cljs$core$IFn$_invoke$arity$2(G__37553,G__37554) : self__.provider.call(null,G__37553,G__37554));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar schema \x3d temp__5825__auto__;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.cache_STAR_,cljs.core.assoc,name,schema);\n\nreturn schema;\n} else {\nreturn null;\n}\n}\n}));\n\n(malli.registry.t_malli$registry37537.prototype.malli$registry$Registry$_schemas$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.cache_STAR_);\n}));\n\n(malli.registry.t_malli$registry37537.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22default-registry\x22,\x22default-registry\x22,732204441,null),new cljs.core.Symbol(null,\x22provider\x22,\x22provider\x22,1338474627,null),new cljs.core.Symbol(null,\x22cache*\x22,\x22cache*\x22,-548597526,null),new cljs.core.Symbol(null,\x22registry*\x22,\x22registry*\x22,-268031273,null),new cljs.core.Symbol(null,\x22meta37538\x22,\x22meta37538\x22,1755232938,null)], null);\n}));\n\n(malli.registry.t_malli$registry37537.cljs$lang$type \x3d true);\n\n(malli.registry.t_malli$registry37537.cljs$lang$ctorStr \x3d \x22malli.registry/t_malli$registry37537\x22);\n\n(malli.registry.t_malli$registry37537.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.registry/t_malli$registry37537\x22);\n}));\n\n/**\n * Positional factory function for malli.registry/t_malli$registry37537.\n */\nmalli.registry.__GT_t_malli$registry37537 \x3d (function malli$registry$__GT_t_malli$registry37537(default_registry,provider,cache_STAR_,registry_STAR_,meta37538){\nreturn (new malli.registry.t_malli$registry37537(default_registry,provider,cache_STAR_,registry_STAR_,meta37538));\n});\n\n\nmalli.registry.lazy_registry \x3d (function malli$registry$lazy_registry(default_registry,provider){\nvar cache_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar registry_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(default_registry);\nreturn cljs.core.reset_BANG_(registry_STAR_,malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([default_registry,(new malli.registry.t_malli$registry37537(default_registry,provider,cache_STAR_,registry_STAR_,cljs.core.PersistentArrayMap.EMPTY))], 0)));\n});\n/**\n * finds a schema from a registry\n */\nmalli.registry.schema \x3d (function malli$registry$schema(registry,type){\nreturn malli.registry._schema(registry,type);\n});\n/**\n * finds all schemas from a registry\n */\nmalli.registry.schemas \x3d (function malli$registry$schemas(registry){\nreturn malli.registry._schemas(registry);\n});\n"); -SHADOW_ENV.evalLoad("borkdude.dynaload.js", true, "goog.provide(\x27borkdude.dynaload\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\nborkdude.dynaload.LazyVar \x3d (function (f,cached){\nthis.f \x3d f;\nthis.cached \x3d cached;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_this){\nvar self__ \x3d this;\nvar _this__$1 \x3d this;\nif((!((self__.cached \x3d\x3d null)))){\nreturn self__.cached;\n} else {\nvar x \x3d (self__.f.cljs$core$IFn$_invoke$arity$0 ? self__.f.cljs$core$IFn$_invoke$arity$0() : self__.f.call(null));\nif((x \x3d\x3d null)){\n} else {\n(self__.cached \x3d x);\n}\n\nreturn x;\n}\n}));\n\n(borkdude.dynaload.LazyVar.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__37548 \x3d (arguments.length - (1));\nswitch (G__37548) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (5):\nreturn self__.cljs$core$IFn$_invoke$arity$5((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase (6):\nreturn self__.cljs$core$IFn$_invoke$arity$6((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase (7):\nreturn self__.cljs$core$IFn$_invoke$arity$7((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase (8):\nreturn self__.cljs$core$IFn$_invoke$arity$8((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase (9):\nreturn self__.cljs$core$IFn$_invoke$arity$9((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase (10):\nreturn self__.cljs$core$IFn$_invoke$arity$10((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase (11):\nreturn self__.cljs$core$IFn$_invoke$arity$11((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase (12):\nreturn self__.cljs$core$IFn$_invoke$arity$12((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase (13):\nreturn self__.cljs$core$IFn$_invoke$arity$13((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase (14):\nreturn self__.cljs$core$IFn$_invoke$arity$14((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase (15):\nreturn self__.cljs$core$IFn$_invoke$arity$15((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase (16):\nreturn self__.cljs$core$IFn$_invoke$arity$16((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase (17):\nreturn self__.cljs$core$IFn$_invoke$arity$17((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase (18):\nreturn self__.cljs$core$IFn$_invoke$arity$18((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase (19):\nreturn self__.cljs$core$IFn$_invoke$arity$19((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase (20):\nreturn self__.cljs$core$IFn$_invoke$arity$20((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase (21):\nreturn self__.cljs$core$IFn$_invoke$arity$21((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(borkdude.dynaload.LazyVar.prototype.apply \x3d (function (self__,args37533){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args37533)));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37643 \x3d cljs.core.deref(this$);\nreturn (fexpr__37643.cljs$core$IFn$_invoke$arity$0 ? fexpr__37643.cljs$core$IFn$_invoke$arity$0() : fexpr__37643.call(null));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (a){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37648 \x3d cljs.core.deref(this$);\nreturn (fexpr__37648.cljs$core$IFn$_invoke$arity$1 ? fexpr__37648.cljs$core$IFn$_invoke$arity$1(a) : fexpr__37648.call(null,a));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,b){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37649 \x3d cljs.core.deref(this$);\nreturn (fexpr__37649.cljs$core$IFn$_invoke$arity$2 ? fexpr__37649.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__37649.call(null,a,b));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,c){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37656 \x3d cljs.core.deref(this$);\nreturn (fexpr__37656.cljs$core$IFn$_invoke$arity$3 ? fexpr__37656.cljs$core$IFn$_invoke$arity$3(a,b,c) : fexpr__37656.call(null,a,b,c));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,b,c,d){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37662 \x3d cljs.core.deref(this$);\nreturn (fexpr__37662.cljs$core$IFn$_invoke$arity$4 ? fexpr__37662.cljs$core$IFn$_invoke$arity$4(a,b,c,d) : fexpr__37662.call(null,a,b,c,d));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$5 \x3d (function (a,b,c,d,e){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37670 \x3d cljs.core.deref(this$);\nreturn (fexpr__37670.cljs$core$IFn$_invoke$arity$5 ? fexpr__37670.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e) : fexpr__37670.call(null,a,b,c,d,e));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$6 \x3d (function (a,b,c,d,e,f__$1){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37671 \x3d cljs.core.deref(this$);\nreturn (fexpr__37671.cljs$core$IFn$_invoke$arity$6 ? fexpr__37671.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f__$1) : fexpr__37671.call(null,a,b,c,d,e,f__$1));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$7 \x3d (function (a,b,c,d,e,f__$1,g){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37679 \x3d cljs.core.deref(this$);\nreturn (fexpr__37679.cljs$core$IFn$_invoke$arity$7 ? fexpr__37679.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f__$1,g) : fexpr__37679.call(null,a,b,c,d,e,f__$1,g));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$8 \x3d (function (a,b,c,d,e,f__$1,g,h){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37681 \x3d cljs.core.deref(this$);\nreturn (fexpr__37681.cljs$core$IFn$_invoke$arity$8 ? fexpr__37681.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f__$1,g,h) : fexpr__37681.call(null,a,b,c,d,e,f__$1,g,h));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$9 \x3d (function (a,b,c,d,e,f__$1,g,h,i){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37687 \x3d cljs.core.deref(this$);\nreturn (fexpr__37687.cljs$core$IFn$_invoke$arity$9 ? fexpr__37687.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f__$1,g,h,i) : fexpr__37687.call(null,a,b,c,d,e,f__$1,g,h,i));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$10 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37688 \x3d cljs.core.deref(this$);\nreturn (fexpr__37688.cljs$core$IFn$_invoke$arity$10 ? fexpr__37688.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f__$1,g,h,i,j) : fexpr__37688.call(null,a,b,c,d,e,f__$1,g,h,i,j));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$11 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37695 \x3d cljs.core.deref(this$);\nreturn (fexpr__37695.cljs$core$IFn$_invoke$arity$11 ? fexpr__37695.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f__$1,g,h,i,j,k) : fexpr__37695.call(null,a,b,c,d,e,f__$1,g,h,i,j,k));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$12 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37696 \x3d cljs.core.deref(this$);\nreturn (fexpr__37696.cljs$core$IFn$_invoke$arity$12 ? fexpr__37696.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f__$1,g,h,i,j,k,l) : fexpr__37696.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$13 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37725 \x3d cljs.core.deref(this$);\nreturn (fexpr__37725.cljs$core$IFn$_invoke$arity$13 ? fexpr__37725.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f__$1,g,h,i,j,k,l,m) : fexpr__37725.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$14 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37726 \x3d cljs.core.deref(this$);\nreturn (fexpr__37726.cljs$core$IFn$_invoke$arity$14 ? fexpr__37726.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n) : fexpr__37726.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$15 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37736 \x3d cljs.core.deref(this$);\nreturn (fexpr__37736.cljs$core$IFn$_invoke$arity$15 ? fexpr__37736.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o) : fexpr__37736.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$16 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37740 \x3d cljs.core.deref(this$);\nreturn (fexpr__37740.cljs$core$IFn$_invoke$arity$16 ? fexpr__37740.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p) : fexpr__37740.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$17 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37741 \x3d cljs.core.deref(this$);\nreturn (fexpr__37741.cljs$core$IFn$_invoke$arity$17 ? fexpr__37741.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q) : fexpr__37741.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$18 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37746 \x3d cljs.core.deref(this$);\nreturn (fexpr__37746.cljs$core$IFn$_invoke$arity$18 ? fexpr__37746.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r) : fexpr__37746.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$19 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37752 \x3d cljs.core.deref(this$);\nreturn (fexpr__37752.cljs$core$IFn$_invoke$arity$19 ? fexpr__37752.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s) : fexpr__37752.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$20 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar fexpr__37760 \x3d cljs.core.deref(this$);\nreturn (fexpr__37760.cljs$core$IFn$_invoke$arity$20 ? fexpr__37760.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s,t) : fexpr__37760.call(null,a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n}));\n\n(borkdude.dynaload.LazyVar.prototype.cljs$core$IFn$_invoke$arity$21 \x3d (function (a,b,c,d,e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(cljs.core.deref(this$),a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f__$1,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest], 0));\n}));\n\n(borkdude.dynaload.LazyVar.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22cached\x22,\x22cached\x22,-1216707864,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(borkdude.dynaload.LazyVar.cljs$lang$type \x3d true);\n\n(borkdude.dynaload.LazyVar.cljs$lang$ctorStr \x3d \x22borkdude.dynaload/LazyVar\x22);\n\n(borkdude.dynaload.LazyVar.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22borkdude.dynaload/LazyVar\x22);\n}));\n\n/**\n * Positional factory function for borkdude.dynaload/LazyVar.\n */\nborkdude.dynaload.__GT_LazyVar \x3d (function borkdude$dynaload$__GT_LazyVar(f,cached){\nreturn (new borkdude.dynaload.LazyVar(f,cached));\n});\n\n"); -SHADOW_ENV.evalLoad("malli.sci.js", true, "goog.provide(\x27malli.sci\x27);\nmalli.sci.evaluator \x3d (function malli$sci$evaluator(options,fail_BANG_){\nvar eval_string_STAR_ \x3d borkdude.dynaload.__GT_LazyVar((function (){\nif((typeof sci !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core.eval_string_STAR_ !\x3d\x3d \x27undefined\x27)){\nreturn sci.core.eval_string_STAR_;\n} else {\nvar temp__5823__auto__ \x3d cljs.core.find(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),null], null),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e__37508__auto__ \x3d temp__5823__auto__;\nreturn cljs.core.val(e__37508__auto__);\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22sci.core\x22,\x22eval-string*\x22,\x22sci.core/eval-string*\x22,2134763594,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22sci.core\x22,\x22eval-string*\x22,\x22sci.core/eval-string*\x22,2134763594,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}\n}),null);\nvar init \x3d borkdude.dynaload.__GT_LazyVar((function (){\nif((typeof sci !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core.init !\x3d\x3d \x27undefined\x27)){\nreturn sci.core.init;\n} else {\nvar temp__5823__auto__ \x3d cljs.core.find(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),null], null),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e__37508__auto__ \x3d temp__5823__auto__;\nreturn cljs.core.val(e__37508__auto__);\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22sci.core\x22,\x22init\x22,\x22sci.core/init\x22,-622666095,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22sci.core\x22,\x22init\x22,\x22sci.core/init\x22,-622666095,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}\n}),null);\nvar fork \x3d borkdude.dynaload.__GT_LazyVar((function (){\nif((typeof sci !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof sci.core.fork !\x3d\x3d \x27undefined\x27)){\nreturn sci.core.fork;\n} else {\nvar temp__5823__auto__ \x3d cljs.core.find(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),null], null),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e__37508__auto__ \x3d temp__5823__auto__;\nreturn cljs.core.val(e__37508__auto__);\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22sci.core\x22,\x22fork\x22,\x22sci.core/fork\x22,-1806691042,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22sci.core\x22,\x22fork\x22,\x22sci.core/fork\x22,-1806691042,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}\n}),null);\nreturn (function (){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.deref(eval_string_STAR_);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.deref(init);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.deref(fork);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar ctx \x3d (init.cljs$core$IFn$_invoke$arity$1 ? init.cljs$core$IFn$_invoke$arity$1(options) : init.call(null,options));\n(eval_string_STAR_.cljs$core$IFn$_invoke$arity$2 ? eval_string_STAR_.cljs$core$IFn$_invoke$arity$2(ctx,\x22(alias \x27m \x27malli.core)\x22) : eval_string_STAR_.call(null,ctx,\x22(alias \x27m \x27malli.core)\x22));\n\nreturn (function malli$sci$evaluator_$_eval(s){\nvar G__37894 \x3d (fork.cljs$core$IFn$_invoke$arity$1 ? fork.cljs$core$IFn$_invoke$arity$1(ctx) : fork.call(null,ctx));\nvar G__37895 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(s);\nreturn (eval_string_STAR_.cljs$core$IFn$_invoke$arity$2 ? eval_string_STAR_.cljs$core$IFn$_invoke$arity$2(G__37894,G__37895) : eval_string_STAR_.call(null,G__37894,G__37895));\n});\n} else {\nreturn fail_BANG_;\n}\n});\n});\n"); -SHADOW_ENV.evalLoad("malli.core.js", true, "goog.provide(\x27malli.core\x27);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @interface\n */\nmalli.core.IntoSchema \x3d function(){};\n\nvar malli$core$IntoSchema$_type$dyn_47050 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._type[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._type[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IntoSchema.-type\x22,this$);\n}\n}\n});\n/**\n * returns type of the schema\n */\nmalli.core._type \x3d (function malli$core$_type(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$IntoSchema$_type$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$IntoSchema$_type$arity$1(this$);\n} else {\nreturn malli$core$IntoSchema$_type$dyn_47050(this$);\n}\n});\n\nvar malli$core$IntoSchema$_type_properties$dyn_47052 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._type_properties[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._type_properties[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IntoSchema.-type-properties\x22,this$);\n}\n}\n});\n/**\n * returns schema type properties\n */\nmalli.core._type_properties \x3d (function malli$core$_type_properties(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$IntoSchema$_type_properties$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$IntoSchema$_type_properties$arity$1(this$);\n} else {\nreturn malli$core$IntoSchema$_type_properties$dyn_47052(this$);\n}\n});\n\nvar malli$core$IntoSchema$_properties_schema$dyn_47053 \x3d (function (this$,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._properties_schema[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5374__auto__.call(null,this$,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._properties_schema[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5372__auto__.call(null,this$,options));\n} else {\nthrow cljs.core.missing_protocol(\x22IntoSchema.-properties-schema\x22,this$);\n}\n}\n});\n/**\n * maybe returns :map schema describing schema properties\n */\nmalli.core._properties_schema \x3d (function malli$core$_properties_schema(this$,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$IntoSchema$_properties_schema$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$IntoSchema$_properties_schema$arity$2(this$,options);\n} else {\nreturn malli$core$IntoSchema$_properties_schema$dyn_47053(this$,options);\n}\n});\n\nvar malli$core$IntoSchema$_children_schema$dyn_47054 \x3d (function (this$,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._children_schema[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5374__auto__.call(null,this$,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._children_schema[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5372__auto__.call(null,this$,options));\n} else {\nthrow cljs.core.missing_protocol(\x22IntoSchema.-children-schema\x22,this$);\n}\n}\n});\n/**\n * maybe returns sequence schema describing schema children\n */\nmalli.core._children_schema \x3d (function malli$core$_children_schema(this$,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$IntoSchema$_children_schema$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$IntoSchema$_children_schema$arity$2(this$,options);\n} else {\nreturn malli$core$IntoSchema$_children_schema$dyn_47054(this$,options);\n}\n});\n\nvar malli$core$IntoSchema$_into_schema$dyn_47058 \x3d (function (this$,properties,children,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._into_schema[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,properties,children,options) : m__5374__auto__.call(null,this$,properties,children,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._into_schema[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,properties,children,options) : m__5372__auto__.call(null,this$,properties,children,options));\n} else {\nthrow cljs.core.missing_protocol(\x22IntoSchema.-into-schema\x22,this$);\n}\n}\n});\n/**\n * creates a new schema instance\n */\nmalli.core._into_schema \x3d (function malli$core$_into_schema(this$,properties,children,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$IntoSchema$_into_schema$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$IntoSchema$_into_schema$arity$4(this$,properties,children,options);\n} else {\nreturn malli$core$IntoSchema$_into_schema$dyn_47058(this$,properties,children,options);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.Schema \x3d function(){};\n\nvar malli$core$Schema$_validator$dyn_47060 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._validator[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._validator[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-validator\x22,this$);\n}\n}\n});\n/**\n * returns a predicate function that checks if the schema is valid\n */\nmalli.core._validator \x3d (function malli$core$_validator(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_validator$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_validator$arity$1(this$);\n} else {\nreturn malli$core$Schema$_validator$dyn_47060(this$);\n}\n});\n\nvar malli$core$Schema$_explainer$dyn_47061 \x3d (function (this$,path){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._explainer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,path) : m__5374__auto__.call(null,this$,path));\n} else {\nvar m__5372__auto__ \x3d (malli.core._explainer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,path) : m__5372__auto__.call(null,this$,path));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-explainer\x22,this$);\n}\n}\n});\n/**\n * returns a function of `x in acc -\x3e maybe errors` to explain the errors for invalid values\n */\nmalli.core._explainer \x3d (function malli$core$_explainer(this$,path){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_explainer$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_explainer$arity$2(this$,path);\n} else {\nreturn malli$core$Schema$_explainer$dyn_47061(this$,path);\n}\n});\n\nvar malli$core$Schema$_parser$dyn_47064 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._parser[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._parser[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-parser\x22,this$);\n}\n}\n});\n/**\n * return a function of `x -\x3e parsed-x | ::m/invalid` to explain how schema is valid.\n */\nmalli.core._parser \x3d (function malli$core$_parser(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_parser$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_parser$arity$1(this$);\n} else {\nreturn malli$core$Schema$_parser$dyn_47064(this$);\n}\n});\n\nvar malli$core$Schema$_unparser$dyn_47066 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._unparser[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._unparser[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-unparser\x22,this$);\n}\n}\n});\n/**\n * return the inverse (partial) function wrt. `-parser`; `parsed-x -\x3e x | ::m/invalid`\n */\nmalli.core._unparser \x3d (function malli$core$_unparser(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_unparser$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_unparser$arity$1(this$);\n} else {\nreturn malli$core$Schema$_unparser$dyn_47066(this$);\n}\n});\n\nvar malli$core$Schema$_transformer$dyn_47070 \x3d (function (this$,transformer,method,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._transformer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,transformer,method,options) : m__5374__auto__.call(null,this$,transformer,method,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._transformer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,transformer,method,options) : m__5372__auto__.call(null,this$,transformer,method,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-transformer\x22,this$);\n}\n}\n});\n/**\n * returns a function to transform the value for the given schema and method.\n * Can also return nil instead of `identity` so that more no-op transforms can be elided.\n */\nmalli.core._transformer \x3d (function malli$core$_transformer(this$,transformer,method,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_transformer$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_transformer$arity$4(this$,transformer,method,options);\n} else {\nreturn malli$core$Schema$_transformer$dyn_47070(this$,transformer,method,options);\n}\n});\n\nvar malli$core$Schema$_walk$dyn_47073 \x3d (function (this$,walker,path,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._walk[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,walker,path,options) : m__5374__auto__.call(null,this$,walker,path,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._walk[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,walker,path,options) : m__5372__auto__.call(null,this$,walker,path,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-walk\x22,this$);\n}\n}\n});\n/**\n * walks the schema and it\x27s children, ::m/walk-entry-vals, ::m/walk-refs, ::m/walk-schema-refs options effect how walking is done.\n */\nmalli.core._walk \x3d (function malli$core$_walk(this$,walker,path,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_walk$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_walk$arity$4(this$,walker,path,options);\n} else {\nreturn malli$core$Schema$_walk$dyn_47073(this$,walker,path,options);\n}\n});\n\nvar malli$core$Schema$_properties$dyn_47074 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._properties[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._properties[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-properties\x22,this$);\n}\n}\n});\n/**\n * returns original schema properties\n */\nmalli.core._properties \x3d (function malli$core$_properties(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_properties$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_properties$arity$1(this$);\n} else {\nreturn malli$core$Schema$_properties$dyn_47074(this$);\n}\n});\n\nvar malli$core$Schema$_options$dyn_47078 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._options[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._options[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-options\x22,this$);\n}\n}\n});\n/**\n * returns original options\n */\nmalli.core._options \x3d (function malli$core$_options(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_options$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_options$arity$1(this$);\n} else {\nreturn malli$core$Schema$_options$dyn_47078(this$);\n}\n});\n\nvar malli$core$Schema$_children$dyn_47083 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._children[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._children[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-children\x22,this$);\n}\n}\n});\n/**\n * returns schema children\n */\nmalli.core._children \x3d (function malli$core$_children(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_children$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_children$arity$1(this$);\n} else {\nreturn malli$core$Schema$_children$dyn_47083(this$);\n}\n});\n\nvar malli$core$Schema$_parent$dyn_47085 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._parent[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._parent[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-parent\x22,this$);\n}\n}\n});\n/**\n * returns the IntoSchema instance\n */\nmalli.core._parent \x3d (function malli$core$_parent(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_parent$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_parent$arity$1(this$);\n} else {\nreturn malli$core$Schema$_parent$dyn_47085(this$);\n}\n});\n\nvar malli$core$Schema$_form$dyn_47088 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._form[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._form[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Schema.-form\x22,this$);\n}\n}\n});\n/**\n * returns original form of the schema\n */\nmalli.core._form \x3d (function malli$core$_form(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Schema$_form$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Schema$_form$arity$1(this$);\n} else {\nreturn malli$core$Schema$_form$dyn_47088(this$);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.AST \x3d function(){};\n\nvar malli$core$AST$_to_ast$dyn_47093 \x3d (function (this$,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._to_ast[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5374__auto__.call(null,this$,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._to_ast[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,options) : m__5372__auto__.call(null,this$,options));\n} else {\nthrow cljs.core.missing_protocol(\x22AST.-to-ast\x22,this$);\n}\n}\n});\n/**\n * schema to ast\n */\nmalli.core._to_ast \x3d (function malli$core$_to_ast(this$,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$AST$_to_ast$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$AST$_to_ast$arity$2(this$,options);\n} else {\nreturn malli$core$AST$_to_ast$dyn_47093(this$,options);\n}\n});\n\nvar malli$core$AST$_from_ast$dyn_47099 \x3d (function (this$,ast,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._from_ast[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,ast,options) : m__5374__auto__.call(null,this$,ast,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._from_ast[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,ast,options) : m__5372__auto__.call(null,this$,ast,options));\n} else {\nthrow cljs.core.missing_protocol(\x22AST.-from-ast\x22,this$);\n}\n}\n});\n/**\n * ast to schema\n */\nmalli.core._from_ast \x3d (function malli$core$_from_ast(this$,ast,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$AST$_from_ast$arity$3 \x3d\x3d null)))))){\nreturn this$.malli$core$AST$_from_ast$arity$3(this$,ast,options);\n} else {\nreturn malli$core$AST$_from_ast$dyn_47099(this$,ast,options);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.EntryParser \x3d function(){};\n\nvar malli$core$EntryParser$_entry_keyset$dyn_47109 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entry_keyset[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entry_keyset[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntryParser.-entry-keyset\x22,this$);\n}\n}\n});\nmalli.core._entry_keyset \x3d (function malli$core$_entry_keyset(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntryParser$_entry_keyset$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntryParser$_entry_keyset$arity$1(this$);\n} else {\nreturn malli$core$EntryParser$_entry_keyset$dyn_47109(this$);\n}\n});\n\nvar malli$core$EntryParser$_entry_children$dyn_47113 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entry_children[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entry_children[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntryParser.-entry-children\x22,this$);\n}\n}\n});\nmalli.core._entry_children \x3d (function malli$core$_entry_children(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntryParser$_entry_children$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntryParser$_entry_children$arity$1(this$);\n} else {\nreturn malli$core$EntryParser$_entry_children$dyn_47113(this$);\n}\n});\n\nvar malli$core$EntryParser$_entry_entries$dyn_47115 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entry_entries[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entry_entries[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntryParser.-entry-entries\x22,this$);\n}\n}\n});\nmalli.core._entry_entries \x3d (function malli$core$_entry_entries(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntryParser$_entry_entries$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntryParser$_entry_entries$arity$1(this$);\n} else {\nreturn malli$core$EntryParser$_entry_entries$dyn_47115(this$);\n}\n});\n\nvar malli$core$EntryParser$_entry_forms$dyn_47116 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entry_forms[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entry_forms[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntryParser.-entry-forms\x22,this$);\n}\n}\n});\nmalli.core._entry_forms \x3d (function malli$core$_entry_forms(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntryParser$_entry_forms$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntryParser$_entry_forms$arity$1(this$);\n} else {\nreturn malli$core$EntryParser$_entry_forms$dyn_47116(this$);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.EntrySchema \x3d function(){};\n\nvar malli$core$EntrySchema$_entries$dyn_47117 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entries[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entries[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntrySchema.-entries\x22,this$);\n}\n}\n});\n/**\n * returns sequence of `key -val-schema` entries\n */\nmalli.core._entries \x3d (function malli$core$_entries(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntrySchema$_entries$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntrySchema$_entries$arity$1(this$);\n} else {\nreturn malli$core$EntrySchema$_entries$dyn_47117(this$);\n}\n});\n\nvar malli$core$EntrySchema$_entry_parser$dyn_47119 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._entry_parser[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._entry_parser[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22EntrySchema.-entry-parser\x22,this$);\n}\n}\n});\nmalli.core._entry_parser \x3d (function malli$core$_entry_parser(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$EntrySchema$_entry_parser$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$EntrySchema$_entry_parser$arity$1(this$);\n} else {\nreturn malli$core$EntrySchema$_entry_parser$dyn_47119(this$);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.Cached \x3d function(){};\n\nvar malli$core$Cached$_cache$dyn_47124 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._cache[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._cache[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Cached.-cache\x22,this$);\n}\n}\n});\nmalli.core._cache \x3d (function malli$core$_cache(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Cached$_cache$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Cached$_cache$arity$1(this$);\n} else {\nreturn malli$core$Cached$_cache$dyn_47124(this$);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.LensSchema \x3d function(){};\n\nvar malli$core$LensSchema$_keep$dyn_47127 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._keep[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._keep[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22LensSchema.-keep\x22,this$);\n}\n}\n});\n/**\n * returns truthy if schema contributes to value path\n */\nmalli.core._keep \x3d (function malli$core$_keep(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$LensSchema$_keep$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$LensSchema$_keep$arity$1(this$);\n} else {\nreturn malli$core$LensSchema$_keep$dyn_47127(this$);\n}\n});\n\nvar malli$core$LensSchema$_get$dyn_47130 \x3d (function (this$,key,default$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._get[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,default$) : m__5374__auto__.call(null,this$,key,default$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._get[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,default$) : m__5372__auto__.call(null,this$,key,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22LensSchema.-get\x22,this$);\n}\n}\n});\n/**\n * returns schema at key\n */\nmalli.core._get \x3d (function malli$core$_get(this$,key,default$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$LensSchema$_get$arity$3 \x3d\x3d null)))))){\nreturn this$.malli$core$LensSchema$_get$arity$3(this$,key,default$);\n} else {\nreturn malli$core$LensSchema$_get$dyn_47130(this$,key,default$);\n}\n});\n\nvar malli$core$LensSchema$_set$dyn_47135 \x3d (function (this$,key,value){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._set[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,value) : m__5374__auto__.call(null,this$,key,value));\n} else {\nvar m__5372__auto__ \x3d (malli.core._set[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,value) : m__5372__auto__.call(null,this$,key,value));\n} else {\nthrow cljs.core.missing_protocol(\x22LensSchema.-set\x22,this$);\n}\n}\n});\n/**\n * returns a copy with key having new value\n */\nmalli.core._set \x3d (function malli$core$_set(this$,key,value){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$LensSchema$_set$arity$3 \x3d\x3d null)))))){\nreturn this$.malli$core$LensSchema$_set$arity$3(this$,key,value);\n} else {\nreturn malli$core$LensSchema$_set$dyn_47135(this$,key,value);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.RefSchema \x3d function(){};\n\nvar malli$core$RefSchema$_ref$dyn_47142 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._ref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._ref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RefSchema.-ref\x22,this$);\n}\n}\n});\n/**\n * returns the reference name\n */\nmalli.core._ref \x3d (function malli$core$_ref(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RefSchema$_ref$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RefSchema$_ref$arity$1(this$);\n} else {\nreturn malli$core$RefSchema$_ref$dyn_47142(this$);\n}\n});\n\nvar malli$core$RefSchema$_deref$dyn_47144 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._deref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._deref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RefSchema.-deref\x22,this$);\n}\n}\n});\n/**\n * returns the referenced schema\n */\nmalli.core._deref \x3d (function malli$core$_deref(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RefSchema$_deref$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RefSchema$_deref$arity$1(this$);\n} else {\nreturn malli$core$RefSchema$_deref$dyn_47144(this$);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.Walker \x3d function(){};\n\nvar malli$core$Walker$_accept$dyn_47149 \x3d (function (this$,schema,path,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._accept[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,path,options) : m__5374__auto__.call(null,this$,schema,path,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._accept[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,path,options) : m__5372__auto__.call(null,this$,schema,path,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Walker.-accept\x22,this$);\n}\n}\n});\nmalli.core._accept \x3d (function malli$core$_accept(this$,schema,path,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Walker$_accept$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$Walker$_accept$arity$4(this$,schema,path,options);\n} else {\nreturn malli$core$Walker$_accept$dyn_47149(this$,schema,path,options);\n}\n});\n\nvar malli$core$Walker$_inner$dyn_47156 \x3d (function (this$,schema,path,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._inner[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,path,options) : m__5374__auto__.call(null,this$,schema,path,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._inner[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,path,options) : m__5372__auto__.call(null,this$,schema,path,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Walker.-inner\x22,this$);\n}\n}\n});\nmalli.core._inner \x3d (function malli$core$_inner(this$,schema,path,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Walker$_inner$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$Walker$_inner$arity$4(this$,schema,path,options);\n} else {\nreturn malli$core$Walker$_inner$dyn_47156(this$,schema,path,options);\n}\n});\n\nvar malli$core$Walker$_outer$dyn_47160 \x3d (function (this$,schema,path,children,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._outer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(this$,schema,path,children,options) : m__5374__auto__.call(null,this$,schema,path,children,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._outer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(this$,schema,path,children,options) : m__5372__auto__.call(null,this$,schema,path,children,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Walker.-outer\x22,this$);\n}\n}\n});\nmalli.core._outer \x3d (function malli$core$_outer(this$,schema,path,children,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Walker$_outer$arity$5 \x3d\x3d null)))))){\nreturn this$.malli$core$Walker$_outer$arity$5(this$,schema,path,children,options);\n} else {\nreturn malli$core$Walker$_outer$dyn_47160(this$,schema,path,children,options);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.Transformer \x3d function(){};\n\nvar malli$core$Transformer$_transformer_chain$dyn_47162 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._transformer_chain[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._transformer_chain[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Transformer.-transformer-chain\x22,this$);\n}\n}\n});\n/**\n * returns transformer chain as a vector of maps with :name, :encoders, :decoders and :options\n */\nmalli.core._transformer_chain \x3d (function malli$core$_transformer_chain(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Transformer$_transformer_chain$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$Transformer$_transformer_chain$arity$1(this$);\n} else {\nreturn malli$core$Transformer$_transformer_chain$dyn_47162(this$);\n}\n});\n\nvar malli$core$Transformer$_value_transformer$dyn_47163 \x3d (function (this$,schema,method,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._value_transformer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,method,options) : m__5374__auto__.call(null,this$,schema,method,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._value_transformer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,schema,method,options) : m__5372__auto__.call(null,this$,schema,method,options));\n} else {\nthrow cljs.core.missing_protocol(\x22Transformer.-value-transformer\x22,this$);\n}\n}\n});\n/**\n * returns a value transforming interceptor for the given schema and method\n */\nmalli.core._value_transformer \x3d (function malli$core$_value_transformer(this$,schema,method,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$Transformer$_value_transformer$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$Transformer$_value_transformer$arity$4(this$,schema,method,options);\n} else {\nreturn malli$core$Transformer$_value_transformer$dyn_47163(this$,schema,method,options);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.RegexSchema \x3d function(){};\n\nvar malli$core$RegexSchema$_regex_op_QMARK_$dyn_47176 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_op_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_op_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-op?\x22,this$);\n}\n}\n});\n/**\n * is this a regex operator (e.g. :cat, :*...)\n */\nmalli.core._regex_op_QMARK_ \x3d (function malli$core$_regex_op_QMARK_(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_op_QMARK_$arity$1(this$);\n} else {\nreturn malli$core$RegexSchema$_regex_op_QMARK_$dyn_47176(this$);\n}\n});\n\nvar malli$core$RegexSchema$_regex_validator$dyn_47177 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_validator[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_validator[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-validator\x22,this$);\n}\n}\n});\n/**\n * returns the raw internal regex validator implementation\n */\nmalli.core._regex_validator \x3d (function malli$core$_regex_validator(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_validator$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_validator$arity$1(this$);\n} else {\nreturn malli$core$RegexSchema$_regex_validator$dyn_47177(this$);\n}\n});\n\nvar malli$core$RegexSchema$_regex_explainer$dyn_47178 \x3d (function (this$,path){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_explainer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,path) : m__5374__auto__.call(null,this$,path));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_explainer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,path) : m__5372__auto__.call(null,this$,path));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-explainer\x22,this$);\n}\n}\n});\n/**\n * returns the raw internal regex explainer implementation\n */\nmalli.core._regex_explainer \x3d (function malli$core$_regex_explainer(this$,path){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_explainer$arity$2(this$,path);\n} else {\nreturn malli$core$RegexSchema$_regex_explainer$dyn_47178(this$,path);\n}\n});\n\nvar malli$core$RegexSchema$_regex_unparser$dyn_47179 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_unparser[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_unparser[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-unparser\x22,this$);\n}\n}\n});\n/**\n * returns the raw internal regex unparser implementation\n */\nmalli.core._regex_unparser \x3d (function malli$core$_regex_unparser(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_unparser$arity$1(this$);\n} else {\nreturn malli$core$RegexSchema$_regex_unparser$dyn_47179(this$);\n}\n});\n\nvar malli$core$RegexSchema$_regex_parser$dyn_47181 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_parser[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_parser[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-parser\x22,this$);\n}\n}\n});\n/**\n * returns the raw internal regex parser implementation\n */\nmalli.core._regex_parser \x3d (function malli$core$_regex_parser(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_parser$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_parser$arity$1(this$);\n} else {\nreturn malli$core$RegexSchema$_regex_parser$dyn_47181(this$);\n}\n});\n\nvar malli$core$RegexSchema$_regex_transformer$dyn_47184 \x3d (function (this$,transformer,method,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_transformer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(this$,transformer,method,options) : m__5374__auto__.call(null,this$,transformer,method,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_transformer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(this$,transformer,method,options) : m__5372__auto__.call(null,this$,transformer,method,options));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-transformer\x22,this$);\n}\n}\n});\n/**\n * returns the raw internal regex transformer implementation\n */\nmalli.core._regex_transformer \x3d (function malli$core$_regex_transformer(this$,transformer,method,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_transformer$arity$4(this$,transformer,method,options);\n} else {\nreturn malli$core$RegexSchema$_regex_transformer$dyn_47184(this$,transformer,method,options);\n}\n});\n\nvar malli$core$RegexSchema$_regex_min_max$dyn_47185 \x3d (function (this$,nested_QMARK_){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._regex_min_max[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,nested_QMARK_) : m__5374__auto__.call(null,this$,nested_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (malli.core._regex_min_max[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,nested_QMARK_) : m__5372__auto__.call(null,this$,nested_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22RegexSchema.-regex-min-max\x22,this$);\n}\n}\n});\n/**\n * returns size of the sequence as {:min min :max max}. nil max means unbounded. nested? is true when this schema is nested inside an outer regex schema.\n */\nmalli.core._regex_min_max \x3d (function malli$core$_regex_min_max(this$,nested_QMARK_){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d\x3d null)))))){\nreturn this$.malli$core$RegexSchema$_regex_min_max$arity$2(this$,nested_QMARK_);\n} else {\nreturn malli$core$RegexSchema$_regex_min_max$dyn_47185(this$,nested_QMARK_);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.FunctionSchema \x3d function(){};\n\nvar malli$core$FunctionSchema$_function_schema_QMARK_$dyn_47186 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._function_schema_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._function_schema_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22FunctionSchema.-function-schema?\x22,this$);\n}\n}\n});\nmalli.core._function_schema_QMARK_ \x3d (function malli$core$_function_schema_QMARK_(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$FunctionSchema$_function_schema_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$FunctionSchema$_function_schema_QMARK_$arity$1(this$);\n} else {\nreturn malli$core$FunctionSchema$_function_schema_QMARK_$dyn_47186(this$);\n}\n});\n\nvar malli$core$FunctionSchema$_function_schema_arities$dyn_47187 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._function_schema_arities[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._function_schema_arities[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22FunctionSchema.-function-schema-arities\x22,this$);\n}\n}\n});\nmalli.core._function_schema_arities \x3d (function malli$core$_function_schema_arities(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$FunctionSchema$_function_schema_arities$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$FunctionSchema$_function_schema_arities$arity$1(this$);\n} else {\nreturn malli$core$FunctionSchema$_function_schema_arities$dyn_47187(this$);\n}\n});\n\nvar malli$core$FunctionSchema$_function_info$dyn_47188 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._function_info[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._function_info[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22FunctionSchema.-function-info\x22,this$);\n}\n}\n});\nmalli.core._function_info \x3d (function malli$core$_function_info(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$FunctionSchema$_function_info$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$FunctionSchema$_function_info$arity$1(this$);\n} else {\nreturn malli$core$FunctionSchema$_function_info$dyn_47188(this$);\n}\n});\n\nvar malli$core$FunctionSchema$_instrument_f$dyn_47196 \x3d (function (schema,props,f,options){\nvar x__5373__auto__ \x3d (((schema \x3d\x3d null))?null:schema);\nvar m__5374__auto__ \x3d (malli.core._instrument_f[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(schema,props,f,options) : m__5374__auto__.call(null,schema,props,f,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._instrument_f[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(schema,props,f,options) : m__5372__auto__.call(null,schema,props,f,options));\n} else {\nthrow cljs.core.missing_protocol(\x22FunctionSchema.-instrument-f\x22,schema);\n}\n}\n});\nmalli.core._instrument_f \x3d (function malli$core$_instrument_f(schema,props,f,options){\nif((((!((schema \x3d\x3d null)))) \x26\x26 ((!((schema.malli$core$FunctionSchema$_instrument_f$arity$4 \x3d\x3d null)))))){\nreturn schema.malli$core$FunctionSchema$_instrument_f$arity$4(schema,props,f,options);\n} else {\nreturn malli$core$FunctionSchema$_instrument_f$dyn_47196(schema,props,f,options);\n}\n});\n\n\n/**\n * @interface\n */\nmalli.core.DistributiveSchema \x3d function(){};\n\nvar malli$core$DistributiveSchema$_distributive_schema_QMARK_$dyn_47210 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._distributive_schema_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (malli.core._distributive_schema_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22DistributiveSchema.-distributive-schema?\x22,this$);\n}\n}\n});\nmalli.core._distributive_schema_QMARK_ \x3d (function malli$core$_distributive_schema_QMARK_(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$DistributiveSchema$_distributive_schema_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn this$.malli$core$DistributiveSchema$_distributive_schema_QMARK_$arity$1(this$);\n} else {\nreturn malli$core$DistributiveSchema$_distributive_schema_QMARK_$dyn_47210(this$);\n}\n});\n\nvar malli$core$DistributiveSchema$_distribute_to_children$dyn_47213 \x3d (function (this$,f,options){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (malli.core._distribute_to_children[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,f,options) : m__5374__auto__.call(null,this$,f,options));\n} else {\nvar m__5372__auto__ \x3d (malli.core._distribute_to_children[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,f,options) : m__5372__auto__.call(null,this$,f,options));\n} else {\nthrow cljs.core.missing_protocol(\x22DistributiveSchema.-distribute-to-children\x22,this$);\n}\n}\n});\nmalli.core._distribute_to_children \x3d (function malli$core$_distribute_to_children(this$,f,options){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.malli$core$DistributiveSchema$_distribute_to_children$arity$3 \x3d\x3d null)))))){\nreturn this$.malli$core$DistributiveSchema$_distribute_to_children$arity$3(this$,f,options);\n} else {\nreturn malli$core$DistributiveSchema$_distribute_to_children$dyn_47213(this$,f,options);\n}\n});\n\nmalli.core._ref_schema_QMARK_ \x3d (function malli$core$_ref_schema_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$RefSchema$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\nmalli.core._entry_parser_QMARK_ \x3d (function malli$core$_entry_parser_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$EntryParser$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\nmalli.core._entry_schema_QMARK_ \x3d (function malli$core$_entry_schema_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$EntrySchema$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\nmalli.core._cached_QMARK_ \x3d (function malli$core$_cached_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$Cached$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\nmalli.core._ast_QMARK_ \x3d (function malli$core$_ast_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$AST$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\nmalli.core._transformer_QMARK_ \x3d (function malli$core$_transformer_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$Transformer$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n(malli.core.FunctionSchema[\x22_\x22] \x3d true);\n\n(malli.core._function_schema_QMARK_[\x22_\x22] \x3d (function (_){\nreturn false;\n}));\n\n(malli.core._function_info[\x22_\x22] \x3d (function (_){\nreturn null;\n}));\n\n(malli.core._function_schema_arities[\x22_\x22] \x3d (function (_){\nreturn null;\n}));\n\n(malli.core._instrument_f[\x22_\x22] \x3d (function (_,___$1,___$2,___$3){\nreturn null;\n}));\n\n(malli.core.DistributiveSchema[\x22_\x22] \x3d true);\n\n(malli.core._distributive_schema_QMARK_[\x22_\x22] \x3d (function (_){\nreturn false;\n}));\n\n(malli.core._distribute_to_children[\x22_\x22] \x3d (function (this$,_,___$1){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not distributive\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$], null));\n}));\n\n(malli.core.RegexSchema[\x22_\x22] \x3d true);\n\n(malli.core._regex_op_QMARK_[\x22_\x22] \x3d (function (_){\nreturn false;\n}));\n\n(malli.core._regex_validator[\x22_\x22] \x3d (function (this$){\nif(malli.core._ref_schema_QMARK_(this$)){\nreturn malli.core._regex_validator(malli.core._deref(this$));\n} else {\nreturn malli.impl.regex.item_validator(malli.core._validator(this$));\n}\n}));\n\n(malli.core._regex_explainer[\x22_\x22] \x3d (function (this$,path){\nif(malli.core._ref_schema_QMARK_(this$)){\nreturn malli.core._regex_explainer(malli.core._deref(this$),path);\n} else {\nreturn malli.impl.regex.item_explainer(path,this$,malli.core._explainer(this$,path));\n}\n}));\n\n(malli.core._regex_parser[\x22_\x22] \x3d (function (this$){\nif(malli.core._ref_schema_QMARK_(this$)){\nreturn malli.core._regex_parser(malli.core._deref(this$));\n} else {\nreturn malli.impl.regex.item_parser((malli.core.parser.cljs$core$IFn$_invoke$arity$1 ? malli.core.parser.cljs$core$IFn$_invoke$arity$1(this$) : malli.core.parser.call(null,this$)));\n}\n}));\n\n(malli.core._regex_unparser[\x22_\x22] \x3d (function (this$){\nif(malli.core._ref_schema_QMARK_(this$)){\nreturn malli.core._regex_unparser(malli.core._deref(this$));\n} else {\nreturn malli.impl.regex.item_unparser((malli.core.unparser.cljs$core$IFn$_invoke$arity$1 ? malli.core.unparser.cljs$core$IFn$_invoke$arity$1(this$) : malli.core.unparser.call(null,this$)));\n}\n}));\n\n(malli.core._regex_transformer[\x22_\x22] \x3d (function (this$,transformer,method,options){\nif(malli.core._ref_schema_QMARK_(this$)){\nreturn malli.core._regex_transformer(malli.core._deref(this$),transformer,method,options);\n} else {\nreturn malli.impl.regex.item_transformer(method,malli.core._validator(this$),(function (){var or__5025__auto__ \x3d malli.core._transformer(this$,transformer,method,options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n})());\n}\n}));\n\n(malli.core._regex_min_max[\x22_\x22] \x3d (function (_,___$1){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null);\n}));\nmalli.core.pr_writer_into_schema \x3d (function malli$core$pr_writer_into_schema(obj,writer,opts){\ncljs.core._write(writer,\x22#IntoSchema \x22);\n\nreturn cljs.core._pr_writer(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),malli.core._type(obj)], null),writer,opts);\n});\nmalli.core.pr_writer_schema \x3d (function malli$core$pr_writer_schema(obj,writer,opts){\nreturn cljs.core._pr_writer(malli.core._form(obj),writer,opts);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nmalli.core.Tag \x3d (function (key,value,__meta,__extmap,__hash){\nthis.key \x3d key;\nthis.value \x3d value;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(malli.core.Tag.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(malli.core.Tag.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k43241,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__43258 \x3d k43241;\nvar G__43258__$1 \x3d (((G__43258 instanceof cljs.core.Keyword))?G__43258.fqn:null);\nswitch (G__43258__$1) {\ncase \x22key\x22:\nreturn self__.key;\n\nbreak;\ncase \x22value\x22:\nreturn self__.value;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k43241,else__5326__auto__);\n\n}\n}));\n\n(malli.core.Tag.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__43261){\nvar vec__43262 \x3d p__43261;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43262,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43262,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(malli.core.Tag.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#malli.core.Tag{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),self__.key],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),self__.value],null))], null),self__.__extmap));\n}));\n\n(malli.core.Tag.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__43240){\nvar self__ \x3d this;\nvar G__43240__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__43240__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(malli.core.Tag.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(malli.core.Tag.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new malli.core.Tag(self__.key,self__.value,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(malli.core.Tag.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(malli.core.Tag.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (237888567 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(malli.core.Tag.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this43242,other43243){\nvar self__ \x3d this;\nvar this43242__$1 \x3d this;\nreturn (((!((other43243 \x3d\x3d null)))) \x26\x26 ((((this43242__$1.constructor \x3d\x3d\x3d other43243.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this43242__$1.key,other43243.key)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this43242__$1.value,other43243.value)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this43242__$1.__extmap,other43243.__extmap)))))))));\n}));\n\n(malli.core.Tag.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),null,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new malli.core.Tag(self__.key,self__.value,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(malli.core.Tag.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k43241){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__43283 \x3d k43241;\nvar G__43283__$1 \x3d (((G__43283 instanceof cljs.core.Keyword))?G__43283.fqn:null);\nswitch (G__43283__$1) {\ncase \x22key\x22:\ncase \x22value\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k43241);\n\n}\n}));\n\n(malli.core.Tag.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__43240){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__43289 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__43290 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__43289.cljs$core$IFn$_invoke$arity$2 ? pred__43289.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),expr__43290) : pred__43289.call(null,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),expr__43290)))){\nreturn (new malli.core.Tag(G__43240,self__.value,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__43289.cljs$core$IFn$_invoke$arity$2 ? pred__43289.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),expr__43290) : pred__43289.call(null,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),expr__43290)))){\nreturn (new malli.core.Tag(self__.key,G__43240,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new malli.core.Tag(self__.key,self__.value,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__43240),null));\n}\n}\n}));\n\n(malli.core.Tag.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),self__.key,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),self__.value,null))], null),self__.__extmap));\n}));\n\n(malli.core.Tag.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__43240){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new malli.core.Tag(self__.key,self__.value,G__43240,self__.__extmap,self__.__hash));\n}));\n\n(malli.core.Tag.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(malli.core.Tag.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null)], null);\n}));\n\n(malli.core.Tag.cljs$lang$type \x3d true);\n\n(malli.core.Tag.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22malli.core/Tag\x22,null,(1),null));\n}));\n\n(malli.core.Tag.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22malli.core/Tag\x22);\n}));\n\n/**\n * Positional factory function for malli.core/Tag.\n */\nmalli.core.__GT_Tag \x3d (function malli$core$__GT_Tag(key,value){\nreturn (new malli.core.Tag(key,value,null,null,null));\n});\n\n/**\n * Factory function for malli.core/Tag, taking a map of keywords to field values.\n */\nmalli.core.map__GT_Tag \x3d (function malli$core$map__GT_Tag(G__43246){\nvar extmap__5365__auto__ \x3d (function (){var G__43294 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__43246,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217)], 0));\nif(cljs.core.record_QMARK_(G__43246)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__43294);\n} else {\nreturn G__43294;\n}\n})();\nreturn (new malli.core.Tag(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(G__43246),new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(G__43246),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * A tagged value, used eg. for results of `parse` for `:orn` schemas.\n */\nmalli.core.tag \x3d (function malli$core$tag(key,value){\nreturn malli.core.__GT_Tag(key,value);\n});\n/**\n * Is this a value constructed with `tag`?\n */\nmalli.core.tag_QMARK_ \x3d (function malli$core$tag_QMARK_(x){\nreturn (x instanceof malli.core.Tag);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nmalli.core.Tags \x3d (function (values,__meta,__extmap,__hash){\nthis.values \x3d values;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(malli.core.Tags.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(malli.core.Tags.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k43299,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__43304 \x3d k43299;\nvar G__43304__$1 \x3d (((G__43304 instanceof cljs.core.Keyword))?G__43304.fqn:null);\nswitch (G__43304__$1) {\ncase \x22values\x22:\nreturn self__.values;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k43299,else__5326__auto__);\n\n}\n}));\n\n(malli.core.Tags.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__43310){\nvar vec__43311 \x3d p__43310;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43311,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43311,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(malli.core.Tags.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#malli.core.Tags{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),self__.values],null))], null),self__.__extmap));\n}));\n\n(malli.core.Tags.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__43298){\nvar self__ \x3d this;\nvar G__43298__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__43298__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(malli.core.Tags.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(malli.core.Tags.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new malli.core.Tags(self__.values,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(malli.core.Tags.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(malli.core.Tags.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1914571781 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(malli.core.Tags.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this43300,other43301){\nvar self__ \x3d this;\nvar this43300__$1 \x3d this;\nreturn (((!((other43301 \x3d\x3d null)))) \x26\x26 ((((this43300__$1.constructor \x3d\x3d\x3d other43301.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this43300__$1.values,other43301.values)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this43300__$1.__extmap,other43301.__extmap)))))));\n}));\n\n(malli.core.Tags.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new malli.core.Tags(self__.values,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(malli.core.Tags.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k43299){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__43319 \x3d k43299;\nvar G__43319__$1 \x3d (((G__43319 instanceof cljs.core.Keyword))?G__43319.fqn:null);\nswitch (G__43319__$1) {\ncase \x22values\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k43299);\n\n}\n}));\n\n(malli.core.Tags.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__43298){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__43321 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__43322 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__43321.cljs$core$IFn$_invoke$arity$2 ? pred__43321.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),expr__43322) : pred__43321.call(null,new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),expr__43322)))){\nreturn (new malli.core.Tags(G__43298,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new malli.core.Tags(self__.values,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__43298),null));\n}\n}));\n\n(malli.core.Tags.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),self__.values,null))], null),self__.__extmap));\n}));\n\n(malli.core.Tags.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__43298){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new malli.core.Tags(self__.values,G__43298,self__.__extmap,self__.__hash));\n}));\n\n(malli.core.Tags.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(malli.core.Tags.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22values\x22,\x22values\x22,2013177083,null)], null);\n}));\n\n(malli.core.Tags.cljs$lang$type \x3d true);\n\n(malli.core.Tags.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22malli.core/Tags\x22,null,(1),null));\n}));\n\n(malli.core.Tags.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22malli.core/Tags\x22);\n}));\n\n/**\n * Positional factory function for malli.core/Tags.\n */\nmalli.core.__GT_Tags \x3d (function malli$core$__GT_Tags(values){\nreturn (new malli.core.Tags(values,null,null,null));\n});\n\n/**\n * Factory function for malli.core/Tags, taking a map of keywords to field values.\n */\nmalli.core.map__GT_Tags \x3d (function malli$core$map__GT_Tags(G__43303){\nvar extmap__5365__auto__ \x3d (function (){var G__43326 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__43303,new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556));\nif(cljs.core.record_QMARK_(G__43303)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__43326);\n} else {\nreturn G__43326;\n}\n})();\nreturn (new malli.core.Tags(new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556).cljs$core$IFn$_invoke$arity$1(G__43303),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * A collection of tagged values. `values` should be a map from tag to value.\n * Used eg. for results of `parse` for `:catn` schemas.\n */\nmalli.core.tags \x3d (function malli$core$tags(values){\nreturn malli.core.__GT_Tags(values);\n});\n/**\n * Is this a value constructed with `tags`?\n */\nmalli.core.tags_QMARK_ \x3d (function malli$core$tags_QMARK_(x){\nreturn (x instanceof malli.core.Tags);\n});\nmalli.core._deprecated_BANG_ \x3d (function malli$core$_deprecated_BANG_(x){\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22DEPRECATED:\x22,x], 0));\n});\nmalli.core._exception \x3d (function malli$core$_exception(type,data){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),type,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null));\n});\nmalli.core._fail_BANG_ \x3d (function malli$core$_fail_BANG_(var_args){\nvar G__43331 \x3d arguments.length;\nswitch (G__43331) {\ncase 1:\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (type){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(type,null);\n}));\n\n(malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (type,data){\nthrow malli.core._exception(type,data);\n}));\n\n(malli.core._fail_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core._safe_pred \x3d (function malli$core$_safe_pred(f){\nreturn (function (p1__43338_SHARP_){\ntry{return cljs.core.boolean$((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43338_SHARP_) : f.call(null,p1__43338_SHARP_)));\n}catch (e43339){if((e43339 instanceof Error)){\nvar _ \x3d e43339;\nreturn false;\n} else {\nthrow e43339;\n\n}\n}});\n});\nmalli.core._keyword__GT_string \x3d (function malli$core$_keyword__GT_string(x){\nif((x instanceof cljs.core.Keyword)){\nvar temp__5823__auto__ \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar nn \x3d temp__5823__auto__;\nreturn [nn,\x22/\x22,cljs.core.name(x)].join(\x27\x27);\n} else {\nreturn cljs.core.name(x);\n}\n} else {\nreturn x;\n}\n});\nmalli.core._guard \x3d (function malli$core$_guard(pred,tf){\nif(cljs.core.truth_(tf)){\nreturn (function (x){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x)))){\nreturn (tf.cljs$core$IFn$_invoke$arity$1 ? tf.cljs$core$IFn$_invoke$arity$1(x) : tf.call(null,x));\n} else {\nreturn x;\n}\n});\n} else {\nreturn null;\n}\n});\nmalli.core._unlift_keys \x3d (function malli$core$_unlift_keys(m,prefix){\nreturn cljs.core.reduce_kv((function (p1__43345_SHARP_,p2__43344_SHARP_,p3__43346_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.name(prefix),cljs.core.namespace(p2__43344_SHARP_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__43345_SHARP_,cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.name(p2__43344_SHARP_)),p3__43346_SHARP_);\n} else {\nreturn p1__43345_SHARP_;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n});\nmalli.core._check_children_QMARK_ \x3d (function malli$core$_check_children_QMARK_(){\nreturn true;\n});\nmalli.core._check_children_BANG_ \x3d (function malli$core$_check_children_BANG_(var_args){\nvar G__43360 \x3d arguments.length;\nswitch (G__43360) {\ncase 4:\nreturn malli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn malli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (type,properties,children,props){\nmalli.core._deprecated_BANG_(\x22use (m/-check-children! type properties children min max) instead.\x22);\n\nreturn malli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(type,properties,children,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522).cljs$core$IFn$_invoke$arity$1(props),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548).cljs$core$IFn$_invoke$arity$1(props));\n}));\n\n(malli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5 \x3d (function (type,properties,children,min,max){\nif(malli.core._check_children_QMARK_()){\nvar temp__5825__auto__ \x3d (function (){var and__5023__auto__ \x3d ((cljs.core.sequential_QMARK_(children)) || ((children \x3d\x3d null)));\nif(and__5023__auto__){\nreturn cljs.core.count(children);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar size \x3d temp__5825__auto__;\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d min;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (size \x3c min);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d max;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (size \x3e max);\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22child-error\x22,\x22malli.core/child-error\x22,-473817473),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552),properties,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(malli.core._check_children_BANG_.cljs$lang$maxFixedArity \x3d 5);\n\nmalli.core._pointer \x3d (function malli$core$_pointer(id,schema,options){\nreturn malli.core._into_schema((function (){var G__43367 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id], null);\nreturn (malli.core._schema_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._schema_schema.cljs$core$IFn$_invoke$arity$1(G__43367) : malli.core._schema_schema.call(null,G__43367));\n})(),null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [schema], null),options);\n});\nmalli.core._reference_QMARK_ \x3d (function malli$core$_reference_QMARK_(_QMARK_schema){\nreturn ((typeof _QMARK_schema \x3d\x3d\x3d \x27string\x27) || (((cljs.core.qualified_ident_QMARK_(_QMARK_schema)) || (cljs.core.var_QMARK_(_QMARK_schema)))));\n});\nmalli.core._lazy \x3d (function malli$core$_lazy(ref,options){\nreturn malli.core._into_schema((function (){var G__43375 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22lazy\x22,\x22lazy\x22,-424547181),true], null);\nreturn (malli.core._ref_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._ref_schema.cljs$core$IFn$_invoke$arity$1(G__43375) : malli.core._ref_schema.call(null,G__43375));\n})(),null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [ref], null),options);\n});\nmalli.core._boolean_fn \x3d (function malli$core$_boolean_fn(x){\nif(cljs.core.boolean_QMARK_(x)){\nreturn cljs.core.constantly(x);\n} else {\nif(cljs.core.ifn_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.constantly(false);\n\n}\n}\n});\nmalli.core._infer \x3d (function malli$core$_infer(children){\nvar G__43382 \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),cljs.core.string_QMARK_], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),cljs.core.keyword_QMARK_], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),cljs.core.symbol_QMARK_], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),cljs.core.int_QMARK_], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22double\x22,\x22double\x22,884886883),cljs.core.float_QMARK_], null)], null);\nvar vec__43385 \x3d G__43382;\nvar seq__43386 \x3d cljs.core.seq(vec__43385);\nvar first__43387 \x3d cljs.core.first(seq__43386);\nvar seq__43386__$1 \x3d cljs.core.next(seq__43386);\nvar vec__43388 \x3d first__43387;\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43388,(0),null);\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43388,(1),null);\nvar fs \x3d seq__43386__$1;\nvar G__43382__$1 \x3d G__43382;\nwhile(true){\nvar vec__43401 \x3d G__43382__$1;\nvar seq__43402 \x3d cljs.core.seq(vec__43401);\nvar first__43403 \x3d cljs.core.first(seq__43402);\nvar seq__43402__$1 \x3d cljs.core.next(seq__43402);\nvar vec__43404 \x3d first__43403;\nvar s__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43404,(0),null);\nvar f__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43404,(1),null);\nvar fs__$1 \x3d seq__43402__$1;\nif(cljs.core.every_QMARK_(f__$1,children)){\nreturn s__$1;\n} else {\nif(fs__$1){\nvar G__47261 \x3d fs__$1;\nG__43382__$1 \x3d G__47261;\ncontinue;\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nmalli.core._comp \x3d (function malli$core$_comp(var_args){\nvar G__43425 \x3d arguments.length;\nswitch (G__43425) {\ncase 0:\nreturn malli.core._comp.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._comp.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core._comp.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core._comp.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___47264 \x3d arguments.length;\nvar i__5750__auto___47265 \x3d (0);\nwhile(true){\nif((i__5750__auto___47265 \x3c len__5749__auto___47264)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___47265]));\n\nvar G__47266 \x3d (i__5750__auto___47265 + (1));\ni__5750__auto___47265 \x3d G__47266;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn malli.core._comp.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(malli.core._comp.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.identity;\n}));\n\n(malli.core._comp.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn f;\n}));\n\n(malli.core._comp.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,g){\nreturn (function (x){\nvar G__43432 \x3d (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(x) : g.call(null,x));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43432) : f.call(null,G__43432));\n});\n}));\n\n(malli.core._comp.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,g,h){\nreturn (function (x){\nvar G__43436 \x3d (function (){var G__43438 \x3d (h.cljs$core$IFn$_invoke$arity$1 ? h.cljs$core$IFn$_invoke$arity$1(x) : h.call(null,x));\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__43438) : g.call(null,G__43438));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43436) : f.call(null,G__43436));\n});\n}));\n\n(malli.core._comp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f1,f2,f3,fs){\nvar f4 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.core._comp,fs);\nreturn (function (x){\nvar G__43439 \x3d (function (){var G__43440 \x3d (function (){var G__43442 \x3d (f4.cljs$core$IFn$_invoke$arity$1 ? f4.cljs$core$IFn$_invoke$arity$1(x) : f4.call(null,x));\nreturn (f3.cljs$core$IFn$_invoke$arity$1 ? f3.cljs$core$IFn$_invoke$arity$1(G__43442) : f3.call(null,G__43442));\n})();\nreturn (f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(G__43440) : f2.call(null,G__43440));\n})();\nreturn (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(G__43439) : f1.call(null,G__43439));\n});\n}));\n\n/** @this {Function} */\n(malli.core._comp.cljs$lang$applyTo \x3d (function (seq43421){\nvar G__43422 \x3d cljs.core.first(seq43421);\nvar seq43421__$1 \x3d cljs.core.next(seq43421);\nvar G__43423 \x3d cljs.core.first(seq43421__$1);\nvar seq43421__$2 \x3d cljs.core.next(seq43421__$1);\nvar G__43424 \x3d cljs.core.first(seq43421__$2);\nvar seq43421__$3 \x3d cljs.core.next(seq43421__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__43422,G__43423,G__43424,seq43421__$3);\n}));\n\n(malli.core._comp.cljs$lang$maxFixedArity \x3d (3));\n\nmalli.core._update \x3d (function malli$core$_update(x,k,f){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,k,(function (){var G__43466 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43466) : f.call(null,G__43466));\n})());\n});\nmalli.core._equals \x3d (function malli$core$_equals(x,y){\nreturn (((x \x3d\x3d\x3d y)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)));\n});\nmalli.core._vmap \x3d (function malli$core$_vmap(var_args){\nvar G__43479 \x3d arguments.length;\nswitch (G__43479) {\ncase 1:\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._vmap.cljs$core$IFn$_invoke$arity$1 \x3d (function (os){\nreturn malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,os);\n}));\n\n(malli.core._vmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,os){\nreturn malli.impl.util._vmap.cljs$core$IFn$_invoke$arity$2(f,os);\n}));\n\n(malli.core._vmap.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core._memoize \x3d (function malli$core$_memoize(f){\nvar value \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nreturn (function (){\nvar or__5025__auto__ \x3d cljs.core.deref(value);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reset_BANG_(value,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}\n});\n});\nmalli.core._group_by_arity_BANG_ \x3d (function malli$core$_group_by_arity_BANG_(infos){\nvar aritys \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__43489){\nvar map__43490 \x3d p__43489;\nvar map__43490__$1 \x3d cljs.core.__destructure_map(map__43490);\nvar info \x3d map__43490__$1;\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43490__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43490__$1,new cljs.core.Keyword(null,\x22arity\x22,\x22arity\x22,-1808556135));\nvar vararg \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22varargs\x22,\x22varargs\x22,1030150858),arity);\nvar min__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d vararg;\nif(and__5023__auto__){\nvar fexpr__43492 \x3d cljs.core.deref(aritys);\nreturn (fexpr__43492.cljs$core$IFn$_invoke$arity$1 ? fexpr__43492.cljs$core$IFn$_invoke$arity$1(min) : fexpr__43492.call(null,min));\n} else {\nreturn and__5023__auto__;\n}\n})())?(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.int_QMARK_,cljs.core.deref(aritys))) + (1)):min);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d vararg;\nif(and__5023__auto__){\nvar fexpr__43494 \x3d cljs.core.deref(aritys);\nreturn (fexpr__43494.cljs$core$IFn$_invoke$arity$1 ? fexpr__43494.cljs$core$IFn$_invoke$arity$1(arity) : fexpr__43494.call(null,arity));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22multiple-varargs\x22,\x22malli.core/multiple-varargs\x22,1982057671),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22infos\x22,\x22infos\x22,-927309652),infos], null));\n} else {\nif(cljs.core.truth_((function (){var fexpr__43496 \x3d cljs.core.deref(aritys);\nreturn (fexpr__43496.cljs$core$IFn$_invoke$arity$1 ? fexpr__43496.cljs$core$IFn$_invoke$arity$1(min__$1) : fexpr__43496.call(null,min__$1));\n})())){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22duplicate-arities\x22,\x22malli.core/duplicate-arities\x22,-374423504),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22infos\x22,\x22infos\x22,-927309652),infos], null));\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(aritys,cljs.core.conj,arity);\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,arity,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(info,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min__$1));\n\n}\n}\n}),cljs.core.PersistentArrayMap.EMPTY,infos);\n});\nmalli.core._re_min_max \x3d (function malli$core$_re_min_max(f,p__43506,child){\nvar map__43507 \x3d p__43506;\nvar map__43507__$1 \x3d cljs.core.__destructure_map(map__43507);\nvar min_SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43507__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max_SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43507__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar map__43510 \x3d malli.core._regex_min_max(child,true);\nvar map__43510__$1 \x3d cljs.core.__destructure_map(map__43510);\nvar min_SINGLEQUOTE__SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43510__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max_SINGLEQUOTE__SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43510__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar G__43512 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(function (){var G__43516 \x3d (function (){var or__5025__auto__ \x3d min_SINGLEQUOTE_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar G__43517 \x3d min_SINGLEQUOTE__SINGLEQUOTE_;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__43516,G__43517) : f.call(null,G__43516,G__43517));\n})()], null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d max_SINGLEQUOTE_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn max_SINGLEQUOTE__SINGLEQUOTE_;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__43512,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(max_SINGLEQUOTE_,max_SINGLEQUOTE__SINGLEQUOTE_) : f.call(null,max_SINGLEQUOTE_,max_SINGLEQUOTE__SINGLEQUOTE_)));\n} else {\nreturn G__43512;\n}\n});\nmalli.core._re_alt_min_max \x3d (function malli$core$_re_alt_min_max(p__43520,child){\nvar map__43522 \x3d p__43520;\nvar map__43522__$1 \x3d cljs.core.__destructure_map(map__43522);\nvar min_SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43522__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max_SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43522__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar map__43523 \x3d malli.core._regex_min_max(child,true);\nvar map__43523__$1 \x3d cljs.core.__destructure_map(map__43523);\nvar min_SINGLEQUOTE__SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43523__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max_SINGLEQUOTE__SINGLEQUOTE_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43523__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar G__43524 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(function (){var x__5113__auto__ \x3d (function (){var or__5025__auto__ \x3d min_SINGLEQUOTE_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.impl.util._PLUS_max_size_PLUS_;\n}\n})();\nvar y__5114__auto__ \x3d min_SINGLEQUOTE__SINGLEQUOTE_;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})()], null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d max_SINGLEQUOTE_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn max_SINGLEQUOTE__SINGLEQUOTE_;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__43524,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(function (){var x__5110__auto__ \x3d max_SINGLEQUOTE_;\nvar y__5111__auto__ \x3d max_SINGLEQUOTE__SINGLEQUOTE_;\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})());\n} else {\nreturn G__43524;\n}\n});\nmalli.core._register_var \x3d (function malli$core$_register_var(var_args){\nvar G__43528 \x3d arguments.length;\nswitch (G__43528) {\ncase 3:\nreturn malli.core._register_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core._register_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._register_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (registry,vname,vval){\nreturn malli.core._register_var.cljs$core$IFn$_invoke$arity$4(registry,vname,vval,vval);\n}));\n\n(malli.core._register_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (registry,vname,vval,pred){\nvar schema \x3d (function (){var G__43535 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),vname,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred], null);\nreturn (malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1(G__43535) : malli.core._simple_schema.call(null,G__43535));\n})();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(registry,vname,schema),vval,schema);\n}));\n\n(malli.core._register_var.cljs$lang$maxFixedArity \x3d 4);\n\nmalli.core._registry \x3d (function malli$core$_registry(var_args){\nvar G__43539 \x3d arguments.length;\nswitch (G__43539) {\ncase 0:\nreturn malli.core._registry.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._registry.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._registry.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core.default_registry;\n}));\n\n(malli.core._registry.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nvar or__5025__auto__ \x3d (cljs.core.truth_(opts)?malli.registry.registry((opts.cljs$core$IFn$_invoke$arity$1 ? opts.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018)) : opts.call(null,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018)))):null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core.default_registry;\n}\n}));\n\n(malli.core._registry.cljs$lang$maxFixedArity \x3d 1);\n\nmalli.core._property_registry \x3d (function malli$core$_property_registry(m,options,f){\nvar options__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(options,new cljs.core.Keyword(\x22malli.core\x22,\x22allow-invalid-refs\x22,\x22malli.core/allow-invalid-refs\x22,-1863169617),true);\nreturn cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,(function (){var G__43547 \x3d (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(v,options__$1) : malli.core.schema.call(null,v,options__$1));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43547) : f.call(null,G__43547));\n})());\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n});\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core43551 \x3d (function (m,f,acc,k,v,meta43552){\nthis.m \x3d m;\nthis.f \x3d f;\nthis.acc \x3d acc;\nthis.k \x3d k;\nthis.v \x3d v;\nthis.meta43552 \x3d meta43552;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core43551.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43553,meta43552__$1){\nvar self__ \x3d this;\nvar _43553__$1 \x3d this;\nreturn (new malli.core.t_malli$core43551(self__.m,self__.f,self__.acc,self__.k,self__.v,meta43552__$1));\n}));\n\n(malli.core.t_malli$core43551.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43553){\nvar self__ \x3d this;\nvar _43553__$1 \x3d this;\nreturn self__.meta43552;\n}));\n\n(malli.core.t_malli$core43551.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core43551.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (_,___$1,___$2,options){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn (self__.f.cljs$core$IFn$_invoke$arity$2 ? self__.f.cljs$core$IFn$_invoke$arity$2(self__.v,options) : self__.f.call(null,self__.v,options));\n}));\n\n(malli.core.t_malli$core43551.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null),new cljs.core.Symbol(null,\x22meta43552\x22,\x22meta43552\x22,1194918029,null)], null);\n}));\n\n(malli.core.t_malli$core43551.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core43551.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core43551\x22);\n\n(malli.core.t_malli$core43551.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core43551\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core43551.\n */\nmalli.core.__GT_t_malli$core43551 \x3d (function malli$core$__GT_t_malli$core43551(m,f,acc,k,v,meta43552){\nreturn (new malli.core.t_malli$core43551(m,f,acc,k,v,meta43552));\n});\n\n\nmalli.core._delayed_registry \x3d (function malli$core$_delayed_registry(m,f){\nreturn cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,(new malli.core.t_malli$core43551(m,f,acc,k,v,cljs.core.PersistentArrayMap.EMPTY)));\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n});\nmalli.core._lookup \x3d (function malli$core$_lookup(_QMARK_schema,options){\nvar registry \x3d malli.core._registry.cljs$core$IFn$_invoke$arity$1(options);\nvar or__5025__auto__ \x3d malli.registry._schema(registry,_QMARK_schema);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5829__auto__ \x3d (function (){var G__43572 \x3d registry;\nif((G__43572 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.registry._schema(G__43572,cljs.core.type(_QMARK_schema));\n}\n})();\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar p \x3d temp__5829__auto__;\nif(cljs.core.truth_((malli.core.schema_QMARK_.cljs$core$IFn$_invoke$arity$1 ? malli.core.schema_QMARK_.cljs$core$IFn$_invoke$arity$1(_QMARK_schema) : malli.core.schema_QMARK_.call(null,_QMARK_schema)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p,malli.core._parent(_QMARK_schema))){\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22infinitely-expanding-schema\x22,\x22malli.core/infinitely-expanding-schema\x22,-827169082),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),_QMARK_schema], null));\n} else {\n}\n} else {\n}\n\nreturn malli.core._into_schema(p,null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_schema], null),options);\n}\n}\n});\nmalli.core._lookup_BANG_ \x3d (function malli$core$_lookup_BANG_(_QMARK_schema,_QMARK_form,f,rec,options){\nwhile(true){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d f;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(_QMARK_schema) : f.call(null,_QMARK_schema));\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn _QMARK_schema;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5823__auto__ \x3d malli.core._lookup(_QMARK_schema,options);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar _QMARK_schema__$1 \x3d temp__5823__auto__;\nvar G__43578 \x3d _QMARK_schema__$1;\nif(cljs.core.truth_(rec)){\nvar G__47304 \x3d G__43578;\nvar G__47305 \x3d _QMARK_form;\nvar G__47306 \x3d f;\nvar G__47307 \x3d rec;\nvar G__47308 \x3d options;\n_QMARK_schema \x3d G__47304;\n_QMARK_form \x3d G__47305;\nf \x3d G__47306;\nrec \x3d G__47307;\noptions \x3d G__47308;\ncontinue;\n} else {\nreturn G__43578;\n}\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-schema\x22,\x22malli.core/invalid-schema\x22,1923990979),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),_QMARK_schema,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),_QMARK_form], null));\n}\n}\nbreak;\n}\n});\nmalli.core._properties_and_options \x3d (function malli$core$_properties_and_options(properties,options,f){\nvar temp__5823__auto__ \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(properties);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar r \x3d temp__5823__auto__;\nvar options__$1 \x3d malli.core._update(options,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),(function (p1__43579_SHARP_){\nreturn malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r,(function (){var or__5025__auto__ \x3d p1__43579_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._registry.cljs$core$IFn$_invoke$arity$1(options);\n}\n})()], 0));\n}));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(properties,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),malli.core._property_registry(r,options__$1,f)),options__$1], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [properties,options], null);\n}\n});\nmalli.core._create_cache \x3d (function malli$core$_create_cache(_options){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\nmalli.core._cached \x3d (function malli$core$_cached(s,k,f){\nif(malli.core._cached_QMARK_(s)){\nvar c \x3d malli.core._cache(s);\nvar or__5025__auto__ \x3d (function (){var fexpr__43606 \x3d cljs.core.deref(c);\nreturn (fexpr__43606.cljs$core$IFn$_invoke$arity$1 ? fexpr__43606.cljs$core$IFn$_invoke$arity$1(k) : fexpr__43606.call(null,k));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar fexpr__43607 \x3d cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(c,cljs.core.assoc,k,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(s) : f.call(null,s)));\nreturn (fexpr__43607.cljs$core$IFn$_invoke$arity$1 ? fexpr__43607.cljs$core$IFn$_invoke$arity$1(k) : fexpr__43607.call(null,k));\n}\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(s) : f.call(null,s));\n}\n});\nmalli.core._raw_form \x3d (function malli$core$_raw_form(type,properties,children){\nvar has_children \x3d cljs.core.seq(children);\nvar has_properties \x3d cljs.core.seq(properties);\nif(((has_properties) \x26\x26 (has_children))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type,properties], null),children);\n} else {\nif(has_properties){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type,properties], null);\n} else {\nif(has_children){\nvar fchild \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(children,(0));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,(function (){var G__43616 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [type], null);\nif(((cljs.core.map_QMARK_(fchild)) || ((fchild \x3d\x3d null)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__43616,null);\n} else {\nreturn G__43616;\n}\n})(),children);\n} else {\nreturn type;\n\n}\n}\n}\n});\nmalli.core._create_form \x3d (function malli$core$_create_form(type,properties,children,options){\nvar properties__$1 \x3d ((cljs.core.seq(properties))?(function (){var registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(properties);\nvar G__43620 \x3d properties;\nif(cljs.core.truth_(registry)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__43620,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),malli.core._property_registry(registry,options,malli.core._form));\n} else {\nreturn G__43620;\n}\n})():null);\nreturn malli.core._raw_form(type,properties__$1,children);\n});\nmalli.core._simple_form \x3d (function malli$core$_simple_form(parent,properties,children,f,options){\nreturn malli.core._create_form(malli.core._type(parent),properties,malli.core._vmap.cljs$core$IFn$_invoke$arity$2(f,children),options);\n});\nmalli.core._create_entry_form \x3d (function malli$core$_create_entry_form(parent,properties,entry_parser,options){\nreturn malli.core._create_form(malli.core._type(parent),properties,malli.core._entry_forms(entry_parser),options);\n});\nmalli.core._inner_indexed \x3d (function malli$core$_inner_indexed(walker,path,children,options){\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__43627){\nvar vec__43629 \x3d p__43627;\nvar i \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43629,(0),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43629,(1),null);\nreturn malli.core._inner(walker,c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i),options);\n}),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,children));\n});\nmalli.core._inner_entries \x3d (function malli$core$_inner_entries(walker,path,entries,options){\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__43633){\nvar vec__43634 \x3d p__43633;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43634,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43634,(1),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._properties(s),malli.core._inner(walker,s,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),options)], null);\n}),entries);\n});\nmalli.core._walk_entries \x3d (function malli$core$_walk_entries(schema,walker,path,options){\nif(cljs.core.truth_(malli.core._accept(walker,schema,path,options))){\nreturn malli.core._outer(walker,schema,path,malli.core._inner_entries(walker,path,malli.core._entries(schema),options),options);\n} else {\nreturn null;\n}\n});\nmalli.core._walk_indexed \x3d (function malli$core$_walk_indexed(schema,walker,path,options){\nif(cljs.core.truth_(malli.core._accept(walker,schema,path,options))){\nreturn malli.core._outer(walker,schema,path,malli.core._inner_indexed(walker,path,malli.core._children(schema),options),options);\n} else {\nreturn null;\n}\n});\nmalli.core._walk_leaf \x3d (function malli$core$_walk_leaf(schema,walker,path,options){\nif(cljs.core.truth_(malli.core._accept(walker,schema,path,options))){\nreturn malli.core._outer(walker,schema,path,malli.core._children(schema),options);\n} else {\nreturn null;\n}\n});\nmalli.core._set_children \x3d (function malli$core$_set_children(schema,children){\nif(malli.core._equals(children,malli.core._children(schema))){\nreturn schema;\n} else {\nreturn malli.core._into_schema(malli.core._parent(schema),malli.core._properties(schema),children,malli.core._options(schema));\n}\n});\nmalli.core._set_properties \x3d (function malli$core$_set_properties(schema,properties){\nif(malli.core._equals(properties,malli.core._properties(schema))){\nreturn schema;\n} else {\nreturn malli.core._into_schema(malli.core._parent(schema),properties,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d malli.core._entry_schema_QMARK_(schema);\nif(and__5023__auto__){\nreturn malli.core._entry_parser(schema);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._children(schema);\n}\n})(),malli.core._options(schema));\n}\n});\nmalli.core._update_properties \x3d (function malli$core$_update_properties(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___47319 \x3d arguments.length;\nvar i__5750__auto___47320 \x3d (0);\nwhile(true){\nif((i__5750__auto___47320 \x3c len__5749__auto___47319)){\nargs__5755__auto__.push((arguments[i__5750__auto___47320]));\n\nvar G__47321 \x3d (i__5750__auto___47320 + (1));\ni__5750__auto___47320 \x3d G__47321;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn malli.core._update_properties.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(malli.core._update_properties.cljs$core$IFn$_invoke$arity$variadic \x3d (function (schema,f,args){\nreturn malli.core._set_properties(schema,cljs.core.not_empty(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,malli.core._properties(schema),args)));\n}));\n\n(malli.core._update_properties.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(malli.core._update_properties.cljs$lang$applyTo \x3d (function (seq43654){\nvar G__43655 \x3d cljs.core.first(seq43654);\nvar seq43654__$1 \x3d cljs.core.next(seq43654);\nvar G__43656 \x3d cljs.core.first(seq43654__$1);\nvar seq43654__$2 \x3d cljs.core.next(seq43654__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__43655,G__43656,seq43654__$2);\n}));\n\nmalli.core._update_options \x3d (function malli$core$_update_options(schema,f){\nreturn malli.core._into_schema(malli.core._parent(schema),malli.core._properties(schema),malli.core._children(schema),(function (){var G__43674 \x3d malli.core._options(schema);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43674) : f.call(null,G__43674));\n})());\n});\nmalli.core._set_assoc_children \x3d (function malli$core$_set_assoc_children(schema,key,value){\nreturn malli.core._set_children(schema,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(malli.core._children(schema),key,value));\n});\nmalli.core._get_entries \x3d (function malli$core$_get_entries(schema,key,default$){\nvar or__5025__auto__ \x3d cljs.core.some(((((cljs.core.vector_QMARK_(key)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22find\x22,\x22malli.core/find\x22,163301512),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(key,(0))))))?(function (e){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(0)),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(key,(1)))){\nreturn e;\n} else {\nreturn null;\n}\n}):(function (e){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(0)),key)){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(2));\n} else {\nreturn null;\n}\n})),malli.core._children(schema));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn default$;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.EntryParser}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core43692 \x3d (function (keyset,children,forms,entries,meta43693){\nthis.keyset \x3d keyset;\nthis.children \x3d children;\nthis.forms \x3d forms;\nthis.entries \x3d entries;\nthis.meta43693 \x3d meta43693;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core43692.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43694,meta43693__$1){\nvar self__ \x3d this;\nvar _43694__$1 \x3d this;\nreturn (new malli.core.t_malli$core43692(self__.keyset,self__.children,self__.forms,self__.entries,meta43693__$1));\n}));\n\n(malli.core.t_malli$core43692.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43694){\nvar self__ \x3d this;\nvar _43694__$1 \x3d this;\nreturn self__.meta43693;\n}));\n\n(malli.core.t_malli$core43692.prototype.malli$core$EntryParser$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core43692.prototype.malli$core$EntryParser$_entry_keyset$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.keyset;\n}));\n\n(malli.core.t_malli$core43692.prototype.malli$core$EntryParser$_entry_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core43692.prototype.malli$core$EntryParser$_entry_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.entries;\n}));\n\n(malli.core.t_malli$core43692.prototype.malli$core$EntryParser$_entry_forms$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.forms;\n}));\n\n(malli.core.t_malli$core43692.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22keyset\x22,\x22keyset\x22,2135291099,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22entries\x22,\x22entries\x22,1553588366,null),new cljs.core.Symbol(null,\x22meta43693\x22,\x22meta43693\x22,-1237482688,null)], null);\n}));\n\n(malli.core.t_malli$core43692.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core43692.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core43692\x22);\n\n(malli.core.t_malli$core43692.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core43692\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core43692.\n */\nmalli.core.__GT_t_malli$core43692 \x3d (function malli$core$__GT_t_malli$core43692(keyset,children,forms,entries,meta43693){\nreturn (new malli.core.t_malli$core43692(keyset,children,forms,entries,meta43693));\n});\n\n\nmalli.core._simple_entry_parser \x3d (function malli$core$_simple_entry_parser(keyset,children,forms){\nvar entries \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__43687){\nvar vec__43689 \x3d p__43687;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43689,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43689,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43689,(2),null);\nreturn malli.impl.util._entry(k,(malli.core._val_schema.cljs$core$IFn$_invoke$arity$2 ? malli.core._val_schema.cljs$core$IFn$_invoke$arity$2(s,p) : malli.core._val_schema.call(null,s,p)));\n}),children);\nreturn (new malli.core.t_malli$core43692(keyset,children,forms,entries,cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.core._update_parsed \x3d (function malli$core$_update_parsed(entry_parser,_QMARK_key,value,options){\nvar vec__43716 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.vector_QMARK_(_QMARK_key);\nif(and__5023__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(_QMARK_key,(0));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.cons(true,_QMARK_key):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,_QMARK_key], null));\nvar override \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43716,(0),null);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43716,(1),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43716,(2),null);\nvar keyset \x3d malli.core._entry_keyset(entry_parser);\nvar children \x3d malli.core._entry_children(entry_parser);\nvar forms \x3d malli.core._entry_forms(entry_parser);\nvar s \x3d (cljs.core.truth_(value)?(malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(value,options) : malli.core.schema.call(null,value,options)):null);\nvar i \x3d new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256).cljs$core$IFn$_invoke$arity$1((keyset.cljs$core$IFn$_invoke$arity$1 ? keyset.cljs$core$IFn$_invoke$arity$1(k) : keyset.call(null,k)));\nif((s \x3d\x3d null)){\nvar cut \x3d (function malli$core$_update_parsed_$_cut(v){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(v,(0),i),cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(i + (1))));\n});\nreturn malli.core._simple_entry_parser(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(keyset,k),cut(children),cut(forms));\n} else {\nvar p__$1 \x3d (cljs.core.truth_(i)?(cljs.core.truth_(override)?p:cljs.core.nth.cljs$core$IFn$_invoke$arity$2((children.cljs$core$IFn$_invoke$arity$1 ? children.cljs$core$IFn$_invoke$arity$1(i) : children.call(null,i)),(1))):p);\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,p__$1,s], null);\nvar f \x3d ((cljs.core.seq(p__$1))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,p__$1,malli.core._form(s)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._form(s)], null));\nif(cljs.core.truth_(i)){\nreturn malli.core._simple_entry_parser(keyset,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(children,i,c),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(forms,i,f));\n} else {\nreturn malli.core._simple_entry_parser(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(keyset,k,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.count(keyset)], null)),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(children,c),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(forms,f));\n}\n}\n});\nmalli.core._set_entries \x3d (function malli$core$_set_entries(schema,_QMARK_key,value){\nvar temp__5823__auto__ \x3d malli.core._entry_parser(schema);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar entry_parser \x3d temp__5823__auto__;\nreturn malli.core._set_children(schema,malli.core._update_parsed(entry_parser,_QMARK_key,value,malli.core._options(schema)));\n} else {\nvar found \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar vec__43752 \x3d ((cljs.core.vector_QMARK_(_QMARK_key))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.nth.cljs$core$IFn$_invoke$arity$2(_QMARK_key,(0)),cljs.core.second(_QMARK_key),true], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_key], null));\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43752,(0),null);\nvar props \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43752,(1),null);\nvar override \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43752,(2),null);\nvar children \x3d (function (){var G__43760 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__43761){\nvar vec__43762 \x3d p__43761;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43762,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43762,(1),null);\nvar entry \x3d vec__43762;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,k)){\ncljs.core.reset_BANG_(found,true);\n\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [key,(cljs.core.truth_(override)?props:p),value], null);\n} else {\nreturn entry;\n}\n}),malli.core._children(schema));\nvar G__43760__$1 \x3d ((cljs.core.not(cljs.core.deref(found)))?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__43760,(cljs.core.truth_(key)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [key,props,value], null):malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22malli.core\x22,\x22key-missing\x22,\x22malli.core/key-missing\x22,-161579801)))):G__43760);\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (e){\nreturn (!((cljs.core.last(e) \x3d\x3d null)));\n}),G__43760__$1);\n\n})();\nreturn malli.core._set_children(schema,children);\n}\n});\nmalli.core._parse_entry \x3d (function malli$core$_parse_entry(e,naked_keys,lazy_refs,options,i,_children,_forms,_keyset){\nvar _collect \x3d (function malli$core$_parse_entry_$__collect(k,c,f,i__$1){\nvar i__$2 \x3d (i__$1 | (0));\n(_keyset[((2) * i__$2)] \x3d k);\n\n(_keyset[(((2) * i__$2) + (1))] \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),i__$2], null));\n\n(_children[i__$2] \x3d c);\n\n(_forms[i__$2] \x3d f);\n\nreturn (i__$2 + (1));\n});\nvar _schema \x3d (function malli$core$_parse_entry_$__schema(e__$1){\nvar G__43806 \x3d (function (){var G__43809 \x3d e__$1;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d malli.core._reference_QMARK_(e__$1);\nif(and__5023__auto__){\nreturn lazy_refs;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn malli.core._lazy(G__43809,options);\n} else {\nreturn G__43809;\n}\n})();\nvar G__43807 \x3d options;\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(G__43806,G__43807) : malli.core.schema.call(null,G__43806,G__43807));\n});\nvar _parse_ref_entry \x3d (function malli$core$_parse_entry_$__parse_ref_entry(e__$1){\nvar s \x3d _schema(e__$1);\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,null,s], null);\nreturn _collect(e__$1,c,e__$1,i);\n});\nvar _parse_ref_vector1 \x3d (function malli$core$_parse_entry_$__parse_ref_vector1(e__$1,e0){\nvar s \x3d _schema(e0);\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,null,s], null);\nreturn _collect(e0,c,e__$1,i);\n});\nvar _parse_ref_vector2 \x3d (function malli$core$_parse_entry_$__parse_ref_vector2(e__$1,e0,e1){\nvar s \x3d _schema(e0);\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,e1,s], null);\nreturn _collect(e0,c,e__$1,i);\n});\nvar _parse_entry_else2 \x3d (function malli$core$_parse_entry_$__parse_entry_else2(e0,e1){\nvar s \x3d _schema(e1);\nvar f \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,malli.core._form(s)], null);\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,null,s], null);\nreturn _collect(e0,c,f,i);\n});\nvar _parse_entry_else3 \x3d (function malli$core$_parse_entry_$__parse_entry_else3(e0,e1,e2){\nvar s \x3d _schema(e2);\nvar f_SINGLEQUOTE_ \x3d malli.core._form(s);\nvar f \x3d (cljs.core.truth_(e1)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,e1,f_SINGLEQUOTE_], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,f_SINGLEQUOTE_], null));\nvar c \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e0,e1,s], null);\nreturn _collect(e0,c,f,i);\n});\nif(cljs.core.vector_QMARK_(e)){\nvar ea \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(e);\nvar n \x3d ea.length;\nvar e0 \x3d (ea[(0)]);\nif((n \x3d\x3d\x3d (1))){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d malli.core._reference_QMARK_(e0);\nif(and__5023__auto__){\nreturn naked_keys;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn _parse_ref_vector1(e,e0);\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-entry\x22,\x22malli.core/invalid-entry\x22,-1401097281),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22entry\x22,\x22entry\x22,505168823),e], null));\n}\n} else {\nvar e1 \x3d (ea[(1)]);\nif((n \x3d\x3d\x3d (2))){\nif(((malli.core._reference_QMARK_(e0)) \x26\x26 (cljs.core.map_QMARK_(e1)))){\nif(cljs.core.truth_(naked_keys)){\nreturn _parse_ref_vector2(e,e0,e1);\n} else {\nreturn i;\n}\n} else {\nreturn _parse_entry_else2(e0,e1);\n}\n} else {\nvar e2 \x3d (ea[(2)]);\nreturn _parse_entry_else3(e0,e1,e2);\n}\n}\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d naked_keys;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn malli.core._reference_QMARK_(e);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn _parse_ref_entry(e);\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-entry\x22,\x22malli.core/invalid-entry\x22,-1401097281),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22entry\x22,\x22entry\x22,505168823),e], null));\n}\n}\n});\nmalli.core._eager_entry_parser \x3d (function malli$core$_eager_entry_parser(children,props,options){\nvar _vec \x3d (function malli$core$_eager_entry_parser_$__vec(arr){\nreturn cljs.core.vec(arr);\n});\nvar _map \x3d (function malli$core$_eager_entry_parser_$__map(arr){\nvar m \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.array_map,arr);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) * cljs.core.count(m)),cljs.core.count(arr))){\n} else {\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22duplicate-keys\x22,\x22malli.core/duplicate-keys\x22,1684166326),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22arr\x22,\x22arr\x22,474961448),arr], null));\n}\n\nreturn m;\n});\nvar _arange \x3d (function malli$core$_eager_entry_parser_$__arange(arr,to){\nreturn arr.slice((0),to);\n});\nvar map__43841 \x3d props;\nvar map__43841__$1 \x3d cljs.core.__destructure_map(map__43841);\nvar naked_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43841__$1,new cljs.core.Keyword(null,\x22naked-keys\x22,\x22naked-keys\x22,-90769828));\nvar lazy_refs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43841__$1,new cljs.core.Keyword(null,\x22lazy-refs\x22,\x22lazy-refs\x22,409178818));\nvar ca \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(children);\nvar n \x3d ca.length;\nvar _children \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(n);\nvar _forms \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(n);\nvar _keyset \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(((2) * n));\nvar i \x3d ((0) | (0));\nvar ci \x3d ((0) | (0));\nwhile(true){\nif((ci \x3d\x3d\x3d n)){\nvar f \x3d (((ci \x3d\x3d\x3d i))?_vec:((function (i,ci,map__43841,map__43841__$1,naked_keys,lazy_refs,ca,n,_children,_forms,_keyset){\nreturn (function (p1__43829_SHARP_){\nreturn _vec(_arange(p1__43829_SHARP_,i));\n});})(i,ci,map__43841,map__43841__$1,naked_keys,lazy_refs,ca,n,_children,_forms,_keyset))\n);\nreturn malli.core._simple_entry_parser(_map(_keyset),f(_children),f(_forms));\n} else {\nvar G__47358 \x3d (malli.core._parse_entry((ca[i]),naked_keys,lazy_refs,options,i,_children,_forms,_keyset) | (0));\nvar G__47359 \x3d (ci + (1));\ni \x3d G__47358;\nci \x3d G__47359;\ncontinue;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.EntryParser}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core43863 \x3d (function (_QMARK_children,props,options,parser,meta43864){\nthis._QMARK_children \x3d _QMARK_children;\nthis.props \x3d props;\nthis.options \x3d options;\nthis.parser \x3d parser;\nthis.meta43864 \x3d meta43864;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core43863.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43865,meta43864__$1){\nvar self__ \x3d this;\nvar _43865__$1 \x3d this;\nreturn (new malli.core.t_malli$core43863(self__._QMARK_children,self__.props,self__.options,self__.parser,meta43864__$1));\n}));\n\n(malli.core.t_malli$core43863.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43865){\nvar self__ \x3d this;\nvar _43865__$1 \x3d this;\nreturn self__.meta43864;\n}));\n\n(malli.core.t_malli$core43863.prototype.malli$core$EntryParser$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core43863.prototype.malli$core$EntryParser$_entry_keyset$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_keyset(cljs.core.deref(self__.parser));\n}));\n\n(malli.core.t_malli$core43863.prototype.malli$core$EntryParser$_entry_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_children(cljs.core.deref(self__.parser));\n}));\n\n(malli.core.t_malli$core43863.prototype.malli$core$EntryParser$_entry_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_entries(cljs.core.deref(self__.parser));\n}));\n\n(malli.core.t_malli$core43863.prototype.malli$core$EntryParser$_entry_forms$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_forms(cljs.core.deref(self__.parser));\n}));\n\n(malli.core.t_malli$core43863.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22?children\x22,\x22?children\x22,2075030425,null),new cljs.core.Symbol(null,\x22props\x22,\x22props\x22,2093813254,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22parser\x22,\x22parser\x22,97036217,null),new cljs.core.Symbol(null,\x22meta43864\x22,\x22meta43864\x22,-1402165344,null)], null);\n}));\n\n(malli.core.t_malli$core43863.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core43863.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core43863\x22);\n\n(malli.core.t_malli$core43863.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core43863\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core43863.\n */\nmalli.core.__GT_t_malli$core43863 \x3d (function malli$core$__GT_t_malli$core43863(_QMARK_children,props,options,parser,meta43864){\nreturn (new malli.core.t_malli$core43863(_QMARK_children,props,options,parser,meta43864));\n});\n\n\nmalli.core._lazy_entry_parser \x3d (function malli$core$_lazy_entry_parser(_QMARK_children,props,options){\nvar parser \x3d (new cljs.core.Delay((function (){\nreturn malli.core._eager_entry_parser(_QMARK_children,props,options);\n}),null));\nreturn (new malli.core.t_malli$core43863(_QMARK_children,props,options,parser,cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.core._create_entry_parser \x3d (function malli$core$_create_entry_parser(_QMARK_children,props,options){\nif(malli.core._entry_parser_QMARK_(_QMARK_children)){\nreturn _QMARK_children;\n} else {\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22lazy\x22,\x22lazy\x22,-424547181).cljs$core$IFn$_invoke$arity$1(props);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22lazy-entries\x22,\x22malli.core/lazy-entries\x22,762112361).cljs$core$IFn$_invoke$arity$1(options);\n}\n})())){\nreturn malli.core._lazy_entry_parser(_QMARK_children,props,options);\n} else {\nreturn malli.core._eager_entry_parser(_QMARK_children,props,options);\n\n}\n}\n});\nmalli.core._default_entry \x3d (function malli$core$_default_entry(e){\nreturn malli.core._equals(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(0)),new cljs.core.Keyword(\x22malli.core\x22,\x22default\x22,\x22malli.core/default\x22,-1706204176));\n});\nmalli.core._default_entry_schema \x3d (function malli$core$_default_entry_schema(children){\nreturn cljs.core.some((function (e){\nif(malli.core._default_entry(e)){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(2));\n} else {\nreturn null;\n}\n}),children);\n});\n\n/**\n* @constructor\n * @implements {malli.core.Transformer}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core43913 \x3d (function (meta43914){\nthis.meta43914 \x3d meta43914;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core43913.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43915,meta43914__$1){\nvar self__ \x3d this;\nvar _43915__$1 \x3d this;\nreturn (new malli.core.t_malli$core43913(meta43914__$1));\n}));\n\n(malli.core.t_malli$core43913.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43915){\nvar self__ \x3d this;\nvar _43915__$1 \x3d this;\nreturn self__.meta43914;\n}));\n\n(malli.core.t_malli$core43913.prototype.malli$core$Transformer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core43913.prototype.malli$core$Transformer$_transformer_chain$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core43913.prototype.malli$core$Transformer$_value_transformer$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core43913.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43914\x22,\x22meta43914\x22,88343380,null)], null);\n}));\n\n(malli.core.t_malli$core43913.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core43913.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core43913\x22);\n\n(malli.core.t_malli$core43913.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core43913\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core43913.\n */\nmalli.core.__GT_t_malli$core43913 \x3d (function malli$core$__GT_t_malli$core43913(meta43914){\nreturn (new malli.core.t_malli$core43913(meta43914));\n});\n\n\nmalli.core._no_op_transformer \x3d (function malli$core$_no_op_transformer(){\nreturn (new malli.core.t_malli$core43913(cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.core._intercepting \x3d (function malli$core$_intercepting(var_args){\nvar G__43936 \x3d arguments.length;\nswitch (G__43936) {\ncase 1:\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._intercepting.cljs$core$IFn$_invoke$arity$1 \x3d (function (interceptor){\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(interceptor,null);\n}));\n\n(malli.core._intercepting.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__43947,f){\nvar map__43948 \x3d p__43947;\nvar map__43948__$1 \x3d cljs.core.__destructure_map(map__43948);\nvar enter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43948__$1,new cljs.core.Keyword(null,\x22enter\x22,\x22enter\x22,1792452624));\nvar leave \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43948__$1,new cljs.core.Keyword(null,\x22leave\x22,\x22leave\x22,1022579443));\nvar G__43949 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [leave,f,enter], null);\nvar G__43949__$1 \x3d (((G__43949 \x3d\x3d null))?null:cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,G__43949));\nvar G__43949__$2 \x3d (((G__43949__$1 \x3d\x3d null))?null:cljs.core.seq(G__43949__$1));\nif((G__43949__$2 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.core._comp,G__43949__$2);\n}\n}));\n\n(malli.core._intercepting.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core._into_transformer \x3d (function malli$core$_into_transformer(x){\nif(malli.core._transformer_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.fn_QMARK_(x)){\nvar G__43955 \x3d (x.cljs$core$IFn$_invoke$arity$0 ? x.cljs$core$IFn$_invoke$arity$0() : x.call(null));\nreturn (malli.core._into_transformer.cljs$core$IFn$_invoke$arity$1 ? malli.core._into_transformer.cljs$core$IFn$_invoke$arity$1(G__43955) : malli.core._into_transformer.call(null,G__43955));\n} else {\nif((x \x3d\x3d null)){\nreturn malli.core._no_op_transformer();\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-transformer\x22,\x22malli.core/invalid-transformer\x22,962129811),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x], null));\n\n}\n}\n}\n});\nmalli.core._parent_children_transformer \x3d (function malli$core$_parent_children_transformer(parent,children,transformer,method,options){\nvar parent_transformer \x3d malli.core._value_transformer(transformer,parent,method,options);\nvar child_transformers \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.keep.cljs$core$IFn$_invoke$arity$1((function (p1__43966_SHARP_){\nreturn malli.core._transformer(p1__43966_SHARP_,transformer,method,options);\n})),children);\nvar child_transformer \x3d ((cljs.core.seq(child_transformers))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.core._comp,cljs.core.rseq(child_transformers)):null);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(parent_transformer,child_transformer);\n});\nmalli.core._map_transformer \x3d (function malli$core$_map_transformer(ts){\nreturn (function (x){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function malli$core$_map_transformer_$_child_transformer(m,p__43976){\nvar vec__43978 \x3d p__43976;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43978,(0),null);\nvar t \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43978,(1),null);\nvar temp__5823__auto__ \x3d cljs.core.find(m,k);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar entry \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__43982 \x3d cljs.core.val(entry);\nreturn (t.cljs$core$IFn$_invoke$arity$1 ? t.cljs$core$IFn$_invoke$arity$1(G__43982) : t.call(null,G__43982));\n})());\n} else {\nreturn m;\n}\n}),x,ts);\n});\n});\nmalli.core._tuple_transformer \x3d (function malli$core$_tuple_transformer(ts){\nreturn (function (x){\nreturn cljs.core.reduce_kv(malli.core._update,x,ts);\n});\n});\nmalli.core._collection_transformer \x3d (function malli$core$_collection_transformer(t,empty){\nreturn (function (x){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3((cljs.core.truth_(x)?empty:null),cljs.core.map.cljs$core$IFn$_invoke$arity$1(t),x);\n});\n});\nmalli.core._or_transformer \x3d (function malli$core$_or_transformer(this$,transformer,child_schemas,method,options){\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$,method,options);\nif(cljs.core.seq(child_schemas)){\nvar transformers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44000_SHARP_){\nvar or__5025__auto__ \x3d malli.core._transformer(p1__44000_SHARP_,transformer,method,options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n}),child_schemas);\nvar validators \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._validator,child_schemas);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22decode\x22,\x22decode\x22,-1306165281),method))?(function (x){\nreturn cljs.core.reduce_kv((function (acc,i,transformer__$1){\nvar x_STAR_ \x3d (transformer__$1.cljs$core$IFn$_invoke$arity$1 ? transformer__$1.cljs$core$IFn$_invoke$arity$1(x) : transformer__$1.call(null,x));\nif(cljs.core.truth_((function (){var fexpr__44008 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(validators,i);\nreturn (fexpr__44008.cljs$core$IFn$_invoke$arity$1 ? fexpr__44008.cljs$core$IFn$_invoke$arity$1(x_STAR_) : fexpr__44008.call(null,x_STAR_));\n})())){\nreturn cljs.core.reduced(x_STAR_);\n} else {\nif(malli.core._equals(acc,new cljs.core.Keyword(\x22malli.core\x22,\x22nil\x22,\x22malli.core/nil\x22,296405773))){\nreturn x_STAR_;\n} else {\nreturn acc;\n}\n}\n}),new cljs.core.Keyword(\x22malli.core\x22,\x22nil\x22,\x22malli.core/nil\x22,296405773),transformers);\n}):(function (x){\nreturn cljs.core.reduce_kv((function (x__$1,i,validator){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x__$1) : validator.call(null,x__$1)))){\nreturn cljs.core.reduced((function (){var fexpr__44013 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(transformers,i);\nreturn (fexpr__44013.cljs$core$IFn$_invoke$arity$1 ? fexpr__44013.cljs$core$IFn$_invoke$arity$1(x__$1) : fexpr__44013.call(null,x__$1));\n})());\n} else {\nreturn x__$1;\n}\n}),x,validators);\n})));\n} else {\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1(this_transformer);\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.EntryParser}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44035 \x3d (function (ast,options,ast_entry_order,keyset,__GT_child,children,meta44036){\nthis.ast \x3d ast;\nthis.options \x3d options;\nthis.ast_entry_order \x3d ast_entry_order;\nthis.keyset \x3d keyset;\nthis.__GT_child \x3d __GT_child;\nthis.children \x3d children;\nthis.meta44036 \x3d meta44036;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44035.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44037,meta44036__$1){\nvar self__ \x3d this;\nvar _44037__$1 \x3d this;\nreturn (new malli.core.t_malli$core44035(self__.ast,self__.options,self__.ast_entry_order,self__.keyset,self__.__GT_child,self__.children,meta44036__$1));\n}));\n\n(malli.core.t_malli$core44035.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44037){\nvar self__ \x3d this;\nvar _44037__$1 \x3d this;\nreturn self__.meta44036;\n}));\n\n(malli.core.t_malli$core44035.prototype.malli$core$EntryParser$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44035.prototype.malli$core$EntryParser$_entry_keyset$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.keyset;\n}));\n\n(malli.core.t_malli$core44035.prototype.malli$core$EntryParser$_entry_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.children);\n}));\n\n(malli.core.t_malli$core44035.prototype.malli$core$EntryParser$_entry_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44055){\nvar vec__44056 \x3d p__44055;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44056,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44056,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44056,(2),null);\nreturn malli.impl.util._entry(k,(malli.core._val_schema.cljs$core$IFn$_invoke$arity$2 ? malli.core._val_schema.cljs$core$IFn$_invoke$arity$2(s,p) : malli.core._val_schema.call(null,s,p)));\n}),cljs.core.deref(self__.children));\n}));\n\n(malli.core.t_malli$core44035.prototype.malli$core$EntryParser$_entry_forms$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44062){\nvar vec__44063 \x3d p__44062;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44063,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44063,(1),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44063,(2),null);\nif(cljs.core.truth_(p)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,p,malli.core._form(v)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._form(v)], null);\n}\n}),cljs.core.deref(self__.children));\n}));\n\n(malli.core.t_malli$core44035.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ast\x22,\x22ast\x22,780197459,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22ast-entry-order\x22,\x22ast-entry-order\x22,825309915,null),new cljs.core.Symbol(null,\x22keyset\x22,\x22keyset\x22,2135291099,null),new cljs.core.Symbol(null,\x22-\x3echild\x22,\x22-\x3echild\x22,-1245989531,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22meta44036\x22,\x22meta44036\x22,1994468598,null)], null);\n}));\n\n(malli.core.t_malli$core44035.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44035.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44035\x22);\n\n(malli.core.t_malli$core44035.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44035\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44035.\n */\nmalli.core.__GT_t_malli$core44035 \x3d (function malli$core$__GT_t_malli$core44035(ast,options,ast_entry_order,keyset,__GT_child,children,meta44036){\nreturn (new malli.core.t_malli$core44035(ast,options,ast_entry_order,keyset,__GT_child,children,meta44036));\n});\n\n\nmalli.core._parse_entry_ast \x3d (function malli$core$_parse_entry_ast(ast,options){\nvar ast_entry_order \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22ast-entry-order\x22,\x22malli.core/ast-entry-order\x22,-659579476).cljs$core$IFn$_invoke$arity$1(options);\nvar keyset \x3d new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(ast);\nvar __GT_child \x3d (function (p__44022){\nvar vec__44026 \x3d p__44022;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44026,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44026,(1),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(v),(function (){var G__44030 \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(v);\nvar G__44031 \x3d options;\nreturn (malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(G__44030,G__44031) : malli.core.from_ast.call(null,G__44030,G__44031));\n})()], null);\n});\nvar children \x3d (new cljs.core.Delay((function (){\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2(__GT_child,(function (){var G__44033 \x3d keyset;\nif(cljs.core.truth_(ast_entry_order)){\nreturn cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3((function (p1__44015_SHARP_){\nreturn new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256).cljs$core$IFn$_invoke$arity$1(cljs.core.val(p1__44015_SHARP_));\n}),keyset,G__44033);\n} else {\nreturn G__44033;\n}\n})());\n}),null));\nreturn (new malli.core.t_malli$core44035(ast,options,ast_entry_order,keyset,__GT_child,children,cljs.core.PersistentArrayMap.EMPTY));\n});\nmalli.core._from_entry_ast \x3d (function malli$core$_from_entry_ast(parent,ast,options){\nreturn malli.core._into_schema(parent,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),malli.core._parse_entry_ast(ast,options),options);\n});\nmalli.core._ast \x3d (function malli$core$_ast(acc,properties,options){\nvar registry \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(properties);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry \x3d temp__5825__auto__;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p__44079){\nvar vec__44081 \x3d p__44079;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44081,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44081,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(malli.core.ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.ast.cljs$core$IFn$_invoke$arity$2(v,options) : malli.core.ast.call(null,v,options))], null);\n})),registry);\n} else {\nreturn null;\n}\n})();\nvar properties__$1 \x3d cljs.core.not_empty((function (){var G__44084 \x3d properties;\nif(cljs.core.truth_(registry)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__44084,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\n} else {\nreturn G__44084;\n}\n})());\nvar G__44087 \x3d acc;\nvar G__44087__$1 \x3d (cljs.core.truth_(properties__$1)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__44087,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552),properties__$1):G__44087);\nif(cljs.core.truth_(registry)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__44087__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry);\n} else {\nreturn G__44087__$1;\n}\n});\nmalli.core._entry_ast \x3d (function malli$core$_entry_ast(schema,keyset){\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),(malli.core.type.cljs$core$IFn$_invoke$arity$1 ? malli.core.type.cljs$core$IFn$_invoke$arity$1(schema) : malli.core.type.call(null,schema)),new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__44089){\nvar vec__44092 \x3d p__44089;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44092,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44092,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44092,(2),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,(function (){var G__44095 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256).cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(keyset,k)),new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(s) : malli.core.ast.call(null,s))], null);\nif(cljs.core.truth_(p)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__44095,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552),p);\n} else {\nreturn G__44095;\n}\n})());\n}),cljs.core.PersistentArrayMap.EMPTY,malli.core._children(schema))], null),malli.core._properties(schema),malli.core._options(schema));\n});\nmalli.core._from_child_ast \x3d (function malli$core$_from_child_ast(parent,ast,options){\nreturn malli.core._into_schema(parent,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var G__44101 \x3d new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__44102 \x3d options;\nreturn (malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(G__44101,G__44102) : malli.core.from_ast.call(null,G__44101,G__44102));\n})()], null),options);\n});\nmalli.core._to_child_ast \x3d (function malli$core$_to_child_ast(schema){\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),(malli.core.type.cljs$core$IFn$_invoke$arity$1 ? malli.core.type.cljs$core$IFn$_invoke$arity$1(schema) : malli.core.type.call(null,schema)),new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545),(function (){var G__44110 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(malli.core._children(schema),(0));\nreturn (malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(G__44110) : malli.core.ast.call(null,G__44110));\n})()], null),malli.core._properties(schema),malli.core._options(schema));\n});\nmalli.core._from_value_ast \x3d (function malli$core$_from_value_ast(parent,ast,options){\nreturn malli.core._into_schema(parent,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar value \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null);\n} else {\nreturn null;\n}\n})(),options);\n});\nmalli.core._to_value_ast \x3d (function malli$core$_to_value_ast(schema){\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),(malli.core.type.cljs$core$IFn$_invoke$arity$1 ? malli.core.type.cljs$core$IFn$_invoke$arity$1(schema) : malli.core.type.call(null,schema)),new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(malli.core._children(schema),(0))], null),malli.core._properties(schema),malli.core._options(schema));\n});\nmalli.core._from_type_ast \x3d (function malli$core$_from_type_ast(parent,ast,options){\nreturn malli.core._into_schema(parent,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),null,options);\n});\nmalli.core._to_type_ast \x3d (function malli$core$_to_type_ast(schema){\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),(malli.core.type.cljs$core$IFn$_invoke$arity$1 ? malli.core.type.cljs$core$IFn$_invoke$arity$1(schema) : malli.core.type.call(null,schema))], null),malli.core._properties(schema),malli.core._options(schema));\n});\nmalli.core._min_max_pred \x3d (function malli$core$_min_max_pred(f){\nreturn (function (p__44128){\nvar map__44129 \x3d p__44128;\nvar map__44129__$1 \x3d cljs.core.__destructure_map(map__44129);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44129__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44129__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nif(cljs.core.not((function (){var or__5025__auto__ \x3d min;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn max;\n}\n})())){\nreturn null;\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (function (){var and__5023__auto__ \x3d min;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn max;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn f;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (function (x){\nvar size \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x));\nreturn (((min \x3c\x3d size)) \x26\x26 ((size \x3c\x3d max)));\n});\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d min;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn max;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (function (x){\nreturn (((min \x3c\x3d x)) \x26\x26 ((x \x3c\x3d max)));\n});\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d min;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn f;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (function (x){\nreturn (min \x3c\x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x)));\n});\n} else {\nif(cljs.core.truth_(min)){\nreturn (function (x){\nreturn (min \x3c\x3d x);\n});\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d max;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn f;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (function (x){\nreturn ((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x)) \x3c\x3d max);\n});\n} else {\nif(cljs.core.truth_(max)){\nreturn (function (x){\nreturn (x \x3c\x3d max);\n});\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n});\n});\nmalli.core._safe_count \x3d (function malli$core$_safe_count(x){\nif(cljs.core.truth_((malli.core._safely_countable_QMARK_.cljs$core$IFn$_invoke$arity$1 ? malli.core._safely_countable_QMARK_.cljs$core$IFn$_invoke$arity$1(x) : malli.core._safely_countable_QMARK_.call(null,x)))){\nreturn cljs.core.count(x);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (cnt,_){\nreturn (cnt + (1));\n}),(0),x);\n}\n});\nmalli.core._validate_limits \x3d (function malli$core$_validate_limits(min,max){\nvar or__5025__auto__ \x3d malli.core._min_max_pred(malli.core._safe_count)(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max], null));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.constantly(true);\n}\n});\nmalli.core._needed_bounded_checks \x3d (function malli$core$_needed_bounded_checks(min,max,options){\nvar x__5110__auto__ \x3d (function (){var x__5110__auto__ \x3d (function (){var or__5025__auto__ \x3d (function (){var G__44155 \x3d max;\nif((G__44155 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (G__44155 + (1));\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nvar y__5111__auto__ \x3d (function (){var or__5025__auto__ \x3d min;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})();\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar y__5111__auto__ \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22coll-check-limit\x22,\x22malli.core/coll-check-limit\x22,956583593).cljs$core$IFn$_invoke$arity$2(options,(101));\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n});\nmalli.core._validate_bounded_limits \x3d (function malli$core$_validate_bounded_limits(needed,min,max){\nvar or__5025__auto__ \x3d malli.core._min_max_pred((function (p1__44167_SHARP_){\nreturn cljs.core.bounded_count(needed,p1__44167_SHARP_);\n}))(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max], null));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.constantly(true);\n}\n});\nmalli.core._qualified_keyword_pred \x3d (function malli$core$_qualified_keyword_pred(properties){\nvar temp__5825__auto__ \x3d (function (){var G__44170 \x3d properties;\nvar G__44170__$1 \x3d (((G__44170 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22namespace\x22,\x22namespace\x22,-377510372).cljs$core$IFn$_invoke$arity$1(G__44170));\nif((G__44170__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.name(G__44170__$1);\n}\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ns_name \x3d temp__5825__auto__;\nreturn (function (x){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(x),ns_name);\n});\n} else {\nreturn null;\n}\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44262 \x3d (function (form,options,property_pred,compile,to_ast,props,properties,children,min,type_properties,parent,pred,type,meta44199,from_ast,cache,map__44187,max,meta44263){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.property_pred \x3d property_pred;\nthis.compile \x3d compile;\nthis.to_ast \x3d to_ast;\nthis.props \x3d props;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.type_properties \x3d type_properties;\nthis.parent \x3d parent;\nthis.pred \x3d pred;\nthis.type \x3d type;\nthis.meta44199 \x3d meta44199;\nthis.from_ast \x3d from_ast;\nthis.cache \x3d cache;\nthis.map__44187 \x3d map__44187;\nthis.max \x3d max;\nthis.meta44263 \x3d meta44263;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44262.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44264,meta44263__$1){\nvar self__ \x3d this;\nvar _44264__$1 \x3d this;\nreturn (new malli.core.t_malli$core44262(self__.form,self__.options,self__.property_pred,self__.compile,self__.to_ast,self__.props,self__.properties,self__.children,self__.min,self__.type_properties,self__.parent,self__.pred,self__.type,self__.meta44199,self__.from_ast,self__.cache,self__.map__44187,self__.max,meta44263__$1));\n}));\n\n(malli.core.t_malli$core44262.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44264){\nvar self__ \x3d this;\nvar _44264__$1 \x3d this;\nreturn self__.meta44263;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44262.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.to_ast.cljs$core$IFn$_invoke$arity$1 ? self__.to_ast.cljs$core$IFn$_invoke$arity$1(this$__$1) : self__.to_ast.call(null,this$__$1));\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar temp__5823__auto__ \x3d (cljs.core.truth_(self__.property_pred)?(self__.property_pred.cljs$core$IFn$_invoke$arity$1 ? self__.property_pred.cljs$core$IFn$_invoke$arity$1(self__.properties) : self__.property_pred.call(null,self__.properties)):null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pvalidator \x3d temp__5823__auto__;\nreturn (function (x){\nvar and__5023__auto__ \x3d (self__.pred.cljs$core$IFn$_invoke$arity$1 ? self__.pred.cljs$core$IFn$_invoke$arity$1(x) : self__.pred.call(null,x));\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (pvalidator.cljs$core$IFn$_invoke$arity$1 ? pvalidator.cljs$core$IFn$_invoke$arity$1(x) : pvalidator.call(null,x));\n} else {\nreturn and__5023__auto__;\n}\n});\n} else {\nreturn self__.pred;\n}\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1(malli.core._value_transformer(transformer,this$__$1,method,options__$1));\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_leaf(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function malli$core$explain(x,in$,acc){\nif(cljs.core.not((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n});\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44262.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44262.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,___$1,default$){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn default$;\n}));\n\n(malli.core.t_malli$core44262.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22non-associative-schema\x22,\x22malli.core/non-associative-schema\x22,-588379948),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key], null));\n}));\n\n(malli.core.t_malli$core44262.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44262.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 19, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22property-pred\x22,\x22property-pred\x22,-841131040,null),new cljs.core.Symbol(null,\x22compile\x22,\x22compile\x22,-2046249340,null),new cljs.core.Symbol(null,\x22to-ast\x22,\x22to-ast\x22,1618596229,null),new cljs.core.Symbol(null,\x22props\x22,\x22props\x22,2093813254,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44198\x22,\x22malli.core/t_malli$core44198\x22,863996574,null)], null)),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22meta44199\x22,\x22meta44199\x22,-705748812,null),new cljs.core.Symbol(null,\x22from-ast\x22,\x22from-ast\x22,1394293078,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22map__44187\x22,\x22map__44187\x22,1121988602,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22meta44263\x22,\x22meta44263\x22,-305269944,null)], null);\n}));\n\n(malli.core.t_malli$core44262.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44262.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44262\x22);\n\n(malli.core.t_malli$core44262.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44262\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44262.\n */\nmalli.core.__GT_t_malli$core44262 \x3d (function malli$core$__GT_t_malli$core44262(form,options,property_pred,compile,to_ast,props,properties,children,min,type_properties,parent,pred,type,meta44199,from_ast,cache,map__44187,max,meta44263){\nreturn (new malli.core.t_malli$core44262(form,options,property_pred,compile,to_ast,props,properties,children,min,type_properties,parent,pred,type,meta44199,from_ast,cache,map__44187,max,meta44263));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44198 \x3d (function (property_pred,compile,to_ast,props,min,type_properties,pred,type,from_ast,map__44187,max,meta44199){\nthis.property_pred \x3d property_pred;\nthis.compile \x3d compile;\nthis.to_ast \x3d to_ast;\nthis.props \x3d props;\nthis.min \x3d min;\nthis.type_properties \x3d type_properties;\nthis.pred \x3d pred;\nthis.type \x3d type;\nthis.from_ast \x3d from_ast;\nthis.map__44187 \x3d map__44187;\nthis.max \x3d max;\nthis.meta44199 \x3d meta44199;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44198.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44200,meta44199__$1){\nvar self__ \x3d this;\nvar _44200__$1 \x3d this;\nreturn (new malli.core.t_malli$core44198(self__.property_pred,self__.compile,self__.to_ast,self__.props,self__.min,self__.type_properties,self__.pred,self__.type,self__.from_ast,self__.map__44187,self__.max,meta44199__$1));\n}));\n\n(malli.core.t_malli$core44198.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44200){\nvar self__ \x3d this;\nvar _44200__$1 \x3d this;\nreturn self__.meta44199;\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44198.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn (self__.from_ast.cljs$core$IFn$_invoke$arity$3 ? self__.from_ast.cljs$core$IFn$_invoke$arity$3(parent__$1,ast,options) : self__.from_ast.call(null,parent__$1,ast,options));\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type;\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type_properties;\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44198.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nif(cljs.core.truth_(self__.compile)){\nreturn malli.core._into_schema((function (){var G__44244 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.props,new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429)),(self__.compile.cljs$core$IFn$_invoke$arity$3 ? self__.compile.cljs$core$IFn$_invoke$arity$3(properties,children,options) : self__.compile.call(null,properties,children,options))], 0));\nreturn (malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1(G__44244) : malli.core._simple_schema.call(null,G__44244));\n})(),properties,children,options);\n} else {\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children,cljs.core.identity,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(self__.type,properties,children,self__.min,self__.max);\n\nreturn (new malli.core.t_malli$core44262(form,options,self__.property_pred,self__.compile,self__.to_ast,self__.props,properties,children,self__.min,self__.type_properties,parent__$1,self__.pred,self__.type,self__.meta44199,self__.from_ast,cache,self__.map__44187,self__.max,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}\n}));\n\n(malli.core.t_malli$core44198.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44198.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 12, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22property-pred\x22,\x22property-pred\x22,-841131040,null),new cljs.core.Symbol(null,\x22compile\x22,\x22compile\x22,-2046249340,null),new cljs.core.Symbol(null,\x22to-ast\x22,\x22to-ast\x22,1618596229,null),new cljs.core.Symbol(null,\x22props\x22,\x22props\x22,2093813254,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22from-ast\x22,\x22from-ast\x22,1394293078,null),new cljs.core.Symbol(null,\x22map__44187\x22,\x22map__44187\x22,1121988602,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22meta44199\x22,\x22meta44199\x22,-705748812,null)], null);\n}));\n\n(malli.core.t_malli$core44198.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44198.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44198\x22);\n\n(malli.core.t_malli$core44198.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44198\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44198.\n */\nmalli.core.__GT_t_malli$core44198 \x3d (function malli$core$__GT_t_malli$core44198(property_pred,compile,to_ast,props,min,type_properties,pred,type,from_ast,map__44187,max,meta44199){\nreturn (new malli.core.t_malli$core44198(property_pred,compile,to_ast,props,min,type_properties,pred,type,from_ast,map__44187,max,meta44199));\n});\n\n\nmalli.core._simple_schema \x3d (function malli$core$_simple_schema(props){\nvar map__44187 \x3d props;\nvar map__44187__$1 \x3d cljs.core.__destructure_map(map__44187);\nvar property_pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44187__$1,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729));\nvar compile \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44187__$1,new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429));\nvar to_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__44187__$1,new cljs.core.Keyword(null,\x22to-ast\x22,\x22to-ast\x22,-21935298),malli.core._to_type_ast);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__44187__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar type_properties \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44187__$1,new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44187__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44187__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar from_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__44187__$1,new cljs.core.Keyword(null,\x22from-ast\x22,\x22from-ast\x22,-246238449),malli.core._from_value_ast);\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__44187__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(0));\nif(cljs.core.fn_QMARK_(props)){\nmalli.core._deprecated_BANG_(\x22-simple-schema doesn\x27t take fn-props, use :compile property instead\x22);\n\nvar G__44195 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429),(function (c,p,_){\nreturn (props.cljs$core$IFn$_invoke$arity$2 ? props.cljs$core$IFn$_invoke$arity$2(c,p) : props.call(null,c,p));\n})], null);\nreturn (malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._simple_schema.cljs$core$IFn$_invoke$arity$1(G__44195) : malli.core._simple_schema.call(null,G__44195));\n} else {\nreturn (new malli.core.t_malli$core44198(property_pred,compile,to_ast,props,min,type_properties,pred,type,from_ast,map__44187__$1,max,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}\n});\nmalli.core._nil_schema \x3d (function malli$core$_nil_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22nil\x22,\x22nil\x22,99600501),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.nil_QMARK_], null));\n});\nmalli.core._any_schema \x3d (function malli$core$_any_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.any_QMARK_], null));\n});\nmalli.core._some_schema \x3d (function malli$core$_some_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22some\x22,\x22some\x22,-1951079573),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.some_QMARK_], null));\n});\nmalli.core._string_schema \x3d (function malli$core$_string_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.string_QMARK_,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729),malli.core._min_max_pred(cljs.core.count)], null));\n});\nmalli.core._int_schema \x3d (function malli$core$_int_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.int_QMARK_,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729),malli.core._min_max_pred(null)], null));\n});\nmalli.core._float_schema \x3d (function malli$core$_float_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.float_QMARK_,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729),malli.core._min_max_pred(null)], null));\n});\nmalli.core._double_schema \x3d (function malli$core$_double_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22double\x22,\x22double\x22,884886883),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.double_QMARK_,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729),malli.core._min_max_pred(null)], null));\n});\nmalli.core._boolean_schema \x3d (function malli$core$_boolean_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22boolean\x22,\x22boolean\x22,-1919418404),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.boolean_QMARK_], null));\n});\nmalli.core._keyword_schema \x3d (function malli$core$_keyword_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.keyword_QMARK_], null));\n});\nmalli.core._symbol_schema \x3d (function malli$core$_symbol_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.symbol_QMARK_], null));\n});\nmalli.core._qualified_keyword_schema \x3d (function malli$core$_qualified_keyword_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22qualified-keyword\x22,\x22qualified-keyword\x22,736041675),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.qualified_keyword_QMARK_,new cljs.core.Keyword(null,\x22property-pred\x22,\x22property-pred\x22,1813304729),malli.core._qualified_keyword_pred], null));\n});\nmalli.core._qualified_symbol_schema \x3d (function malli$core$_qualified_symbol_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22qualified-symbol\x22,\x22qualified-symbol\x22,-665513695),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.qualified_symbol_QMARK_], null));\n});\nmalli.core._uuid_schema \x3d (function malli$core$_uuid_schema(){\nreturn malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.uuid_QMARK_], null));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44564 \x3d (function (meta44550,parent,properties,children,options,form,cache,__GT_parser,meta44565){\nthis.meta44550 \x3d meta44550;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.form \x3d form;\nthis.cache \x3d cache;\nthis.__GT_parser \x3d __GT_parser;\nthis.meta44565 \x3d meta44565;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44564.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44566,meta44565__$1){\nvar self__ \x3d this;\nvar _44566__$1 \x3d this;\nreturn (new malli.core.t_malli$core44564(self__.meta44550,self__.parent,self__.properties,self__.children,self__.options,self__.form,self__.cache,self__.__GT_parser,meta44565__$1));\n}));\n\n(malli.core.t_malli$core44564.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44566){\nvar self__ \x3d this;\nvar _44566__$1 \x3d this;\nreturn self__.meta44565;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validators \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._validator,self__.children);\nreturn malli.impl.util._every_pred(validators);\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,self__.children,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(malli.core._parser,cljs.core.seq) : self__.__GT_parser.call(null,malli.core._parser,cljs.core.seq));\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar explainers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44580){\nvar vec__44582 \x3d p__44580;\nvar i \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44582,(0),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44582,(1),null);\nreturn malli.core._explainer(c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i));\n}),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,self__.children));\nreturn (function malli$core$explain(x,in$,acc){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc_SINGLEQUOTE_,explainer){\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc_SINGLEQUOTE_) : explainer.call(null,x,in$,acc_SINGLEQUOTE_));\n}),acc,explainers);\n});\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(malli.core._unparser,cljs.core.rseq) : self__.__GT_parser.call(null,malli.core._unparser,cljs.core.rseq));\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44564.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44564.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core44564.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core44564.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44564.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44550\x22,\x22meta44550\x22,-926521770,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44549\x22,\x22malli.core/t_malli$core44549\x22,488722705,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22meta44565\x22,\x22meta44565\x22,-1874153324,null)], null);\n}));\n\n(malli.core.t_malli$core44564.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44564.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44564\x22);\n\n(malli.core.t_malli$core44564.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44564\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44564.\n */\nmalli.core.__GT_t_malli$core44564 \x3d (function malli$core$__GT_t_malli$core44564(meta44550,parent,properties,children,options,form,cache,__GT_parser,meta44565){\nreturn (new malli.core.t_malli$core44564(meta44550,parent,properties,children,options,form,cache,__GT_parser,meta44565));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44549 \x3d (function (meta44550){\nthis.meta44550 \x3d meta44550;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44549.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44551,meta44550__$1){\nvar self__ \x3d this;\nvar _44551__$1 \x3d this;\nreturn (new malli.core.t_malli$core44549(meta44550__$1));\n}));\n\n(malli.core.t_malli$core44549.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44551){\nvar self__ \x3d this;\nvar _44551__$1 \x3d this;\nreturn self__.meta44550;\n}));\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22and\x22,\x22and\x22,-971899817);\n}));\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44549.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22and\x22,\x22and\x22,-971899817),properties,children,(1),null);\n\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44544_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__44544_SHARP_,options) : malli.core.schema.call(null,p1__44544_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_parser \x3d (function (f,m){\nvar parsers \x3d (function (){var G__44562 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(f,children__$1);\nreturn (m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(G__44562) : m.call(null,G__44562));\n})();\nreturn (function (p1__44545_SHARP_){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (x,parser){\nreturn malli.impl.util._map_invalid(cljs.core.reduced,(parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(x) : parser.call(null,x)));\n}),p1__44545_SHARP_,parsers);\n});\n});\nreturn (new malli.core.t_malli$core44564(self__.meta44550,parent__$1,properties,children__$1,options,form,cache,__GT_parser,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44549.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44549.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44550\x22,\x22meta44550\x22,-926521770,null)], null);\n}));\n\n(malli.core.t_malli$core44549.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44549.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44549\x22);\n\n(malli.core.t_malli$core44549.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44549\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44549.\n */\nmalli.core.__GT_t_malli$core44549 \x3d (function malli$core$__GT_t_malli$core44549(meta44550){\nreturn (new malli.core.t_malli$core44549(meta44550));\n});\n\n\nmalli.core._and_schema \x3d (function malli$core$_and_schema(){\nreturn (new malli.core.t_malli$core44549(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44619 \x3d (function (meta44610,parent,properties,children,options,form,cache,__GT_parser,meta44620){\nthis.meta44610 \x3d meta44610;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.form \x3d form;\nthis.cache \x3d cache;\nthis.__GT_parser \x3d __GT_parser;\nthis.meta44620 \x3d meta44620;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44619.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44621,meta44620__$1){\nvar self__ \x3d this;\nvar _44621__$1 \x3d this;\nreturn (new malli.core.t_malli$core44619(self__.meta44610,self__.parent,self__.properties,self__.children,self__.options,self__.form,self__.cache,self__.__GT_parser,meta44620__$1));\n}));\n\n(malli.core.t_malli$core44619.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44621){\nvar self__ \x3d this;\nvar _44621__$1 \x3d this;\nreturn self__.meta44620;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validators \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._validator,self__.children);\nreturn malli.impl.util._some_pred(validators);\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._or_transformer(this$__$1,transformer,self__.children,method,options__$1);\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._parser) : self__.__GT_parser.call(null,malli.core._parser));\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar explainers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44631){\nvar vec__44632 \x3d p__44631;\nvar i \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44632,(0),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44632,(1),null);\nreturn malli.core._explainer(c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i));\n}),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,self__.children));\nreturn (function malli$core$explain(x,in$,acc){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc_SINGLEQUOTE_,explainer){\nvar acc_SINGLEQUOTE__SINGLEQUOTE_ \x3d (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc_SINGLEQUOTE_) : explainer.call(null,x,in$,acc_SINGLEQUOTE_));\nif((acc_SINGLEQUOTE_ \x3d\x3d\x3d acc_SINGLEQUOTE__SINGLEQUOTE_)){\nreturn cljs.core.reduced(acc);\n} else {\nreturn acc_SINGLEQUOTE__SINGLEQUOTE_;\n}\n}),acc,explainers);\n});\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._unparser) : self__.__GT_parser.call(null,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44619.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44619.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core44619.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core44619.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44619.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44610\x22,\x22meta44610\x22,-69173017,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44609\x22,\x22malli.core/t_malli$core44609\x22,-518141375,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22meta44620\x22,\x22meta44620\x22,-117290288,null)], null);\n}));\n\n(malli.core.t_malli$core44619.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44619.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44619\x22);\n\n(malli.core.t_malli$core44619.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44619\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44619.\n */\nmalli.core.__GT_t_malli$core44619 \x3d (function malli$core$__GT_t_malli$core44619(meta44610,parent,properties,children,options,form,cache,__GT_parser,meta44620){\nreturn (new malli.core.t_malli$core44619(meta44610,parent,properties,children,options,form,cache,__GT_parser,meta44620));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44609 \x3d (function (meta44610){\nthis.meta44610 \x3d meta44610;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44609.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44611,meta44610__$1){\nvar self__ \x3d this;\nvar _44611__$1 \x3d this;\nreturn (new malli.core.t_malli$core44609(meta44610__$1));\n}));\n\n(malli.core.t_malli$core44609.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44611){\nvar self__ \x3d this;\nvar _44611__$1 \x3d this;\nreturn self__.meta44610;\n}));\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169);\n}));\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44609.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),properties,children,(1),null);\n\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44606_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__44606_SHARP_,options) : malli.core.schema.call(null,p1__44606_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_parser \x3d (function (f){\nvar parsers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(f,children__$1);\nreturn (function (p1__44608_SHARP_){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,parser){\nreturn malli.impl.util._map_valid(cljs.core.reduced,(parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(p1__44608_SHARP_) : parser.call(null,p1__44608_SHARP_)));\n}),new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900),parsers);\n});\n});\nreturn (new malli.core.t_malli$core44619(self__.meta44610,parent__$1,properties,children__$1,options,form,cache,__GT_parser,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44609.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44609.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44610\x22,\x22meta44610\x22,-69173017,null)], null);\n}));\n\n(malli.core.t_malli$core44609.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44609.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44609\x22);\n\n(malli.core.t_malli$core44609.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44609\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44609.\n */\nmalli.core.__GT_t_malli$core44609 \x3d (function malli$core$__GT_t_malli$core44609(meta44610){\nreturn (new malli.core.t_malli$core44609(meta44610));\n});\n\n\nmalli.core._or_schema \x3d (function malli$core$_or_schema(){\nreturn (new malli.core.t_malli$core44609(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.EntrySchema}\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44667 \x3d (function (meta44659,parent,properties,children,options,entry_parser,form,cache,meta44668){\nthis.meta44659 \x3d meta44659;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.entry_parser \x3d entry_parser;\nthis.form \x3d form;\nthis.cache \x3d cache;\nthis.meta44668 \x3d meta44668;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44667.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44669,meta44668__$1){\nvar self__ \x3d this;\nvar _44669__$1 \x3d this;\nreturn (new malli.core.t_malli$core44667(self__.meta44659,self__.parent,self__.properties,self__.children,self__.options,self__.entry_parser,self__.form,self__.cache,meta44668__$1));\n}));\n\n(malli.core.t_malli$core44667.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44669){\nvar self__ \x3d this;\nvar _44669__$1 \x3d this;\nreturn self__.meta44668;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44667.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._entry_ast(this$__$1,malli.core._entry_keyset(self__.entry_parser));\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.impl.util._some_pred(malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44674){\nvar vec__44675 \x3d p__44674;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44675,(0),null);\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44675,(1),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44675,(2),null);\nreturn malli.core._validator(c);\n}),this$__$1.malli$core$Schema$_children$arity$1(null)));\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._or_transformer(this$__$1,transformer,malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44649_SHARP_){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p1__44649_SHARP_,(2));\n}),this$__$1.malli$core$Schema$_children$arity$1(null)),method,options__$1);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_entries(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar parsers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44688){\nvar vec__44689 \x3d p__44688;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44689,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44689,(1),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44689,(2),null);\nvar c__$1 \x3d malli.core._parser(c);\nreturn (function (x){\nreturn malli.impl.util._map_valid((function (p1__44647_SHARP_){\nreturn cljs.core.reduced(malli.core.tag(k,p1__44647_SHARP_));\n}),(c__$1.cljs$core$IFn$_invoke$arity$1 ? c__$1.cljs$core$IFn$_invoke$arity$1(x) : c__$1.call(null,x)));\n});\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (function (x){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,parser){\nreturn (parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(x) : parser.call(null,x));\n}),x,parsers);\n});\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_children(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar explainers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44705){\nvar vec__44708 \x3d p__44705;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44708,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44708,(1),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44708,(2),null);\nreturn malli.core._explainer(c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k));\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (function malli$core$explain(x,in$,acc){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc_SINGLEQUOTE_,explainer){\nvar acc_SINGLEQUOTE__SINGLEQUOTE_ \x3d (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc_SINGLEQUOTE_) : explainer.call(null,x,in$,acc_SINGLEQUOTE_));\nif((acc_SINGLEQUOTE_ \x3d\x3d\x3d acc_SINGLEQUOTE__SINGLEQUOTE_)){\nreturn cljs.core.reduced(acc);\n} else {\nreturn acc_SINGLEQUOTE__SINGLEQUOTE_;\n}\n}),acc,explainers);\n});\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar unparsers \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p__44719){\nvar vec__44720 \x3d p__44719;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44720,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44720,(1),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44720,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._unparser(c)], null);\n})),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (function (x){\nif(malli.core.tag_QMARK_(x)){\nvar temp__5827__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(unparsers,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(x));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar unparse \x3d temp__5827__auto__;\nvar G__44726 \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(x);\nreturn (unparse.cljs$core$IFn$_invoke$arity$1 ? unparse.cljs$core$IFn$_invoke$arity$1(G__44726) : unparse.call(null,G__44726));\n}\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$EntrySchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44667.prototype.malli$core$EntrySchema$_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_entries(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$EntrySchema$_entry_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.entry_parser;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44667.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44667.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (this$,key,default$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._get_entries(this$__$1,key,default$);\n}));\n\n(malli.core.t_malli$core44667.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_entries(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core44667.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44667.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44659\x22,\x22meta44659\x22,718891177,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44658\x22,\x22malli.core/t_malli$core44658\x22,-665501018,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22entry-parser\x22,\x22entry-parser\x22,-1698599125,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta44668\x22,\x22meta44668\x22,889468975,null)], null);\n}));\n\n(malli.core.t_malli$core44667.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44667.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44667\x22);\n\n(malli.core.t_malli$core44667.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44667\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44667.\n */\nmalli.core.__GT_t_malli$core44667 \x3d (function malli$core$__GT_t_malli$core44667(meta44659,parent,properties,children,options,entry_parser,form,cache,meta44668){\nreturn (new malli.core.t_malli$core44667(meta44659,parent,properties,children,options,entry_parser,form,cache,meta44668));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44658 \x3d (function (meta44659){\nthis.meta44659 \x3d meta44659;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44658.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44660,meta44659__$1){\nvar self__ \x3d this;\nvar _44660__$1 \x3d this;\nreturn (new malli.core.t_malli$core44658(meta44659__$1));\n}));\n\n(malli.core.t_malli$core44658.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44660){\nvar self__ \x3d this;\nvar _44660__$1 \x3d this;\nreturn self__.meta44659;\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44658.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_entry_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22orn\x22,\x22orn\x22,738436484);\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44658.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22orn\x22,\x22orn\x22,738436484),properties,children,(1),null);\n\nvar entry_parser \x3d malli.core._create_entry_parser(children,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22naked-keys\x22,\x22naked-keys\x22,-90769828),true], null),options);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_entry_form(parent__$1,properties,entry_parser,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core44667(self__.meta44659,parent__$1,properties,children,options,entry_parser,form,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44658.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44658.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44659\x22,\x22meta44659\x22,718891177,null)], null);\n}));\n\n(malli.core.t_malli$core44658.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44658.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44658\x22);\n\n(malli.core.t_malli$core44658.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44658\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44658.\n */\nmalli.core.__GT_t_malli$core44658 \x3d (function malli$core$__GT_t_malli$core44658(meta44659){\nreturn (new malli.core.t_malli$core44658(meta44659));\n});\n\n\nmalli.core._orn_schema \x3d (function malli$core$_orn_schema(){\nreturn (new malli.core.t_malli$core44658(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44760 \x3d (function (form,options,properties,schema,children,parent,vec__44757,cache,meta44754,meta44761){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.schema \x3d schema;\nthis.children \x3d children;\nthis.parent \x3d parent;\nthis.vec__44757 \x3d vec__44757;\nthis.cache \x3d cache;\nthis.meta44754 \x3d meta44754;\nthis.meta44761 \x3d meta44761;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44760.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44762,meta44761__$1){\nvar self__ \x3d this;\nvar _44762__$1 \x3d this;\nreturn (new malli.core.t_malli$core44760(self__.form,self__.options,self__.properties,self__.schema,self__.children,self__.parent,self__.vec__44757,self__.cache,self__.meta44754,meta44761__$1));\n}));\n\n(malli.core.t_malli$core44760.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44762){\nvar self__ \x3d this;\nvar _44762__$1 \x3d this;\nreturn self__.meta44761;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44760.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_child_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.complement(malli.core._validator(self__.schema));\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,self__.children,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function malli$core$explain(x,in$,acc){\nif(cljs.core.not((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(0)),in$,this$__$1,x));\n} else {\nreturn acc;\n}\n});\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44760.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44760.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core44760.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core44760.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44760.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44753\x22,\x22malli.core/t_malli$core44753\x22,-134737607,null)], null)),new cljs.core.Symbol(null,\x22vec__44757\x22,\x22vec__44757\x22,-5365384,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta44754\x22,\x22meta44754\x22,-203630727,null),new cljs.core.Symbol(null,\x22meta44761\x22,\x22meta44761\x22,-1802626629,null)], null);\n}));\n\n(malli.core.t_malli$core44760.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44760.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44760\x22);\n\n(malli.core.t_malli$core44760.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44760\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44760.\n */\nmalli.core.__GT_t_malli$core44760 \x3d (function malli$core$__GT_t_malli$core44760(form,options,properties,schema,children,parent,vec__44757,cache,meta44754,meta44761){\nreturn (new malli.core.t_malli$core44760(form,options,properties,schema,children,parent,vec__44757,cache,meta44754,meta44761));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44753 \x3d (function (meta44754){\nthis.meta44754 \x3d meta44754;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44753.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44755,meta44754__$1){\nvar self__ \x3d this;\nvar _44755__$1 \x3d this;\nreturn (new malli.core.t_malli$core44753(meta44754__$1));\n}));\n\n(malli.core.t_malli$core44753.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44755){\nvar self__ \x3d this;\nvar _44755__$1 \x3d this;\nreturn self__.meta44754;\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44753.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_child_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22not\x22,\x22not\x22,-595976884);\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44753.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22not\x22,\x22not\x22,-595976884),properties,children,(1),(1));\n\nvar vec__44757 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44752_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__44752_SHARP_,options) : malli.core.schema.call(null,p1__44752_SHARP_,options));\n}),children);\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44757,(0),null);\nvar children__$1 \x3d vec__44757;\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core44760(form,options,properties,schema,children__$1,parent__$1,vec__44757,cache,self__.meta44754,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44753.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44753.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44754\x22,\x22meta44754\x22,-203630727,null)], null);\n}));\n\n(malli.core.t_malli$core44753.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44753.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44753\x22);\n\n(malli.core.t_malli$core44753.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44753\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44753.\n */\nmalli.core.__GT_t_malli$core44753 \x3d (function malli$core$__GT_t_malli$core44753(meta44754){\nreturn (new malli.core.t_malli$core44753(meta44754));\n});\n\n\nmalli.core._not_schema \x3d (function malli$core$_not_schema(){\nreturn (new malli.core.t_malli$core44753(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.RefSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44853 \x3d (function (meta44832,parent,properties,children,options,form,schema,cache,meta44854){\nthis.meta44832 \x3d meta44832;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.form \x3d form;\nthis.schema \x3d schema;\nthis.cache \x3d cache;\nthis.meta44854 \x3d meta44854;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44853.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44855,meta44854__$1){\nvar self__ \x3d this;\nvar _44855__$1 \x3d this;\nreturn (new malli.core.t_malli$core44853(self__.meta44832,self__.parent,self__.properties,self__.children,self__.options,self__.form,self__.schema,self__.cache,meta44854__$1));\n}));\n\n(malli.core.t_malli$core44853.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44855){\nvar self__ \x3d this;\nvar _44855__$1 \x3d this;\nreturn self__.meta44854;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44853.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_child_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._validator(self__.schema);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._options(self__.schema);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,(new cljs.core.List(null,self__.schema,null,(1),null)),transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core.truth_(new cljs.core.Keyword(\x22malli.core\x22,\x22walk-entry-vals\x22,\x22malli.core/walk-entry-vals\x22,-64238340).cljs$core$IFn$_invoke$arity$1(options__$1))){\nif(cljs.core.truth_(malli.core._accept(walker,this$__$1,path,options__$1))){\nreturn malli.core._outer(walker,this$__$1,path,(new cljs.core.List(null,malli.core._inner(walker,self__.schema,path,options__$1),null,(1),null)),options__$1);\n} else {\nreturn null;\n}\n} else {\nreturn malli.core._walk(self__.schema,walker,path,options__$1);\n}\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._parser(self__.schema);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.schema], null);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._explainer(self__.schema,path);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._unparser(self__.schema);\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44853.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44853.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),key)){\nreturn self__.schema;\n} else {\nreturn default$;\n}\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (_,key,value){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),key)){\nreturn malli.core._val_schema.cljs$core$IFn$_invoke$arity$2(value,self__.properties);\n} else {\nreturn null;\n}\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$RefSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44853.prototype.malli$core$RefSchema$_ref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44853.prototype.malli$core$RefSchema$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.schema;\n}));\n\n(malli.core.t_malli$core44853.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44853.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44832\x22,\x22meta44832\x22,1919092,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44831\x22,\x22malli.core/t_malli$core44831\x22,735169054,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta44854\x22,\x22meta44854\x22,-1980131530,null)], null);\n}));\n\n(malli.core.t_malli$core44853.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44853.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44853\x22);\n\n(malli.core.t_malli$core44853.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44853\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44853.\n */\nmalli.core.__GT_t_malli$core44853 \x3d (function malli$core$__GT_t_malli$core44853(meta44832,parent,properties,children,options,form,schema,cache,meta44854){\nreturn (new malli.core.t_malli$core44853(meta44832,parent,properties,children,options,form,schema,cache,meta44854));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44831 \x3d (function (meta44832){\nthis.meta44832 \x3d meta44832;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44831.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44833,meta44832__$1){\nvar self__ \x3d this;\nvar _44833__$1 \x3d this;\nreturn (new malli.core.t_malli$core44831(meta44832__$1));\n}));\n\n(malli.core.t_malli$core44831.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44833){\nvar self__ \x3d this;\nvar _44833__$1 \x3d this;\nreturn self__.meta44832;\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44831.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_child_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22val\x22,\x22malli.core/val\x22,39501268);\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44831.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__44815_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__44815_SHARP_,options) : malli.core.schema.call(null,p1__44815_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar schema \x3d cljs.core.first(children__$1);\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core44853(self__.meta44832,parent__$1,properties,children__$1,options,form,schema,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44831.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core44831.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta44832\x22,\x22meta44832\x22,1919092,null)], null);\n}));\n\n(malli.core.t_malli$core44831.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44831.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44831\x22);\n\n(malli.core.t_malli$core44831.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44831\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44831.\n */\nmalli.core.__GT_t_malli$core44831 \x3d (function malli$core$__GT_t_malli$core44831(meta44832){\nreturn (new malli.core.t_malli$core44831(meta44832));\n});\n\n\nmalli.core._val_schema \x3d (function malli$core$_val_schema(var_args){\nvar G__44826 \x3d arguments.length;\nswitch (G__44826) {\ncase 2:\nreturn malli.core._val_schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 0:\nreturn malli.core._val_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._val_schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (schema,properties){\nreturn malli.core._into_schema(malli.core._val_schema.cljs$core$IFn$_invoke$arity$0(),properties,(new cljs.core.List(null,schema,null,(1),null)),malli.core._options(schema));\n}));\n\n(malli.core._val_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (new malli.core.t_malli$core44831(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._val_schema.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {malli.core.EntrySchema}\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44960 \x3d (function (form,options,properties,closed,children,p__44936,entry_parser,parent,explicit_children,map__44939,default_schema,pred_QMARK_,__GT_parser,cache,meta44921,opts,meta44961){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.closed \x3d closed;\nthis.children \x3d children;\nthis.p__44936 \x3d p__44936;\nthis.entry_parser \x3d entry_parser;\nthis.parent \x3d parent;\nthis.explicit_children \x3d explicit_children;\nthis.map__44939 \x3d map__44939;\nthis.default_schema \x3d default_schema;\nthis.pred_QMARK_ \x3d pred_QMARK_;\nthis.__GT_parser \x3d __GT_parser;\nthis.cache \x3d cache;\nthis.meta44921 \x3d meta44921;\nthis.opts \x3d opts;\nthis.meta44961 \x3d meta44961;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44960.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44962,meta44961__$1){\nvar self__ \x3d this;\nvar _44962__$1 \x3d this;\nreturn (new malli.core.t_malli$core44960(self__.form,self__.options,self__.properties,self__.closed,self__.children,self__.p__44936,self__.entry_parser,self__.parent,self__.explicit_children,self__.map__44939,self__.default_schema,self__.pred_QMARK_,self__.__GT_parser,self__.cache,self__.meta44921,self__.opts,meta44961__$1));\n}));\n\n(malli.core.t_malli$core44960.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44962){\nvar self__ \x3d this;\nvar _44962__$1 \x3d this;\nreturn self__.meta44961;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44960.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._entry_ast(this$__$1,malli.core._entry_keyset(self__.entry_parser));\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar keyset \x3d malli.core._entry_keyset(this$__$1.malli$core$EntrySchema$_entry_parser$arity$1(null));\nvar default_validator \x3d (function (){var G__44966 \x3d cljs.core.deref(self__.default_schema);\nif((G__44966 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._validator(G__44966);\n}\n})();\nvar validators \x3d (function (){var G__44968 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44970){\nvar vec__44972 \x3d p__44970;\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44972,(0),null);\nvar map__44975 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44972,(1),null);\nvar map__44975__$1 \x3d cljs.core.__destructure_map(map__44975);\nvar optional \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44975__$1,new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509));\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44972,(2),null);\nvar valid_QMARK_ \x3d malli.core._validator(value);\nvar default$ \x3d cljs.core.boolean$(optional);\nreturn (function (m){\nvar temp__5823__auto__ \x3d cljs.core.find(m,key);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar map_entry \x3d temp__5823__auto__;\nvar G__44977 \x3d cljs.core.val(map_entry);\nreturn (valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(G__44977) : valid_QMARK_.call(null,G__44977));\n} else {\nreturn default$;\n}\n});\n}),cljs.core.deref(self__.explicit_children));\nvar G__44968__$1 \x3d (cljs.core.truth_(default_validator)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__44968,(function (m){\nvar G__44979 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc,k);\n}),m,cljs.core.keys(keyset));\nreturn (default_validator.cljs$core$IFn$_invoke$arity$1 ? default_validator.cljs$core$IFn$_invoke$arity$1(G__44979) : default_validator.call(null,G__44979));\n})):G__44968);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d self__.closed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(default_validator);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__44968__$1,(function (m){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nif(cljs.core.contains_QMARK_(keyset,k)){\nreturn acc;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,cljs.core.keys(m));\n}));\n} else {\nreturn G__44968__$1;\n}\n})();\nvar validate \x3d malli.impl.util._every_pred(validators);\nreturn (function (m){\nvar and__5023__auto__ \x3d (self__.pred_QMARK_.cljs$core$IFn$_invoke$arity$1 ? self__.pred_QMARK_.cljs$core$IFn$_invoke$arity$1(m) : self__.pred_QMARK_.call(null,m));\nif(cljs.core.truth_(and__5023__auto__)){\nreturn validate(m);\n} else {\nreturn and__5023__auto__;\n}\n});\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar keyset \x3d malli.core._entry_keyset(this$__$1.malli$core$EntrySchema$_entry_parser$arity$1(null));\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar __GT_children \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__44983){\nvar vec__44984 \x3d p__44983;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44984,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44984,(1),null);\nvar t \x3d malli.core._transformer(s,transformer,method,options__$1);\nvar G__44987 \x3d acc;\nif(cljs.core.truth_(t)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__44987,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,t], null));\n} else {\nreturn G__44987;\n}\n}),cljs.core.PersistentVector.EMPTY,(function (){var G__44988 \x3d this$__$1.malli$core$EntrySchema$_entries$arity$1(null);\nif(cljs.core.truth_(cljs.core.deref(self__.default_schema))){\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2(malli.core._default_entry,G__44988);\n} else {\nreturn G__44988;\n}\n})());\nvar apply__GT_children \x3d ((cljs.core.seq(__GT_children))?malli.core._map_transformer(__GT_children):null);\nvar apply__GT_default \x3d (function (){var temp__5825__auto__ \x3d (function (){var G__44989 \x3d cljs.core.deref(self__.default_schema);\nif((G__44989 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._transformer(G__44989,transformer,method,options__$1);\n}\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar dt \x3d temp__5825__auto__;\nreturn (function (x){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__44990 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc,k);\n}),x,cljs.core.keys(keyset));\nreturn (dt.cljs$core$IFn$_invoke$arity$1 ? dt.cljs$core$IFn$_invoke$arity$1(G__44990) : dt.call(null,G__44990));\n})(),cljs.core.select_keys(x,cljs.core.keys(keyset))], 0));\n});\n} else {\nreturn null;\n}\n})();\nvar apply__GT_children__$1 \x3d (function (){var G__44999 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [apply__GT_default,apply__GT_children], null);\nvar G__44999__$1 \x3d (((G__44999 \x3d\x3d null))?null:cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,G__44999));\nvar G__44999__$2 \x3d (((G__44999__$1 \x3d\x3d null))?null:cljs.core.seq(G__44999__$1));\nif((G__44999__$2 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.core._comp,G__44999__$2);\n}\n})();\nvar apply__GT_children__$2 \x3d malli.core._guard(self__.pred_QMARK_,apply__GT_children__$1);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,apply__GT_children__$2);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_entries(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(this$__$1,malli.core._parser) : self__.__GT_parser.call(null,this$__$1,malli.core._parser));\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_children(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar keyset \x3d malli.core._entry_keyset(this$__$1.malli$core$EntrySchema$_entry_parser$arity$1(null));\nvar default_explainer \x3d (function (){var G__45006 \x3d cljs.core.deref(self__.default_schema);\nif((G__45006 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._explainer(G__45006,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22malli.core\x22,\x22default\x22,\x22malli.core/default\x22,-1706204176)));\n}\n})();\nvar explainers \x3d (function (){var G__45007 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__45009){\nvar vec__45011 \x3d p__45009;\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45011,(0),null);\nvar map__45014 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45011,(1),null);\nvar map__45014__$1 \x3d cljs.core.__destructure_map(map__45014);\nvar optional \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45014__$1,new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509));\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45011,(2),null);\nvar explainer \x3d malli.core._explainer(schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,key));\nreturn (function (x,in$,acc){\nvar temp__5823__auto__ \x3d cljs.core.find(x,key);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nvar G__45017 \x3d cljs.core.val(e);\nvar G__45018 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,key);\nvar G__45019 \x3d acc;\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(G__45017,G__45018,G__45019) : explainer.call(null,G__45017,G__45018,G__45019));\n} else {\nif(cljs.core.not(optional)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,key),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,key),this$__$1,null,new cljs.core.Keyword(\x22malli.core\x22,\x22missing-key\x22,\x22malli.core/missing-key\x22,1439107666)));\n} else {\nreturn acc;\n}\n}\n});\n}),cljs.core.deref(self__.explicit_children));\nvar G__45007__$1 \x3d (cljs.core.truth_(default_explainer)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__45007,(function (x,in$,acc){\nvar G__45028 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,k){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,k);\n}),x,cljs.core.keys(keyset));\nvar G__45029 \x3d in$;\nvar G__45030 \x3d acc;\nreturn (default_explainer.cljs$core$IFn$_invoke$arity$3 ? default_explainer.cljs$core$IFn$_invoke$arity$3(G__45028,G__45029,G__45030) : default_explainer.call(null,G__45028,G__45029,G__45030));\n})):G__45007);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d self__.closed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(default_explainer);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__45007__$1,(function (x,in$,acc){\nreturn cljs.core.reduce_kv((function (acc__$1,k,v){\nif(cljs.core.contains_QMARK_(keyset,k)){\nreturn acc__$1;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc__$1,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,k),this$__$1,v,new cljs.core.Keyword(\x22malli.core\x22,\x22extra-key\x22,\x22malli.core/extra-key\x22,574816512)));\n}\n}),acc,x);\n}));\n} else {\nreturn G__45007__$1;\n}\n})();\nreturn (function (x,in$,acc){\nif(cljs.core.not((self__.pred_QMARK_.cljs$core$IFn$_invoke$arity$1 ? self__.pred_QMARK_.cljs$core$IFn$_invoke$arity$1(x) : self__.pred_QMARK_.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-type\x22,\x22malli.core/invalid-type\x22,-1367388450)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,explainer){\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc__$1) : explainer.call(null,x,in$,acc__$1));\n}),acc,explainers);\n}\n});\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(this$__$1,malli.core._unparser) : self__.__GT_parser.call(null,this$__$1,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$EntrySchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44960.prototype.malli$core$EntrySchema$_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_entries(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$EntrySchema$_entry_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.entry_parser;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44960.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44960.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (this$,key,default$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._get_entries(this$__$1,key,default$);\n}));\n\n(malli.core.t_malli$core44960.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_entries(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core44960.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core44960.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 17, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22closed\x22,\x22closed\x22,720856168,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22p__44936\x22,\x22p__44936\x22,-847221463,null),new cljs.core.Symbol(null,\x22entry-parser\x22,\x22entry-parser\x22,-1698599125,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core44920\x22,\x22malli.core/t_malli$core44920\x22,1219285806,null)], null)),new cljs.core.Symbol(null,\x22explicit-children\x22,\x22explicit-children\x22,-1952298515,null),new cljs.core.Symbol(null,\x22map__44939\x22,\x22map__44939\x22,399049362,null),new cljs.core.Symbol(null,\x22default-schema\x22,\x22default-schema\x22,395400019,null),new cljs.core.Symbol(null,\x22pred?\x22,\x22pred?\x22,647416310,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta44921\x22,\x22meta44921\x22,541155772,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta44961\x22,\x22meta44961\x22,-206169985,null)], null);\n}));\n\n(malli.core.t_malli$core44960.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44960.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44960\x22);\n\n(malli.core.t_malli$core44960.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44960\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44960.\n */\nmalli.core.__GT_t_malli$core44960 \x3d (function malli$core$__GT_t_malli$core44960(form,options,properties,closed,children,p__44936,entry_parser,parent,explicit_children,map__44939,default_schema,pred_QMARK_,__GT_parser,cache,meta44921,opts,meta44961){\nreturn (new malli.core.t_malli$core44960(form,options,properties,closed,children,p__44936,entry_parser,parent,explicit_children,map__44939,default_schema,pred_QMARK_,__GT_parser,cache,meta44921,opts,meta44961));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core44920 \x3d (function (opts,meta44921){\nthis.opts \x3d opts;\nthis.meta44921 \x3d meta44921;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core44920.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_44922,meta44921__$1){\nvar self__ \x3d this;\nvar _44922__$1 \x3d this;\nreturn (new malli.core.t_malli$core44920(self__.opts,meta44921__$1));\n}));\n\n(malli.core.t_malli$core44920.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_44922){\nvar self__ \x3d this;\nvar _44922__$1 \x3d this;\nreturn self__.meta44921;\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44920.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_entry_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$2(self__.opts,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461));\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126).cljs$core$IFn$_invoke$arity$1(self__.opts);\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core44920.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,p__44936,children,options){\nvar self__ \x3d this;\nvar map__44939 \x3d p__44936;\nvar map__44939__$1 \x3d cljs.core.__destructure_map(map__44939);\nvar properties \x3d map__44939__$1;\nvar closed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44939__$1,new cljs.core.Keyword(null,\x22closed\x22,\x22closed\x22,-919675359));\nvar parent__$1 \x3d this;\nvar pred_QMARK_ \x3d new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$2(self__.opts,cljs.core.map_QMARK_);\nvar entry_parser \x3d malli.core._create_entry_parser(children,self__.opts,options);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_entry_form(parent__$1,properties,entry_parser,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar default_schema \x3d (new cljs.core.Delay((function (){\nvar G__44944 \x3d entry_parser;\nvar G__44944__$1 \x3d (((G__44944 \x3d\x3d null))?null:malli.core._entry_children(G__44944));\nvar G__44944__$2 \x3d (((G__44944__$1 \x3d\x3d null))?null:malli.core._default_entry_schema(G__44944__$1));\nif((G__44944__$2 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(G__44944__$2,options) : malli.core.schema.call(null,G__44944__$2,options));\n}\n}),null));\nvar explicit_children \x3d (new cljs.core.Delay((function (){\nvar G__44947 \x3d malli.core._entry_children(entry_parser);\nif(cljs.core.truth_(cljs.core.deref(default_schema))){\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2(malli.core._default_entry,G__44947);\n} else {\nreturn G__44947;\n}\n}),null));\nvar __GT_parser \x3d (function (this$,f){\nvar keyset \x3d malli.core._entry_keyset(malli.core._entry_parser(this$));\nvar default_parser \x3d (function (){var G__44948 \x3d cljs.core.deref(default_schema);\nif((G__44948 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__44948) : f.call(null,G__44948));\n}\n})();\nvar ok_QMARK_ \x3d (function (p1__44905_SHARP_){\nvar and__5023__auto__ \x3d (pred_QMARK_.cljs$core$IFn$_invoke$arity$1 ? pred_QMARK_.cljs$core$IFn$_invoke$arity$1(p1__44905_SHARP_) : pred_QMARK_.call(null,p1__44905_SHARP_));\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(malli.core.tag_QMARK_(p1__44905_SHARP_)))) \x26\x26 ((!(malli.core.tags_QMARK_(p1__44905_SHARP_)))));\n} else {\nreturn and__5023__auto__;\n}\n});\nvar parsers \x3d (function (){var G__44950 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__44951){\nvar vec__44952 \x3d p__44951;\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44952,(0),null);\nvar map__44955 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44952,(1),null);\nvar map__44955__$1 \x3d cljs.core.__destructure_map(map__44955);\nvar optional \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44955__$1,new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509));\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__44952,(2),null);\nvar parser \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(schema) : f.call(null,schema));\nreturn (function (m){\nvar temp__5823__auto__ \x3d cljs.core.find(m,key);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nvar v \x3d cljs.core.val(e);\nvar v_STAR_ \x3d (parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(v) : parser.call(null,v));\nif(malli.impl.util._invalid_QMARK_(v_STAR_)){\nreturn cljs.core.reduced(v_STAR_);\n} else {\nif((v_STAR_ \x3d\x3d\x3d v)){\nreturn m;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,key,v_STAR_);\n\n}\n}\n} else {\nif(cljs.core.truth_(optional)){\nreturn m;\n} else {\nreturn cljs.core.reduced(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900));\n}\n}\n});\n}),cljs.core.deref(explicit_children));\nvar G__44950__$1 \x3d (cljs.core.truth_(default_parser)?cljs.core.cons((function (m){\nvar m_SINGLEQUOTE_ \x3d (function (){var G__44958 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc,k);\n}),m,cljs.core.keys(keyset));\nreturn (default_parser.cljs$core$IFn$_invoke$arity$1 ? default_parser.cljs$core$IFn$_invoke$arity$1(G__44958) : default_parser.call(null,G__44958));\n})();\nif(malli.impl.util._invalid_QMARK_(m_SINGLEQUOTE_)){\nreturn cljs.core.reduced(m_SINGLEQUOTE_);\n} else {\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(m,cljs.core.keys(keyset)),m_SINGLEQUOTE_], 0));\n}\n}),G__44950):G__44950);\nif(cljs.core.truth_(closed)){\nreturn cljs.core.cons((function (m){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m__$1,k){\nif(cljs.core.contains_QMARK_(keyset,k)){\nreturn m__$1;\n} else {\nreturn cljs.core.reduced(cljs.core.reduced(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900)));\n}\n}),m,cljs.core.keys(m));\n}),G__44950__$1);\n} else {\nreturn G__44950__$1;\n}\n})();\nreturn (function (x){\nif(cljs.core.truth_(ok_QMARK_(x))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,parser){\nreturn (parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(m) : parser.call(null,m));\n}),x,parsers);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n});\nreturn (new malli.core.t_malli$core44960(form,options,properties,closed,children,p__44936,entry_parser,parent__$1,explicit_children,map__44939__$1,default_schema,pred_QMARK_,__GT_parser,cache,self__.meta44921,self__.opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core44920.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core44920.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta44921\x22,\x22meta44921\x22,541155772,null)], null);\n}));\n\n(malli.core.t_malli$core44920.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core44920.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core44920\x22);\n\n(malli.core.t_malli$core44920.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core44920\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core44920.\n */\nmalli.core.__GT_t_malli$core44920 \x3d (function malli$core$__GT_t_malli$core44920(opts,meta44921){\nreturn (new malli.core.t_malli$core44920(opts,meta44921));\n});\n\n\nmalli.core._map_schema \x3d (function malli$core$_map_schema(var_args){\nvar G__44915 \x3d arguments.length;\nswitch (G__44915) {\ncase 0:\nreturn malli.core._map_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._map_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._map_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core._map_schema.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22naked-keys\x22,\x22naked-keys\x22,-90769828),true], null));\n}));\n\n(malli.core._map_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn (new malli.core.t_malli$core44920(opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._map_schema.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45107 \x3d (function (form,options,p__45093,meta45073,properties,children,min,vec__45098,value_schema,parent,key_schema,__GT_parser,cache,map__45095,validate_limits,max,opts,meta45108){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.p__45093 \x3d p__45093;\nthis.meta45073 \x3d meta45073;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.vec__45098 \x3d vec__45098;\nthis.value_schema \x3d value_schema;\nthis.parent \x3d parent;\nthis.key_schema \x3d key_schema;\nthis.__GT_parser \x3d __GT_parser;\nthis.cache \x3d cache;\nthis.map__45095 \x3d map__45095;\nthis.validate_limits \x3d validate_limits;\nthis.max \x3d max;\nthis.opts \x3d opts;\nthis.meta45108 \x3d meta45108;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45107.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45109,meta45108__$1){\nvar self__ \x3d this;\nvar _45109__$1 \x3d this;\nreturn (new malli.core.t_malli$core45107(self__.form,self__.options,self__.p__45093,self__.meta45073,self__.properties,self__.children,self__.min,self__.vec__45098,self__.value_schema,self__.parent,self__.key_schema,self__.__GT_parser,self__.cache,self__.map__45095,self__.validate_limits,self__.max,self__.opts,meta45108__$1));\n}));\n\n(malli.core.t_malli$core45107.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45109){\nvar self__ \x3d this;\nvar _45109__$1 \x3d this;\nreturn self__.meta45108;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45107.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22map-of\x22,\x22map-of\x22,1189682355),new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(self__.key_schema) : malli.core.ast.call(null,self__.key_schema)),new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(self__.value_schema) : malli.core.ast.call(null,self__.value_schema))], null),self__.properties,self__.options);\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar key_valid_QMARK_ \x3d malli.core._validator(self__.key_schema);\nvar value_valid_QMARK_ \x3d malli.core._validator(self__.value_schema);\nreturn (function (m){\nvar and__5023__auto__ \x3d cljs.core.map_QMARK_(m);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (self__.validate_limits.cljs$core$IFn$_invoke$arity$1 ? self__.validate_limits.cljs$core$IFn$_invoke$arity$1(m) : self__.validate_limits.call(null,m));\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.reduce_kv((function (___$2,key,value){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$2 \x3d (key_valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? key_valid_QMARK_.cljs$core$IFn$_invoke$arity$1(key) : key_valid_QMARK_.call(null,key));\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn (value_valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? value_valid_QMARK_.cljs$core$IFn$_invoke$arity$1(value) : value_valid_QMARK_.call(null,value));\n} else {\nreturn and__5023__auto____$2;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar __GT_key \x3d malli.core._transformer(self__.key_schema,transformer,method,options__$1);\nvar __GT_child \x3d malli.core._transformer(self__.value_schema,transformer,method,options__$1);\nvar __GT_key_child \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d __GT_key;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn __GT_child;\n} else {\nreturn and__5023__auto__;\n}\n})())?(function (p1__45057_SHARP_,p2__45058_SHARP_,p3__45059_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__45057_SHARP_,(__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(p2__45058_SHARP_) : __GT_key.call(null,p2__45058_SHARP_)),(__GT_child.cljs$core$IFn$_invoke$arity$1 ? __GT_child.cljs$core$IFn$_invoke$arity$1(p3__45059_SHARP_) : __GT_child.call(null,p3__45059_SHARP_)));\n}):(cljs.core.truth_(__GT_key)?(function (p1__45060_SHARP_,p2__45061_SHARP_,p3__45062_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__45060_SHARP_,(__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(p2__45061_SHARP_) : __GT_key.call(null,p2__45061_SHARP_)),p3__45062_SHARP_);\n}):(cljs.core.truth_(__GT_child)?(function (p1__45063_SHARP_,p2__45064_SHARP_,p3__45065_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__45063_SHARP_,p2__45064_SHARP_,(__GT_child.cljs$core$IFn$_invoke$arity$1 ? __GT_child.cljs$core$IFn$_invoke$arity$1(p3__45065_SHARP_) : __GT_child.call(null,p3__45065_SHARP_)));\n}):null)));\nvar apply__GT_key_child \x3d (cljs.core.truth_(__GT_key_child)?(function (p1__45066_SHARP_){\nreturn cljs.core.reduce_kv(__GT_key_child,cljs.core.empty(p1__45066_SHARP_),p1__45066_SHARP_);\n}):null);\nvar apply__GT_key_child__$1 \x3d malli.core._guard(cljs.core.map_QMARK_,apply__GT_key_child);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,apply__GT_key_child__$1);\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._parser) : self__.__GT_parser.call(null,malli.core._parser));\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar key_explainer \x3d malli.core._explainer(self__.key_schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(0)));\nvar value_explainer \x3d malli.core._explainer(self__.value_schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(1)));\nreturn (function malli$core$explain(m,in$,acc){\nif((!(cljs.core.map_QMARK_(m)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,m,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-type\x22,\x22malli.core/invalid-type\x22,-1367388450)));\n} else {\nif(cljs.core.not((self__.validate_limits.cljs$core$IFn$_invoke$arity$1 ? self__.validate_limits.cljs$core$IFn$_invoke$arity$1(m) : self__.validate_limits.call(null,m)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,m,new cljs.core.Keyword(\x22malli.core\x22,\x22limits\x22,\x22malli.core/limits\x22,-1343466863)));\n} else {\nreturn cljs.core.reduce_kv((function (acc__$1,key,value){\nvar in$__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,key);\nvar G__45122 \x3d value;\nvar G__45123 \x3d in$__$1;\nvar G__45124 \x3d (key_explainer.cljs$core$IFn$_invoke$arity$3 ? key_explainer.cljs$core$IFn$_invoke$arity$3(key,in$__$1,acc__$1) : key_explainer.call(null,key,in$__$1,acc__$1));\nreturn (value_explainer.cljs$core$IFn$_invoke$arity$3 ? value_explainer.cljs$core$IFn$_invoke$arity$3(G__45122,G__45123,G__45124) : value_explainer.call(null,G__45122,G__45123,G__45124));\n}),acc,m);\n}\n}\n});\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._unparser) : self__.__GT_parser.call(null,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45107.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45107.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45107.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45107.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45107.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 18, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22p__45093\x22,\x22p__45093\x22,1779017283,null),new cljs.core.Symbol(null,\x22meta45073\x22,\x22meta45073\x22,1702867686,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22vec__45098\x22,\x22vec__45098\x22,-1906023158,null),new cljs.core.Symbol(null,\x22value-schema\x22,\x22value-schema\x22,-1754883189,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45072\x22,\x22malli.core/t_malli$core45072\x22,-1679648596,null)], null)),new cljs.core.Symbol(null,\x22key-schema\x22,\x22key-schema\x22,543870801,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22map__45095\x22,\x22map__45095\x22,-58330855,null),new cljs.core.Symbol(null,\x22validate-limits\x22,\x22validate-limits\x22,-2141569735,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta45108\x22,\x22meta45108\x22,-1539427833,null)], null);\n}));\n\n(malli.core.t_malli$core45107.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45107.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45107\x22);\n\n(malli.core.t_malli$core45107.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45107\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45107.\n */\nmalli.core.__GT_t_malli$core45107 \x3d (function malli$core$__GT_t_malli$core45107(form,options,p__45093,meta45073,properties,children,min,vec__45098,value_schema,parent,key_schema,__GT_parser,cache,map__45095,validate_limits,max,opts,meta45108){\nreturn (new malli.core.t_malli$core45107(form,options,p__45093,meta45073,properties,children,min,vec__45098,value_schema,parent,key_schema,__GT_parser,cache,map__45095,validate_limits,max,opts,meta45108));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45072 \x3d (function (opts,meta45073){\nthis.opts \x3d opts;\nthis.meta45073 \x3d meta45073;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45072.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45074,meta45073__$1){\nvar self__ \x3d this;\nvar _45074__$1 \x3d this;\nreturn (new malli.core.t_malli$core45072(self__.opts,meta45073__$1));\n}));\n\n(malli.core.t_malli$core45072.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45074){\nvar self__ \x3d this;\nvar _45074__$1 \x3d this;\nreturn self__.meta45073;\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45072.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn parent__$1.malli$core$IntoSchema$_into_schema$arity$4(null,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var G__45081 \x3d new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__45082 \x3d options;\nreturn (malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(G__45081,G__45082) : malli.core.from_ast.call(null,G__45081,G__45082));\n})(),(function (){var G__45083 \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__45084 \x3d options;\nreturn (malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(G__45083,G__45084) : malli.core.from_ast.call(null,G__45083,G__45084));\n})()], null),options);\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$2(self__.opts,new cljs.core.Keyword(null,\x22map-of\x22,\x22map-of\x22,1189682355));\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126).cljs$core$IFn$_invoke$arity$1(self__.opts);\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45072.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,p__45093,children,options){\nvar self__ \x3d this;\nvar map__45095 \x3d p__45093;\nvar map__45095__$1 \x3d cljs.core.__destructure_map(map__45095);\nvar properties \x3d map__45095__$1;\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45095__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45095__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22map-of\x22,\x22map-of\x22,1189682355),properties,children,(2),(2));\n\nvar vec__45098 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45055_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45055_SHARP_,options) : malli.core.schema.call(null,p1__45055_SHARP_,options));\n}),children);\nvar key_schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45098,(0),null);\nvar value_schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45098,(1),null);\nvar children__$1 \x3d vec__45098;\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar validate_limits \x3d malli.core._validate_limits(min,max);\nvar __GT_parser \x3d (function (f){\nvar key_parser \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(key_schema) : f.call(null,key_schema));\nvar value_parser \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(value_schema) : f.call(null,value_schema));\nreturn (function (x){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.reduce_kv((function (acc,k,v){\nvar k_STAR_ \x3d (key_parser.cljs$core$IFn$_invoke$arity$1 ? key_parser.cljs$core$IFn$_invoke$arity$1(k) : key_parser.call(null,k));\nvar v_STAR_ \x3d (value_parser.cljs$core$IFn$_invoke$arity$1 ? value_parser.cljs$core$IFn$_invoke$arity$1(v) : value_parser.call(null,v));\nif(((malli.impl.util._invalid_QMARK_(k_STAR_)) || (malli.impl.util._invalid_QMARK_(v_STAR_)))){\nreturn cljs.core.reduced(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k_STAR_,v_STAR_);\n}\n}),cljs.core.empty(x),x);\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n});\nreturn (new malli.core.t_malli$core45107(form,options,p__45093,self__.meta45073,properties,children__$1,min,vec__45098,value_schema,parent__$1,key_schema,__GT_parser,cache,map__45095__$1,validate_limits,max,self__.opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45072.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45072.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta45073\x22,\x22meta45073\x22,1702867686,null)], null);\n}));\n\n(malli.core.t_malli$core45072.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45072.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45072\x22);\n\n(malli.core.t_malli$core45072.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45072\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45072.\n */\nmalli.core.__GT_t_malli$core45072 \x3d (function malli$core$__GT_t_malli$core45072(opts,meta45073){\nreturn (new malli.core.t_malli$core45072(opts,meta45073));\n});\n\n\nmalli.core._map_of_schema \x3d (function malli$core$_map_of_schema(var_args){\nvar G__45069 \x3d arguments.length;\nswitch (G__45069) {\ncase 0:\nreturn malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn (new malli.core.t_malli$core45072(opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._map_of_schema.cljs$lang$maxFixedArity \x3d 1);\n\nmalli.core._safely_countable_QMARK_ \x3d (function malli$core$_safely_countable_QMARK_(x){\nreturn (((x \x3d\x3d null)) || (((cljs.core.counted_QMARK_(x)) || (((cljs.core.indexed_QMARK_(x)) || (((typeof x \x3d\x3d\x3d \x27string\x27) || ((Array \x3d\x3d\x3d cljs.core.type(x))))))))));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45228 \x3d (function (form,options,temp__5823__auto__,fpred,map__45201,fin,props,properties,unparse,schema,children,min,bounded,parent,map__45195,type,__GT_parser,meta45170,fempty,cache,validate_limits,vec__45208,max,parse,p__45192,meta45229){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.temp__5823__auto__ \x3d temp__5823__auto__;\nthis.fpred \x3d fpred;\nthis.map__45201 \x3d map__45201;\nthis.fin \x3d fin;\nthis.props \x3d props;\nthis.properties \x3d properties;\nthis.unparse \x3d unparse;\nthis.schema \x3d schema;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.bounded \x3d bounded;\nthis.parent \x3d parent;\nthis.map__45195 \x3d map__45195;\nthis.type \x3d type;\nthis.__GT_parser \x3d __GT_parser;\nthis.meta45170 \x3d meta45170;\nthis.fempty \x3d fempty;\nthis.cache \x3d cache;\nthis.validate_limits \x3d validate_limits;\nthis.vec__45208 \x3d vec__45208;\nthis.max \x3d max;\nthis.parse \x3d parse;\nthis.p__45192 \x3d p__45192;\nthis.meta45229 \x3d meta45229;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45228.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45230,meta45229__$1){\nvar self__ \x3d this;\nvar _45230__$1 \x3d this;\nreturn (new malli.core.t_malli$core45228(self__.form,self__.options,self__.temp__5823__auto__,self__.fpred,self__.map__45201,self__.fin,self__.props,self__.properties,self__.unparse,self__.schema,self__.children,self__.min,self__.bounded,self__.parent,self__.map__45195,self__.type,self__.__GT_parser,self__.meta45170,self__.fempty,self__.cache,self__.validate_limits,self__.vec__45208,self__.max,self__.parse,self__.p__45192,meta45229__$1));\n}));\n\n(malli.core.t_malli$core45228.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45230){\nvar self__ \x3d this;\nvar _45230__$1 \x3d this;\nreturn self__.meta45229;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45228.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_child_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validator \x3d malli.core._validator(self__.schema);\nreturn (function (x){\nvar and__5023__auto__ \x3d (self__.fpred.cljs$core$IFn$_invoke$arity$1 ? self__.fpred.cljs$core$IFn$_invoke$arity$1(x) : self__.fpred.call(null,x));\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (self__.validate_limits.cljs$core$IFn$_invoke$arity$1 ? self__.validate_limits.cljs$core$IFn$_invoke$arity$1(x) : self__.validate_limits.call(null,x));\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,v){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(v) : validator.call(null,v)))){\nreturn acc;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,(function (){var G__45241 \x3d x;\nif(cljs.core.truth_((function (){var and__5023__auto____$2 \x3d self__.bounded;\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn (!(malli.core._safely_countable_QMARK_(x)));\n} else {\nreturn and__5023__auto____$2;\n}\n})())){\nreturn cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.take.cljs$core$IFn$_invoke$arity$1(self__.bounded),G__45241], 0));\n} else {\nreturn G__45241;\n}\n})());\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar collection_QMARK_ \x3d (function (p1__45160_SHARP_){\nreturn ((cljs.core.sequential_QMARK_(p1__45160_SHARP_)) || (cljs.core.set_QMARK_(p1__45160_SHARP_)));\n});\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar child_transformer \x3d malli.core._transformer(self__.schema,transformer,method,options__$1);\nvar __GT_child \x3d (cljs.core.truth_(child_transformer)?(cljs.core.truth_(self__.fempty)?malli.core._collection_transformer(child_transformer,self__.fempty):(function (p1__45161_SHARP_){\nreturn malli.core._vmap.cljs$core$IFn$_invoke$arity$2(child_transformer,p1__45161_SHARP_);\n})):null);\nvar __GT_child__$1 \x3d malli.core._guard(collection_QMARK_,__GT_child);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,__GT_child__$1);\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core.truth_(malli.core._accept(walker,this$__$1,path,options__$1))){\nreturn malli.core._outer(walker,this$__$1,path,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [malli.core._inner(walker,self__.schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22malli.core\x22,\x22in\x22,\x22malli.core/in\x22,-1208578537)),options__$1)], null),options__$1);\n} else {\nreturn null;\n}\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__45250 \x3d (cljs.core.truth_(self__.bounded)?malli.core._validator:malli.core._parser);\nvar G__45251 \x3d (cljs.core.truth_(self__.bounded)?cljs.core.identity:self__.parse);\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(G__45250,G__45251) : self__.__GT_parser.call(null,G__45250,G__45251));\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar explainer \x3d malli.core._explainer(self__.schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(0)));\nreturn (function (x,in$,acc){\nif(cljs.core.not((self__.fpred.cljs$core$IFn$_invoke$arity$1 ? self__.fpred.cljs$core$IFn$_invoke$arity$1(x) : self__.fpred.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-type\x22,\x22malli.core/invalid-type\x22,-1367388450)));\n} else {\nif(cljs.core.not((self__.validate_limits.cljs$core$IFn$_invoke$arity$1 ? self__.validate_limits.cljs$core$IFn$_invoke$arity$1(x) : self__.validate_limits.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22limits\x22,\x22malli.core/limits\x22,-1343466863)));\n} else {\nvar size \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d self__.bounded;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(malli.core._safely_countable_QMARK_(x)));\n} else {\nreturn and__5023__auto__;\n}\n})())?self__.bounded:null);\nvar acc__$1 \x3d acc;\nvar i \x3d (0);\nvar G__45260 \x3d cljs.core.seq(x);\nvar vec__45261 \x3d G__45260;\nvar seq__45262 \x3d cljs.core.seq(vec__45261);\nvar first__45263 \x3d cljs.core.first(seq__45262);\nvar seq__45262__$1 \x3d cljs.core.next(seq__45262);\nvar x__$1 \x3d first__45263;\nvar xs \x3d seq__45262__$1;\nvar ne \x3d vec__45261;\nvar acc__$2 \x3d acc__$1;\nvar i__$1 \x3d i;\nvar G__45260__$1 \x3d G__45260;\nwhile(true){\nvar acc__$3 \x3d acc__$2;\nvar i__$2 \x3d i__$1;\nvar vec__45267 \x3d G__45260__$1;\nvar seq__45268 \x3d cljs.core.seq(vec__45267);\nvar first__45269 \x3d cljs.core.first(seq__45268);\nvar seq__45268__$1 \x3d cljs.core.next(seq__45268);\nvar x__$2 \x3d first__45269;\nvar xs__$1 \x3d seq__45268__$1;\nvar ne__$1 \x3d vec__45267;\nif(((ne__$1) \x26\x26 (((cljs.core.not(size)) || ((i__$2 \x3c size)))))){\nvar G__45273 \x3d (function (){var or__5025__auto__ \x3d (function (){var G__45274 \x3d x__$2;\nvar G__45275 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,(self__.fin.cljs$core$IFn$_invoke$arity$2 ? self__.fin.cljs$core$IFn$_invoke$arity$2(i__$2,x__$2) : self__.fin.call(null,i__$2,x__$2)));\nvar G__45276 \x3d acc__$3;\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(G__45274,G__45275,G__45276) : explainer.call(null,G__45274,G__45275,G__45276));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn acc__$3;\n}\n})();\nif(xs__$1){\nvar G__47580 \x3d G__45273;\nvar G__47581 \x3d (i__$2 + (1));\nvar G__47582 \x3d xs__$1;\nacc__$2 \x3d G__47580;\ni__$1 \x3d G__47581;\nG__45260__$1 \x3d G__47582;\ncontinue;\n} else {\nreturn G__45273;\n}\n} else {\nreturn acc__$3;\n}\nbreak;\n}\n\n}\n}\n});\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__45278 \x3d (cljs.core.truth_(self__.bounded)?malli.core._validator:malli.core._unparser);\nvar G__45279 \x3d (cljs.core.truth_(self__.bounded)?cljs.core.identity:self__.unparse);\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$2 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$2(G__45278,G__45279) : self__.__GT_parser.call(null,G__45278,G__45279));\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45228.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45228.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn self__.schema;\n}));\n\n(malli.core.t_malli$core45228.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,_,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_children(this$__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null));\n}));\n\n(malli.core.t_malli$core45228.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45228.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 26, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22temp__5823__auto__\x22,\x22temp__5823__auto__\x22,324238723,null),new cljs.core.Symbol(null,\x22fpred\x22,\x22fpred\x22,1016397475,null),new cljs.core.Symbol(null,\x22map__45201\x22,\x22map__45201\x22,-687978875,null),new cljs.core.Symbol(null,\x22fin\x22,\x22fin\x22,-1942189562,null),new cljs.core.Symbol(null,\x22props\x22,\x22props\x22,2093813254,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22unparse\x22,\x22unparse\x22,135615975,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22bounded\x22,\x22bounded\x22,-333064116,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45169\x22,\x22malli.core/t_malli$core45169\x22,678277401,null)], null)),new cljs.core.Symbol(null,\x22map__45195\x22,\x22map__45195\x22,380257328,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22meta45170\x22,\x22meta45170\x22,-235249512,null),new cljs.core.Symbol(null,\x22fempty\x22,\x22fempty\x22,1035749368,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22validate-limits\x22,\x22validate-limits\x22,-2141569735,null),new cljs.core.Symbol(null,\x22vec__45208\x22,\x22vec__45208\x22,1492311675,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22parse\x22,\x22parse\x22,478366908,null),new cljs.core.Symbol(null,\x22p__45192\x22,\x22p__45192\x22,-30612932,null),new cljs.core.Symbol(null,\x22meta45229\x22,\x22meta45229\x22,-779875700,null)], null);\n}));\n\n(malli.core.t_malli$core45228.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45228.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45228\x22);\n\n(malli.core.t_malli$core45228.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45228\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45228.\n */\nmalli.core.__GT_t_malli$core45228 \x3d (function malli$core$__GT_t_malli$core45228(form,options,temp__5823__auto__,fpred,map__45201,fin,props,properties,unparse,schema,children,min,bounded,parent,map__45195,type,__GT_parser,meta45170,fempty,cache,validate_limits,vec__45208,max,parse,p__45192,meta45229){\nreturn (new malli.core.t_malli$core45228(form,options,temp__5823__auto__,fpred,map__45201,fin,props,properties,unparse,schema,children,min,bounded,parent,map__45195,type,__GT_parser,meta45170,fempty,cache,validate_limits,vec__45208,max,parse,p__45192,meta45229));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45169 \x3d (function (props,meta45170){\nthis.props \x3d props;\nthis.meta45170 \x3d meta45170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45171,meta45170__$1){\nvar self__ \x3d this;\nvar _45171__$1 \x3d this;\nreturn (new malli.core.t_malli$core45169(self__.props,meta45170__$1));\n}));\n\n(malli.core.t_malli$core45169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45171){\nvar self__ \x3d this;\nvar _45171__$1 \x3d this;\nreturn self__.meta45170;\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45169.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_child_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(self__.props);\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126).cljs$core$IFn$_invoke$arity$1(self__.props);\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45169.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,p__45192,children,options){\nvar self__ \x3d this;\nvar map__45195 \x3d p__45192;\nvar map__45195__$1 \x3d cljs.core.__destructure_map(map__45195);\nvar properties \x3d map__45195__$1;\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45195__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45195__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar parent__$1 \x3d this;\nvar temp__5823__auto__ \x3d new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429).cljs$core$IFn$_invoke$arity$1(self__.props);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar compile \x3d temp__5823__auto__;\nreturn malli.core._into_schema((function (){var G__45197 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.props,new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429)),(compile.cljs$core$IFn$_invoke$arity$3 ? compile.cljs$core$IFn$_invoke$arity$3(properties,children,options) : compile.call(null,properties,children,options))], 0));\nreturn (malli.core._collection_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._collection_schema.cljs$core$IFn$_invoke$arity$1(G__45197) : malli.core._collection_schema.call(null,G__45197));\n})(),properties,children,options);\n} else {\nvar map__45201 \x3d self__.props;\nvar map__45201__$1 \x3d cljs.core.__destructure_map(map__45201);\nvar fpred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45201__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar fempty \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45201__$1,new cljs.core.Keyword(null,\x22empty\x22,\x22empty\x22,767870958));\nvar fin \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45201__$1,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),(function (i,_){\nreturn i;\n}));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45201__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar parse \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45201__$1,new cljs.core.Keyword(null,\x22parse\x22,\x22parse\x22,-1162164619));\nvar unparse \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45201__$1,new cljs.core.Keyword(null,\x22unparse\x22,\x22unparse\x22,-1504915552));\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(type,properties,children,(1),(1));\n\nvar vec__45208 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45153_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45153_SHARP_,options) : malli.core.schema.call(null,p1__45153_SHARP_,options));\n}),children);\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45208,(0),null);\nvar children__$1 \x3d vec__45208;\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar bounded \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22bounded\x22,\x22bounded\x22,-1973595643).cljs$core$IFn$_invoke$arity$1(self__.props))?(function (){\nif(cljs.core.truth_(fempty)){\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22malli.core\x22,\x22cannot-provide-empty-and-bounded-props\x22,\x22malli.core/cannot-provide-empty-and-bounded-props\x22,1469796922));\n} else {\n}\n\nreturn malli.core._needed_bounded_checks(min,max,options);\n})()\n:null);\nvar validate_limits \x3d (cljs.core.truth_(bounded)?malli.core._validate_bounded_limits((function (){var x__5113__auto__ \x3d bounded;\nvar y__5114__auto__ \x3d (function (){var or__5025__auto__ \x3d max;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn bounded;\n}\n})();\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})(),min,max):malli.core._validate_limits(min,max));\nvar __GT_parser \x3d (function (f,g){\nvar child_parser \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(schema) : f.call(null,schema));\nreturn (function (x){\nif(cljs.core.not((fpred.cljs$core$IFn$_invoke$arity$1 ? fpred.cljs$core$IFn$_invoke$arity$1(x) : fpred.call(null,x)))){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nif(cljs.core.not((validate_limits.cljs$core$IFn$_invoke$arity$1 ? validate_limits.cljs$core$IFn$_invoke$arity$1(x) : validate_limits.call(null,x)))){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nif(cljs.core.truth_(bounded)){\nvar child_validator \x3d child_parser;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (x__$1,v){\nif(cljs.core.truth_((child_validator.cljs$core$IFn$_invoke$arity$1 ? child_validator.cljs$core$IFn$_invoke$arity$1(v) : child_validator.call(null,v)))){\nreturn x__$1;\n} else {\nreturn cljs.core.reduced(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900));\n}\n}),x,(function (){var G__45221 \x3d x;\nif((!(malli.core._safely_countable_QMARK_(x)))){\nreturn cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.take.cljs$core$IFn$_invoke$arity$1(bounded),G__45221], 0));\n} else {\nreturn G__45221;\n}\n})());\n} else {\nvar x_SINGLEQUOTE_ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,v){\nvar v_SINGLEQUOTE_ \x3d (child_parser.cljs$core$IFn$_invoke$arity$1 ? child_parser.cljs$core$IFn$_invoke$arity$1(v) : child_parser.call(null,v));\nif(malli.impl.util._invalid_QMARK_(v_SINGLEQUOTE_)){\nreturn cljs.core.reduced(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900));\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,v_SINGLEQUOTE_);\n}\n}),cljs.core.PersistentVector.EMPTY,x);\nif(malli.impl.util._invalid_QMARK_(x_SINGLEQUOTE_)){\nreturn x_SINGLEQUOTE_;\n} else {\nif(cljs.core.truth_(g)){\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(x_SINGLEQUOTE_) : g.call(null,x_SINGLEQUOTE_));\n} else {\nif(cljs.core.truth_(fempty)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(fempty,x_SINGLEQUOTE_);\n} else {\nreturn x_SINGLEQUOTE_;\n\n}\n}\n}\n}\n\n}\n}\n});\n});\nreturn (new malli.core.t_malli$core45228(form,options,temp__5823__auto__,fpred,map__45201__$1,fin,self__.props,properties,unparse,schema,children__$1,min,bounded,parent__$1,map__45195__$1,type,__GT_parser,self__.meta45170,fempty,cache,validate_limits,vec__45208,max,parse,p__45192,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}\n}));\n\n(malli.core.t_malli$core45169.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22props\x22,\x22props\x22,2093813254,null),new cljs.core.Symbol(null,\x22meta45170\x22,\x22meta45170\x22,-235249512,null)], null);\n}));\n\n(malli.core.t_malli$core45169.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45169.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45169\x22);\n\n(malli.core.t_malli$core45169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45169\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45169.\n */\nmalli.core.__GT_t_malli$core45169 \x3d (function malli$core$__GT_t_malli$core45169(props,meta45170){\nreturn (new malli.core.t_malli$core45169(props,meta45170));\n});\n\n\nmalli.core._collection_schema \x3d (function malli$core$_collection_schema(props){\nif(cljs.core.fn_QMARK_(props)){\nmalli.core._deprecated_BANG_(\x22-collection-schema doesn\x27t take fn-props, use :compiled property instead\x22);\n\nvar G__45164 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429),(function (c,p,_){\nreturn (props.cljs$core$IFn$_invoke$arity$2 ? props.cljs$core$IFn$_invoke$arity$2(c,p) : props.call(null,c,p));\n})], null);\nreturn (malli.core._collection_schema.cljs$core$IFn$_invoke$arity$1 ? malli.core._collection_schema.cljs$core$IFn$_invoke$arity$1(G__45164) : malli.core._collection_schema.call(null,G__45164));\n} else {\nreturn (new malli.core.t_malli$core45169(props,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45312 \x3d (function (form,options,properties,children,parent,size,__GT_parser,cache,meta45294,opts,meta45313){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.parent \x3d parent;\nthis.size \x3d size;\nthis.__GT_parser \x3d __GT_parser;\nthis.cache \x3d cache;\nthis.meta45294 \x3d meta45294;\nthis.opts \x3d opts;\nthis.meta45313 \x3d meta45313;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45312.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45314,meta45313__$1){\nvar self__ \x3d this;\nvar _45314__$1 \x3d this;\nreturn (new malli.core.t_malli$core45312(self__.form,self__.options,self__.properties,self__.children,self__.parent,self__.size,self__.__GT_parser,self__.cache,self__.meta45294,self__.opts,meta45313__$1));\n}));\n\n(malli.core.t_malli$core45312.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45314){\nvar self__ \x3d this;\nvar _45314__$1 \x3d this;\nreturn self__.meta45313;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validators \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(malli.core._validator,self__.children)));\nreturn (function (x){\nvar and__5023__auto__ \x3d cljs.core.vector_QMARK_(x);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),self__.size);\nif(and__5023__auto____$1){\nreturn cljs.core.reduce_kv((function (acc,i,validator){\nif(cljs.core.truth_((function (){var G__45321 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(x,i);\nreturn (validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(G__45321) : validator.call(null,G__45321));\n})())){\nreturn acc;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,validators);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar __GT_children \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1(cljs.core.vector),cljs.core.keep.cljs$core$IFn$_invoke$arity$1((function (p__45323){\nvar vec__45324 \x3d p__45323;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45324,(0),null);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45324,(1),null);\nvar temp__5829__auto__ \x3d malli.core._transformer(c,transformer,method,options__$1);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar t \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,t], null);\n}\n}))),self__.children);\nvar apply__GT_children \x3d ((cljs.core.seq(__GT_children))?malli.core._tuple_transformer(__GT_children):null);\nvar apply__GT_children__$1 \x3d malli.core._guard(cljs.core.vector_QMARK_,apply__GT_children);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,apply__GT_children__$1);\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._parser) : self__.__GT_parser.call(null,malli.core._parser));\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar explainers \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__45334){\nvar vec__45336 \x3d p__45334;\nvar i \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45336,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45336,(1),null);\nreturn malli.core._explainer(s,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i));\n}),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,self__.children));\nreturn (function (x,in$,acc){\nif((!(cljs.core.vector_QMARK_(x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-type\x22,\x22malli.core/invalid-type\x22,-1367388450)));\n} else {\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),self__.size)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22tuple-size\x22,\x22malli.core/tuple-size\x22,-1004468077)));\n} else {\nif((self__.size \x3d\x3d\x3d (0))){\nreturn acc;\n} else {\nvar acc__$1 \x3d acc;\nvar i \x3d (0);\nvar G__45346 \x3d x;\nvar vec__45348 \x3d G__45346;\nvar seq__45349 \x3d cljs.core.seq(vec__45348);\nvar first__45350 \x3d cljs.core.first(seq__45349);\nvar seq__45349__$1 \x3d cljs.core.next(seq__45349);\nvar x__$1 \x3d first__45350;\nvar xs \x3d seq__45349__$1;\nvar G__45347 \x3d explainers;\nvar vec__45351 \x3d G__45347;\nvar seq__45352 \x3d cljs.core.seq(vec__45351);\nvar first__45353 \x3d cljs.core.first(seq__45352);\nvar seq__45352__$1 \x3d cljs.core.next(seq__45352);\nvar e \x3d first__45353;\nvar es \x3d seq__45352__$1;\nvar acc__$2 \x3d acc__$1;\nvar i__$1 \x3d i;\nvar G__45346__$1 \x3d G__45346;\nvar G__45347__$1 \x3d G__45347;\nwhile(true){\nvar acc__$3 \x3d acc__$2;\nvar i__$2 \x3d i__$1;\nvar vec__45355 \x3d G__45346__$1;\nvar seq__45356 \x3d cljs.core.seq(vec__45355);\nvar first__45357 \x3d cljs.core.first(seq__45356);\nvar seq__45356__$1 \x3d cljs.core.next(seq__45356);\nvar x__$2 \x3d first__45357;\nvar xs__$1 \x3d seq__45356__$1;\nvar vec__45358 \x3d G__45347__$1;\nvar seq__45359 \x3d cljs.core.seq(vec__45358);\nvar first__45360 \x3d cljs.core.first(seq__45359);\nvar seq__45359__$1 \x3d cljs.core.next(seq__45359);\nvar e__$1 \x3d first__45360;\nvar es__$1 \x3d seq__45359__$1;\nvar G__45361 \x3d (function (){var G__45363 \x3d x__$2;\nvar G__45364 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i__$2);\nvar G__45365 \x3d acc__$3;\nreturn (e__$1.cljs$core$IFn$_invoke$arity$3 ? e__$1.cljs$core$IFn$_invoke$arity$3(G__45363,G__45364,G__45365) : e__$1.call(null,G__45363,G__45364,G__45365));\n})();\nif(xs__$1){\nvar G__47606 \x3d G__45361;\nvar G__47607 \x3d (i__$2 + (1));\nvar G__47608 \x3d xs__$1;\nvar G__47609 \x3d es__$1;\nacc__$2 \x3d G__47606;\ni__$1 \x3d G__47607;\nG__45346__$1 \x3d G__47608;\nG__45347__$1 \x3d G__47609;\ncontinue;\n} else {\nreturn G__45361;\n}\nbreak;\n}\n}\n\n}\n}\n});\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._unparser) : self__.__GT_parser.call(null,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45312.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45312.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45312.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45312.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45312.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 11, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45293\x22,\x22malli.core/t_malli$core45293\x22,763849667,null)], null)),new cljs.core.Symbol(null,\x22size\x22,\x22size\x22,-1555742762,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45294\x22,\x22meta45294\x22,-603848133,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta45313\x22,\x22meta45313\x22,-377315661,null)], null);\n}));\n\n(malli.core.t_malli$core45312.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45312.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45312\x22);\n\n(malli.core.t_malli$core45312.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45312\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45312.\n */\nmalli.core.__GT_t_malli$core45312 \x3d (function malli$core$__GT_t_malli$core45312(form,options,properties,children,parent,size,__GT_parser,cache,meta45294,opts,meta45313){\nreturn (new malli.core.t_malli$core45312(form,options,properties,children,parent,size,__GT_parser,cache,meta45294,opts,meta45313));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45293 \x3d (function (opts,meta45294){\nthis.opts \x3d opts;\nthis.meta45294 \x3d meta45294;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45293.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45295,meta45294__$1){\nvar self__ \x3d this;\nvar _45295__$1 \x3d this;\nreturn (new malli.core.t_malli$core45293(self__.opts,meta45294__$1));\n}));\n\n(malli.core.t_malli$core45293.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45295){\nvar self__ \x3d this;\nvar _45295__$1 \x3d this;\nreturn self__.meta45294;\n}));\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22tuple\x22,\x22tuple\x22,-472667284);\n}));\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126).cljs$core$IFn$_invoke$arity$1(self__.opts);\n}));\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45293.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45283_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45283_SHARP_,options) : malli.core.schema.call(null,p1__45283_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar size \x3d cljs.core.count(children__$1);\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_parser \x3d (function (f){\nvar parsers \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$1(f),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1(cljs.core.vector)),children__$1);\nreturn (function (x){\nif((!(cljs.core.vector_QMARK_(x)))){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),size)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nreturn cljs.core.reduce_kv((function (x__$1,i,c){\nvar v \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(x__$1,i);\nvar v_STAR_ \x3d (c.cljs$core$IFn$_invoke$arity$1 ? c.cljs$core$IFn$_invoke$arity$1(v) : c.call(null,v));\nif(malli.impl.util._invalid_QMARK_(v_STAR_)){\nreturn cljs.core.reduced(v_STAR_);\n} else {\nif((v_STAR_ \x3d\x3d\x3d v)){\nreturn x__$1;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x__$1,i,v_STAR_);\n\n}\n}\n}),x,parsers);\n\n}\n}\n});\n});\nreturn (new malli.core.t_malli$core45312(form,options,properties,children__$1,parent__$1,size,__GT_parser,cache,self__.meta45294,self__.opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45293.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45293.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta45294\x22,\x22meta45294\x22,-603848133,null)], null);\n}));\n\n(malli.core.t_malli$core45293.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45293.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45293\x22);\n\n(malli.core.t_malli$core45293.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45293\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45293.\n */\nmalli.core.__GT_t_malli$core45293 \x3d (function malli$core$__GT_t_malli$core45293(opts,meta45294){\nreturn (new malli.core.t_malli$core45293(opts,meta45294));\n});\n\n\nmalli.core._tuple_schema \x3d (function malli$core$_tuple_schema(var_args){\nvar G__45289 \x3d arguments.length;\nswitch (G__45289) {\ncase 0:\nreturn malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn (new malli.core.t_malli$core45293(opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._tuple_schema.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45404 \x3d (function (meta45379,parent,properties,children,options,schema,form,cache,meta45405){\nthis.meta45379 \x3d meta45379;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.schema \x3d schema;\nthis.form \x3d form;\nthis.cache \x3d cache;\nthis.meta45405 \x3d meta45405;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45404.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45406,meta45405__$1){\nvar self__ \x3d this;\nvar _45406__$1 \x3d this;\nreturn (new malli.core.t_malli$core45404(self__.meta45379,self__.parent,self__.properties,self__.children,self__.options,self__.schema,self__.form,self__.cache,meta45405__$1));\n}));\n\n(malli.core.t_malli$core45404.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45406){\nvar self__ \x3d this;\nvar _45406__$1 \x3d this;\nreturn self__.meta45405;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45404.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556),self__.children], null),self__.properties,self__.options);\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (function (x){\nreturn cljs.core.contains_QMARK_(self__.schema,x);\n});\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1(malli.core._value_transformer(transformer,this$__$1,method,options__$1));\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_leaf(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (function (x){\nif(cljs.core.contains_QMARK_(self__.schema,x)){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function malli$core$explain(x,in$,acc){\nif(cljs.core.not((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n});\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45404.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45404.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45404.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45404.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45404.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45379\x22,\x22meta45379\x22,-1549439586,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45378\x22,\x22malli.core/t_malli$core45378\x22,-1270962815,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45405\x22,\x22meta45405\x22,-425927646,null)], null);\n}));\n\n(malli.core.t_malli$core45404.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45404.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45404\x22);\n\n(malli.core.t_malli$core45404.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45404\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45404.\n */\nmalli.core.__GT_t_malli$core45404 \x3d (function malli$core$__GT_t_malli$core45404(meta45379,parent,properties,children,options,schema,form,cache,meta45405){\nreturn (new malli.core.t_malli$core45404(meta45379,parent,properties,children,options,schema,form,cache,meta45405));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45378 \x3d (function (meta45379){\nthis.meta45379 \x3d meta45379;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45378.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45380,meta45379__$1){\nvar self__ \x3d this;\nvar _45380__$1 \x3d this;\nreturn (new malli.core.t_malli$core45378(meta45379__$1));\n}));\n\n(malli.core.t_malli$core45378.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45380){\nvar self__ \x3d this;\nvar _45380__$1 \x3d this;\nreturn self__.meta45379;\n}));\n\n(malli.core.t_malli$core45378.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45378.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn parent__$1.malli$core$IntoSchema$_into_schema$arity$4(null,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22values\x22,\x22values\x22,372645556).cljs$core$IFn$_invoke$arity$1(ast),options);\n}));\n\n(malli.core.t_malli$core45378.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45378.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432);\n}));\n\n(malli.core.t_malli$core45378.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45378.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),properties,children,(1),null);\n\nvar children__$1 \x3d cljs.core.vec(children);\nvar schema \x3d cljs.core.set(children__$1);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,cljs.core.identity,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core45404(self__.meta45379,parent__$1,properties,children__$1,options,schema,form,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45378.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45378.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45379\x22,\x22meta45379\x22,-1549439586,null)], null);\n}));\n\n(malli.core.t_malli$core45378.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45378.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45378\x22);\n\n(malli.core.t_malli$core45378.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45378\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45378.\n */\nmalli.core.__GT_t_malli$core45378 \x3d (function malli$core$__GT_t_malli$core45378(meta45379){\nreturn (new malli.core.t_malli$core45378(meta45379));\n});\n\n\nmalli.core._enum_schema \x3d (function malli$core$_enum_schema(){\nreturn (new malli.core.t_malli$core45378(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45464 \x3d (function (form,options,child,properties,children,p__45458,parent,vec__45459,re,class_QMARK_,meta45451,matches_QMARK_,cache,meta45465){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.child \x3d child;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.p__45458 \x3d p__45458;\nthis.parent \x3d parent;\nthis.vec__45459 \x3d vec__45459;\nthis.re \x3d re;\nthis.class_QMARK_ \x3d class_QMARK_;\nthis.meta45451 \x3d meta45451;\nthis.matches_QMARK_ \x3d matches_QMARK_;\nthis.cache \x3d cache;\nthis.meta45465 \x3d meta45465;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45464.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45466,meta45465__$1){\nvar self__ \x3d this;\nvar _45466__$1 \x3d this;\nreturn (new malli.core.t_malli$core45464(self__.form,self__.options,self__.child,self__.properties,self__.children,self__.p__45458,self__.parent,self__.vec__45459,self__.re,self__.class_QMARK_,self__.meta45451,self__.matches_QMARK_,self__.cache,meta45465__$1));\n}));\n\n(malli.core.t_malli$core45464.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45466){\nvar self__ \x3d this;\nvar _45466__$1 \x3d this;\nreturn self__.meta45465;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45464.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_value_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._safe_pred(self__.matches_QMARK_);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1(malli.core._value_transformer(transformer,this$__$1,method,options__$1));\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_leaf(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar valid_QMARK_ \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(x) : valid_QMARK_.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (function malli$core$explain(x,in$,acc){\ntry{if(cljs.core.not((self__.matches_QMARK_.cljs$core$IFn$_invoke$arity$1 ? self__.matches_QMARK_.cljs$core$IFn$_invoke$arity$1(x) : self__.matches_QMARK_.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n}catch (e45473){if((e45473 instanceof Error)){\nvar e \x3d e45473;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e))));\n} else {\nthrow e45473;\n\n}\n}});\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45464.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45464.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45464.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45464.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45464.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 14, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22child\x22,\x22child\x22,-2030468224,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22p__45458\x22,\x22p__45458\x22,1068197738,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45450\x22,\x22malli.core/t_malli$core45450\x22,-602508219,null)], null)),new cljs.core.Symbol(null,\x22vec__45459\x22,\x22vec__45459\x22,-324672915,null),new cljs.core.Symbol(null,\x22re\x22,\x22re\x22,1869207729,null),new cljs.core.Symbol(null,\x22class?\x22,\x22class?\x22,2026366098,null),new cljs.core.Symbol(null,\x22meta45451\x22,\x22meta45451\x22,531257269,null),new cljs.core.Symbol(null,\x22matches?\x22,\x22matches?\x22,231232054,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45465\x22,\x22meta45465\x22,-158884076,null)], null);\n}));\n\n(malli.core.t_malli$core45464.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45464.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45464\x22);\n\n(malli.core.t_malli$core45464.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45464\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45464.\n */\nmalli.core.__GT_t_malli$core45464 \x3d (function malli$core$__GT_t_malli$core45464(form,options,child,properties,children,p__45458,parent,vec__45459,re,class_QMARK_,meta45451,matches_QMARK_,cache,meta45465){\nreturn (new malli.core.t_malli$core45464(form,options,child,properties,children,p__45458,parent,vec__45459,re,class_QMARK_,meta45451,matches_QMARK_,cache,meta45465));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45450 \x3d (function (class_QMARK_,meta45451){\nthis.class_QMARK_ \x3d class_QMARK_;\nthis.meta45451 \x3d meta45451;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45450.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45452,meta45451__$1){\nvar self__ \x3d this;\nvar _45452__$1 \x3d this;\nreturn (new malli.core.t_malli$core45450(self__.class_QMARK_,meta45451__$1));\n}));\n\n(malli.core.t_malli$core45450.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45452){\nvar self__ \x3d this;\nvar _45452__$1 \x3d this;\nreturn self__.meta45451;\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45450.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_value_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22re\x22,\x22re\x22,228676202);\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45450.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,p__45458,options){\nvar self__ \x3d this;\nvar vec__45459 \x3d p__45458;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45459,(0),null);\nvar children \x3d vec__45459;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22re\x22,\x22re\x22,228676202),properties,children,(1),(1));\n\nvar children__$1 \x3d cljs.core.vec(children);\nvar re \x3d cljs.core.re_pattern(child);\nvar matches_QMARK_ \x3d (function (p1__45448_SHARP_){\nvar and__5023__auto__ \x3d typeof p1__45448_SHARP_ \x3d\x3d\x3d \x27string\x27;\nif(and__5023__auto__){\nreturn cljs.core.re_find(re,p1__45448_SHARP_);\n} else {\nreturn and__5023__auto__;\n}\n});\nvar form \x3d (new cljs.core.Delay((function (){\nif(cljs.core.truth_(self__.class_QMARK_)){\nreturn re;\n} else {\nreturn malli.core._simple_form(parent__$1,properties,children__$1,cljs.core.identity,options);\n}\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core45464(form,options,child,properties,children__$1,p__45458,parent__$1,vec__45459,re,self__.class_QMARK_,self__.meta45451,matches_QMARK_,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45450.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45450.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22class?\x22,\x22class?\x22,2026366098,null),new cljs.core.Symbol(null,\x22meta45451\x22,\x22meta45451\x22,531257269,null)], null);\n}));\n\n(malli.core.t_malli$core45450.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45450.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45450\x22);\n\n(malli.core.t_malli$core45450.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45450\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45450.\n */\nmalli.core.__GT_t_malli$core45450 \x3d (function malli$core$__GT_t_malli$core45450(class_QMARK_,meta45451){\nreturn (new malli.core.t_malli$core45450(class_QMARK_,meta45451));\n});\n\n\nmalli.core._re_schema \x3d (function malli$core$_re_schema(class_QMARK_){\nreturn (new malli.core.t_malli$core45450(class_QMARK_,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45514 \x3d (function (meta45493,parent,properties,children,options,f,form,cache,meta45515){\nthis.meta45493 \x3d meta45493;\nthis.parent \x3d parent;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.options \x3d options;\nthis.f \x3d f;\nthis.form \x3d form;\nthis.cache \x3d cache;\nthis.meta45515 \x3d meta45515;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45514.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45516,meta45515__$1){\nvar self__ \x3d this;\nvar _45516__$1 \x3d this;\nreturn (new malli.core.t_malli$core45514(self__.meta45493,self__.parent,self__.properties,self__.children,self__.options,self__.f,self__.form,self__.cache,meta45515__$1));\n}));\n\n(malli.core.t_malli$core45514.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45516){\nvar self__ \x3d this;\nvar _45516__$1 \x3d this;\nreturn self__.meta45515;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45514.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_value_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._safe_pred(self__.f);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$1(malli.core._value_transformer(transformer,this$__$1,method,options__$1));\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_leaf(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (function malli$core$explain(x,in$,acc){\ntry{if(cljs.core.not((self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(x) : self__.f.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n}catch (e45533){if((e45533 instanceof Error)){\nvar e \x3d e45533;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5(path,in$,this$__$1,x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e))));\n} else {\nthrow e45533;\n\n}\n}});\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45514.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45514.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45514.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45514.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45514.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45493\x22,\x22meta45493\x22,-486202329,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45492\x22,\x22malli.core/t_malli$core45492\x22,-1782921839,null)], null)),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45515\x22,\x22meta45515\x22,845455459,null)], null);\n}));\n\n(malli.core.t_malli$core45514.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45514.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45514\x22);\n\n(malli.core.t_malli$core45514.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45514\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45514.\n */\nmalli.core.__GT_t_malli$core45514 \x3d (function malli$core$__GT_t_malli$core45514(meta45493,parent,properties,children,options,f,form,cache,meta45515){\nreturn (new malli.core.t_malli$core45514(meta45493,parent,properties,children,options,f,form,cache,meta45515));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45492 \x3d (function (meta45493){\nthis.meta45493 \x3d meta45493;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45492.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45494,meta45493__$1){\nvar self__ \x3d this;\nvar _45494__$1 \x3d this;\nreturn (new malli.core.t_malli$core45492(meta45493__$1));\n}));\n\n(malli.core.t_malli$core45492.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45494){\nvar self__ \x3d this;\nvar _45494__$1 \x3d this;\nreturn self__.meta45493;\n}));\n\n(malli.core.t_malli$core45492.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45492.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_value_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45492.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45492.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204);\n}));\n\n(malli.core.t_malli$core45492.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45492.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),properties,children,(1),(1));\n\nvar children__$1 \x3d cljs.core.vec(children);\nvar f \x3d (function (){var G__45512 \x3d cljs.core.first(children__$1);\nvar G__45513 \x3d options;\nreturn (malli.core.eval.cljs$core$IFn$_invoke$arity$2 ? malli.core.eval.cljs$core$IFn$_invoke$arity$2(G__45512,G__45513) : malli.core.eval.call(null,G__45512,G__45513));\n})();\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,cljs.core.identity,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core45514(self__.meta45493,parent__$1,properties,children__$1,options,f,form,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45492.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45492.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45493\x22,\x22meta45493\x22,-486202329,null)], null);\n}));\n\n(malli.core.t_malli$core45492.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45492.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45492\x22);\n\n(malli.core.t_malli$core45492.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45492\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45492.\n */\nmalli.core.__GT_t_malli$core45492 \x3d (function malli$core$__GT_t_malli$core45492(meta45493){\nreturn (new malli.core.t_malli$core45492(meta45493));\n});\n\n\nmalli.core._fn_schema \x3d (function malli$core$_fn_schema(){\nreturn (new malli.core.t_malli$core45492(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45566 \x3d (function (form,options,properties,schema,children,parent,vec__45560,meta45548,__GT_parser,cache,meta45567){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.schema \x3d schema;\nthis.children \x3d children;\nthis.parent \x3d parent;\nthis.vec__45560 \x3d vec__45560;\nthis.meta45548 \x3d meta45548;\nthis.__GT_parser \x3d __GT_parser;\nthis.cache \x3d cache;\nthis.meta45567 \x3d meta45567;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45566.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45568,meta45567__$1){\nvar self__ \x3d this;\nvar _45568__$1 \x3d this;\nreturn (new malli.core.t_malli$core45566(self__.form,self__.options,self__.properties,self__.schema,self__.children,self__.parent,self__.vec__45560,self__.meta45548,self__.__GT_parser,self__.cache,meta45567__$1));\n}));\n\n(malli.core.t_malli$core45566.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45568){\nvar self__ \x3d this;\nvar _45568__$1 \x3d this;\nreturn self__.meta45567;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45566.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_child_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validator \x3d malli.core._validator(self__.schema);\nreturn (function (x){\nvar or__5025__auto__ \x3d (x \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn (validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x));\n}\n});\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,self__.children,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._parser) : self__.__GT_parser.call(null,malli.core._parser));\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar explainer \x3d malli.core._explainer(self__.schema,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(0)));\nreturn (function malli$core$explain(x,in$,acc){\nif((x \x3d\x3d null)){\nreturn acc;\n} else {\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc) : explainer.call(null,x,in$,acc));\n}\n});\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._unparser) : self__.__GT_parser.call(null,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45566.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45566.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),key)){\nreturn self__.schema;\n} else {\nreturn default$;\n}\n}));\n\n(malli.core.t_malli$core45566.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),key)){\nreturn malli.core._set_children(this$__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null));\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22index-out-of-bounds\x22,\x22malli.core/index-out-of-bounds\x22,-371273844),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key], null));\n}\n}));\n\n(malli.core.t_malli$core45566.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45566.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 11, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45547\x22,\x22malli.core/t_malli$core45547\x22,600229150,null)], null)),new cljs.core.Symbol(null,\x22vec__45560\x22,\x22vec__45560\x22,-152397104,null),new cljs.core.Symbol(null,\x22meta45548\x22,\x22meta45548\x22,1855057845,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45567\x22,\x22meta45567\x22,-1549703672,null)], null);\n}));\n\n(malli.core.t_malli$core45566.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45566.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45566\x22);\n\n(malli.core.t_malli$core45566.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45566\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45566.\n */\nmalli.core.__GT_t_malli$core45566 \x3d (function malli$core$__GT_t_malli$core45566(form,options,properties,schema,children,parent,vec__45560,meta45548,__GT_parser,cache,meta45567){\nreturn (new malli.core.t_malli$core45566(form,options,properties,schema,children,parent,vec__45560,meta45548,__GT_parser,cache,meta45567));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45547 \x3d (function (meta45548){\nthis.meta45548 \x3d meta45548;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45547.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45549,meta45548__$1){\nvar self__ \x3d this;\nvar _45549__$1 \x3d this;\nreturn (new malli.core.t_malli$core45547(meta45548__$1));\n}));\n\n(malli.core.t_malli$core45547.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45549){\nvar self__ \x3d this;\nvar _45549__$1 \x3d this;\nreturn self__.meta45548;\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45547.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_child_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560);\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45547.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),properties,children,(1),(1));\n\nvar vec__45560 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45545_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45545_SHARP_,options) : malli.core.schema.call(null,p1__45545_SHARP_,options));\n}),children);\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45560,(0),null);\nvar children__$1 \x3d vec__45560;\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_parser \x3d (function (f){\nvar parser \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(schema) : f.call(null,schema));\nreturn (function (x){\nif((x \x3d\x3d null)){\nreturn x;\n} else {\nreturn (parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(x) : parser.call(null,x));\n}\n});\n});\nreturn (new malli.core.t_malli$core45566(form,options,properties,schema,children__$1,parent__$1,vec__45560,self__.meta45548,__GT_parser,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45547.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45547.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45548\x22,\x22meta45548\x22,1855057845,null)], null);\n}));\n\n(malli.core.t_malli$core45547.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45547.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45547\x22);\n\n(malli.core.t_malli$core45547.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45547\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45547.\n */\nmalli.core.__GT_t_malli$core45547 \x3d (function malli$core$__GT_t_malli$core45547(meta45548){\nreturn (new malli.core.t_malli$core45547(meta45548));\n});\n\n\nmalli.core._maybe_schema \x3d (function malli$core$_maybe_schema(){\nreturn (new malli.core.t_malli$core45547(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.EntrySchema}\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.DistributiveSchema}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45631 \x3d (function (form,options,properties,children,meta45609,entry_parser,parent,opts_SINGLEQUOTE_,dispatch,cache,finder,opts,dispatch_map,meta45632){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.meta45609 \x3d meta45609;\nthis.entry_parser \x3d entry_parser;\nthis.parent \x3d parent;\nthis.opts_SINGLEQUOTE_ \x3d opts_SINGLEQUOTE_;\nthis.dispatch \x3d dispatch;\nthis.cache \x3d cache;\nthis.finder \x3d finder;\nthis.opts \x3d opts;\nthis.dispatch_map \x3d dispatch_map;\nthis.meta45632 \x3d meta45632;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45631.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._entry_ast(this$__$1,malli.core._entry_keyset(self__.entry_parser));\n}));\n\n(malli.core.t_malli$core45631.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$EntrySchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$EntrySchema$_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_entries(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$EntrySchema$_entry_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.entry_parser;\n}));\n\n(malli.core.t_malli$core45631.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45633){\nvar self__ \x3d this;\nvar _45633__$1 \x3d this;\nreturn self__.meta45632;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$DistributiveSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$DistributiveSchema$_distributive_schema_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$DistributiveSchema$_distribute_to_children$arity$3 \x3d (function (this$,f,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.parent.malli$core$IntoSchema$_into_schema$arity$4(null,self__.properties,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (c){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(c,(2),f,self__.options);\n}),this$__$1.malli$core$Schema$_children$arity$1(null)),self__.options);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45631.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45633,meta45632__$1){\nvar self__ \x3d this;\nvar _45633__$1 \x3d this;\nreturn (new malli.core.t_malli$core45631(self__.form,self__.options,self__.properties,self__.children,self__.meta45609,self__.entry_parser,self__.parent,self__.opts_SINGLEQUOTE_,self__.dispatch,self__.cache,self__.finder,self__.opts,self__.dispatch_map,meta45632__$1));\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar find \x3d (function (){var G__45645 \x3d cljs.core.reduce_kv((function (acc,k,s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,malli.core._validator(s));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.deref(self__.dispatch_map));\nreturn (self__.finder.cljs$core$IFn$_invoke$arity$1 ? self__.finder.cljs$core$IFn$_invoke$arity$1(G__45645) : self__.finder.call(null,G__45645));\n})();\nreturn (function (x){\nvar temp__5823__auto__ \x3d (function (){var G__45646 \x3d (self__.dispatch.cljs$core$IFn$_invoke$arity$1 ? self__.dispatch.cljs$core$IFn$_invoke$arity$1(x) : self__.dispatch.call(null,x));\nreturn (find.cljs$core$IFn$_invoke$arity$1 ? find.cljs$core$IFn$_invoke$arity$1(G__45646) : find.call(null,G__45646));\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar validator \x3d temp__5823__auto__;\nreturn (validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x));\n} else {\nreturn false;\n}\n});\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar __GT_children \x3d cljs.core.reduce_kv((function (acc,k,s){\nvar t \x3d malli.core._transformer(s,transformer,method,options__$1);\nvar G__45649 \x3d acc;\nif(cljs.core.truth_(t)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45649,k,t);\n} else {\nreturn G__45649;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.deref(self__.dispatch_map));\nvar find \x3d (self__.finder.cljs$core$IFn$_invoke$arity$1 ? self__.finder.cljs$core$IFn$_invoke$arity$1(__GT_children) : self__.finder.call(null,__GT_children));\nvar child_transformer \x3d ((cljs.core.seq(__GT_children))?(function (x){\nvar temp__5827__auto__ \x3d (function (){var G__45650 \x3d (self__.dispatch.cljs$core$IFn$_invoke$arity$1 ? self__.dispatch.cljs$core$IFn$_invoke$arity$1(x) : self__.dispatch.call(null,x));\nreturn (find.cljs$core$IFn$_invoke$arity$1 ? find.cljs$core$IFn$_invoke$arity$1(G__45650) : find.call(null,G__45650));\n})();\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn x;\n} else {\nvar t \x3d temp__5827__auto__;\nreturn (t.cljs$core$IFn$_invoke$arity$1 ? t.cljs$core$IFn$_invoke$arity$1(x) : t.call(null,x));\n}\n}):null);\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,child_transformer);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_entries(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar parse \x3d (function (k,s){\nvar p \x3d malli.core._parser(s);\nreturn (function (x){\nreturn malli.impl.util._map_valid((function (p1__45599_SHARP_){\nreturn malli.core.tag(k,p1__45599_SHARP_);\n}),(p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null,x)));\n});\n});\nvar find \x3d (function (){var G__45652 \x3d cljs.core.reduce_kv((function (acc,k,s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,parse(k,s));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.deref(self__.dispatch_map));\nreturn (self__.finder.cljs$core$IFn$_invoke$arity$1 ? self__.finder.cljs$core$IFn$_invoke$arity$1(G__45652) : self__.finder.call(null,G__45652));\n})();\nreturn (function (x){\nvar temp__5827__auto__ \x3d (function (){var G__45653 \x3d (self__.dispatch.cljs$core$IFn$_invoke$arity$1 ? self__.dispatch.cljs$core$IFn$_invoke$arity$1(x) : self__.dispatch.call(null,x));\nreturn (find.cljs$core$IFn$_invoke$arity$1 ? find.cljs$core$IFn$_invoke$arity$1(G__45653) : find.call(null,G__45653));\n})();\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar parser \x3d temp__5827__auto__;\nreturn (parser.cljs$core$IFn$_invoke$arity$1 ? parser.cljs$core$IFn$_invoke$arity$1(x) : parser.call(null,x));\n}\n});\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_children(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar find \x3d (function (){var G__45654 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__45655){\nvar vec__45657 \x3d p__45655;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45657,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45657,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,malli.core._explainer(s,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k)));\n}),cljs.core.PersistentArrayMap.EMPTY,this$__$1.malli$core$EntrySchema$_entries$arity$1(null));\nreturn (self__.finder.cljs$core$IFn$_invoke$arity$1 ? self__.finder.cljs$core$IFn$_invoke$arity$1(G__45654) : self__.finder.call(null,G__45654));\n})();\nreturn (function (x,in$,acc){\nvar temp__5823__auto__ \x3d (function (){var G__45660 \x3d (self__.dispatch.cljs$core$IFn$_invoke$arity$1 ? self__.dispatch.cljs$core$IFn$_invoke$arity$1(x) : self__.dispatch.call(null,x));\nreturn (find.cljs$core$IFn$_invoke$arity$1 ? find.cljs$core$IFn$_invoke$arity$1(G__45660) : find.call(null,G__45660));\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar explainer \x3d temp__5823__auto__;\nreturn (explainer.cljs$core$IFn$_invoke$arity$3 ? explainer.cljs$core$IFn$_invoke$arity$3(x,in$,acc) : explainer.call(null,x,in$,acc));\n} else {\nvar __GT_path \x3d ((((cljs.core.map_QMARK_(x)) \x26\x26 ((self__.dispatch instanceof cljs.core.Keyword))))?(function (p1__45596_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__45596_SHARP_,self__.dispatch);\n}):cljs.core.identity);\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$5((__GT_path.cljs$core$IFn$_invoke$arity$1 ? __GT_path.cljs$core$IFn$_invoke$arity$1(path) : __GT_path.call(null,path)),(__GT_path.cljs$core$IFn$_invoke$arity$1 ? __GT_path.cljs$core$IFn$_invoke$arity$1(in$) : __GT_path.call(null,in$)),this$__$1,x,new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-dispatch-value\x22,\x22malli.core/invalid-dispatch-value\x22,516707675)));\n}\n});\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar unparsers \x3d cljs.core.reduce_kv((function (acc,k,s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,malli.core._unparser(s));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.deref(self__.dispatch_map));\nreturn (function (x){\nif(malli.core.tag_QMARK_(x)){\nvar temp__5827__auto__ \x3d (function (){var G__45664 \x3d new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(x);\nreturn (unparsers.cljs$core$IFn$_invoke$arity$1 ? unparsers.cljs$core$IFn$_invoke$arity$1(G__45664) : unparsers.call(null,G__45664));\n})();\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n} else {\nvar f \x3d temp__5827__auto__;\nvar G__45671 \x3d new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217).cljs$core$IFn$_invoke$arity$1(x);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__45671) : f.call(null,G__45671));\n}\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45631.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (this$,key,default$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._get_entries(this$__$1,key,default$);\n}));\n\n(malli.core.t_malli$core45631.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_entries(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45631.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 14, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22meta45609\x22,\x22meta45609\x22,-1396632501,null),new cljs.core.Symbol(null,\x22entry-parser\x22,\x22entry-parser\x22,-1698599125,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45608\x22,\x22malli.core/t_malli$core45608\x22,-1083762018,null)], null)),new cljs.core.Symbol(null,\x22opts\x27\x22,\x22opts\x27\x22,-1154334730,null),new cljs.core.Symbol(null,\x22dispatch\x22,\x22dispatch\x22,-1335098760,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22finder\x22,\x22finder\x22,1492719066,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22dispatch-map\x22,\x22dispatch-map\x22,1489026142,null),new cljs.core.Symbol(null,\x22meta45632\x22,\x22meta45632\x22,-1528520281,null)], null);\n}));\n\n(malli.core.t_malli$core45631.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45631.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45631\x22);\n\n(malli.core.t_malli$core45631.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45631\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45631.\n */\nmalli.core.__GT_t_malli$core45631 \x3d (function malli$core$__GT_t_malli$core45631(form,options,properties,children,meta45609,entry_parser,parent,opts_SINGLEQUOTE_,dispatch,cache,finder,opts,dispatch_map,meta45632){\nreturn (new malli.core.t_malli$core45631(form,options,properties,children,meta45609,entry_parser,parent,opts_SINGLEQUOTE_,dispatch,cache,finder,opts,dispatch_map,meta45632));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45608 \x3d (function (opts,meta45609){\nthis.opts \x3d opts;\nthis.meta45609 \x3d meta45609;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45608.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45610,meta45609__$1){\nvar self__ \x3d this;\nvar _45610__$1 \x3d this;\nreturn (new malli.core.t_malli$core45608(self__.opts,meta45609__$1));\n}));\n\n(malli.core.t_malli$core45608.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45610){\nvar self__ \x3d this;\nvar _45610__$1 \x3d this;\nreturn self__.meta45609;\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45608.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_entry_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(self__.opts);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22multi\x22,\x22multi\x22,-190293005);\n}\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126).cljs$core$IFn$_invoke$arity$1(self__.opts);\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45608.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nvar opts_SINGLEQUOTE_ \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.opts,cljs.core.select_keys(properties,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22lazy-refs\x22,\x22lazy-refs\x22,409178818)], null))], 0));\nvar entry_parser \x3d malli.core._create_entry_parser(children,opts_SINGLEQUOTE_,options);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_entry_form(parent__$1,properties,entry_parser,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar dispatch \x3d (function (){var G__45625 \x3d new cljs.core.Keyword(null,\x22dispatch\x22,\x22dispatch\x22,1319337009).cljs$core$IFn$_invoke$arity$1(properties);\nvar G__45626 \x3d options;\nreturn (malli.core.eval.cljs$core$IFn$_invoke$arity$2 ? malli.core.eval.cljs$core$IFn$_invoke$arity$2(G__45625,G__45626) : malli.core.eval.call(null,G__45625,G__45626));\n})();\nvar dispatch_map \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,malli.core._entry_entries(entry_parser));\n}),null));\nvar finder \x3d (function (p__45627){\nvar map__45628 \x3d p__45627;\nvar map__45628__$1 \x3d cljs.core.__destructure_map(map__45628);\nvar m \x3d map__45628__$1;\nvar default$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45628__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22default\x22,\x22malli.core/default\x22,-1706204176));\nreturn (function (x){\nreturn (m.cljs$core$IFn$_invoke$arity$2 ? m.cljs$core$IFn$_invoke$arity$2(x,default$) : m.call(null,x,default$));\n});\n});\nif(cljs.core.truth_(dispatch)){\n} else {\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22missing-property\x22,\x22malli.core/missing-property\x22,-818756333),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),new cljs.core.Keyword(null,\x22dispatch\x22,\x22dispatch\x22,1319337009)], null));\n}\n\nreturn (new malli.core.t_malli$core45631(form,options,properties,children,self__.meta45609,entry_parser,parent__$1,opts_SINGLEQUOTE_,dispatch,cache,finder,self__.opts,dispatch_map,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45608.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core45608.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22meta45609\x22,\x22meta45609\x22,-1396632501,null)], null);\n}));\n\n(malli.core.t_malli$core45608.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45608.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45608\x22);\n\n(malli.core.t_malli$core45608.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45608\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45608.\n */\nmalli.core.__GT_t_malli$core45608 \x3d (function malli$core$__GT_t_malli$core45608(opts,meta45609){\nreturn (new malli.core.t_malli$core45608(opts,meta45609));\n});\n\n\nmalli.core._multi_schema \x3d (function malli$core$_multi_schema(var_args){\nvar G__45602 \x3d arguments.length;\nswitch (G__45602) {\ncase 0:\nreturn malli.core._multi_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._multi_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._multi_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core._multi_schema.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22naked-keys\x22,\x22naked-keys\x22,-90769828),true], null));\n}));\n\n(malli.core._multi_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn (new malli.core.t_malli$core45608(opts,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._multi_schema.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.RegexSchema}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.RefSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45725 \x3d (function (form,options,vec__45706,properties,map__45697,children,meta45699,type_properties,rf,p__45705,parent,p__45704,ref,__GT_parser,cache,lazy,p__45696,allow_invalid_refs,map__45709,meta45726){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.vec__45706 \x3d vec__45706;\nthis.properties \x3d properties;\nthis.map__45697 \x3d map__45697;\nthis.children \x3d children;\nthis.meta45699 \x3d meta45699;\nthis.type_properties \x3d type_properties;\nthis.rf \x3d rf;\nthis.p__45705 \x3d p__45705;\nthis.parent \x3d parent;\nthis.p__45704 \x3d p__45704;\nthis.ref \x3d ref;\nthis.__GT_parser \x3d __GT_parser;\nthis.cache \x3d cache;\nthis.lazy \x3d lazy;\nthis.p__45696 \x3d p__45696;\nthis.allow_invalid_refs \x3d allow_invalid_refs;\nthis.map__45709 \x3d map__45709;\nthis.meta45726 \x3d meta45726;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45725.prototype.malli$core$RefSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$RefSchema$_ref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.ref;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RefSchema$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null));\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._to_value_ast(this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d (function (this$,_,___$1,___$2){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22potentially-recursive-seqex\x22,\x22malli.core/potentially-recursive-seqex\x22,-1574993850),this$__$1);\n}));\n\n(malli.core.t_malli$core45725.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45727){\nvar self__ \x3d this;\nvar _45727__$1 \x3d this;\nreturn self__.meta45726;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45725.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45727,meta45726__$1){\nvar self__ \x3d this;\nvar _45727__$1 \x3d this;\nreturn (new malli.core.t_malli$core45725(self__.form,self__.options,self__.vec__45706,self__.properties,self__.map__45697,self__.children,self__.meta45699,self__.type_properties,self__.rf,self__.p__45705,self__.parent,self__.p__45704,self__.ref,self__.__GT_parser,self__.cache,self__.lazy,self__.p__45696,self__.allow_invalid_refs,self__.map__45709,meta45726__$1));\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar validator \x3d malli.core._memoize((function (){\nreturn malli.core._validator((self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null)));\n}));\nreturn (function (x){\nvar fexpr__45735 \x3d validator();\nreturn (fexpr__45735.cljs$core$IFn$_invoke$arity$1 ? fexpr__45735.cljs$core$IFn$_invoke$arity$1(x) : fexpr__45735.call(null,x));\n});\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar this_transformer \x3d malli.core._value_transformer(transformer,this$__$1,method,options__$1);\nvar deref_transformer \x3d malli.core._memoize((function (){\nreturn malli.core._transformer((self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null)),transformer,method,options__$1);\n}));\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,(function (x){\nvar temp__5827__auto__ \x3d deref_transformer();\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn x;\n} else {\nvar t \x3d temp__5827__auto__;\nreturn (t.cljs$core$IFn$_invoke$arity$1 ? t.cljs$core$IFn$_invoke$arity$1(x) : t.call(null,x));\n}\n}));\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar accept \x3d (function (){\nreturn malli.core._inner(walker,(self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null)),cljs.core.into.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),(0)], null)),malli.core._update(options__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22walked-refs\x22,\x22malli.core/walked-refs\x22,-2010140962),(function (p1__45686_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d p1__45686_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentHashSet.EMPTY;\n}\n})(),self__.ref);\n})));\n});\nif(cljs.core.truth_(malli.core._accept(walker,this$__$1,path,options__$1))){\nif(((cljs.core.not((function (){var fexpr__45739 \x3d malli.core._boolean_fn(new cljs.core.Keyword(\x22malli.core\x22,\x22walk-refs\x22,\x22malli.core/walk-refs\x22,755904802).cljs$core$IFn$_invoke$arity$2(options__$1,false));\nreturn (fexpr__45739.cljs$core$IFn$_invoke$arity$1 ? fexpr__45739.cljs$core$IFn$_invoke$arity$1(self__.ref) : fexpr__45739.call(null,self__.ref));\n})())) || (cljs.core.contains_QMARK_(new cljs.core.Keyword(\x22malli.core\x22,\x22walked-refs\x22,\x22malli.core/walked-refs\x22,-2010140962).cljs$core$IFn$_invoke$arity$1(options__$1),self__.ref)))){\nreturn malli.core._outer(walker,this$__$1,path,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.ref], null),options__$1);\n} else {\nreturn malli.core._outer(walker,this$__$1,path,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [accept()], null),options__$1);\n}\n} else {\nreturn null;\n}\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._parser) : self__.__GT_parser.call(null,malli.core._parser));\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar explainer \x3d malli.core._memoize((function (){\nreturn malli.core._explainer((self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null)),cljs.core.into.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),(0)], null)));\n}));\nreturn (function (x,in$,acc){\nvar fexpr__45742 \x3d explainer();\nreturn (fexpr__45742.cljs$core$IFn$_invoke$arity$3 ? fexpr__45742.cljs$core$IFn$_invoke$arity$3(x,in$,acc) : fexpr__45742.call(null,x,in$,acc));\n});\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.__GT_parser.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_parser.cljs$core$IFn$_invoke$arity$1(malli.core._unparser) : self__.__GT_parser.call(null,malli.core._unparser));\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45725.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,(0))){\nreturn malli.core._pointer(self__.ref,(self__.rf.cljs$core$IFn$_invoke$arity$0 ? self__.rf.cljs$core$IFn$_invoke$arity$0() : self__.rf.call(null)),self__.options);\n} else {\nreturn default$;\n}\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45725.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,(0))){\nreturn malli.core._set_children(this$__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null));\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22index-out-of-bounds\x22,\x22malli.core/index-out-of-bounds\x22,-371273844),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key], null));\n}\n}));\n\n(malli.core.t_malli$core45725.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22vec__45706\x22,\x22vec__45706\x22,816016033,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22map__45697\x22,\x22map__45697\x22,511529288,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22meta45699\x22,\x22meta45699\x22,-84913815,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22p__45705\x22,\x22p__45705\x22,-1117309940,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45698\x22,\x22malli.core/t_malli$core45698\x22,267496255,null)], null)),new cljs.core.Symbol(null,\x22p__45704\x22,\x22p__45704\x22,-561782100,null),new cljs.core.Symbol(null,\x22ref\x22,\x22ref\x22,-1364538802,null),new cljs.core.Symbol(null,\x22-\x3eparser\x22,\x22-\x3eparser\x22,1105019639,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22lazy\x22,\x22lazy\x22,1215984346,null),new cljs.core.Symbol(null,\x22p__45696\x22,\x22p__45696\x22,1134263580,null),new cljs.core.Symbol(null,\x22allow-invalid-refs\x22,\x22allow-invalid-refs\x22,-815552802,null),new cljs.core.Symbol(null,\x22map__45709\x22,\x22map__45709\x22,1235243838,null),new cljs.core.Symbol(null,\x22meta45726\x22,\x22meta45726\x22,668602806,null)], null);\n}));\n\n(malli.core.t_malli$core45725.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45725.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45725\x22);\n\n(malli.core.t_malli$core45725.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45725\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45725.\n */\nmalli.core.__GT_t_malli$core45725 \x3d (function malli$core$__GT_t_malli$core45725(form,options,vec__45706,properties,map__45697,children,meta45699,type_properties,rf,p__45705,parent,p__45704,ref,__GT_parser,cache,lazy,p__45696,allow_invalid_refs,map__45709,meta45726){\nreturn (new malli.core.t_malli$core45725(form,options,vec__45706,properties,map__45697,children,meta45699,type_properties,rf,p__45705,parent,p__45704,ref,__GT_parser,cache,lazy,p__45696,allow_invalid_refs,map__45709,meta45726));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45698 \x3d (function (p__45696,map__45697,lazy,type_properties,meta45699){\nthis.p__45696 \x3d p__45696;\nthis.map__45697 \x3d map__45697;\nthis.lazy \x3d lazy;\nthis.type_properties \x3d type_properties;\nthis.meta45699 \x3d meta45699;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45698.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45700,meta45699__$1){\nvar self__ \x3d this;\nvar _45700__$1 \x3d this;\nreturn (new malli.core.t_malli$core45698(self__.p__45696,self__.map__45697,self__.lazy,self__.type_properties,meta45699__$1));\n}));\n\n(malli.core.t_malli$core45698.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45700){\nvar self__ \x3d this;\nvar _45700__$1 \x3d this;\nreturn self__.meta45699;\n}));\n\n(malli.core.t_malli$core45698.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45698.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_value_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core45698.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45698.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967);\n}));\n\n(malli.core.t_malli$core45698.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type_properties;\n}));\n\n(malli.core.t_malli$core45698.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,p__45704,p__45705){\nvar self__ \x3d this;\nvar vec__45706 \x3d p__45704;\nvar ref \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45706,(0),null);\nvar children \x3d vec__45706;\nvar map__45709 \x3d p__45705;\nvar map__45709__$1 \x3d cljs.core.__destructure_map(map__45709);\nvar options \x3d map__45709__$1;\nvar allow_invalid_refs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45709__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22allow-invalid-refs\x22,\x22malli.core/allow-invalid-refs\x22,-1863169617));\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),properties,children,(1),(1));\n\nif(malli.core._reference_QMARK_(ref)){\n} else {\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-ref\x22,\x22malli.core/invalid-ref\x22,-1109933109),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),ref], null));\n}\n\nvar rf \x3d (function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d self__.lazy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn malli.core._memoize((function (){\nvar G__45713 \x3d malli.registry._schema(malli.core._registry.cljs$core$IFn$_invoke$arity$1(options),ref);\nvar G__45714 \x3d options;\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(G__45713,G__45714) : malli.core.schema.call(null,G__45713,G__45714));\n}));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var temp__5825__auto__ \x3d malli.registry._schema(malli.core._registry.cljs$core$IFn$_invoke$arity$1(options),ref);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nreturn malli.core._memoize((function (){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(s,options) : malli.core.schema.call(null,s,options));\n}));\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nif(cljs.core.truth_(allow_invalid_refs)){\nreturn null;\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-ref\x22,\x22malli.core/invalid-ref\x22,-1109933109),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),ref], null));\n}\n}\n}\n})();\nvar children__$1 \x3d cljs.core.vec(children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,cljs.core.identity,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_parser \x3d (function (f){\nvar parser \x3d malli.core._memoize((function (){\nvar G__45721 \x3d (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__45721) : f.call(null,G__45721));\n}));\nreturn (function (x){\nvar fexpr__45723 \x3d parser();\nreturn (fexpr__45723.cljs$core$IFn$_invoke$arity$1 ? fexpr__45723.cljs$core$IFn$_invoke$arity$1(x) : fexpr__45723.call(null,x));\n});\n});\nreturn (new malli.core.t_malli$core45725(form,options,vec__45706,properties,self__.map__45697,children__$1,self__.meta45699,self__.type_properties,rf,p__45705,parent__$1,p__45704,ref,__GT_parser,cache,self__.lazy,self__.p__45696,allow_invalid_refs,map__45709__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45698.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45698.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p__45696\x22,\x22p__45696\x22,1134263580,null),new cljs.core.Symbol(null,\x22map__45697\x22,\x22map__45697\x22,511529288,null),new cljs.core.Symbol(null,\x22lazy\x22,\x22lazy\x22,1215984346,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),new cljs.core.Symbol(null,\x22meta45699\x22,\x22meta45699\x22,-84913815,null)], null);\n}));\n\n(malli.core.t_malli$core45698.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45698.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45698\x22);\n\n(malli.core.t_malli$core45698.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45698\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45698.\n */\nmalli.core.__GT_t_malli$core45698 \x3d (function malli$core$__GT_t_malli$core45698(p__45696,map__45697,lazy,type_properties,meta45699){\nreturn (new malli.core.t_malli$core45698(p__45696,map__45697,lazy,type_properties,meta45699));\n});\n\n\nmalli.core._ref_schema \x3d (function malli$core$_ref_schema(var_args){\nvar G__45690 \x3d arguments.length;\nswitch (G__45690) {\ncase 0:\nreturn malli.core._ref_schema.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core._ref_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._ref_schema.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core._ref_schema.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(malli.core._ref_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__45696){\nvar map__45697 \x3d p__45696;\nvar map__45697__$1 \x3d cljs.core.__destructure_map(map__45697);\nvar lazy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45697__$1,new cljs.core.Keyword(null,\x22lazy\x22,\x22lazy\x22,-424547181));\nvar type_properties \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45697__$1,new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126));\nreturn (new malli.core.t_malli$core45698(p__45696,map__45697__$1,lazy,type_properties,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n}));\n\n(malli.core._ref_schema.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.RegexSchema}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.RefSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45775 \x3d (function (form,options,child,properties,children,parent,raw,type,meta45760,internal,cache,id,p__45754,map__45755,meta45776){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.child \x3d child;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.parent \x3d parent;\nthis.raw \x3d raw;\nthis.type \x3d type;\nthis.meta45760 \x3d meta45760;\nthis.internal \x3d internal;\nthis.cache \x3d cache;\nthis.id \x3d id;\nthis.p__45754 \x3d p__45754;\nthis.map__45755 \x3d map__45755;\nthis.meta45776 \x3d meta45776;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45775.prototype.malli$core$RefSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$RefSchema$_ref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.id;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RefSchema$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.child;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core.truth_(self__.id)){\nreturn malli.core._ast(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),self__.type,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),self__.id], null),this$__$1.malli$core$Schema$_properties$arity$1(null),this$__$1.malli$core$Schema$_options$arity$1(null));\n} else {\nif(cljs.core.truth_(self__.raw)){\nreturn malli.core._to_value_ast(this$__$1);\n} else {\nreturn malli.core._to_child_ast(this$__$1);\n\n}\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_op_QMARK_(self__.child);\n} else {\nreturn false;\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_validator(self__.child);\n} else {\nreturn malli.impl.regex.item_validator(malli.core._validator(self__.child));\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_explainer(self__.child,path);\n} else {\nreturn malli.impl.regex.item_explainer(path,self__.child,malli.core._explainer(self__.child,path));\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_parser(self__.child);\n} else {\nreturn malli.impl.regex.item_parser((malli.core.parser.cljs$core$IFn$_invoke$arity$1 ? malli.core.parser.cljs$core$IFn$_invoke$arity$1(self__.child) : malli.core.parser.call(null,self__.child)));\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_unparser(self__.child);\n} else {\nreturn malli.impl.regex.item_unparser((malli.core.unparser.cljs$core$IFn$_invoke$arity$1 ? malli.core.unparser.cljs$core$IFn$_invoke$arity$1(self__.child) : malli.core.unparser.call(null,self__.child)));\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d (function (_,transformer,method,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.internal)){\nreturn malli.core._regex_transformer(self__.child,transformer,method,options__$1);\n} else {\nreturn malli.impl.regex.item_transformer(method,malli.core._validator(self__.child),(function (){var or__5025__auto__ \x3d malli.core._transformer(self__.child,transformer,method,options__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n})());\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d (function (_,nested_QMARK_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d nested_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(self__.internal);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null);\n} else {\nreturn malli.core._regex_min_max(self__.child,nested_QMARK_);\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45777){\nvar self__ \x3d this;\nvar _45777__$1 \x3d this;\nreturn self__.meta45776;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45775.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45777,meta45776__$1){\nvar self__ \x3d this;\nvar _45777__$1 \x3d this;\nreturn (new malli.core.t_malli$core45775(self__.form,self__.options,self__.child,self__.properties,self__.children,self__.parent,self__.raw,self__.type,self__.meta45760,self__.internal,self__.cache,self__.id,self__.p__45754,self__.map__45755,meta45776__$1));\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._validator(self__.child);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,self__.children,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core.truth_(malli.core._accept(walker,this$__$1,path,options__$1))){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.not(self__.id);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__45805 \x3d malli.core._boolean_fn(new cljs.core.Keyword(\x22malli.core\x22,\x22walk-schema-refs\x22,\x22malli.core/walk-schema-refs\x22,-1140065954).cljs$core$IFn$_invoke$arity$2(options__$1,false));\nreturn (fexpr__45805.cljs$core$IFn$_invoke$arity$1 ? fexpr__45805.cljs$core$IFn$_invoke$arity$1(self__.id) : fexpr__45805.call(null,self__.id));\n}\n})())){\nreturn malli.core._outer(walker,this$__$1,path,malli.core._inner_indexed(walker,path,self__.children,options__$1),options__$1);\n} else {\nreturn malli.core._outer(walker,this$__$1,path,self__.children,options__$1);\n}\n} else {\nreturn null;\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._parser(self__.child);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._explainer(self__.child,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,(0)));\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._unparser(self__.child);\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45775.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,(0))){\nreturn self__.child;\n} else {\nreturn default$;\n}\n}));\n\n(malli.core.t_malli$core45775.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,(0))){\nreturn malli.core._set_children(this$__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null));\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22index-out-of-bounds\x22,\x22malli.core/index-out-of-bounds\x22,-371273844),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key], null));\n}\n}));\n\n(malli.core.t_malli$core45775.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 15, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22child\x22,\x22child\x22,-2030468224,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45759\x22,\x22malli.core/t_malli$core45759\x22,-1370502523,null)], null)),new cljs.core.Symbol(null,\x22raw\x22,\x22raw\x22,-1049784497,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22meta45760\x22,\x22meta45760\x22,-136201002,null),new cljs.core.Symbol(null,\x22internal\x22,\x22internal\x22,785661430,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22p__45754\x22,\x22p__45754\x22,1521102174,null),new cljs.core.Symbol(null,\x22map__45755\x22,\x22map__45755\x22,2018228927,null),new cljs.core.Symbol(null,\x22meta45776\x22,\x22meta45776\x22,-658681733,null)], null);\n}));\n\n(malli.core.t_malli$core45775.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45775.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45775\x22);\n\n(malli.core.t_malli$core45775.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45775\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45775.\n */\nmalli.core.__GT_t_malli$core45775 \x3d (function malli$core$__GT_t_malli$core45775(form,options,child,properties,children,parent,raw,type,meta45760,internal,cache,id,p__45754,map__45755,meta45776){\nreturn (new malli.core.t_malli$core45775(form,options,child,properties,children,parent,raw,type,meta45760,internal,cache,id,p__45754,map__45755,meta45776));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45759 \x3d (function (p__45754,map__45755,id,raw,internal,type,meta45760){\nthis.p__45754 \x3d p__45754;\nthis.map__45755 \x3d map__45755;\nthis.id \x3d id;\nthis.raw \x3d raw;\nthis.internal \x3d internal;\nthis.type \x3d type;\nthis.meta45760 \x3d meta45760;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45759.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45761,meta45760__$1){\nvar self__ \x3d this;\nvar _45761__$1 \x3d this;\nreturn (new malli.core.t_malli$core45759(self__.p__45754,self__.map__45755,self__.id,self__.raw,self__.internal,self__.type,meta45760__$1));\n}));\n\n(malli.core.t_malli$core45759.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45761){\nvar self__ \x3d this;\nvar _45761__$1 \x3d this;\nreturn self__.meta45760;\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45759.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nvar fexpr__45766 \x3d (cljs.core.truth_(self__.internal)?malli.core._from_value_ast:malli.core._from_child_ast);\nreturn (fexpr__45766.cljs$core$IFn$_invoke$arity$3 ? fexpr__45766.cljs$core$IFn$_invoke$arity$3(parent__$1,ast,options) : fexpr__45766.call(null,parent__$1,ast,options));\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type;\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45759.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(self__.type,properties,children,(1),(1));\n\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45752_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45752_SHARP_,options) : malli.core.schema.call(null,p1__45752_SHARP_,options));\n}),children);\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(children__$1,(0));\nvar form \x3d (new cljs.core.Delay((function (){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.empty_QMARK_(properties);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d self__.id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d self__.raw;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn malli.core._form(child);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core45775(form,options,child,properties,children__$1,parent__$1,self__.raw,self__.type,self__.meta45760,self__.internal,cache,self__.id,self__.p__45754,self__.map__45755,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45759.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45759.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p__45754\x22,\x22p__45754\x22,1521102174,null),new cljs.core.Symbol(null,\x22map__45755\x22,\x22map__45755\x22,2018228927,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22raw\x22,\x22raw\x22,-1049784497,null),new cljs.core.Symbol(null,\x22internal\x22,\x22internal\x22,785661430,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22meta45760\x22,\x22meta45760\x22,-136201002,null)], null);\n}));\n\n(malli.core.t_malli$core45759.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45759.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45759\x22);\n\n(malli.core.t_malli$core45759.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45759\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45759.\n */\nmalli.core.__GT_t_malli$core45759 \x3d (function malli$core$__GT_t_malli$core45759(p__45754,map__45755,id,raw,internal,type,meta45760){\nreturn (new malli.core.t_malli$core45759(p__45754,map__45755,id,raw,internal,type,meta45760));\n});\n\n\nmalli.core._schema_schema \x3d (function malli$core$_schema_schema(p__45754){\nvar map__45755 \x3d p__45754;\nvar map__45755__$1 \x3d cljs.core.__destructure_map(map__45755);\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45755__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar raw \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45755__$1,new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272));\nvar internal \x3d (function (){var or__5025__auto__ \x3d id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn raw;\n}\n})();\nvar type \x3d (cljs.core.truth_(internal)?new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863):new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791));\nreturn (new malli.core.t_malli$core45759(p__45754,map__45755__$1,id,raw,internal,type,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.FunctionSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45883 \x3d (function (form,input,options,guard,map__45873,properties,meta45862,children,vec__45874,parent,__GT_checker,p__45872,output,function_checker,cache,meta45884){\nthis.form \x3d form;\nthis.input \x3d input;\nthis.options \x3d options;\nthis.guard \x3d guard;\nthis.map__45873 \x3d map__45873;\nthis.properties \x3d properties;\nthis.meta45862 \x3d meta45862;\nthis.children \x3d children;\nthis.vec__45874 \x3d vec__45874;\nthis.parent \x3d parent;\nthis.__GT_checker \x3d __GT_checker;\nthis.p__45872 \x3d p__45872;\nthis.output \x3d output;\nthis.function_checker \x3d function_checker;\nthis.cache \x3d cache;\nthis.meta45884 \x3d meta45884;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45883.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45885,meta45884__$1){\nvar self__ \x3d this;\nvar _45885__$1 \x3d this;\nreturn (new malli.core.t_malli$core45883(self__.form,self__.input,self__.options,self__.guard,self__.map__45873,self__.properties,self__.meta45862,self__.children,self__.vec__45874,self__.parent,self__.__GT_checker,self__.p__45872,self__.output,self__.function_checker,self__.cache,meta45884__$1));\n}));\n\n(malli.core.t_malli$core45883.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45885){\nvar self__ \x3d this;\nvar _45885__$1 \x3d this;\nreturn self__.meta45884;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45883.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nvar G__45894 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22\x3d\x3e\x22,\x22\x3d\x3e\x22,1841166128),new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(self__.input) : malli.core.ast.call(null,self__.input)),new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(self__.output) : malli.core.ast.call(null,self__.output))], null);\nvar G__45894__$1 \x3d (cljs.core.truth_(self__.guard)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45894,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811),(malli.core.ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.ast.cljs$core$IFn$_invoke$arity$1(self__.guard) : malli.core.ast.call(null,self__.guard))):G__45894);\nif(cljs.core.truth_(self__.properties)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45894__$1,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552),self__.properties);\n} else {\nreturn G__45894__$1;\n}\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar temp__5823__auto__ \x3d (self__.__GT_checker.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_checker.cljs$core$IFn$_invoke$arity$1(this$__$1) : self__.__GT_checker.call(null,this$__$1));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar checker \x3d temp__5823__auto__;\nvar validator \x3d (function (x){\nreturn ((checker.cljs$core$IFn$_invoke$arity$1 ? checker.cljs$core$IFn$_invoke$arity$1(x) : checker.call(null,x)) \x3d\x3d null);\n});\nreturn (function (x){\nreturn ((cljs.core.ifn_QMARK_(x)) \x26\x26 (validator(x)));\n});\n} else {\nreturn cljs.core.ifn_QMARK_;\n}\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar temp__5823__auto__ \x3d (self__.__GT_checker.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_checker.cljs$core$IFn$_invoke$arity$1(this$__$1) : self__.__GT_checker.call(null,this$__$1));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar checker \x3d temp__5823__auto__;\nreturn (function malli$core$explain(x,in$,acc){\nif((!(cljs.core.fn_QMARK_(x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nvar temp__5823__auto____$1 \x3d (checker.cljs$core$IFn$_invoke$arity$1 ? checker.cljs$core$IFn$_invoke$arity$1(x) : checker.call(null,x));\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar res \x3d temp__5823__auto____$1;\nvar map__45902 \x3d res;\nvar map__45902__$1 \x3d cljs.core.__destructure_map(map__45902);\nvar explain_input \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45902__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22explain-input\x22,\x22malli.core/explain-input\x22,1441627811));\nvar explain_output \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45902__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22explain-output\x22,\x22malli.core/explain-output\x22,-124321573));\nvar explain_guard \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45902__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22explain-guard\x22,\x22malli.core/explain-guard\x22,-1119572847));\nvar res__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(res,new cljs.core.Keyword(\x22malli.core\x22,\x22explain-input\x22,\x22malli.core/explain-input\x22,1441627811),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22malli.core\x22,\x22explain-output\x22,\x22malli.core/explain-output\x22,-124321573),new cljs.core.Keyword(\x22malli.core\x22,\x22explain-guard\x22,\x22malli.core/explain-guard\x22,-1119572847)], 0));\nvar map__45903 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x),new cljs.core.Keyword(null,\x22check\x22,\x22check\x22,1226308904),res__$1);\nvar map__45903__$1 \x3d cljs.core.__destructure_map(map__45903);\nvar error \x3d map__45903__$1;\nvar path__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45903__$1,new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168));\nvar in$__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45903__$1,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865));\nvar _push \x3d (function (acc__$1,i,e){\nvar G__45905 \x3d acc__$1;\nif(cljs.core.truth_(e)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__45905,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45850_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(p1__45850_SHARP_,new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path__$1,i),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$__$1], 0));\n}),new cljs.core.Keyword(null,\x22errors\x22,\x22errors\x22,-908790718).cljs$core$IFn$_invoke$arity$1(e)));\n} else {\nreturn G__45905;\n}\n});\nreturn _push(_push(_push(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,error),(0),explain_input),(1),explain_output),(2),explain_guard);\n} else {\nreturn acc;\n}\n}\n});\n} else {\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function malli$core$explain(x,in$,acc){\nif(cljs.core.not((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n});\n}\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$FunctionSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45883.prototype.malli$core$FunctionSchema$_function_schema_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$FunctionSchema$_function_schema_arities$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$__$1], null);\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$FunctionSchema$_function_info$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar map__45908 \x3d malli.core._regex_min_max(self__.input,false);\nvar map__45908__$1 \x3d cljs.core.__destructure_map(map__45908);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45908__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45908__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar G__45913 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min,new cljs.core.Keyword(null,\x22arity\x22,\x22arity\x22,-1808556135),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(min,max))?min:new cljs.core.Keyword(null,\x22varargs\x22,\x22varargs\x22,1030150858)),new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),self__.input,new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043),self__.output], null);\nvar G__45913__$1 \x3d (cljs.core.truth_(self__.guard)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45913,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811),self__.guard):G__45913);\nif(cljs.core.truth_(max)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45913__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max);\n} else {\nreturn G__45913__$1;\n}\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$FunctionSchema$_instrument_f$arity$4 \x3d (function (schema,p__45915,f,_options){\nvar self__ \x3d this;\nvar map__45916 \x3d p__45915;\nvar map__45916__$1 \x3d cljs.core.__destructure_map(map__45916);\nvar props \x3d map__45916__$1;\nvar scope \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45916__$1,new cljs.core.Keyword(null,\x22scope\x22,\x22scope\x22,-439358418));\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45916__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nvar gen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45916__$1,new cljs.core.Keyword(null,\x22gen\x22,\x22gen\x22,142575302));\nvar schema__$1 \x3d this;\nvar map__45917 \x3d schema__$1.malli$core$FunctionSchema$_function_info$arity$1(null);\nvar map__45917__$1 \x3d cljs.core.__destructure_map(map__45917);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45917__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45917__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar input__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45917__$1,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961));\nvar output__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45917__$1,new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043));\nvar guard__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45917__$1,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811));\nvar vec__45918 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._validator,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [input__$1,output__$1], null));\nvar validate_input \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45918,(0),null);\nvar validate_output \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45918,(1),null);\nvar validate_guard \x3d (function (){var or__5025__auto__ \x3d (function (){var G__45924 \x3d guard__$1;\nif((G__45924 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._validator(G__45924);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.any_QMARK_;\n}\n})();\nvar vec__45921 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45859_SHARP_){\nreturn cljs.core.contains_QMARK_(scope,p1__45859_SHARP_);\n}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043),new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811)], null));\nvar wrap_input \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45921,(0),null);\nvar wrap_output \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45921,(1),null);\nvar wrap_guard \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45921,(2),null);\nvar f__$1 \x3d (function (){var or__5025__auto__ \x3d (cljs.core.truth_(gen)?(gen.cljs$core$IFn$_invoke$arity$1 ? gen.cljs$core$IFn$_invoke$arity$1(schema__$1) : gen.call(null,schema__$1)):f);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22missing-function\x22,\x22malli.core/missing-function\x22,1913462487),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22props\x22,\x22props\x22,453281727),props], null));\n}\n})();\nreturn (function() { \nvar G__47771__delegate \x3d function (args){\nvar args__$1 \x3d cljs.core.vec(args);\nvar arity \x3d cljs.core.count(args__$1);\nif(cljs.core.truth_(wrap_input)){\nif((((min \x3c\x3d arity)) \x26\x26 ((arity \x3c\x3d (function (){var or__5025__auto__ \x3d max;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.impl.util._PLUS_max_size_PLUS_;\n}\n})())))){\n} else {\nvar G__45934_47773 \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-arity\x22,\x22malli.core/invalid-arity\x22,577014581);\nvar G__45935_47774 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22arity\x22,\x22arity\x22,-1808556135),arity,new cljs.core.Keyword(null,\x22arities\x22,\x22arities\x22,-1781122917),cljs.core.PersistentHashSet.createAsIfByAssoc([new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),min,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max], null)]),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args__$1,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input__$1,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema__$1], null);\n(report.cljs$core$IFn$_invoke$arity$2 ? report.cljs$core$IFn$_invoke$arity$2(G__45934_47773,G__45935_47774) : report.call(null,G__45934_47773,G__45935_47774));\n}\n\nif(cljs.core.truth_((validate_input.cljs$core$IFn$_invoke$arity$1 ? validate_input.cljs$core$IFn$_invoke$arity$1(args__$1) : validate_input.call(null,args__$1)))){\n} else {\nvar G__45936_47775 \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-input\x22,\x22malli.core/invalid-input\x22,2010057279);\nvar G__45937_47776 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args__$1,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema__$1], null);\n(report.cljs$core$IFn$_invoke$arity$2 ? report.cljs$core$IFn$_invoke$arity$2(G__45936_47775,G__45937_47776) : report.call(null,G__45936_47775,G__45937_47776));\n}\n} else {\n}\n\nvar value \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f__$1,args__$1);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d wrap_output;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not((validate_output.cljs$core$IFn$_invoke$arity$1 ? validate_output.cljs$core$IFn$_invoke$arity$1(value) : validate_output.call(null,value)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__45942_47777 \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-output\x22,\x22malli.core/invalid-output\x22,-147363519);\nvar G__45943_47778 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043),output__$1,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args__$1,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema__$1], null);\n(report.cljs$core$IFn$_invoke$arity$2 ? report.cljs$core$IFn$_invoke$arity$2(G__45942_47777,G__45943_47778) : report.call(null,G__45942_47777,G__45943_47778));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d wrap_guard;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not((function (){var G__45944 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [args__$1,value], null);\nreturn (validate_guard.cljs$core$IFn$_invoke$arity$1 ? validate_guard.cljs$core$IFn$_invoke$arity$1(G__45944) : validate_guard.call(null,G__45944));\n})());\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__45945_47780 \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-guard\x22,\x22malli.core/invalid-guard\x22,-946413611);\nvar G__45946_47781 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811),guard__$1,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args__$1,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema__$1], null);\n(report.cljs$core$IFn$_invoke$arity$2 ? report.cljs$core$IFn$_invoke$arity$2(G__45945_47780,G__45946_47781) : report.call(null,G__45945_47780,G__45946_47781));\n} else {\n}\n\nreturn value;\n};\nvar G__47771 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__47782__i \x3d 0, G__47782__a \x3d new Array(arguments.length - 0);\nwhile (G__47782__i \x3c G__47782__a.length) {G__47782__a[G__47782__i] \x3d arguments[G__47782__i + 0]; ++G__47782__i;}\n args \x3d new cljs.core.IndexedSeq(G__47782__a,0,null);\n} \nreturn G__47771__delegate.call(this,args);};\nG__47771.cljs$lang$maxFixedArity \x3d 0;\nG__47771.cljs$lang$applyTo \x3d (function (arglist__47783){\nvar args \x3d cljs.core.seq(arglist__47783);\nreturn G__47771__delegate(args);\n});\nG__47771.cljs$core$IFn$_invoke$arity$variadic \x3d G__47771__delegate;\nreturn G__47771;\n})()\n;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45883.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45883.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45883.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45883.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45883.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 16, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22input\x22,\x22input\x22,-2097503808,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22guard\x22,\x22guard\x22,767383716,null),new cljs.core.Symbol(null,\x22map__45873\x22,\x22map__45873\x22,1884493733,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22meta45862\x22,\x22meta45862\x22,1377257640,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22vec__45874\x22,\x22vec__45874\x22,740242571,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45861\x22,\x22malli.core/t_malli$core45861\x22,520458589,null)], null)),new cljs.core.Symbol(null,\x22-\x3echecker\x22,\x22-\x3echecker\x22,964293264,null),new cljs.core.Symbol(null,\x22p__45872\x22,\x22p__45872\x22,465315665,null),new cljs.core.Symbol(null,\x22output\x22,\x22output\x22,534662484,null),new cljs.core.Symbol(null,\x22function-checker\x22,\x22function-checker\x22,131742871,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22meta45884\x22,\x22meta45884\x22,-1561149716,null)], null);\n}));\n\n(malli.core.t_malli$core45883.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45883.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45883\x22);\n\n(malli.core.t_malli$core45883.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45883\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45883.\n */\nmalli.core.__GT_t_malli$core45883 \x3d (function malli$core$__GT_t_malli$core45883(form,input,options,guard,map__45873,properties,meta45862,children,vec__45874,parent,__GT_checker,p__45872,output,function_checker,cache,meta45884){\nreturn (new malli.core.t_malli$core45883(form,input,options,guard,map__45873,properties,meta45862,children,vec__45874,parent,__GT_checker,p__45872,output,function_checker,cache,meta45884));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45861 \x3d (function (meta45862){\nthis.meta45862 \x3d meta45862;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45861.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45863,meta45862__$1){\nvar self__ \x3d this;\nvar _45863__$1 \x3d this;\nreturn (new malli.core.t_malli$core45861(meta45862__$1));\n}));\n\n(malli.core.t_malli$core45861.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45863){\nvar self__ \x3d this;\nvar _45863__$1 \x3d this;\nreturn self__.meta45862;\n}));\n\n(malli.core.t_malli$core45861.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45861.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,p__45864,options){\nvar self__ \x3d this;\nvar map__45865 \x3d p__45864;\nvar map__45865__$1 \x3d cljs.core.__destructure_map(map__45865);\nvar input \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45865__$1,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961));\nvar output \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45865__$1,new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043));\nvar guard \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45865__$1,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811));\nvar properties \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45865__$1,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552));\nvar parent__$1 \x3d this;\nreturn parent__$1.malli$core$IntoSchema$_into_schema$arity$4(null,properties,(function (){var G__45867 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(input,options) : malli.core.from_ast.call(null,input,options)),(malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(output,options) : malli.core.from_ast.call(null,output,options))], null);\nif(cljs.core.truth_(guard)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__45867,(malli.core.from_ast.cljs$core$IFn$_invoke$arity$1 ? malli.core.from_ast.cljs$core$IFn$_invoke$arity$1(guard) : malli.core.from_ast.call(null,guard)));\n} else {\nreturn G__45867;\n}\n})(),options);\n}));\n\n(malli.core.t_malli$core45861.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45861.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.Keyword(null,\x22\x3d\x3e\x22,\x22\x3d\x3e\x22,1841166128);\n}));\n\n(malli.core.t_malli$core45861.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45861.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,p__45872){\nvar self__ \x3d this;\nvar map__45873 \x3d p__45872;\nvar map__45873__$1 \x3d cljs.core.__destructure_map(map__45873);\nvar options \x3d map__45873__$1;\nvar function_checker \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45873__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22function-checker\x22,\x22malli.core/function-checker\x22,-792030936));\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22\x3d\x3e\x22,\x22\x3d\x3e\x22,1841166128),properties,children,(2),(3));\n\nvar vec__45874 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45845_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45845_SHARP_,options) : malli.core.schema.call(null,p1__45845_SHARP_,options));\n}),children);\nvar input \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45874,(0),null);\nvar output \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45874,(1),null);\nvar guard \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45874,(2),null);\nvar children__$1 \x3d vec__45874;\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_form(parent__$1.malli$core$IntoSchema$_type$arity$1(null),properties,malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._form,children__$1),options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_checker \x3d (cljs.core.truth_(function_checker)?(function (p1__45846_SHARP_){\nreturn (function_checker.cljs$core$IFn$_invoke$arity$2 ? function_checker.cljs$core$IFn$_invoke$arity$2(p1__45846_SHARP_,options) : function_checker.call(null,p1__45846_SHARP_,options));\n}):cljs.core.constantly(null));\nif(cljs.core.truth_((function (){var G__45882 \x3d (malli.core.type.cljs$core$IFn$_invoke$arity$1 ? malli.core.type.cljs$core$IFn$_invoke$arity$1(input) : malli.core.type.call(null,input));\nvar fexpr__45881 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cat\x22,\x22cat\x22,-1457810207),null,new cljs.core.Keyword(null,\x22catn\x22,\x22catn\x22,-48807277),null], null), null);\nreturn (fexpr__45881.cljs$core$IFn$_invoke$arity$1 ? fexpr__45881.cljs$core$IFn$_invoke$arity$1(G__45882) : fexpr__45881.call(null,G__45882));\n})())){\n} else {\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-input-schema\x22,\x22malli.core/invalid-input-schema\x22,-833477915),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input], null));\n}\n\nreturn (new malli.core.t_malli$core45883(form,input,options,guard,map__45873__$1,properties,self__.meta45862,children__$1,vec__45874,parent__$1,__GT_checker,p__45872,output,function_checker,cache,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45861.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45861.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta45862\x22,\x22meta45862\x22,1377257640,null)], null);\n}));\n\n(malli.core.t_malli$core45861.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45861.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45861\x22);\n\n(malli.core.t_malli$core45861.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45861\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45861.\n */\nmalli.core.__GT_t_malli$core45861 \x3d (function malli$core$__GT_t_malli$core45861(meta45862){\nreturn (new malli.core.t_malli$core45861(meta45862));\n});\n\n\nmalli.core.__EQ__GT__schema \x3d (function malli$core$__EQ__GT__schema(){\nreturn (new malli.core.t_malli$core45861(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.FunctionSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45973 \x3d (function (form,options,properties,children,parent,map__45972,_,meta45968,__GT_checker,function_checker,cache,p__45971,meta45974){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.properties \x3d properties;\nthis.children \x3d children;\nthis.parent \x3d parent;\nthis.map__45972 \x3d map__45972;\nthis._ \x3d _;\nthis.meta45968 \x3d meta45968;\nthis.__GT_checker \x3d __GT_checker;\nthis.function_checker \x3d function_checker;\nthis.cache \x3d cache;\nthis.p__45971 \x3d p__45971;\nthis.meta45974 \x3d meta45974;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45973.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45975,meta45974__$1){\nvar self__ \x3d this;\nvar _45975__$1 \x3d this;\nreturn (new malli.core.t_malli$core45973(self__.form,self__.options,self__.properties,self__.children,self__.parent,self__.map__45972,self__._,self__.meta45968,self__.__GT_checker,self__.function_checker,self__.cache,self__.p__45971,meta45974__$1));\n}));\n\n(malli.core.t_malli$core45973.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45975){\nvar self__ \x3d this;\nvar _45975__$1 \x3d this;\nreturn self__.meta45974;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar temp__5823__auto__ \x3d (self__.__GT_checker.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_checker.cljs$core$IFn$_invoke$arity$1(this$__$1) : self__.__GT_checker.call(null,this$__$1));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar checker \x3d temp__5823__auto__;\nvar validator \x3d (function (x){\nreturn ((checker.cljs$core$IFn$_invoke$arity$1 ? checker.cljs$core$IFn$_invoke$arity$1(x) : checker.call(null,x)) \x3d\x3d null);\n});\nreturn (function (x){\nreturn ((cljs.core.ifn_QMARK_(x)) \x26\x26 (validator(x)));\n});\n} else {\nreturn cljs.core.ifn_QMARK_;\n}\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_options$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function (x){\nif(cljs.core.truth_((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22malli.core\x22,\x22invalid\x22,\x22malli.core/invalid\x22,362080900);\n}\n});\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_children$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_form$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar temp__5823__auto__ \x3d (self__.__GT_checker.cljs$core$IFn$_invoke$arity$1 ? self__.__GT_checker.cljs$core$IFn$_invoke$arity$1(this$__$1) : self__.__GT_checker.call(null,this$__$1));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar checker \x3d temp__5823__auto__;\nreturn (function malli$core$explain(x,in$,acc){\nif((!(cljs.core.fn_QMARK_(x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nvar temp__5823__auto____$1 \x3d (checker.cljs$core$IFn$_invoke$arity$1 ? checker.cljs$core$IFn$_invoke$arity$1(x) : checker.call(null,x));\nif(cljs.core.truth_(temp__5823__auto____$1)){\nvar res \x3d temp__5823__auto____$1;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x),new cljs.core.Keyword(null,\x22check\x22,\x22check\x22,1226308904),res));\n} else {\nreturn acc;\n}\n}\n});\n} else {\nvar validator \x3d this$__$1.malli$core$Schema$_validator$arity$1(null);\nreturn (function malli$core$explain(x,in$,acc){\nif(cljs.core.not((validator.cljs$core$IFn$_invoke$arity$1 ? validator.cljs$core$IFn$_invoke$arity$1(x) : validator.call(null,x)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,malli.impl.util._error.cljs$core$IFn$_invoke$arity$4(path,in$,this$__$1,x));\n} else {\nreturn acc;\n}\n});\n}\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$Schema$_parser$arity$1(null);\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$FunctionSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45973.prototype.malli$core$FunctionSchema$_function_schema_QMARK_$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$FunctionSchema$_function_schema_arities$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$FunctionSchema$_function_info$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$FunctionSchema$_instrument_f$arity$4 \x3d (function (this$,p__45986,f,options__$1){\nvar self__ \x3d this;\nvar map__45987 \x3d p__45986;\nvar map__45987__$1 \x3d cljs.core.__destructure_map(map__45987);\nvar props \x3d map__45987__$1;\nvar _scope \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45987__$1,new cljs.core.Keyword(null,\x22_scope\x22,\x22_scope\x22,882472555));\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45987__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nvar this$__$1 \x3d this;\nvar arity__GT_info \x3d malli.core._group_by_arity_BANG_(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(malli.core._function_info(s),new cljs.core.Keyword(null,\x22f\x22,\x22f\x22,-1597136552),(function (){var G__45994 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(props,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),s);\nvar G__45995 \x3d f;\nvar G__45996 \x3d options__$1;\nreturn (malli.core._instrument.cljs$core$IFn$_invoke$arity$3 ? malli.core._instrument.cljs$core$IFn$_invoke$arity$3(G__45994,G__45995,G__45996) : malli.core._instrument.call(null,G__45994,G__45995,G__45996));\n})());\n}),self__.children));\nvar arities \x3d cljs.core.set(cljs.core.keys(arity__GT_info));\nvar varargs_info \x3d (arity__GT_info.cljs$core$IFn$_invoke$arity$1 ? arity__GT_info.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22varargs\x22,\x22varargs\x22,1030150858)) : arity__GT_info.call(null,new cljs.core.Keyword(null,\x22varargs\x22,\x22varargs\x22,1030150858)));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(arities))){\nreturn new cljs.core.Keyword(null,\x22f\x22,\x22f\x22,-1597136552).cljs$core$IFn$_invoke$arity$1(cljs.core.val(cljs.core.first(arity__GT_info)));\n} else {\nreturn (function() { \nvar G__47801__delegate \x3d function (args){\nvar arity \x3d cljs.core.count(args);\nvar map__45998 \x3d (arity__GT_info.cljs$core$IFn$_invoke$arity$1 ? arity__GT_info.cljs$core$IFn$_invoke$arity$1(arity) : arity__GT_info.call(null,arity));\nvar map__45998__$1 \x3d cljs.core.__destructure_map(map__45998);\nvar info \x3d map__45998__$1;\nvar input \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45998__$1,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961));\nvar report_arity \x3d (function (){\nvar G__45999 \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-arity\x22,\x22malli.core/invalid-arity\x22,577014581);\nvar G__46000 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22arity\x22,\x22arity\x22,-1808556135),arity,new cljs.core.Keyword(null,\x22arities\x22,\x22arities\x22,-1781122917),arities,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),this$__$1], null);\nreturn (report.cljs$core$IFn$_invoke$arity$2 ? report.cljs$core$IFn$_invoke$arity$2(G__45999,G__46000) : report.call(null,G__45999,G__46000));\n});\nif(cljs.core.truth_(info)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22f\x22,\x22f\x22,-1597136552).cljs$core$IFn$_invoke$arity$1(info),args);\n} else {\nif(cljs.core.truth_(varargs_info)){\nif((arity \x3c new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522).cljs$core$IFn$_invoke$arity$1(varargs_info))){\nreturn report_arity();\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22f\x22,\x22f\x22,-1597136552).cljs$core$IFn$_invoke$arity$1(varargs_info),args);\n}\n} else {\nreturn report_arity();\n\n}\n}\n};\nvar G__47801 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__47805__i \x3d 0, G__47805__a \x3d new Array(arguments.length - 0);\nwhile (G__47805__i \x3c G__47805__a.length) {G__47805__a[G__47805__i] \x3d arguments[G__47805__i + 0]; ++G__47805__i;}\n args \x3d new cljs.core.IndexedSeq(G__47805__a,0,null);\n} \nreturn G__47801__delegate.call(this,args);};\nG__47801.cljs$lang$maxFixedArity \x3d 0;\nG__47801.cljs$lang$applyTo \x3d (function (arglist__47806){\nvar args \x3d cljs.core.seq(arglist__47806);\nreturn G__47801__delegate(args);\n});\nG__47801.cljs$core$IFn$_invoke$arity$variadic \x3d G__47801__delegate;\nreturn G__47801;\n})()\n;\n}\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45973.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45973.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (___$1,key,default$){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core45973.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core45973.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45973.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core45967\x22,\x22malli.core/t_malli$core45967\x22,1014187015,null)], null)),new cljs.core.Symbol(null,\x22map__45972\x22,\x22map__45972\x22,1477010061,null),new cljs.core.Symbol(null,\x22_\x22,\x22_\x22,-1201019570,null),new cljs.core.Symbol(null,\x22meta45968\x22,\x22meta45968\x22,671516847,null),new cljs.core.Symbol(null,\x22-\x3echecker\x22,\x22-\x3echecker\x22,964293264,null),new cljs.core.Symbol(null,\x22function-checker\x22,\x22function-checker\x22,131742871,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22p__45971\x22,\x22p__45971\x22,-2108449093,null),new cljs.core.Symbol(null,\x22meta45974\x22,\x22meta45974\x22,302551078,null)], null);\n}));\n\n(malli.core.t_malli$core45973.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45973.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45973\x22);\n\n(malli.core.t_malli$core45973.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45973\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45973.\n */\nmalli.core.__GT_t_malli$core45973 \x3d (function malli$core$__GT_t_malli$core45973(form,options,properties,children,parent,map__45972,_,meta45968,__GT_checker,function_checker,cache,p__45971,meta45974){\nreturn (new malli.core.t_malli$core45973(form,options,properties,children,parent,map__45972,_,meta45968,__GT_checker,function_checker,cache,p__45971,meta45974));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core45967 \x3d (function (_,meta45968){\nthis._ \x3d _;\nthis.meta45968 \x3d meta45968;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core45967.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_45969,meta45968__$1){\nvar self__ \x3d this;\nvar _45969__$1 \x3d this;\nreturn (new malli.core.t_malli$core45967(self__._,meta45968__$1));\n}));\n\n(malli.core.t_malli$core45967.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_45969){\nvar self__ \x3d this;\nvar _45969__$1 \x3d this;\nreturn self__.meta45968;\n}));\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn new cljs.core.Keyword(null,\x22function\x22,\x22function\x22,-2127255473);\n}));\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core45967.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,p__45971){\nvar self__ \x3d this;\nvar map__45972 \x3d p__45971;\nvar map__45972__$1 \x3d cljs.core.__destructure_map(map__45972);\nvar options \x3d map__45972__$1;\nvar function_checker \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45972__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22function-checker\x22,\x22malli.core/function-checker\x22,-792030936));\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22function\x22,\x22function\x22,-2127255473),properties,children,(1),null);\n\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__45959_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__45959_SHARP_,options) : malli.core.schema.call(null,p1__45959_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nvar __GT_checker \x3d (cljs.core.truth_(function_checker)?(function (p1__45960_SHARP_){\nreturn (function_checker.cljs$core$IFn$_invoke$arity$2 ? function_checker.cljs$core$IFn$_invoke$arity$2(p1__45960_SHARP_,options) : function_checker.call(null,p1__45960_SHARP_,options));\n}):cljs.core.constantly(null));\nif(cljs.core.every_QMARK_(cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(malli.core._function_schema_QMARK_,malli.core._function_info),children__$1)){\n} else {\nmalli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22non-function-childs\x22,\x22malli.core/non-function-childs\x22,-1591582832),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children__$1], null));\n}\n\nmalli.core._group_by_arity_BANG_(malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._function_info,children__$1));\n\nreturn (new malli.core.t_malli$core45973(form,options,properties,children__$1,parent__$1,map__45972__$1,self__._,self__.meta45968,__GT_checker,function_checker,cache,p__45971,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core45967.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core45967.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22_\x22,\x22_\x22,-1201019570,null),new cljs.core.Symbol(null,\x22meta45968\x22,\x22meta45968\x22,671516847,null)], null);\n}));\n\n(malli.core.t_malli$core45967.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core45967.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core45967\x22);\n\n(malli.core.t_malli$core45967.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core45967\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core45967.\n */\nmalli.core.__GT_t_malli$core45967 \x3d (function malli$core$__GT_t_malli$core45967(_,meta45968){\nreturn (new malli.core.t_malli$core45967(_,meta45968));\n});\n\n\nmalli.core._function_schema \x3d (function malli$core$_function_schema(_){\nreturn (new malli.core.t_malli$core45967(_,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.DistributiveSchema}\n * @implements {malli.core.Cached}\n * @implements {malli.core.RegexSchema}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {malli.core.RefSchema}\n * @implements {malli.core.FunctionSchema}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46035 \x3d (function (form,options,p__46009,forms,properties,childs,schema,children,min,type_properties,fn,parent,map__46011,meta46014,vec__46027,type,cache,max,meta46036){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.p__46009 \x3d p__46009;\nthis.forms \x3d forms;\nthis.properties \x3d properties;\nthis.childs \x3d childs;\nthis.schema \x3d schema;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.type_properties \x3d type_properties;\nthis.fn \x3d fn;\nthis.parent \x3d parent;\nthis.map__46011 \x3d map__46011;\nthis.meta46014 \x3d meta46014;\nthis.vec__46027 \x3d vec__46027;\nthis.type \x3d type;\nthis.cache \x3d cache;\nthis.max \x3d max;\nthis.meta46036 \x3d meta46036;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46035.prototype.malli$core$RefSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$RefSchema$_ref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RefSchema$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.schema);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$FunctionSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$FunctionSchema$_function_schema_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._function_schema_QMARK_(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$FunctionSchema$_function_info$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._function_info(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$FunctionSchema$_function_schema_arities$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._function_schema_arities(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$FunctionSchema$_instrument_f$arity$4 \x3d (function (_,props,f,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._instrument_f(cljs.core.deref(self__.schema),props,f,options__$1);\n}));\n\n(malli.core.t_malli$core46035.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_op_QMARK_(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_validator(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_explainer(cljs.core.deref(self__.schema),path);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_unparser(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_parser(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d (function (_,transformer,method,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_transformer(cljs.core.deref(self__.schema),transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d (function (_,nested_QMARK_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._regex_min_max(cljs.core.deref(self__.schema),nested_QMARK_);\n}));\n\n(malli.core.t_malli$core46035.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46037){\nvar self__ \x3d this;\nvar _46037__$1 \x3d this;\nreturn self__.meta46036;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$DistributiveSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$DistributiveSchema$_distributive_schema_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._distributive_schema_QMARK_(self__.schema);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$DistributiveSchema$_distribute_to_children$arity$3 \x3d (function (_,f,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._distribute_to_children(self__.schema,f,options__$1);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core46035.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46037,meta46036__$1){\nvar self__ \x3d this;\nvar _46037__$1 \x3d this;\nreturn (new malli.core.t_malli$core46035(self__.form,self__.options,self__.p__46009,self__.forms,self__.properties,self__.childs,self__.schema,self__.children,self__.min,self__.type_properties,self__.fn,self__.parent,self__.map__46011,self__.meta46014,self__.vec__46027,self__.type,self__.cache,self__.max,meta46036__$1));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._validator(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._parent_children_transformer(this$__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.deref(self__.schema)], null),transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar children__$1 \x3d (cljs.core.truth_(self__.childs)?cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(self__.children,(0),self__.childs):self__.children);\nif(cljs.core.truth_(malli.core._accept(walker,this$__$1,path,options__$1))){\nreturn malli.core._outer(walker,this$__$1,path,malli.core._inner_indexed(walker,path,children__$1,options__$1),options__$1);\n} else {\nreturn null;\n}\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._parser(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._explainer(cljs.core.deref(self__.schema),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22malli.core\x22,\x22in\x22,\x22malli.core/in\x22,-1208578537)));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._unparser(cljs.core.deref(self__.schema));\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46035.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22in\x22,\x22malli.core/in\x22,-1208578537),key)){\nreturn cljs.core.deref(self__.schema);\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}\n}));\n\n(malli.core.t_malli$core46035.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (_,key,value){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46051 \x3d self__.type;\nvar G__46052 \x3d self__.properties;\nvar G__46053 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.children,key,value);\nreturn (malli.core.into_schema.cljs$core$IFn$_invoke$arity$3 ? malli.core.into_schema.cljs$core$IFn$_invoke$arity$3(G__46051,G__46052,G__46053) : malli.core.into_schema.call(null,G__46051,G__46052,G__46053));\n}));\n\n(malli.core.t_malli$core46035.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 19, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22p__46009\x22,\x22p__46009\x22,-594744063,null),new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22childs\x22,\x22childs\x22,347329640,null),new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core46013\x22,\x22malli.core/t_malli$core46013\x22,-461809395,null)], null)),new cljs.core.Symbol(null,\x22map__46011\x22,\x22map__46011\x22,-609614960,null),new cljs.core.Symbol(null,\x22meta46014\x22,\x22meta46014\x22,1900974194,null),new cljs.core.Symbol(null,\x22vec__46027\x22,\x22vec__46027\x22,945573075,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22meta46036\x22,\x22meta46036\x22,965230144,null)], null);\n}));\n\n(malli.core.t_malli$core46035.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46035.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46035\x22);\n\n(malli.core.t_malli$core46035.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46035\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46035.\n */\nmalli.core.__GT_t_malli$core46035 \x3d (function malli$core$__GT_t_malli$core46035(form,options,p__46009,forms,properties,childs,schema,children,min,type_properties,fn,parent,map__46011,meta46014,vec__46027,type,cache,max,meta46036){\nreturn (new malli.core.t_malli$core46035(form,options,p__46009,forms,properties,childs,schema,children,min,type_properties,fn,parent,map__46011,meta46014,vec__46027,type,cache,max,meta46036));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46013 \x3d (function (p__46009,map__46011,type,min,max,childs,type_properties,fn,meta46014){\nthis.p__46009 \x3d p__46009;\nthis.map__46011 \x3d map__46011;\nthis.type \x3d type;\nthis.min \x3d min;\nthis.max \x3d max;\nthis.childs \x3d childs;\nthis.type_properties \x3d type_properties;\nthis.fn \x3d fn;\nthis.meta46014 \x3d meta46014;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46013.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46015,meta46014__$1){\nvar self__ \x3d this;\nvar _46015__$1 \x3d this;\nreturn (new malli.core.t_malli$core46013(self__.p__46009,self__.map__46011,self__.type,self__.min,self__.max,self__.childs,self__.type_properties,self__.fn,meta46014__$1));\n}));\n\n(malli.core.t_malli$core46013.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46015){\nvar self__ \x3d this;\nvar _46015__$1 \x3d this;\nreturn self__.meta46014;\n}));\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type;\n}));\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type_properties;\n}));\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46013.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(self__.type,properties,children,self__.min,self__.max);\n\nvar vec__46027 \x3d (function (){var G__46030 \x3d properties;\nvar G__46031 \x3d cljs.core.vec(children);\nvar G__46032 \x3d options;\nreturn (self__.fn.cljs$core$IFn$_invoke$arity$3 ? self__.fn.cljs$core$IFn$_invoke$arity$3(G__46030,G__46031,G__46032) : self__.fn.call(null,G__46030,G__46031,G__46032));\n})();\nvar children__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46027,(0),null);\nvar forms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46027,(1),null);\nvar schema \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46027,(2),null);\nvar schema__$1 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.force(schema);\n}),null));\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_form(self__.type,properties,forms,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core46035(form,options,self__.p__46009,forms,properties,self__.childs,schema__$1,children__$1,self__.min,self__.type_properties,self__.fn,parent__$1,self__.map__46011,self__.meta46014,vec__46027,self__.type,cache,self__.max,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core46013.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core46013.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p__46009\x22,\x22p__46009\x22,-594744063,null),new cljs.core.Symbol(null,\x22map__46011\x22,\x22map__46011\x22,-609614960,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22childs\x22,\x22childs\x22,347329640,null),new cljs.core.Symbol(null,\x22type-properties\x22,\x22type-properties\x22,-87820599,null),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),new cljs.core.Symbol(null,\x22meta46014\x22,\x22meta46014\x22,1900974194,null)], null);\n}));\n\n(malli.core.t_malli$core46013.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46013.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46013\x22);\n\n(malli.core.t_malli$core46013.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46013\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46013.\n */\nmalli.core.__GT_t_malli$core46013 \x3d (function malli$core$__GT_t_malli$core46013(p__46009,map__46011,type,min,max,childs,type_properties,fn,meta46014){\nreturn (new malli.core.t_malli$core46013(p__46009,map__46011,type,min,max,childs,type_properties,fn,meta46014));\n});\n\n\nmalli.core._proxy_schema \x3d (function malli$core$_proxy_schema(p__46009){\nvar map__46011 \x3d p__46009;\nvar map__46011__$1 \x3d cljs.core.__destructure_map(map__46011);\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar childs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22childs\x22,\x22childs\x22,-1293201887));\nvar type_properties \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22type-properties\x22,\x22type-properties\x22,-1728352126));\nvar fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46011__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nreturn (new malli.core.t_malli$core46013(p__46009,map__46011__$1,type,min,max,childs,type_properties,fn,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n/**\n * Experimental simple schema for :\x3d\x3e schema. AST and explain results subject to change.\n */\nmalli.core.___GT__schema \x3d (function malli$core$___GT__schema(_){\nreturn malli.core._proxy_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22-\x3e\x22,\x22-\x3e\x22,514830339),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),(function (p__46066,c,o){\nvar map__46067 \x3d p__46066;\nvar map__46067__$1 \x3d cljs.core.__destructure_map(map__46067);\nvar p \x3d map__46067__$1;\nvar guard \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46067__$1,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811));\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(new cljs.core.Keyword(null,\x22-\x3e\x22,\x22-\x3e\x22,514830339),p,c,(1),null);\n\nvar c__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__46061_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__46061_SHARP_,o) : malli.core.schema.call(null,p1__46061_SHARP_,o));\n}),c);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c__$1,cljs.core.map.cljs$core$IFn$_invoke$arity$2(malli.core._form,c__$1),(new cljs.core.Delay((function (){\nvar cc \x3d (function (){var G__46068 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cat\x22,\x22cat\x22,-1457810207)], null),cljs.core.pop(c__$1)),cljs.core.peek(c__$1)], null);\nif(cljs.core.truth_(guard)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__46068,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),guard], null));\n} else {\nreturn G__46068;\n}\n})();\nvar G__46069 \x3d new cljs.core.Keyword(null,\x22\x3d\x3e\x22,\x22\x3d\x3e\x22,1841166128);\nvar G__46070 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811));\nvar G__46071 \x3d cc;\nvar G__46072 \x3d o;\nreturn (malli.core.into_schema.cljs$core$IFn$_invoke$arity$4 ? malli.core.into_schema.cljs$core$IFn$_invoke$arity$4(G__46069,G__46070,G__46071,G__46072) : malli.core.into_schema.call(null,G__46069,G__46070,G__46071,G__46072));\n}),null))], null);\n})], null));\n});\nmalli.core.regex_validator \x3d (function malli$core$regex_validator(schema){\nreturn malli.impl.regex.validator(malli.core._regex_validator(schema));\n});\nmalli.core.regex_explainer \x3d (function malli$core$regex_explainer(schema,path){\nreturn malli.impl.regex.explainer(schema,path,malli.core._regex_explainer(schema,path));\n});\nmalli.core.regex_parser \x3d (function malli$core$regex_parser(schema){\nreturn malli.impl.regex.parser(malli.core._regex_parser(schema));\n});\nmalli.core.regex_transformer \x3d (function malli$core$regex_transformer(schema,transformer,method,options){\nvar this_transformer \x3d malli.core._value_transformer(transformer,schema,method,options);\nvar __GT_children \x3d malli.impl.regex.transformer(malli.core._regex_transformer(schema,transformer,method,options));\nreturn malli.core._intercepting.cljs$core$IFn$_invoke$arity$2(this_transformer,__GT_children);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.RegexSchema}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46094 \x3d (function (form,options,map__46081,re_min_max,properties,re_explainer,p__46080,children,min,re_parser,parent,re_unparser,meta46084,map__46082,type,cache,re_transformer,max,re_validator,meta46095){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.map__46081 \x3d map__46081;\nthis.re_min_max \x3d re_min_max;\nthis.properties \x3d properties;\nthis.re_explainer \x3d re_explainer;\nthis.p__46080 \x3d p__46080;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.re_parser \x3d re_parser;\nthis.parent \x3d parent;\nthis.re_unparser \x3d re_unparser;\nthis.meta46084 \x3d meta46084;\nthis.map__46082 \x3d map__46082;\nthis.type \x3d type;\nthis.cache \x3d cache;\nthis.re_transformer \x3d re_transformer;\nthis.max \x3d max;\nthis.re_validator \x3d re_validator;\nthis.meta46095 \x3d meta46095;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46094.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46096,meta46095__$1){\nvar self__ \x3d this;\nvar _46096__$1 \x3d this;\nreturn (new malli.core.t_malli$core46094(self__.form,self__.options,self__.map__46081,self__.re_min_max,self__.properties,self__.re_explainer,self__.p__46080,self__.children,self__.min,self__.re_parser,self__.parent,self__.re_unparser,self__.meta46084,self__.map__46082,self__.type,self__.cache,self__.re_transformer,self__.max,self__.re_validator,meta46095__$1));\n}));\n\n(malli.core.t_malli$core46094.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46096){\nvar self__ \x3d this;\nvar _46096__$1 \x3d this;\nreturn self__.meta46095;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_validator(this$__$1);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_transformer(this$__$1,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_indexed(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_parser(this$__$1);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.children;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_explainer(this$__$1,path);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$RegexSchema$_regex_unparser$arity$1(null);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46094.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46094.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (_,key,default$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.children,key,default$);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_assoc_children(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_validator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46110 \x3d self__.properties;\nvar G__46111 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._regex_validator,self__.children);\nreturn (self__.re_validator.cljs$core$IFn$_invoke$arity$2 ? self__.re_validator.cljs$core$IFn$_invoke$arity$2(G__46110,G__46111) : self__.re_validator.call(null,G__46110,G__46111));\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d (function (_,path){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46113 \x3d self__.properties;\nvar G__46114 \x3d cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2((function (i,child){\nreturn malli.core._regex_explainer(child,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i));\n}),self__.children);\nreturn (self__.re_explainer.cljs$core$IFn$_invoke$arity$2 ? self__.re_explainer.cljs$core$IFn$_invoke$arity$2(G__46113,G__46114) : self__.re_explainer.call(null,G__46113,G__46114));\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46118 \x3d self__.properties;\nvar G__46119 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._regex_parser,self__.children);\nreturn (self__.re_parser.cljs$core$IFn$_invoke$arity$2 ? self__.re_parser.cljs$core$IFn$_invoke$arity$2(G__46118,G__46119) : self__.re_parser.call(null,G__46118,G__46119));\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46120 \x3d self__.properties;\nvar G__46121 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2(malli.core._regex_unparser,self__.children);\nreturn (self__.re_unparser.cljs$core$IFn$_invoke$arity$2 ? self__.re_unparser.cljs$core$IFn$_invoke$arity$2(G__46120,G__46121) : self__.re_unparser.call(null,G__46120,G__46121));\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d (function (_,transformer,method,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__46122 \x3d self__.properties;\nvar G__46123 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__46078_SHARP_){\nreturn malli.core._regex_transformer(p1__46078_SHARP_,transformer,method,options__$1);\n}),self__.children);\nreturn (self__.re_transformer.cljs$core$IFn$_invoke$arity$2 ? self__.re_transformer.cljs$core$IFn$_invoke$arity$2(G__46122,G__46123) : self__.re_transformer.call(null,G__46122,G__46123));\n}));\n\n(malli.core.t_malli$core46094.prototype.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn (self__.re_min_max.cljs$core$IFn$_invoke$arity$2 ? self__.re_min_max.cljs$core$IFn$_invoke$arity$2(self__.properties,self__.children) : self__.re_min_max.call(null,self__.properties,self__.children));\n}));\n\n(malli.core.t_malli$core46094.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core46094.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22map__46081\x22,\x22map__46081\x22,-1163629054,null),new cljs.core.Symbol(null,\x22re-min-max\x22,\x22re-min-max\x22,-1633564062,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22re-explainer\x22,\x22re-explainer\x22,373660327,null),new cljs.core.Symbol(null,\x22p__46080\x22,\x22p__46080\x22,-1224932664,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22re-parser\x22,\x22re-parser\x22,410905963,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core46083\x22,\x22malli.core/t_malli$core46083\x22,-649990266,null)], null)),new cljs.core.Symbol(null,\x22re-unparser\x22,\x22re-unparser\x22,-1221492690,null),new cljs.core.Symbol(null,\x22meta46084\x22,\x22meta46084\x22,1011937487,null),new cljs.core.Symbol(null,\x22map__46082\x22,\x22map__46082\x22,1177213074,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22re-transformer\x22,\x22re-transformer\x22,124163066,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22re-validator\x22,\x22re-validator\x22,1460156319,null),new cljs.core.Symbol(null,\x22meta46095\x22,\x22meta46095\x22,438469115,null)], null);\n}));\n\n(malli.core.t_malli$core46094.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46094.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46094\x22);\n\n(malli.core.t_malli$core46094.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46094\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46094.\n */\nmalli.core.__GT_t_malli$core46094 \x3d (function malli$core$__GT_t_malli$core46094(form,options,map__46081,re_min_max,properties,re_explainer,p__46080,children,min,re_parser,parent,re_unparser,meta46084,map__46082,type,cache,re_transformer,max,re_validator,meta46095){\nreturn (new malli.core.t_malli$core46094(form,options,map__46081,re_min_max,properties,re_explainer,p__46080,children,min,re_parser,parent,re_unparser,meta46084,map__46082,type,cache,re_transformer,max,re_validator,meta46095));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46083 \x3d (function (map__46081,re_min_max,re_explainer,p__46080,min,re_parser,re_unparser,map__46082,type,re_transformer,max,re_validator,meta46084){\nthis.map__46081 \x3d map__46081;\nthis.re_min_max \x3d re_min_max;\nthis.re_explainer \x3d re_explainer;\nthis.p__46080 \x3d p__46080;\nthis.min \x3d min;\nthis.re_parser \x3d re_parser;\nthis.re_unparser \x3d re_unparser;\nthis.map__46082 \x3d map__46082;\nthis.type \x3d type;\nthis.re_transformer \x3d re_transformer;\nthis.max \x3d max;\nthis.re_validator \x3d re_validator;\nthis.meta46084 \x3d meta46084;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46083.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46085,meta46084__$1){\nvar self__ \x3d this;\nvar _46085__$1 \x3d this;\nreturn (new malli.core.t_malli$core46083(self__.map__46081,self__.re_min_max,self__.re_explainer,self__.p__46080,self__.min,self__.re_parser,self__.re_unparser,self__.map__46082,self__.type,self__.re_transformer,self__.max,self__.re_validator,meta46084__$1));\n}));\n\n(malli.core.t_malli$core46083.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46085){\nvar self__ \x3d this;\nvar _46085__$1 \x3d this;\nreturn self__.meta46084;\n}));\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type;\n}));\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46083.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(self__.type,properties,children,self__.min,self__.max);\n\nvar children__$1 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__46077_SHARP_){\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(p1__46077_SHARP_,options) : malli.core.schema.call(null,p1__46077_SHARP_,options));\n}),children);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._simple_form(parent__$1,properties,children__$1,malli.core._form,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core46094(form,options,self__.map__46081,self__.re_min_max,properties,self__.re_explainer,self__.p__46080,children__$1,self__.min,self__.re_parser,parent__$1,self__.re_unparser,self__.meta46084,self__.map__46082,self__.type,cache,self__.re_transformer,self__.max,self__.re_validator,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core46083.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts);\n}));\n\n(malli.core.t_malli$core46083.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22map__46081\x22,\x22map__46081\x22,-1163629054,null),new cljs.core.Symbol(null,\x22re-min-max\x22,\x22re-min-max\x22,-1633564062,null),new cljs.core.Symbol(null,\x22re-explainer\x22,\x22re-explainer\x22,373660327,null),new cljs.core.Symbol(null,\x22p__46080\x22,\x22p__46080\x22,-1224932664,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22re-parser\x22,\x22re-parser\x22,410905963,null),new cljs.core.Symbol(null,\x22re-unparser\x22,\x22re-unparser\x22,-1221492690,null),new cljs.core.Symbol(null,\x22map__46082\x22,\x22map__46082\x22,1177213074,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22re-transformer\x22,\x22re-transformer\x22,124163066,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22re-validator\x22,\x22re-validator\x22,1460156319,null),new cljs.core.Symbol(null,\x22meta46084\x22,\x22meta46084\x22,1011937487,null)], null);\n}));\n\n(malli.core.t_malli$core46083.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46083.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46083\x22);\n\n(malli.core.t_malli$core46083.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46083\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46083.\n */\nmalli.core.__GT_t_malli$core46083 \x3d (function malli$core$__GT_t_malli$core46083(map__46081,re_min_max,re_explainer,p__46080,min,re_parser,re_unparser,map__46082,type,re_transformer,max,re_validator,meta46084){\nreturn (new malli.core.t_malli$core46083(map__46081,re_min_max,re_explainer,p__46080,min,re_parser,re_unparser,map__46082,type,re_transformer,max,re_validator,meta46084));\n});\n\n\nmalli.core._sequence_schema \x3d (function malli$core$_sequence_schema(p__46080){\nvar map__46081 \x3d p__46080;\nvar map__46081__$1 \x3d cljs.core.__destructure_map(map__46081);\nvar map__46082 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738));\nvar map__46082__$1 \x3d cljs.core.__destructure_map(map__46082);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46082__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46082__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar re_validator \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208));\nvar re_explainer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200));\nvar re_parser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564));\nvar re_unparser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079));\nvar re_transformer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461));\nvar re_min_max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46081__$1,new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707));\nreturn (new malli.core.t_malli$core46083(map__46081__$1,re_min_max,re_explainer,p__46080,min,re_parser,re_unparser,map__46082__$1,type,re_transformer,max,re_validator,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n\n/**\n* @constructor\n * @implements {malli.core.EntrySchema}\n * @implements {malli.core.AST}\n * @implements {cljs.core.IMeta}\n * @implements {malli.core.Cached}\n * @implements {malli.core.RegexSchema}\n * @implements {malli.core.LensSchema}\n * @implements {malli.core.Schema}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46141 \x3d (function (form,options,re_min_max,keep,meta46138,properties,re_explainer,children,min,re_parser,entry_parser,parent,re_unparser,type,p__46133,cache,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46142){\nthis.form \x3d form;\nthis.options \x3d options;\nthis.re_min_max \x3d re_min_max;\nthis.keep \x3d keep;\nthis.meta46138 \x3d meta46138;\nthis.properties \x3d properties;\nthis.re_explainer \x3d re_explainer;\nthis.children \x3d children;\nthis.min \x3d min;\nthis.re_parser \x3d re_parser;\nthis.entry_parser \x3d entry_parser;\nthis.parent \x3d parent;\nthis.re_unparser \x3d re_unparser;\nthis.type \x3d type;\nthis.p__46133 \x3d p__46133;\nthis.cache \x3d cache;\nthis.re_transformer \x3d re_transformer;\nthis.map__46135 \x3d map__46135;\nthis.max \x3d max;\nthis.opts \x3d opts;\nthis.map__46134 \x3d map__46134;\nthis.re_validator \x3d re_validator;\nthis.meta46142 \x3d meta46142;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46141.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$AST$_to_ast$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._entry_ast(this$__$1,malli.core._entry_keyset(self__.entry_parser));\n}));\n\n(malli.core.t_malli$core46141.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$EntrySchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$EntrySchema$_entries$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_entries(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$EntrySchema$_entry_parser$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.entry_parser;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_op_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46151 \x3d self__.properties;\nvar G__46152 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46155){\nvar vec__46156 \x3d p__46155;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46156,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46156,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46156,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._regex_validator(s)], null);\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (self__.re_validator.cljs$core$IFn$_invoke$arity$2 ? self__.re_validator.cljs$core$IFn$_invoke$arity$2(G__46151,G__46152) : self__.re_validator.call(null,G__46151,G__46152));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46160 \x3d self__.properties;\nvar G__46161 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46162){\nvar vec__46163 \x3d p__46162;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46163,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46163,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46163,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._regex_explainer(s,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k))], null);\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (self__.re_explainer.cljs$core$IFn$_invoke$arity$2 ? self__.re_explainer.cljs$core$IFn$_invoke$arity$2(G__46160,G__46161) : self__.re_explainer.call(null,G__46160,G__46161));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46167 \x3d self__.properties;\nvar G__46168 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46171){\nvar vec__46172 \x3d p__46171;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46172,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46172,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46172,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._regex_parser(s)], null);\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (self__.re_parser.cljs$core$IFn$_invoke$arity$2 ? self__.re_parser.cljs$core$IFn$_invoke$arity$2(G__46167,G__46168) : self__.re_parser.call(null,G__46167,G__46168));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46175 \x3d self__.properties;\nvar G__46176 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46178){\nvar vec__46179 \x3d p__46178;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46179,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46179,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46179,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._regex_unparser(s)], null);\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (self__.re_unparser.cljs$core$IFn$_invoke$arity$2 ? self__.re_unparser.cljs$core$IFn$_invoke$arity$2(G__46175,G__46176) : self__.re_unparser.call(null,G__46175,G__46176));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46186 \x3d self__.properties;\nvar G__46187 \x3d malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46188){\nvar vec__46189 \x3d p__46188;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46189,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46189,(1),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46189,(2),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._regex_transformer(s,transformer,method,options__$1)], null);\n}),this$__$1.malli$core$Schema$_children$arity$1(null));\nreturn (self__.re_transformer.cljs$core$IFn$_invoke$arity$2 ? self__.re_transformer.cljs$core$IFn$_invoke$arity$2(G__46186,G__46187) : self__.re_transformer.call(null,G__46186,G__46187));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$RegexSchema$_regex_min_max$arity$2 \x3d (function (this$,_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__46194 \x3d self__.properties;\nvar G__46195 \x3d this$__$1.malli$core$Schema$_children$arity$1(null);\nreturn (self__.re_min_max.cljs$core$IFn$_invoke$arity$2 ? self__.re_min_max.cljs$core$IFn$_invoke$arity$2(G__46194,G__46195) : self__.re_min_max.call(null,G__46194,G__46195));\n}));\n\n(malli.core.t_malli$core46141.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46143){\nvar self__ \x3d this;\nvar _46143__$1 \x3d this;\nreturn self__.meta46142;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Cached$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$Cached$_cache$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.cache;\n}));\n\n(malli.core.t_malli$core46141.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46143,meta46142__$1){\nvar self__ \x3d this;\nvar _46143__$1 \x3d this;\nreturn (new malli.core.t_malli$core46141(self__.form,self__.options,self__.re_min_max,self__.keep,self__.meta46138,self__.properties,self__.re_explainer,self__.children,self__.min,self__.re_parser,self__.entry_parser,self__.parent,self__.re_unparser,self__.type,self__.p__46133,self__.cache,self__.re_transformer,self__.map__46135,self__.max,self__.opts,self__.map__46134,self__.re_validator,meta46142__$1));\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_validator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_validator(this$__$1);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_options$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.options;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_transformer$arity$4 \x3d (function (this$,transformer,method,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_transformer(this$__$1,transformer,method,options__$1);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_walk$arity$4 \x3d (function (this$,walker,path,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk_entries(this$__$1,walker,path,options__$1);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_parser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_parser(this$__$1);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.properties;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_children$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn malli.core._entry_children(self__.entry_parser);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_form$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.form);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_explainer$arity$2 \x3d (function (this$,path){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.regex_explainer(this$__$1,path);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_unparser$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.malli$core$RegexSchema$_regex_unparser$arity$1(null);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$Schema$_parent$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.parent;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$LensSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46141.prototype.malli$core$LensSchema$_keep$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.keep;\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$LensSchema$_get$arity$3 \x3d (function (this$,key,default$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._get_entries(this$__$1,key,default$);\n}));\n\n(malli.core.t_malli$core46141.prototype.malli$core$LensSchema$_set$arity$3 \x3d (function (this$,key,value){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._set_entries(this$__$1,key,value);\n}));\n\n(malli.core.t_malli$core46141.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 23, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22re-min-max\x22,\x22re-min-max\x22,-1633564062,null),new cljs.core.Symbol(null,\x22keep\x22,\x22keep\x22,-492807003,null),new cljs.core.Symbol(null,\x22meta46138\x22,\x22meta46138\x22,-740414139,null),new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),new cljs.core.Symbol(null,\x22re-explainer\x22,\x22re-explainer\x22,373660327,null),new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22re-parser\x22,\x22re-parser\x22,410905963,null),new cljs.core.Symbol(null,\x22entry-parser\x22,\x22entry-parser\x22,-1698599125,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22malli.core\x22,\x22t_malli$core46137\x22,\x22malli.core/t_malli$core46137\x22,-1801026863,null)], null)),new cljs.core.Symbol(null,\x22re-unparser\x22,\x22re-unparser\x22,-1221492690,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22p__46133\x22,\x22p__46133\x22,-1629479784,null),new cljs.core.Symbol(null,\x22cache\x22,\x22cache\x22,403508473,null),new cljs.core.Symbol(null,\x22re-transformer\x22,\x22re-transformer\x22,124163066,null),new cljs.core.Symbol(null,\x22map__46135\x22,\x22map__46135\x22,1196105211,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22map__46134\x22,\x22map__46134\x22,393741661,null),new cljs.core.Symbol(null,\x22re-validator\x22,\x22re-validator\x22,1460156319,null),new cljs.core.Symbol(null,\x22meta46142\x22,\x22meta46142\x22,2021422299,null)], null);\n}));\n\n(malli.core.t_malli$core46141.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46141.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46141\x22);\n\n(malli.core.t_malli$core46141.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46141\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46141.\n */\nmalli.core.__GT_t_malli$core46141 \x3d (function malli$core$__GT_t_malli$core46141(form,options,re_min_max,keep,meta46138,properties,re_explainer,children,min,re_parser,entry_parser,parent,re_unparser,type,p__46133,cache,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46142){\nreturn (new malli.core.t_malli$core46141(form,options,re_min_max,keep,meta46138,properties,re_explainer,children,min,re_parser,entry_parser,parent,re_unparser,type,p__46133,cache,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46142));\n});\n\n\n\n/**\n* @constructor\n * @implements {malli.core.AST}\n * @implements {malli.core.IntoSchema}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46137 \x3d (function (re_min_max,keep,re_explainer,min,re_parser,re_unparser,type,p__46133,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46138){\nthis.re_min_max \x3d re_min_max;\nthis.keep \x3d keep;\nthis.re_explainer \x3d re_explainer;\nthis.min \x3d min;\nthis.re_parser \x3d re_parser;\nthis.re_unparser \x3d re_unparser;\nthis.type \x3d type;\nthis.p__46133 \x3d p__46133;\nthis.re_transformer \x3d re_transformer;\nthis.map__46135 \x3d map__46135;\nthis.max \x3d max;\nthis.opts \x3d opts;\nthis.map__46134 \x3d map__46134;\nthis.re_validator \x3d re_validator;\nthis.meta46138 \x3d meta46138;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147876864;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46137.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46139,meta46138__$1){\nvar self__ \x3d this;\nvar _46139__$1 \x3d this;\nreturn (new malli.core.t_malli$core46137(self__.re_min_max,self__.keep,self__.re_explainer,self__.min,self__.re_parser,self__.re_unparser,self__.type,self__.p__46133,self__.re_transformer,self__.map__46135,self__.max,self__.opts,self__.map__46134,self__.re_validator,meta46138__$1));\n}));\n\n(malli.core.t_malli$core46137.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46139){\nvar self__ \x3d this;\nvar _46139__$1 \x3d this;\nreturn self__.meta46138;\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$AST$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46137.prototype.malli$core$AST$_from_ast$arity$3 \x3d (function (parent,ast,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nreturn malli.core._from_entry_ast(parent__$1,ast,options);\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$_type$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.type;\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$_type_properties$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$_properties_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$_children_schema$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(malli.core.t_malli$core46137.prototype.malli$core$IntoSchema$_into_schema$arity$4 \x3d (function (parent,properties,children,options){\nvar self__ \x3d this;\nvar parent__$1 \x3d this;\nmalli.core._check_children_BANG_.cljs$core$IFn$_invoke$arity$5(self__.type,properties,children,self__.min,self__.max);\n\nvar entry_parser \x3d malli.core._create_entry_parser(children,self__.opts,options);\nvar form \x3d (new cljs.core.Delay((function (){\nreturn malli.core._create_entry_form(parent__$1,properties,entry_parser,options);\n}),null));\nvar cache \x3d malli.core._create_cache(options);\nreturn (new malli.core.t_malli$core46141(form,options,self__.re_min_max,self__.keep,self__.meta46138,properties,self__.re_explainer,children,self__.min,self__.re_parser,entry_parser,parent__$1,self__.re_unparser,self__.type,self__.p__46133,cache,self__.re_transformer,self__.map__46135,self__.max,self__.opts,self__.map__46134,self__.re_validator,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863)], null)));\n}));\n\n(malli.core.t_malli$core46137.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core.pr_writer_into_schema(this$__$1,writer,opts__$1);\n}));\n\n(malli.core.t_malli$core46137.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 15, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22re-min-max\x22,\x22re-min-max\x22,-1633564062,null),new cljs.core.Symbol(null,\x22keep\x22,\x22keep\x22,-492807003,null),new cljs.core.Symbol(null,\x22re-explainer\x22,\x22re-explainer\x22,373660327,null),new cljs.core.Symbol(null,\x22min\x22,\x22min\x22,2085523049,null),new cljs.core.Symbol(null,\x22re-parser\x22,\x22re-parser\x22,410905963,null),new cljs.core.Symbol(null,\x22re-unparser\x22,\x22re-unparser\x22,-1221492690,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22p__46133\x22,\x22p__46133\x22,-1629479784,null),new cljs.core.Symbol(null,\x22re-transformer\x22,\x22re-transformer\x22,124163066,null),new cljs.core.Symbol(null,\x22map__46135\x22,\x22map__46135\x22,1196105211,null),new cljs.core.Symbol(null,\x22max\x22,\x22max\x22,1701898075,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22map__46134\x22,\x22map__46134\x22,393741661,null),new cljs.core.Symbol(null,\x22re-validator\x22,\x22re-validator\x22,1460156319,null),new cljs.core.Symbol(null,\x22meta46138\x22,\x22meta46138\x22,-740414139,null)], null);\n}));\n\n(malli.core.t_malli$core46137.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46137.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46137\x22);\n\n(malli.core.t_malli$core46137.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46137\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46137.\n */\nmalli.core.__GT_t_malli$core46137 \x3d (function malli$core$__GT_t_malli$core46137(re_min_max,keep,re_explainer,min,re_parser,re_unparser,type,p__46133,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46138){\nreturn (new malli.core.t_malli$core46137(re_min_max,keep,re_explainer,min,re_parser,re_unparser,type,p__46133,re_transformer,map__46135,max,opts,map__46134,re_validator,meta46138));\n});\n\n\nmalli.core._sequence_entry_schema \x3d (function malli$core$_sequence_entry_schema(p__46133){\nvar map__46134 \x3d p__46133;\nvar map__46134__$1 \x3d cljs.core.__destructure_map(map__46134);\nvar opts \x3d map__46134__$1;\nvar map__46135 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738));\nvar map__46135__$1 \x3d cljs.core.__destructure_map(map__46135);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46135__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46135__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar keep \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46135__$1,new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar re_validator \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208));\nvar re_explainer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200));\nvar re_parser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564));\nvar re_unparser \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079));\nvar re_transformer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461));\nvar re_min_max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46134__$1,new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707));\nreturn (new malli.core.t_malli$core46137(re_min_max,keep,re_explainer,min,re_parser,re_unparser,type,p__46133,re_transformer,map__46135__$1,max,opts,map__46134__$1,re_validator,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22malli.core\x22,\x22into-schema\x22,\x22malli.core/into-schema\x22,1522165759)], null)));\n});\n/**\n * Checks if x is a IntoSchema instance\n */\nmalli.core.into_schema_QMARK_ \x3d (function malli$core$into_schema_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$IntoSchema$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n/**\n * Creates a Schema instance out of type, optional properties map and children\n */\nmalli.core.into_schema \x3d (function malli$core$into_schema(var_args){\nvar G__46263 \x3d arguments.length;\nswitch (G__46263) {\ncase 3:\nreturn malli.core.into_schema.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core.into_schema.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.into_schema.cljs$core$IFn$_invoke$arity$3 \x3d (function (type,properties,children){\nreturn malli.core.into_schema.cljs$core$IFn$_invoke$arity$4(type,properties,children,null);\n}));\n\n(malli.core.into_schema.cljs$core$IFn$_invoke$arity$4 \x3d (function (type,properties,children,options){\nvar properties_SINGLEQUOTE_ \x3d (cljs.core.truth_(properties)?(((cljs.core.count(properties) \x3e (0)))?properties:null):null);\nvar r \x3d (cljs.core.truth_(properties_SINGLEQUOTE_)?(properties_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$1 ? properties_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018)) : properties_SINGLEQUOTE_.call(null,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018))):null);\nvar options__$1 \x3d (cljs.core.truth_(r)?malli.core._update(options,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),(function (p1__46259_SHARP_){\nreturn malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r,(function (){var or__5025__auto__ \x3d p1__46259_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._registry.cljs$core$IFn$_invoke$arity$1(options);\n}\n})()], 0));\n})):options);\nvar properties__$1 \x3d (cljs.core.truth_(r)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(properties_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),malli.core._property_registry(r,options__$1,cljs.core.identity)):properties_SINGLEQUOTE_);\nreturn malli.core._into_schema(malli.core._lookup_BANG_(type,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [type,properties__$1,children], null),malli.core.into_schema_QMARK_,false,options__$1),properties__$1,children,options__$1);\n}));\n\n(malli.core.into_schema.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns the Schema type.\n */\nmalli.core.type \x3d (function malli$core$type(var_args){\nvar G__46272 \x3d arguments.length;\nswitch (G__46272) {\ncase 1:\nreturn malli.core.type.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.type.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.type.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.type.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.type.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._type(malli.core._parent((malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options) : malli.core.schema.call(null,_QMARK_schema,options))));\n}));\n\n(malli.core.type.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the Schema type properties\n */\nmalli.core.type_properties \x3d (function malli$core$type_properties(var_args){\nvar G__46283 \x3d arguments.length;\nswitch (G__46283) {\ncase 1:\nreturn malli.core.type_properties.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.type_properties.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.type_properties.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.type_properties.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.type_properties.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._type_properties(malli.core._parent((malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options) : malli.core.schema.call(null,_QMARK_schema,options))));\n}));\n\n(malli.core.type_properties.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns properties schema for Schema or IntoSchema.\n */\nmalli.core.properties_schema \x3d (function malli$core$properties_schema(var_args){\nvar G__46311 \x3d arguments.length;\nswitch (G__46311) {\ncase 1:\nreturn malli.core.properties_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.properties_schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.properties_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.properties_schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.properties_schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nif(malli.core.into_schema_QMARK_(_QMARK_schema)){\nvar G__46318 \x3d _QMARK_schema;\nvar G__46318__$1 \x3d (((G__46318 \x3d\x3d null))?null:malli.core._properties_schema(G__46318,options));\nif((G__46318__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$1 ? malli.core.schema.cljs$core$IFn$_invoke$arity$1(G__46318__$1) : malli.core.schema.call(null,G__46318__$1));\n}\n} else {\nvar G__46323 \x3d (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options) : malli.core.schema.call(null,_QMARK_schema,options));\nvar G__46323__$1 \x3d (((G__46323 \x3d\x3d null))?null:malli.core._parent(G__46323));\nif((G__46323__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._properties_schema(G__46323__$1,options);\n}\n}\n}));\n\n(malli.core.properties_schema.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns children schema for Schema or IntoSchema.\n */\nmalli.core.children_schema \x3d (function malli$core$children_schema(var_args){\nvar G__46329 \x3d arguments.length;\nswitch (G__46329) {\ncase 1:\nreturn malli.core.children_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.children_schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.children_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.children_schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.children_schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nif(malli.core.into_schema_QMARK_(_QMARK_schema)){\nvar G__46335 \x3d _QMARK_schema;\nvar G__46335__$1 \x3d (((G__46335 \x3d\x3d null))?null:malli.core._children_schema(G__46335,options));\nif((G__46335__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (malli.core.schema.cljs$core$IFn$_invoke$arity$1 ? malli.core.schema.cljs$core$IFn$_invoke$arity$1(G__46335__$1) : malli.core.schema.call(null,G__46335__$1));\n}\n} else {\nvar G__46339 \x3d (malli.core.schema.cljs$core$IFn$_invoke$arity$2 ? malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options) : malli.core.schema.call(null,_QMARK_schema,options));\nvar G__46339__$1 \x3d (((G__46339 \x3d\x3d null))?null:malli.core._parent(G__46339));\nif((G__46339__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn malli.core._children_schema(G__46339__$1,options);\n}\n}\n}));\n\n(malli.core.children_schema.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Checks if x is a Schema instance\n */\nmalli.core.schema_QMARK_ \x3d (function malli$core$schema_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.malli$core$Schema$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n/**\n * Creates a Schema object from any of the following:\n * \n * - Schema instance (just returns it)\n * - IntoSchema instance\n * - Schema vector syntax, e.g. [:string {:min 1}]\n * - Qualified Keyword or String, using a registry lookup\n */\nmalli.core.schema \x3d (function malli$core$schema(var_args){\nvar G__46355 \x3d arguments.length;\nswitch (G__46355) {\ncase 1:\nreturn malli.core.schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nwhile(true){\nif(malli.core.schema_QMARK_(_QMARK_schema)){\nreturn _QMARK_schema;\n} else {\nif(malli.core.into_schema_QMARK_(_QMARK_schema)){\nreturn malli.core._into_schema(_QMARK_schema,null,null,options);\n} else {\nif(cljs.core.vector_QMARK_(_QMARK_schema)){\nvar v \x3d _QMARK_schema;\nvar t \x3d malli.core._lookup_BANG_(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,(0)),v,malli.core.into_schema_QMARK_,true,options);\nvar n \x3d cljs.core.count(v);\nvar _QMARK_p \x3d (((n \x3e (1)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,(1)):null);\nif((((_QMARK_p \x3d\x3d null)) || (cljs.core.map_QMARK_(_QMARK_p)))){\nreturn malli.core.into_schema.cljs$core$IFn$_invoke$arity$4(t,_QMARK_p,((((2) \x3c n))?cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,(2),n):null),options);\n} else {\nreturn malli.core.into_schema.cljs$core$IFn$_invoke$arity$4(t,null,((((1) \x3c n))?cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,(1),n):null),options);\n}\n} else {\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d malli.core._reference_QMARK_(_QMARK_schema);\nif(and__5023__auto__){\nreturn malli.core._lookup(_QMARK_schema,options);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar _QMARK_schema_SINGLEQUOTE_ \x3d temp__5823__auto__;\nreturn malli.core._pointer(_QMARK_schema,malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema_SINGLEQUOTE_,options),options);\n} else {\nvar G__47906 \x3d malli.core._lookup_BANG_(_QMARK_schema,_QMARK_schema,null,false,options);\nvar G__47907 \x3d options;\n_QMARK_schema \x3d G__47906;\noptions \x3d G__47907;\ncontinue;\n}\n\n}\n}\n}\nbreak;\n}\n}));\n\n(malli.core.schema.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the Schema form\n */\nmalli.core.form \x3d (function malli$core$form(var_args){\nvar G__46374 \x3d arguments.length;\nswitch (G__46374) {\ncase 1:\nreturn malli.core.form.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.form.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.form.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.form.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.form.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._form(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options));\n}));\n\n(malli.core.form.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the Schema properties\n */\nmalli.core.properties \x3d (function malli$core$properties(var_args){\nvar G__46383 \x3d arguments.length;\nswitch (G__46383) {\ncase 1:\nreturn malli.core.properties.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.properties.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.properties.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.properties.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.properties.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._properties(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options));\n}));\n\n(malli.core.properties.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns options used in creating the Schema\n */\nmalli.core.options \x3d (function malli$core$options(var_args){\nvar G__46393 \x3d arguments.length;\nswitch (G__46393) {\ncase 1:\nreturn malli.core.options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.options.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.options.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.options.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.options.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._options(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options));\n}));\n\n(malli.core.options.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the Schema children with all Child Schemas resolved. For\n * `MapEntry` Schemas, returns a always tuple3 of `key ?properties child`\n */\nmalli.core.children \x3d (function malli$core$children(var_args){\nvar G__46398 \x3d arguments.length;\nswitch (G__46398) {\ncase 1:\nreturn malli.core.children.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.children.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.children.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.children.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.children.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar schema \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nreturn malli.core._children(schema);\n}));\n\n(malli.core.children.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the IntoSchema instance that created the Schema\n */\nmalli.core.parent \x3d (function malli$core$parent(var_args){\nvar G__46401 \x3d arguments.length;\nswitch (G__46401) {\ncase 1:\nreturn malli.core.parent.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.parent.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.parent.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.parent.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.parent.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._parent(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options));\n}));\n\n(malli.core.parent.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {malli.core.Walker}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nmalli.core.t_malli$core46430 \x3d (function (_QMARK_schema,f,options,meta46431){\nthis._QMARK_schema \x3d _QMARK_schema;\nthis.f \x3d f;\nthis.options \x3d options;\nthis.meta46431 \x3d meta46431;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(malli.core.t_malli$core46430.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_46432,meta46431__$1){\nvar self__ \x3d this;\nvar _46432__$1 \x3d this;\nreturn (new malli.core.t_malli$core46430(self__._QMARK_schema,self__.f,self__.options,meta46431__$1));\n}));\n\n(malli.core.t_malli$core46430.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_46432){\nvar self__ \x3d this;\nvar _46432__$1 \x3d this;\nreturn self__.meta46431;\n}));\n\n(malli.core.t_malli$core46430.prototype.malli$core$Walker$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(malli.core.t_malli$core46430.prototype.malli$core$Walker$_accept$arity$4 \x3d (function (_,s,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn s;\n}));\n\n(malli.core.t_malli$core46430.prototype.malli$core$Walker$_inner$arity$4 \x3d (function (this$,s,p,options__$1){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn malli.core._walk(s,this$__$1,p,options__$1);\n}));\n\n(malli.core.t_malli$core46430.prototype.malli$core$Walker$_outer$arity$5 \x3d (function (_,s,p,c,options__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.f.cljs$core$IFn$_invoke$arity$4 ? self__.f.cljs$core$IFn$_invoke$arity$4(s,p,c,options__$1) : self__.f.call(null,s,p,c,options__$1));\n}));\n\n(malli.core.t_malli$core46430.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22?schema\x22,\x22?schema\x22,-271534072,null),new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22options\x22,\x22options\x22,1740170016,null),new cljs.core.Symbol(null,\x22meta46431\x22,\x22meta46431\x22,-1349869672,null)], null);\n}));\n\n(malli.core.t_malli$core46430.cljs$lang$type \x3d true);\n\n(malli.core.t_malli$core46430.cljs$lang$ctorStr \x3d \x22malli.core/t_malli$core46430\x22);\n\n(malli.core.t_malli$core46430.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22malli.core/t_malli$core46430\x22);\n}));\n\n/**\n * Positional factory function for malli.core/t_malli$core46430.\n */\nmalli.core.__GT_t_malli$core46430 \x3d (function malli$core$__GT_t_malli$core46430(_QMARK_schema,f,options,meta46431){\nreturn (new malli.core.t_malli$core46430(_QMARK_schema,f,options,meta46431));\n});\n\n\n/**\n * Postwalks recursively over the Schema and it\x27s children.\n * The walker callback is a arity4 function with the following\n * arguments: schema, path, (walked) children and options.\n */\nmalli.core.walk \x3d (function malli$core$walk(var_args){\nvar G__46427 \x3d arguments.length;\nswitch (G__46427) {\ncase 2:\nreturn malli.core.walk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.walk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.walk.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,f){\nreturn malli.core.walk.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,f,null);\n}));\n\n(malli.core.walk.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,f,options){\nreturn malli.core._walk(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),(new malli.core.t_malli$core46430(_QMARK_schema,f,options,cljs.core.PersistentArrayMap.EMPTY)),cljs.core.PersistentVector.EMPTY,options);\n}));\n\n(malli.core.walk.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns an pure validation function of type `x -\x3e boolean` for a given Schema.\n * Caches the result for [[Cached]] Schemas with key `:validator`.\n */\nmalli.core.validator \x3d (function malli$core$validator(var_args){\nvar G__46445 \x3d arguments.length;\nswitch (G__46445) {\ncase 1:\nreturn malli.core.validator.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.validator.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.validator.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.validator.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.validator.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._cached(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),new cljs.core.Keyword(null,\x22validator\x22,\x22validator\x22,-1966190681),malli.core._validator);\n}));\n\n(malli.core.validator.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if value is valid according to given schema. Creates the `validator`\n * for every call. When performance matters, (re-)use `validator` instead.\n */\nmalli.core.validate \x3d (function malli$core$validate(var_args){\nvar G__46452 \x3d arguments.length;\nswitch (G__46452) {\ncase 2:\nreturn malli.core.validate.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.validate.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.validate.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,value){\nreturn malli.core.validate.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,value,null);\n}));\n\n(malli.core.validate.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,options){\nvar fexpr__46456 \x3d malli.core.validator.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nreturn (fexpr__46456.cljs$core$IFn$_invoke$arity$1 ? fexpr__46456.cljs$core$IFn$_invoke$arity$1(value) : fexpr__46456.call(null,value));\n}));\n\n(malli.core.validate.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns an pure explainer function of type `x -\x3e explanation` for a given Schema.\n * Caches the result for [[Cached]] Schemas with key `:explainer`.\n */\nmalli.core.explainer \x3d (function malli$core$explainer(var_args){\nvar G__46462 \x3d arguments.length;\nswitch (G__46462) {\ncase 1:\nreturn malli.core.explainer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.explainer.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.explainer.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.explainer.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.explainer.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar schema_SINGLEQUOTE_ \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nvar explainer_SINGLEQUOTE_ \x3d malli.core._cached(schema_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22explainer\x22,\x22explainer\x22,-2002221924),(function (p1__46458_SHARP_){\nreturn malli.core._explainer(p1__46458_SHARP_,cljs.core.PersistentVector.EMPTY);\n}));\nreturn (function() {\nvar malli$core$explainer \x3d null;\nvar malli$core$explainer__1 \x3d (function (value){\nreturn malli$core$explainer.cljs$core$IFn$_invoke$arity$3(value,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY);\n});\nvar malli$core$explainer__3 \x3d (function (value,in$,acc){\nvar temp__5825__auto__ \x3d cljs.core.seq((explainer_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 ? explainer_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3(value,in$,acc) : explainer_SINGLEQUOTE_.call(null,value,in$,acc)));\nif(temp__5825__auto__){\nvar errors \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),schema_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value,new cljs.core.Keyword(null,\x22errors\x22,\x22errors\x22,-908790718),errors], null);\n} else {\nreturn null;\n}\n});\nmalli$core$explainer \x3d function(value,in$,acc){\nswitch(arguments.length){\ncase 1:\nreturn malli$core$explainer__1.call(this,value);\ncase 3:\nreturn malli$core$explainer__3.call(this,value,in$,acc);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nmalli$core$explainer.cljs$core$IFn$_invoke$arity$1 \x3d malli$core$explainer__1;\nmalli$core$explainer.cljs$core$IFn$_invoke$arity$3 \x3d malli$core$explainer__3;\nreturn malli$core$explainer;\n})()\n}));\n\n(malli.core.explainer.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Explains a value against a given schema. Creates the `explainer` for every call.\n * When performance matters, (re-)use `explainer` instead.\n */\nmalli.core.explain \x3d (function malli$core$explain(var_args){\nvar G__46486 \x3d arguments.length;\nswitch (G__46486) {\ncase 2:\nreturn malli.core.explain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.explain.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.explain.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,value){\nreturn malli.core.explain.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,value,null);\n}));\n\n(malli.core.explain.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,options){\nreturn malli.core.explainer.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options)(value,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY);\n}));\n\n(malli.core.explain.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns an pure parser function of type `x -\x3e either parsed-x ::invalid` for a given Schema.\n * Caches the result for [[Cached]] Schemas with key `:parser`.\n */\nmalli.core.parser \x3d (function malli$core$parser(var_args){\nvar G__46497 \x3d arguments.length;\nswitch (G__46497) {\ncase 1:\nreturn malli.core.parser.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.parser.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.parser.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.parser.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.parser.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._cached(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),new cljs.core.Keyword(null,\x22parser\x22,\x22parser\x22,-1543495310),malli.core._parser);\n}));\n\n(malli.core.parser.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * parses a value against a given schema. Creates the `parser` for every call.\n * When performance matters, (re-)use `parser` instead.\n */\nmalli.core.parse \x3d (function malli$core$parse(var_args){\nvar G__46501 \x3d arguments.length;\nswitch (G__46501) {\ncase 2:\nreturn malli.core.parse.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.parse.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.parse.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,value){\nreturn malli.core.parse.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,value,null);\n}));\n\n(malli.core.parse.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,options){\nvar fexpr__46503 \x3d malli.core.parser.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nreturn (fexpr__46503.cljs$core$IFn$_invoke$arity$1 ? fexpr__46503.cljs$core$IFn$_invoke$arity$1(value) : fexpr__46503.call(null,value));\n}));\n\n(malli.core.parse.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns an pure unparser function of type `parsed-x -\x3e either x ::invalid` for a given Schema.\n * Caches the result for [[Cached]] Schemas with key `:unparser`.\n */\nmalli.core.unparser \x3d (function malli$core$unparser(var_args){\nvar G__46508 \x3d arguments.length;\nswitch (G__46508) {\ncase 1:\nreturn malli.core.unparser.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.unparser.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.unparser.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.unparser.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.unparser.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nreturn malli.core._cached(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),new cljs.core.Keyword(null,\x22unparser\x22,\x22unparser\x22,1801459433),malli.core._unparser);\n}));\n\n(malli.core.unparser.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unparses a value against a given schema. Creates the `unparser` for every call.\n * When performance matters, (re-)use `unparser` instead.\n */\nmalli.core.unparse \x3d (function malli$core$unparse(var_args){\nvar G__46517 \x3d arguments.length;\nswitch (G__46517) {\ncase 2:\nreturn malli.core.unparse.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.unparse.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.unparse.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,value){\nreturn malli.core.unparse.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,value,null);\n}));\n\n(malli.core.unparse.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,options){\nvar fexpr__46520 \x3d malli.core.unparser.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nreturn (fexpr__46520.cljs$core$IFn$_invoke$arity$1 ? fexpr__46520.cljs$core$IFn$_invoke$arity$1(value) : fexpr__46520.call(null,value));\n}));\n\n(malli.core.unparse.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Creates a value decoding function given a transformer and a schema.\n */\nmalli.core.decoder \x3d (function malli$core$decoder(var_args){\nvar G__46524 \x3d arguments.length;\nswitch (G__46524) {\ncase 2:\nreturn malli.core.decoder.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.decoder.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.decoder.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,t){\nreturn malli.core.decoder.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,null,t);\n}));\n\n(malli.core.decoder.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,options,t){\nvar or__5025__auto__ \x3d malli.core._transformer(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),malli.core._into_transformer(t),new cljs.core.Keyword(null,\x22decode\x22,\x22decode\x22,-1306165281),options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n}));\n\n(malli.core.decoder.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Transforms a value with a given decoding transformer against a schema.\n */\nmalli.core.decode \x3d (function malli$core$decode(var_args){\nvar G__46537 \x3d arguments.length;\nswitch (G__46537) {\ncase 3:\nreturn malli.core.decode.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core.decode.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.decode.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,t){\nreturn malli.core.decode.cljs$core$IFn$_invoke$arity$4(_QMARK_schema,value,null,t);\n}));\n\n(malli.core.decode.cljs$core$IFn$_invoke$arity$4 \x3d (function (_QMARK_schema,value,options,t){\nvar temp__5823__auto__ \x3d malli.core.decoder.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,options,t);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar transform \x3d temp__5823__auto__;\nreturn (transform.cljs$core$IFn$_invoke$arity$1 ? transform.cljs$core$IFn$_invoke$arity$1(value) : transform.call(null,value));\n} else {\nreturn value;\n}\n}));\n\n(malli.core.decode.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Creates a value encoding transformer given a transformer and a schema.\n */\nmalli.core.encoder \x3d (function malli$core$encoder(var_args){\nvar G__46544 \x3d arguments.length;\nswitch (G__46544) {\ncase 2:\nreturn malli.core.encoder.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.encoder.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.encoder.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,t){\nreturn malli.core.encoder.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,null,t);\n}));\n\n(malli.core.encoder.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,options,t){\nvar or__5025__auto__ \x3d malli.core._transformer(malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options),malli.core._into_transformer(t),new cljs.core.Keyword(null,\x22encode\x22,\x22encode\x22,-1753429702),options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n}));\n\n(malli.core.encoder.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Transforms a value with a given encoding transformer against a schema.\n */\nmalli.core.encode \x3d (function malli$core$encode(var_args){\nvar G__46549 \x3d arguments.length;\nswitch (G__46549) {\ncase 3:\nreturn malli.core.encode.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core.encode.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.encode.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,t){\nreturn malli.core.encode.cljs$core$IFn$_invoke$arity$4(_QMARK_schema,value,null,t);\n}));\n\n(malli.core.encode.cljs$core$IFn$_invoke$arity$4 \x3d (function (_QMARK_schema,value,options,t){\nvar temp__5823__auto__ \x3d malli.core.encoder.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,options,t);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar transform \x3d temp__5823__auto__;\nreturn (transform.cljs$core$IFn$_invoke$arity$1 ? transform.cljs$core$IFn$_invoke$arity$1(value) : transform.call(null,value));\n} else {\nreturn value;\n}\n}));\n\n(malli.core.encode.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Creates a function to decode and validate a value, throws on validation error.\n */\nmalli.core.coercer \x3d (function malli$core$coercer(var_args){\nvar G__46555 \x3d arguments.length;\nswitch (G__46555) {\ncase 1:\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.coercer.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,null,null);\n}));\n\n(malli.core.coercer.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,transformer){\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$3(_QMARK_schema,transformer,null);\n}));\n\n(malli.core.coercer.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,transformer,options){\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$5(_QMARK_schema,transformer,null,null,options);\n}));\n\n(malli.core.coercer.cljs$core$IFn$_invoke$arity$4 \x3d (function (_QMARK_schema,transformer,respond,raise){\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$5(_QMARK_schema,transformer,respond,raise,null);\n}));\n\n(malli.core.coercer.cljs$core$IFn$_invoke$arity$5 \x3d (function (_QMARK_schema,transformer,respond,raise,options){\nvar s \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nvar valid_QMARK_ \x3d malli.core.validator.cljs$core$IFn$_invoke$arity$1(s);\nvar decode \x3d malli.core.decoder.cljs$core$IFn$_invoke$arity$2(s,transformer);\nvar explain \x3d malli.core.explainer.cljs$core$IFn$_invoke$arity$1(s);\nvar respond__$1 \x3d (function (){var or__5025__auto__ \x3d respond;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.identity;\n}\n})();\nvar raise__$1 \x3d (function (){var or__5025__auto__ \x3d raise;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (function (p1__46552_SHARP_){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22coercion\x22,\x22malli.core/coercion\x22,698994541),p1__46552_SHARP_);\n});\n}\n})();\nreturn (function malli$core$_coercer(x){\nvar value \x3d (decode.cljs$core$IFn$_invoke$arity$1 ? decode.cljs$core$IFn$_invoke$arity$1(x) : decode.call(null,x));\nif(cljs.core.truth_((valid_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK_.cljs$core$IFn$_invoke$arity$1(value) : valid_QMARK_.call(null,value)))){\nreturn (respond__$1.cljs$core$IFn$_invoke$arity$1 ? respond__$1.cljs$core$IFn$_invoke$arity$1(value) : respond__$1.call(null,value));\n} else {\nvar G__46559 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),s,new cljs.core.Keyword(null,\x22explain\x22,\x22explain\x22,484226146),(explain.cljs$core$IFn$_invoke$arity$1 ? explain.cljs$core$IFn$_invoke$arity$1(value) : explain.call(null,value))], null);\nreturn (raise__$1.cljs$core$IFn$_invoke$arity$1 ? raise__$1.cljs$core$IFn$_invoke$arity$1(G__46559) : raise__$1.call(null,G__46559));\n}\n});\n}));\n\n(malli.core.coercer.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Decode and validate a value, throws on validation error.\n */\nmalli.core.coerce \x3d (function malli$core$coerce(var_args){\nvar G__46562 \x3d arguments.length;\nswitch (G__46562) {\ncase 2:\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.coerce.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,value){\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$4(_QMARK_schema,value,null,null);\n}));\n\n(malli.core.coerce.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_schema,value,transformer){\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$4(_QMARK_schema,value,transformer,null);\n}));\n\n(malli.core.coerce.cljs$core$IFn$_invoke$arity$4 \x3d (function (_QMARK_schema,value,transformer,options){\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$6(_QMARK_schema,value,transformer,null,null,options);\n}));\n\n(malli.core.coerce.cljs$core$IFn$_invoke$arity$5 \x3d (function (_QMARK_schema,value,transformer,respond,raise){\nreturn malli.core.coerce.cljs$core$IFn$_invoke$arity$6(_QMARK_schema,value,transformer,respond,raise,null);\n}));\n\n(malli.core.coerce.cljs$core$IFn$_invoke$arity$6 \x3d (function (_QMARK_schema,value,transformer,respond,raise,options){\nreturn malli.core.coercer.cljs$core$IFn$_invoke$arity$5(_QMARK_schema,transformer,respond,raise,options)(value);\n}));\n\n(malli.core.coerce.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Returns `EntrySchema` children as a sequence of `clojure.lang/MapEntry`s\n * where the values child schemas wrapped in `:malli.core/val` Schemas,\n * with the entry properties as properties.\n * \n * Using `entries` enable usage of entry properties in walking and value\n * transformation.\n * \n * (def schema\n * [:map\n * [:x int?]\n * [:y {:optional true} int?]])\n * \n * (m/children schema)\n * ; [[:x nil int?]\n * ; [:y {:optional true} int?]]\n * \n * (m/entries schema)\n * ; [[:x [:malli.core/val int?]]\n * ; [:y [:malli.core/val {:optional true} int?]]]\n * \n * (map key (m/entries schema))\n * ; (:x :y)\n */\nmalli.core.entries \x3d (function malli$core$entries(var_args){\nvar G__46572 \x3d arguments.length;\nswitch (G__46572) {\ncase 1:\nreturn malli.core.entries.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.entries.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.entries.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.entries.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.entries.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar temp__5825__auto__ \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar schema \x3d temp__5825__auto__;\nif(malli.core._entry_schema_QMARK_(schema)){\nreturn malli.core._entries(schema);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(malli.core.entries.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a vector of explicit (not ::m/default) keys from EntrySchema\n */\nmalli.core.explicit_keys \x3d (function malli$core$explicit_keys(var_args){\nvar G__46583 \x3d arguments.length;\nswitch (G__46583) {\ncase 1:\nreturn malli.core.explicit_keys.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.explicit_keys.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.explicit_keys.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.explicit_keys.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.explicit_keys.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar schema \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nif(malli.core._entry_schema_QMARK_(schema)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__46587){\nvar vec__46588 \x3d p__46587;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46588,(0),null);\nvar e \x3d vec__46588;\nvar G__46591 \x3d acc;\nif((!(malli.core._default_entry(e)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(G__46591,k);\n} else {\nreturn G__46591;\n}\n}),cljs.core.PersistentVector.EMPTY,malli.core._entries(schema));\n} else {\nreturn null;\n}\n}));\n\n(malli.core.explicit_keys.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the default (::m/default) schema from EntrySchema\n */\nmalli.core.default_schema \x3d (function malli$core$default_schema(var_args){\nvar G__46602 \x3d arguments.length;\nswitch (G__46602) {\ncase 1:\nreturn malli.core.default_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.default_schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.default_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.default_schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.default_schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar schema \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nif(malli.core._entry_schema_QMARK_(schema)){\nreturn malli.core._default_entry_schema(malli.core._children(schema));\n} else {\nreturn null;\n}\n}));\n\n(malli.core.default_schema.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Derefs top-level `RefSchema`s or returns original Schema.\n */\nmalli.core.deref \x3d (function malli$core$deref(var_args){\nvar G__46610 \x3d arguments.length;\nswitch (G__46610) {\ncase 1:\nreturn malli.core.deref.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.deref.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.deref.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.deref.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.deref.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar schema \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nvar G__46616 \x3d schema;\nif(malli.core._ref_schema_QMARK_(schema)){\nreturn malli.core._deref(G__46616);\n} else {\nreturn G__46616;\n}\n}));\n\n(malli.core.deref.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Derefs top-level `RefSchema`s recursively or returns original Schema.\n */\nmalli.core.deref_all \x3d (function malli$core$deref_all(var_args){\nvar G__46620 \x3d arguments.length;\nswitch (G__46620) {\ncase 1:\nreturn malli.core.deref_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.deref_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.deref_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.deref_all.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.deref_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nwhile(true){\nvar schema \x3d malli.core.deref.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nvar G__46624 \x3d schema;\nif(malli.core._ref_schema_QMARK_(schema)){\nvar G__47983 \x3d G__46624;\nvar G__47984 \x3d options;\n_QMARK_schema \x3d G__47983;\noptions \x3d G__47984;\ncontinue;\n} else {\nreturn G__46624;\n}\nbreak;\n}\n}));\n\n(malli.core.deref_all.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Derefs all schemas at all levels. Does not walk over `:ref`s.\n */\nmalli.core.deref_recursive \x3d (function malli$core$deref_recursive(var_args){\nvar G__46630 \x3d arguments.length;\nswitch (G__46630) {\ncase 1:\nreturn malli.core.deref_recursive.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.deref_recursive.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.deref_recursive.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.deref_recursive.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.deref_recursive.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,p__46637){\nvar map__46639 \x3d p__46637;\nvar map__46639__$1 \x3d cljs.core.__destructure_map(map__46639);\nvar options \x3d map__46639__$1;\nvar ref_key \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46639__$1,new cljs.core.Keyword(\x22malli.core\x22,\x22ref-key\x22,\x22malli.core/ref-key\x22,-374484898));\nvar schema \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nvar maybe_set_ref \x3d (function (s,r){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ref_key;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn r;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn malli.core._update_properties.cljs$core$IFn$_invoke$arity$variadic(s,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ref_key,r], 0));\n} else {\nreturn s;\n}\n});\nreturn malli.core.deref_all.cljs$core$IFn$_invoke$arity$1(malli.core.walk.cljs$core$IFn$_invoke$arity$3(schema,(function (schema__$1,_,children,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),malli.core.type.cljs$core$IFn$_invoke$arity$1(schema__$1))){\nreturn schema__$1;\n} else {\nif(malli.core._ref_schema_QMARK_(schema__$1)){\nreturn maybe_set_ref(malli.core.deref.cljs$core$IFn$_invoke$arity$1(malli.core._set_children(schema__$1,children)),malli.core._ref(schema__$1));\n} else {\nreturn malli.core._set_children(schema__$1,children);\n\n}\n}\n}),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22malli.core\x22,\x22walk-schema-refs\x22,\x22malli.core/walk-schema-refs\x22,-1140065954),true], null)));\n}));\n\n(malli.core.deref_recursive.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Creates a Schema from AST\n */\nmalli.core.from_ast \x3d (function malli$core$from_ast(var_args){\nvar G__46659 \x3d arguments.length;\nswitch (G__46659) {\ncase 1:\nreturn malli.core.from_ast.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.from_ast.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.from_ast.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_ast){\nreturn malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(_QMARK_ast,null);\n}));\n\n(malli.core.from_ast.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_ast,options){\nif(malli.core.schema_QMARK_(_QMARK_ast)){\nreturn _QMARK_ast;\n} else {\nif(cljs.core.map_QMARK_(_QMARK_ast)){\nvar temp__5823__auto__ \x3d malli.core._lookup(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(_QMARK_ast),options);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar s \x3d temp__5823__auto__;\nvar r \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(_QMARK_ast);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar r \x3d temp__5825__auto__;\nreturn malli.core._delayed_registry(r,malli.core.from_ast);\n} else {\nreturn null;\n}\n})();\nvar options__$1 \x3d (function (){var G__46662 \x3d options;\nif(cljs.core.truth_(r)){\nreturn malli.core._update(G__46662,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),(function (p1__46650_SHARP_){\nreturn malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r,(function (){var or__5025__auto__ \x3d p1__46650_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._registry.cljs$core$IFn$_invoke$arity$1(options);\n}\n})()], 0));\n}));\n} else {\nreturn G__46662;\n}\n})();\nvar ast \x3d (function (){var G__46664 \x3d _QMARK_ast;\nif(cljs.core.truth_(r)){\nreturn malli.core._update(G__46664,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552),(function (p1__46651_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__46651_SHARP_,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),malli.core._property_registry(r,options__$1,cljs.core.identity));\n}));\n} else {\nreturn G__46664;\n}\n})();\nif(((malli.core.into_schema_QMARK_(s)) \x26\x26 (malli.core._ast_QMARK_(s)))){\nreturn malli.core._from_ast(s,ast,options__$1);\n} else {\nif(malli.core.into_schema_QMARK_(s)){\nreturn malli.core._into_schema(s,new cljs.core.Keyword(null,\x22properties\x22,\x22properties\x22,685819552).cljs$core$IFn$_invoke$arity$1(ast),malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__46653_SHARP_){\nreturn malli.core.from_ast.cljs$core$IFn$_invoke$arity$2(p1__46653_SHARP_,options__$1);\n}),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)),options__$1);\n} else {\nreturn s;\n\n}\n}\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-ast\x22,\x22malli.core/invalid-ast\x22,-1822979859),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ast\x22,\x22ast\x22,-860334068),_QMARK_ast], null));\n}\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-ast\x22,\x22malli.core/invalid-ast\x22,-1822979859),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ast\x22,\x22ast\x22,-860334068),_QMARK_ast], null));\n\n}\n}\n}));\n\n(malli.core.from_ast.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the Schema AST\n */\nmalli.core.ast \x3d (function malli$core$ast(var_args){\nvar G__46675 \x3d arguments.length;\nswitch (G__46675) {\ncase 1:\nreturn malli.core.ast.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.ast.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.ast.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.ast.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.ast.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar s \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nif(malli.core._ast_QMARK_(s)){\nreturn malli.core._to_ast(s,options);\n} else {\nvar c \x3d malli.core._children(s);\nreturn malli.core._ast((function (){var G__46688 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),malli.core.type.cljs$core$IFn$_invoke$arity$1(s)], null);\nif(cljs.core.truth_(c)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__46688,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p1__46669_SHARP_){\nreturn malli.core.ast.cljs$core$IFn$_invoke$arity$2(p1__46669_SHARP_,options);\n}),c));\n} else {\nreturn G__46688;\n}\n})(),malli.core._properties(s),malli.core._options(s));\n}\n}));\n\n(malli.core.ast.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core._default_sci_options \x3d (function malli$core$_default_sci_options(){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22preset\x22,\x22preset\x22,777387345),new cljs.core.Keyword(null,\x22termination-safe\x22,\x22termination-safe\x22,-1845225130),new cljs.core.Keyword(null,\x22aliases\x22,\x22aliases\x22,1346874714),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22str\x22,\x22str\x22,-1564826950,null),new cljs.core.Symbol(null,\x22clojure.string\x22,\x22clojure.string\x22,-1415552165,null),new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22malli.core\x22,\x22malli.core\x22,-2051169970,null)], null),new cljs.core.Keyword(null,\x22namespaces\x22,\x22namespaces\x22,-1444157469),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22malli.core\x22,\x22malli.core\x22,-2051169970,null),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22properties\x22,\x22properties\x22,-1968616217,null),malli.core.properties,new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),malli.core.type,new cljs.core.Symbol(null,\x22children\x22,\x22children\x22,699969545,null),malli.core.children,new cljs.core.Symbol(null,\x22entries\x22,\x22entries\x22,1553588366,null),malli.core.entries], null)], null)], null);\n});\nvar _fail_BANG__47999 \x3d (function (p1__46702_SHARP_){\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22sci-not-available\x22,\x22malli.core/sci-not-available\x22,-1400847277),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),p1__46702_SHARP_], null));\n});\nvar _eval_QMARK__48000 \x3d (function (p1__46705_SHARP_){\nreturn (((p1__46705_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__46705_SHARP_ \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(p1__46705_SHARP_)))));\n});\nvar _evaluator_48001 \x3d cljs.core.memoize(malli.sci.evaluator);\nmalli.core.eval \x3d (function malli$core$eval(var_args){\nvar G__46710 \x3d arguments.length;\nswitch (G__46710) {\ncase 1:\nreturn malli.core.eval.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.eval.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.eval.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_code){\nreturn malli.core.eval.cljs$core$IFn$_invoke$arity$2(_QMARK_code,null);\n}));\n\n(malli.core.eval.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_code,options){\nif(cljs.core.vector_QMARK_(_QMARK_code)){\nreturn _QMARK_code;\n} else {\nif(_eval_QMARK__48000(_QMARK_code)){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22malli.core\x22,\x22disable-sci\x22,\x22malli.core/disable-sci\x22,-907669760).cljs$core$IFn$_invoke$arity$1(options))){\nreturn _fail_BANG__47999(_QMARK_code);\n} else {\nvar fexpr__46716 \x3d (function (){var fexpr__46717 \x3d _evaluator_48001((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(\x22malli.core\x22,\x22sci-options\x22,\x22malli.core/sci-options\x22,905728020).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._default_sci_options();\n}\n})(),_fail_BANG__47999);\nreturn (fexpr__46717.cljs$core$IFn$_invoke$arity$0 ? fexpr__46717.cljs$core$IFn$_invoke$arity$0() : fexpr__46717.call(null));\n})();\nreturn (fexpr__46716.cljs$core$IFn$_invoke$arity$1 ? fexpr__46716.cljs$core$IFn$_invoke$arity$1(_QMARK_code) : fexpr__46716.call(null,_QMARK_code));\n}\n} else {\nreturn _QMARK_code;\n\n}\n}\n}));\n\n(malli.core.eval.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core.schema_walker \x3d (function malli$core$schema_walker(f){\nreturn (function (schema,_,children,___$1){\nvar G__46722 \x3d malli.core._set_children(schema,children);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__46722) : f.call(null,G__46722));\n});\n});\nmalli.core.predicate_schemas \x3d (function malli$core$predicate_schemas(){\nvar _safe_empty_QMARK_ \x3d (function (x){\nreturn ((cljs.core.seqable_QMARK_(x)) \x26\x26 (cljs.core.empty_QMARK_(x)));\n});\nreturn malli.core._register_var.cljs$core$IFn$_invoke$arity$4(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(malli.core._register_var.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Symbol(null,\x22any?\x22,\x22any?\x22,-318999933,null),cljs.core.any_QMARK_),new cljs.core.Symbol(null,\x22some?\x22,\x22some?\x22,234752293,null),cljs.core.some_QMARK_),new cljs.core.Symbol(null,\x22number?\x22,\x22number?\x22,-1747282210,null),cljs.core.number_QMARK_),new cljs.core.Symbol(null,\x22integer?\x22,\x22integer?\x22,1303791671,null),cljs.core.integer_QMARK_),new cljs.core.Symbol(null,\x22int?\x22,\x22int?\x22,1799729645,null),cljs.core.int_QMARK_),new cljs.core.Symbol(null,\x22pos-int?\x22,\x22pos-int?\x22,-1205815015,null),cljs.core.pos_int_QMARK_),new cljs.core.Symbol(null,\x22neg-int?\x22,\x22neg-int?\x22,-1610409390,null),cljs.core.neg_int_QMARK_),new cljs.core.Symbol(null,\x22nat-int?\x22,\x22nat-int?\x22,-1879663400,null),cljs.core.nat_int_QMARK_),new cljs.core.Symbol(null,\x22pos?\x22,\x22pos?\x22,-244377722,null),cljs.core.pos_QMARK_),new cljs.core.Symbol(null,\x22neg?\x22,\x22neg?\x22,-1902175577,null),cljs.core.neg_QMARK_),new cljs.core.Symbol(null,\x22float?\x22,\x22float?\x22,673884616,null),cljs.core.float_QMARK_),new cljs.core.Symbol(null,\x22double?\x22,\x22double?\x22,-2146564276,null),cljs.core.double_QMARK_),new cljs.core.Symbol(null,\x22boolean?\x22,\x22boolean?\x22,1790940868,null),cljs.core.boolean_QMARK_),new cljs.core.Symbol(null,\x22string?\x22,\x22string?\x22,-1129175764,null),cljs.core.string_QMARK_),new cljs.core.Symbol(null,\x22ident?\x22,\x22ident?\x22,-2061359468,null),cljs.core.ident_QMARK_),new cljs.core.Symbol(null,\x22simple-ident?\x22,\x22simple-ident?\x22,194189851,null),cljs.core.simple_ident_QMARK_),new cljs.core.Symbol(null,\x22qualified-ident?\x22,\x22qualified-ident?\x22,-928894763,null),cljs.core.qualified_ident_QMARK_),new cljs.core.Symbol(null,\x22keyword?\x22,\x22keyword?\x22,1917797069,null),cljs.core.keyword_QMARK_),new cljs.core.Symbol(null,\x22simple-keyword?\x22,\x22simple-keyword?\x22,-367134735,null),cljs.core.simple_keyword_QMARK_),new cljs.core.Symbol(null,\x22qualified-keyword?\x22,\x22qualified-keyword?\x22,375456001,null),cljs.core.qualified_keyword_QMARK_),new cljs.core.Symbol(null,\x22symbol?\x22,\x22symbol?\x22,1820680511,null),cljs.core.symbol_QMARK_),new cljs.core.Symbol(null,\x22simple-symbol?\x22,\x22simple-symbol?\x22,1408454822,null),cljs.core.simple_symbol_QMARK_),new cljs.core.Symbol(null,\x22qualified-symbol?\x22,\x22qualified-symbol?\x22,98763807,null),cljs.core.qualified_symbol_QMARK_),new cljs.core.Symbol(null,\x22uuid?\x22,\x22uuid?\x22,400077689,null),cljs.core.uuid_QMARK_),new cljs.core.Symbol(null,\x22uri?\x22,\x22uri?\x22,2029475116,null),cljs.core.uri_QMARK_),new cljs.core.Symbol(null,\x22inst?\x22,\x22inst?\x22,1614698981,null),cljs.core.inst_QMARK_),new cljs.core.Symbol(null,\x22seqable?\x22,\x22seqable?\x22,72462495,null),cljs.core.seqable_QMARK_),new cljs.core.Symbol(null,\x22indexed?\x22,\x22indexed?\x22,1234610384,null),cljs.core.indexed_QMARK_),new cljs.core.Symbol(null,\x22map?\x22,\x22map?\x22,-1780568534,null),cljs.core.map_QMARK_),new cljs.core.Symbol(null,\x22vector?\x22,\x22vector?\x22,-61367869,null),cljs.core.vector_QMARK_),new cljs.core.Symbol(null,\x22list?\x22,\x22list?\x22,-1494629,null),cljs.core.list_QMARK_),new cljs.core.Symbol(null,\x22seq?\x22,\x22seq?\x22,-1951934719,null),cljs.core.seq_QMARK_),new cljs.core.Symbol(null,\x22char?\x22,\x22char?\x22,-1072221244,null),cljs.core.char_QMARK_),new cljs.core.Symbol(null,\x22set?\x22,\x22set?\x22,1636014792,null),cljs.core.set_QMARK_),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),cljs.core.nil_QMARK_),new cljs.core.Symbol(null,\x22false?\x22,\x22false?\x22,-1522377573,null),cljs.core.false_QMARK_),new cljs.core.Symbol(null,\x22true?\x22,\x22true?\x22,-1600332395,null),cljs.core.true_QMARK_),new cljs.core.Symbol(null,\x22zero?\x22,\x22zero?\x22,325758897,null),cljs.core.zero_QMARK_),new cljs.core.Symbol(null,\x22coll?\x22,\x22coll?\x22,-1874821441,null),cljs.core.coll_QMARK_),new cljs.core.Symbol(null,\x22associative?\x22,\x22associative?\x22,-141666771,null),cljs.core.associative_QMARK_),new cljs.core.Symbol(null,\x22sequential?\x22,\x22sequential?\x22,1102351463,null),cljs.core.sequential_QMARK_),new cljs.core.Symbol(null,\x22ifn?\x22,\x22ifn?\x22,-2106461064,null),cljs.core.ifn_QMARK_),new cljs.core.Symbol(null,\x22fn?\x22,\x22fn?\x22,1820990818,null),cljs.core.fn_QMARK_),new cljs.core.Symbol(null,\x22empty?\x22,\x22empty?\x22,76408555,null),cljs.core.empty_QMARK_,_safe_empty_QMARK_);\n});\nmalli.core.class_schemas \x3d (function malli$core$class_schemas(){\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.type((new RegExp(\x22\x22))),malli.core._re_schema(true)]);\n});\nmalli.core.comparator_schemas \x3d (function malli$core$comparator_schemas(){\nreturn cljs.core.reduce_kv(cljs.core.assoc,null,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,malli.core._vmap.cljs$core$IFn$_invoke$arity$2((function (p__46739){\nvar vec__46741 \x3d p__46739;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46741,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46741,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),k,new cljs.core.Keyword(null,\x22from-ast\x22,\x22from-ast\x22,-246238449),malli.core._from_value_ast,new cljs.core.Keyword(null,\x22to-ast\x22,\x22to-ast\x22,-21935298),malli.core._to_value_ast,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1),new cljs.core.Keyword(null,\x22compile\x22,\x22compile\x22,608186429),(function (_,p__46745,___$1){\nvar vec__46746 \x3d p__46745;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46746,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),malli.core._safe_pred((function (p1__46736_SHARP_){\nreturn (v.cljs$core$IFn$_invoke$arity$2 ? v.cljs$core$IFn$_invoke$arity$2(p1__46736_SHARP_,child) : v.call(null,p1__46736_SHARP_,child));\n}))], null);\n})], null))], null);\n}),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22\x3e\x22,\x22\x3e\x22,-555517146),cljs.core._GT_,new cljs.core.Keyword(null,\x22\x3e\x3d\x22,\x22\x3e\x3d\x22,-623615505),cljs.core._GT__EQ_,new cljs.core.Keyword(null,\x22\x3c\x22,\x22\x3c\x22,-646864291),cljs.core._LT_,new cljs.core.Keyword(null,\x22\x3c\x3d\x22,\x22\x3c\x3d\x22,-395636158),cljs.core._LT__EQ_,new cljs.core.Keyword(null,\x22\x3d\x22,\x22\x3d\x22,1152933628),cljs.core._EQ_,new cljs.core.Keyword(null,\x22not\x3d\x22,\x22not\x3d\x22,-173995323),cljs.core.not_EQ_], null))));\n});\nmalli.core.type_schemas \x3d (function malli$core$type_schemas(){\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22qualified-symbol\x22,\x22qualified-symbol\x22,-665513695),new cljs.core.Keyword(null,\x22double\x22,\x22double\x22,884886883),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),new cljs.core.Keyword(null,\x22qualified-keyword\x22,\x22qualified-keyword\x22,736041675),new cljs.core.Keyword(null,\x22some\x22,\x22some\x22,-1951079573),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747),new cljs.core.Keyword(null,\x22nil\x22,\x22nil\x22,99600501),new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719),new cljs.core.Keyword(null,\x22boolean\x22,\x22boolean\x22,-1919418404),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)],[malli.core._qualified_symbol_schema(),malli.core._double_schema(),malli.core._int_schema(),malli.core._float_schema(),malli.core._symbol_schema(),malli.core._qualified_keyword_schema(),malli.core._some_schema(),malli.core._string_schema(),malli.core._keyword_schema(),malli.core._nil_schema(),malli.core._uuid_schema(),malli.core._boolean_schema(),malli.core._any_schema()]);\n});\nmalli.core.sequence_schemas \x3d (function malli$core$sequence_schemas(){\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22+\x22,\x22+\x22,1913524883),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,p__46756){\nvar vec__46757 \x3d p__46756;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46757,(0),null);\nreturn malli.impl.regex._PLUS__explainer(child);\n}),(function (_,p__46760){\nvar vec__46762 \x3d p__46760;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46762,(0),null);\nreturn malli.impl.regex._PLUS__parser(child);\n}),(function (_,p__46766){\nvar vec__46769 \x3d p__46766;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46769,(0),null);\nreturn malli.impl.regex._PLUS__unparser(child);\n}),new cljs.core.Keyword(null,\x22+\x22,\x22+\x22,1913524883),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null),(function (_,p__46772){\nvar vec__46773 \x3d p__46772;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46773,(0),null);\nreturn malli.impl.regex._PLUS__transformer(child);\n}),(function (_,p__46779){\nvar vec__46780 \x3d p__46779;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46780,(0),null);\nreturn malli.impl.regex._PLUS__validator(child);\n}),(function (_,p__46783){\nvar vec__46784 \x3d p__46783;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46784,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522).cljs$core$IFn$_invoke$arity$1(malli.core._regex_min_max(child,true))], null);\n}),true])),new cljs.core.Keyword(null,\x22*\x22,\x22*\x22,-1294732318),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,p__46788){\nvar vec__46789 \x3d p__46788;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46789,(0),null);\nreturn malli.impl.regex._STAR__explainer(child);\n}),(function (_,p__46794){\nvar vec__46796 \x3d p__46794;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46796,(0),null);\nreturn malli.impl.regex._STAR__parser(child);\n}),(function (_,p__46800){\nvar vec__46801 \x3d p__46800;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46801,(0),null);\nreturn malli.impl.regex._STAR__unparser(child);\n}),new cljs.core.Keyword(null,\x22*\x22,\x22*\x22,-1294732318),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null),(function (_,p__46805){\nvar vec__46806 \x3d p__46805;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46806,(0),null);\nreturn malli.impl.regex._STAR__transformer(child);\n}),(function (_,p__46811){\nvar vec__46812 \x3d p__46811;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46812,(0),null);\nreturn malli.impl.regex._STAR__validator(child);\n}),(function (_,___$1){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0)], null);\n}),true])),new cljs.core.Keyword(null,\x22?\x22,\x22?\x22,-1703165233),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,p__46816){\nvar vec__46820 \x3d p__46816;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46820,(0),null);\nreturn malli.impl.regex._QMARK__explainer(child);\n}),(function (_,p__46824){\nvar vec__46825 \x3d p__46824;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46825,(0),null);\nreturn malli.impl.regex._QMARK__parser(child);\n}),(function (_,p__46834){\nvar vec__46835 \x3d p__46834;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46835,(0),null);\nreturn malli.impl.regex._QMARK__unparser(child);\n}),new cljs.core.Keyword(null,\x22?\x22,\x22?\x22,-1703165233),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null),(function (_,p__46840){\nvar vec__46841 \x3d p__46840;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46841,(0),null);\nreturn malli.impl.regex._QMARK__transformer(child);\n}),(function (_,p__46844){\nvar vec__46851 \x3d p__46844;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46851,(0),null);\nreturn malli.impl.regex._QMARK__validator(child);\n}),(function (_,p__46856){\nvar vec__46857 \x3d p__46856;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46857,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548).cljs$core$IFn$_invoke$arity$1(malli.core._regex_min_max(child,true))], null);\n}),true])),new cljs.core.Keyword(null,\x22repeat\x22,\x22repeat\x22,832692087),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (p__46861,p__46862){\nvar map__46863 \x3d p__46861;\nvar map__46863__$1 \x3d cljs.core.__destructure_map(map__46863);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46863__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46863__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),Infinity);\nvar vec__46864 \x3d p__46862;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46864,(0),null);\nreturn malli.impl.regex.repeat_explainer(min,max,child);\n}),(function (p__46868,p__46869){\nvar map__46870 \x3d p__46868;\nvar map__46870__$1 \x3d cljs.core.__destructure_map(map__46870);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46870__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46870__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),Infinity);\nvar vec__46871 \x3d p__46869;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46871,(0),null);\nreturn malli.impl.regex.repeat_parser(min,max,child);\n}),(function (p__46874,p__46875){\nvar map__46876 \x3d p__46874;\nvar map__46876__$1 \x3d cljs.core.__destructure_map(map__46876);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46876__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46876__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),Infinity);\nvar vec__46877 \x3d p__46875;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46877,(0),null);\nreturn malli.impl.regex.repeat_unparser(min,max,child);\n}),new cljs.core.Keyword(null,\x22repeat\x22,\x22repeat\x22,832692087),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(1)], null),(function (p__46880,p__46881){\nvar map__46882 \x3d p__46880;\nvar map__46882__$1 \x3d cljs.core.__destructure_map(map__46882);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46882__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46882__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),Infinity);\nvar vec__46883 \x3d p__46881;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46883,(0),null);\nreturn malli.impl.regex.repeat_transformer(min,max,child);\n}),(function (p__46886,p__46887){\nvar map__46889 \x3d p__46886;\nvar map__46889__$1 \x3d cljs.core.__destructure_map(map__46889);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46889__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__46889__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),Infinity);\nvar vec__46890 \x3d p__46887;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46890,(0),null);\nreturn malli.impl.regex.repeat_validator(min,max,child);\n}),(function (props,p__46894){\nvar vec__46895 \x3d p__46894;\nvar child \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__46895,(0),null);\nreturn malli.core._re_min_max(cljs.core._STAR_,props,child);\n}),true])),new cljs.core.Keyword(null,\x22cat\x22,\x22cat\x22,-1457810207),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_explainer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_parser,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_unparser,children);\n}),new cljs.core.Keyword(null,\x22cat\x22,\x22cat\x22,-1457810207),cljs.core.PersistentArrayMap.EMPTY,(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_transformer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_validator,children);\n}),(function (_,children){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(malli.core._re_min_max,cljs.core._PLUS_),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(0)], null),children);\n}),true])),new cljs.core.Keyword(null,\x22alt\x22,\x22alt\x22,-3214426),malli.core._sequence_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_explainer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_parser,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_unparser,children);\n}),new cljs.core.Keyword(null,\x22alt\x22,\x22alt\x22,-3214426),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1)], null),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_transformer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_validator,children);\n}),(function (_,children){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(malli.core._re_alt_min_max,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(0)], null),children);\n}),true])),new cljs.core.Keyword(null,\x22catn\x22,\x22catn\x22,-48807277),malli.core._sequence_entry_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_explainer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(malli.impl.regex.catn_parser,malli.core.tags,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(malli.impl.regex.catn_unparser,malli.core.tags_QMARK_,children);\n}),new cljs.core.Keyword(null,\x22catn\x22,\x22catn\x22,-48807277),cljs.core.PersistentArrayMap.EMPTY,(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_transformer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.cat_validator,children);\n}),(function (_,children){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(malli.core._re_min_max,cljs.core._PLUS_),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(0)], null),malli.core._vmap.cljs$core$IFn$_invoke$arity$2(cljs.core.last,children));\n}),false])),new cljs.core.Keyword(null,\x22altn\x22,\x22altn\x22,1717854417),malli.core._sequence_entry_schema(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22re-explainer\x22,\x22re-explainer\x22,-1266871200),new cljs.core.Keyword(null,\x22re-parser\x22,\x22re-parser\x22,-1229625564),new cljs.core.Keyword(null,\x22re-unparser\x22,\x22re-unparser\x22,1432943079),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22child-bounds\x22,\x22child-bounds\x22,1368514738),new cljs.core.Keyword(null,\x22re-transformer\x22,\x22re-transformer\x22,-1516368461),new cljs.core.Keyword(null,\x22re-validator\x22,\x22re-validator\x22,-180375208),new cljs.core.Keyword(null,\x22re-min-max\x22,\x22re-min-max\x22,1020871707),new cljs.core.Keyword(null,\x22keep\x22,\x22keep\x22,-2133338530)],[(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_explainer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(malli.impl.regex.altn_parser,malli.core.tag,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(malli.impl.regex.altn_unparser,malli.core.tag_QMARK_,children);\n}),new cljs.core.Keyword(null,\x22altn\x22,\x22altn\x22,1717854417),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1)], null),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_transformer,children);\n}),(function (_,children){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(malli.impl.regex.alt_validator,children);\n}),(function (_,children){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(malli.core._re_alt_min_max,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(0)], null),malli.core._vmap.cljs$core$IFn$_invoke$arity$2(cljs.core.last,children));\n}),false]))], null);\n});\nmalli.core.base_schemas \x3d (function malli$core$base_schemas(){\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),new cljs.core.Keyword(null,\x22-\x3e\x22,\x22-\x3e\x22,514830339),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22orn\x22,\x22orn\x22,738436484),new cljs.core.Keyword(null,\x22seqable\x22,\x22seqable\x22,-1305253818),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960),new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Keyword(null,\x22re\x22,\x22re\x22,228676202),new cljs.core.Keyword(null,\x22not\x22,\x22not\x22,-595976884),new cljs.core.Keyword(null,\x22tuple\x22,\x22tuple\x22,-472667284),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22function\x22,\x22function\x22,-2127255473),new cljs.core.Keyword(null,\x22\x3d\x3e\x22,\x22\x3d\x3e\x22,1841166128),new cljs.core.Keyword(null,\x22map-of\x22,\x22map-of\x22,1189682355),new cljs.core.Keyword(null,\x22multi\x22,\x22multi\x22,-190293005),new cljs.core.Keyword(null,\x22and\x22,\x22and\x22,-971899817),new cljs.core.Keyword(\x22malli.core\x22,\x22schema\x22,\x22malli.core/schema\x22,-1780373863),new cljs.core.Keyword(null,\x22every\x22,\x22every\x22,-2060295878),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461)],[malli.core._enum_schema(),malli.core._schema_schema(null),malli.core.___GT__schema(null),malli.core._fn_schema(),malli.core._orn_schema(),malli.core._collection_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22seqable\x22,\x22seqable\x22,-1305253818),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.seqable_QMARK_], null)),malli.core._ref_schema.cljs$core$IFn$_invoke$arity$0(),malli.core._maybe_schema(),malli.core._collection_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.sequential_QMARK_], null)),malli.core._or_schema(),malli.core._re_schema(false),malli.core._not_schema(),malli.core._tuple_schema.cljs$core$IFn$_invoke$arity$0(),malli.core._collection_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.vector_QMARK_,new cljs.core.Keyword(null,\x22empty\x22,\x22empty\x22,767870958),cljs.core.PersistentVector.EMPTY], null)),malli.core._function_schema(null),malli.core.__EQ__GT__schema(),malli.core._map_of_schema.cljs$core$IFn$_invoke$arity$0(),malli.core._multi_schema.cljs$core$IFn$_invoke$arity$0(),malli.core._and_schema(),malli.core._schema_schema(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272),true], null)),malli.core._collection_schema(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22every\x22,\x22every\x22,-2060295878),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.seqable_QMARK_,new cljs.core.Keyword(null,\x22bounded\x22,\x22bounded\x22,-1973595643),true], null)),malli.core._collection_schema(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.set_QMARK_,new cljs.core.Keyword(null,\x22empty\x22,\x22empty\x22,767870958),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),(function (_,x){\nreturn x;\n})], null)),malli.core._map_schema.cljs$core$IFn$_invoke$arity$0()]);\n});\nmalli.core.default_schemas \x3d (function malli$core$default_schemas(){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.core.predicate_schemas(),malli.core.class_schemas(),malli.core.comparator_schemas(),malli.core.type_schemas(),malli.core.sequence_schemas(),malli.core.base_schemas()], 0));\n});\nmalli.core.default_registry \x3d (function (){var strict \x3d (malli.registry.mode \x3d\x3d\x3d \x22strict\x22);\nvar custom \x3d (malli.registry.type \x3d\x3d\x3d \x22custom\x22);\nvar registry \x3d ((custom)?malli.registry.fast_registry(cljs.core.PersistentArrayMap.EMPTY):malli.registry.composite_registry.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.registry.fast_registry(malli.core.default_schemas()),malli.registry.var_registry()], 0)));\nif(strict){\n} else {\nmalli.registry.set_default_registry_BANG_(registry);\n}\n\nreturn malli.registry.registry(((strict)?registry:malli.registry.custom_default_registry()));\n})();\nif((typeof malli !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof malli.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof malli.core._function_schemas_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\nmalli.core._function_schemas_STAR_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}\nmalli.core.function_schemas \x3d (function malli$core$function_schemas(var_args){\nvar G__46922 \x3d arguments.length;\nswitch (G__46922) {\ncase 0:\nreturn malli.core.function_schemas.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn malli.core.function_schemas.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.function_schemas.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn malli.core.function_schemas.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428));\n}));\n\n(malli.core.function_schemas.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nvar fexpr__46927 \x3d cljs.core.deref(malli.core._function_schemas_STAR_);\nreturn (fexpr__46927.cljs$core$IFn$_invoke$arity$1 ? fexpr__46927.cljs$core$IFn$_invoke$arity$1(key) : fexpr__46927.call(null,key));\n}));\n\n(malli.core.function_schemas.cljs$lang$maxFixedArity \x3d 1);\n\nmalli.core._deregister_function_schemas_BANG_ \x3d (function malli$core$_deregister_function_schemas_BANG_(key){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(malli.core._function_schemas_STAR_,cljs.core.assoc,key,cljs.core.PersistentArrayMap.EMPTY);\n});\nmalli.core._deregister_metadata_function_schemas_BANG_ \x3d (function malli$core$_deregister_metadata_function_schemas_BANG_(key){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(malli.core._function_schemas_STAR_,cljs.core.update,key,(function (fn_schemas_map){\nreturn cljs.core.reduce_kv((function (acc,ns_sym,fn_map){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,ns_sym,cljs.core.reduce_kv((function (acc2,fn_sym,fn_map__$1){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22metadata-schema?\x22,\x22metadata-schema?\x22,-987777163).cljs$core$IFn$_invoke$arity$1(fn_map__$1))){\nreturn acc2;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc2,fn_sym,fn_map__$1);\n}\n}),cljs.core.PersistentArrayMap.EMPTY,fn_map));\n}),cljs.core.PersistentArrayMap.EMPTY,fn_schemas_map);\n}));\n});\nmalli.core.function_schema \x3d (function malli$core$function_schema(var_args){\nvar G__46933 \x3d arguments.length;\nswitch (G__46933) {\ncase 1:\nreturn malli.core.function_schema.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core.function_schema.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core.function_schema.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_schema){\nreturn malli.core.function_schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,null);\n}));\n\n(malli.core.function_schema.cljs$core$IFn$_invoke$arity$2 \x3d (function (_QMARK_schema,options){\nvar s \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(_QMARK_schema,options);\nif(cljs.core.truth_(malli.core._function_schema_QMARK_(s))){\nreturn s;\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22invalid-\x3d\x3eschema\x22,\x22malli.core/invalid-\x3d\x3eschema\x22,46765066),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),malli.core.type.cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),s], null));\n}\n}));\n\n(malli.core.function_schema.cljs$lang$maxFixedArity \x3d 2);\n\nmalli.core._register_function_schema_BANG_ \x3d (function malli$core$_register_function_schema_BANG_(var_args){\nvar G__46937 \x3d arguments.length;\nswitch (G__46937) {\ncase 4:\nreturn malli.core._register_function_schema_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 6:\nreturn malli.core._register_function_schema_BANG_.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._register_function_schema_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (ns,name,_QMARK_schema,data){\nreturn malli.core._register_function_schema_BANG_.cljs$core$IFn$_invoke$arity$6(ns,name,_QMARK_schema,data,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428),malli.core.function_schema);\n}));\n\n(malli.core._register_function_schema_BANG_.cljs$core$IFn$_invoke$arity$6 \x3d (function (ns,name,_QMARK_schema,data,key,f){\ntry{return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(malli.core._function_schemas_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [key,ns,name], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([data,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(_QMARK_schema) : f.call(null,_QMARK_schema)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name], null)], 0)));\n}catch (e46943){var ex \x3d e46943;\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22register-function-schema\x22,\x22malli.core/register-function-schema\x22,-1224381998),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),_QMARK_schema,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),ex], null));\n}}));\n\n(malli.core._register_function_schema_BANG_.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Takes an instrumentation properties map and a function and returns a wrapped function,\n * which will validate function arguments and return values based on the function schema\n * definition. The following properties are used:\n * \n * | key | description |\n * | ----------|-------------|\n * | `:schema` | function schema\n * | `:scope` | optional set of scope definitions, defaults to `#{:input :output :guard}`\n * | `:report` | optional side-effecting function of `key data -\x3e any` to report problems, defaults to `m/-fail!`\n * | `:gen` | optional function of `schema -\x3e schema -\x3e value` to be invoked on the args to get the return value\n */\nmalli.core._instrument \x3d (function malli$core$_instrument(var_args){\nvar G__46951 \x3d arguments.length;\nswitch (G__46951) {\ncase 1:\nreturn malli.core._instrument.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn malli.core._instrument.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn malli.core._instrument.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(malli.core._instrument.cljs$core$IFn$_invoke$arity$1 \x3d (function (props){\nreturn malli.core._instrument.cljs$core$IFn$_invoke$arity$3(props,null,null);\n}));\n\n(malli.core._instrument.cljs$core$IFn$_invoke$arity$2 \x3d (function (props,f){\nreturn malli.core._instrument.cljs$core$IFn$_invoke$arity$3(props,f,null);\n}));\n\n(malli.core._instrument.cljs$core$IFn$_invoke$arity$3 \x3d (function (props,f,options){\nvar props__$1 \x3d cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.update.cljs$core$IFn$_invoke$arity$3(props,new cljs.core.Keyword(null,\x22scope\x22,\x22scope\x22,-439358418),(function (p1__46944_SHARP_){\nvar or__5025__auto__ \x3d p1__46944_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22output\x22,\x22output\x22,-1105869043),null,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),null,new cljs.core.Keyword(null,\x22guard\x22,\x22guard\x22,-873147811),null], null), null);\n}\n})),new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),(function (p1__46945_SHARP_){\nvar or__5025__auto__ \x3d p1__46945_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._fail_BANG_;\n}\n}));\nvar s \x3d malli.core.schema.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791).cljs$core$IFn$_invoke$arity$1(props__$1),options);\nvar or__5025__auto__ \x3d malli.core._instrument_f(s,props__$1,f,options);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn malli.core._fail_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22malli.core\x22,\x22instrument-requires-function-schema\x22,\x22malli.core/instrument-requires-function-schema\x22,676671761),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),s], null));\n}\n}));\n\n(malli.core._instrument.cljs$lang$maxFixedArity \x3d 3);\n\n"); -SHADOW_ENV.evalLoad("intemporal.store.internal.js", true, "goog.provide(\x27intemporal.store.internal\x27);\nintemporal.store.internal.next_id \x3d (function intemporal$store$internal$next_id(){\nreturn (new Date()).getTime();\n});\nintemporal.store.internal.resolve_fvar \x3d (function intemporal$store$internal$resolve_fvar(p__48183){\nvar map__48184 \x3d p__48183;\nvar map__48184__$1 \x3d cljs.core.__destructure_map(map__48184);\nvar task \x3d map__48184__$1;\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48184__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(task,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046),null);\n});\n/**\n * Indicates if an object is serializable\n */\nintemporal.store.internal.serializable_QMARK_ \x3d (function intemporal$store$internal$serializable_QMARK_(x){\nreturn true;\n});\n/**\n * Serializes an object\n */\nintemporal.store.internal.serialize \x3d (function intemporal$store$internal$serialize(x){\nif(cljs.core.truth_(x)){\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn null;\n}\n});\n/**\n * Deserializes an object\n */\nintemporal.store.internal.deserialize \x3d (function intemporal$store$internal$deserialize(x){\nif(cljs.core.truth_(x)){\nreturn clojure.edn.read.cljs$core$IFn$_invoke$arity$1(x);\n} else {\nreturn null;\n}\n});\nintemporal.store.internal.registry \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([malli.core.class_schemas(),malli.core.comparator_schemas(),malli.core.base_schemas(),malli.core.type_schemas(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),malli.core._simple_schema(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),(function (p1__48200_SHARP_){\nreturn ((cljs.core.fn_QMARK_(p1__48200_SHARP_)) || (cljs.core.var_QMARK_(p1__48200_SHARP_)));\n})], null))], null)], 0));\nintemporal.store.internal.RuntimeConfig \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22closed\x22,\x22closed\x22,-919675359),false], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922)], null)], null);\nintemporal.store.internal.Task \x3d new cljs.core.PersistentVector(null, 16, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22closed\x22,\x22closed\x22,-919675359),true], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22proto\x22,\x22proto\x22,811784976),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),new cljs.core.Keyword(null,\x22failure\x22,\x22failure\x22,720415879),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),new cljs.core.Keyword(null,\x22workflow\x22,\x22workflow\x22,-640694607),new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.Keyword(null,\x22proto-activity\x22,\x22proto-activity\x22,210113264)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22lease-end\x22,\x22lease-end\x22,2142146879),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),intemporal.store.internal.RuntimeConfig], null)], null);\nintemporal.store.internal.Event \x3d new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22closed\x22,\x22closed\x22,-919675359),true], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.PersistentVector(null, 11, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22enum\x22,\x22enum\x22,1679018432),new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22invoke\x22,\x22intemporal.workflow/invoke\x22,-1395924883),new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22success\x22,\x22intemporal.workflow/success\x22,-650952432),new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22failure\x22,\x22intemporal.workflow/failure\x22,39732733),new cljs.core.Keyword(\x22intemporal.activity\x22,\x22invoke\x22,\x22intemporal.activity/invoke\x22,1074985885),new cljs.core.Keyword(\x22intemporal.activity\x22,\x22success\x22,\x22intemporal.activity/success\x22,1977785760),new cljs.core.Keyword(\x22intemporal.activity\x22,\x22failure\x22,\x22intemporal.activity/failure\x22,523133613),new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22invoke\x22,\x22intemporal.protocol/invoke\x22,1740420888),new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22success\x22,\x22intemporal.protocol/success\x22,-1641924553),new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22failure\x22,\x22intemporal.protocol/failure\x22,1497427240),new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22failure\x22,\x22intemporal.workflow.internal/failure\x22,1850429790)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)], null)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22optional\x22,\x22optional\x22,2053951509),true], null),new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423)], null)], null);\n/**\n * Throws if the task is not valid\n */\nintemporal.store.internal.validate_task_BANG_ \x3d malli.core.coercer.cljs$core$IFn$_invoke$arity$3(intemporal.store.internal.Task,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),intemporal.store.internal.registry], null));\n/**\n * Throws if the event is not valid\n */\nintemporal.store.internal.validate_event_BANG_ \x3d malli.core.coercer.cljs$core$IFn$_invoke$arity$3(intemporal.store.internal.Event,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),intemporal.store.internal.registry], null));\n/**\n * Throws if the object is not serializable\n */\nintemporal.store.internal.validate_serializable_BANG_ \x3d (function intemporal$store$internal$validate_serializable_BANG_(var_args){\nvar G__48211 \x3d arguments.length;\nswitch (G__48211) {\ncase 1:\nreturn intemporal.store.internal.validate_serializable_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.store.internal.validate_serializable_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.store.internal.validate_serializable_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (obj){\nreturn intemporal.store.internal.validate_serializable_BANG_.cljs$core$IFn$_invoke$arity$2(obj,\x22Object is not serializable\x22);\n}));\n\n(intemporal.store.internal.validate_serializable_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (obj,msg){\nif(intemporal.store.internal.serializable_QMARK_(obj)){\nreturn null;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),obj], null));\n}\n}));\n\n(intemporal.store.internal.validate_serializable_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\nintemporal.store.internal.success_QMARK_ \x3d (function intemporal$store$internal$success_QMARK_(p__48215){\nvar map__48219 \x3d p__48215;\nvar map__48219__$1 \x3d cljs.core.__destructure_map(map__48219);\nvar task \x3d map__48219__$1;\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48219__$1,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),state);\n});\nintemporal.store.internal.failure_QMARK_ \x3d (function intemporal$store$internal$failure_QMARK_(p__48232){\nvar map__48233 \x3d p__48232;\nvar map__48233__$1 \x3d cljs.core.__destructure_map(map__48233);\nvar task \x3d map__48233__$1;\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48233__$1,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nvar result \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48233__$1,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22failure\x22,\x22failure\x22,720415879),state)) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),state)) \x26\x26 (intemporal.error.panic_QMARK_(result)))));\n});\nintemporal.store.internal.terminal_QMARK_ \x3d (function intemporal$store$internal$terminal_QMARK_(task){\nreturn ((intemporal.store.internal.success_QMARK_(task)) || (intemporal.store.internal.failure_QMARK_(task)));\n});\n"); -SHADOW_ENV.evalLoad("promesa.protocols.js", true, "goog.provide(\x27promesa.protocols\x27);\n\n/**\n * @interface\n */\npromesa.protocols.IPromise \x3d function(){};\n\nvar promesa$protocols$IPromise$_fmap$dyn_38687 \x3d (function() {\nvar G__38688 \x3d null;\nvar G__38688__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nvar G__38688__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nG__38688 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38688__2.call(this,it,f);\ncase 3:\nreturn G__38688__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38688.cljs$core$IFn$_invoke$arity$2 \x3d G__38688__2;\nG__38688.cljs$core$IFn$_invoke$arity$3 \x3d G__38688__3;\nreturn G__38688;\n})()\n;\n/**\n * Apply function to a computation\n */\npromesa.protocols._fmap \x3d (function promesa$protocols$_fmap(var_args){\nvar G__37892 \x3d arguments.length;\nswitch (G__37892) {\ncase 2:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f);\n}\n}));\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f,executor);\n}\n}));\n\n(promesa.protocols._fmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_merr$dyn_38703 \x3d (function() {\nvar G__38705 \x3d null;\nvar G__38705__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nvar G__38705__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nG__38705 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38705__2.call(this,it,f);\ncase 3:\nreturn G__38705__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38705.cljs$core$IFn$_invoke$arity$2 \x3d G__38705__2;\nG__38705.cljs$core$IFn$_invoke$arity$3 \x3d G__38705__3;\nreturn G__38705;\n})()\n;\n/**\n * Apply function to a failed computation and flatten 1 level\n */\npromesa.protocols._merr \x3d (function promesa$protocols$_merr(var_args){\nvar G__37920 \x3d arguments.length;\nswitch (G__37920) {\ncase 2:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f);\n}\n}));\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f,executor);\n}\n}));\n\n(promesa.protocols._merr.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_mcat$dyn_38711 \x3d (function() {\nvar G__38712 \x3d null;\nvar G__38712__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nvar G__38712__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nG__38712 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38712__2.call(this,it,f);\ncase 3:\nreturn G__38712__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38712.cljs$core$IFn$_invoke$arity$2 \x3d G__38712__2;\nG__38712.cljs$core$IFn$_invoke$arity$3 \x3d G__38712__3;\nreturn G__38712;\n})()\n;\n/**\n * Apply function to a computation and flatten 1 level\n */\npromesa.protocols._mcat \x3d (function promesa$protocols$_mcat(var_args){\nvar G__37931 \x3d arguments.length;\nswitch (G__37931) {\ncase 2:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f);\n}\n}));\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f,executor);\n}\n}));\n\n(promesa.protocols._mcat.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_hmap$dyn_38718 \x3d (function() {\nvar G__38719 \x3d null;\nvar G__38719__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nvar G__38719__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nG__38719 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38719__2.call(this,it,f);\ncase 3:\nreturn G__38719__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38719.cljs$core$IFn$_invoke$arity$2 \x3d G__38719__2;\nG__38719.cljs$core$IFn$_invoke$arity$3 \x3d G__38719__3;\nreturn G__38719;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful.\n */\npromesa.protocols._hmap \x3d (function promesa$protocols$_hmap(var_args){\nvar G__37945 \x3d arguments.length;\nswitch (G__37945) {\ncase 2:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f);\n}\n}));\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f,executor);\n}\n}));\n\n(promesa.protocols._hmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_fnly$dyn_38721 \x3d (function() {\nvar G__38722 \x3d null;\nvar G__38722__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nvar G__38722__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nG__38722 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38722__2.call(this,it,f);\ncase 3:\nreturn G__38722__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38722.cljs$core$IFn$_invoke$arity$2 \x3d G__38722__2;\nG__38722.cljs$core$IFn$_invoke$arity$3 \x3d G__38722__3;\nreturn G__38722;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful; the return value is ignored.\n */\npromesa.protocols._fnly \x3d (function promesa$protocols$_fnly(var_args){\nvar G__37964 \x3d arguments.length;\nswitch (G__37964) {\ncase 2:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f);\n}\n}));\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f,executor);\n}\n}));\n\n(promesa.protocols._fnly.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_then$dyn_38732 \x3d (function() {\nvar G__38733 \x3d null;\nvar G__38733__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nvar G__38733__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nG__38733 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38733__2.call(this,it,f);\ncase 3:\nreturn G__38733__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38733.cljs$core$IFn$_invoke$arity$2 \x3d G__38733__2;\nG__38733.cljs$core$IFn$_invoke$arity$3 \x3d G__38733__3;\nreturn G__38733;\n})()\n;\n/**\n * Apply function to a computation and flatten multiple levels\n */\npromesa.protocols._then \x3d (function promesa$protocols$_then(var_args){\nvar G__37976 \x3d arguments.length;\nswitch (G__37976) {\ncase 2:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f);\n}\n}));\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f,executor);\n}\n}));\n\n(promesa.protocols._then.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Additional state/introspection abstraction.\n * @interface\n */\npromesa.protocols.IState \x3d function(){};\n\nvar promesa$protocols$IState$_extract$dyn_38742 \x3d (function() {\nvar G__38743 \x3d null;\nvar G__38743__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nvar G__38743__2 \x3d (function (it,default$){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5374__auto__.call(null,it,default$));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5372__auto__.call(null,it,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nG__38743 \x3d function(it,default$){\nswitch(arguments.length){\ncase 1:\nreturn G__38743__1.call(this,it);\ncase 2:\nreturn G__38743__2.call(this,it,default$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38743.cljs$core$IFn$_invoke$arity$1 \x3d G__38743__1;\nG__38743.cljs$core$IFn$_invoke$arity$2 \x3d G__38743__2;\nreturn G__38743;\n})()\n;\n/**\n * Extract the current value.\n */\npromesa.protocols._extract \x3d (function promesa$protocols$_extract(var_args){\nvar G__37998 \x3d arguments.length;\nswitch (G__37998) {\ncase 1:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it);\n}\n}));\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,default$){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$2(it,default$);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it,default$);\n}\n}));\n\n(promesa.protocols._extract.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$IState$_resolved_QMARK_$dyn_38750 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolved_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolved_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-resolved?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is resolved.\n */\npromesa.protocols._resolved_QMARK_ \x3d (function promesa$protocols$_resolved_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_resolved_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_resolved_QMARK_$dyn_38750(it);\n}\n});\n\nvar promesa$protocols$IState$_rejected_QMARK_$dyn_38751 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._rejected_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._rejected_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-rejected?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is rejected.\n */\npromesa.protocols._rejected_QMARK_ \x3d (function promesa$protocols$_rejected_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_rejected_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_rejected_QMARK_$dyn_38751(it);\n}\n});\n\nvar promesa$protocols$IState$_pending_QMARK_$dyn_38757 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-pending?\x22,it);\n}\n}\n});\n/**\n * Retutns true if a promise is pending.\n */\npromesa.protocols._pending_QMARK_ \x3d (function promesa$protocols$_pending_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_pending_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_pending_QMARK_$dyn_38757(it);\n}\n});\n\n\n/**\n * A promise constructor abstraction.\n * @interface\n */\npromesa.protocols.IPromiseFactory \x3d function(){};\n\nvar promesa$protocols$IPromiseFactory$_promise$dyn_38758 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._promise[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._promise[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromiseFactory.-promise\x22,it);\n}\n}\n});\n/**\n * Create a promise instance from other types\n */\npromesa.protocols._promise \x3d (function promesa$protocols$_promise(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromiseFactory$_promise$arity$1(it);\n} else {\nreturn promesa$protocols$IPromiseFactory$_promise$dyn_38758(it);\n}\n});\n\n\n/**\n * A cancellation abstraction.\n * @interface\n */\npromesa.protocols.ICancellable \x3d function(){};\n\nvar promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancel!\x22,it);\n}\n}\n});\npromesa.protocols._cancel_BANG_ \x3d (function promesa$protocols$_cancel_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760(it);\n}\n});\n\nvar promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancelled?\x22,it);\n}\n}\n});\npromesa.protocols._cancelled_QMARK_ \x3d (function promesa$protocols$_cancelled_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICompletable \x3d function(){};\n\nvar promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768 \x3d (function (it,v){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolve_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5374__auto__.call(null,it,v));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolve_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5372__auto__.call(null,it,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-resolve!\x22,it);\n}\n}\n});\n/**\n * Deliver a value to empty promise.\n */\npromesa.protocols._resolve_BANG_ \x3d (function promesa$protocols$_resolve_BANG_(it,v){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2(it,v);\n} else {\nreturn promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768(it,v);\n}\n});\n\nvar promesa$protocols$ICompletable$_reject_BANG_$dyn_38774 \x3d (function (it,e){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._reject_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5374__auto__.call(null,it,e));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._reject_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5372__auto__.call(null,it,e));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-reject!\x22,it);\n}\n}\n});\n/**\n * Deliver an error to empty promise.\n */\npromesa.protocols._reject_BANG_ \x3d (function promesa$protocols$_reject_BANG_(it,e){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_reject_BANG_$arity$2(it,e);\n} else {\nreturn promesa$protocols$ICompletable$_reject_BANG_$dyn_38774(it,e);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IExecutor \x3d function(){};\n\nvar promesa$protocols$IExecutor$_exec_BANG_$dyn_38780 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._exec_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._exec_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-exec!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return nil\n */\npromesa.protocols._exec_BANG_ \x3d (function promesa$protocols$_exec_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_exec_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_exec_BANG_$dyn_38780(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_run_BANG_$dyn_38784 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._run_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._run_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-run!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._run_BANG_ \x3d (function promesa$protocols$_run_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_run_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_run_BANG_$dyn_38784(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_submit_BANG_$dyn_38785 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._submit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._submit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-submit!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._submit_BANG_ \x3d (function promesa$protocols$_submit_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_submit_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_submit_BANG_$dyn_38785(it,task);\n}\n});\n\n\n/**\n * A generic abstraction for scheduler facilities.\n * @interface\n */\npromesa.protocols.IScheduler \x3d function(){};\n\nvar promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792 \x3d (function (it,ms,func){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._schedule_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5374__auto__.call(null,it,ms,func));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._schedule_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5372__auto__.call(null,it,ms,func));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.-schedule!\x22,it);\n}\n}\n});\n/**\n * Schedule a function to be executed in future.\n */\npromesa.protocols._schedule_BANG_ \x3d (function promesa$protocols$_schedule_BANG_(it,ms,func){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3(it,ms,func);\n} else {\nreturn promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792(it,ms,func);\n}\n});\n\n\n/**\n * An experimental semaphore protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ISemaphore \x3d function(){};\n\nvar promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798 \x3d (function() {\nvar G__38799 \x3d null;\nvar G__38799__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__3 \x3d (function (it,n,t){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5374__auto__.call(null,it,n,t));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5372__auto__.call(null,it,n,t));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nG__38799 \x3d function(it,n,t){\nswitch(arguments.length){\ncase 1:\nreturn G__38799__1.call(this,it);\ncase 2:\nreturn G__38799__2.call(this,it,n);\ncase 3:\nreturn G__38799__3.call(this,it,n,t);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38799.cljs$core$IFn$_invoke$arity$1 \x3d G__38799__1;\nG__38799.cljs$core$IFn$_invoke$arity$2 \x3d G__38799__2;\nG__38799.cljs$core$IFn$_invoke$arity$3 \x3d G__38799__3;\nreturn G__38799;\n})()\n;\n/**\n * Try acquire n or n permits, non-blocking or optional timeout\n */\npromesa.protocols._try_acquire_BANG_ \x3d (function promesa$protocols$_try_acquire_BANG_(var_args){\nvar G__38458 \x3d arguments.length;\nswitch (G__38458) {\ncase 1:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,n,t){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3(it,n,t);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n,t);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810 \x3d (function() {\nvar G__38811 \x3d null;\nvar G__38811__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nvar G__38811__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nG__38811 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38811__1.call(this,it);\ncase 2:\nreturn G__38811__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38811.cljs$core$IFn$_invoke$arity$1 \x3d G__38811__1;\nG__38811.cljs$core$IFn$_invoke$arity$2 \x3d G__38811__2;\nreturn G__38811;\n})()\n;\n/**\n * Acquire 1 or N permits\n */\npromesa.protocols._acquire_BANG_ \x3d (function promesa$protocols$_acquire_BANG_(var_args){\nvar G__38505 \x3d arguments.length;\nswitch (G__38505) {\ncase 1:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it,n);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$ISemaphore$_release_BANG_$dyn_38816 \x3d (function() {\nvar G__38817 \x3d null;\nvar G__38817__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nvar G__38817__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nG__38817 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38817__1.call(this,it);\ncase 2:\nreturn G__38817__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38817.cljs$core$IFn$_invoke$arity$1 \x3d G__38817__1;\nG__38817.cljs$core$IFn$_invoke$arity$2 \x3d G__38817__2;\nreturn G__38817;\n})()\n;\n/**\n * Release 1 or N permits\n */\npromesa.protocols._release_BANG_ \x3d (function promesa$protocols$_release_BANG_(var_args){\nvar G__38547 \x3d arguments.length;\nswitch (G__38547) {\ncase 1:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it,n);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * An experimental lock protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ILock \x3d function(){};\n\nvar promesa$protocols$ILock$_lock_BANG_$dyn_38826 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._lock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._lock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-lock!\x22,it);\n}\n}\n});\npromesa.protocols._lock_BANG_ \x3d (function promesa$protocols$_lock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_lock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_lock_BANG_$dyn_38826(it);\n}\n});\n\nvar promesa$protocols$ILock$_unlock_BANG_$dyn_38831 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._unlock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._unlock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-unlock!\x22,it);\n}\n}\n});\npromesa.protocols._unlock_BANG_ \x3d (function promesa$protocols$_unlock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_unlock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_unlock_BANG_$dyn_38831(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IReadChannel \x3d function(){};\n\nvar promesa$protocols$IReadChannel$_take_BANG_$dyn_38836 \x3d (function (it,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._take_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5374__auto__.call(null,it,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._take_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5372__auto__.call(null,it,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IReadChannel.-take!\x22,it);\n}\n}\n});\npromesa.protocols._take_BANG_ \x3d (function promesa$protocols$_take_BANG_(it,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IReadChannel$_take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IReadChannel$_take_BANG_$arity$2(it,handler);\n} else {\nreturn promesa$protocols$IReadChannel$_take_BANG_$dyn_38836(it,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IWriteChannel \x3d function(){};\n\nvar promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838 \x3d (function (it,val,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._put_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5374__auto__.call(null,it,val,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._put_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5372__auto__.call(null,it,val,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriteChannel.-put!\x22,it);\n}\n}\n});\npromesa.protocols._put_BANG_ \x3d (function promesa$protocols$_put_BANG_(it,val,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3(it,val,handler);\n} else {\nreturn promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838(it,val,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelInternal \x3d function(){};\n\nvar promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cleanup_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cleanup_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelInternal.-cleanup!\x22,it);\n}\n}\n});\npromesa.protocols._cleanup_BANG_ \x3d (function promesa$protocols$_cleanup_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelMultiplexer \x3d function(){};\n\nvar promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840 \x3d (function (it,ch,close_QMARK_){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._tap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5374__auto__.call(null,it,ch,close_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._tap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5372__auto__.call(null,it,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-tap!\x22,it);\n}\n}\n});\npromesa.protocols._tap_BANG_ \x3d (function promesa$protocols$_tap_BANG_(it,ch,close_QMARK_){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3(it,ch,close_QMARK_);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840(it,ch,close_QMARK_);\n}\n});\n\nvar promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842 \x3d (function (it,ch){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._untap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5374__auto__.call(null,it,ch));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._untap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5372__auto__.call(null,it,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-untap!\x22,it);\n}\n}\n});\npromesa.protocols._untap_BANG_ \x3d (function promesa$protocols$_untap_BANG_(it,ch){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2(it,ch);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842(it,ch);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICloseable \x3d function(){};\n\nvar promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._closed_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._closed_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-closed?\x22,it);\n}\n}\n});\npromesa.protocols._closed_QMARK_ \x3d (function promesa$protocols$_closed_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843(it);\n}\n});\n\nvar promesa$protocols$ICloseable$_close_BANG_$dyn_38845 \x3d (function() {\nvar G__38846 \x3d null;\nvar G__38846__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nvar G__38846__2 \x3d (function (it,reason){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5374__auto__.call(null,it,reason));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5372__auto__.call(null,it,reason));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nG__38846 \x3d function(it,reason){\nswitch(arguments.length){\ncase 1:\nreturn G__38846__1.call(this,it);\ncase 2:\nreturn G__38846__2.call(this,it,reason);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38846.cljs$core$IFn$_invoke$arity$1 \x3d G__38846__1;\nG__38846.cljs$core$IFn$_invoke$arity$2 \x3d G__38846__2;\nreturn G__38846;\n})()\n;\npromesa.protocols._close_BANG_ \x3d (function promesa$protocols$_close_BANG_(var_args){\nvar G__38634 \x3d arguments.length;\nswitch (G__38634) {\ncase 1:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,reason){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$2(it,reason);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it,reason);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * @interface\n */\npromesa.protocols.IBuffer \x3d function(){};\n\nvar promesa$protocols$IBuffer$_full_QMARK_$dyn_38852 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._full_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._full_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-full?\x22,it);\n}\n}\n});\npromesa.protocols._full_QMARK_ \x3d (function promesa$protocols$_full_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_full_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_full_QMARK_$dyn_38852(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_poll_BANG_$dyn_38854 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._poll_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._poll_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-poll!\x22,it);\n}\n}\n});\npromesa.protocols._poll_BANG_ \x3d (function promesa$protocols$_poll_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_poll_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_poll_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_poll_BANG_$dyn_38854(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_offer_BANG_$dyn_38857 \x3d (function (it,val){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._offer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5374__auto__.call(null,it,val));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._offer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5372__auto__.call(null,it,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-offer!\x22,it);\n}\n}\n});\npromesa.protocols._offer_BANG_ \x3d (function promesa$protocols$_offer_BANG_(it,val){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_offer_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_offer_BANG_$arity$2(it,val);\n} else {\nreturn promesa$protocols$IBuffer$_offer_BANG_$dyn_38857(it,val);\n}\n});\n\nvar promesa$protocols$IBuffer$_size$dyn_38864 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._size[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._size[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-size\x22,it);\n}\n}\n});\npromesa.protocols._size \x3d (function promesa$protocols$_size(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_size$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_size$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_size$dyn_38864(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IHandler \x3d function(){};\n\nvar promesa$protocols$IHandler$_active_QMARK_$dyn_38866 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._active_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._active_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-active?\x22,it);\n}\n}\n});\npromesa.protocols._active_QMARK_ \x3d (function promesa$protocols$_active_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_active_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_active_QMARK_$dyn_38866(it);\n}\n});\n\nvar promesa$protocols$IHandler$_commit_BANG_$dyn_38871 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._commit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._commit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-commit!\x22,it);\n}\n}\n});\npromesa.protocols._commit_BANG_ \x3d (function promesa$protocols$_commit_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_commit_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_commit_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_commit_BANG_$dyn_38871(it);\n}\n});\n\nvar promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._blockable_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._blockable_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-blockable?\x22,it);\n}\n}\n});\npromesa.protocols._blockable_QMARK_ \x3d (function promesa$protocols$_blockable_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874(it);\n}\n});\n\n"); -SHADOW_ENV.evalLoad("promesa.util.js", true, "goog.provide(\x27promesa.util\x27);\n/**\n * Create a handler, mainly for combine two separate functions\n * into a single callbale.\n */\npromesa.util.handler \x3d (function promesa$util$handler(fv,fc){\nreturn (function (v,c){\nif(cljs.core.truth_(c)){\nreturn (fc.cljs$core$IFn$_invoke$arity$1 ? fc.cljs$core$IFn$_invoke$arity$1(c) : fc.call(null,c));\n} else {\nreturn (fv.cljs$core$IFn$_invoke$arity$1 ? fv.cljs$core$IFn$_invoke$arity$1(v) : fv.call(null,v));\n}\n});\n});\npromesa.util.has_method_QMARK_ \x3d (function promesa$util$has_method_QMARK_(klass,name){\nvar methods$ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (method){\nreturn method.getName();\n})),klass.getDeclaredMethods());\nreturn cljs.core.contains_QMARK_(methods$,name);\n});\npromesa.util.maybe_deref \x3d (function promesa$util$maybe_deref(o){\nif(cljs.core.delay_QMARK_(o)){\nreturn cljs.core.deref(o);\n} else {\nreturn o;\n}\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.ILock}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.util.t_promesa$util43295 \x3d (function (meta43296){\nthis.meta43296 \x3d meta43296;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43297,meta43296__$1){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn (new promesa.util.t_promesa$util43295(meta43296__$1));\n}));\n\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43297){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn self__.meta43296;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43296\x22,\x22meta43296\x22,331692302,null)], null);\n}));\n\n(promesa.util.t_promesa$util43295.cljs$lang$type \x3d true);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorStr \x3d \x22promesa.util/t_promesa$util43295\x22);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.util/t_promesa$util43295\x22);\n}));\n\n/**\n * Positional factory function for promesa.util/t_promesa$util43295.\n */\npromesa.util.__GT_t_promesa$util43295 \x3d (function promesa$util$__GT_t_promesa$util43295(meta43296){\nreturn (new promesa.util.t_promesa$util43295(meta43296));\n});\n\n\npromesa.util.mutex \x3d (function promesa$util$mutex(){\nreturn (new promesa.util.t_promesa$util43295(cljs.core.PersistentArrayMap.EMPTY));\n});\npromesa.util.try_STAR_ \x3d (function promesa$util$try_STAR_(f,on_error){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43314){var e \x3d e43314;\nreturn (on_error.cljs$core$IFn$_invoke$arity$1 ? on_error.cljs$core$IFn$_invoke$arity$1(e) : on_error.call(null,e));\n}});\n"); -SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.impl.promise\x22);\ngoog.provide(\x22promesa.impl.promise.PromiseImpl\x22);\ngoog.provide(\x22promesa.impl.promise.CancellationError\x22);\ngoog.scope(function() {\n const self \x3d promesa.impl.promise;\n const root \x3d goog.global;\n const PENDING \x3d Symbol(\x22state/pending\x22);\n const RESOLVED \x3d Symbol(\x22state/resolved\x22);\n const REJECTED \x3d Symbol(\x22state/rejected\x22);\n const QUEUE \x3d Symbol(\x22queue\x22);\n const STATE \x3d Symbol(\x22state\x22);\n const VALUE \x3d Symbol(\x22value\x22);\n const RESOLVE_TYPE_FLATTEN \x3d Symbol(\x22resolve-type/flatten\x22);\n const RESOLVE_TYPE_BIND \x3d Symbol(\x22resolve-type/bind\x22);\n const RESOLVE_TYPE_MAP \x3d Symbol(\x22resolve-type/map\x22);\n const defaultResolveMapHandler \x3d v \x3d\x3e v;\n const defaultResolveBindHandler \x3d v \x3d\x3e self.resolved(v);\n const defaultRejectHandler \x3d c \x3d\x3e {\n throw c;\n };\n class CancellationError extends Error {\n }\n class PromiseImpl {\n constructor(val) {\n this[QUEUE] \x3d [];\n this[STATE] \x3d PENDING;\n this[VALUE] \x3d undefined;\n if (val !\x3d\x3d undefined) {\n transition(this, RESOLVED, val);\n }\n }\n get state() {\n return this[STATE];\n }\n get value() {\n return this[VALUE];\n }\n then(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n catch(reject) {\n return this.then(null, reject);\n }\n finally(f) {\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:value \x3d\x3e f(), reject:cause \x3d\x3e f(), complete:(value, cause) \x3d\x3e null});\n return this;\n }\n fmap(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_MAP, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n fbind(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_BIND, resolve:resolve ?? defaultResolveBindHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n handle(fn, resolveType) {\n resolveType \x3d resolveType ?? RESOLVE_TYPE_MAP;\n this[QUEUE].push({type:resolveType, resolve:defaultResolveMapHandler, reject:defaultRejectHandler, complete:fn});\n process(this);\n }\n resolve(value) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, RESOLVED, value);\n }\n return null;\n }\n reject(cause) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, REJECTED, cause);\n }\n return null;\n }\n isPending() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d PENDING;\n }\n isResolved() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d RESOLVED;\n }\n isRejected() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d REJECTED;\n }\n isCancelled() {\n const state \x3d this[STATE];\n const value \x3d this[VALUE];\n return state \x3d\x3d\x3d REJECTED \x26\x26 isCancellationError(value);\n }\n cancel() {\n this.reject(new CancellationError(\x22promise cancelled\x22));\n }\n }\n const nextTick \x3d (() \x3d\x3e {\n if (typeof root.Promise \x3d\x3d\x3d \x22function\x22) {\n const resolved \x3d Promise.resolve(null);\n return function queueMicrotaskWithPromise(f, p) {\n resolved.then(() \x3d\x3e f(p));\n };\n } else if (typeof root.setImmediate \x3d\x3d\x3d \x22function\x22) {\n return root.setImmediate;\n } else if (typeof root.setTimeout \x3d\x3d\x3d \x22function\x22) {\n return (f, p) \x3d\x3e root.setTimeout(f, 0, p);\n } else {\n return (f, p) \x3d\x3e f.call(this, p);\n }\n })();\n function isCancellationError(v) {\n return v instanceof CancellationError;\n }\n function fmtValue(o) {\n if (isThenable(o)) {\n return `\x3cPROMISE:${goog.getUid(o)}\x3e`;\n } else if (o instanceof Error) {\n return `\x3cEXCEPTION:\x27${o.message}\x27\x3e`;\n } else if (o \x3d\x3d\x3d null || o \x3d\x3d\x3d undefined) {\n return `${o}`;\n } else if (typeof o \x3d\x3d\x3d \x22function\x22) {\n return `\x3cFN:${goog.getUid(o)}\x3e`;\n } else {\n return `${o.toString()}`;\n }\n }\n function isSome(o) {\n return o !\x3d\x3d null \x26\x26 o !\x3d\x3d undefined;\n }\n function isFunction(o) {\n return typeof o \x3d\x3d\x3d \x22function\x22;\n }\n function isThenable(o) {\n if (goog.isObject(o)) {\n const thenFn \x3d o.then;\n return isFunction(thenFn);\n } else {\n return false;\n }\n }\n function constantly(v) {\n return () \x3d\x3e v;\n }\n function identity(v) {\n return v;\n }\n function isPromiseImpl(v) {\n return v instanceof PromiseImpl;\n }\n function completeDeferredFn(deferred) {\n return (value, cause) \x3d\x3e {\n if (cause) {\n deferred.reject(cause);\n } else {\n deferred.resolve(value);\n }\n };\n }\n function process(p) {\n if (p[STATE] \x3d\x3d\x3d PENDING) {\n return;\n }\n nextTick(processNextTick, p);\n return p;\n }\n function processNextTick(p) {\n if (p[QUEUE].length \x3d\x3d\x3d 0) {\n return;\n }\n const state \x3d p[STATE];\n const value \x3d p[VALUE];\n let task, rvalue, rcause;\n while (p[QUEUE].length) {\n task \x3d p[QUEUE].shift();\n try {\n if (state \x3d\x3d\x3d RESOLVED) {\n rvalue \x3d task.resolve(value);\n } else if (state \x3d\x3d\x3d REJECTED) {\n rvalue \x3d task.reject(value);\n } else {\n rcause \x3d new TypeError(\x22invalid state\x22);\n }\n } catch (e) {\n rcause \x3d e;\n }\n resolveTask(task, rvalue, rcause);\n }\n }\n function resolveTask(task, value, cause) {\n if (task.complete \x3d\x3d\x3d undefined) {\n return;\n }\n if (cause) {\n task.complete(null, cause);\n } else {\n if (task.type \x3d\x3d\x3d RESOLVE_TYPE_MAP) {\n task.complete(value, null);\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_FLATTEN) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n resolveTask(task, v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n resolveTask(task, v, null);\n }, c \x3d\x3e {\n resolveTask(task, null, c);\n });\n } else {\n task.complete(value, null);\n }\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_BIND) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n task.complete(v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n task.complete(v, null);\n }, c \x3d\x3e {\n task.complete(null, c);\n });\n } else {\n task.complete(null, new TypeError(\x22expected thenable\x22));\n }\n } else {\n task.complete(null, new TypeError(\x22internal: invalid resolve type\x22));\n }\n }\n }\n function transition(p, state, value) {\n if (p[STATE] \x3d\x3d\x3d state || p[STATE] !\x3d\x3d PENDING) {\n return;\n }\n p[STATE] \x3d state;\n p[VALUE] \x3d value;\n return processNextTick(p);\n }\n self.PromiseImpl \x3d PromiseImpl;\n self.CancellationError \x3d CancellationError;\n self.isCancellationError \x3d isCancellationError;\n self.deferred \x3d () \x3d\x3e {\n return new PromiseImpl();\n };\n const NULL_PROMISE \x3d new PromiseImpl(null);\n self.resolved \x3d function resolved(value) {\n if (value \x3d\x3d\x3d null) {\n return NULL_PROMISE;\n } else {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d RESOLVED;\n p[VALUE] \x3d value;\n return p;\n }\n };\n self.rejected \x3d function rejected(reason) {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d REJECTED;\n p[VALUE] \x3d reason;\n return p;\n };\n self.all \x3d function all(promises) {\n return promises.reduce((acc, p) \x3d\x3e {\n return acc.then(results \x3d\x3e {\n return self.coerce(p).fmap(v \x3d\x3e {\n results.push(v);\n return results;\n });\n });\n }, self.resolved([]));\n };\n self.coerce \x3d function coerce(promise) {\n if (promise instanceof PromiseImpl) {\n return promise;\n } else if (isThenable(promise)) {\n const deferred \x3d self.deferred();\n promise.then(v \x3d\x3e {\n deferred.resolve(v);\n }, c \x3d\x3e {\n deferred.reject(c);\n });\n return deferred;\n } else if (promise instanceof Error) {\n return self.rejected(promise);\n } else {\n return self.resolved(promise);\n }\n };\n self.race \x3d function race(promises) {\n const deferred \x3d self.deferred();\n promises.forEach(p \x3d\x3e {\n self.coerce(p).handle((v, c) \x3d\x3e {\n if (c) {\n deferred.reject(c);\n } else {\n deferred.resolve(v);\n }\n });\n });\n return deferred;\n };\n self.nextTick \x3d nextTick;\n self.PENDING \x3d PENDING;\n self.RESOLVED \x3d RESOLVED;\n self.REJECTED \x3d REJECTED;\n});\n"); -SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); -SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); -SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); -SHADOW_ENV.evalLoad("taoensso.truss.impl.js", true, "goog.provide(\x27taoensso.truss.impl\x27);\ntaoensso.truss.impl.re_pattern_QMARK_ \x3d (function taoensso$truss$impl$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\ntaoensso.truss.impl.str_contains_QMARK_ \x3d (function taoensso$truss$impl$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.truss.impl.revery_QMARK_ \x3d (function taoensso$truss$impl$revery_QMARK_(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,coll);\n});\ntaoensso.truss.impl.revery \x3d (function taoensso$truss$impl$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\ntaoensso.truss.impl.rsome \x3d (function taoensso$truss$impl$rsome(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nvar temp__5825__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar p \x3d temp__5825__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n}),null,coll);\n});\ntaoensso.truss.impl.assoc_some \x3d (function taoensso$truss$impl$assoc_some(var_args){\nvar G__38731 \x3d arguments.length;\nswitch (G__38731) {\ncase 3:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.truss.impl.assoc_some,m,m_kvs);\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.truss.impl.ensure_set \x3d (function taoensso$truss$impl$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\ntaoensso.truss.impl.ks_nnil_QMARK_ \x3d (function taoensso$truss$impl$ks_nnil_QMARK_(ks,m){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__38754_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__38754_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.truss.impl.ks_EQ_ \x3d (function taoensso$truss$impl$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__38759_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__38759_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_GT__EQ_ \x3d (function taoensso$truss$impl$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__38765_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__38765_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_LT__EQ_ \x3d (function taoensso$truss$impl$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.truss.impl.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.truss.impl.FailedAssertionInfo \x3d (function (ns,coords,pred,arg_form,arg_val,data,error,__meta,__extmap,__hash){\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.pred \x3d pred;\nthis.arg_form \x3d arg_form;\nthis.arg_val \x3d arg_val;\nthis.data \x3d data;\nthis.error \x3d error;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k38807,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__38820 \x3d k38807;\nvar G__38820__$1 \x3d (((G__38820 instanceof cljs.core.Keyword))?G__38820.fqn:null);\nswitch (G__38820__$1) {\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22pred\x22:\nreturn self__.pred;\n\nbreak;\ncase \x22arg-form\x22:\nreturn self__.arg_form;\n\nbreak;\ncase \x22arg-val\x22:\nreturn self__.arg_val;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38807,else__5326__auto__);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38825){\nvar vec__38827 \x3d p__38825;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38827,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38827,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.truss.impl.FailedAssertionInfo{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__38806){\nvar self__ \x3d this;\nvar G__38806__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__38806__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (7 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-352893736 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this38808,other38809){\nvar self__ \x3d this;\nvar this38808__$1 \x3d this;\nreturn (((!((other38809 \x3d\x3d null)))) \x26\x26 ((((this38808__$1.constructor \x3d\x3d\x3d other38809.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.ns,other38809.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.coords,other38809.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.pred,other38809.pred)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.arg_form,other38809.arg_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.arg_val,other38809.arg_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.data,other38809.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.error,other38809.error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38808__$1.__extmap,other38809.__extmap)))))))))))))))))));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k38807){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__38860 \x3d k38807;\nvar G__38860__$1 \x3d (((G__38860 instanceof cljs.core.Keyword))?G__38860.fqn:null);\nswitch (G__38860__$1) {\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22pred\x22:\ncase \x22arg-form\x22:\ncase \x22arg-val\x22:\ncase \x22data\x22:\ncase \x22error\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k38807);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__38806){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__38867 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__38868 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(G__38806,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__38806,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__38806,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__38806,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__38806,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__38806,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38867.cljs$core$IFn$_invoke$arity$2 ? pred__38867.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__38868) : pred__38867.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__38868)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__38806,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38806),null));\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__38806){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__38806,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22arg-form\x22,\x22arg-form\x22,-1253871756,null),new cljs.core.Symbol(null,\x22arg-val\x22,\x22arg-val\x22,-852016489,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null)], null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.truss.impl/FailedAssertionInfo\x22,null,(1),null));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.truss.impl/FailedAssertionInfo\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/FailedAssertionInfo.\n */\ntaoensso.truss.impl.__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$__GT_FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error,null,null,null));\n});\n\n/**\n * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values.\n */\ntaoensso.truss.impl.map__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__38812){\nvar extmap__5365__auto__ \x3d (function (){var G__38907 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__38812,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], 0));\nif(cljs.core.record_QMARK_(G__38812)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38907);\n} else {\nreturn G__38907;\n}\n})();\nreturn (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__38812),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__38812),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.truss.impl.ArgEvalError \x3d (function (ex){\nthis.ex \x3d ex;\n});\n\n(taoensso.truss.impl.ArgEvalError.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ex\x22,\x22ex\x22,226760186,null)], null);\n}));\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorStr \x3d \x22taoensso.truss.impl/ArgEvalError\x22);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.truss.impl/ArgEvalError\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/ArgEvalError.\n */\ntaoensso.truss.impl.__GT_ArgEvalError \x3d (function taoensso$truss$impl$__GT_ArgEvalError(ex){\nreturn (new taoensso.truss.impl.ArgEvalError(ex));\n});\n\ntaoensso.truss.impl.FalsePredError \x3d ({});\n"); -SHADOW_ENV.evalLoad("taoensso.truss.js", true, "goog.provide(\x27taoensso.truss\x27);\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.truss.submap_QMARK_ \x3d (function taoensso$truss$submap_QMARK_(super_map,sub_map){\nreturn cljs.core.reduce_kv((function (_,sub_key,sub_val){\nif(cljs.core.map_QMARK_(sub_val)){\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(super_map,sub_key);\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.map_QMARK_(super_val);\nif(and__5023__auto__){\nreturn (taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(super_val,sub_val) : taoensso.truss.submap_QMARK_.call(null,super_val,sub_val));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n} else {\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(super_map,sub_key,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\nvar temp__5823__auto__ \x3d (function (){var temp__5823__auto__ \x3d ((cljs.core.fn_QMARK_(sub_val))?sub_val:null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pred_fn \x3d temp__5823__auto__;\nreturn (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val));\n} else {\nvar G__43302 \x3d sub_val;\nvar G__43302__$1 \x3d (((G__43302 instanceof cljs.core.Keyword))?G__43302.fqn:null);\nswitch (G__43302__$1) {\ncase \x22submap/nx\x22:\nreturn cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\n\nbreak;\ncase \x22submap/ex\x22:\nreturn (!(cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303))));\n\nbreak;\ncase \x22submap/some\x22:\nreturn (!((super_val \x3d\x3d null)));\n\nbreak;\ndefault:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sub_val,super_val);\n\n}\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}\n}),true,sub_map);\n});\n/**\n * Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when\n * using futures, agents, etc.\n */\ntaoensso.truss._STAR_ctx_STAR_ \x3d null;\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.ex_info_STAR_ \x3d (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){\nvar data_map__$1 \x3d (cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null),data_map));\nvar data_map__$2 \x3d (function (){var temp__5823__auto__ \x3d taoensso.truss._STAR_ctx_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ctx \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data_map__$1,new cljs.core.Keyword(\x22truss\x22,\x22ctx\x22,\x22truss/ctx\x22,-336831129),ctx);\n} else {\nreturn data_map__$1;\n}\n})();\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data_map__$2,cause);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.unexpected_arg_BANG__STAR_ \x3d (function taoensso$truss$unexpected_arg_BANG__STAR_(ns,coords,arg,kvs){\nthrow taoensso.truss.ex_info_STAR_(ns,coords,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [\x22Unexpected argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((arg \x3d\x3d null))?\x22\x3cnil\x3e\x22:arg))].join(\x27\x27);\n}\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444)),new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg)], null)),null);\n});\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.truss.set_ctx_BANG_ \x3d (function taoensso$truss$set_ctx_BANG_(root_ctx_val){\nreturn (taoensso.truss._STAR_ctx_STAR_ \x3d root_ctx_val);\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.truss.update_ctx \x3d (function taoensso$truss$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(old_ctx,update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [194,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22update-ctx\x22,\x22taoensso.truss/update-ctx\x22,2138642429,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.truss.error_QMARK_ \x3d (function taoensso$truss$error_QMARK_(x){\nreturn (x instanceof Error);\n});\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.truss.ex_root \x3d (function taoensso$truss$ex_root(x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__43555 \x3d cause;\nerror \x3d G__43555;\ncontinue;\n} else {\nreturn error;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.truss.ex_type \x3d (function taoensso$truss$ex_type(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null);\n} else {\nif((x instanceof Error)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,x.name);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.truss.ex_map_STAR_ \x3d (function taoensso$truss$ex_map_STAR_(x){\nvar temp__5825__auto__ \x3d cljs.core.ex_message(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar msg \x3d temp__5825__auto__;\nvar temp__5823__auto__ \x3d cljs.core.not_empty(cljs.core.ex_data(x));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar data \x3d temp__5823__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.truss.ex_chain \x3d (function taoensso$truss$ex_chain(var_args){\nvar G__43328 \x3d arguments.length;\nswitch (G__43328) {\ncase 1:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (as_maps_QMARK_,x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar xf \x3d (cljs.core.truth_(as_maps_QMARK_)?taoensso.truss.ex_map_STAR_:cljs.core.identity);\nvar acc \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(x) : xf.call(null,x))], null);\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__43558 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause)));\nvar G__43559 \x3d cause;\nacc \x3d G__43558;\nerror \x3d G__43559;\ncontinue;\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.ex_chain.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.truss.ex_map \x3d (function taoensso$truss$ex_map(x){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar chain \x3d temp__5825__auto__;\nvar maps \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.truss.ex_map_STAR_,chain);\nvar root \x3d cljs.core.peek(chain);\nvar root_map \x3d cljs.core.peek(maps);\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(root_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029),maps,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(function (){var temp__5825__auto____$1 \x3d root.stack;\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar st \x3d temp__5825__auto____$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(st,\x22\x22)){\nreturn null;\n} else {\nreturn st;\n}\n} else {\nreturn null;\n}\n})()], null));\n} else {\nreturn null;\n}\n});\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.truss.matching_error \x3d (function taoensso$truss$matching_error(var_args){\nvar G__43352 \x3d arguments.length;\nswitch (G__43352) {\ncase 1:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1 \x3d (function (error){\nreturn error;\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,error){\nvar temp__5825__auto__ \x3d (((kind instanceof cljs.core.Keyword))?(function (){var G__43361 \x3d kind;\nvar G__43361__$1 \x3d (((G__43361 instanceof cljs.core.Keyword))?G__43361.fqn:null);\nswitch (G__43361__$1) {\ncase \x22default\x22:\ncase \x22all-but-critical\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ncase \x22common\x22:\nreturn (error instanceof Error);\n\nbreak;\ncase \x22ex-info\x22:\nreturn (error instanceof cljs.core.ExceptionInfo);\n\nbreak;\ncase \x22all\x22:\ncase \x22any\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ndefault:\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [405,21], null),\x22Unexpected Truss `matching-error` `kind` keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),kind,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.Keyword(null,\x22all\x22,\x22all\x22,892129742),\x22null\x22,new cljs.core.Keyword(null,\x22common\x22,\x22common\x22,-1822281391),\x22null\x22,new cljs.core.Keyword(null,\x22ex-info\x22,\x22ex-info\x22,2114560529),\x22null\x22], null), null)], null),null);\n\n}\n})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__43343_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__43343_SHARP_,error);\n}),kind):(error instanceof kind)\n))));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar match_QMARK_ \x3d temp__5825__auto__;\nreturn error;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,pattern,error){\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(kind,error);\nif(cljs.core.truth_(and__5023__auto__)){\nif((pattern \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.set_QMARK_(pattern)){\nreturn taoensso.truss.impl.rsome((function (p1__43347_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__43347_SHARP_,error);\n}),pattern);\n} else {\nif(typeof pattern \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.truss.impl.str_contains_QMARK_(cljs.core.ex_message(error),pattern);\n} else {\nif(taoensso.truss.impl.re_pattern_QMARK_(pattern)){\nreturn cljs.core.re_find(pattern,cljs.core.ex_message(error));\n} else {\nif(cljs.core.map_QMARK_(pattern)){\nvar temp__5825__auto__ \x3d cljs.core.ex_data(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar data \x3d temp__5825__auto__;\nreturn taoensso.truss.submap_QMARK_(data,pattern);\n} else {\nreturn null;\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [427,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pattern\x22,\x22pattern\x22,1882666950,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22matching-error\x22,\x22taoensso.truss/matching-error\x22,557680092,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22re-pattern\x22,\x22re-pattern\x22,1047705161,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn error;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar cause \x3d temp__5825__auto__;\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,pattern,cause);\n} else {\nreturn null;\n}\n}\n}));\n\n(taoensso.truss.matching_error.cljs$lang$maxFixedArity \x3d 3);\n\nvar get_default_error_fn_43574 \x3d (function (base_data){\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468),\x22Error thrown during reduction\x22);\nvar base_data__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468));\nreturn (function taoensso$truss$default_error_fn(data,cause){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [470,20], null),msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause);\n});\n});\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.truss.catching_rf \x3d (function taoensso$truss$catching_rf(var_args){\nvar G__43391 \x3d arguments.length;\nswitch (G__43391) {\ncase 1:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_43574(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf], null)),rf);\n}));\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,rf){\nvar error_fn__$1 \x3d ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_43574(error_fn):error_fn);\nreturn (function() {\nvar taoensso$truss$catching_rf \x3d null;\nvar taoensso$truss$catching_rf__0 \x3d (function (){\ntry{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n}catch (e43407){var t \x3d e43407;\nvar G__43408 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null))], null);\nvar G__43409 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43408,G__43409) : error_fn__$1.call(null,G__43408,G__43409));\n}});\nvar taoensso$truss$catching_rf__1 \x3d (function (acc){\ntry{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n}catch (e43410){var t \x3d e43410;\nvar G__43411 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null)], null)], null);\nvar G__43412 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43411,G__43412) : error_fn__$1.call(null,G__43411,G__43412));\n}});\nvar taoensso$truss$catching_rf__2 \x3d (function (acc,in$){\ntry{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}catch (e43413){var t \x3d e43413;\nvar G__43415 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),in$,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(in$)], null)], null)], null);\nvar G__43416 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43415,G__43416) : error_fn__$1.call(null,G__43415,G__43416));\n}});\nvar taoensso$truss$catching_rf__3 \x3d (function (acc,k,v){\ntry{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n}catch (e43417){var t \x3d e43417;\nvar G__43419 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),k,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,\x22v\x22,\x22v\x22,21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),v,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(v)], null)], null)], null);\nvar G__43420 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__43419,G__43420) : error_fn__$1.call(null,G__43419,G__43420));\n}});\ntaoensso$truss$catching_rf \x3d function(acc,k,v){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$truss$catching_rf__0.call(this);\ncase 1:\nreturn taoensso$truss$catching_rf__1.call(this,acc);\ncase 2:\nreturn taoensso$truss$catching_rf__2.call(this,acc,k);\ncase 3:\nreturn taoensso$truss$catching_rf__3.call(this,acc,k,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$truss$catching_rf__0;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$truss$catching_rf__1;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$truss$catching_rf__2;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$truss$catching_rf__3;\nreturn taoensso$truss$catching_rf;\n})()\n}));\n\n(taoensso.truss.catching_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.truss.catching_xform \x3d (function taoensso$truss$catching_xform(var_args){\nvar G__43430 \x3d arguments.length;\nswitch (G__43430) {\ncase 2:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(error_fn,rf);\n}),xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.truss.sys_newline \x3d \x22\\n\x22;\nvar legacy_ex_data_QMARK__43582 \x3d false;\n/**\n * Returns an appropriate `truss/ex-info` for given failed assertion info map.\n */\ntaoensso.truss.failed_assertion_ex_info \x3d (function taoensso$truss$failed_assertion_ex_info(var_args){\nvar G__43445 \x3d arguments.length;\nswitch (G__43445) {\ncase 1:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (failed_assertion_info){\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__43582,failed_assertion_info);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (legacy_ex_data_QMARK___$1,failed_assertion_info){\nvar map__43462 \x3d failed_assertion_info;\nvar map__43462__$1 \x3d cljs.core.__destructure_map(map__43462);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43462__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar undefined_arg_QMARK_ \x3d cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181));\nvar coords_str \x3d (function (){var temp__5825__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__43475 \x3d temp__5825__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43475,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43475,(1),null);\nif(cljs.core.truth_(column)){\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn null;\n}\n})();\nvar msg \x3d [\x22Truss assertion failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),coords_str,\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nvar msg__$1 \x3d (cljs.core.truth_(error)?(function (){var error_msg \x3d cljs.core.ex_message(error);\nif(undefined_arg_QMARK_){\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n})():msg);\nreturn taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [547,8], null),msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),(function (){var vec__43482 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43482,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43482,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null);\n})(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),(new Date()),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null))),error);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unary handler fn to call with failed assertion info map when a Truss\n * assertion (`have`, `have?`, `have!`, `have!?`) fails.\n * \n * Will by default throw an appropriate `truss/ex-info`.\n * This is a decent place to inject logging for assertion failures, etc.\n * \n * Arg given to handler is a map with keys:\n * \n * `:ns` ----------- ?str namespace of assertion callsite\n * `:coords` ------- ?[line column] of assertion callsite\n * \n * `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n * `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n * `:arg-val` ------ Runtime value of argument given to predicate\n * \n * `:data` --------- Optional arbitrary data map provided to assertion macro\n * `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\n */\ntaoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d (function taoensso$truss$_STAR_failed_assertion_handler_STAR_(failed_assertion_info){\nthrow taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1(failed_assertion_info);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.failed_assertion_BANG_ \x3d (function taoensso$truss$failed_assertion_BANG_(ns,line,column,pred,arg_form,arg_val,data_fn,error){\nvar temp__5823__auto__ \x3d taoensso.truss._STAR_failed_assertion_handler_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar handler \x3d temp__5823__auto__;\nvar G__43488 \x3d (function (){var undefined_arg_QMARK_ \x3d (arg_val instanceof taoensso.truss.impl.ArgEvalError);\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):arg_val),(function (){var temp__5825__auto__ \x3d data_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar df \x3d temp__5825__auto__;\ntry{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null));\n}catch (e43491){var _ \x3d e43491;\nreturn new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181);\n}} else {\nreturn null;\n}\n})(),(((error \x3d\x3d\x3d taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error\n)),null,null,null));\n})();\nreturn (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__43488) : handler.call(null,G__43488));\n} else {\nreturn arg_val;\n}\n});\n/**\n * Private, don\x27t use. Wraps given Truss v1 `error-fn` to convert\n * Truss v2 `*failed-assertion-handler*` arg.\n */\ntaoensso.truss.legacy_error_fn \x3d (function taoensso$truss$legacy_error_fn(f){\nif(cljs.core.truth_(f)){\nreturn (function (failed_assertion_info){\nvar G__43509 \x3d (new cljs.core.Delay((function (){\nvar map__43511 \x3d failed_assertion_info;\nvar map__43511__$1 \x3d cljs.core.__destructure_map(map__43511);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43511__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar vec__43513 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43513,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43513,(1),null);\nvar msg_ \x3d (new cljs.core.Delay((function (){\nvar msg \x3d [\x22Invariant failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?[\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):null),\x22]\x22].join(\x27\x27):null),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nif(cljs.core.truth_(error)){\nvar error_msg \x3d cljs.core.ex_message(error);\nif(cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181))){\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n} else {\nreturn msg;\n}\n}),null));\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),msg_,new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data], null)),new cljs.core.Keyword(null,\x22err\x22,\x22err\x22,-2089457205),error], null));\n}),null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__43509) : f.call(null,G__43509));\n});\n} else {\nreturn null;\n}\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_dynamic_assertion_data \x3d (function taoensso$truss$get_dynamic_assertion_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_data \x3d (function taoensso$truss$get_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*failed-assertion-handler*` (note breaking changes to argument).\n */\ntaoensso.truss.set_error_fn_BANG_ \x3d (function taoensso$truss$set_error_fn_BANG_(f){\nreturn (taoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d taoensso.truss.legacy_error_fn(f));\n});\n"); SHADOW_ENV.evalLoad("goog.disposable.idisposable.js", true, "goog.provide(\x22goog.disposable.IDisposable\x22);\ngoog.disposable.IDisposable \x3d function() {\n};\ngoog.disposable.IDisposable.prototype.dispose \x3d goog.abstractMethod;\ngoog.disposable.IDisposable.prototype.isDisposed \x3d goog.abstractMethod;\n"); SHADOW_ENV.evalLoad("goog.disposable.dispose.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.dispose\x22);\n goog.module.declareLegacyNamespace();\n function dispose(obj) {\n if (obj \x26\x26 typeof obj.dispose \x3d\x3d \x22function\x22) {\n obj.dispose();\n }\n }\n exports \x3d dispose;\n return exports;\n});\n"); SHADOW_ENV.evalLoad("goog.disposable.disposeall.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.disposeAll\x22);\n goog.module.declareLegacyNamespace();\n const dispose \x3d goog.require(\x22goog.dispose\x22);\n function disposeAll(var_args) {\n for (let i \x3d 0, len \x3d arguments.length; i \x3c len; ++i) {\n const disposable \x3d arguments[i];\n if (goog.isArrayLike(disposable)) {\n disposeAll.apply(null, disposable);\n } else {\n dispose(disposable);\n }\n }\n }\n exports \x3d disposeAll;\n return exports;\n});\n"); @@ -1605,15 +1594,26 @@ SHADOW_ENV.evalLoad("goog.structs.heap.js", true, "goog.loadModule(function(expo SHADOW_ENV.evalLoad("goog.structs.priorityqueue.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.structs.PriorityQueue\x22);\n goog.module.declareLegacyNamespace();\n const Heap \x3d goog.require(\x22goog.structs.Heap\x22);\n class PriorityQueue extends Heap {\n enqueue(priority, value) {\n this.insert(priority, value);\n }\n dequeue() {\n return this.remove();\n }\n }\n exports \x3d PriorityQueue;\n return exports;\n});\n"); SHADOW_ENV.evalLoad("goog.structs.prioritypool.js", true, "goog.provide(\x22goog.structs.PriorityPool\x22);\ngoog.require(\x22goog.structs.Pool\x22);\ngoog.require(\x22goog.structs.PriorityQueue\x22);\ngoog.structs.PriorityPool \x3d function(opt_minCount, opt_maxCount) {\n this.delayTimeout_ \x3d undefined;\n this.requestQueue_ \x3d new goog.structs.PriorityQueue();\n goog.structs.Pool.call(this, opt_minCount, opt_maxCount);\n};\ngoog.inherits(goog.structs.PriorityPool, goog.structs.Pool);\ngoog.structs.PriorityPool.DEFAULT_PRIORITY_ \x3d 100;\ngoog.structs.PriorityPool.prototype.setDelay \x3d function(delay) {\n goog.structs.PriorityPool.base(this, \x22setDelay\x22, delay);\n if (this.lastAccess \x3d\x3d null) {\n return;\n }\n goog.global.clearTimeout(this.delayTimeout_);\n this.delayTimeout_ \x3d goog.global.setTimeout(goog.bind(this.handleQueueRequests_, this), this.delay + this.lastAccess - Date.now());\n this.handleQueueRequests_();\n};\ngoog.structs.PriorityPool.prototype.getObject \x3d function(opt_callback, opt_priority) {\n if (!opt_callback) {\n var result \x3d goog.structs.PriorityPool.base(this, \x22getObject\x22);\n if (result \x26\x26 this.delay) {\n this.delayTimeout_ \x3d goog.global.setTimeout(goog.bind(this.handleQueueRequests_, this), this.delay);\n }\n return result;\n }\n var priority \x3d opt_priority !\x3d\x3d undefined ? opt_priority : goog.structs.PriorityPool.DEFAULT_PRIORITY_;\n this.requestQueue_.enqueue(priority, opt_callback);\n this.handleQueueRequests_();\n return undefined;\n};\ngoog.structs.PriorityPool.prototype.handleQueueRequests_ \x3d function() {\n var requestQueue \x3d this.requestQueue_;\n while (requestQueue.getCount() \x3e 0) {\n var obj \x3d this.getObject();\n if (!obj) {\n return;\n } else {\n var requestCallback \x3d requestQueue.dequeue();\n requestCallback.apply(this, [obj]);\n }\n }\n};\ngoog.structs.PriorityPool.prototype.addFreeObject \x3d function(obj) {\n goog.structs.PriorityPool.superClass_.addFreeObject.call(this, obj);\n this.handleQueueRequests_();\n};\ngoog.structs.PriorityPool.prototype.adjustForMinMax \x3d function() {\n goog.structs.PriorityPool.superClass_.adjustForMinMax.call(this);\n this.handleQueueRequests_();\n};\ngoog.structs.PriorityPool.prototype.disposeInternal \x3d function() {\n goog.structs.PriorityPool.superClass_.disposeInternal.call(this);\n goog.global.clearTimeout(this.delayTimeout_);\n this.requestQueue_.clear();\n this.requestQueue_ \x3d null;\n};\n"); SHADOW_ENV.evalLoad("goog.net.xhriopool.js", true, "goog.provide(\x22goog.net.XhrIoPool\x22);\ngoog.require(\x22goog.net.XhrIo\x22);\ngoog.require(\x22goog.structs.PriorityPool\x22);\ngoog.requireType(\x22goog.structs.Map\x22);\ngoog.net.XhrIoPool \x3d function(opt_headers, opt_minCount, opt_maxCount, opt_withCredentials) {\n this.headers_ \x3d opt_headers;\n this.withCredentials_ \x3d !!opt_withCredentials;\n goog.structs.PriorityPool.call(this, opt_minCount, opt_maxCount);\n};\ngoog.inherits(goog.net.XhrIoPool, goog.structs.PriorityPool);\ngoog.net.XhrIoPool.prototype.createObject \x3d function() {\n const xhrIo \x3d new goog.net.XhrIo();\n const headers \x3d this.headers_;\n if (headers) {\n headers.forEach(function(value, key) {\n xhrIo.headers.set(key, value);\n });\n }\n if (this.withCredentials_) {\n xhrIo.setWithCredentials(true);\n }\n return xhrIo;\n};\ngoog.net.XhrIoPool.prototype.objectCanBeReused \x3d function(obj) {\n const xhr \x3d obj;\n return !xhr.isDisposed() \x26\x26 !xhr.isActive();\n};\n"); -SHADOW_ENV.evalLoad("taoensso.encore.js", true, "goog.provide(\x27taoensso.encore\x27);\ngoog.scope(function(){\n taoensso.encore.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n taoensso.encore.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n/**\n * See `assert-min-encore-version`\n */\ntaoensso.encore.encore_version \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),(153),(1)], null);\n/**\n * Private, don\x27t use.\n * Returns true if given a list or Cons (\x3d\x3e possible call form).\n */\ntaoensso.encore.list_form_QMARK_ \x3d (function taoensso$encore$list_form_QMARK_(x){\nreturn ((cljs.core.list_QMARK_(x)) || ((x instanceof cljs.core.Cons)));\n});\n/**\n * Given a symbol and args, returns [\x3cname-with-attrs-meta\x3e \x3cargs\x3e \x3cattrs\x3e]\n * with support for `defn` style `?docstring` and `?attrs-map`.\n */\ntaoensso.encore.name_with_attrs \x3d (function taoensso$encore$name_with_attrs(var_args){\nvar G__48213 \x3d arguments.length;\nswitch (G__48213) {\ncase 2:\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$2 \x3d (function (sym,args){\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3(sym,args,null);\n}));\n\n(taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3 \x3d (function (sym,args,attrs_merge){\nvar vec__48223 \x3d ((((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.next(args))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args], null));\nvar _QMARK_docstring \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48223,(0),null);\nvar args__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48223,(1),null);\nvar vec__48226 \x3d ((((cljs.core.map_QMARK_(cljs.core.first(args__$1))) \x26\x26 (cljs.core.next(args__$1))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$1),cljs.core.next(args__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentArrayMap.EMPTY,args__$1], null));\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48226,(0),null);\nvar args__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48226,(1),null);\nvar vec__48229 \x3d ((((typeof cljs.core.first(args__$2) \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.next(args__$2))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$2),cljs.core.next(args__$2)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_docstring,args__$2], null));\nvar _QMARK_docstring__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48229,(0),null);\nvar args__$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48229,(1),null);\nvar attrs__$1 \x3d (cljs.core.truth_(_QMARK_docstring__$1)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(attrs,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),_QMARK_docstring__$1):attrs);\nvar attrs__$2 \x3d (function (){var b2__43681__auto__ \x3d cljs.core.meta(sym);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar m \x3d b2__43681__auto__;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(m,attrs__$1);\n} else {\nreturn attrs__$1;\n}\n})();\nvar attrs__$3 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(attrs__$2,attrs_merge);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(sym,attrs__$3),args__$3,attrs__$3], null);\n}));\n\n(taoensso.encore.name_with_attrs.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.node_target_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22);\ntaoensso.encore.react_native_target_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22react-native\x22);\ntaoensso.encore.js__QMARK_window \x3d (((((!(taoensso.encore.react_native_target_QMARK_))) \x26\x26 ((typeof window !\x3d\x3d \x27undefined\x27))))?window:null);\ntaoensso.encore.js__QMARK_process \x3d (((typeof process !\x3d\x3d \x27undefined\x27))?process:null);\ntaoensso.encore.js__QMARK_crypto \x3d ((taoensso.encore.react_native_target_QMARK_)?null:(function (){var or__5025__auto__ \x3d (((typeof crypto !\x3d\x3d \x27undefined\x27))?crypto:null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif((typeof window !\x3d\x3d \x27undefined\x27)){\nreturn taoensso.encore.goog$module$goog$object.get(window,\x22crypto\x22);\n} else {\nreturn null;\n}\n}\n})());\ntaoensso.encore.nempty_str_QMARK_ \x3d (function taoensso$encore$nempty_str_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22\x22)))));\n});\n\ntaoensso.encore.boolean_QMARK_ \x3d (function taoensso$encore$boolean_QMARK_(x){\nreturn ((x \x3d\x3d\x3d true) || (x \x3d\x3d\x3d false));\n});\n\ntaoensso.encore.indexed_QMARK_ \x3d (function taoensso$encore$indexed_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IIndexed$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.named_QMARK_ \x3d (function taoensso$encore$named_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$INamed$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.editable_QMARK_ \x3d (function taoensso$encore$editable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IEditableCollection$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.derefable_QMARK_ \x3d (function taoensso$encore$derefable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (32768))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IDeref$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.atom_QMARK_ \x3d (function taoensso$encore$atom_QMARK_(x){\nreturn (x instanceof cljs.core.Atom);\n});\n\ntaoensso.encore.transient_QMARK_ \x3d (function taoensso$encore$transient_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (8))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ITransientCollection$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.lazy_seq_QMARK_ \x3d (function taoensso$encore$lazy_seq_QMARK_(x){\nreturn (x instanceof cljs.core.LazySeq);\n});\n\ntaoensso.encore.re_pattern_QMARK_ \x3d (function taoensso$encore$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\n\ntaoensso.encore.can_meta_QMARK_ \x3d (function taoensso$encore$can_meta_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IWithMeta$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.stringy_QMARK_ \x3d (function taoensso$encore$stringy_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) || (typeof x \x3d\x3d\x3d \x27string\x27));\n});\n\ntaoensso.encore.ident_QMARK_ \x3d (function taoensso$encore$ident_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)));\n});\n\ntaoensso.encore.nameable_QMARK_ \x3d (function taoensso$encore$nameable_QMARK_(x){\nreturn ((taoensso.encore.named_QMARK_(x)) || (typeof x \x3d\x3d\x3d \x27string\x27));\n});\n\ntaoensso.encore.simple_ident_QMARK_ \x3d (function taoensso$encore$simple_ident_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.ident_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (cljs.core.namespace(x) \x3d\x3d null);\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.qualified_ident_QMARK_ \x3d (function taoensso$encore$qualified_ident_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.ident_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.simple_symbol_QMARK_ \x3d (function taoensso$encore$simple_symbol_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n\ntaoensso.encore.qualified_symbol_QMARK_ \x3d (function taoensso$encore$qualified_symbol_QMARK_(x){\nvar and__5023__auto__ \x3d (x instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.simple_keyword_QMARK_ \x3d (function taoensso$encore$simple_keyword_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n\ntaoensso.encore.qualified_keyword_QMARK_ \x3d (function taoensso$encore$qualified_keyword_QMARK_(x){\nvar and__5023__auto__ \x3d (x instanceof cljs.core.Keyword);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.vec2_QMARK_ \x3d (function taoensso$encore$vec2_QMARK_(x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),(2))));\n});\n\ntaoensso.encore.vec3_QMARK_ \x3d (function taoensso$encore$vec3_QMARK_(x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),(3))));\n});\n\ntaoensso.encore.nblank_str_QMARK_ \x3d (function taoensso$encore$nblank_str_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!(clojure.string.blank_QMARK_(x)))));\n});\n\ntaoensso.encore.nblank_QMARK_ \x3d (function taoensso$encore$nblank_QMARK_(x){\nreturn (!(clojure.string.blank_QMARK_(x)));\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.encore.error_QMARK_ \x3d taoensso.truss.error_QMARK_;\n/**\n * Returns true iff given a `clojure.core.async` channel.\n */\ntaoensso.encore.chan_QMARK_ \x3d (function taoensso$encore$chan_QMARK_(x){\nreturn (x instanceof cljs.core.async.impl.channels.ManyToManyChannel);\n});\n/**\n * Like `force` for refs.\n */\ntaoensso.encore.force_ref \x3d (function taoensso$encore$force_ref(x){\nif(taoensso.encore.derefable_QMARK_(x)){\nreturn cljs.core.deref(x);\n} else {\nreturn x;\n}\n});\n/**\n * Like `force` for vars.\n */\ntaoensso.encore.force_var \x3d (function taoensso$encore$force_var(x){\nif(cljs.core.var_QMARK_(x)){\nreturn cljs.core.deref(x);\n} else {\nreturn x;\n}\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * finite (excl. NaN and infinities).\n */\ntaoensso.encore.finite_num_QMARK_ \x3d (function taoensso$encore$finite_num_QMARK_(x){\nreturn Number.isFinite(x);\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * a fixed-precision integer.\n */\ntaoensso.encore.int_QMARK_ \x3d (function taoensso$encore$int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.finite_num_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (parseFloat(x) \x3d\x3d\x3d parseInt(x,(10)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * a fixed-precision floating-point (incl. NaN and infinities).\n */\ntaoensso.encore.float_QMARK_ \x3d (function taoensso$encore$float_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((parseFloat(x) \x3d\x3d\x3d parseInt(x,(10)))))));\n});\ntaoensso.encore.nneg_QMARK_ \x3d (function taoensso$encore$nneg_QMARK_(x){\nreturn (!((x \x3c (0))));\n});\n\ntaoensso.encore.zero_num_QMARK_ \x3d (function taoensso$encore$zero_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3d\x3d\x3d (0))));\n});\n\ntaoensso.encore.nzero_num_QMARK_ \x3d (function taoensso$encore$nzero_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((x \x3d\x3d\x3d (0))))));\n});\n\ntaoensso.encore.nat_num_QMARK_ \x3d (function taoensso$encore$nat_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((x \x3c (0))))));\n});\n\ntaoensso.encore.pos_num_QMARK_ \x3d (function taoensso$encore$pos_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3e (0))));\n});\n\ntaoensso.encore.neg_num_QMARK_ \x3d (function taoensso$encore$neg_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3c (0))));\n});\n\ntaoensso.encore.nat_int_QMARK_ \x3d (function taoensso$encore$nat_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!((x \x3c (0))));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.pos_int_QMARK_ \x3d (function taoensso$encore$pos_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3e (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.neg_int_QMARK_ \x3d (function taoensso$encore$neg_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3c (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.nat_float_QMARK_ \x3d (function taoensso$encore$nat_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!((x \x3c (0))));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.pos_float_QMARK_ \x3d (function taoensso$encore$pos_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3e (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.neg_float_QMARK_ \x3d (function taoensso$encore$neg_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3c (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given number in unsigned unit proportion interval \u2208\u211d[0,1].\n */\ntaoensso.encore.pnum_QMARK_ \x3d (function taoensso$encore$pnum_QMARK_(x){\nvar and__5023__auto__ \x3d typeof x \x3d\x3d\x3d \x27number\x27;\nif(and__5023__auto__){\nvar n \x3d x;\nreturn (((n \x3e\x3d 0.0)) \x26\x26 ((n \x3c\x3d 1.0)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given number in signed unit proportion interval \u2208\u211d[-1,1].\n */\ntaoensso.encore.rnum_QMARK_ \x3d (function taoensso$encore$rnum_QMARK_(x){\nvar and__5023__auto__ \x3d typeof x \x3d\x3d\x3d \x27number\x27;\nif(and__5023__auto__){\nvar n \x3d x;\nreturn (((n \x3e\x3d -1.0)) \x26\x26 ((n \x3c\x3d 1.0)));\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.max_long \x3d Number.MAX_SAFE_INTEGER;\ntaoensso.encore.min_long \x3d Number.MIN_SAFE_INTEGER;\ntaoensso.encore.int_str_QMARK_ \x3d (function taoensso$encore$int_str_QMARK_(s){\nreturn cljs.core.re_matches(/[+-]?\\d+/,s);\n});\ntaoensso.encore.parse_js_float \x3d (function taoensso$encore$parse_js_float(s){\nvar x \x3d parseFloat(s);\nif(cljs.core.truth_(isNaN(x))){\nreturn null;\n} else {\nreturn x;\n}\n});\ntaoensso.encore.parse_js_int \x3d (function taoensso$encore$parse_js_int(s){\nif(cljs.core.truth_(taoensso.encore.int_str_QMARK_(s))){\nvar x \x3d parseInt(s,(10));\nif(((cljs.core.not(isNaN(x))) \x26\x26 ((((x \x3c\x3d taoensso.encore.max_long)) \x26\x26 ((x \x3e\x3d taoensso.encore.min_long)))))){\nreturn x;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ntaoensso.encore.as__QMARK_nzero \x3d (function taoensso$encore$as__QMARK_nzero(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nif((x \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nblank \x3d (function taoensso$encore$as__QMARK_nblank(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nif(clojure.string.blank_QMARK_(x)){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_kw \x3d (function taoensso$encore$as__QMARK_kw(x){\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_name \x3d (function taoensso$encore$as__QMARK_name(x){\nif(taoensso.encore.named_QMARK_(x)){\nreturn cljs.core.name(x);\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_qname \x3d (function taoensso$encore$as__QMARK_qname(x){\nif(taoensso.encore.named_QMARK_(x)){\nvar n \x3d cljs.core.name(x);\nvar b2__43681__auto__ \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar ns \x3d b2__43681__auto__;\nreturn [ns,\x22/\x22,n].join(\x27\x27);\n} else {\nreturn n;\n}\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_nempty_str \x3d (function taoensso$encore$as__QMARK_nempty_str(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22\x22)){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nblank_trim \x3d (function taoensso$encore$as__QMARK_nblank_trim(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar s \x3d clojure.string.trim(x);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)){\nreturn null;\n} else {\nreturn s;\n}\n} else {\nreturn null;\n}\n});\n\n\ntaoensso.encore.as__QMARK_int \x3d (function taoensso$encore$as__QMARK_int(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.long$(x);\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.encore.parse_js_int(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_float \x3d (function taoensso$encore$as__QMARK_float(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.encore.parse_js_float(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_nat_int \x3d (function taoensso$encore$as__QMARK_nat_int(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar n \x3d b2__43681__auto__;\nif((n \x3c (0))){\nreturn null;\n} else {\nreturn n;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pos_int \x3d (function taoensso$encore$as__QMARK_pos_int(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar n \x3d b2__43681__auto__;\nif((n \x3e (0))){\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nat_float \x3d (function taoensso$encore$as__QMARK_nat_float(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar n \x3d b2__43681__auto__;\nif((n \x3c (0))){\nreturn null;\n} else {\nreturn n;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pos_float \x3d (function taoensso$encore$as__QMARK_pos_float(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar n \x3d b2__43681__auto__;\nif((n \x3e (0))){\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pnum \x3d (function taoensso$encore$as__QMARK_pnum(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar f \x3d b2__43681__auto__;\nif((f \x3e 1.0)){\nreturn 1.0;\n} else {\nif((f \x3c 0.0)){\nreturn 0.0;\n} else {\nreturn f;\n}\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_rnum \x3d (function taoensso$encore$as__QMARK_rnum(x){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar f \x3d b2__43681__auto__;\nif((f \x3e 1.0)){\nreturn 1.0;\n} else {\nif((f \x3c -1.0)){\nreturn -0.0;\n} else {\nreturn f;\n}\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_bool \x3d (function taoensso$encore$as__QMARK_bool(x){\nif(((x \x3d\x3d\x3d true) || (((x \x3d\x3d\x3d false) || ((x \x3d\x3d null)))))){\nreturn x;\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,(0))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22false\x22)) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22FALSE\x22)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x220\x22)))))))){\nreturn false;\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,(1))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22true\x22)) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22TRUE\x22)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x221\x22)))))))){\nreturn true;\n} else {\nreturn null;\n}\n}\n}\n});\n\nvar regex_50771 \x3d /^[^\\s@]+@[^\\s@]+\\.\\S*[^\\.]$/;\ntaoensso.encore.as__QMARK_email \x3d (function taoensso$encore$as__QMARK_email(var_args){\nvar G__48614 \x3d arguments.length;\nswitch (G__48614) {\ncase 1:\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_s){\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2((320),_QMARK_s);\n}));\n\n(taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2 \x3d (function (max_len,_QMARK_s){\nvar b2__43681__auto__ \x3d (function (){var and__5023__auto__ \x3d _QMARK_s;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn clojure.string.trim(_QMARK_s);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar s \x3d b2__43681__auto__;\nif((cljs.core.count(s) \x3c\x3d max_len)){\nreturn cljs.core.re_find(regex_50771,s);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_email.cljs$lang$maxFixedArity \x3d 2);\n\n\n\ntaoensso.encore.as__QMARK_nemail \x3d (function taoensso$encore$as__QMARK_nemail(var_args){\nvar G__48634 \x3d arguments.length;\nswitch (G__48634) {\ncase 1:\nreturn taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_s){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(_QMARK_s);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar email \x3d b2__43681__auto__;\nreturn clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email)));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2 \x3d (function (max_len,_QMARK_s){\nvar b2__43681__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(max_len,_QMARK_s);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar email \x3d b2__43681__auto__;\nreturn clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email)));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_nemail.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore._as_throw \x3d (function taoensso$encore$_as_throw(kind,x){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1006,3], null),[\x22[encore/as-\x22,cljs.core.name(kind),\x22] failed against arg: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22pred-kind\x22,\x22pred-kind\x22,138885083),kind,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),null);\n});\nvar _as_throw_50776 \x3d taoensso.encore._as_throw;\ntaoensso.encore.as_nblank \x3d (function taoensso$encore$as_nblank(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nblank(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nblank\x22,\x22nblank\x22,626815585),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nblank\x22,\x22nblank\x22,626815585),x));\n}\n});\n\ntaoensso.encore.as_nblank_trim \x3d (function taoensso$encore$as_nblank_trim(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nblank_trim(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nblank-trim\x22,\x22nblank-trim\x22,-1443525862),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nblank-trim\x22,\x22nblank-trim\x22,-1443525862),x));\n}\n});\n\ntaoensso.encore.as_nempty_str \x3d (function taoensso$encore$as_nempty_str(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nempty_str(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nempty-str\x22,\x22nempty-str\x22,-215700100),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nempty-str\x22,\x22nempty-str\x22,-215700100),x));\n}\n});\n\ntaoensso.encore.as_name \x3d (function taoensso$encore$as_name(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_name(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),x));\n}\n});\n\ntaoensso.encore.as_qname \x3d (function taoensso$encore$as_qname(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_qname(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22qname\x22,\x22qname\x22,-1983612179),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22qname\x22,\x22qname\x22,-1983612179),x));\n}\n});\n\ntaoensso.encore.as_nzero \x3d (function taoensso$encore$as_nzero(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nzero(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nzero\x22,\x22nzero\x22,2053173656),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nzero\x22,\x22nzero\x22,2053173656),x));\n}\n});\n\ntaoensso.encore.as_kw \x3d (function taoensso$encore$as_kw(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_kw(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kw\x22,\x22kw\x22,1158308175),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22kw\x22,\x22kw\x22,1158308175),x));\n}\n});\n\ntaoensso.encore.as_email \x3d (function taoensso$encore$as_email(var_args){\nvar G__48722 \x3d arguments.length;\nswitch (G__48722) {\ncase 1:\nreturn taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x));\n}\n}));\n\n(taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(n,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x));\n}\n}));\n\n(taoensso.encore.as_email.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.as_nemail \x3d (function taoensso$encore$as_nemail(var_args){\nvar G__48728 \x3d arguments.length;\nswitch (G__48728) {\ncase 1:\nreturn taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x));\n}\n}));\n\n(taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2(n,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x));\n}\n}));\n\n(taoensso.encore.as_nemail.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.as_int \x3d (function taoensso$encore$as_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),x));\n}\n});\n\ntaoensso.encore.as_nat_int \x3d (function taoensso$encore$as_nat_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nat_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nat-int\x22,\x22nat-int\x22,313429715),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nat-int\x22,\x22nat-int\x22,313429715),x));\n}\n});\n\ntaoensso.encore.as_pos_int \x3d (function taoensso$encore$as_pos_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pos_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos-int\x22,\x22pos-int\x22,15030207),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22pos-int\x22,\x22pos-int\x22,15030207),x));\n}\n});\n\ntaoensso.encore.as_float \x3d (function taoensso$encore$as_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),x));\n}\n});\n\ntaoensso.encore.as_nat_float \x3d (function taoensso$encore$as_nat_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nat_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nat-float\x22,\x22nat-float\x22,-371030973),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22nat-float\x22,\x22nat-float\x22,-371030973),x));\n}\n});\n\ntaoensso.encore.as_pos_float \x3d (function taoensso$encore$as_pos_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pos_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos-float\x22,\x22pos-float\x22,-715200084),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22pos-float\x22,\x22pos-float\x22,-715200084),x));\n}\n});\n\ntaoensso.encore.as_pnum \x3d (function taoensso$encore$as_pnum(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pnum(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pnum\x22,\x22pnum\x22,-602522434),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22pnum\x22,\x22pnum\x22,-602522434),x));\n}\n});\n\ntaoensso.encore.as_rnum \x3d (function taoensso$encore$as_rnum(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_rnum(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22rnum\x22,\x22rnum\x22,-783850724),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22rnum\x22,\x22rnum\x22,-783850724),x));\n}\n});\n\ntaoensso.encore.as_pnum_BANG_ \x3d (function taoensso$encore$as_pnum_BANG_(x){\nif(cljs.core.truth_(taoensso.encore.pnum_QMARK_(x))){\nreturn x;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pnum!\x22,\x22pnum!\x22,837651383),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22pnum!\x22,\x22pnum!\x22,837651383),x));\n}\n});\n\ntaoensso.encore.as_rnum_BANG_ \x3d (function taoensso$encore$as_rnum_BANG_(x){\nif(cljs.core.truth_(taoensso.encore.rnum_QMARK_(x))){\nreturn x;\n} else {\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22rnum!\x22,\x22rnum!\x22,-567516079),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22rnum!\x22,\x22rnum!\x22,-567516079),x));\n}\n});\n\ntaoensso.encore.as_bool \x3d (function taoensso$encore$as_bool(x){\nvar _QMARK_b \x3d taoensso.encore.as__QMARK_bool(x);\nif((_QMARK_b \x3d\x3d null)){\nreturn (_as_throw_50776.cljs$core$IFn$_invoke$arity$2 ? _as_throw_50776.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bool\x22,\x22bool\x22,1444635321),x) : _as_throw_50776.call(null,new cljs.core.Keyword(null,\x22bool\x22,\x22bool\x22,1444635321),x));\n} else {\nreturn _QMARK_b;\n}\n});\ntaoensso.encore.convey_reduced \x3d (function taoensso$encore$convey_reduced(x){\nif(cljs.core.reduced_QMARK_(x)){\nreturn cljs.core.reduced(x);\n} else {\nreturn x;\n}\n});\n/**\n * Public version of `core/preserving-reduced`.\n */\ntaoensso.encore.preserve_reduced \x3d (function taoensso$encore$preserve_reduced(rf){\nreturn (function (acc,in$){\nvar result \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\nif(cljs.core.reduced_QMARK_(result)){\nreturn cljs.core.reduced(result);\n} else {\nreturn result;\n}\n});\n});\n/**\n * Like `reduce-kv` but takes a flat sequence of kv pairs.\n */\ntaoensso.encore.reduce_kvs \x3d (function taoensso$encore$reduce_kvs(rf,init,kvs){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1((2)),cljs.core.completing.cljs$core$IFn$_invoke$arity$1((function (acc,p__48829){\nvar vec__48832 \x3d p__48829;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48832,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48832,(1),null);\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n})),init,kvs);\n});\n/**\n * No longer useful with Clojure 1.7+, just use (reduce f init (range ...)).\n */\ntaoensso.encore.reduce_n \x3d (function taoensso$encore$reduce_n(var_args){\nvar G__48840 \x3d arguments.length;\nswitch (G__48840) {\ncase 3:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3 \x3d (function (rf,init,end){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(end));\n}));\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4 \x3d (function (rf,init,start,end){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end));\n}));\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf,init,start,end,step){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$3(start,end,step));\n}));\n\n(taoensso.encore.reduce_n.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Like `reduce` but takes (rf [acc idx in]) with idx as in `map-indexed`.\n * As `reduce-kv` against vector coll, but works on any seqable coll type.\n */\ntaoensso.encore.reduce_indexed \x3d (function taoensso$encore$reduce_indexed(rf,init,coll){\nvar c \x3d (taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 ? taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0() : taoensso.encore.counter.call(null));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nvar G__48849 \x3d acc;\nvar G__48850 \x3d (c.cljs$core$IFn$_invoke$arity$0 ? c.cljs$core$IFn$_invoke$arity$0() : c.call(null));\nvar G__48851 \x3d in$;\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__48849,G__48850,G__48851) : rf.call(null,G__48849,G__48850,G__48851));\n}),init,coll);\n});\n/**\n * Like `reduce-kv` but for JavaScript objects.\n */\ntaoensso.encore.reduce_obj \x3d (function taoensso$encore$reduce_obj(f,init,o){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nvar G__48857 \x3d acc;\nvar G__48858 \x3d k;\nvar G__48859 \x3d taoensso.encore.goog$module$goog$object.get(o,k,null);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__48857,G__48858,G__48859) : f.call(null,G__48857,G__48858,G__48859));\n}),init,cljs.core.js_keys(o));\n});\ntaoensso.encore.run_BANG_ \x3d (function taoensso$encore$run_BANG_(proc,coll){\ncljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48867_SHARP_,p2__48866_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$1 ? proc.cljs$core$IFn$_invoke$arity$1(p2__48866_SHARP_) : proc.call(null,p2__48866_SHARP_));\n}),null,coll);\n\nreturn null;\n});\n\ntaoensso.encore.run_kv_BANG_ \x3d (function taoensso$encore$run_kv_BANG_(proc,m){\ncljs.core.reduce_kv((function (p1__48870_SHARP_,p2__48868_SHARP_,p3__48869_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48868_SHARP_,p3__48869_SHARP_) : proc.call(null,p2__48868_SHARP_,p3__48869_SHARP_));\n}),null,m);\n\nreturn null;\n});\n\ntaoensso.encore.run_kvs_BANG_ \x3d (function taoensso$encore$run_kvs_BANG_(proc,kvs){\ntaoensso.encore.reduce_kvs((function (p1__48873_SHARP_,p2__48871_SHARP_,p3__48872_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48871_SHARP_,p3__48872_SHARP_) : proc.call(null,p2__48871_SHARP_,p3__48872_SHARP_));\n}),null,kvs);\n\nreturn null;\n});\n\ntaoensso.encore.run_obj_BANG_ \x3d (function taoensso$encore$run_obj_BANG_(proc,obj){\ntaoensso.encore.reduce_obj((function (p1__48877_SHARP_,p2__48875_SHARP_,p3__48876_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__48875_SHARP_,p3__48876_SHARP_) : proc.call(null,p2__48875_SHARP_,p3__48876_SHARP_));\n}),null,obj);\n\nreturn null;\n});\nvar rf_50782 \x3d (function (pred){\nreturn (function (_acc,in$){\nvar b2__43681__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar p \x3d b2__43681__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first truthy (pred x) for x in coll.\n * Like `core/some` but faster and supports transducers.\n */\ntaoensso.encore.rsome \x3d (function taoensso$encore$rsome(var_args){\nvar G__48894 \x3d arguments.length;\nswitch (G__48894) {\ncase 2:\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50782(pred),null,coll);\n}));\n\n(taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50782(pred)),null,coll);\n}));\n\n(taoensso.encore.rsome.cljs$lang$maxFixedArity \x3d 3);\n\nvar rf_50784 \x3d (function (pred){\nreturn (function (_acc,k,v){\nvar b2__43681__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar p \x3d b2__43681__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\nvar tf_50785 \x3d (function (pred){\nreturn (function (_acc,p__48914){\nvar vec__48917 \x3d p__48914;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48917,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48917,(1),null);\nvar b2__43681__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar p \x3d b2__43681__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first truthy (pred k v) for kv in associative coll.\n * Like `core/some` but faster and takes kvs.\n */\ntaoensso.encore.rsome_kv \x3d (function taoensso$encore$rsome_kv(pred,coll){\nreturn cljs.core.reduce_kv(rf_50784(pred),null,coll);\n});\nvar rf_50786 \x3d (function (pred){\nreturn (function (_acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn cljs.core.reduced(in$);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first x in coll with truthy (pred x).\n */\ntaoensso.encore.rfirst \x3d (function taoensso$encore$rfirst(var_args){\nvar G__48932 \x3d arguments.length;\nswitch (G__48932) {\ncase 2:\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50786(pred),null,coll);\n}));\n\n(taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50786(pred)),null,coll);\n}));\n\n(taoensso.encore.rfirst.cljs$lang$maxFixedArity \x3d 3);\n\nvar entry_50788 \x3d (function (k,v){\nreturn (new cljs.core.MapEntry(k,v,null));\n});\nvar rf_50789 \x3d (function (pred){\nreturn (function (_acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.reduced(entry_50788(k,v));\n} else {\nreturn null;\n}\n});\n});\nvar tf_50790 \x3d (function (pred){\nreturn (function (_acc,p__48952){\nvar vec__48954 \x3d p__48952;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48954,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48954,(1),null);\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.reduced(entry_50788(k,v));\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first [k v] entry in associative coll with truthy (pred k v).\n */\ntaoensso.encore.rfirst_kv \x3d (function taoensso$encore$rfirst_kv(pred,coll){\nreturn cljs.core.reduce_kv(rf_50789(pred),null,coll);\n});\nvar rf_50791 \x3d (function (pred){\nreturn (function (_acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\n/**\n * Returns true iff (pred x) is truthy for every x in coll.\n * Like `core/every?` but faster and supports transducers.\n */\ntaoensso.encore.revery_QMARK_ \x3d (function taoensso$encore$revery_QMARK_(var_args){\nvar G__48968 \x3d arguments.length;\nswitch (G__48968) {\ncase 2:\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_50791(pred),true,coll);\n}));\n\n(taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_50791(pred)),true,coll);\n}));\n\n(taoensso.encore.revery_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\nvar rf_50793 \x3d (function (pred){\nreturn (function (_acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\nvar tf_50794 \x3d (function (pred){\nreturn (function (_acc,p__48994){\nvar vec__48996 \x3d p__48994;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48996,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48996,(1),null);\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\n/**\n * Returns true iff (pred k v) is truthy for every kv in associative coll.\n */\ntaoensso.encore.revery_kv_QMARK_ \x3d (function taoensso$encore$revery_kv_QMARK_(pred,coll){\nreturn cljs.core.reduce_kv(rf_50793(pred),true,coll);\n});\n/**\n * Reduces given sequential xs and ys as pairs (e.g. key-val pairs).\n * Calls (rf acc x y) for each sequential pair.\n * \n * Useful, among other things, as a more flexible version of `zipmap`.\n */\ntaoensso.encore.reduce_zip \x3d (function taoensso$encore$reduce_zip(var_args){\nvar G__49006 \x3d arguments.length;\nswitch (G__49006) {\ncase 4:\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$4 \x3d (function (rf,init,xs,ys){\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5(rf,init,xs,ys,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459));\n}));\n\n(taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf,init,xs,ys,not_found){\nif(((cljs.core.vector_QMARK_(xs)) \x26\x26 (cljs.core.vector_QMARK_(ys)))){\nvar n \x3d ((cljs.core.keyword_identical_QMARK_(not_found,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459)))?(function (){var x__5113__auto__ \x3d cljs.core.count(xs);\nvar y__5114__auto__ \x3d cljs.core.count(ys);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})():(function (){var x__5110__auto__ \x3d cljs.core.count(xs);\nvar y__5111__auto__ \x3d cljs.core.count(ys);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})());\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,idx){\nvar G__49019 \x3d acc;\nvar G__49020 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(xs,idx,not_found);\nvar G__49021 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(ys,idx,not_found);\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__49019,G__49020,G__49021) : rf.call(null,G__49019,G__49020,G__49021));\n}),init,n);\n} else {\nvar not_found_QMARK_ \x3d (!(cljs.core.keyword_identical_QMARK_(not_found,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459))));\nvar acc \x3d init;\nvar xs__$1 \x3d cljs.core.seq(xs);\nvar ys__$1 \x3d cljs.core.seq(ys);\nwhile(true){\nif(((not_found_QMARK_)?((xs__$1) || (ys__$1)):((xs__$1) \x26\x26 (ys__$1)))){\nvar result \x3d (function (){var G__49032 \x3d acc;\nvar G__49033 \x3d cljs.core.first((function (){var or__5025__auto__ \x3d xs__$1;\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null);\n}\n})());\nvar G__49034 \x3d cljs.core.first((function (){var or__5025__auto__ \x3d ys__$1;\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null);\n}\n})());\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__49032,G__49033,G__49034) : rf.call(null,G__49032,G__49033,G__49034));\n})();\nif(cljs.core.reduced_QMARK_(result)){\nreturn cljs.core.deref(result);\n} else {\nvar G__50798 \x3d result;\nvar G__50799 \x3d cljs.core.next(xs__$1);\nvar G__50800 \x3d cljs.core.next(ys__$1);\nacc \x3d G__50798;\nxs__$1 \x3d G__50799;\nys__$1 \x3d G__50800;\ncontinue;\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n}\n}));\n\n(taoensso.encore.reduce_zip.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.Tup2 \x3d (function (x,y){\nthis.x \x3d x;\nthis.y \x3d y;\n});\n\n(taoensso.encore.Tup2.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22x\x22,\x22x\x22,-555367584,null),new cljs.core.Symbol(null,\x22y\x22,\x22y\x22,-117328249,null)], null);\n}));\n\n(taoensso.encore.Tup2.cljs$lang$type \x3d true);\n\n(taoensso.encore.Tup2.cljs$lang$ctorStr \x3d \x22taoensso.encore/Tup2\x22);\n\n(taoensso.encore.Tup2.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Tup2\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Tup2.\n */\ntaoensso.encore.__GT_Tup2 \x3d (function taoensso$encore$__GT_Tup2(x,y){\nreturn (new taoensso.encore.Tup2(x,y));\n});\n\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.Tup3 \x3d (function (x,y,z){\nthis.x \x3d x;\nthis.y \x3d y;\nthis.z \x3d z;\n});\n\n(taoensso.encore.Tup3.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22x\x22,\x22x\x22,-555367584,null),new cljs.core.Symbol(null,\x22y\x22,\x22y\x22,-117328249,null),new cljs.core.Symbol(null,\x22z\x22,\x22z\x22,851004344,null)], null);\n}));\n\n(taoensso.encore.Tup3.cljs$lang$type \x3d true);\n\n(taoensso.encore.Tup3.cljs$lang$ctorStr \x3d \x22taoensso.encore/Tup3\x22);\n\n(taoensso.encore.Tup3.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Tup3\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Tup3.\n */\ntaoensso.encore.__GT_Tup3 \x3d (function taoensso$encore$__GT_Tup3(x,y,z){\nreturn (new taoensso.encore.Tup3(x,y,z));\n});\n\n/**\n * Like `reduce` but supports separate simultaneous accumulators\n * as a micro-optimization when reducing a large collection multiple\n * times.\n */\ntaoensso.encore.reduce_multi \x3d (function taoensso$encore$reduce_multi(var_args){\nvar G__49071 \x3d arguments.length;\nswitch (G__49071) {\ncase 3:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 7:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$3 \x3d (function (rf,init,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,coll);\n}));\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf1,init1,rf2,init2,coll){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (tuple,in$){\nvar x \x3d tuple.x;\nvar y \x3d tuple.y;\nvar rx_QMARK_ \x3d cljs.core.reduced_QMARK_(x);\nvar ry_QMARK_ \x3d cljs.core.reduced_QMARK_(y);\nif(((rx_QMARK_) \x26\x26 (ry_QMARK_))){\nreturn cljs.core.reduced(tuple);\n} else {\nvar x__$1 \x3d ((rx_QMARK_)?x:(rf1.cljs$core$IFn$_invoke$arity$2 ? rf1.cljs$core$IFn$_invoke$arity$2(x,in$) : rf1.call(null,x,in$)));\nvar y__$1 \x3d ((ry_QMARK_)?y:(rf2.cljs$core$IFn$_invoke$arity$2 ? rf2.cljs$core$IFn$_invoke$arity$2(y,in$) : rf2.call(null,y,in$)));\nreturn (new taoensso.encore.Tup2(x__$1,y__$1));\n}\n}),(new taoensso.encore.Tup2(init1,init2)),coll);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.unreduced(tuple.x),cljs.core.unreduced(tuple.y)], null);\n}));\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$7 \x3d (function (rf1,init1,rf2,init2,rf3,init3,coll){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (tuple,in$){\nvar x \x3d tuple.x;\nvar y \x3d tuple.y;\nvar z \x3d tuple.z;\nvar rx_QMARK_ \x3d cljs.core.reduced_QMARK_(x);\nvar ry_QMARK_ \x3d cljs.core.reduced_QMARK_(y);\nvar rz_QMARK_ \x3d cljs.core.reduced_QMARK_(z);\nif(((rx_QMARK_) \x26\x26 (((ry_QMARK_) \x26\x26 (rz_QMARK_))))){\nreturn cljs.core.reduced(tuple);\n} else {\nvar x__$1 \x3d ((rx_QMARK_)?x:(rf1.cljs$core$IFn$_invoke$arity$2 ? rf1.cljs$core$IFn$_invoke$arity$2(x,in$) : rf1.call(null,x,in$)));\nvar y__$1 \x3d ((ry_QMARK_)?y:(rf2.cljs$core$IFn$_invoke$arity$2 ? rf2.cljs$core$IFn$_invoke$arity$2(y,in$) : rf2.call(null,y,in$)));\nvar z__$1 \x3d ((rz_QMARK_)?z:(rf3.cljs$core$IFn$_invoke$arity$2 ? rf3.cljs$core$IFn$_invoke$arity$2(z,in$) : rf3.call(null,z,in$)));\nreturn (new taoensso.encore.Tup3(x__$1,y__$1,z__$1));\n}\n}),(new taoensso.encore.Tup3(init1,init2,init3)),coll);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.unreduced(tuple.x),cljs.core.unreduced(tuple.y),cljs.core.unreduced(tuple.z)], null);\n}));\n\n(taoensso.encore.reduce_multi.cljs$lang$maxFixedArity \x3d 7);\n\n/**\n * Reduces sequence of elements interleaved from given `colls`.\n * (reduce-interleave-all conj [] [[:a :b] [1 2 3]]) \x3d\x3e [:a 1 :b 2 3]\n */\ntaoensso.encore.reduce_interleave_all \x3d (function taoensso$encore$reduce_interleave_all(rf,init,colls){\nif(cljs.core.empty_QMARK_(colls)){\nreturn init;\n} else {\nvar acc \x3d init;\nvar colls__$1 \x3d colls;\nwhile(true){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (acc,colls__$1){\nreturn (function (tuple,in$){\nif(cljs.core.empty_QMARK_(in$)){\nreturn tuple;\n} else {\nvar vec__49123 \x3d in$;\nvar seq__49124 \x3d cljs.core.seq(vec__49123);\nvar first__49125 \x3d cljs.core.first(seq__49124);\nvar seq__49124__$1 \x3d cljs.core.next(seq__49124);\nvar in1 \x3d first__49125;\nvar next_in \x3d seq__49124__$1;\nvar acc__$1 \x3d tuple.x;\nvar ncs \x3d tuple.y;\nvar res \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc__$1,in1) : rf.call(null,acc__$1,in1));\nif(cljs.core.reduced_QMARK_(res)){\nreturn cljs.core.reduced((new taoensso.encore.Tup2(cljs.core.deref(res),null)));\n} else {\nreturn (new taoensso.encore.Tup2(res,((next_in)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d ncs;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),next_in):ncs)));\n}\n}\n});})(acc,colls__$1))\n,(new taoensso.encore.Tup2(acc,null)),colls__$1);\nvar acc__$1 \x3d tuple.x;\nvar next_colls \x3d tuple.y;\nif(cljs.core.truth_(next_colls)){\nvar G__50802 \x3d acc__$1;\nvar G__50803 \x3d next_colls;\nacc \x3d G__50802;\ncolls__$1 \x3d G__50803;\ncontinue;\n} else {\nreturn acc__$1;\n}\nbreak;\n}\n}\n});\nvar map_like_QMARK__50804 \x3d (function (p1__49126_SHARP_){\nreturn ((cljs.core.map_QMARK_(p1__49126_SHARP_)) || (cljs.core.record_QMARK_(p1__49126_SHARP_)));\n});\n/**\n * Private, don\x27t use.\n * Simpler, faster `clojure.walk/postwalk`.\n */\ntaoensso.encore.postwalk \x3d (function taoensso$encore$postwalk(var_args){\nvar G__49132 \x3d arguments.length;\nswitch (G__49132) {\ncase 2:\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,f){\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(false,x,f);\n}));\n\n(taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3 \x3d (function (preserve_seqs_QMARK_,x,f){\nvar ps \x3d (cljs.core.truth_(preserve_seqs_QMARK_)?cljs.core.seq:cljs.core.identity);\nvar pw \x3d (function (p1__49127_SHARP_,p2__49128_SHARP_){\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(preserve_seqs_QMARK_,p1__49127_SHARP_,p2__49128_SHARP_);\n});\nif(map_like_QMARK__50804(x)){\nvar G__49144 \x3d cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,pw(k,f),pw(v,f));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49144) : f.call(null,G__49144));\n} else {\nif(cljs.core.seq_QMARK_(x)){\nvar G__49145 \x3d (function (){var G__49146 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f));\n}),cljs.core.PersistentVector.EMPTY,x);\nreturn (ps.cljs$core$IFn$_invoke$arity$1 ? ps.cljs$core$IFn$_invoke$arity$1(G__49146) : ps.call(null,G__49146));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49145) : f.call(null,G__49145));\n} else {\nif(cljs.core.coll_QMARK_(x)){\nvar G__49149 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f));\n}),cljs.core.empty(x),x);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49149) : f.call(null,G__49149));\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x));\n}\n}\n}\n}));\n\n(taoensso.encore.postwalk.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.subfn \x3d (function taoensso$encore$subfn(context,by_idx_fn){\nreturn (function() {\nvar taoensso$encore$subfn_$_subfn_STAR_ \x3d null;\nvar taoensso$encore$subfn_$_subfn_STAR___2 \x3d (function (c,start_idx){\nif(cljs.core.truth_(c)){\nvar max_idx \x3d cljs.core.count(c);\nvar start_idx__$1 \x3d cljs.core.long$(start_idx);\nif((start_idx__$1 \x3c max_idx)){\nvar G__49165 \x3d c;\nvar G__49166 \x3d (function (){var x__5110__auto__ \x3d start_idx__$1;\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar G__49167 \x3d max_idx;\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(G__49165,G__49166,G__49167) : by_idx_fn.call(null,G__49165,G__49166,G__49167));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nvar taoensso$encore$subfn_$_subfn_STAR___3 \x3d (function (c,start_idx,end_idx){\nif(cljs.core.truth_(c)){\nvar start_idx__$1 \x3d (function (){var x__5110__auto__ \x3d cljs.core.long$(start_idx);\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar end_idx__$1 \x3d (function (){var x__5113__auto__ \x3d cljs.core.long$(end_idx);\nvar y__5114__auto__ \x3d cljs.core.count(c);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx__$1 \x3c end_idx__$1)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx__$1,end_idx__$1) : by_idx_fn.call(null,c,start_idx__$1,end_idx__$1));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nvar taoensso$encore$subfn_$_subfn_STAR___4 \x3d (function (c,kind,start,end){\nif(cljs.core.truth_(c)){\nvar max_end \x3d cljs.core.count(c);\nvar end__$1 \x3d ((cljs.core.keyword_identical_QMARK_(end,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548)))?max_end:end);\nvar G__49183 \x3d kind;\nvar G__49183__$1 \x3d (((G__49183 instanceof cljs.core.Keyword))?G__49183.fqn:null);\nswitch (G__49183__$1) {\ncase \x22by-idx\x22:\nreturn taoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$3(c,start,end__$1);\n\nbreak;\ncase \x22by-len\x22:\nvar len \x3d cljs.core.long$(end__$1);\nif((len \x3c\x3d (0))){\nreturn null;\n} else {\nvar start_idx \x3d cljs.core.long$(start);\nif((start_idx \x3c (0))){\nvar start_idx__$1 \x3d (function (){var x__5110__auto__ \x3d (start_idx + max_end);\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar end_idx \x3d (function (){var x__5113__auto__ \x3d (start_idx__$1 + len);\nvar y__5114__auto__ \x3d max_end;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx__$1 \x3c end_idx)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx__$1,end_idx) : by_idx_fn.call(null,c,start_idx__$1,end_idx));\n} else {\nreturn null;\n}\n} else {\nvar end_idx \x3d (function (){var x__5113__auto__ \x3d (start_idx + len);\nvar y__5114__auto__ \x3d max_end;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx \x3c end_idx)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx,end_idx) : by_idx_fn.call(null,c,start_idx,end_idx));\n} else {\nreturn null;\n}\n}\n}\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1368,12], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),context,new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22by-idx\x22,\x22by-idx\x22,-1997587605),null,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),null], null), null)], null));\n\n}\n} else {\nreturn null;\n}\n});\ntaoensso$encore$subfn_$_subfn_STAR_ \x3d function(c,kind,start,end){\nswitch(arguments.length){\ncase 2:\nreturn taoensso$encore$subfn_$_subfn_STAR___2.call(this,c,kind);\ncase 3:\nreturn taoensso$encore$subfn_$_subfn_STAR___3.call(this,c,kind,start);\ncase 4:\nreturn taoensso$encore$subfn_$_subfn_STAR___4.call(this,c,kind,start,end);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$subfn_$_subfn_STAR___2;\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$subfn_$_subfn_STAR___3;\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$subfn_$_subfn_STAR___4;\nreturn taoensso$encore$subfn_$_subfn_STAR_;\n})()\n});\n/**\n * Returns a non-empty sub-vector, or nil.\n * Like `core/subvec` but:\n * - Doesn\x27t throw when out-of-bounds (clips to bounds).\n * - Returns nil rather than an empty vector.\n * - When given `:by-len` kind (4-arity case):\n * - `start` may be -ive (\x3d\x3e index from right of vector).\n * - `end` is desired vector length, or `:max`.\n */\ntaoensso.encore.subvec \x3d taoensso.encore.subfn(new cljs.core.Symbol(\x22taoensso.encore\x22,\x22subvec\x22,\x22taoensso.encore/subvec\x22,-995330198,null),cljs.core.subvec);\n/**\n * Returns a non-empty sub-string, or nil.\n * Like `subs` but:\n * - Doesn\x27t throw when out-of-bounds (clips to bounds).\n * - Returns nil rather than an empty string.\n * - When given `:by-len` kind (4-arity case):\n * - `start` may be -ive (\x3d\x3e index from right of string).\n * - `end` is desired string length, or `:max`.\n */\ntaoensso.encore.substr \x3d taoensso.encore.subfn(new cljs.core.Symbol(\x22taoensso.encore\x22,\x22substr\x22,\x22taoensso.encore/substr\x22,852382831,null),(function (s,n1,n2){\nreturn s.substring(n1,n2);\n}));\n/**\n * Returns a `MapEntry` with given key and value.\n */\ntaoensso.encore.map_entry \x3d (function taoensso$encore$map_entry(k,v){\nreturn (new cljs.core.MapEntry(k,v,null));\n});\n/**\n * Returns true iff given a `PersistentQueue`.\n */\ntaoensso.encore.queue_QMARK_ \x3d (function taoensso$encore$queue_QMARK_(x){\nreturn (x instanceof cljs.core.PersistentQueue);\n});\n/**\n * Returns a new `PersistentQueue`.\n */\ntaoensso.encore.queue \x3d (function taoensso$encore$queue(var_args){\nvar G__49208 \x3d arguments.length;\nswitch (G__49208) {\ncase 1:\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 0:\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0(),coll);\n}));\n\n(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentQueue.EMPTY;\n}));\n\n(taoensso.encore.queue.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns a new `PersistentQueue` given items.\n */\ntaoensso.encore.queue_STAR_ \x3d (function taoensso$encore$queue_STAR_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50810 \x3d arguments.length;\nvar i__5750__auto___50811 \x3d (0);\nwhile(true){\nif((i__5750__auto___50811 \x3c len__5749__auto___50810)){\nargs__5755__auto__.push((arguments[i__5750__auto___50811]));\n\nvar G__50812 \x3d (i__5750__auto___50811 + (1));\ni__5750__auto___50811 \x3d G__50812;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.queue_STAR_.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.queue_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (items){\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1(items);\n}));\n\n(taoensso.encore.queue_STAR_.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.queue_STAR_.cljs$lang$applyTo \x3d (function (seq49225){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq49225));\n}));\n\ntaoensso.encore.ensure_vec \x3d (function taoensso$encore$ensure_vec(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.vec(x);\n}\n});\ntaoensso.encore.ensure_set \x3d (function taoensso$encore$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\n/**\n * Like `assoc` for JS objects.\n */\ntaoensso.encore.oset \x3d (function taoensso$encore$oset(o,k,v){\nreturn taoensso.encore.goog$module$goog$object.set((((o \x3d\x3d null))?({}):o),cljs.core.name(k),v);\n});\nvar sentinel_50813 \x3d ({});\n/**\n * Experimental, subject to change without notice.\n * Like `assoc-in` for JS objects.\n */\ntaoensso.encore.oset_in \x3d (function taoensso$encore$oset_in(o,ks,v){\nvar o__$1 \x3d (((o \x3d\x3d null))?({}):o);\nvar b2__43681__auto__ \x3d cljs.core.seq(ks);\nif(b2__43681__auto__){\nvar ks__$1 \x3d b2__43681__auto__;\nvar o_next \x3d o__$1;\nvar ks_next \x3d ks__$1;\nwhile(true){\nvar k1 \x3d cljs.core.name(cljs.core.first(ks_next));\nvar o_next__$1 \x3d (function (){var o_next_STAR_ \x3d taoensso.encore.goog$module$goog$object.get(o_next,k1,sentinel_50813);\nif((o_next_STAR_ \x3d\x3d\x3d sentinel_50813)){\nvar new_obj \x3d ({});\ntaoensso.encore.goog$module$goog$object.set(o_next,k1,new_obj);\n\nreturn new_obj;\n} else {\nreturn o_next_STAR_;\n}\n})();\nvar b2__43681__auto____$1 \x3d cljs.core.next(ks_next);\nif(b2__43681__auto____$1){\nvar ks_next__$1 \x3d b2__43681__auto____$1;\nvar G__50814 \x3d o_next__$1;\nvar G__50815 \x3d ks_next__$1;\no_next \x3d G__50814;\nks_next \x3d G__50815;\ncontinue;\n} else {\ntaoensso.encore.goog$module$goog$object.set(o_next__$1,k1,v);\n\nreturn o__$1;\n}\nbreak;\n}\n} else {\nreturn o__$1;\n}\n});\n/**\n * Like `get` for JS objects.\n */\ntaoensso.encore.oget \x3d (function taoensso$encore$oget(var_args){\nvar G__49247 \x3d arguments.length;\nswitch (G__49247) {\ncase 1:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar b2__43681__auto__ \x3d taoensso.encore.js__QMARK_window;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar o \x3d b2__43681__auto__;\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,k){\nif(cljs.core.truth_(o)){\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k),null);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,k,not_found){\nif(cljs.core.truth_(o)){\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k),not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.oget.cljs$lang$maxFixedArity \x3d 3);\n\nvar sentinel_50817 \x3d ({});\n/**\n * Like `get-in` for JS objects.\n */\ntaoensso.encore.oget_in \x3d (function taoensso$encore$oget_in(var_args){\nvar G__49254 \x3d arguments.length;\nswitch (G__49254) {\ncase 1:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$1 \x3d (function (ks){\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3(taoensso.encore.js__QMARK_window,ks,null);\n}));\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,ks){\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3(o,ks,null);\n}));\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,ks,not_found){\nif(cljs.core.truth_(o)){\nvar o__$1 \x3d o;\nvar ks__$1 \x3d cljs.core.seq(ks);\nwhile(true){\nif(ks__$1){\nvar o__$2 \x3d taoensso.encore.goog$module$goog$object.get(o__$1,cljs.core.name(cljs.core.first(ks__$1)),sentinel_50817);\nif((o__$2 \x3d\x3d\x3d sentinel_50817)){\nreturn not_found;\n} else {\nvar G__50819 \x3d o__$2;\nvar G__50820 \x3d cljs.core.next(ks__$1);\no__$1 \x3d G__50819;\nks__$1 \x3d G__50820;\ncontinue;\n}\n} else {\nreturn o__$1;\n}\nbreak;\n}\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.oget_in.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `get` but returns val for first key that exists in map.\n * Useful for key aliases or fallbacks. See also `get*`.\n */\ntaoensso.encore.get1 \x3d (function taoensso$encore$get1(var_args){\nvar G__49256 \x3d arguments.length;\nswitch (G__49256) {\ncase 2:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,k){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,not_found){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k,not_found);\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k1,k2,not_found){\nvar b2__43681__auto__ \x3d (function (){var and__5023__auto__ \x3d m;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.find(m,k1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find(m,k2);\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn cljs.core.val(e);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k1,k2,k3,not_found){\nvar b2__43681__auto__ \x3d (function (){var and__5023__auto__ \x3d m;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.find(m,k1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.find(m,k2);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.find(m,k3);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn cljs.core.val(e);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.get1.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Conjoins each non-nil value.\n */\ntaoensso.encore.conj_some \x3d (function taoensso$encore$conj_some(var_args){\nvar G__49276 \x3d arguments.length;\nswitch (G__49276) {\ncase 0:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50823 \x3d arguments.length;\nvar i__5750__auto___50824 \x3d (0);\nwhile(true){\nif((i__5750__auto___50824 \x3c len__5749__auto___50823)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50824]));\n\nvar G__50825 \x3d (i__5750__auto___50824 + (1));\ni__5750__auto___50824 \x3d G__50825;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nif((x \x3d\x3d null)){\nreturn coll;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\n}\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_some,taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2(coll,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.conj_some.cljs$lang$applyTo \x3d (function (seq49272){\nvar G__49274 \x3d cljs.core.first(seq49272);\nvar seq49272__$1 \x3d cljs.core.next(seq49272);\nvar G__49275 \x3d cljs.core.first(seq49272__$1);\nvar seq49272__$2 \x3d cljs.core.next(seq49272__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49274,G__49275,seq49272__$2);\n}));\n\n(taoensso.encore.conj_some.cljs$lang$maxFixedArity \x3d (2));\n\n\n/**\n * Conjoins each truthy value.\n */\ntaoensso.encore.conj_when \x3d (function taoensso$encore$conj_when(var_args){\nvar G__49292 \x3d arguments.length;\nswitch (G__49292) {\ncase 0:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50827 \x3d arguments.length;\nvar i__5750__auto___50828 \x3d (0);\nwhile(true){\nif((i__5750__auto___50828 \x3c len__5749__auto___50827)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50828]));\n\nvar G__50829 \x3d (i__5750__auto___50828 + (1));\ni__5750__auto___50828 \x3d G__50829;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nif(cljs.core.truth_(x)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\n} else {\nreturn coll;\n}\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_when,taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2(coll,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.conj_when.cljs$lang$applyTo \x3d (function (seq49289){\nvar G__49290 \x3d cljs.core.first(seq49289);\nvar seq49289__$1 \x3d cljs.core.next(seq49289);\nvar G__49291 \x3d cljs.core.first(seq49289__$1);\nvar seq49289__$2 \x3d cljs.core.next(seq49289__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49290,G__49291,seq49289__$2);\n}));\n\n(taoensso.encore.conj_when.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Assocs each kv to given ?map iff its value is not nil.\n */\ntaoensso.encore.assoc_some \x3d (function taoensso$encore$assoc_some(var_args){\nvar G__49307 \x3d arguments.length;\nswitch (G__49307) {\ncase 3:\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50831 \x3d arguments.length;\nvar i__5750__auto___50832 \x3d (0);\nwhile(true){\nif((i__5750__auto___50832 \x3c len__5749__auto___50831)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50832]));\n\nvar G__50833 \x3d (i__5750__auto___50832 + (1));\ni__5750__auto___50832 \x3d G__50833;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_some,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_some,taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_some.cljs$lang$applyTo \x3d (function (seq49303){\nvar G__49304 \x3d cljs.core.first(seq49303);\nvar seq49303__$1 \x3d cljs.core.next(seq49303);\nvar G__49305 \x3d cljs.core.first(seq49303__$1);\nvar seq49303__$2 \x3d cljs.core.next(seq49303__$1);\nvar G__49306 \x3d cljs.core.first(seq49303__$2);\nvar seq49303__$3 \x3d cljs.core.next(seq49303__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49304,G__49305,G__49306,seq49303__$3);\n}));\n\n(taoensso.encore.assoc_some.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map iff its val is truthy.\n */\ntaoensso.encore.assoc_when \x3d (function taoensso$encore$assoc_when(var_args){\nvar G__49327 \x3d arguments.length;\nswitch (G__49327) {\ncase 3:\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50835 \x3d arguments.length;\nvar i__5750__auto___50836 \x3d (0);\nwhile(true){\nif((i__5750__auto___50836 \x3c len__5749__auto___50835)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50836]));\n\nvar G__50837 \x3d (i__5750__auto___50836 + (1));\ni__5750__auto___50836 \x3d G__50837;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_when,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_when,taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_when.cljs$lang$applyTo \x3d (function (seq49322){\nvar G__49323 \x3d cljs.core.first(seq49322);\nvar seq49322__$1 \x3d cljs.core.next(seq49322);\nvar G__49324 \x3d cljs.core.first(seq49322__$1);\nvar seq49322__$2 \x3d cljs.core.next(seq49322__$1);\nvar G__49325 \x3d cljs.core.first(seq49322__$2);\nvar seq49322__$3 \x3d cljs.core.next(seq49322__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49323,G__49324,G__49325,seq49322__$3);\n}));\n\n(taoensso.encore.assoc_when.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map iff its key doesn\x27t already exist.\n */\ntaoensso.encore.assoc_nx \x3d (function taoensso$encore$assoc_nx(var_args){\nvar G__49341 \x3d arguments.length;\nswitch (G__49341) {\ncase 3:\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50839 \x3d arguments.length;\nvar i__5750__auto___50840 \x3d (0);\nwhile(true){\nif((i__5750__auto___50840 \x3c len__5749__auto___50839)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50840]));\n\nvar G__50841 \x3d (i__5750__auto___50840 + (1));\ni__5750__auto___50840 \x3d G__50841;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.contains_QMARK_(m,k)){\nreturn m;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_nx,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_nx,taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_nx.cljs$lang$applyTo \x3d (function (seq49335){\nvar G__49336 \x3d cljs.core.first(seq49335);\nvar seq49335__$1 \x3d cljs.core.next(seq49335);\nvar G__49337 \x3d cljs.core.first(seq49335__$1);\nvar seq49335__$2 \x3d cljs.core.next(seq49335__$1);\nvar G__49338 \x3d cljs.core.first(seq49335__$2);\nvar seq49335__$3 \x3d cljs.core.next(seq49335__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49336,G__49337,G__49338,seq49335__$3);\n}));\n\n(taoensso.encore.assoc_nx.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map if its value is nil, otherwise dissocs it.\n */\ntaoensso.encore.reassoc_some \x3d (function taoensso$encore$reassoc_some(var_args){\nvar G__49358 \x3d arguments.length;\nswitch (G__49358) {\ncase 3:\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50843 \x3d arguments.length;\nvar i__5750__auto___50844 \x3d (0);\nwhile(true){\nif((i__5750__auto___50844 \x3c len__5749__auto___50843)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50844]));\n\nvar G__50845 \x3d (i__5750__auto___50844 + (1));\ni__5750__auto___50844 \x3d G__50845;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((v \x3d\x3d null)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.reassoc_some,m,m_kvs);\n}));\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.reassoc_some,taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.reassoc_some.cljs$lang$applyTo \x3d (function (seq49354){\nvar G__49355 \x3d cljs.core.first(seq49354);\nvar seq49354__$1 \x3d cljs.core.next(seq49354);\nvar G__49356 \x3d cljs.core.first(seq49354__$1);\nvar seq49354__$2 \x3d cljs.core.next(seq49354__$1);\nvar G__49357 \x3d cljs.core.first(seq49354__$2);\nvar seq49354__$3 \x3d cljs.core.next(seq49354__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49355,G__49356,G__49357,seq49354__$3);\n}));\n\n(taoensso.encore.reassoc_some.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map if its value is truthy, otherwise dissocs it.\n */\ntaoensso.encore.reassoc_when \x3d (function taoensso$encore$reassoc_when(var_args){\nvar G__49371 \x3d arguments.length;\nswitch (G__49371) {\ncase 3:\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50847 \x3d arguments.length;\nvar i__5750__auto___50848 \x3d (0);\nwhile(true){\nif((i__5750__auto___50848 \x3c len__5749__auto___50847)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50848]));\n\nvar G__50849 \x3d (i__5750__auto___50848 + (1));\ni__5750__auto___50848 \x3d G__50849;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}\n}));\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.reassoc_when,m,m_kvs);\n}));\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.reassoc_when,taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.reassoc_when.cljs$lang$applyTo \x3d (function (seq49367){\nvar G__49368 \x3d cljs.core.first(seq49367);\nvar seq49367__$1 \x3d cljs.core.next(seq49367);\nvar G__49369 \x3d cljs.core.first(seq49367__$1);\nvar seq49367__$2 \x3d cljs.core.next(seq49367__$1);\nvar G__49370 \x3d cljs.core.first(seq49367__$2);\nvar seq49367__$3 \x3d cljs.core.next(seq49367__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49368,G__49369,G__49370,seq49367__$3);\n}));\n\n(taoensso.encore.reassoc_when.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.vnext \x3d (function taoensso$encore$vnext(v){\nif((cljs.core.count(v) \x3e (1))){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1));\n} else {\nreturn null;\n}\n});\ntaoensso.encore.vrest \x3d (function taoensso$encore$vrest(v){\nif((cljs.core.count(v) \x3e (1))){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1));\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n});\ntaoensso.encore.vsplit_last \x3d (function taoensso$encore$vsplit_last(v){\nvar c \x3d cljs.core.count(v);\nif((c \x3e (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((c \x3e (1)))?cljs.core.pop(v):null),cljs.core.peek(v)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.vsplit_first \x3d (function taoensso$encore$vsplit_first(v){\nvar c \x3d cljs.core.count(v);\nif((c \x3e (0))){\nvar vec__49395 \x3d v;\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49395,(0),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v1,(((c \x3e (1)))?cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1)):null)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.not_empty_coll \x3d (function taoensso$encore$not_empty_coll(x){\nif(cljs.core.truth_(x)){\nif(cljs.core.coll_QMARK_(x)){\nreturn cljs.core.not_empty(x);\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Faster (f (vec (butlast xs)) (last x)).\n */\ntaoensso.encore.fsplit_last \x3d (function taoensso$encore$fsplit_last(xs,f){\nif(cljs.core.vector_QMARK_(xs)){\nvar vec__49408 \x3d taoensso.encore.vsplit_last(xs);\nvar vn \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49408,(0),null);\nvar vl \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49408,(1),null);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(vn,vl) : f.call(null,vn,vl));\n} else {\nvar butlast \x3d cljs.core.PersistentVector.EMPTY;\nvar xs__$1 \x3d xs;\nwhile(true){\nvar vec__49419 \x3d xs__$1;\nvar seq__49420 \x3d cljs.core.seq(vec__49419);\nvar first__49421 \x3d cljs.core.first(seq__49420);\nvar seq__49420__$1 \x3d cljs.core.next(seq__49420);\nvar x1 \x3d first__49421;\nvar xn \x3d seq__49420__$1;\nif(xn){\nvar G__50850 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(butlast,x1);\nvar G__50851 \x3d xn;\nbutlast \x3d G__50850;\nxs__$1 \x3d G__50851;\ncontinue;\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(butlast,x1) : f.call(null,butlast,x1));\n}\nbreak;\n}\n}\n});\ntaoensso.encore.takev \x3d (function taoensso$encore$takev(n,coll){\nif(cljs.core.vector_QMARK_(coll)){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(coll,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(0),n);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n} else {\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),coll);\n}\n});\ntaoensso.encore.distinct_elements_QMARK_ \x3d (function taoensso$encore$distinct_elements_QMARK_(x){\nreturn ((cljs.core.set_QMARK_(x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),cljs.core.count(taoensso.encore.ensure_set(x)))));\n});\n/**\n * (seq-kvs {:a :A}) \x3d\x3e (:a :A).\n */\ntaoensso.encore.seq_kvs \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce,cljs.core.concat);\n/**\n * Like `apply` but calls `seq-kvs` on final arg.\n */\ntaoensso.encore.mapply \x3d (function taoensso$encore$mapply(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50852 \x3d arguments.length;\nvar i__5750__auto___50853 \x3d (0);\nwhile(true){\nif((i__5750__auto___50853 \x3c len__5749__auto___50852)){\nargs__5755__auto__.push((arguments[i__5750__auto___50853]));\n\nvar G__50854 \x3d (i__5750__auto___50853 + (1));\ni__5750__auto___50853 \x3d G__50854;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.mapply.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.mapply.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,taoensso.encore.fsplit_last(args,(function (xs,lx){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(xs,taoensso.encore.seq_kvs(lx));\n})));\n}));\n\n(taoensso.encore.mapply.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.mapply.cljs$lang$applyTo \x3d (function (seq49429){\nvar G__49430 \x3d cljs.core.first(seq49429);\nvar seq49429__$1 \x3d cljs.core.next(seq49429);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49430,seq49429__$1);\n}));\n\n/**\n * Like `into` but supports multiple \x22from\x22s.\n */\ntaoensso.encore.into_all \x3d (function taoensso$encore$into_all(var_args){\nvar G__49440 \x3d arguments.length;\nswitch (G__49440) {\ncase 2:\nreturn taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50856 \x3d arguments.length;\nvar i__5750__auto___50857 \x3d (0);\nwhile(true){\nif((i__5750__auto___50857 \x3c len__5749__auto___50856)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50857]));\n\nvar G__50858 \x3d (i__5750__auto___50857 + (1));\ni__5750__auto___50857 \x3d G__50858;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (to,from){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(to,from);\n}));\n\n(taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (to,from,more){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,acc,in$);\n}),cljs.core.transient$(to),cljs.core.cons(from,more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.into_all.cljs$lang$applyTo \x3d (function (seq49437){\nvar G__49438 \x3d cljs.core.first(seq49437);\nvar seq49437__$1 \x3d cljs.core.next(seq49437);\nvar G__49439 \x3d cljs.core.first(seq49437__$1);\nvar seq49437__$2 \x3d cljs.core.next(seq49437__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49438,G__49439,seq49437__$2);\n}));\n\n(taoensso.encore.into_all.cljs$lang$maxFixedArity \x3d (2));\n\ntaoensso.encore.min_transient_card \x3d (11);\n/**\n * Like `repeatedly` but faster and `conj`s items into given collection.\n */\ntaoensso.encore.repeatedly_into \x3d (function taoensso$encore$repeatedly_into(coll,n,f){\nif((((n \x3e\x3d (11)))?taoensso.encore.editable_QMARK_(coll):false)){\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,_){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}),cljs.core.transient$(coll),n));\n} else {\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}),coll,n);\n}\n});\ntaoensso.encore.update_BANG_ \x3d (function taoensso$encore$update_BANG_(m,k,f){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__49449 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__49449) : f.call(null,G__49449));\n})());\n});\n/**\n * Like `into` but assumes `to!` is a transient, and doesn\x27t call\n * `persist!` when done. Useful as a performance optimization in some cases.\n */\ntaoensso.encore.into_BANG_ \x3d (function taoensso$encore$into_BANG_(var_args){\nvar G__49452 \x3d arguments.length;\nswitch (G__49452) {\ncase 1:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (to_BANG_){\nreturn to_BANG_;\n}));\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (to_BANG_,from){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,to_BANG_,from);\n}));\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (to_BANG_,xform,from){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.conj_BANG_,to_BANG_,from);\n}));\n\n(taoensso.encore.into_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a stateful transducer like (core/distinct) that supports an optional\n * key function. Retains only items with distinct (keyfn \x3citem\x3e).\n */\ntaoensso.encore.xdistinct \x3d (function taoensso$encore$xdistinct(var_args){\nvar G__49461 \x3d arguments.length;\nswitch (G__49461) {\ncase 0:\nreturn taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$1 \x3d (function (keyfn){\nreturn (function (rf){\nvar seen_ \x3d cljs.core.volatile_BANG_(cljs.core.transient$(cljs.core.PersistentHashSet.EMPTY));\nreturn (function() {\nvar G__50862 \x3d null;\nvar G__50862__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n});\nvar G__50862__1 \x3d (function (acc){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n});\nvar G__50862__2 \x3d (function (acc,in$){\nvar k \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$));\nif(cljs.core.contains_QMARK_(cljs.core.deref(seen_),k)){\nreturn acc;\n} else {\nseen_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(seen_.cljs$core$IDeref$_deref$arity$1(null),k));\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}\n});\nG__50862 \x3d function(acc,in$){\nswitch(arguments.length){\ncase 0:\nreturn G__50862__0.call(this);\ncase 1:\nreturn G__50862__1.call(this,acc);\ncase 2:\nreturn G__50862__2.call(this,acc,in$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__50862.cljs$core$IFn$_invoke$arity$0 \x3d G__50862__0;\nG__50862.cljs$core$IFn$_invoke$arity$1 \x3d G__50862__1;\nG__50862.cljs$core$IFn$_invoke$arity$2 \x3d G__50862__2;\nreturn G__50862;\n})()\n});\n}));\n\n(taoensso.encore.xdistinct.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns given ?map with keys and vals inverted, dropping non-unique vals!\n */\ntaoensso.encore.invert_map \x3d (function taoensso$encore$invert_map(m){\nif(cljs.core.truth_(m)){\nif((cljs.core.count(m) \x3e (11))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Like `invert-map` but throws on non-unique vals.\n */\ntaoensso.encore.invert_map_BANG_ \x3d (function taoensso$encore$invert_map_BANG_(m){\nvar b2__43681__auto__ \x3d taoensso.encore.invert_map(m);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar im \x3d b2__43681__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(im),cljs.core.count(m))){\nreturn im;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1690,7], null),\x22[encore/invert-map!] Non-unique map vals\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),m,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(m)], null)], null),null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map with (key-fn \x3ckey\x3e) keys.\n */\ntaoensso.encore.map_keys \x3d (function taoensso$encore$map_keys(key_fn,m){\nif(cljs.core.truth_(m)){\nif((cljs.core.count(m) \x3e (11))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(k) : key_fn.call(null,k)),v);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(k) : key_fn.call(null,k)),v);\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map with (val-fn \x3cval\x3e) vals.\n */\ntaoensso.encore.map_vals \x3d (function taoensso$encore$map_vals(val_fn,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,k,(val_fn.cljs$core$IFn$_invoke$arity$1 ? val_fn.cljs$core$IFn$_invoke$arity$1(v) : val_fn.call(null,v)));\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,k,(val_fn.cljs$core$IFn$_invoke$arity$1 ? val_fn.cljs$core$IFn$_invoke$arity$1(v) : val_fn.call(null,v)));\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, retaining only keys for which (key-pred \x3ckey\x3e) is truthy.\n */\ntaoensso.encore.filter_keys \x3d (function taoensso$encore$filter_keys(key_pred,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,_){\nif(cljs.core.truth_((key_pred.cljs$core$IFn$_invoke$arity$1 ? key_pred.cljs$core$IFn$_invoke$arity$1(k) : key_pred.call(null,k)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,_){\nif(cljs.core.truth_((key_pred.cljs$core$IFn$_invoke$arity$1 ? key_pred.cljs$core$IFn$_invoke$arity$1(k) : key_pred.call(null,k)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, retaining only keys for which (val-pred \x3cval\x3e) is truthy.\n */\ntaoensso.encore.filter_vals \x3d (function taoensso$encore$filter_vals(val_pred,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((val_pred.cljs$core$IFn$_invoke$arity$1 ? val_pred.cljs$core$IFn$_invoke$arity$1(v) : val_pred.call(null,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((val_pred.cljs$core$IFn$_invoke$arity$1 ? val_pred.cljs$core$IFn$_invoke$arity$1(v) : val_pred.call(null,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, removing keys for which (key-pred \x3ckey\x3e) is truthy.\n */\ntaoensso.encore.remove_keys \x3d (function taoensso$encore$remove_keys(key_pred,m){\nreturn taoensso.encore.filter_keys(cljs.core.complement(key_pred),m);\n});\n/**\n * Returns given ?map, removing keys for which (val-pred \x3cval\x3e) is truthy.\n */\ntaoensso.encore.remove_vals \x3d (function taoensso$encore$remove_vals(val_pred,m){\nreturn taoensso.encore.filter_vals(cljs.core.complement(val_pred),m);\n});\n/**\n * Returns a map like the one given, replacing keys using\n * given {\x3cold-new\x3e \x3cnew-key\x3e} replacements. O(min(n_replacements, n_m)).\n */\ntaoensso.encore.rename_keys \x3d (function taoensso$encore$rename_keys(replacements,m){\nif(cljs.core.empty_QMARK_(m)){\nreturn m;\n} else {\nif(cljs.core.empty_QMARK_(replacements)){\nreturn m;\n} else {\nif((cljs.core.count(m) \x3e cljs.core.count(replacements))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,new_k){\nvar b2__43681__auto__ \x3d cljs.core.find(m,old_k);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),new_k,cljs.core.val(e));\n} else {\nreturn acc;\n}\n}),cljs.core.transient$(m),replacements));\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,v){\nvar b2__43681__auto__ \x3d cljs.core.find(replacements,old_k);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),cljs.core.val(e),v);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$(m),m));\n}\n}\n}\n});\n/**\n * Returns {(f x) x} ?map for xs in `coll`.\n */\ntaoensso.encore.keys_by \x3d (function taoensso$encore$keys_by(f,coll){\nif(cljs.core.empty_QMARK_(coll)){\nreturn null;\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,x){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x)),x);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),coll));\n}\n});\ntaoensso.encore.ks_nnil_QMARK_ \x3d (function taoensso$encore$ks_nnil_QMARK_(ks,m){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49498_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__49498_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.encore.ks_EQ_ \x3d (function taoensso$encore$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49502_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__49502_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.ks_GT__EQ_ \x3d (function taoensso$encore$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49508_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__49508_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.ks_LT__EQ_ \x3d (function taoensso$encore$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.encore.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Like `core/update-in` but:.\n * - Empty ks will return (f m), not act like [nil] ks.\n * - Adds support for `not-found`.\n * - Adds support for special return vals: `:update/dissoc`, `:update/abort`.\n */\ntaoensso.encore.update_in \x3d (function taoensso$encore$update_in(var_args){\nvar G__49521 \x3d arguments.length;\nswitch (G__49521) {\ncase 3:\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,ks,f){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,f);\n}));\n\n(taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,ks,not_found,f){\nif(cljs.core.empty_QMARK_(ks)){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(m) : f.call(null,m));\n} else {\nvar old \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m,ks,not_found);\nvar new$ \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(old) : f.call(null,old));\nvar G__49534 \x3d new$;\nvar G__49534__$1 \x3d (((G__49534 instanceof cljs.core.Keyword))?G__49534.fqn:null);\nswitch (G__49534__$1) {\ncase \x22update/abort\x22:\ncase \x22swap/abort\x22:\nreturn m;\n\nbreak;\ncase \x22update/dissoc\x22:\ncase \x22swap/dissoc\x22:\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks__$1,null,(function (v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(v,lk);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\nbreak;\ndefault:\nreturn cljs.core.assoc_in(m,ks,new$);\n\n}\n}\n}));\n\n(taoensso.encore.update_in.cljs$lang$maxFixedArity \x3d 4);\n\ntaoensso.encore.contains_in_QMARK_ \x3d (function taoensso$encore$contains_in_QMARK_(var_args){\nvar G__49541 \x3d arguments.length;\nswitch (G__49541) {\ncase 3:\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,ks,k){\nreturn cljs.core.contains_QMARK_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(coll,ks),k);\n}));\n\n(taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,ks){\nif(cljs.core.empty_QMARK_(ks)){\nreturn false;\n} else {\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3(coll,ks__$1,lk);\n}));\n}\n}));\n\n(taoensso.encore.contains_in_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.dissoc_in \x3d (function taoensso$encore$dissoc_in(var_args){\nvar G__49557 \x3d arguments.length;\nswitch (G__49557) {\ncase 3:\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50879 \x3d arguments.length;\nvar i__5750__auto___50880 \x3d (0);\nwhile(true){\nif((i__5750__auto___50880 \x3c len__5749__auto___50879)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50880]));\n\nvar G__50881 \x3d (i__5750__auto___50880 + (1));\ni__5750__auto___50880 \x3d G__50881;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,ks,dissoc_k){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,(function (m__$1){\nif(cljs.core.truth_(m__$1)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,dissoc_k);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,ks,dissoc_k,more){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,(function (m__$1){\nif(cljs.core.truth_(m__$1)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,dissoc_k),more);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\n/** @this {Function} */\n(taoensso.encore.dissoc_in.cljs$lang$applyTo \x3d (function (seq49551){\nvar G__49552 \x3d cljs.core.first(seq49551);\nvar seq49551__$1 \x3d cljs.core.next(seq49551);\nvar G__49555 \x3d cljs.core.first(seq49551__$1);\nvar seq49551__$2 \x3d cljs.core.next(seq49551__$1);\nvar G__49556 \x3d cljs.core.first(seq49551__$2);\nvar seq49551__$3 \x3d cljs.core.next(seq49551__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49552,G__49555,G__49556,seq49551__$3);\n}));\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,ks){\nif(cljs.core.empty_QMARK_(m)){\nreturn m;\n} else {\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3(m,ks__$1,lk);\n}));\n}\n}));\n\n(taoensso.encore.dissoc_in.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.node_paths \x3d (function taoensso$encore$node_paths(var_args){\nvar G__49581 \x3d arguments.length;\nswitch (G__49581) {\ncase 1:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$1 \x3d (function (m){\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(cljs.core.associative_QMARK_,m,null);\n}));\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$2 \x3d (function (node_pred,m){\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(node_pred,m,null);\n}));\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3 \x3d (function (node_pred,m,basis){\nvar basis__$1 \x3d (function (){var or__5025__auto__ \x3d basis;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})();\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,v){\nif(cljs.core.truth_((node_pred.cljs$core$IFn$_invoke$arity$1 ? node_pred.cljs$core$IFn$_invoke$arity$1(v) : node_pred.call(null,v)))){\nvar paths_from_basis \x3d taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(node_pred,v,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(basis__$1,k));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,in$){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc__$1,in$);\n}),acc,paths_from_basis);\n} else {\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(basis__$1,k,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v], 0)));\n}\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),m));\n}));\n\n(taoensso.encore.node_paths.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `interleave` but includes all items (i.e. stops when the longest\n * rather than shortest coll has been consumed).\n */\ntaoensso.encore.interleave_all \x3d (function taoensso$encore$interleave_all(var_args){\nvar G__49601 \x3d arguments.length;\nswitch (G__49601) {\ncase 0:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50885 \x3d arguments.length;\nvar i__5750__auto___50886 \x3d (0);\nwhile(true){\nif((i__5750__auto___50886 \x3c len__5749__auto___50885)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50886]));\n\nvar G__50887 \x3d (i__5750__auto___50886 + (1));\ni__5750__auto___50886 \x3d G__50887;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.List.EMPTY;\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (c1){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn c1;\n}),null,null));\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (c1,c2){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nif(((s1) \x26\x26 (s2))){\nreturn cljs.core.cons(cljs.core.first(s1),cljs.core.cons(cljs.core.first(s2),taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(s1),cljs.core.rest(s2))));\n} else {\nif(s1){\nreturn s1;\n} else {\nif(s2){\nreturn s2;\n} else {\nreturn null;\n}\n}\n}\n}),null,null));\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (c1,c2,colls){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar ss \x3d cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(colls,c2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c1], 0))));\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,ss),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(taoensso.encore.interleave_all,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,ss)));\n}),null,null));\n}));\n\n/** @this {Function} */\n(taoensso.encore.interleave_all.cljs$lang$applyTo \x3d (function (seq49596){\nvar G__49597 \x3d cljs.core.first(seq49596);\nvar seq49596__$1 \x3d cljs.core.next(seq49596);\nvar G__49598 \x3d cljs.core.first(seq49596__$1);\nvar seq49596__$2 \x3d cljs.core.next(seq49596__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49597,G__49598,seq49596__$2);\n}));\n\n(taoensso.encore.interleave_all.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Like `interleave`, but:\n * - Returns a vector rather than lazy seq (\x3d\x3e greedy).\n * - Includes all items (i.e. stops when the longest rather than\n * shortest coll has been consumed).\n * \n * Single-arity version takes a coll of colls.\n */\ntaoensso.encore.vinterleave_all \x3d (function taoensso$encore$vinterleave_all(var_args){\nvar G__49615 \x3d arguments.length;\nswitch (G__49615) {\ncase 1:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50889 \x3d arguments.length;\nvar i__5750__auto___50890 \x3d (0);\nwhile(true){\nif((i__5750__auto___50890 \x3c len__5749__auto___50889)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50890]));\n\nvar G__50891 \x3d (i__5750__auto___50890 + (1));\ni__5750__auto___50890 \x3d G__50891;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (colls){\nif(cljs.core.empty_QMARK_(colls)){\nreturn cljs.core.PersistentVector.EMPTY;\n} else {\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_interleave_all(cljs.core.conj_BANG_,cljs.core.transient$(cljs.core.PersistentVector.EMPTY),colls));\n}\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (c1,c2){\nvar v \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nwhile(true){\nif(((s1) \x26\x26 (s2))){\nvar G__50892 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,cljs.core.first(s1)),cljs.core.first(s2));\nvar G__50893 \x3d cljs.core.next(s1);\nvar G__50894 \x3d cljs.core.next(s2);\nv \x3d G__50892;\ns1 \x3d G__50893;\ns2 \x3d G__50894;\ncontinue;\n} else {\nif(s1){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,v,s1));\n} else {\nif(s2){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,v,s2));\n} else {\nreturn cljs.core.persistent_BANG_(v);\n}\n}\n}\nbreak;\n}\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$3 \x3d (function (c1,c2,c3){\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null));\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (c1,c2,c3,colls){\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null),colls));\n}));\n\n/** @this {Function} */\n(taoensso.encore.vinterleave_all.cljs$lang$applyTo \x3d (function (seq49611){\nvar G__49612 \x3d cljs.core.first(seq49611);\nvar seq49611__$1 \x3d cljs.core.next(seq49611);\nvar G__49613 \x3d cljs.core.first(seq49611__$1);\nvar seq49611__$2 \x3d cljs.core.next(seq49611__$1);\nvar G__49614 \x3d cljs.core.first(seq49611__$2);\nvar seq49611__$3 \x3d cljs.core.next(seq49611__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49612,G__49613,G__49614,seq49611__$3);\n}));\n\n(taoensso.encore.vinterleave_all.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.p_BANG_ \x3d (function taoensso$encore$p_BANG_(m){\nif(taoensso.encore.transient_QMARK_(m)){\nreturn cljs.core.persistent_BANG_(m);\n} else {\nreturn m;\n}\n});\nvar nx_50895 \x3d ({});\nvar min_transient_card_50896 \x3d (64);\nvar dissoc_QMARK__50897 \x3d (function (v){\nvar G__49629 \x3d v;\nvar G__49629__$1 \x3d (((G__49629 instanceof cljs.core.Keyword))?G__49629.fqn:null);\nswitch (G__49629__$1) {\ncase \x22merge/dissoc\x22:\ncase \x22swap/dissoc\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n});\nvar dissoc_STAR__50898 \x3d (function (m,k){\nif(taoensso.encore.transient_QMARK_(m)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}\n});\n/**\n * Private, don\x27t use. Flexible low-level merge util.\n * Optimized for reasonable worst-case performance.\n */\ntaoensso.encore.merge_with_STAR_ \x3d (function taoensso$encore$merge_with_STAR_(var_args){\nvar G__49632 \x3d arguments.length;\nswitch (G__49632) {\ncase 3:\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (nest_QMARK_,f,maps){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(taoensso.encore.merge_with_STAR_,nest_QMARK_,f),null,maps);\n}));\n\n(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (nest_QMARK_,f,m1,m2){\nvar n2 \x3d cljs.core.count(m2);\nif((n2 \x3d\x3d\x3d (0))){\nvar or__5025__auto__ \x3d m1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(taoensso.encore.can_meta_QMARK_(m2)){\nreturn cljs.core.with_meta(m2,null);\n} else {\nreturn null;\n}\n}\n} else {\nvar b2__43681__auto__ \x3d cljs.core.find(m2,new cljs.core.Keyword(\x22merge\x22,\x22replace?\x22,\x22merge/replace?\x22,-914523787));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nvar m2__$1 \x3d dissoc_STAR__50898(m2,new cljs.core.Keyword(\x22merge\x22,\x22replace?\x22,\x22merge/replace?\x22,-914523787));\nif(cljs.core.truth_(cljs.core.val(e))){\nreturn m2__$1;\n} else {\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(nest_QMARK_,f,m1,m2__$1);\n}\n} else {\nvar n1 \x3d cljs.core.count(m1);\nif((n1 \x3e\x3d n2)){\nvar m1_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m1))?m1:(((n1 \x3e\x3d min_transient_card_50896))?cljs.core.transient$(m1):m1));\nvar assoc_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m1_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc);\nreturn cljs.core.reduce_kv((function (m1_STAR___$1,k2,v2){\nvar v1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m1,k2,nx_50895);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d nest_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.map_QMARK_(v1)) \x26\x26 (cljs.core.map_QMARK_(v2)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__49642 \x3d m1_STAR___$1;\nvar G__49643 \x3d k2;\nvar G__49644 \x3d taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2));\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__49642,G__49643,G__49644) : assoc_STAR_.call(null,G__49642,G__49643,G__49644));\n} else {\nif((v1 \x3d\x3d\x3d nx_50895)){\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v2) : assoc_STAR_.call(null,m1_STAR___$1,k2,v2));\n} else {\nif(cljs.core.truth_(dissoc_QMARK__50897(v2))){\nreturn dissoc_STAR__50898(m1_STAR___$1,k2);\n} else {\nif(cljs.core.truth_(f)){\nvar v3 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2));\nif(cljs.core.truth_(dissoc_QMARK__50897(v3))){\nreturn dissoc_STAR__50898(m1_STAR___$1,k2);\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v3) : assoc_STAR_.call(null,m1_STAR___$1,k2,v3));\n}\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v2) : assoc_STAR_.call(null,m1_STAR___$1,k2,v2));\n}\n}\n}\n}\n}),m1_STAR_,taoensso.encore.p_BANG_(m2));\n} else {\nvar m2_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m2))?m2:(function (){var m2__$1 \x3d cljs.core.with_meta(m2,cljs.core.meta(m1));\nif((n2 \x3e\x3d min_transient_card_50896)){\nreturn cljs.core.transient$(m2__$1);\n} else {\nreturn m2__$1;\n}\n})());\nvar assoc_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m2_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc);\nreturn cljs.core.reduce_kv((function (m2_STAR___$1,k1,v1){\nvar v2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m2,k1,nx_50895);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d nest_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.map_QMARK_(v1)) \x26\x26 (cljs.core.map_QMARK_(v2)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__49650 \x3d m2_STAR___$1;\nvar G__49651 \x3d k1;\nvar G__49652 \x3d taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2));\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__49650,G__49651,G__49652) : assoc_STAR_.call(null,G__49650,G__49651,G__49652));\n} else {\nif((v2 \x3d\x3d\x3d nx_50895)){\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v1) : assoc_STAR_.call(null,m2_STAR___$1,k1,v1));\n} else {\nif(cljs.core.truth_(dissoc_QMARK__50897(v2))){\nreturn dissoc_STAR__50898(m2_STAR___$1,k1);\n} else {\nif(cljs.core.truth_(f)){\nvar v3 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2));\nif(cljs.core.truth_(dissoc_QMARK__50897(v3))){\nreturn dissoc_STAR__50898(m2_STAR___$1,k1);\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v3) : assoc_STAR_.call(null,m2_STAR___$1,k1,v3));\n}\n} else {\nreturn m2_STAR___$1;\n}\n}\n}\n}\n}),m2_STAR_,taoensso.encore.p_BANG_(m1));\n}\n}\n}\n}));\n\n(taoensso.encore.merge_with_STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Like `core/merge` but:\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge \x3d (function taoensso$encore$merge(var_args){\nvar G__49678 \x3d arguments.length;\nswitch (G__49678) {\ncase 0:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50908 \x3d arguments.length;\nvar i__5750__auto___50909 \x3d (0);\nwhile(true){\nif((i__5750__auto___50909 \x3c len__5749__auto___50908)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50909]));\n\nvar G__50910 \x3d (i__5750__auto___50909 + (1));\ni__5750__auto___50909 \x3d G__50910;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2));\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2),m3));\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,null,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge.cljs$lang$applyTo \x3d (function (seq49672){\nvar G__49673 \x3d cljs.core.first(seq49672);\nvar seq49672__$1 \x3d cljs.core.next(seq49672);\nvar G__49675 \x3d cljs.core.first(seq49672__$1);\nvar seq49672__$2 \x3d cljs.core.next(seq49672__$1);\nvar G__49676 \x3d cljs.core.first(seq49672__$2);\nvar seq49672__$3 \x3d cljs.core.next(seq49672__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49673,G__49675,G__49676,seq49672__$3);\n}));\n\n(taoensso.encore.merge.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Like `core/merge` but:\n * - Recursively merges nested maps.\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.nested_merge \x3d (function taoensso$encore$nested_merge(var_args){\nvar G__49703 \x3d arguments.length;\nswitch (G__49703) {\ncase 0:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50914 \x3d arguments.length;\nvar i__5750__auto___50915 \x3d (0);\nwhile(true){\nif((i__5750__auto___50915 \x3c len__5749__auto___50914)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50915]));\n\nvar G__50916 \x3d (i__5750__auto___50915 + (1));\ni__5750__auto___50915 \x3d G__50916;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2));\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2),m3));\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(true,null,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.nested_merge.cljs$lang$applyTo \x3d (function (seq49698){\nvar G__49700 \x3d cljs.core.first(seq49698);\nvar seq49698__$1 \x3d cljs.core.next(seq49698);\nvar G__49701 \x3d cljs.core.first(seq49698__$1);\nvar seq49698__$2 \x3d cljs.core.next(seq49698__$1);\nvar G__49702 \x3d cljs.core.first(seq49698__$2);\nvar seq49698__$3 \x3d cljs.core.next(seq49698__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49700,G__49701,G__49702,seq49698__$3);\n}));\n\n(taoensso.encore.nested_merge.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Like `core/merge-with` but:\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge_with \x3d (function taoensso$encore$merge_with(var_args){\nvar G__49735 \x3d arguments.length;\nswitch (G__49735) {\ncase 1:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50918 \x3d arguments.length;\nvar i__5750__auto___50919 \x3d (0);\nwhile(true){\nif((i__5750__auto___50919 \x3c len__5749__auto___50918)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50919]));\n\nvar G__50920 \x3d (i__5750__auto___50919 + (1));\ni__5750__auto___50919 \x3d G__50920;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn null;\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2));\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2),m3));\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,f,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge_with.cljs$lang$applyTo \x3d (function (seq49728){\nvar G__49729 \x3d cljs.core.first(seq49728);\nvar seq49728__$1 \x3d cljs.core.next(seq49728);\nvar G__49730 \x3d cljs.core.first(seq49728__$1);\nvar seq49728__$2 \x3d cljs.core.next(seq49728__$1);\nvar G__49731 \x3d cljs.core.first(seq49728__$2);\nvar seq49728__$3 \x3d cljs.core.next(seq49728__$2);\nvar G__49732 \x3d cljs.core.first(seq49728__$3);\nvar seq49728__$4 \x3d cljs.core.next(seq49728__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49729,G__49730,G__49731,G__49732,seq49728__$4);\n}));\n\n(taoensso.encore.merge_with.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Like `core/merge-with` but:\n * - Recursively merges nested maps.\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.nested_merge_with \x3d (function taoensso$encore$nested_merge_with(var_args){\nvar G__49757 \x3d arguments.length;\nswitch (G__49757) {\ncase 1:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50922 \x3d arguments.length;\nvar i__5750__auto___50923 \x3d (0);\nwhile(true){\nif((i__5750__auto___50923 \x3c len__5749__auto___50922)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50923]));\n\nvar G__50924 \x3d (i__5750__auto___50923 + (1));\ni__5750__auto___50923 \x3d G__50924;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn null;\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2));\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2),m3));\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(true,f,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.nested_merge_with.cljs$lang$applyTo \x3d (function (seq49751){\nvar G__49752 \x3d cljs.core.first(seq49751);\nvar seq49751__$1 \x3d cljs.core.next(seq49751);\nvar G__49753 \x3d cljs.core.first(seq49751__$1);\nvar seq49751__$2 \x3d cljs.core.next(seq49751__$1);\nvar G__49754 \x3d cljs.core.first(seq49751__$2);\nvar seq49751__$3 \x3d cljs.core.next(seq49751__$2);\nvar G__49755 \x3d cljs.core.first(seq49751__$3);\nvar seq49751__$4 \x3d cljs.core.next(seq49751__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49752,G__49753,G__49754,G__49755,seq49751__$4);\n}));\n\n(taoensso.encore.nested_merge_with.cljs$lang$maxFixedArity \x3d (4));\n\nvar mf_50925 \x3d (function (x,y){\nreturn x;\n});\n/**\n * Like `core/merge` but:\n * - Preserves existing values, e.g. (merge-nx \x3cuser-opts\x3e \x3cdefaults\x3e).\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge_nx \x3d (function taoensso$encore$merge_nx(var_args){\nvar G__49783 \x3d arguments.length;\nswitch (G__49783) {\ncase 0:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50927 \x3d arguments.length;\nvar i__5750__auto___50928 \x3d (0);\nwhile(true){\nif((i__5750__auto___50928 \x3c len__5749__auto___50927)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50928]));\n\nvar G__50929 \x3d (i__5750__auto___50928 + (1));\ni__5750__auto___50928 \x3d G__50929;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2));\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2),m3));\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,mf_50925,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_50925,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge_nx.cljs$lang$applyTo \x3d (function (seq49779){\nvar G__49780 \x3d cljs.core.first(seq49779);\nvar seq49779__$1 \x3d cljs.core.next(seq49779);\nvar G__49781 \x3d cljs.core.first(seq49779__$1);\nvar seq49779__$2 \x3d cljs.core.next(seq49779__$1);\nvar G__49782 \x3d cljs.core.first(seq49779__$2);\nvar seq49779__$3 \x3d cljs.core.next(seq49779__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49780,G__49781,G__49782,seq49779__$3);\n}));\n\n(taoensso.encore.merge_nx.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.encore.submap_QMARK_ \x3d taoensso.truss.submap_QMARK_;\n/**\n * Experimental, subject to change without notice.\n * Returns true iff `sub_i` is a (possibly nested) submap of `m_i`.\n * Uses `submap?`.\n */\ntaoensso.encore.submaps_QMARK_ \x3d (function taoensso$encore$submaps_QMARK_(maps,subs){\nif((cljs.core.count(subs) \x3e cljs.core.count(maps))){\nreturn false;\n} else {\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5((function (acc,m,sub){\nvar or__5025__auto__ \x3d (taoensso.encore.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.encore.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(m,sub) : taoensso.encore.submap_QMARK_.call(null,m,sub));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,maps,subs,null);\n}\n});\n/**\n * Like `select-keys` but supports nested key spec:\n * \n * (select-nested-keys\n * {:a :A :b :B :c {:c1 :C1 :c2 :C2} :d :D} ; `src-map`\n * [:a {:c [:c1], :d [:d1 :d2]}]) ; `key-spec`\n * \n * \x3d\x3e {:a :A, :c {:c1 :C1}, :d :D}\n * \n * Note that as with the `{:d [:d1 :d2]}` spec in the example above,\n * if spec expects a nested map but the actual value is not a map,\n * the actual value will be included in output as-is.\n * \n * Has the same behaviour as `select-keys` when `key-spec` is a\n * simple vector of keys.\n */\ntaoensso.encore.select_nested_keys \x3d (function taoensso$encore$select_nested_keys(src_map,key_spec){\nif(((cljs.core.empty_QMARK_(src_map)) || (cljs.core.empty_QMARK_(key_spec)))){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function taoensso$encore$select_nested_keys_$_rf(acc,spec_in){\nif(cljs.core.map_QMARK_(spec_in)){\nreturn cljs.core.reduce_kv((function (acc__$1,k,nested_spec_in){\nif(cljs.core.contains_QMARK_(src_map,k)){\nvar src_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(src_map,k);\nif(cljs.core.map_QMARK_(src_val)){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc__$1,k,(taoensso.encore.select_nested_keys.cljs$core$IFn$_invoke$arity$2 ? taoensso.encore.select_nested_keys.cljs$core$IFn$_invoke$arity$2(src_val,nested_spec_in) : taoensso.encore.select_nested_keys.call(null,src_val,nested_spec_in)));\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc__$1,k,src_val);\n}\n} else {\nreturn acc__$1;\n}\n}),acc,spec_in);\n} else {\nvar k \x3d spec_in;\nif(cljs.core.contains_QMARK_(src_map,k)){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,k,cljs.core.get.cljs$core$IFn$_invoke$arity$2(src_map,k));\n} else {\nreturn acc;\n}\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),key_spec));\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.explode_keyword \x3d (function taoensso$encore$explode_keyword(k){\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(k),/[\\.\\/]/);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.merge_keywords \x3d (function taoensso$encore$merge_keywords(var_args){\nvar G__49817 \x3d arguments.length;\nswitch (G__49817) {\ncase 1:\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$1 \x3d (function (ks){\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2(ks,false);\n}));\n\n(taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2 \x3d (function (ks,omit_slash_QMARK_){\nif(cljs.core.seq(ks)){\nvar parts \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nif((in$ \x3d\x3d null)){\nreturn acc;\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,acc,taoensso.encore.explode_keyword(in$));\n}\n}),cljs.core.PersistentVector.EMPTY,ks);\nif(cljs.core.seq(parts)){\nif(cljs.core.truth_(omit_slash_QMARK_)){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,parts));\n} else {\nvar ppop \x3d cljs.core.pop(parts);\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(((cljs.core.seq(ppop))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,ppop):null),cljs.core.peek(parts));\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.merge_keywords.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.approx_EQ__EQ_ \x3d (function taoensso$encore$approx_EQ__EQ_(var_args){\nvar G__49827 \x3d arguments.length;\nswitch (G__49827) {\ncase 2:\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (Math.abs((x - y)) \x3c 0.001);\n}));\n\n(taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3 \x3d (function (signf,x,y){\nreturn (Math.abs((x - y)) \x3c signf);\n}));\n\n(taoensso.encore.approx_EQ__EQ_.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.clamp \x3d (function taoensso$encore$clamp(nmin,nmax,n){\nif((n \x3c nmin)){\nreturn nmin;\n} else {\nif((n \x3e nmax)){\nreturn nmax;\n} else {\nreturn n;\n}\n}\n});\ntaoensso.encore.clamp_int \x3d (function taoensso$encore$clamp_int(nmin,nmax,n){\nvar nmin__$1 \x3d cljs.core.long$(nmin);\nvar nmax__$1 \x3d cljs.core.long$(nmax);\nvar n__$1 \x3d cljs.core.long$(n);\nif((n__$1 \x3c nmin__$1)){\nreturn nmin__$1;\n} else {\nif((n__$1 \x3e nmax__$1)){\nreturn nmax__$1;\n} else {\nreturn n__$1;\n}\n}\n});\ntaoensso.encore.clamp_float \x3d (function taoensso$encore$clamp_float(nmin,nmax,n){\nvar nmin__$1 \x3d nmin;\nvar nmax__$1 \x3d nmax;\nvar n__$1 \x3d n;\nif((n__$1 \x3c nmin__$1)){\nreturn nmin__$1;\n} else {\nif((n__$1 \x3e nmax__$1)){\nreturn nmax__$1;\n} else {\nreturn n__$1;\n}\n}\n});\ntaoensso.encore.pnum_complement \x3d (function taoensso$encore$pnum_complement(pnum){\nreturn (1.0 - pnum);\n});\ntaoensso.encore.as_pnum_complement \x3d (function taoensso$encore$as_pnum_complement(x){\nreturn (1.0 - taoensso.encore.as_pnum(x));\n});\ntaoensso.encore.pow \x3d (function taoensso$encore$pow(n,exp){\nreturn Math.pow(n,exp);\n});\ntaoensso.encore.abs \x3d (function taoensso$encore$abs(n){\nif((n \x3c (0))){\nreturn (- n);\n} else {\nreturn n;\n}\n});\n/**\n * General purpose rounding util.\n * Returns given number `n` rounded according to given options:\n * - `kind` - \u2208 #{:round :floor :ceil :trunc} (default `:round`)\n * - `precision` - Number of decimal places to include (default `nil` \x3d\x3e none)\n */\ntaoensso.encore.round \x3d (function taoensso$encore$round(var_args){\nvar G__49853 \x3d arguments.length;\nswitch (G__49853) {\ncase 1:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22round\x22,\x22round\x22,2009433328),null,n);\n}));\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$2 \x3d (function (a1,a2){\nif((a2 instanceof cljs.core.Keyword)){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a2,null,a1);\n} else {\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a1,null,a2);\n}\n}));\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$3 \x3d (function (a1,a2,a3){\nif((a2 instanceof cljs.core.Keyword)){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a2,a3,a1);\n} else {\nvar n \x3d a3;\nvar modifier \x3d (cljs.core.truth_(a2)?Math.pow(10.0,a2):null);\nvar n_STAR_ \x3d (cljs.core.truth_(modifier)?(n * modifier):n);\nvar rounded \x3d (function (){var kind \x3d a1;\nvar G__49856 \x3d kind;\nvar G__49856__$1 \x3d (((G__49856 instanceof cljs.core.Keyword))?G__49856.fqn:null);\nswitch (G__49856__$1) {\ncase \x22round\x22:\nreturn Math.round(n_STAR_);\n\nbreak;\ncase \x22floor\x22:\nreturn Math.floor(n_STAR_);\n\nbreak;\ncase \x22ceil\x22:\nreturn Math.ceil(n_STAR_);\n\nbreak;\ncase \x22trunc\x22:\nreturn cljs.core.long$(n_STAR_);\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2269,16], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22round\x22,\x22taoensso.encore/round\x22,716371329,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ceil\x22,\x22ceil\x22,-1824929952),null,new cljs.core.Keyword(null,\x22trunc\x22,\x22trunc\x22,-256146097),null,new cljs.core.Keyword(null,\x22round\x22,\x22round\x22,2009433328),null,new cljs.core.Keyword(null,\x22floor\x22,\x22floor\x22,1882041021),null], null), null)], null));\n\n}\n})();\nif(cljs.core.truth_(modifier)){\nreturn (rounded / modifier);\n} else {\nreturn cljs.core.long$(rounded);\n}\n}\n}));\n\n(taoensso.encore.round.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.perc \x3d (function taoensso$encore$perc(n,divisor){\nreturn Math.round(((n / divisor) * 100.0));\n});\n\ntaoensso.encore.round0 \x3d (function taoensso$encore$round0(n){\nreturn Math.round(n);\n});\n\ntaoensso.encore.round1 \x3d (function taoensso$encore$round1(n){\nreturn (Math.round((n * 10.0)) / 10.0);\n});\n\ntaoensso.encore.round2 \x3d (function taoensso$encore$round2(n){\nreturn (Math.round((n * 100.0)) / 100.0);\n});\n\ntaoensso.encore.round3 \x3d (function taoensso$encore$round3(n){\nreturn (Math.round((n * 1000.0)) / 1000.0);\n});\n\ntaoensso.encore.round4 \x3d (function taoensso$encore$round4(n){\nreturn (Math.round((n * 10000.0)) / 10000.0);\n});\n\ntaoensso.encore.roundn \x3d (function taoensso$encore$roundn(precision,n){\nvar p \x3d Math.pow(10.0,cljs.core.long$(precision));\nreturn (Math.round((n * p)) / p);\n});\n/**\n * Returns binary exponential backoff value for n\x3c\x3d36.\n */\ntaoensso.encore.exp_backoff \x3d (function taoensso$encore$exp_backoff(var_args){\nvar G__49879 \x3d arguments.length;\nswitch (G__49879) {\ncase 1:\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1 \x3d (function (n_attempt){\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2(n_attempt,null);\n}));\n\n(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2 \x3d (function (n_attempt,p__49886){\nvar map__49887 \x3d p__49886;\nvar map__49887__$1 \x3d cljs.core.__destructure_map(map__49887);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49887__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49887__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar factor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__49887__$1,new cljs.core.Keyword(null,\x22factor\x22,\x22factor\x22,-2103172748),(1000));\nvar n \x3d (((n_attempt \x3e (36)))?(36):n_attempt);\nvar b \x3d Math.pow((2),n);\nvar t \x3d cljs.core.long$((((b + cljs.core.rand.cljs$core$IFn$_invoke$arity$1(b)) * 0.5) * factor));\nvar t__$1 \x3d cljs.core.long$((cljs.core.truth_(min)?(((t \x3c min))?min:t):t));\nvar t__$2 \x3d cljs.core.long$((cljs.core.truth_(max)?(((t__$1 \x3e max))?max:t__$1):t__$1));\nreturn t__$2;\n}));\n\n(taoensso.encore.exp_backoff.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.encore.chance \x3d (function taoensso$encore$chance(prob){\nreturn (Math.random() \x3c prob);\n});\ntaoensso.encore.merge_meta \x3d (function taoensso$encore$merge_meta(x,m){\nreturn cljs.core.with_meta(x,taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(x),m));\n});\ntaoensso.encore.without_meta \x3d (function taoensso$encore$without_meta(x){\nif(cljs.core.truth_(cljs.core.meta(x))){\nreturn cljs.core.with_meta(x,null);\n} else {\nreturn x;\n}\n});\n/**\n * Returns true iff given args are equal AND non-nil.\n */\ntaoensso.encore.some_EQ_ \x3d (function taoensso$encore$some_EQ_(var_args){\nvar G__49911 \x3d arguments.length;\nswitch (G__49911) {\ncase 1:\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50938 \x3d arguments.length;\nvar i__5750__auto___50939 \x3d (0);\nwhile(true){\nif((i__5750__auto___50939 \x3c len__5749__auto___50938)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50939]));\n\nvar G__50940 \x3d (i__5750__auto___50939 + (1));\ni__5750__auto___50939 \x3d G__50940;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (!((x \x3d\x3d null)));\n}));\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (((!((x \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)));\n}));\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nvar and__5023__auto__ \x3d (!((x \x3d\x3d null)));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y);\nif(and__5023__auto____$1){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__49904_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p1__49904_SHARP_,x);\n}),more);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n}));\n\n/** @this {Function} */\n(taoensso.encore.some_EQ_.cljs$lang$applyTo \x3d (function (seq49908){\nvar G__49909 \x3d cljs.core.first(seq49908);\nvar seq49908__$1 \x3d cljs.core.next(seq49908);\nvar G__49910 \x3d cljs.core.first(seq49908__$1);\nvar seq49908__$2 \x3d cljs.core.next(seq49908__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49909,G__49910,seq49908__$2);\n}));\n\n(taoensso.encore.some_EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns first non-nil arg, or nil.\n */\ntaoensso.encore.nnil \x3d (function taoensso$encore$nnil(var_args){\nvar G__49938 \x3d arguments.length;\nswitch (G__49938) {\ncase 0:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50942 \x3d arguments.length;\nvar i__5750__auto___50943 \x3d (0);\nwhile(true){\nif((i__5750__auto___50943 \x3c len__5749__auto___50942)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50943]));\n\nvar G__50944 \x3d (i__5750__auto___50943 + (1));\ni__5750__auto___50943 \x3d G__50944;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nif((x \x3d\x3d null)){\nreturn y;\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,y,z){\nif((x \x3d\x3d null)){\nif((y \x3d\x3d null)){\nreturn z;\n} else {\nreturn y;\n}\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,z,more){\nif((x \x3d\x3d null)){\nif((y \x3d\x3d null)){\nif((z \x3d\x3d null)){\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2(cljs.core.some_QMARK_,more);\n} else {\nreturn z;\n}\n} else {\nreturn y;\n}\n} else {\nreturn x;\n}\n}));\n\n/** @this {Function} */\n(taoensso.encore.nnil.cljs$lang$applyTo \x3d (function (seq49932){\nvar G__49933 \x3d cljs.core.first(seq49932);\nvar seq49932__$1 \x3d cljs.core.next(seq49932);\nvar G__49934 \x3d cljs.core.first(seq49932__$1);\nvar seq49932__$2 \x3d cljs.core.next(seq49932__$1);\nvar G__49935 \x3d cljs.core.first(seq49932__$2);\nvar seq49932__$3 \x3d cljs.core.next(seq49932__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49933,G__49934,G__49935,seq49932__$3);\n}));\n\n(taoensso.encore.nnil.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.parse_version \x3d (function taoensso$encore$parse_version(x){\nvar vec__49956 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),/-/,(2));\nvar s_version \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49956,(0),null);\nvar _QMARK_s_qualifier \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49956,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22version\x22,\x22version\x22,425292698),(function (){var b2__43681__auto__ \x3d cljs.core.re_seq(/\\d+/,s_version);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar s \x3d b2__43681__auto__;\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_int,s);\n} else {\nreturn null;\n}\n})(),new cljs.core.Keyword(null,\x22qualifier\x22,\x22qualifier\x22,125841738),(function (){var b2__43681__auto__ \x3d _QMARK_s_qualifier;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar s \x3d b2__43681__auto__;\nreturn clojure.string.lower_case(s);\n} else {\nreturn null;\n}\n})()], null);\n});\n/**\n * Is `clojure.core.async` present (not necessarily loaded)?\n */\ntaoensso.encore.have_core_async_QMARK_ \x3d true;\n/**\n * Returns true iff given platform instant (`java.time.Instant` or `js/Date`).\n */\ntaoensso.encore.inst_QMARK_ \x3d (function taoensso$encore$inst_QMARK_(x){\nreturn (x instanceof Date);\n});\n/**\n * Returns current system instant as `js/Date`.\n */\ntaoensso.encore.now_inst \x3d (function taoensso$encore$now_inst(){\nreturn (new Date());\n});\n\n/**\n * Returns current system instant as `js/Date`.\n */\ntaoensso.encore.now_dt \x3d (function taoensso$encore$now_dt(){\nreturn (new Date());\n});\n\n/**\n * Returns current system insant as milliseconds since Unix epoch.\n */\ntaoensso.encore.now_udt \x3d (function taoensso$encore$now_udt(){\nreturn Date.now();\n});\n\n/**\n * Returns current value of best-resolution time source as nanoseconds.\n */\ntaoensso.encore.now_nano \x3d (function (){var b2__43681__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,\x22performance\x22);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar perf \x3d b2__43681__auto__;\nvar b2__43681__auto____$1 \x3d (function (){var or__5025__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22now\x22);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22mozNow\x22);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22webkitNow\x22);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nvar or__5025__auto____$3 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22msNow\x22);\nif(cljs.core.truth_(or__5025__auto____$3)){\nreturn or__5025__auto____$3;\n} else {\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22oNow\x22);\n}\n}\n}\n}\n})();\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar pf \x3d b2__43681__auto____$1;\nreturn (function (){\nreturn Math.floor((1000000.0 * pf.call(perf)));\n});\n} else {\nreturn (function (){\nreturn (1000000.0 * Date.now());\n});\n}\n} else {\nreturn (function (){\nreturn (1000000.0 * Date.now());\n});\n}\n})();\n\n/**\n * Returns given `js/Date` as milliseconds since Unix epoch.\n */\ntaoensso.encore.inst__GT_udt \x3d (function taoensso$encore$inst__GT_udt(inst){\nreturn inst.getTime();\n});\n\n/**\n * Returns given milliseconds since Unix epoch as `js/Date`.\n */\ntaoensso.encore.udt__GT_inst \x3d (function taoensso$encore$udt__GT_inst(msecs_since_epoch){\nreturn (new Date(msecs_since_epoch));\n});\ntaoensso.encore.udt_QMARK_ \x3d (function taoensso$encore$udt_QMARK_(x){\nreturn taoensso.encore.int_QMARK_(x);\n});\n/**\n * Returns given ?arg as platform instant (`java.time.Instant` or `js/Date`), or nil.\n */\ntaoensso.encore.as__QMARK_inst \x3d (function taoensso$encore$as__QMARK_inst(x){\nif((x instanceof Date)){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn (new Date(x));\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar x__$1 \x3d (new Date(x));\nif(cljs.core.truth_(isNaN(x__$1))){\nreturn null;\n} else {\nreturn x__$1;\n}\n} else {\nreturn null;\n}\n}\n}\n});\n/**\n * Returns given ?arg as (pos/neg) milliseconds since Unix epoch, or nil.\n */\ntaoensso.encore.as__QMARK_udt \x3d (function taoensso$encore$as__QMARK_udt(x){\nif((x instanceof Date)){\nreturn x.getTime();\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar or__5025__auto__ \x3d taoensso.encore.parse_js_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar x__$1 \x3d Date.parse(x);\nif(cljs.core.truth_(isNaN(x__$1))){\nreturn null;\n} else {\nreturn x__$1;\n}\n}\n} else {\nreturn null;\n}\n}\n}\n});\ntaoensso.encore.as_inst \x3d (function taoensso$encore$as_inst(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_inst(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore._as_throw(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),x);\n}\n});\ntaoensso.encore.as_udt \x3d (function taoensso$encore$as_udt(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_udt(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore._as_throw(new cljs.core.Keyword(null,\x22udt\x22,\x22udt\x22,2011712751),x);\n}\n});\n/**\n * Experimental, subject to change without notice.\n * \n * Returns a (fn format [instant]) that:\n * - Takes a platform instant (`java.time.Instant` or `js/Date`).\n * - Returns a formatted human-readable instant string.\n * \n * Options:\n * `:formatter`\n * Clj: `java.time.format.DateTimeFormatter`\n * Cljs: `goog.i18n.DateTimeFormat`\n * \n * Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n * e.g.: \x222011-12-03T10:15:130Z\x22.\n * \n * `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n * Note that zone may be ignored by some `DateTimeFormatter`s,\n * including the default (`DateTimeFormatter/ISO_INSTANT`)!\n */\ntaoensso.encore.format_inst_fn \x3d (function taoensso$encore$format_inst_fn(var_args){\nvar G__50024 \x3d arguments.length;\nswitch (G__50024) {\ncase 0:\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__50025){\nvar map__50026 \x3d p__50025;\nvar map__50026__$1 \x3d cljs.core.__destructure_map(map__50026);\nvar formatter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50026__$1,new cljs.core.Keyword(null,\x22formatter\x22,\x22formatter\x22,-483008823));\nif(cljs.core.truth_(formatter)){\nreturn (function taoensso$encore$format_instant(instant){\nreturn formatter.format(instant);\n});\n} else {\nreturn (function taoensso$encore$format_instant(instant){\nreturn instant.toISOString();\n});\n}\n}));\n\n(taoensso.encore.format_inst_fn.cljs$lang$maxFixedArity \x3d 1);\n\nvar default_fn_50948 \x3d taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0();\n/**\n * Takes a platform instant (`java.time.Instant` or `js/Date`) and\n * returns a formatted human-readable string in `ISO8601` format\n * (`YYYY-MM-DDTHH:mm:ss.sssZ`), e.g. \x222011-12-03T10:15:130Z\x22.\n */\ntaoensso.encore.format_inst \x3d (function taoensso$encore$format_inst(inst){\nreturn (default_fn_50948.cljs$core$IFn$_invoke$arity$1 ? default_fn_50948.cljs$core$IFn$_invoke$arity$1(inst) : default_fn_50948.call(null,inst));\n});\ntaoensso.encore.secs__GT_ms \x3d (function taoensso$encore$secs__GT_ms(secs){\nreturn (cljs.core.long$(secs) * (1000));\n});\ntaoensso.encore.ms__GT_secs \x3d (function taoensso$encore$ms__GT_secs(ms){\nreturn cljs.core.quot(cljs.core.long$(ms),(1000));\n});\n/**\n * Returns ~number of milliseconds in period defined by given args.\n */\ntaoensso.encore.ms \x3d (function taoensso$encore$ms(var_args){\nvar G__50064 \x3d arguments.length;\nswitch (G__50064) {\ncase 1:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50950 \x3d arguments.length;\nvar i__5750__auto___50951 \x3d (0);\nwhile(true){\nif((i__5750__auto___50951 \x3c len__5749__auto___50950)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50951]));\n\nvar G__50952 \x3d (i__5750__auto___50951 + (1));\ni__5750__auto___50951 \x3d G__50952;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__50066){\nvar map__50067 \x3d p__50066;\nvar map__50067__$1 \x3d cljs.core.__destructure_map(map__50067);\nvar ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22ms\x22,\x22ms\x22,-1152709733));\nvar weeks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22weeks\x22,\x22weeks\x22,1844596125));\nvar msecs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22msecs\x22,\x22msecs\x22,1711980553));\nvar months \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22months\x22,\x22months\x22,-45571637));\nvar secs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22secs\x22,\x22secs\x22,1532330091));\nvar mins \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676));\nvar days \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22days\x22,\x22days\x22,-1394072564));\nvar hours \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22hours\x22,\x22hours\x22,58380855));\nvar years \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50067__$1,new cljs.core.Keyword(null,\x22years\x22,\x22years\x22,-1298579689));\nreturn taoensso.encore.round0((((((((((cljs.core.truth_(years)?(years * (31536000000)):0.0) + (cljs.core.truth_(months)?(months * 2.551392E9):0.0)) + (cljs.core.truth_(weeks)?(weeks * (604800000)):0.0)) + (cljs.core.truth_(days)?(days * (86400000)):0.0)) + (cljs.core.truth_(hours)?(hours * (3600000)):0.0)) + (cljs.core.truth_(mins)?(mins * (60000)):0.0)) + (cljs.core.truth_(secs)?(secs * (1000)):0.0)) + (cljs.core.truth_(msecs)?msecs:0.0)) + (cljs.core.truth_(ms)?ms:0.0)));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2 \x3d (function (k1,v1){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1]));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$4 \x3d (function (k1,v1,k2,v2){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k1,v1,k2,v2,more){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(taoensso.encore.reduce_kvs(cljs.core.assoc,cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]),more));\n}));\n\n/** @this {Function} */\n(taoensso.encore.ms.cljs$lang$applyTo \x3d (function (seq50058){\nvar G__50059 \x3d cljs.core.first(seq50058);\nvar seq50058__$1 \x3d cljs.core.next(seq50058);\nvar G__50060 \x3d cljs.core.first(seq50058__$1);\nvar seq50058__$2 \x3d cljs.core.next(seq50058__$1);\nvar G__50061 \x3d cljs.core.first(seq50058__$2);\nvar seq50058__$3 \x3d cljs.core.next(seq50058__$2);\nvar G__50062 \x3d cljs.core.first(seq50058__$3);\nvar seq50058__$4 \x3d cljs.core.next(seq50058__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50059,G__50060,G__50061,G__50062,seq50058__$4);\n}));\n\n(taoensso.encore.ms.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Returns ~number of seconds in period defined by given args.\n */\ntaoensso.encore.secs \x3d (function taoensso$encore$secs(var_args){\nvar G__50087 \x3d arguments.length;\nswitch (G__50087) {\ncase 1:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50954 \x3d arguments.length;\nvar i__5750__auto___50955 \x3d (0);\nwhile(true){\nif((i__5750__auto___50955 \x3c len__5749__auto___50954)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50955]));\n\nvar G__50956 \x3d (i__5750__auto___50955 + (1));\ni__5750__auto___50955 \x3d G__50956;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(opts));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$2 \x3d (function (k1,v1){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1])));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$4 \x3d (function (k1,v1,k2,v2){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2])));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k1,v1,k2,v2,more){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(taoensso.encore.reduce_kvs(cljs.core.assoc,cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.secs.cljs$lang$applyTo \x3d (function (seq50080){\nvar G__50082 \x3d cljs.core.first(seq50080);\nvar seq50080__$1 \x3d cljs.core.next(seq50080);\nvar G__50083 \x3d cljs.core.first(seq50080__$1);\nvar seq50080__$2 \x3d cljs.core.next(seq50080__$1);\nvar G__50084 \x3d cljs.core.first(seq50080__$2);\nvar seq50080__$3 \x3d cljs.core.next(seq50080__$2);\nvar G__50085 \x3d cljs.core.first(seq50080__$3);\nvar seq50080__$4 \x3d cljs.core.next(seq50080__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50082,G__50083,G__50084,G__50085,seq50080__$4);\n}));\n\n(taoensso.encore.secs.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Example UTF-8 string for tests, etc.\n */\ntaoensso.encore.a_utf8_str \x3d \x22Hi \\u0CAC\\u0CBE \\u0C87\\u0CB2\\u0CCD\\u0CB2\\u0CBF \\u0CB8\\u0C82\\u0CAD\\u0CB5\\u0CBF\\u0CB8 10\x22;\ntaoensso.encore.str_builder_QMARK_ \x3d (function taoensso$encore$str_builder_QMARK_(x){\nreturn (x instanceof goog.string.StringBuffer);\n});\n/**\n * Returns a new stateful string builder:\n * - `java.lang.StringBuilder` for Clj\n * - `goog.string.StringBuffer` for Cljs\n * \n * See also `sb-append`.\n */\ntaoensso.encore.str_builder \x3d (function taoensso$encore$str_builder(var_args){\nvar G__50115 \x3d arguments.length;\nswitch (G__50115) {\ncase 0:\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (new goog.string.StringBuffer());\n}));\n\n(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nif((init instanceof goog.string.StringBuffer)){\nreturn init;\n} else {\nreturn (new goog.string.StringBuffer(cljs.core.str.cljs$core$IFn$_invoke$arity$1(init)));\n}\n}));\n\n(taoensso.encore.str_builder.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns given string builder\x27s current length (character count).\n */\ntaoensso.encore.sb_length \x3d (function taoensso$encore$sb_length(sb){\nreturn sb.getLength();\n});\n/**\n * Appends given string/s to given string builder. See also `str-builder.`\n */\ntaoensso.encore.sb_append \x3d (function taoensso$encore$sb_append(var_args){\nvar G__50140 \x3d arguments.length;\nswitch (G__50140) {\ncase 2:\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50959 \x3d arguments.length;\nvar i__5750__auto___50960 \x3d (0);\nwhile(true){\nif((i__5750__auto___50960 \x3c len__5749__auto___50959)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50960]));\n\nvar G__50961 \x3d (i__5750__auto___50960 + (1));\ni__5750__auto___50960 \x3d G__50961;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2 \x3d (function (str_builder,x){\nif((x \x3d\x3d null)){\nreturn str_builder;\n} else {\nreturn str_builder.append(x.toString());\n}\n}));\n\n(taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$variadic \x3d (function (str_builder,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(str_builder,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.sb_append.cljs$lang$applyTo \x3d (function (seq50136){\nvar G__50137 \x3d cljs.core.first(seq50136);\nvar seq50136__$1 \x3d cljs.core.next(seq50136);\nvar G__50138 \x3d cljs.core.first(seq50136__$1);\nvar seq50136__$2 \x3d cljs.core.next(seq50136__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50137,G__50138,seq50136__$2);\n}));\n\n(taoensso.encore.sb_append.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Private, don\x27t use.\n * Returns a stateful string-building (fn [x \x26 more]) that:\n * - Appends non-nil xs to a string builder, starting with a separator IFF\n * string building has started and at least one x is non-nil.\n * - Returns the underlying string builder.\n */\ntaoensso.encore.sb_appender \x3d (function taoensso$encore$sb_appender(var_args){\nvar G__50155 \x3d arguments.length;\nswitch (G__50155) {\ncase 0:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),\x22 \x22);\n}));\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$1 \x3d (function (separator){\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),separator);\n}));\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2 \x3d (function (sb,separator){\nvar sep_BANG_ \x3d (function (){var sep \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(separator);\nvar started_QMARK__ \x3d cljs.core.volatile_BANG_(false);\nreturn (function (){\nif(cljs.core.truth_(cljs.core.deref(started_QMARK__))){\nsb.append(sep);\n\nreturn true;\n} else {\ncljs.core.vreset_BANG_(started_QMARK__,true);\n\nreturn false;\n}\n});\n})();\nreturn (function() {\nvar taoensso$encore$a_sb_appender \x3d null;\nvar taoensso$encore$a_sb_appender__0 \x3d (function (){\nreturn sb;\n});\nvar taoensso$encore$a_sb_appender__1 \x3d (function (x){\nif((x \x3d\x3d null)){\nreturn sb;\n} else {\nsep_BANG_();\n\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x);\n}\n});\nvar taoensso$encore$a_sb_appender__2 \x3d (function() { \nvar G__50963__delegate \x3d function (x,more){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (x \x3d\x3d null);\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,more);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn null;\n} else {\nsep_BANG_();\n\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x),more);\n}\n};\nvar G__50963 \x3d function (x,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 1) {\nvar G__50964__i \x3d 0, G__50964__a \x3d new Array(arguments.length - 1);\nwhile (G__50964__i \x3c G__50964__a.length) {G__50964__a[G__50964__i] \x3d arguments[G__50964__i + 1]; ++G__50964__i;}\n more \x3d new cljs.core.IndexedSeq(G__50964__a,0,null);\n} \nreturn G__50963__delegate.call(this,x,more);};\nG__50963.cljs$lang$maxFixedArity \x3d 1;\nG__50963.cljs$lang$applyTo \x3d (function (arglist__50965){\nvar x \x3d cljs.core.first(arglist__50965);\nvar more \x3d cljs.core.rest(arglist__50965);\nreturn G__50963__delegate(x,more);\n});\nG__50963.cljs$core$IFn$_invoke$arity$variadic \x3d G__50963__delegate;\nreturn G__50963;\n})()\n;\ntaoensso$encore$a_sb_appender \x3d function(x,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$a_sb_appender__0.call(this);\ncase 1:\nreturn taoensso$encore$a_sb_appender__1.call(this,x);\ndefault:\nvar G__50966 \x3d null;\nif (arguments.length \x3e 1) {\nvar G__50967__i \x3d 0, G__50967__a \x3d new Array(arguments.length - 1);\nwhile (G__50967__i \x3c G__50967__a.length) {G__50967__a[G__50967__i] \x3d arguments[G__50967__i + 1]; ++G__50967__i;}\nG__50966 \x3d new cljs.core.IndexedSeq(G__50967__a,0,null);\n}\nreturn taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic(x, G__50966);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$a_sb_appender.cljs$lang$maxFixedArity \x3d 1;\ntaoensso$encore$a_sb_appender.cljs$lang$applyTo \x3d taoensso$encore$a_sb_appender__2.cljs$lang$applyTo;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$a_sb_appender__0;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$a_sb_appender__1;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic;\nreturn taoensso$encore$a_sb_appender;\n})()\n}));\n\n(taoensso.encore.sb_appender.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * String builder reducing fn.\n */\ntaoensso.encore.str_rf \x3d (function taoensso$encore$str_rf(var_args){\nvar G__50159 \x3d arguments.length;\nswitch (G__50159) {\ncase 0:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (acc){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(acc);\n}));\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (acc,in$){\nif((in$ \x3d\x3d null)){\nreturn acc;\n} else {\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1(acc).append(in$.toString());\n}\n}));\n\n(taoensso.encore.str_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `str-rf` but presumes string builder init value.\n */\ntaoensso.encore.sb_rf \x3d (function taoensso$encore$sb_rf(var_args){\nvar G__50161 \x3d arguments.length;\nswitch (G__50161) {\ncase 0:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (sb){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}));\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (sb,in$){\nif((in$ \x3d\x3d null)){\nreturn sb;\n} else {\nreturn sb.append(in$.toString());\n}\n}));\n\n(taoensso.encore.sb_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Faster generalization of `clojure.string/join` with transducer support.\n */\ntaoensso.encore.str_join \x3d (function taoensso$encore$str_join(var_args){\nvar G__50165 \x3d arguments.length;\nswitch (G__50165) {\ncase 1:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$1 \x3d (function (xs){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(null,null,xs);\n}));\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$2 \x3d (function (separator,xs){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(separator,null,xs);\n}));\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3 \x3d (function (separator,xform,xs){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d separator;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(separator,\x22\x22);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar separator__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(separator);\nif(cljs.core.truth_(xform)){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(xform,cljs.core.interpose.cljs$core$IFn$_invoke$arity$1(separator__$1)),taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n} else {\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.interpose.cljs$core$IFn$_invoke$arity$1(separator__$1),taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n}\n} else {\nif(cljs.core.truth_(xform)){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs));\n}\n}\n}));\n\n(taoensso.encore.str_join.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.str_contains_QMARK_ \x3d (function taoensso$encore$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.encore.str_starts_with_QMARK_ \x3d (function taoensso$encore$str_starts_with_QMARK_(s,substr){\nreturn (s.indexOf(substr) \x3d\x3d\x3d (0));\n});\ntaoensso.encore.str_ends_with_QMARK_ \x3d (function taoensso$encore$str_ends_with_QMARK_(s,substr){\nvar s_len \x3d s.length;\nvar substr_len \x3d substr.length;\nif((s_len \x3e\x3d substr_len)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr,(s_len - substr_len)));\n} else {\nreturn null;\n}\n});\n/**\n * Returns (first/last) ?index of substring if it exists within given string.\n */\ntaoensso.encore.str__QMARK_index \x3d (function taoensso$encore$str__QMARK_index(var_args){\nvar G__50179 \x3d arguments.length;\nswitch (G__50179) {\ncase 2:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,substr){\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4(s,substr,(0),false);\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,substr,start_idx){\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4(s,substr,start_idx,false);\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4 \x3d (function (s,substr,start_idx,last_QMARK_){\nvar result \x3d (cljs.core.truth_(last_QMARK_)?s.lastIndexOf(substr,start_idx):s.indexOf(substr,start_idx));\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(result,(-1))){\nreturn result;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns true iff given strings are equal, ignoring case.\n */\ntaoensso.encore.case_insensitive_str_EQ_ \x3d (function taoensso$encore$case_insensitive_str_EQ_(s1,s2){\nvar or__5025__auto__ \x3d (s1 \x3d\x3d\x3d s2);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar l1 \x3d s1.length;\nvar l2 \x3d s2.length;\nvar and__5023__auto__ \x3d (l1 \x3d\x3d\x3d l2);\nif(and__5023__auto__){\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4((function (acc,idx){\nvar c1 \x3d s1.charAt(idx).toLowerCase();\nvar c2 \x3d s2.charAt(idx).toLowerCase();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c1,c2)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,(0),l1);\n} else {\nreturn and__5023__auto__;\n}\n}\n});\n/**\n * Returns normalized form of given string.\n * `norm-form` is \u2208 #{:nfc :nfkc :nfd :nfkd} (default `:nfc` as per W3C).\n */\ntaoensso.encore.norm_str \x3d (function taoensso$encore$norm_str(var_args){\nvar G__50185 \x3d arguments.length;\nswitch (G__50185) {\ncase 1:\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nfc\x22,\x22nfc\x22,1898291461),s);\n}));\n\n(taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2 \x3d (function (norm_form,s){\nvar norm_form__$1 \x3d (function (){var G__50188 \x3d norm_form;\nvar G__50188__$1 \x3d (((G__50188 instanceof cljs.core.Keyword))?G__50188.fqn:null);\nswitch (G__50188__$1) {\ncase \x22nfc\x22:\nreturn \x22NFC\x22;\n\nbreak;\ncase \x22nfkc\x22:\nreturn \x22NFKC\x22;\n\nbreak;\ncase \x22nfd\x22:\nreturn \x22NFD\x22;\n\nbreak;\ncase \x22nfkd\x22:\nreturn \x22NFKD\x22;\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2973,14], null),norm_form,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22norm-form\x22,\x22norm-form\x22,-1587703891,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22norm-str\x22,\x22taoensso.encore/norm-str\x22,-56716920,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22nfc\x22,\x22nfc\x22,1898291461),null,new cljs.core.Keyword(null,\x22nfkc\x22,\x22nfkc\x22,1301302858),null,new cljs.core.Keyword(null,\x22nfkd\x22,\x22nfkd\x22,-445525140),null,new cljs.core.Keyword(null,\x22nfd\x22,\x22nfd\x22,-1770233195),null], null), null)], null));\n\n\n}\n})();\nreturn s.normalize(norm_form__$1);\n}));\n\n(taoensso.encore.norm_str.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `str/replace` but provides consistent Clj/s behaviour.\n * \n * Workaround for \x3chttp://dev.clojure.org/jira/browse/CLJS-794\x3e,\n * \x3chttp://dev.clojure.org/jira/browse/CLJS-911\x3e.\n * \n * Note that ClojureScript 1.7.145 introduced a partial fix for CLJS-911.\n * A full fix could unfortunately not be introduced w/o breaking compatibility\n * with the previously incorrect behaviour. CLJS-794 also remains unresolved.\n */\ntaoensso.encore.str_replace \x3d (function taoensso$encore$str_replace(s,match,replacement){\nif(typeof match \x3d\x3d\x3d \x27string\x27){\nreturn s.replace((new RegExp(goog.string.regExpEscape(match),\x22g\x22)),replacement);\n} else {\nif((match instanceof RegExp)){\nvar flags \x3d [\x22g\x22,(cljs.core.truth_(match.ignoreCase)?\x22i\x22:null),(cljs.core.truth_(match.multiline)?\x22m\x22:null)].join(\x27\x27);\nvar replacement__$1 \x3d ((typeof replacement \x3d\x3d\x3d \x27string\x27)?replacement:(function() { \nvar G__50976__delegate \x3d function (args){\nvar G__50193 \x3d cljs.core.vec(args);\nreturn (replacement.cljs$core$IFn$_invoke$arity$1 ? replacement.cljs$core$IFn$_invoke$arity$1(G__50193) : replacement.call(null,G__50193));\n};\nvar G__50976 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50977__i \x3d 0, G__50977__a \x3d new Array(arguments.length - 0);\nwhile (G__50977__i \x3c G__50977__a.length) {G__50977__a[G__50977__i] \x3d arguments[G__50977__i + 0]; ++G__50977__i;}\n args \x3d new cljs.core.IndexedSeq(G__50977__a,0,null);\n} \nreturn G__50976__delegate.call(this,args);};\nG__50976.cljs$lang$maxFixedArity \x3d 0;\nG__50976.cljs$lang$applyTo \x3d (function (arglist__50978){\nvar args \x3d cljs.core.seq(arglist__50978);\nreturn G__50976__delegate(args);\n});\nG__50976.cljs$core$IFn$_invoke$arity$variadic \x3d G__50976__delegate;\nreturn G__50976;\n})()\n);\nreturn s.replace((new RegExp(match.source,flags)),replacement__$1);\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3011,14], null),[\x22Invalid match arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join(\x27\x27),null,null);\n}\n}\n});\ntaoensso.encore.nil__GT_str \x3d (function taoensso$encore$nil__GT_str(x){\nif((x \x3d\x3d null)){\nreturn \x22nil\x22;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.format_STAR_ \x3d (function taoensso$encore$format_STAR_(var_args){\nvar G__50197 \x3d arguments.length;\nswitch (G__50197) {\ncase 2:\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (fmt,args){\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3(taoensso.encore.nil__GT_str,fmt,args);\n}));\n\n(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,fmt,args){\nif((fmt \x3d\x3d null)){\nreturn \x22\x22;\n} else {\nvar args__$1 \x3d (cljs.core.truth_(xform)?cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(xform,args):args);\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,fmt,args__$1);\n}\n}));\n\n(taoensso.encore.format_STAR_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Like `core/format` but:\n * * Returns \x22\x22 when fmt is nil rather than throwing an NPE.\n * * Formats nil as \x22nil\x22 rather than \x22null\x22.\n * * Provides ClojureScript support via goog.string.format (this has fewer\n * formatting options than Clojure\x27s `format`!).\n */\ntaoensso.encore.format \x3d (function taoensso$encore$format(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50980 \x3d arguments.length;\nvar i__5750__auto___50981 \x3d (0);\nwhile(true){\nif((i__5750__auto___50981 \x3c len__5749__auto___50980)){\nargs__5755__auto__.push((arguments[i__5750__auto___50981]));\n\nvar G__50982 \x3d (i__5750__auto___50981 + (1));\ni__5750__auto___50981 \x3d G__50982;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.format.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.format.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,args){\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,args);\n}));\n\n(taoensso.encore.format.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.format.cljs$lang$applyTo \x3d (function (seq50199){\nvar G__50201 \x3d cljs.core.first(seq50199);\nvar seq50199__$1 \x3d cljs.core.next(seq50199);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50201,seq50199__$1);\n}));\n\n/**\n * Like `string/join` but skips nils and duplicate separators.\n */\ntaoensso.encore.str_join_once \x3d (function taoensso$encore$str_join_once(separator,coll){\nvar sep \x3d separator;\nif(clojure.string.blank_QMARK_(sep)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.str_rf,\x22\x22,coll));\n} else {\nvar acc_ends_with_sep_QMARK__ \x3d cljs.core.volatile_BANG_(false);\nvar acc_empty_QMARK__ \x3d cljs.core.volatile_BANG_(true);\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nvar in$__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(in$);\nvar in_empty_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(in$__$1,\x22\x22);\nvar in_starts_with_sep_QMARK_ \x3d taoensso.encore.str_starts_with_QMARK_(in$__$1,sep);\nvar in_ends_with_sep_QMARK_ \x3d taoensso.encore.str_ends_with_QMARK_(in$__$1,sep);\nvar acc_ends_with_sep_QMARK_ \x3d cljs.core.deref(acc_ends_with_sep_QMARK__);\nvar acc_empty_QMARK_ \x3d cljs.core.deref(acc_empty_QMARK__);\ncljs.core.vreset_BANG_(acc_ends_with_sep_QMARK__,in_ends_with_sep_QMARK_);\n\nif(cljs.core.truth_(acc_empty_QMARK_)){\ncljs.core.vreset_BANG_(acc_empty_QMARK__,in_empty_QMARK_);\n} else {\n}\n\nif(cljs.core.truth_(acc_ends_with_sep_QMARK_)){\nif(cljs.core.truth_(in_starts_with_sep_QMARK_)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1.substring((1)));\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n}\n} else {\nif(cljs.core.truth_(in_starts_with_sep_QMARK_)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n} else {\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d acc_empty_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn in_empty_QMARK_;\n}\n})())){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n} else {\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,sep);\n\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n}\n}\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),coll));\n}\n});\ntaoensso.encore.path \x3d (function taoensso$encore$path(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50986 \x3d arguments.length;\nvar i__5750__auto___50987 \x3d (0);\nwhile(true){\nif((i__5750__auto___50987 \x3c len__5749__auto___50986)){\nargs__5755__auto__.push((arguments[i__5750__auto___50987]));\n\nvar G__50988 \x3d (i__5750__auto___50987 + (1));\ni__5750__auto___50987 \x3d G__50988;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.path.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.path.cljs$core$IFn$_invoke$arity$variadic \x3d (function (parts){\nreturn taoensso.encore.str_join_once(\x22/\x22,parts);\n}));\n\n(taoensso.encore.path.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.path.cljs$lang$applyTo \x3d (function (seq50211){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50211));\n}));\n\n/**\n * Converts all word breaks of any form and length (including line breaks of any\n * form, tabs, spaces, etc.) to a single regular space.\n */\ntaoensso.encore.norm_word_breaks \x3d (function taoensso$encore$norm_word_breaks(s){\nreturn clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),/\\s+/,\x22 \x22);\n});\ntaoensso.encore.count_words \x3d (function taoensso$encore$count_words(s){\nif(clojure.string.blank_QMARK_(s)){\nreturn (0);\n} else {\nreturn cljs.core.count(clojure.string.split.cljs$core$IFn$_invoke$arity$2(s,/\\s+/));\n}\n});\n/**\n * Simple Hiccup-like string templating to complement Tempura.\n */\ntaoensso.encore.into_str \x3d (function taoensso$encore$into_str(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50989 \x3d arguments.length;\nvar i__5750__auto___50990 \x3d (0);\nwhile(true){\nif((i__5750__auto___50990 \x3c len__5749__auto___50989)){\nargs__5755__auto__.push((arguments[i__5750__auto___50990]));\n\nvar G__50991 \x3d (i__5750__auto___50990 + (1));\ni__5750__auto___50990 \x3d G__50991;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.into_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.into_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function taoensso$encore$rf(acc,in$){\nif(cljs.core.sequential_QMARK_(in$)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso$encore$rf,acc,in$);\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.str.cljs$core$IFn$_invoke$arity$1(in$));\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs));\n}));\n\n(taoensso.encore.into_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.into_str.cljs$lang$applyTo \x3d (function (seq50217){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50217));\n}));\n\n/**\n * Constant-time string equality checker.\n * Useful to prevent timing attacks, etc.\n */\ntaoensso.encore.const_str_EQ_ \x3d (function taoensso$encore$const_str_EQ_(s1,s2){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d s1;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn s2;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar vx \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x220\x22,\x221\x22], null);\nvar v1 \x3d cljs.core.vec(s1);\nvar v2 \x3d cljs.core.vec(s2);\nvar n1 \x3d cljs.core.count(v1);\nvar n2 \x3d cljs.core.count(v2);\nvar nmax \x3d (function (){var x__5110__auto__ \x3d n1;\nvar y__5111__auto__ \x3d n2;\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar nmin \x3d (function (){var x__5113__auto__ \x3d n1;\nvar y__5114__auto__ \x3d n2;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,idx){\nif((idx \x3e\x3d nmin)){\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(vx,(0)),cljs.core.get.cljs$core$IFn$_invoke$arity$2(vx,(1)));\nif(and__5023__auto__){\nreturn acc;\n} else {\nreturn and__5023__auto__;\n}\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(v1,idx),cljs.core.get.cljs$core$IFn$_invoke$arity$2(v2,idx));\nif(and__5023__auto__){\nreturn acc;\n} else {\nreturn and__5023__auto__;\n}\n}\n}),true,nmax);\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.format_num_fn \x3d (function taoensso$encore$format_num_fn(n_min_fd,n_max_fd){\nvar nf \x3d (new Intl.NumberFormat(\x22en-US\x22,({\x22minimumFractionDigits\x22: n_min_fd, \x22maximumFractionDigits\x22: n_max_fd, \x22useGrouping\x22: true})));\nreturn (function (n){\nreturn nf.format(n);\n});\n});\nvar fmt0_50995 \x3d taoensso.encore.format_num_fn((0),(0));\nvar fmt2_50996 \x3d taoensso.encore.format_num_fn((2),(2));\n/**\n * Returns given nanoseconds (long) as formatted human-readable string.\n * Example outputs: \x221.00m\x22, \x224.20s\x22, \x22340ms\x22, \x22822\u03bcs\x22, etc.\n */\ntaoensso.encore.format_nsecs \x3d (function taoensso$encore$format_nsecs(nanosecs){\nvar ns \x3d nanosecs;\nif((ns \x3e\x3d 6.0E10)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_50996((ns / 6.0E10))),\x22m\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1.0E9)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_50996((ns / 1.0E9))),\x22s\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1000000.0)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995((ns / 1000000.0))),\x22ms\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1000.0)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995((ns / 1000.0))),\x22\\u03BCs\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_50995(ns)),\x22ns\x22].join(\x27\x27);\n}\n}\n}\n}\n});\n/**\n * Give any nameable type (string, keyword, symbol), returns the same\n * type with at most `n-full` (default 1) unabbreviated namespace parts.\n * \n * Example:\n * (abbreviate-ns 2 :foo.bar/baz) \x3d\x3e :foo.bar/baz\n * (abbreviate-ns 1 :foo.bar/baz) \x3d\x3e :f.bar/baz\n * (abbreviate-ns 0 :foo.bar/baz) \x3d\x3e :f.b/baz\n */\ntaoensso.encore.abbreviate_ns \x3d (function taoensso$encore$abbreviate_ns(var_args){\nvar G__50229 \x3d arguments.length;\nswitch (G__50229) {\ncase 1:\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2((1),x);\n}));\n\n(taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (n_full,x){\nvar n_full__$1 \x3d cljs.core.long$((function (){var error50241 \x3d (function (){try{if(cljs.core.truth_(taoensso.encore.nat_int_QMARK_(n_full))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50243){var e \x3d e50243;\nreturn e;\n}})();\nif(cljs.core.truth_(error50241)){\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,3190,23,new cljs.core.Symbol(\x22taoensso.encore\x22,\x22nat-int?\x22,\x22taoensso.encore/nat-int?\x22,2095181418,null),new cljs.core.Symbol(null,\x22n-full\x22,\x22n-full\x22,797009712,null),n_full,null,error50241);\n} else {\nreturn n_full;\n}\n})());\nvar vec__50234 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(x),/\\//);\nvar p1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50234,(0),null);\nvar p2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50234,(1),null);\nif(cljs.core.truth_(p2)){\nvar name_part \x3d p2;\nvar ns_parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(p1,/\\./);\nvar n_to_abbr \x3d (cljs.core.count(ns_parts) - n_full__$1);\nvar sb \x3d taoensso.encore.reduce_indexed((function (sb,idx,in$){\nif((idx \x3d\x3d\x3d (0))){\n} else {\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,\x22.\x22);\n}\n\nif((idx \x3c n_to_abbr)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,in$.substring((0),(1)));\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,in$);\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),ns_parts);\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,\x22/\x22);\n\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,name_part);\n\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\nif((x instanceof cljs.core.Keyword)){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(s);\n} else {\nif((x instanceof cljs.core.Symbol)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(s);\n} else {\nreturn s;\n}\n}\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.abbreviate_ns.cljs$lang$maxFixedArity \x3d 2);\n\nvar as__QMARK_qname_50998 \x3d taoensso.encore.as__QMARK_qname;\nvar always_50999 \x3d (function taoensso$encore$always(_in){\nreturn true;\n});\nvar never_51000 \x3d (function taoensso$encore$never(_in){\nreturn false;\n});\nvar ns_QMARK__51001 \x3d (function (x){\nreturn (x instanceof cljs.core.Namespace);\n});\nvar input_str_BANG__51002 \x3d (function (x){\nvar or__5025__auto__ \x3d (as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1(x) : as__QMARK_qname_50998.call(null,x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif((x \x3d\x3d null)){\nreturn \x22\x22;\n} else {\nif(ns_QMARK__51001(x)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3233,13], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22name-filter\x22,\x22taoensso.encore/name-filter\x22,-2070485905,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22filter-input-arg\x22,\x22filter-input-arg\x22,1147690060,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22namespace\x22,\x22namespace\x22,1263021155,null),\x22null\x22,new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22,new cljs.core.Symbol(null,\x22keyword\x22,\x22keyword\x22,-1843046022,null),\x22null\x22], null), null)], null));\n}\n}\n}\n});\nvar wild_str__GT__QMARK_re_pattern_51003 \x3d (function (s){\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(s,\x22*\x22))){\nreturn cljs.core.re_pattern(clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace([\x22^\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),\x22$\x22].join(\x27\x27),\x22(.*)\x22,\x22__OR_CHILDREN__\x22),\x22.\x22,\x22\\\\.\x22),\x22*\x22,\x22.*\x22),\x22__OR_CHILDREN__\x22,\x22(\\\\..*)?\x22));\n} else {\nreturn null;\n}\n});\nvar compile__GT_match_fn_51004 \x3d (function taoensso$encore$compile__GT_match_fn(spec,cache_QMARK_){\nwhile(true){\nif(cljs.core.truth_((function (){var fexpr__50255 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22*\x22,null,new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423),null], null), null);\nreturn (fexpr__50255.cljs$core$IFn$_invoke$arity$1 ? fexpr__50255.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__50255.call(null,spec));\n})())){\nreturn always_50999;\n} else {\nif(cljs.core.truth_((function (){var fexpr__50257 \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22none\x22,\x22none\x22,1333468478)]);\nreturn (fexpr__50257.cljs$core$IFn$_invoke$arity$1 ? fexpr__50257.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__50257.call(null,spec));\n})())){\nreturn never_51000;\n} else {\nif(taoensso.encore.re_pattern_QMARK_(spec)){\nreturn ((function (spec,cache_QMARK_,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nreturn cljs.core.re_find(spec,input_str_BANG__51002(in$));\n});\n;})(spec,cache_QMARK_,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n} else {\nif(ns_QMARK__51001(spec)){\nvar G__51005 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec);\nvar G__51006 \x3d cache_QMARK_;\nspec \x3d G__51005;\ncache_QMARK_ \x3d G__51006;\ncontinue;\n} else {\nvar b2__43681__auto__ \x3d (as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_50998.cljs$core$IFn$_invoke$arity$1(spec) : as__QMARK_qname_50998.call(null,spec));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar str_spec \x3d b2__43681__auto__;\nvar b2__43681__auto____$1 \x3d wild_str__GT__QMARK_re_pattern_51003(str_spec);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar re_pattern \x3d b2__43681__auto____$1;\nvar G__51008 \x3d re_pattern;\nvar G__51009 \x3d cache_QMARK_;\nspec \x3d G__51008;\ncache_QMARK_ \x3d G__51009;\ncontinue;\n} else {\nreturn ((function (spec,cache_QMARK_,b2__43681__auto____$1,str_spec,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(str_spec,input_str_BANG__51002(in$));\n});\n;})(spec,cache_QMARK_,b2__43681__auto____$1,str_spec,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n}\n} else {\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.set_QMARK_(spec)))){\nif(cljs.core.truth_((function (){var fexpr__50259 \x3d cljs.core.set(spec);\nreturn (fexpr__50259.cljs$core$IFn$_invoke$arity$1 ? fexpr__50259.cljs$core$IFn$_invoke$arity$1(\x22*\x22) : fexpr__50259.call(null,\x22*\x22));\n})())){\nreturn always_50999;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(spec),(1))){\nvar G__51010 \x3d cljs.core.first(spec);\nvar G__51011 \x3d cache_QMARK_;\nspec \x3d G__51010;\ncache_QMARK_ \x3d G__51011;\ncontinue;\n} else {\nvar vec__50260 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (spec,cache_QMARK_,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function (p__50264,spec__$1){\nvar vec__50265 \x3d p__50264;\nvar fixed_strs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50265,(0),null);\nvar re_patterns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50265,(1),null);\nvar spec__$2 \x3d ((ns_QMARK__51001(spec__$1))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec__$1):taoensso.encore.as_qname(spec__$1));\nvar b2__43681__auto____$1 \x3d ((taoensso.encore.re_pattern_QMARK_(spec__$2))?spec__$2:wild_str__GT__QMARK_re_pattern_51003(spec__$2));\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar re_pattern \x3d b2__43681__auto____$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [fixed_strs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(re_patterns,re_pattern)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(fixed_strs,spec__$2),re_patterns], null);\n}\n});})(spec,cache_QMARK_,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentHashSet.EMPTY,cljs.core.PersistentVector.EMPTY], null),spec);\nvar fixed_strs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50260,(0),null);\nvar re_patterns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50260,(1),null);\nvar fx_match \x3d cljs.core.not_empty(fixed_strs);\nvar re_match \x3d (function (){var b2__43681__auto____$1 \x3d cljs.core.not_empty(re_patterns);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar re_patterns__$1 \x3d b2__43681__auto____$1;\nvar f \x3d ((function (spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in_str){\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2(((function (spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function (p1__50248_SHARP_){\nreturn cljs.core.re_find(p1__50248_SHARP_,in_str);\n});})(spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n,re_patterns__$1);\n});})(spec,cache_QMARK_,re_patterns__$1,b2__43681__auto____$1,vec__50260,fixed_strs,re_patterns,fx_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n;\nif(cljs.core.truth_(cache_QMARK_)){\nreturn (taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1(f) : taoensso.encore.fmemoize.call(null,f));\n} else {\nreturn f;\n}\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d fx_match;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn re_match;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar in_str \x3d input_str_BANG__51002(in$);\nvar or__5025__auto__ \x3d (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(in_str) : fx_match.call(null,in_str));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(in_str) : re_match.call(null,in_str));\n}\n});\n;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n} else {\nif(cljs.core.truth_(fx_match)){\nreturn ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar G__50271 \x3d input_str_BANG__51002(in$);\nreturn (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(G__50271) : fx_match.call(null,G__50271));\n});\n;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n} else {\nif(cljs.core.truth_(re_match)){\nreturn ((function (spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar G__50272 \x3d input_str_BANG__51002(in$);\nreturn (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(G__50272) : re_match.call(null,G__50272));\n});\n;})(spec,cache_QMARK_,vec__50260,fixed_strs,re_patterns,fx_match,re_match,b2__43681__auto__,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003))\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,null,\x22[encore/cond!] No matching clause\x22,null,null);\n}\n}\n}\n}\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3296,11], null),spec,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22name-filter\x22,\x22taoensso.encore/name-filter\x22,-2070485905,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22filter-spec\x22,\x22filter-spec\x22,539212879,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22namespace\x22,\x22namespace\x22,1263021155,null),\x22null\x22,new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22,new cljs.core.Symbol(null,\x22keyword\x22,\x22keyword\x22,-1843046022,null),\x22null\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),new cljs.core.Symbol(null,\x22\x3cspec\x3e\x22,\x22\x3cspec\x3e\x22,1165019597,null),new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),new cljs.core.Symbol(null,\x22\x3cspec\x3e\x22,\x22\x3cspec\x3e\x22,1165019597,null)], null),\x22null\x22,new cljs.core.Symbol(null,\x22regex\x22,\x22regex\x22,-1714946913,null),\x22null\x22], null), null)], null));\n}\n}\n}\n}\n}\n}\nbreak;\n}\n});\n/**\n * Given filter `spec`, returns a compiled (fn match? [x]) that:\n * - Takes a string, keyword, symbol, or namespace.\n * - Returns true iff input matches spec.\n * \n * Useful for efficiently filtering namespaces, class names, id kws, etc.\n * \n * Spec may be:\n * - A namespace to match exactly\n * - A regex pattern to match\n * - A str/kw/sym to match, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will match \x22foo.bar\x22\n * \x22foo(.*)\x22 will match \x22foo.bar\x22 and \x22foo\x22\n * If you need literal \x22*\x22s, use #\x22\\*\x22 regex instead.\n * \n * - A set/vector of the above to match any\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as the above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n * \n * Spec examples:\n * *ns*, #{}, \x22*\x22, \x22foo.bar\x22, \x22foo.bar.*\x22, \x22foo.bar(.*)\x22,\n * #{\x22foo\x22 \x22bar.*\x22}, #\x22(foo1|foo2)\\.bar\x22,\n * {:allow #{\x22foo\x22 \x22bar.*\x22} :disallow #{\x22foo.*.bar.*\x22}}.\n */\ntaoensso.encore.name_filter \x3d (function taoensso$encore$name_filter(spec){\nwhile(true){\nif(cljs.core.map_QMARK_(spec)){\nvar cache_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22cache?\x22,\x22cache?\x22,-1601953949));\nvar allow_spec \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22whitelist\x22,\x22whitelist\x22,-979294437));\n}\n})();\nvar disallow_spec \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22blacklist\x22,\x22blacklist\x22,1248093170));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22deny\x22,\x22deny\x22,1589338523));\n}\n}\n})();\nvar allow \x3d (function (){var b2__43681__auto__ \x3d allow_spec;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar as \x3d b2__43681__auto__;\nreturn compile__GT_match_fn_51004(as,cache_QMARK_);\n} else {\nreturn null;\n}\n})();\nvar disallow \x3d (function (){var b2__43681__auto__ \x3d disallow_spec;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar ds \x3d b2__43681__auto__;\nreturn compile__GT_match_fn_51004(ds,cache_QMARK_);\n} else {\nreturn null;\n}\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,always_50999)){\nreturn never_51000;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,never_51000)){\nreturn never_51000;\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d allow;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn disallow;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif((allow.cljs$core$IFn$_invoke$arity$1 ? allow.cljs$core$IFn$_invoke$arity$1(in$) : allow.call(null,in$))){\nif((disallow.cljs$core$IFn$_invoke$arity$1 ? disallow.cljs$core$IFn$_invoke$arity$1(in$) : disallow.call(null,in$))){\nreturn false;\n} else {\nreturn true;\n}\n} else {\nreturn false;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004))\n} else {\nif(cljs.core.truth_(allow)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,always_50999)){\nreturn always_50999;\n} else {\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif(allow(in$)){\nreturn true;\n} else {\nreturn false;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004))\n}\n} else {\nif(cljs.core.truth_(disallow)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,never_51000)){\nreturn always_50999;\n} else {\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif(disallow(in$)){\nreturn false;\n} else {\nreturn true;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_50998,always_50999,never_51000,ns_QMARK__51001,input_str_BANG__51002,wild_str__GT__QMARK_re_pattern_51003,compile__GT_match_fn_51004))\n}\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3347,11], null),\x22[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow-spec\x22,\x22allow-spec\x22,448749872),allow_spec,new cljs.core.Keyword(null,\x22disallow-spec\x22,\x22disallow-spec\x22,-16464308),disallow_spec], null),null);\n}\n}\n}\n}\n}\n} else {\nvar G__51015 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),spec,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),null], null);\nspec \x3d G__51015;\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Single system newline\n */\ntaoensso.encore.newline \x3d \x22\\n\x22;\n/**\n * Double system newline\n */\ntaoensso.encore.newlines \x3d [\x22\\n\x22,\x22\\n\x22].join(\x27\x27);\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.x__GT_str \x3d (function taoensso$encore$x__GT_str(allow_readably_QMARK_,allow_dup_QMARK_,add_newline_QMARK_,x){\nif(cljs.core.truth_(allow_readably_QMARK_)){\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n}\n} else {\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n}\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.xs__GT_str \x3d (function taoensso$encore$xs__GT_str(allow_readably_QMARK_,allow_dup_QMARK_,add_newline_QMARK_,xs){\nif(cljs.core.truth_(allow_readably_QMARK_)){\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.prn_str,xs);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str,xs);\n}\n} else {\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.println_str,xs);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.print_str,xs);\n}\n}\n});\n/**\n * Identical to `core/pr`.\n */\ntaoensso.encore.pr \x3d cljs.core.pr;\n\n/**\n * Identical to `core/prn`.\n */\ntaoensso.encore.prn \x3d cljs.core.prn;\n\n/**\n * Identical to `core/print`.\n */\ntaoensso.encore.print \x3d cljs.core.print;\n\n/**\n * Identical to `core/println`.\n */\ntaoensso.encore.println \x3d cljs.core.println;\n/**\n * Prints given arg to an edn string readable with `read-edn`.\n */\ntaoensso.encore.pr_edn \x3d (function taoensso$encore$pr_edn(x){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core._STAR_print_level_STAR_ \x3d\x3d null);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core._STAR_print_length_STAR_ \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn cljs.core._STAR_print_readably_STAR_;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn taoensso.encore.x__GT_str(true,false,false,x);\n} else {\nvar _STAR_print_level_STAR__orig_val__50285 \x3d cljs.core._STAR_print_level_STAR_;\nvar _STAR_print_length_STAR__orig_val__50286 \x3d cljs.core._STAR_print_length_STAR_;\nvar _STAR_print_readably_STAR__orig_val__50287 \x3d cljs.core._STAR_print_readably_STAR_;\nvar _STAR_print_level_STAR__temp_val__50288 \x3d null;\nvar _STAR_print_length_STAR__temp_val__50289 \x3d null;\nvar _STAR_print_readably_STAR__temp_val__50290 \x3d true;\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__temp_val__50288);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__temp_val__50289);\n\n(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__temp_val__50290);\n\ntry{return taoensso.encore.x__GT_str(true,false,false,x);\n}finally {(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__orig_val__50287);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__orig_val__50286);\n\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__orig_val__50285);\n}}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.pr_edn_STAR_ \x3d (function taoensso$encore$pr_edn_STAR_(x){\nreturn taoensso.encore.x__GT_str(true,false,false,x);\n});\n/**\n * Reads given edn string to return a Clj/s value.\n */\ntaoensso.encore.read_edn \x3d (function taoensso$encore$read_edn(var_args){\nvar G__50294 \x3d arguments.length;\nswitch (G__50294) {\ncase 1:\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2(null,s);\n}));\n\n(taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nif((((s \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)))){\nreturn null;\n} else {\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar readers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399));\nvar readers__$1 \x3d ((cljs.core.keyword_identical_QMARK_(readers,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399)))?cljs.core.deref(cljs.reader._STAR_tag_table_STAR_):readers);\nvar default$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399));\nvar default$__$1 \x3d ((cljs.core.keyword_identical_QMARK_(default$,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399)))?cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_):default$);\nvar opts__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(opts,new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),readers__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1], 0));\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(opts__$1,s);\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3506,6], null),\x22[encore/read-edn] Unexpected arg type (expected string or nil)\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),s,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(s)], null)], null),null);\n}\n}\n}));\n\n(taoensso.encore.read_edn.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.str_impl \x3d (function taoensso$encore$str_impl(var_args){\nvar G__50298 \x3d arguments.length;\nswitch (G__50298) {\ncase 2:\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,class_name){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(class_name);\n}));\n\n(taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,class_name,data){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(class_name),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(data),\x22]\x22].join(\x27\x27);\n}));\n\n(taoensso.encore.str_impl.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * For Clj: returns a random `java.util.UUID`.\n * For Cljs: returns a random UUID string.\n * \n * Uses strong randomness when possible.\n * See also `uuid-str`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.encore.uuid \x3d (function taoensso$encore$uuid(){\nvar b2__43681__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_crypto,\x22randomUUID\x22);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar f \x3d b2__43681__auto__;\nreturn f.call(taoensso.encore.js__QMARK_crypto);\n} else {\nvar quad_hex \x3d (function (){\nvar unpadded_hex \x3d cljs.core.rand_int((65536)).toString((16));\nvar G__50302 \x3d ((unpadded_hex).length);\nswitch (G__50302) {\ncase (1):\nreturn [\x22000\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (2):\nreturn [\x2200\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (3):\nreturn [\x220\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ndefault:\nreturn unpadded_hex;\n\n}\n});\nvar ver_trip_hex \x3d ((16384) | ((4095) \x26 cljs.core.rand_int((65536)))).toString((16));\nvar res_trip_hex \x3d ((32768) | ((16383) \x26 cljs.core.rand_int((65536)))).toString((16));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),\x22-\x22,ver_trip_hex,\x22-\x22,res_trip_hex,\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex())].join(\x27\x27);\n}\n});\n/**\n * Returns a random UUID string of given length (max 36).\n * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.encore.uuid_str \x3d (function taoensso$encore$uuid_str(var_args){\nvar G__50308 \x3d arguments.length;\nswitch (G__50308) {\ncase 1:\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 0:\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$1 \x3d (function (max_len){\nvar or__5025__auto__ \x3d taoensso.encore.substr(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0(),new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(0),max_len);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.uuid();\n}));\n\n(taoensso.encore.uuid_str.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns a random byte array of given size.\n */\ntaoensso.encore.rand_bytes \x3d (function taoensso$encore$rand_bytes(prefer_secure_QMARK_,size){\nvar ba \x3d (new Uint8Array(size));\nvar b2__43681__auto___51020 \x3d (function (){var and__5023__auto__ \x3d prefer_secure_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn taoensso.encore.js__QMARK_crypto;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto___51020)){\nvar crypto_51021 \x3d b2__43681__auto___51020;\ncrypto_51021.getRandomValues(ba);\n} else {\nvar n__5616__auto___51022 \x3d size;\nvar i_51023 \x3d (0);\nwhile(true){\nif((i_51023 \x3c n__5616__auto___51022)){\n(ba[i_51023] \x3d Math.floor(((256) * Math.random())));\n\nvar G__51024 \x3d (i_51023 + (1));\ni_51023 \x3d G__51024;\ncontinue;\n} else {\n}\nbreak;\n}\n}\n\nreturn ba;\n});\n/**\n * Returns a (fn rand-id []) that returns random id strings.\n * Options include:\n * `:chars` - \u2208 #{\x3cstring\x3e :nanoid :alphanumeric :no-look-alikes ...}\n * `:len` - Length of id strings to generate\n * `:rand-bytes-fn` - Optional (fn [size]) to return random byte array of given size\n * \n * See also `uuid-str`, `nano-id`.\n */\ntaoensso.encore.rand_id_fn \x3d (function taoensso$encore$rand_id_fn(p__50314){\nvar map__50315 \x3d p__50314;\nvar map__50315__$1 \x3d cljs.core.__destructure_map(map__50315);\nvar chars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22nanoid\x22,\x22nanoid\x22,-90964628));\nvar len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),(21));\nvar rand_bytes_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50315__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true));\nvar chars__$1 \x3d (function (){var G__50317 \x3d chars;\nvar G__50317__$1 \x3d (((G__50317 instanceof cljs.core.Keyword))?G__50317.fqn:null);\nswitch (G__50317__$1) {\ncase \x22alphanumeric\x22:\nreturn \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x22;\n\nbreak;\ncase \x22nanoid\x22:\nreturn \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\x22;\n\nbreak;\ncase \x22nanoid-readable\x22:\nreturn \x22346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz\x22;\n\nbreak;\ncase \x22numbers\x22:\nreturn \x220123456789\x22;\n\nbreak;\ncase \x22alpha-lowercase\x22:\nreturn \x22abcdefghijklmnopqrstuvwxyz\x22;\n\nbreak;\ncase \x22alpha-uppercase\x22:\nreturn \x22ABCDEFGHIJKLMNOPQRSTUVWXYZ\x22;\n\nbreak;\ncase \x22hex-lowercase\x22:\nreturn \x220123456789abcdef\x22;\n\nbreak;\ncase \x22hex-uppercase\x22:\nreturn \x220123456789ABCDEF\x22;\n\nbreak;\ndefault:\nif(typeof chars \x3d\x3d\x3d \x27string\x27){\nreturn chars;\n} else {\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,3689,11,new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),chars,null,null);\n}\n\n}\n})();\nvar nchars \x3d cljs.core.count(chars__$1);\nvar max_char_idx \x3d (nchars - (1));\nvar chars__$2 \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(chars__$1);\nvar mask \x3d ((-1) \x26 (((2) \x3c\x3c (Math.floor((Math.log((nchars - (1))) / Math.log((2)))) | (0))) - (1)));\nvar exp_bytes \x3d ((mask * len) / nchars);\nvar stepn \x3d ((function (){var x__5110__auto__ \x3d (2);\nvar y__5111__auto__ \x3d Math.ceil((0.2 * exp_bytes));\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})() | (0));\nvar step1 \x3d (((((cljs.core.mod((256),nchars) | (0)) \x3d\x3d\x3d (0)))?len:Math.ceil((1.2 * exp_bytes))) | (0));\nreturn (function taoensso$encore$rand_id_fn_$_rand_id(){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar idx \x3d (0);\nvar max_idx \x3d (step1 - (1));\nvar rand_bytes \x3d (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(step1) : rand_bytes_fn.call(null,step1));\nwhile(true){\nvar possible_ch_idx_51026 \x3d ((rand_bytes[idx]) \x26 mask);\nif((possible_ch_idx_51026 \x3c\x3d max_char_idx)){\nsb.append((chars__$2[possible_ch_idx_51026]));\n} else {\n}\n\nif((sb.length() \x3d\x3d\x3d len)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nif((idx \x3d\x3d\x3d max_idx)){\nvar G__51027 \x3d (0);\nvar G__51028 \x3d (stepn - (1));\nvar G__51029 \x3d (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(stepn) : rand_bytes_fn.call(null,stepn));\nidx \x3d G__51027;\nmax_idx \x3d G__51028;\nrand_bytes \x3d G__51029;\ncontinue;\n} else {\nvar G__51030 \x3d (idx + (1));\nvar G__51031 \x3d max_idx;\nvar G__51032 \x3d rand_bytes;\nidx \x3d G__51030;\nmax_idx \x3d G__51031;\nrand_bytes \x3d G__51032;\ncontinue;\n}\n}\nbreak;\n}\n});\n});\nvar chars_51033 \x3d (function (){var s \x3d \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\x22;\nreturn cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(s);\n})();\n/**\n * Returns a random \x22Nano ID\x22 of given length, Ref. \x3chttps://github.com/ai/nanoid\x3e.\n * Faster, variable-length version of (rand-id-fn {:chars :nanoid}).\n * 126 bits of entropy with default length (21).\n * See also `uuid-str`, `rand-id-fn`.\n */\ntaoensso.encore.nanoid \x3d (function taoensso$encore$nanoid(var_args){\nvar G__50333 \x3d arguments.length;\nswitch (G__50333) {\ncase 0:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(true,(21));\n}));\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$1 \x3d (function (len){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(true,len);\n}));\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2 \x3d (function (prefer_secure_QMARK_,len){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar ba \x3d taoensso.encore.rand_bytes(prefer_secure_QMARK_,len);\nvar max_idx \x3d (len - (1));\nvar idx_51035 \x3d (0);\nwhile(true){\nsb.append((chars_51033[((ba[idx_51035]) \x26 (63))]));\n\nif((idx_51035 \x3c max_idx)){\nvar G__51036 \x3d (idx_51035 + (1));\nidx_51035 \x3d G__51036;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}));\n\n(taoensso.encore.nanoid.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.LightAtom \x3d (function (state){\nthis.state \x3d state;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 98304;\n});\n(taoensso.encore.LightAtom.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.state;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IReset$_reset_BANG_$arity$2 \x3d (function (_,new$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\n(self__.state \x3d new$);\n\nreturn new$;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 \x3d (function (t,swap_fn){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn (t__$1.cljs$core$IFn$_invoke$arity$1 ? t__$1.cljs$core$IFn$_invoke$arity$1(swap_fn) : t__$1.call(null,swap_fn));\n}));\n\n(taoensso.encore.LightAtom.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__50341 \x3d (arguments.length - (1));\nswitch (G__50341) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.LightAtom.prototype.apply \x3d (function (self__,args50337){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50337)));\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.state;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (swap_fn){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar new$ \x3d (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(self__.state) : swap_fn.call(null,self__.state));\n(self__.state \x3d new$);\n\nreturn new$;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,swap_fn){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar old_map \x3d self__.state;\nvar new_val \x3d (function (){var G__50342 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,k);\nreturn (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(G__50342) : swap_fn.call(null,G__50342));\n})();\nvar new_map \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old_map,k,new_val);\n(self__.state \x3d new_map);\n\nreturn new_val;\n}));\n\n(taoensso.encore.LightAtom.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(taoensso.encore.LightAtom.cljs$lang$type \x3d true);\n\n(taoensso.encore.LightAtom.cljs$lang$ctorStr \x3d \x22taoensso.encore/LightAtom\x22);\n\n(taoensso.encore.LightAtom.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LightAtom\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LightAtom.\n */\ntaoensso.encore.__GT_LightAtom \x3d (function taoensso$encore$__GT_LightAtom(state){\nreturn (new taoensso.encore.LightAtom(state));\n});\n\n/**\n * Private, don\x27t use. Micro-optimized lightweight `atom`.\n * Up to 30% faster than standard atoms, with the same atomicity guarantees.\n */\ntaoensso.encore.latom \x3d (function taoensso$encore$latom(init_state){\nreturn (new taoensso.encore.LightAtom(init_state));\n});\n/**\n * Impln. for 0-key resets\n */\ntaoensso.encore._reset_k0_BANG_ \x3d (function taoensso$encore$_reset_k0_BANG_(return$,atom_,m1){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m1,m1) : return$.call(null,m0,m0,m1,m1));\n} else {\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Impln. for 1-key resets\n */\ntaoensso.encore._reset_k1_BANG_ \x3d (function taoensso$encore$_reset_k1_BANG_(return$,atom_,k,not_found,v1){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__50352 \x3d m0;\nvar G__50353 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar G__50354 \x3d m1;\nvar G__50355 \x3d v1;\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50352,G__50353,G__50354,G__50355) : return$.call(null,G__50352,G__50353,G__50354,G__50355));\n} else {\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Impln. for n-key resets\n */\ntaoensso.encore._reset_kn_BANG_ \x3d (function taoensso$encore$_reset_kn_BANG_(return$,atom_,ks,not_found,v1){\nvar b2__43681__auto__ \x3d cljs.core.seq(ks);\nif(b2__43681__auto__){\nvar ks_seq \x3d b2__43681__auto__;\nif(cljs.core.next(ks_seq)){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.assoc_in(m0,ks,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__50359 \x3d m0;\nvar G__50360 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar G__50361 \x3d m1;\nvar G__50362 \x3d v1;\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50359,G__50360,G__50361,G__50362) : return$.call(null,G__50359,G__50360,G__50361,G__50362));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nreturn taoensso.encore._reset_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ks,(0)),not_found,v1);\n}\n} else {\nreturn taoensso.encore._reset_k0_BANG_(return$,atom_,v1);\n}\n});\nvar return_51038 \x3d (function (m0,v0,m1,v1){\nreturn v0;\n});\n/**\n * Like `reset!` but supports `update-in` semantics, returns \x3cold-key-val\x3e.\n */\ntaoensso.encore.reset_in_BANG_ \x3d (function taoensso$encore$reset_in_BANG_(var_args){\nvar G__50369 \x3d arguments.length;\nswitch (G__50369) {\ncase 2:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,val){\nreturn taoensso.encore._reset_k0_BANG_(return_51038,atom_,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,val){\nreturn taoensso.encore._reset_kn_BANG_(return_51038,atom_,ks,null,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,val){\nreturn taoensso.encore._reset_kn_BANG_(return_51038,atom_,ks,not_found,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `reset-in!` but optimized for single-key case. Returns \x3cold-key-val\x3e.\n */\ntaoensso.encore.reset_val_BANG_ \x3d (function taoensso$encore$reset_val_BANG_(var_args){\nvar G__50377 \x3d arguments.length;\nswitch (G__50377) {\ncase 3:\nreturn taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,val){\nreturn taoensso.encore._reset_k1_BANG_(return_51038,atom_,k,null,val);\n}));\n\n(taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,val){\nreturn taoensso.encore._reset_k1_BANG_(return_51038,atom_,k,not_found,val);\n}));\n\n(taoensso.encore.reset_val_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\nvar sentinel_51042 \x3d ({});\nvar return_51043 \x3d (function (m0,v0,m1,v1){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,v1);\n});\n/**\n * Like `reset-in!` but returns true iff the atom\x27s value changed.\n */\ntaoensso.encore.reset_in_BANG__QMARK_ \x3d (function taoensso$encore$reset_in_BANG__QMARK_(var_args){\nvar G__50385 \x3d arguments.length;\nswitch (G__50385) {\ncase 2:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,val){\nreturn taoensso.encore._reset_k0_BANG_(return_51043,atom_,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,val){\nreturn taoensso.encore._reset_kn_BANG_(return_51043,atom_,ks,sentinel_51042,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,val){\nreturn taoensso.encore._reset_kn_BANG_(return_51043,atom_,ks,not_found,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `reset-in!?` but optimized for single-key case.\n * Returns true iff the atom\x27s value changed.\n */\ntaoensso.encore.reset_val_BANG__QMARK_ \x3d (function taoensso$encore$reset_val_BANG__QMARK_(var_args){\nvar G__50388 \x3d arguments.length;\nswitch (G__50388) {\ncase 3:\nreturn taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,new_val){\nvar v0 \x3d taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,sentinel_51042,new_val);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,new_val);\n}));\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,new_val){\nvar v0 \x3d taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,not_found,new_val);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,new_val);\n}));\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Atomically swaps value of `atom_` to `val` and returns\n * true iff the atom\x27s value changed. See also `reset-in!?`.\n */\ntaoensso.encore.reset_BANG__QMARK_ \x3d (function taoensso$encore$reset_BANG__QMARK_(atom_,val){\nwhile(true){\nvar old \x3d cljs.core.deref(atom_);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,val)){\nreturn false;\n} else {\nif(cljs.core.compare_and_set_BANG_(atom_,old,val)){\nreturn true;\n} else {\ncontinue;\n}\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.Swapped \x3d (function (newv,returnv){\nthis.newv \x3d newv;\nthis.returnv \x3d returnv;\n});\n\n(taoensso.encore.Swapped.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22newv\x22,\x22newv\x22,-238403387,null),new cljs.core.Symbol(null,\x22returnv\x22,\x22returnv\x22,-1488668972,null)], null);\n}));\n\n(taoensso.encore.Swapped.cljs$lang$type \x3d true);\n\n(taoensso.encore.Swapped.cljs$lang$ctorStr \x3d \x22taoensso.encore/Swapped\x22);\n\n(taoensso.encore.Swapped.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Swapped\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Swapped.\n */\ntaoensso.encore.__GT_Swapped \x3d (function taoensso$encore$__GT_Swapped(newv,returnv){\nreturn (new taoensso.encore.Swapped(newv,returnv));\n});\n\n\n/**\n * For use within the swap functions of `swap-in!` and `swap-val!`.\n * \n * Allows the easy decoupling of new and returned values. Compare:\n * (let [a (atom 0)] [(core/swap! a (fn [old] (inc old) )) @a]) [1 1] ; new\x3d1, return\x3d1\n * (let [a (atom 0)] [(swap-in! a (fn [old] (swapped (inc old) old))) @a]) [0 1] ; new\x3d1, return\x3d0\n * \n * Faster and much more flexible than `core/swap-vals!`, etc.\n * Especially useful when combined with the `update-in` semantics of `swap-in!`, etc.\n */\ntaoensso.encore.swapped \x3d (function taoensso$encore$swapped(new_val,return_val){\nreturn (new taoensso.encore.Swapped(new_val,return_val));\n});\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.swapped_vec \x3d (function taoensso$encore$swapped_vec(x){\nif((x instanceof taoensso.encore.Swapped)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x.newv,x.returnv], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,x], null);\n}\n});\n\n/**\n * Returns true iff given `Swapped` argument.\n */\ntaoensso.encore.swapped_QMARK_ \x3d (function taoensso$encore$swapped_QMARK_(x){\nreturn (x instanceof taoensso.encore.Swapped);\n});\n\ntaoensso.encore.return_swapped \x3d (function taoensso$encore$return_swapped(sw,m0,m1){\nvar rv \x3d sw.returnv;\nvar G__50404 \x3d rv;\nvar G__50404__$1 \x3d (((G__50404 instanceof cljs.core.Keyword))?G__50404.fqn:null);\nswitch (G__50404__$1) {\ncase \x22swap/changed?\x22:\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(m1,m0);\n\nbreak;\ncase \x22swap/new\x22:\nreturn m1;\n\nbreak;\ncase \x22swap/old\x22:\nreturn m0;\n\nbreak;\ndefault:\nreturn rv;\n\n}\n});\n/**\n * Impln. for 0-key swaps\n */\ntaoensso.encore._swap_k0_BANG_ \x3d (function taoensso$encore$_swap_k0_BANG_(return$,atom_,f){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(m0) : f.call(null,m0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar m1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(m1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m0,m0) : return$.call(null,m0,m0,m0,m0));\n}\n} else {\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m1,m1) : return$.call(null,m0,m0,m1,m1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n});\n/**\n * Impln. for 1-key swaps\n */\ntaoensso.encore._swap_k1_BANG_ \x3d (function taoensso$encore$_swap_k1_BANG_(return$,atom_,k,not_found,f){\nif(cljs.core.keyword_identical_QMARK_(f,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782))){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m0,k);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__50414 \x3d m0;\nvar G__50415 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar G__50416 \x3d m1;\nvar G__50417 \x3d new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782);\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50414,G__50415,G__50416,G__50417) : return$.call(null,G__50414,G__50415,G__50416,G__50417));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v0 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v0) : f.call(null,v0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar v1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m0);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m0,v0) : return$.call(null,m0,v0,m0,v0));\n}\n} else {\nvar m1 \x3d ((cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782)))?cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m0,k):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1));\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m1,v1) : return$.call(null,m0,v0,m1,v1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n});\n/**\n * Impln. for n-key swaps\n */\ntaoensso.encore._swap_kn_BANG_ \x3d (function taoensso$encore$_swap_kn_BANG_(return$,atom_,ks,not_found,f){\nvar b2__43681__auto__ \x3d cljs.core.seq(ks);\nif(b2__43681__auto__){\nvar ks_seq \x3d b2__43681__auto__;\nif(cljs.core.next(ks_seq)){\nif(cljs.core.keyword_identical_QMARK_(f,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782))){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2(m0,ks);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__50421 \x3d m0;\nvar G__50422 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar G__50423 \x3d m1;\nvar G__50424 \x3d new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782);\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__50421,G__50422,G__50423,G__50424) : return$.call(null,G__50421,G__50422,G__50423,G__50424));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v0 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v0) : f.call(null,v0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar v1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m0);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m0,v0) : return$.call(null,m0,v0,m0,v0));\n}\n} else {\nvar m1 \x3d ((cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782)))?taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2(m0,ks):cljs.core.assoc_in(m0,ks,v1));\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m1,v1) : return$.call(null,m0,v0,m1,v1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn taoensso.encore._swap_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ks,(0)),not_found,f);\n}\n} else {\nreturn taoensso.encore._swap_k0_BANG_(return$,atom_,f);\n}\n});\nvar return_51053 \x3d (function (m0,v0,m1,v1){\nreturn v1;\n});\n/**\n * Like `swap!` but supports `update-in` semantics and `swapped`.\n * Returns \x3cnew-key-val\x3e or \x3cswapped-return-val\x3e:\n * (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2] inc) \x3d\x3e 6\n * (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2]\n * (fn [old] (swapped (inc old) old))) \x3d\x3e 5\n */\ntaoensso.encore.swap_in_BANG_ \x3d (function taoensso$encore$swap_in_BANG_(var_args){\nvar G__50427 \x3d arguments.length;\nswitch (G__50427) {\ncase 2:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,f){\nreturn taoensso.encore._swap_k0_BANG_(return_51053,atom_,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,f){\nreturn taoensso.encore._swap_kn_BANG_(return_51053,atom_,ks,null,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,f){\nreturn taoensso.encore._swap_kn_BANG_(return_51053,atom_,ks,not_found,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `swap-in!` but optimized for single-key case.\n * Returns \x3cnew-key-val\x3e or \x3cswapped-return-val\x3e:\n * (swap-val! (atom {:k 5}) :k inc) \x3d\x3e 6\n * (swap-val! (atom {:k 5}) :k\n * (fn [old] (swapped (inc old) old))) \x3d\x3e 5\n */\ntaoensso.encore.swap_val_BANG_ \x3d (function taoensso$encore$swap_val_BANG_(var_args){\nvar G__50429 \x3d arguments.length;\nswitch (G__50429) {\ncase 3:\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,f){\nreturn taoensso.encore._swap_k1_BANG_(return_51053,atom_,k,null,f);\n}));\n\n(taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,f){\nreturn taoensso.encore._swap_k1_BANG_(return_51053,atom_,k,not_found,f);\n}));\n\n(taoensso.encore.swap_val_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Removes and returns value mapped to key:\n * (let [a (atom {:k :v})]\n * [(pull-val! a :k) @a]) \x3d\x3e [:v {}]\n */\ntaoensso.encore.pull_val_BANG_ \x3d (function taoensso$encore$pull_val_BANG_(var_args){\nvar G__50431 \x3d arguments.length;\nswitch (G__50431) {\ncase 2:\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,k){\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3(atom_,k,null);\n}));\n\n(taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,not_found){\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,not_found,(function (v0){\nreturn taoensso.encore.swapped(new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782),v0);\n}));\n}));\n\n(taoensso.encore.pull_val_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `core/memoize` but only caches the given fn\x27s latest input.\n * Speeds repeated fn calls with the same arguments.\n * Great for ReactJS render fn caching, etc.\n */\ntaoensso.encore.memoize_last \x3d (function taoensso$encore$memoize_last(f){\nvar sentinel \x3d ({});\nvar call \x3d (function (){var in_ \x3d cljs.core.volatile_BANG_(({}));\nvar out_ \x3d cljs.core.volatile_BANG_(null);\nreturn (function (in_STAR_,f0){\nwhile(true){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(in_STAR_,cljs.core.deref(in_))){\nreturn cljs.core.deref(out_);\n} else {\nvar out \x3d (f0.cljs$core$IFn$_invoke$arity$0 ? f0.cljs$core$IFn$_invoke$arity$0() : f0.call(null));\ncljs.core.vreset_BANG_(in_,in_STAR_);\n\ncljs.core.vreset_BANG_(out_,out);\n\nreturn out;\n}\nbreak;\n}\n});\n})();\nreturn (function() {\nvar taoensso$encore$memoize_last_$_memoized_fn \x3d null;\nvar taoensso$encore$memoize_last_$_memoized_fn__0 \x3d (function (){\nreturn call(sentinel,(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__1 \x3d (function (x){\nreturn call(x,(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__2 \x3d (function (x,y){\nreturn call(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y], null),(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null,x,y));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__3 \x3d (function (x,y,z){\nreturn call(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y,z], null),(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) : f.call(null,x,y,z));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__4 \x3d (function() { \nvar G__51062__delegate \x3d function (x,y,z,more){\nreturn call(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y,z,more], null),(function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,more);\n}));\n};\nvar G__51062 \x3d function (x,y,z,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 3) {\nvar G__51063__i \x3d 0, G__51063__a \x3d new Array(arguments.length - 3);\nwhile (G__51063__i \x3c G__51063__a.length) {G__51063__a[G__51063__i] \x3d arguments[G__51063__i + 3]; ++G__51063__i;}\n more \x3d new cljs.core.IndexedSeq(G__51063__a,0,null);\n} \nreturn G__51062__delegate.call(this,x,y,z,more);};\nG__51062.cljs$lang$maxFixedArity \x3d 3;\nG__51062.cljs$lang$applyTo \x3d (function (arglist__51064){\nvar x \x3d cljs.core.first(arglist__51064);\narglist__51064 \x3d cljs.core.next(arglist__51064);\nvar y \x3d cljs.core.first(arglist__51064);\narglist__51064 \x3d cljs.core.next(arglist__51064);\nvar z \x3d cljs.core.first(arglist__51064);\nvar more \x3d cljs.core.rest(arglist__51064);\nreturn G__51062__delegate(x,y,z,more);\n});\nG__51062.cljs$core$IFn$_invoke$arity$variadic \x3d G__51062__delegate;\nreturn G__51062;\n})()\n;\ntaoensso$encore$memoize_last_$_memoized_fn \x3d function(x,y,z,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$memoize_last_$_memoized_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$memoize_last_$_memoized_fn__1.call(this,x);\ncase 2:\nreturn taoensso$encore$memoize_last_$_memoized_fn__2.call(this,x,y);\ncase 3:\nreturn taoensso$encore$memoize_last_$_memoized_fn__3.call(this,x,y,z);\ndefault:\nvar G__51065 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__51066__i \x3d 0, G__51066__a \x3d new Array(arguments.length - 3);\nwhile (G__51066__i \x3c G__51066__a.length) {G__51066__a[G__51066__i] \x3d arguments[G__51066__i + 3]; ++G__51066__i;}\nG__51065 \x3d new cljs.core.IndexedSeq(G__51066__a,0,null);\n}\nreturn taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__51065);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$lang$maxFixedArity \x3d 3;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$lang$applyTo \x3d taoensso$encore$memoize_last_$_memoized_fn__4.cljs$lang$applyTo;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$memoize_last_$_memoized_fn__0;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$memoize_last_$_memoized_fn__1;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$memoize_last_$_memoized_fn__2;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$memoize_last_$_memoized_fn__3;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn taoensso$encore$memoize_last_$_memoized_fn;\n})()\n});\n/**\n * For Clj: fastest possible memoize. Non-racey, 0-7 arity only.\n * For Cljs: same as `core/memoize`.\n */\ntaoensso.encore.fmemoize \x3d (function taoensso$encore$fmemoize(f){\nreturn cljs.core.memoize(f);\n});\ntaoensso.encore.gc_now_QMARK_ \x3d (function taoensso$encore$gc_now_QMARK_(rate){\nreturn (Math.random() \x3c\x3d rate);\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.SimpleCacheEntry \x3d (function (delay,udt){\nthis.delay \x3d delay;\nthis.udt \x3d udt;\n});\n\n(taoensso.encore.SimpleCacheEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/SimpleCacheEntry\x22);\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/SimpleCacheEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/SimpleCacheEntry.\n */\ntaoensso.encore.__GT_SimpleCacheEntry \x3d (function taoensso$encore$__GT_SimpleCacheEntry(delay,udt){\nreturn (new taoensso.encore.SimpleCacheEntry(delay,udt));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.TickedCacheEntry \x3d (function (delay,udt,tick_lru,tick_lfu){\nthis.delay \x3d delay;\nthis.udt \x3d udt;\nthis.tick_lru \x3d tick_lru;\nthis.tick_lfu \x3d tick_lfu;\n});\n\n(taoensso.encore.TickedCacheEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tick-lru\x22,\x22tick-lru\x22,1625824877,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tick-lfu\x22,\x22tick-lfu\x22,-1976905322,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/TickedCacheEntry\x22);\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/TickedCacheEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/TickedCacheEntry.\n */\ntaoensso.encore.__GT_TickedCacheEntry \x3d (function taoensso$encore$__GT_TickedCacheEntry(delay,udt,tick_lru,tick_lfu){\nreturn (new taoensso.encore.TickedCacheEntry(delay,udt,tick_lru,tick_lfu));\n});\n\n/**\n * Returns a cached version of given referentially transparent function `f`.\n * \n * Like `core/memoize` but:\n * - Often faster, depending on options.\n * - Prevents race conditions on writes.\n * - Supports cache invalidation by prepending args with:\n * - `:cache/del` ; Delete cached item for subsequent args, returns nil.\n * - `:cache/fresh` ; Renew cached item for subsequent args, returns new val.\n * \n * - Supports options:\n * - `ttl-ms` ; Expire cached items after \x3cthis\x3e many msecs.\n * - `size` ; Restrict cache size to \x3cthis\x3e many items at the next garbage\n * ; collection (GC).\n * \n * - `gc-every` ; Run garbage collection (GC) approximately once every\n * ; \x3cthis\x3e many calls to cached fn. If unspecified, GC rate\n * ; will be determined automatically based on `size`.\n * \n * See also `defn-cached`, `fmemoize`, `memoize-last`.\n */\ntaoensso.encore.cache \x3d (function taoensso$encore$cache(var_args){\nvar G__50439 \x3d arguments.length;\nswitch (G__50439) {\ncase 1:\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar cache_ \x3d cljs.core.volatile_BANG_(cljs.core.PersistentArrayMap.EMPTY);\nvar get_sentinel \x3d ({});\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (xs){\nvar x1 \x3d cljs.core.first(xs);\nvar G__50442 \x3d x1;\nvar G__50442__$1 \x3d (((G__50442 instanceof cljs.core.Keyword))?G__50442.fqn:null);\nswitch (G__50442__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar xn \x3d cljs.core.next(xs);\nvar x2 \x3d cljs.core.first(xn);\nif(cljs.core.keyword_identical_QMARK_(x2,new cljs.core.Keyword(\x22mem\x22,\x22all\x22,\x22mem/all\x22,892075139))){\ncljs.core.vreset_BANG_(cache_,cljs.core.PersistentArrayMap.EMPTY);\n} else {\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cache_.cljs$core$IDeref$_deref$arity$1(null),xn));\n}\n\nreturn null;\n\nbreak;\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nvar xn \x3d cljs.core.next(xs);\nvar v \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,xn);\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cache_.cljs$core$IDeref$_deref$arity$1(null),xn,v));\n\nreturn v;\n\nbreak;\ndefault:\nvar v \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cache_),xs,get_sentinel);\nif((v \x3d\x3d\x3d get_sentinel)){\nvar v__$1 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,xs);\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cache_.cljs$core$IDeref$_deref$arity$1(null),xs,v__$1));\n\nreturn v__$1;\n} else {\nreturn v;\n}\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51076__i \x3d 0, G__51076__a \x3d new Array(arguments.length - 0);\nwhile (G__51076__i \x3c G__51076__a.length) {G__51076__a[G__51076__i] \x3d arguments[G__51076__i + 0]; ++G__51076__i;}\n xs \x3d new cljs.core.IndexedSeq(G__51076__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,xs);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__51078){\nvar xs \x3d cljs.core.seq(arglist__51078);\nreturn taoensso$encore$cached__delegate(xs);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n}));\n\n(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__50443,f){\nvar map__50444 \x3d p__50443;\nvar map__50444__$1 \x3d cljs.core.__destructure_map(map__50444);\nvar opts \x3d map__50444__$1;\nvar size \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007));\nvar ttl_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875));\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50444__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691));\nvar error50450_51079 \x3d (function (){try{if(cljs.core.truth_((function (arg50445){\nreturn taoensso.truss.impl.ks_LT__EQ_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),null,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),null,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),null], null), null),arg50445);\n})(opts))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50452){var e \x3d e50452;\nreturn e;\n}})();\nif(cljs.core.truth_(error50450_51079)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4357,4,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ks\x3c\x3d\x22,\x22ks\x3c\x3d\x22,1664853833),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),\x22null\x22,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),\x22null\x22,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),\x22null\x22], null), null)], null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),opts,null,error50450_51079);\n} else {\n}\n\nvar ps50454_51086 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22pos-num?\x22,\x22pos-num?\x22,976533390,null)], null);\nvar pf50455_51087 \x3d (function (arg50453){\nif((arg50453 \x3d\x3d null)){\nreturn true;\n} else {\nreturn taoensso.encore.pos_num_QMARK_(arg50453);\n}\n});\nvar df50456_51088 \x3d null;\nvar error50458_51089 \x3d (function (){try{if(cljs.core.truth_(pf50455_51087(size))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50460){var e \x3d e50460;\nreturn e;\n}})();\nif(cljs.core.truth_(error50458_51089)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4358,4,ps50454_51086,new cljs.core.Symbol(null,\x22size\x22,\x22size\x22,-1555742762,null),size,df50456_51088,error50458_51089);\n} else {\n}\n\nvar error50461_51091 \x3d (function (){try{if(cljs.core.truth_(pf50455_51087(ttl_ms))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50463){var e \x3d e50463;\nreturn e;\n}})();\nif(cljs.core.truth_(error50461_51091)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4358,4,ps50454_51086,new cljs.core.Symbol(null,\x22ttl-ms\x22,\x22ttl-ms\x22,-1349172894,null),ttl_ms,df50456_51088,error50461_51091);\n} else {\n}\n\nvar error50464_51092 \x3d (function (){try{if(cljs.core.truth_(pf50455_51087(gc_every))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50466){var e \x3d e50466;\nreturn e;\n}})();\nif(cljs.core.truth_(error50464_51092)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4358,4,ps50454_51086,new cljs.core.Symbol(null,\x22gc-every\x22,\x22gc-every\x22,-21013164,null),gc_every,df50456_51088,error50464_51092);\n} else {\n}\n\n\nif(cljs.core.truth_(size)){\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar ticker \x3d (taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 ? taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0() : taoensso.encore.counter.call(null));\nvar cache_ \x3d taoensso.encore.latom(null);\nvar latch_ \x3d taoensso.encore.latom(null);\nvar ttl_ms__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d ttl_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\nvar ttl_QMARK_ \x3d (!((ttl_ms__$1 \x3d\x3d\x3d (0))));\nvar size__$1 \x3d cljs.core.long$(size);\nvar gc_every__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d gc_every;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.clamp_int((1000),(16000),size__$1);\n}\n})());\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (args){\nvar a1 \x3d cljs.core.first(args);\nvar G__50467 \x3d a1;\nvar G__50467__$1 \x3d (((G__50467 instanceof cljs.core.Keyword))?G__50467.fqn:null);\nswitch (G__50467__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar argn \x3d cljs.core.next(args);\nvar a2 \x3d cljs.core.first(argn);\nif(cljs.core.truth_((function (){var G__50468 \x3d a2;\nvar G__50468__$1 \x3d (((G__50468 instanceof cljs.core.Keyword))?G__50468.fqn:null);\nswitch (G__50468__$1) {\ncase \x22cache/all\x22:\ncase \x22mem/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(cache_,null);\n} else {\nvar G__50469_51099 \x3d (function (p1__50436_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50436_SHARP_,argn);\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50469_51099) : cache_.call(null,G__50469_51099));\n}\n\nreturn null;\n\nbreak;\ndefault:\nvar tick \x3d (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null));\nvar instant \x3d ((ttl_QMARK_)?taoensso.encore.now_udt():(0));\nif((((cljs.core.rem(tick,gc_every__$1) \x3d\x3d\x3d (0))) \x26\x26 ((cljs.core.count((cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null))) \x3e\x3d (1.1 * size__$1))))){\nvar latch_51102 \x3d null;\nvar udt_floor_51103 \x3d (instant - ttl_ms__$1);\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_51102)){\nif(ttl_QMARK_){\nvar G__50470_51104 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){\nif((e.udt \x3c udt_floor_51103)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),m));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50470_51104) : cache_.call(null,G__50470_51104));\n} else {\n}\n\nvar snapshot_51107 \x3d (cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null));\nvar n_to_gc_51108 \x3d (cljs.core.count(snapshot_51107) - size__$1);\nif((n_to_gc_51108 \x3e\x3d (0.1 * size__$1))){\nvar ks_to_gc_51109 \x3d (function (){var G__50471 \x3d n_to_gc_51108;\nvar G__50472 \x3d (function (k){\nvar e \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(snapshot_51107,k);\nreturn (e.tick_lru + e.tick_lfu);\n});\nvar G__50473 \x3d cljs.core.keys(snapshot_51107);\nreturn (taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 ? taoensso.encore.top.cljs$core$IFn$_invoke$arity$3(G__50471,G__50472,G__50473) : taoensso.encore.top.call(null,G__50471,G__50472,G__50473));\n})();\nvar G__50474_51111 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),ks_to_gc_51109));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50474_51111) : cache_.call(null,G__50474_51111));\n} else {\n}\n\n} else {\n}\n} else {\n}\n\nvar fresh_QMARK_ \x3d (function (){var G__50475 \x3d a1;\nvar G__50475__$1 \x3d (((G__50475 instanceof cljs.core.Keyword))?G__50475.fqn:null);\nswitch (G__50475__$1) {\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nvar args__$1 \x3d (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args);\nvar _ \x3d null;\nvar e \x3d (function (){var G__50476 \x3d args__$1;\nvar G__50477 \x3d (function taoensso$encore$cached_$_swap_fn(_QMARK_e){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (_QMARK_e \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d fresh_QMARK_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn ((instant - _QMARK_e.udt) \x3e ttl_ms__$1);\n}\n}\n})())){\nreturn (new taoensso.encore.TickedCacheEntry((new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args__$1);\n}),null)),instant,tick,(1)));\n} else {\nvar e \x3d _QMARK_e;\nreturn (new taoensso.encore.TickedCacheEntry(e.delay,e.udt,tick,(e.tick_lfu + (1))));\n}\n});\nreturn (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__50476,G__50477) : cache_.call(null,G__50476,G__50477));\n})();\nreturn cljs.core.deref(e.delay);\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51113__i \x3d 0, G__51113__a \x3d new Array(arguments.length - 0);\nwhile (G__51113__i \x3c G__51113__a.length) {G__51113__a[G__51113__i] \x3d arguments[G__51113__i + 0]; ++G__51113__i;}\n args \x3d new cljs.core.IndexedSeq(G__51113__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,args);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__51114){\nvar args \x3d cljs.core.seq(arglist__51114);\nreturn taoensso$encore$cached__delegate(args);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n} else {\nif(cljs.core.truth_(ttl_ms)){\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar cache_ \x3d taoensso.encore.latom(null);\nvar latch_ \x3d taoensso.encore.latom(null);\nvar ttl_ms__$1 \x3d cljs.core.long$(ttl_ms);\nvar gc_rate \x3d (function (){var gce \x3d (function (){var or__5025__auto__ \x3d gc_every;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 8000.0;\n}\n})();\nreturn (1.0 / cljs.core.long$(gce));\n})();\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (args){\nvar a1 \x3d cljs.core.first(args);\nvar G__50478 \x3d a1;\nvar G__50478__$1 \x3d (((G__50478 instanceof cljs.core.Keyword))?G__50478.fqn:null);\nswitch (G__50478__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar argn \x3d cljs.core.next(args);\nvar a2 \x3d cljs.core.first(argn);\nif(cljs.core.truth_((function (){var G__50479 \x3d a2;\nvar G__50479__$1 \x3d (((G__50479 instanceof cljs.core.Keyword))?G__50479.fqn:null);\nswitch (G__50479__$1) {\ncase \x22cache/all\x22:\ncase \x22mem/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(cache_,null);\n} else {\nvar G__50480_51120 \x3d (function (p1__50437_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50437_SHARP_,argn);\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50480_51120) : cache_.call(null,G__50480_51120));\n}\n\nreturn null;\n\nbreak;\ndefault:\nvar instant \x3d taoensso.encore.now_udt();\nif(cljs.core.truth_((gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1 ? gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1(gc_rate) : gc_now_QMARK_.call(null,gc_rate)))){\nvar latch_51121 \x3d null;\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_51121)){\nvar G__50481_51122 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){\nif(((instant - e.udt) \x3e ttl_ms__$1)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),m));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__50481_51122) : cache_.call(null,G__50481_51122));\n\n} else {\n}\n} else {\n}\n\nvar fresh_QMARK_ \x3d (function (){var G__50482 \x3d a1;\nvar G__50482__$1 \x3d (((G__50482 instanceof cljs.core.Keyword))?G__50482.fqn:null);\nswitch (G__50482__$1) {\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nvar args__$1 \x3d (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args);\nvar _ \x3d null;\nvar e \x3d (function (){var G__50483 \x3d args__$1;\nvar G__50484 \x3d (function taoensso$encore$cached_$_swap_fn(_QMARK_e){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (_QMARK_e \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d fresh_QMARK_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn ((instant - _QMARK_e.udt) \x3e ttl_ms__$1);\n}\n}\n})())){\nreturn (new taoensso.encore.SimpleCacheEntry((new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args__$1);\n}),null)),instant));\n} else {\nreturn _QMARK_e;\n}\n});\nreturn (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__50483,G__50484) : cache_.call(null,G__50483,G__50484));\n})();\nreturn cljs.core.deref(e.delay);\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51125__i \x3d 0, G__51125__a \x3d new Array(arguments.length - 0);\nwhile (G__51125__i \x3c G__51125__a.length) {G__51125__a[G__51125__i] \x3d arguments[G__51125__i + 0]; ++G__51125__i;}\n args \x3d new cljs.core.IndexedSeq(G__51125__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,args);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__51126){\nvar args \x3d cljs.core.seq(arglist__51126);\nreturn taoensso$encore$cached__delegate(args);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n} else {\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1(f);\n}\n}\n}));\n\n(taoensso.encore.cache.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Alternative way to call `cache`, provided mostly for back compatibility.\n * See `cache` docstring for details.\n */\ntaoensso.encore.memoize \x3d (function taoensso$encore$memoize(var_args){\nvar G__50486 \x3d arguments.length;\nswitch (G__50486) {\ncase 1:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1(f);\n}));\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$2 \x3d (function (ttl_ms,f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),ttl_ms], null),f);\n}));\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$3 \x3d (function (size,ttl_ms,f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),size,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),ttl_ms], null),f);\n}));\n\n(taoensso.encore.memoize.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Private, don\x27t use.\n * Returns a basic rate limiter (fn []) that will return falsey (allow) at most once\n * every given number of milliseconds.\n * \n * Similar to (rate-limiter [1 \x3cmsecs\x3e]) but significantly faster to construct and run.\n * Doesn\x27t support request ids!\n */\ntaoensso.encore.rate_limiter_once_per \x3d (function taoensso$encore$rate_limiter_once_per(msecs){\nvar last_ \x3d cljs.core.volatile_BANG_((0));\nvar msecs__$1 \x3d cljs.core.long$(msecs);\nreturn (function() {\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per \x3d null;\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0 \x3d (function (){\nvar t1 \x3d Date.now();\nif(((t1 - cljs.core.deref(last_)) \x3e msecs__$1)){\ncljs.core.vreset_BANG_(last_,t1);\n\nreturn null;\n} else {\nreturn true;\n}\n});\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1 \x3d (function (req_id){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4580,17], null),\x22[encore/rate-limiter] Basic rate limiters don\x27t support request ids\x22,cljs.core.PersistentArrayMap.EMPTY,null);\n});\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per \x3d function(req_id){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0.call(this);\ncase 1:\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1.call(this,req_id);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0;\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1;\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per;\n})()\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitSpec \x3d (function (n,ms){\nthis.n \x3d n;\nthis.ms \x3d ms;\n});\n\n(taoensso.encore.LimitSpec.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22ms\x22,\x22ms\x22,487821794,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitSpec.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitSpec.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitSpec\x22);\n\n(taoensso.encore.LimitSpec.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitSpec\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitSpec.\n */\ntaoensso.encore.__GT_LimitSpec \x3d (function taoensso$encore$__GT_LimitSpec(n,ms){\nreturn (new taoensso.encore.LimitSpec(n,ms));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitEntry \x3d (function (n,udt0){\nthis.n \x3d n;\nthis.udt0 \x3d udt0;\n});\n\n(taoensso.encore.LimitEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt0\x22,\x22udt0\x22,-969222777,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitEntry\x22);\n\n(taoensso.encore.LimitEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitEntry.\n */\ntaoensso.encore.__GT_LimitEntry \x3d (function taoensso$encore$__GT_LimitEntry(n,udt0){\nreturn (new taoensso.encore.LimitEntry(n,udt0));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitHits \x3d (function (m,worst_lid,worst_ms){\nthis.m \x3d m;\nthis.worst_lid \x3d worst_lid;\nthis.worst_ms \x3d worst_ms;\n});\n\n(taoensso.encore.LimitHits.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22worst-lid\x22,\x22worst-lid\x22,-2058001927,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22worst-ms\x22,\x22worst-ms\x22,1541498579,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitHits.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitHits.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitHits\x22);\n\n(taoensso.encore.LimitHits.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitHits\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitHits.\n */\ntaoensso.encore.__GT_LimitHits \x3d (function taoensso$encore$__GT_LimitHits(m,worst_lid,worst_ms){\nreturn (new taoensso.encore.LimitHits(m,worst_lid,worst_ms));\n});\n\nvar limit_spec_51132 \x3d (function (n,ms){\nvar ps50487_51133 \x3d new cljs.core.Symbol(\x22taoensso.encore\x22,\x22pos-int?\x22,\x22taoensso.encore/pos-int?\x22,186070635,null);\nvar pf50488_51134 \x3d taoensso.encore.pos_int_QMARK_;\nvar df50489_51135 \x3d null;\nvar error50491_51136 \x3d (function (){try{if(cljs.core.truth_((pf50488_51134.cljs$core$IFn$_invoke$arity$1 ? pf50488_51134.cljs$core$IFn$_invoke$arity$1(n) : pf50488_51134.call(null,n)))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50493){var e \x3d e50493;\nreturn e;\n}})();\nif(cljs.core.truth_(error50491_51136)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4590,29,ps50487_51133,new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),n,df50489_51135,error50491_51136);\n} else {\n}\n\nvar error50494_51138 \x3d (function (){try{if(cljs.core.truth_((pf50488_51134.cljs$core$IFn$_invoke$arity$1 ? pf50488_51134.cljs$core$IFn$_invoke$arity$1(ms) : pf50488_51134.call(null,ms)))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50496){var e \x3d e50496;\nreturn e;\n}})();\nif(cljs.core.truth_(error50494_51138)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4590,29,ps50487_51133,new cljs.core.Symbol(null,\x22ms\x22,\x22ms\x22,487821794,null),ms,df50489_51135,error50494_51138);\n} else {\n}\n\n\nreturn (new taoensso.encore.LimitSpec(n,ms));\n});\ntaoensso.encore.coerce_limit_spec \x3d (function taoensso$encore$coerce_limit_spec(x){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.reduce_kv((function (acc,lid,p__50497){\nvar vec__50498 \x3d p__50497;\nvar n \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50498,(0),null);\nvar ms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50498,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,limit_spec_51132(n,ms));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\n} else {\nif(cljs.core.vector_QMARK_(x)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__50501){\nvar vec__50502 \x3d p__50501;\nvar n \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(0),null);\nvar ms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(1),null);\nvar _QMARK_lid \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50502,(2),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,(function (){var or__5025__auto__ \x3d _QMARK_lid;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [n,ms], null);\n}\n})(),limit_spec_51132(n,ms));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4602,7], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22rate-limiter\x22,\x22taoensso.encore/rate-limiter\x22,1705152470,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22rate-limiter-spec\x22,\x22rate-limiter-spec\x22,1678589253,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22vector\x22,\x22vector\x22,-751469611,null),\x22null\x22], null), null)], null));\n}\n}\n});\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.encore.rate_limiter \x3d (function taoensso$encore$rate_limiter(var_args){\nvar G__50507 \x3d arguments.length;\nswitch (G__50507) {\ncase 1:\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(null,spec);\n}));\n\n(taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,spec){\nvar map__50508 \x3d opts;\nvar map__50508__$1 \x3d cljs.core.__destructure_map(map__50508);\nvar with_state_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50508__$1,new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183));\nif(cljs.core.empty_QMARK_(spec)){\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.constantly(null)], null);\n} else {\nreturn cljs.core.constantly(null);\n}\n} else {\nvar spec__$1 \x3d taoensso.encore.coerce_limit_spec(spec);\nvar b2__43681__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502));\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(spec__$1),(1));\nif(and__5023__auto____$1){\nvar s \x3d cljs.core.val(cljs.core.first(spec__$1));\nif((s.n \x3d\x3d\x3d (1))){\nreturn s.ms;\n} else {\nreturn null;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar once_per_msecs \x3d b2__43681__auto__;\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,taoensso.encore.rate_limiter_once_per(once_per_msecs)], null);\n} else {\nreturn taoensso.encore.rate_limiter_once_per(once_per_msecs);\n}\n} else {\nvar latch_ \x3d taoensso.encore.latom(null);\nvar reqs_ \x3d taoensso.encore.latom(null);\nvar map__50509 \x3d opts;\nvar map__50509__$1 \x3d cljs.core.__destructure_map(map__50509);\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50509__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),16000.0);\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar gc_rate \x3d (function (){var gce \x3d cljs.core.long$(gc_every);\nreturn (1.0 / gce);\n})();\nvar f1 \x3d (function (rid,delta,peek_QMARK_){\nvar instant \x3d taoensso.encore.now_udt();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(peek_QMARK_);\nif(and__5023__auto__){\nreturn (gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1 ? gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1(gc_rate) : gc_now_QMARK_.call(null,gc_rate));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar latch_51147 \x3d null;\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_51147)){\nvar G__50510_51148 \x3d (function taoensso$encore$swap_fn(reqs){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,rid__$1,entries){\nvar new_entries \x3d cljs.core.reduce_kv((function (acc__$1,lid,e){\nvar b2__43681__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar s \x3d b2__43681__auto____$1;\nif((instant \x3e\x3d (e.udt0 + s.ms))){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,lid);\n} else {\nreturn acc__$1;\n}\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,lid);\n}\n}),entries,entries);\nif(cljs.core.empty_QMARK_(new_entries)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,rid__$1);\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,rid__$1,new_entries);\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d reqs;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),reqs));\n});\n(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__50510_51148) : reqs_.call(null,G__50510_51148));\n\n} else {\n}\n} else {\n}\n\nwhile(true){\nvar reqs \x3d (reqs_.cljs$core$IFn$_invoke$arity$0 ? reqs_.cljs$core$IFn$_invoke$arity$0() : reqs_.call(null));\nvar entries \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(reqs,rid);\nvar _QMARK_hits \x3d (cljs.core.truth_(entries)?cljs.core.reduce_kv(((function (reqs,entries,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_){\nreturn (function (acc,lid,e){\nvar b2__43681__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar s \x3d b2__43681__auto____$1;\nif(((e.n + delta) \x3c\x3d s.n)){\nreturn acc;\n} else {\nvar tdelta \x3d ((e.udt0 + s.ms) - instant);\nif((tdelta \x3c\x3d (0))){\nreturn acc;\n} else {\nif((acc \x3d\x3d null)){\nreturn (new taoensso.encore.LimitHits(cljs.core.PersistentArrayMap.createAsIfByAssoc([lid,tdelta]),lid,tdelta));\n} else {\nif((tdelta \x3e acc.worst_ms)){\nreturn (new taoensso.encore.LimitHits(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc.m,lid,tdelta),lid,tdelta));\n} else {\nreturn (new taoensso.encore.LimitHits(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc.m,lid,tdelta),acc.worst_lid,acc.worst_ms));\n}\n}\n}\n}\n} else {\nreturn acc;\n}\n});})(reqs,entries,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_))\n,null,entries):null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d peek_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn _QMARK_hits;\n}\n})())){\nvar b2__43681__auto____$1 \x3d _QMARK_hits;\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar h \x3d b2__43681__auto____$1;\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [h.worst_lid,h.worst_ms,h.m], null);\n} else {\nreturn null;\n}\n} else {\nvar b2__43681__auto____$1 \x3d (latch_.cljs$core$IFn$_invoke$arity$0 ? latch_.cljs$core$IFn$_invoke$arity$0() : latch_.call(null));\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar l \x3d b2__43681__auto____$1;\nreturn null;\n} else {\nvar new_entries \x3d cljs.core.reduce_kv(((function (b2__43681__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_){\nreturn (function (acc,lid,s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,(function (){var b2__43681__auto____$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(entries,lid);\nif(cljs.core.truth_(b2__43681__auto____$2)){\nvar e \x3d b2__43681__auto____$2;\nvar udt0 \x3d e.udt0;\nif((instant \x3e\x3d (udt0 + s.ms))){\nreturn (new taoensso.encore.LimitEntry(delta,instant));\n} else {\nreturn (new taoensso.encore.LimitEntry((delta + e.n),udt0));\n}\n} else {\nreturn (new taoensso.encore.LimitEntry(delta,instant));\n}\n})());\n});})(b2__43681__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__50509,map__50509__$1,gc_every,gc_now_QMARK_,gc_rate,b2__43681__auto__,spec__$1,map__50508,map__50508__$1,with_state_QMARK_))\n,entries,spec__$1);\nif(cljs.core.compare_and_set_BANG_(reqs_,reqs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(reqs,rid,new_entries))){\nreturn null;\n} else {\ncontinue;\n}\n}\n}\nbreak;\n}\n});\nvar limiter_fn \x3d (function() {\nvar taoensso$encore$a_rate_limiter \x3d null;\nvar taoensso$encore$a_rate_limiter__0 \x3d (function (){\nreturn f1(null,(1),false);\n});\nvar taoensso$encore$a_rate_limiter__1 \x3d (function (req_id){\nreturn f1(req_id,(1),false);\n});\nvar taoensso$encore$a_rate_limiter__2 \x3d (function (cmd,req_id){\nvar G__50511 \x3d cmd;\nvar G__50511__$1 \x3d (((G__50511 instanceof cljs.core.Keyword))?G__50511.fqn:null);\nswitch (G__50511__$1) {\ncase \x22rl/reset\x22:\ncase \x22limiter/reset\x22:\nif(cljs.core.truth_((function (){var G__50512 \x3d req_id;\nvar G__50512__$1 \x3d (((G__50512 instanceof cljs.core.Keyword))?G__50512.fqn:null);\nswitch (G__50512__$1) {\ncase \x22rl/all\x22:\ncase \x22limiter/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(reqs_,null);\n} else {\nvar G__50513_51155 \x3d (function (p1__50505_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__50505_SHARP_,req_id);\n});\n(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__50513_51155) : reqs_.call(null,G__50513_51155));\n}\n\nreturn null;\n\nbreak;\ncase \x22rl/peek\x22:\ncase \x22limiter/peek\x22:\nreturn f1(req_id,(1),true);\n\nbreak;\ndefault:\nif(typeof cmd \x3d\x3d\x3d \x27number\x27){\nreturn f1(req_id,cljs.core.long$(cmd),false);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4764,14], null),cmd,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22rate-limiter\x22,\x22taoensso.encore/rate-limiter\x22,1705152470,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22rate-limiter-command\x22,\x22rate-limiter-command\x22,1767414198,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22rl\x22,\x22reset\x22,\x22rl/reset\x22,-800926172),null,new cljs.core.Keyword(\x22rl\x22,\x22peek\x22,\x22rl/peek\x22,-291391771),null], null), null),new cljs.core.Keyword(null,\x22req-id\x22,\x22req-id\x22,-471642231),req_id], null));\n}\n\n}\n});\ntaoensso$encore$a_rate_limiter \x3d function(cmd,req_id){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$a_rate_limiter__0.call(this);\ncase 1:\nreturn taoensso$encore$a_rate_limiter__1.call(this,cmd);\ncase 2:\nreturn taoensso$encore$a_rate_limiter__2.call(this,cmd,req_id);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$a_rate_limiter__0;\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$a_rate_limiter__1;\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$a_rate_limiter__2;\nreturn taoensso$encore$a_rate_limiter;\n})()\n;\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [reqs_,limiter_fn], null);\n} else {\nreturn limiter_fn;\n}\n}\n}\n}));\n\n(taoensso.encore.rate_limiter.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.Counter \x3d (function (c){\nthis.c \x3d c;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.Counter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.c;\n}));\n\n(taoensso.encore.Counter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__50515 \x3d (arguments.length - (1));\nswitch (G__50515) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.Counter.prototype.apply \x3d (function (self__,args50514){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50514)));\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + (1)));\n\nreturn o;\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (add){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + add));\n\nreturn o;\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (action,n){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar G__50516 \x3d action;\nvar G__50516__$1 \x3d (((G__50516 instanceof cljs.core.Keyword))?G__50516.fqn:null);\nswitch (G__50516__$1) {\ncase \x22add\x22:\n(self__.c \x3d (self__.c + n));\n\nreturn null;\n\nbreak;\ncase \x22set\x22:\n(self__.c \x3d n);\n\nreturn null;\n\nbreak;\ncase \x22set\x3d\x22:\ncase \x22set-get\x22:\n(self__.c \x3d n);\n\nreturn n;\n\nbreak;\ncase \x22\x3dset\x22:\ncase \x22get-set\x22:\nvar o \x3d self__.c;\n(self__.c \x3d n);\n\nreturn o;\n\nbreak;\ncase \x22\x3d+\x22:\ncase \x22get-add\x22:\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + n));\n\nreturn o;\n\nbreak;\ncase \x22+\x3d\x22:\ncase \x22add-get\x22:\n(self__.c \x3d (self__.c + n));\n\nreturn self__.c;\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__50516__$1)].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.Counter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22c\x22,\x22c\x22,-122660552,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(taoensso.encore.Counter.cljs$lang$type \x3d true);\n\n(taoensso.encore.Counter.cljs$lang$ctorStr \x3d \x22taoensso.encore/Counter\x22);\n\n(taoensso.encore.Counter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Counter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Counter.\n */\ntaoensso.encore.__GT_Counter \x3d (function taoensso$encore$__GT_Counter(c){\nreturn (new taoensso.encore.Counter(c));\n});\n\n/**\n * Returns a fast atomic `Counter` with `init` initial integer value with:\n * - @counter \x3d\x3e Return current val\n * - (counter) \x3d\x3e Add 1 and return old val\n * - (counter n) \x3d\x3e Add n and return old val\n * - (counter action n) \x3d\x3e Experimental, action \u2208\n * {:add :set :set-get :get-set :get-add :add-get}.\n */\ntaoensso.encore.counter \x3d (function taoensso$encore$counter(var_args){\nvar G__50518 \x3d arguments.length;\nswitch (G__50518) {\ncase 0:\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1((0));\n}));\n\n(taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nreturn (new taoensso.encore.Counter(cljs.core.long$(init)));\n}));\n\n(taoensso.encore.counter.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.encore.rc_deref \x3d (function taoensso$encore$rc_deref(msecs,ts_,n_skip_,gc_fn){\nvar t1 \x3d taoensso.encore.now_udt();\nvar n_skip0 \x3d (n_skip_.cljs$core$IFn$_invoke$arity$0 ? n_skip_.cljs$core$IFn$_invoke$arity$0() : n_skip_.call(null));\nvar ts \x3d (ts_.cljs$core$IFn$_invoke$arity$0 ? ts_.cljs$core$IFn$_invoke$arity$0() : ts_.call(null));\nvar n_total \x3d cljs.core.count(ts);\nvar n_window \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (n,t0){\nif(((t1 - t0) \x3c\x3d msecs)){\nreturn (n + (1));\n} else {\nreturn n;\n}\n}),(0),cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(ts,n_skip0));\nvar n_skip1 \x3d (n_total - n_window);\nif((n_skip0 \x3c n_skip1)){\nif(cljs.core.compare_and_set_BANG_(n_skip_,n_skip0,n_skip1)){\nif((n_skip1 \x3e (10000))){\n(gc_fn.cljs$core$IFn$_invoke$arity$1 ? gc_fn.cljs$core$IFn$_invoke$arity$1(n_skip1) : gc_fn.call(null,n_skip1));\n} else {\n}\n} else {\n}\n} else {\n}\n\nreturn n_window;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.RollingCounter \x3d (function (msecs,ts_,n_skip_){\nthis.msecs \x3d msecs;\nthis.ts_ \x3d ts_;\nthis.n_skip_ \x3d n_skip_;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.RollingCounter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__50524 \x3d (arguments.length - (1));\nswitch (G__50524) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.RollingCounter.prototype.apply \x3d (function (self__,args50523){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50523)));\n}));\n\n(taoensso.encore.RollingCounter.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar t1_51171 \x3d taoensso.encore.now_udt();\nvar G__50525_51172 \x3d (function (p1__50521_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__50521_SHARP_,t1_51171);\n});\n(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__50525_51172) : self__.ts_.call(null,G__50525_51172));\n\nreturn this$;\n}));\n\n(taoensso.encore.RollingCounter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.rc_deref(self__.msecs,self__.ts_,self__.n_skip_,(function taoensso$encore$gc(n_skip1){\nvar G__50526_51173 \x3d (function (p1__50522_SHARP_){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(p1__50522_SHARP_,n_skip1);\n});\n(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__50526_51173) : self__.ts_.call(null,G__50526_51173));\n\nreturn cljs.core.reset_BANG_(self__.n_skip_,(0));\n}));\n}));\n\n(taoensso.encore.RollingCounter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22msecs\x22,\x22msecs\x22,-942455216,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),new cljs.core.Symbol(null,\x22ts_\x22,\x22ts_\x22,775102722,null),new cljs.core.Symbol(null,\x22n-skip_\x22,\x22n-skip_\x22,-1562682054,null)], null);\n}));\n\n(taoensso.encore.RollingCounter.cljs$lang$type \x3d true);\n\n(taoensso.encore.RollingCounter.cljs$lang$ctorStr \x3d \x22taoensso.encore/RollingCounter\x22);\n\n(taoensso.encore.RollingCounter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/RollingCounter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/RollingCounter.\n */\ntaoensso.encore.__GT_RollingCounter \x3d (function taoensso$encore$__GT_RollingCounter(msecs,ts_,n_skip_){\nreturn (new taoensso.encore.RollingCounter(msecs,ts_,n_skip_));\n});\n\n/**\n * Experimental, subject to change without notice.\n * Returns a RollingCounter that you can:\n * - Invoke to increment count in last `msecs` window and return RollingCounter.\n * - Deref to return count in last `msecs` window.\n */\ntaoensso.encore.rolling_counter \x3d (function taoensso$encore$rolling_counter(msecs){\nreturn (new taoensso.encore.RollingCounter(cljs.core.long$((function (){var error50531 \x3d (function (){try{if(cljs.core.truth_(taoensso.encore.pos_int_QMARK_(msecs))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50533){var e \x3d e50533;\nreturn e;\n}})();\nif(cljs.core.truth_(error50531)){\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4905,11,new cljs.core.Symbol(\x22taoensso.encore\x22,\x22pos-int?\x22,\x22taoensso.encore/pos-int?\x22,186070635,null),new cljs.core.Symbol(null,\x22msecs\x22,\x22msecs\x22,-942455216,null),msecs,null,error50531);\n} else {\nreturn msecs;\n}\n})()),taoensso.encore.latom(cljs.core.PersistentVector.EMPTY),taoensso.encore.latom((0))));\n});\n/**\n * Returns a stateful fn of 2 arities:\n * [ ] \x3d\x3e Returns current sub/vector in O(1).\n * [x] \x3d\x3e Adds `x` to right of sub/vector, maintaining length \x3c\x3d `nmax`.\n * Returns current sub/vector.\n * \n * Useful for maintaining limited-length histories, etc.\n * See also `rolling-list` (Clj only).\n */\ntaoensso.encore.rolling_vector \x3d (function taoensso$encore$rolling_vector(var_args){\nvar G__50535 \x3d arguments.length;\nswitch (G__50535) {\ncase 1:\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$1 \x3d (function (nmax){\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2(nmax,null);\n}));\n\n(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2 \x3d (function (nmax,p__50536){\nvar map__50537 \x3d p__50536;\nvar map__50537__$1 \x3d cljs.core.__destructure_map(map__50537);\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50537__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),16000.0);\nvar init_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50537__$1,new cljs.core.Keyword(null,\x22init-val\x22,\x22init-val\x22,-70272968));\nvar nmax__$1 \x3d cljs.core.long$(nmax);\nvar acc_ \x3d taoensso.encore.latom(cljs.core.vec(init_val));\nvar gc_every__$1 \x3d (cljs.core.truth_(gc_every)?cljs.core.long$(gc_every):null);\nvar ticker \x3d (cljs.core.truth_(gc_every__$1)?taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0():null);\nvar latch_ \x3d (cljs.core.truth_(gc_every__$1)?taoensso.encore.latom(null):null);\nreturn (function() {\nvar taoensso$encore$rolling_vec_fn \x3d null;\nvar taoensso$encore$rolling_vec_fn__0 \x3d (function (){\nreturn (acc_.cljs$core$IFn$_invoke$arity$0 ? acc_.cljs$core$IFn$_invoke$arity$0() : acc_.call(null));\n});\nvar taoensso$encore$rolling_vec_fn__1 \x3d (function (x){\nif(cljs.core.truth_(gc_every__$1)){\nvar tick_51176 \x3d (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null));\nvar b2__43681__auto___51177 \x3d (cljs.core.rem(tick_51176,gc_every__$1) \x3d\x3d\x3d (0));\nif(b2__43681__auto___51177){\nvar gc_now_QMARK__51178 \x3d b2__43681__auto___51177;\nvar G__50538_51179 \x3d (function taoensso$encore$rolling_vec_fn_$_swap_fn(sv){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,sv);\n});\n(acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__50538_51179) : acc_.call(null,G__50538_51179));\n} else {\n}\n} else {\n}\n\nvar G__50539 \x3d (function taoensso$encore$rolling_vec_fn_$_swap_fn(acc){\nvar new$ \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,x);\nif((cljs.core.count(new$) \x3e nmax__$1)){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(new$,(1));\n} else {\nreturn new$;\n}\n});\nreturn (acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__50539) : acc_.call(null,G__50539));\n});\ntaoensso$encore$rolling_vec_fn \x3d function(x){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$rolling_vec_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$rolling_vec_fn__1.call(this,x);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$rolling_vec_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$rolling_vec_fn__0;\ntaoensso$encore$rolling_vec_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$rolling_vec_fn__1;\nreturn taoensso$encore$rolling_vec_fn;\n})()\n}));\n\n(taoensso.encore.rolling_vector.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reverse comparator.\n */\ntaoensso.encore.rcompare \x3d (function taoensso$encore$rcompare(x,y){\nreturn cljs.core.compare(y,x);\n});\n/**\n * Like `core/sort` but:\n * - Returns a vector.\n * - `comparator` can be `:asc`, `:desc`, or an arbitrary comparator.\n * - An optional `keyfn` may be provided, as in `core/sort-by`.\n */\ntaoensso.encore.sortv \x3d (function taoensso$encore$sortv(var_args){\nvar G__50541 \x3d arguments.length;\nswitch (G__50541) {\ncase 1:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3(null,new cljs.core.Keyword(null,\x22asc\x22,\x22asc\x22,356854569),coll);\n}));\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$2 \x3d (function (comparator,coll){\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3(null,comparator,coll);\n}));\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_keyfn,comparator,coll){\nif(cljs.core.seq(coll)){\nvar comparator__$1 \x3d (function (){var G__50542 \x3d comparator;\nvar G__50542__$1 \x3d (((G__50542 instanceof cljs.core.Keyword))?G__50542.fqn:null);\nswitch (G__50542__$1) {\ncase \x22asc\x22:\nreturn cljs.core.compare;\n\nbreak;\ncase \x22dsc\x22:\ncase \x22desc\x22:\nreturn (function (x,y){\nreturn cljs.core.compare(y,x);\n});\n\nbreak;\ndefault:\nreturn comparator;\n\n}\n})();\nvar comparator__$2 \x3d (function (){var b2__43681__auto__ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(_QMARK_keyfn,cljs.core.identity))?_QMARK_keyfn:null);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar kfn \x3d b2__43681__auto__;\nreturn (function (x,y){\nvar G__50543 \x3d (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(x) : kfn.call(null,x));\nvar G__50544 \x3d (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(y) : kfn.call(null,y));\nreturn (comparator__$1.cljs$core$IFn$_invoke$arity$2 ? comparator__$1.cljs$core$IFn$_invoke$arity$2(G__50543,G__50544) : comparator__$1.call(null,G__50543,G__50544));\n});\n} else {\nreturn comparator__$1;\n}\n})();\nvar a \x3d cljs.core.to_array(coll);\ntaoensso.encore.goog$module$goog$array.stableSort(a,cljs.core.fn__GT_comparator(comparator__$2));\n\nreturn cljs.core.with_meta(cljs.core.vec(a),cljs.core.meta(coll));\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.sortv.cljs$lang$maxFixedArity \x3d 3);\n\nvar sentinel_51184 \x3d ({});\nvar nil__GT_sentinel_51185 \x3d (function (x){\nif((x \x3d\x3d null)){\nreturn sentinel_51184;\n} else {\nreturn x;\n}\n});\nvar sentinel__GT_nil_51186 \x3d (function (x){\nif((x \x3d\x3d\x3d sentinel_51184)){\nreturn null;\n} else {\nreturn x;\n}\n});\n/**\n * Reduces the top `n` items from `coll` of N items.\n * Clj impln is O(N.logn) vs O(N.logN) for (take n (sort-by ...)).\n */\ntaoensso.encore.reduce_top \x3d (function taoensso$encore$reduce_top(var_args){\nvar G__50549 \x3d arguments.length;\nswitch (G__50549) {\ncase 4:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,rf,init,coll){\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,cljs.core.identity,cljs.core.compare,rf,init,coll);\n}));\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$5 \x3d (function (n,keyfn,rf,init,coll){\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cljs.core.compare,rf,init,coll);\n}));\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6 \x3d (function (n,keyfn,cmp,rf,init,coll){\nvar coll_size \x3d cljs.core.count(coll);\nvar n__$1 \x3d cljs.core.long$((function (){var x__5113__auto__ \x3d coll_size;\nvar y__5114__auto__ \x3d cljs.core.long$(n);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\nif((n__$1 \x3e (0))){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.take.cljs$core$IFn$_invoke$arity$1(n__$1),cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf),init,cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3(keyfn,cmp,coll));\n} else {\nreturn init;\n}\n}));\n\n(taoensso.encore.reduce_top.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Conjoins the top `n` items from `coll` into `to` using `reduce-top`.\n */\ntaoensso.encore.top_into \x3d (function taoensso$encore$top_into(var_args){\nvar G__50551 \x3d arguments.length;\nswitch (G__50551) {\ncase 3:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$3 \x3d (function (to,n,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(to,n,cljs.core.identity,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$4 \x3d (function (to,n,keyfn,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(to,n,keyfn,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5 \x3d (function (to,n,keyfn,cmp,coll){\nif((((n \x3e\x3d (11)))?taoensso.encore.editable_QMARK_(to):false)){\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cmp,cljs.core.conj_BANG_,cljs.core.transient$(to),coll));\n} else {\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cmp,cljs.core.conj,to,coll);\n}\n}));\n\n(taoensso.encore.top_into.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Returns a sorted vector of the top `n` items from `coll` using `reduce-top`.\n */\ntaoensso.encore.top \x3d (function taoensso$encore$top(var_args){\nvar G__50553 \x3d arguments.length;\nswitch (G__50553) {\ncase 2:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,cljs.core.identity,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,keyfn,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,keyfn,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,keyfn,cmp,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,keyfn,cmp,coll);\n}));\n\n(taoensso.encore.top.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Private, don\x27t use.\n * For Clj: same as `Thread/sleep`.\n * For Cljs: hot loops until given number of msecs have elapsed.\n * \n * Useful for certain synchronous unit tests, etc.\n */\ntaoensso.encore.hot_sleep \x3d (function taoensso$encore$hot_sleep(msecs){\nvar t0 \x3d Date.now();\nwhile(true){\nif(((Date.now() - t0) \x3c msecs)){\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n});\ntaoensso.encore._valid_unstub_impl \x3d (function taoensso$encore$_valid_unstub_impl(x){\nif(cljs.core.fn_QMARK_(x)){\nreturn x;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6065,5], null),\x22[encore/stubfn] Unexpected unstub implementation \x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null)], null),null);\n}\n});\n/**\n * Given a {:before ?(fn []) :after ?(fn [])} map, returns cross-platform\n * test fixtures for use by both `clojure.test` and `cljs.test`:\n * \n * (let [f (test-fixtures {:before (fn [] (test-setup))})]\n * (clojure.test/use-fixtures :once f)\n * (cljs.test/use-fixtures :once f))\n */\ntaoensso.encore.test_fixtures \x3d (function taoensso$encore$test_fixtures(fixtures_map){\nvar error50574_51194 \x3d (function (){try{if(cljs.core.map_QMARK_(fixtures_map)){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50576){var e \x3d e50576;\nreturn e;\n}})();\nif(cljs.core.truth_(error50574_51194)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,6128,3,new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22fixtures-map\x22,\x22fixtures-map\x22,732147048,null),fixtures_map,null,error50574_51194);\n} else {\n}\n\nreturn fixtures_map;\n});\n\n/**\n * @interface\n */\ntaoensso.encore.ITimeoutImpl \x3d function(){};\n\nvar taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_51195 \x3d (function (_,msecs,f){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore._schedule_timeout[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(_,msecs,f) : m__5374__auto__.call(null,_,msecs,f));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore._schedule_timeout[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(_,msecs,f) : m__5372__auto__.call(null,_,msecs,f));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutImpl.-schedule-timeout\x22,_);\n}\n}\n});\ntaoensso.encore._schedule_timeout \x3d (function taoensso$encore$_schedule_timeout(_,msecs,f){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3(_,msecs,f);\n} else {\nreturn taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_51195(_,msecs,f);\n}\n});\n\n\n\n/**\n* @constructor\n * @implements {taoensso.encore.ITimeoutImpl}\n*/\ntaoensso.encore.DefaultTimeoutImpl \x3d (function (){\n});\n(taoensso.encore.DefaultTimeoutImpl.prototype.taoensso$encore$ITimeoutImpl$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.DefaultTimeoutImpl.prototype.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3 \x3d (function (_,msecs,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn setTimeout(f,msecs);\n}));\n\n(taoensso.encore.DefaultTimeoutImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$type \x3d true);\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$ctorStr \x3d \x22taoensso.encore/DefaultTimeoutImpl\x22);\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/DefaultTimeoutImpl\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/DefaultTimeoutImpl.\n */\ntaoensso.encore.__GT_DefaultTimeoutImpl \x3d (function taoensso$encore$__GT_DefaultTimeoutImpl(){\nreturn (new taoensso.encore.DefaultTimeoutImpl());\n});\n\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.default_timeout_impl_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Simple one-timeout timeout implementation provided by platform timer.\n * O(logn) add, O(1) cancel, O(1) tick. Fns must be non-blocking or cheap.\n * Similar efficiency to core.async timers (binary heap vs DelayQueue).\n */\ntaoensso.encore.default_timeout_impl_ \x3d (new cljs.core.Delay((function (){\nreturn (new taoensso.encore.DefaultTimeoutImpl());\n}),null));\n}\n\n/**\n * @interface\n */\ntaoensso.encore.ITimeoutFuture \x3d function(){};\n\nvar taoensso$encore$ITimeoutFuture$tf_state$dyn_51197 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_state[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_state[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-state\x22,_);\n}\n}\n});\n/**\n * Returns a map of timeout\x27s public state.\n */\ntaoensso.encore.tf_state \x3d (function taoensso$encore$tf_state(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_state$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_state$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_state$dyn_51197(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_poll$dyn_51199 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_poll[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_poll[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-poll\x22,_);\n}\n}\n});\n/**\n * Returns :timeout/pending, :timeout/cancelled, or the timeout\x27s completed result.\n */\ntaoensso.encore.tf_poll \x3d (function taoensso$encore$tf_poll(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_poll$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_poll$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_poll$dyn_51199(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_51201 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_done_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_done_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-done?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is not pending (i.e. has a completed result or is cancelled).\n */\ntaoensso.encore.tf_done_QMARK_ \x3d (function taoensso$encore$tf_done_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_51201(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_51202 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-pending?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is pending.\n */\ntaoensso.encore.tf_pending_QMARK_ \x3d (function taoensso$encore$tf_pending_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_51202(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_51204 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-cancelled?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is cancelled.\n */\ntaoensso.encore.tf_cancelled_QMARK_ \x3d (function taoensso$encore$tf_cancelled_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_51204(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_51206 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-cancel!\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout was successfully cancelled (i.e. was previously pending).\n */\ntaoensso.encore.tf_cancel_BANG_ \x3d (function taoensso$encore$tf_cancel_BANG_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_51206(_);\n}\n});\n\n\n/**\n* @constructor\n * @implements {taoensso.encore.ITimeoutFuture}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.TimeoutFuture \x3d (function (f,result__,udt){\nthis.f \x3d f;\nthis.result__ \x3d result__;\nthis.udt \x3d udt;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\n});\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_state$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),self__.f,new cljs.core.Keyword(null,\x22udt\x22,\x22udt\x22,2011712751),self__.udt], null);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_poll$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.result__);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (!(cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352))));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22cancelled\x22,\x22timeout/cancelled\x22,1188007279));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.compare_and_set_BANG_(self__.result__,new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352),new cljs.core.Keyword(\x22timeout\x22,\x22cancelled\x22,\x22timeout/cancelled\x22,1188007279));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (t){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn t__$1.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1(null);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (t){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn t__$1.taoensso$encore$ITimeoutFuture$tf_poll$arity$1(null);\n}));\n\n(taoensso.encore.TimeoutFuture.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22result__\x22,\x22result__\x22,1529131748,null),new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null)], null);\n}));\n\n(taoensso.encore.TimeoutFuture.cljs$lang$type \x3d true);\n\n(taoensso.encore.TimeoutFuture.cljs$lang$ctorStr \x3d \x22taoensso.encore/TimeoutFuture\x22);\n\n(taoensso.encore.TimeoutFuture.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/TimeoutFuture\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/TimeoutFuture.\n */\ntaoensso.encore.__GT_TimeoutFuture \x3d (function taoensso$encore$__GT_TimeoutFuture(f,result__,udt){\nreturn (new taoensso.encore.TimeoutFuture(f,result__,udt));\n});\n\ntaoensso.encore.timeout_future_QMARK_ \x3d (function taoensso$encore$timeout_future_QMARK_(x){\nreturn (x instanceof taoensso.encore.TimeoutFuture);\n});\n/**\n * Alpha, subject to change.\n * Returns a TimeoutFuture that will execute `f` after given msecs.\n * \n * Does NOT do any automatic binding conveyance.\n * \n * Performance depends on the provided timer implementation (`impl_`).\n * The default implementation offers O(logn) add, O(1) cancel, O(1) tick.\n * \n * See `ITimeoutImpl` for extending to arbitrary timer implementations.\n */\ntaoensso.encore.call_after_timeout \x3d (function taoensso$encore$call_after_timeout(var_args){\nvar G__50584 \x3d arguments.length;\nswitch (G__50584) {\ncase 2:\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (msecs,f){\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3(taoensso.encore.default_timeout_impl_,msecs,f);\n}));\n\n(taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (impl_,msecs,f){\nvar msecs__$1 \x3d cljs.core.long$(msecs);\nvar udt \x3d (taoensso.encore.now_udt() + msecs__$1);\nvar result__ \x3d taoensso.encore.latom(new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352));\nvar cas_f \x3d (function (){\nvar result_ \x3d (new cljs.core.Delay((function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}),null));\nif(cljs.core.compare_and_set_BANG_(result__,new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352),result_)){\nreturn cljs.core.deref(result_);\n} else {\nreturn null;\n}\n});\nvar impl_51213 \x3d cljs.core.force(impl_);\ntaoensso.encore._schedule_timeout(impl_51213,msecs__$1,cas_f);\n\nreturn (new taoensso.encore.TimeoutFuture(f,result__,udt));\n}));\n\n(taoensso.encore.call_after_timeout.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.console_log \x3d (((typeof console !\x3d\x3d \x27undefined\x27))?(function() { \nvar G__51214__delegate \x3d function (xs){\nvar b2__43681__auto__ \x3d console.log;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar f \x3d b2__43681__auto__;\nreturn f.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(xs));\n} else {\nreturn null;\n}\n};\nvar G__51214 \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51217__i \x3d 0, G__51217__a \x3d new Array(arguments.length - 0);\nwhile (G__51217__i \x3c G__51217__a.length) {G__51217__a[G__51217__i] \x3d arguments[G__51217__i + 0]; ++G__51217__i;}\n xs \x3d new cljs.core.IndexedSeq(G__51217__a,0,null);\n} \nreturn G__51214__delegate.call(this,xs);};\nG__51214.cljs$lang$maxFixedArity \x3d 0;\nG__51214.cljs$lang$applyTo \x3d (function (arglist__51218){\nvar xs \x3d cljs.core.seq(arglist__51218);\nreturn G__51214__delegate(xs);\n});\nG__51214.cljs$core$IFn$_invoke$arity$variadic \x3d G__51214__delegate;\nreturn G__51214;\n})()\n:(function() { \nvar G__51219__delegate \x3d function (xs){\nreturn null;\n};\nvar G__51219 \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51220__i \x3d 0, G__51220__a \x3d new Array(arguments.length - 0);\nwhile (G__51220__i \x3c G__51220__a.length) {G__51220__a[G__51220__i] \x3d arguments[G__51220__i + 0]; ++G__51220__i;}\n xs \x3d new cljs.core.IndexedSeq(G__51220__a,0,null);\n} \nreturn G__51219__delegate.call(this,xs);};\nG__51219.cljs$lang$maxFixedArity \x3d 0;\nG__51219.cljs$lang$applyTo \x3d (function (arglist__51221){\nvar xs \x3d cljs.core.seq(arglist__51221);\nreturn G__51219__delegate(xs);\n});\nG__51219.cljs$core$IFn$_invoke$arity$variadic \x3d G__51219__delegate;\nreturn G__51219;\n})()\n);\n\ntaoensso.encore.log \x3d taoensso.encore.console_log;\n\ntaoensso.encore.logp \x3d (function taoensso$encore$logp(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51222 \x3d arguments.length;\nvar i__5750__auto___51223 \x3d (0);\nwhile(true){\nif((i__5750__auto___51223 \x3c len__5749__auto___51222)){\nargs__5755__auto__.push((arguments[i__5750__auto___51223]));\n\nvar G__51224 \x3d (i__5750__auto___51223 + (1));\ni__5750__auto___51223 \x3d G__51224;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.logp.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.logp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn taoensso.encore.console_log(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$1(taoensso.encore.nil__GT_str),xs));\n}));\n\n(taoensso.encore.logp.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.logp.cljs$lang$applyTo \x3d (function (seq50585){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50585));\n}));\n\n\ntaoensso.encore.sayp \x3d (function taoensso$encore$sayp(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51226 \x3d arguments.length;\nvar i__5750__auto___51227 \x3d (0);\nwhile(true){\nif((i__5750__auto___51227 \x3c len__5749__auto___51226)){\nargs__5755__auto__.push((arguments[i__5750__auto___51227]));\n\nvar G__51228 \x3d (i__5750__auto___51227 + (1));\ni__5750__auto___51227 \x3d G__51228;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.sayp.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.sayp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn alert(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$1(taoensso.encore.nil__GT_str),xs));\n}));\n\n(taoensso.encore.sayp.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.sayp.cljs$lang$applyTo \x3d (function (seq50586){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50586));\n}));\n\n\ntaoensso.encore.logf \x3d (function taoensso$encore$logf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51229 \x3d arguments.length;\nvar i__5750__auto___51230 \x3d (0);\nwhile(true){\nif((i__5750__auto___51230 \x3c len__5749__auto___51229)){\nargs__5755__auto__.push((arguments[i__5750__auto___51230]));\n\nvar G__51231 \x3d (i__5750__auto___51230 + (1));\ni__5750__auto___51230 \x3d G__51231;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.logf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.logf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nreturn taoensso.encore.console_log(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,xs));\n}));\n\n(taoensso.encore.logf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.logf.cljs$lang$applyTo \x3d (function (seq50587){\nvar G__50588 \x3d cljs.core.first(seq50587);\nvar seq50587__$1 \x3d cljs.core.next(seq50587);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50588,seq50587__$1);\n}));\n\n\ntaoensso.encore.sayf \x3d (function taoensso$encore$sayf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51233 \x3d arguments.length;\nvar i__5750__auto___51234 \x3d (0);\nwhile(true){\nif((i__5750__auto___51234 \x3c len__5749__auto___51233)){\nargs__5755__auto__.push((arguments[i__5750__auto___51234]));\n\nvar G__51235 \x3d (i__5750__auto___51234 + (1));\ni__5750__auto___51234 \x3d G__51235;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.sayf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.sayf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nreturn alert(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,xs));\n}));\n\n(taoensso.encore.sayf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.sayf.cljs$lang$applyTo \x3d (function (seq50589){\nvar G__50590 \x3d cljs.core.first(seq50589);\nvar seq50589__$1 \x3d cljs.core.next(seq50589);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50590,seq50589__$1);\n}));\n\n/**\n * Returns current window location as\n * {:keys [href protocol hostname host pathname search hash]}.\n */\ntaoensso.encore.get_win_loc \x3d (function taoensso$encore$get_win_loc(){\nvar b2__43681__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,\x22location\x22);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar loc \x3d b2__43681__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22href\x22,\x22href\x22,-793805698),loc.href,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),loc.protocol,new cljs.core.Keyword(null,\x22hostname\x22,\x22hostname\x22,2105669933),loc.hostname,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),loc.host,new cljs.core.Keyword(null,\x22pathname\x22,\x22pathname\x22,-1420497528),loc.pathname,new cljs.core.Keyword(null,\x22search\x22,\x22search\x22,1564939822),loc.search,new cljs.core.Keyword(null,\x22hash\x22,\x22hash\x22,-13781596),loc.hash], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.default_xhr_pool_ \x3d (new cljs.core.Delay((function (){\nreturn (new goog.net.XhrIoPool());\n}),null));\n/**\n * Queues a lightweight Ajax call with Google Closure\x27s `goog.net.XhrIo`\n * and returns nil, or the resulting `goog.net.XhrIo` instance if one was\n * immediately available from the XHR pool:\n * \n * (ajax-call\n * \x22http://localhost:8080/my-post-route\x22 ; Endpoint URL\n * \n * {:method :post ; \u2208 #{:get :post :put}\n * :resp-type :text ; \u2208 #{:auto :text :edn :json :xml\n * ; :bin/array-buffer :bin/blob} ; Expected response type\n * \n * :headers {\x22Content-Type\x22 \x22text/plain\x22} ; Request headers\n * :params {:username \x22Rich Hickey\x22 :type \x22Awesome\x22} ; Request params\n * \n * :timeout-ms 10000 ; Request timeout in msecs\n * :with-credentials? false ; Enable if using CORS\n * :xhr-pool my-xhr-pool ; Optional `goog.net.XhrIoPool` instance or delay\n * :xhr-timeout-ms 2500 ; Optional max msecs to wait on pool for `XhrIo`\n * :xhr-cb-fn (fn [xhr]) ; Optional fn to call with `XhrIo` from pool when available\n * }\n * \n * (fn callback [resp-map]\n * (let [{:keys [success? ?status ?error ?content ?content-type]} resp-map]\n * ;; ?status ; \u2208 #{nil 200 404 ...}, non-nil iff server responded\n * ;; ?error ; \u2208 #{nil \x3chttp-error-status-code\x3e \x3cexception\x3e :timeout\n * :abort :http-error :exception :xhr-pool-depleted :bad-edn}\n * (js/alert (str \x22Ajax response: \x22 resp-map)))))\n */\ntaoensso.encore.ajax_call \x3d (function taoensso$encore$ajax_call(url,p__50592,callback_fn){\nvar map__50593 \x3d p__50592;\nvar map__50593__$1 \x3d cljs.core.__destructure_map(map__50593);\nvar opts \x3d map__50593__$1;\nvar resp_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,\x22resp-type\x22,\x22resp-type\x22,1050675962),new cljs.core.Keyword(null,\x22auto\x22,\x22auto\x22,-566279492));\nvar xhr_pool \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,\x22xhr-pool\x22,\x22xhr-pool\x22,1499305499),taoensso.encore.default_xhr_pool_);\nvar body \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),(10000));\nvar xhr_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,\x22xhr-timeout-ms\x22,\x22xhr-timeout-ms\x22,89157982),(2500));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50593__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),new cljs.core.Keyword(null,\x22get\x22,\x22get\x22,1683182755));\nvar xhr_cb_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,\x22xhr-cb-fn\x22,\x22xhr-cb-fn\x22,1569050954));\nvar params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235));\nvar headers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,\x22headers\x22,\x22headers\x22,-835030129));\nvar with_credentials_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50593__$1,new cljs.core.Keyword(null,\x22with-credentials?\x22,\x22with-credentials?\x22,-1773202222));\nvar error50599_51237 \x3d (function (){try{if(cljs.core.truth_((function (arg50594){\nif((arg50594 \x3d\x3d null)){\nreturn true;\n} else {\nreturn taoensso.encore.nat_int_QMARK_(arg50594);\n}\n})(timeout_ms))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e50601){var e \x3d e50601;\nreturn e;\n}})();\nif(cljs.core.truth_(error50599_51237)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,6401,13,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22nat-int?\x22,\x22nat-int?\x22,-1879663400,null)], null),new cljs.core.Symbol(null,\x22timeout-ms\x22,\x22timeout-ms\x22,-1900214363,null),timeout_ms,null,error50599_51237);\n} else {\n}\n\nvar xhr_pool__$1 \x3d cljs.core.force(xhr_pool);\nvar with_xhr \x3d (function (xhr){\ntry{var timeout_ms__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22timeout\x22,\x22timeout\x22,-318625318));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn timeout_ms;\n}\n})();\nvar map__50604 \x3d (((function (){var G__50605 \x3d method;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22get\x22,\x22get\x22,1683182755),G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22head\x22,\x22head\x22,-771383919),G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489),G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22GET\x22,G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22HEAD\x22,G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22OPTIONS\x22,G__50605)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22TRACE\x22,G__50605)){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n}\n}\n}\n}\n}\n}\n})())?((cljs.core.empty_QMARK_(params))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),\x22?\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params)))].join(\x27\x27)], null)):(cljs.core.truth_(body)?((cljs.core.empty_QMARK_(params))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),body], null):new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),body,new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),\x22?\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params)))].join(\x27\x27)], null)):(((((typeof FormData !\x3d\x3d \x27undefined\x27)) \x26\x26 ((params instanceof FormData))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),params], null):(cljs.core.truth_((function (){var and__5023__auto__ \x3d (typeof FormData !\x3d\x3d \x27undefined\x27);\nif(and__5023__auto__){\nreturn taoensso.encore.rsome_kv((function (_,v){\nreturn (v instanceof Blob);\n}),params);\n} else {\nreturn and__5023__auto__;\n}\n})())?(function (){var form_data \x3d (new FormData());\nvar seq__50606_51248 \x3d cljs.core.seq(params);\nvar chunk__50607_51249 \x3d null;\nvar count__50608_51250 \x3d (0);\nvar i__50609_51251 \x3d (0);\nwhile(true){\nif((i__50609_51251 \x3c count__50608_51250)){\nvar vec__50616_51252 \x3d chunk__50607_51249.cljs$core$IIndexed$_nth$arity$2(null,i__50609_51251);\nvar k_51253 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50616_51252,(0),null);\nvar v_51254 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50616_51252,(1),null);\nform_data.append(cljs.core.name(k_51253),v_51254);\n\n\nvar G__51255 \x3d seq__50606_51248;\nvar G__51256 \x3d chunk__50607_51249;\nvar G__51257 \x3d count__50608_51250;\nvar G__51258 \x3d (i__50609_51251 + (1));\nseq__50606_51248 \x3d G__51255;\nchunk__50607_51249 \x3d G__51256;\ncount__50608_51250 \x3d G__51257;\ni__50609_51251 \x3d G__51258;\ncontinue;\n} else {\nvar temp__5825__auto___51259 \x3d cljs.core.seq(seq__50606_51248);\nif(temp__5825__auto___51259){\nvar seq__50606_51260__$1 \x3d temp__5825__auto___51259;\nif(cljs.core.chunked_seq_QMARK_(seq__50606_51260__$1)){\nvar c__5548__auto___51261 \x3d cljs.core.chunk_first(seq__50606_51260__$1);\nvar G__51262 \x3d cljs.core.chunk_rest(seq__50606_51260__$1);\nvar G__51263 \x3d c__5548__auto___51261;\nvar G__51264 \x3d cljs.core.count(c__5548__auto___51261);\nvar G__51265 \x3d (0);\nseq__50606_51248 \x3d G__51262;\nchunk__50607_51249 \x3d G__51263;\ncount__50608_51250 \x3d G__51264;\ni__50609_51251 \x3d G__51265;\ncontinue;\n} else {\nvar vec__50619_51266 \x3d cljs.core.first(seq__50606_51260__$1);\nvar k_51267 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50619_51266,(0),null);\nvar v_51268 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50619_51266,(1),null);\nform_data.append(cljs.core.name(k_51267),v_51268);\n\n\nvar G__51269 \x3d cljs.core.next(seq__50606_51260__$1);\nvar G__51270 \x3d null;\nvar G__51271 \x3d (0);\nvar G__51272 \x3d (0);\nseq__50606_51248 \x3d G__51269;\nchunk__50607_51249 \x3d G__51270;\ncount__50608_51250 \x3d G__51271;\ni__50609_51251 \x3d G__51272;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),form_data], null);\n})():new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params))),new cljs.core.Keyword(null,\x22content-type\x22,\x22content-type\x22,-508222634),\x22application/x-www-form-urlencoded;charset\x3dUTF-8\x22], null)))));\nvar map__50604__$1 \x3d cljs.core.__destructure_map(map__50604);\nvar url_PLUS_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960));\nvar content \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224));\nvar content_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50604__$1,new cljs.core.Keyword(null,\x22content-type\x22,\x22content-type\x22,-508222634));\nvar headers__$1 \x3d taoensso.encore.map_keys((function (p1__50591_SHARP_){\nreturn clojure.string.lower_case(cljs.core.name(p1__50591_SHARP_));\n}),headers);\nvar headers__$2 \x3d taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$1,\x22x-requested-with\x22,cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$1,\x22x-requested-with\x22,\x22XMLHTTPRequest\x22));\nvar headers__$3 \x3d taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$2,\x22content-type\x22,cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$2,\x22content-type\x22,content_type));\nvar progress_listener \x3d (function (){var b2__43681__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22progress-fn\x22,\x22progress-fn\x22,-1146547855));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar pf \x3d b2__43681__auto__;\nxhr.setProgressEventsEnabled(true);\n\nreturn goog.events.listen(xhr,goog.net.EventType.PROGRESS,(function (ev){\nvar length_computable_QMARK_ \x3d ev.lengthComputable;\nvar loaded \x3d ev.loaded;\nvar total \x3d ev.total;\nvar _QMARK_ratio \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d length_computable_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(total,(0));\n} else {\nreturn and__5023__auto__;\n}\n})())?(loaded / total):null);\nvar G__50622 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22length-computable?\x22,\x22length-computable?\x22,1915473276),length_computable_QMARK_,new cljs.core.Keyword(null,\x22?ratio\x22,\x22?ratio\x22,-1275760831),_QMARK_ratio,new cljs.core.Keyword(null,\x22loaded\x22,\x22loaded\x22,-1246482293),loaded,new cljs.core.Keyword(null,\x22total\x22,\x22total\x22,1916810418),total,new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev], null);\nreturn (pf.cljs$core$IFn$_invoke$arity$1 ? pf.cljs$core$IFn$_invoke$arity$1(G__50622) : pf.call(null,G__50622));\n}));\n} else {\nreturn null;\n}\n})();\ngoog.events.listenOnce(xhr,goog.net.EventType.READY,(function (_){\nreturn xhr_pool__$1.releaseObject(xhr);\n}));\n\ngoog.events.listenOnce(xhr,goog.net.EventType.COMPLETE,(function taoensso$encore$ajax_call_$_wrapped_callback(resp){\nvar success_QMARK_ \x3d xhr.isSuccess();\nvar status \x3d xhr.getStatus();\nvar vec__50623 \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(status,(-1)))?(function (){var content_type__$1 \x3d xhr.getResponseHeader(\x22content-type\x22);\nvar resp_type__$1 \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(resp_type,new cljs.core.Keyword(null,\x22auto\x22,\x22auto\x22,-566279492)))?resp_type:(((content_type__$1 \x3d\x3d null))?new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697):(function (){var ct \x3d clojure.string.lower_case(content_type__$1);\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/edn\x22))){\nreturn new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885);\n} else {\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/json\x22))){\nreturn new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570);\n} else {\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/xml\x22))){\nreturn new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\n} else {\nreturn new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697);\n}\n}\n}\n})()));\nvar vec__50626 \x3d (function (){var G__50629 \x3d resp_type__$1;\nvar G__50629__$1 \x3d (((G__50629 instanceof cljs.core.Keyword))?G__50629.fqn:null);\nswitch (G__50629__$1) {\ncase \x22text\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseText()], null);\n\nbreak;\ncase \x22json\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseJson()], null);\n\nbreak;\ncase \x22xml\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseXml()], null);\n\nbreak;\ncase \x22edn\x22:\nvar b2__43681__auto__ \x3d xhr.getResponseText();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar edn \x3d b2__43681__auto__;\ntry{return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1(edn)], null);\n}catch (e50630){var _ \x3d e50630;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [edn,new cljs.core.Keyword(null,\x22bad-edn\x22,\x22bad-edn\x22,1465533855)], null);\n}} else {\nreturn null;\n}\n\nbreak;\ndefault:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponse()], null);\n\n}\n})();\nvar content__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50626,(0),null);\nvar error \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50626,(1),null);\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [status,content_type__$1,content__$1,error], null);\n})():null);\nvar status__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(0),null);\nvar content_type__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(1),null);\nvar content__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(2),null);\nvar error \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50623,(3),null);\nvar success_QMARK___$1 \x3d (function (){var and__5023__auto__ \x3d success_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(error);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(progress_listener)){\ngoog.events.unlistenByKey(progress_listener);\n} else {\n}\n\nvar G__50631 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22raw-resp\x22,\x22raw-resp\x22,-1924342506),resp,new cljs.core.Keyword(null,\x22xhr\x22,\x22xhr\x22,-177710851),xhr,new cljs.core.Keyword(null,\x22success?\x22,\x22success?\x22,-122854052),success_QMARK___$1,new cljs.core.Keyword(null,\x22?status\x22,\x22?status\x22,938730360),status__$1,new cljs.core.Keyword(null,\x22?content-type\x22,\x22?content-type\x22,-2129759049),content_type__$1,new cljs.core.Keyword(null,\x22?content\x22,\x22?content\x22,1697782054),content__$1,new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),(cljs.core.truth_(success_QMARK___$1)?null:(cljs.core.truth_(error)?error:(cljs.core.truth_(status__$1)?status__$1:(function (){var G__50632 \x3d xhr.getLastErrorCode();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22NO_ERROR\x22,\x22goog.net.ErrorCode/NO_ERROR\x22,-376372140,null),G__50632)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22EXCEPTION\x22,\x22goog.net.ErrorCode/EXCEPTION\x22,-1644416342,null),G__50632)){\nreturn new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22HTTP_ERROR\x22,\x22goog.net.ErrorCode/HTTP_ERROR\x22,1765210984,null),G__50632)){\nreturn new cljs.core.Keyword(null,\x22http-error\x22,\x22http-error\x22,-1040049553);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22ABORT\x22,\x22goog.net.ErrorCode/ABORT\x22,-1128881702,null),G__50632)){\nreturn new cljs.core.Keyword(null,\x22abort\x22,\x22abort\x22,521193198);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22TIMEOUT\x22,\x22goog.net.ErrorCode/TIMEOUT\x22,2036132238,null),G__50632)){\nreturn new cljs.core.Keyword(null,\x22timeout\x22,\x22timeout\x22,-318625318);\n} else {\nreturn new cljs.core.Keyword(null,\x22unknown\x22,\x22unknown\x22,-935977881);\n\n}\n}\n}\n}\n}\n})())))], null);\nreturn (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50631) : callback_fn.call(null,G__50631));\n}));\n\nxhr.setTimeoutInterval((function (){var or__5025__auto__ \x3d timeout_ms__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\n\nif(cljs.core.truth_(with_credentials_QMARK_)){\nxhr.setWithCredentials(true);\n} else {\n}\n\nvar G__50633_51276 \x3d resp_type;\nvar G__50633_51277__$1 \x3d (((G__50633_51276 instanceof cljs.core.Keyword))?G__50633_51276.fqn:null);\nswitch (G__50633_51277__$1) {\ncase \x22auto\x22:\ncase \x22text\x22:\ncase \x22edn\x22:\n\nbreak;\ncase \x22json\x22:\nxhr.setResponseType(\x22json\x22);\n\nbreak;\ncase \x22xml\x22:\nxhr.setResponseType(\x22document\x22);\n\nbreak;\ncase \x22bin/array-buffer\x22:\nxhr.setResponseType(\x22arraybuffer\x22);\n\nbreak;\ncase \x22bin/blob\x22:\nxhr.setResponseType(\x22blob\x22);\n\nbreak;\ndefault:\nif(cljs.core.truth_(resp_type)){\nxhr.setResponseType(resp_type);\n} else {\n}\n\n}\n\nxhr.send((function (){var or__5025__auto__ \x3d url_PLUS_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn url;\n}\n})(),cljs.core.name(method),content,cljs.core.clj__GT_js(headers__$3));\n\nvar b2__43681__auto___51279 \x3d xhr_cb_fn;\nif(cljs.core.truth_(b2__43681__auto___51279)){\nvar cb_51280 \x3d b2__43681__auto___51279;\ntry{(cb_51280.cljs$core$IFn$_invoke$arity$1 ? cb_51280.cljs$core$IFn$_invoke$arity$1(xhr) : cb_51280.call(null,xhr));\n}catch (e50634){var __51281 \x3d e50634;\n}} else {\n}\n\nreturn xhr;\n}catch (e50602){var e \x3d e50602;\nxhr_pool__$1.releaseObject(xhr);\n\nvar G__50603_51282 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),e], null);\n(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50603_51282) : callback_fn.call(null,G__50603_51282));\n\nreturn null;\n}});\nvar b2__43681__auto__ \x3d xhr_pool__$1.getObject();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar xhr \x3d b2__43681__auto__;\nreturn with_xhr(xhr);\n} else {\nif(((function (){var or__5025__auto__ \x3d xhr_timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})() \x3d\x3d\x3d (0))){\nvar G__50635_51283 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),new cljs.core.Keyword(null,\x22xhr-pool-depleted\x22,\x22xhr-pool-depleted\x22,-1812092376)], null);\n(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50635_51283) : callback_fn.call(null,G__50635_51283));\n\nreturn null;\n} else {\nvar done_QMARK__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\nsetTimeout((function taoensso$encore$ajax_call_$_xhr_timeout(){\nif(cljs.core.compare_and_set_BANG_(done_QMARK__,false,true)){\nvar G__50636 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),new cljs.core.Keyword(null,\x22xhr-pool-timeout\x22,\x22xhr-pool-timeout\x22,-70669609)], null);\nreturn (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__50636) : callback_fn.call(null,G__50636));\n} else {\nreturn null;\n}\n}),xhr_timeout_ms);\n\nxhr_pool__$1.getObject((function taoensso$encore$ajax_call_$_xhr_cb(xhr){\nif(cljs.core.compare_and_set_BANG_(done_QMARK__,false,true)){\nreturn with_xhr(xhr);\n} else {\nreturn xhr_pool__$1.releaseObject(xhr);\n}\n}));\n\nreturn null;\n}\n}\n});\n/**\n * Based on \x3chttps://goo.gl/fBqy6e\x3e.\n */\ntaoensso.encore.url_encode \x3d (function taoensso$encore$url_encode(s){\nif(cljs.core.truth_(s)){\nreturn clojure.string.replace(encodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),s),\x22*\x22,\x22%2A\x22);\n} else {\nreturn null;\n}\n});\n/**\n * Stolen from \x3chttp://goo.gl/99NSR1\x3e.\n */\ntaoensso.encore.url_decode \x3d (function taoensso$encore$url_decode(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51286 \x3d arguments.length;\nvar i__5750__auto___51287 \x3d (0);\nwhile(true){\nif((i__5750__auto___51287 \x3c len__5749__auto___51286)){\nargs__5755__auto__.push((arguments[i__5750__auto___51287]));\n\nvar G__51288 \x3d (i__5750__auto___51287 + (1));\ni__5750__auto___51287 \x3d G__51288;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s,p__50639){\nvar vec__50640 \x3d p__50639;\nvar encoding \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50640,(0),null);\nif(cljs.core.truth_(s)){\nreturn decodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.url_decode.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.url_decode.cljs$lang$applyTo \x3d (function (seq50637){\nvar G__50638 \x3d cljs.core.first(seq50637);\nvar seq50637__$1 \x3d cljs.core.next(seq50637);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50638,seq50637__$1);\n}));\n\ntaoensso.encore.format_query_string \x3d (function taoensso$encore$format_query_string(m){\nvar param \x3d (function (k,v){\nreturn [taoensso.encore.url_encode(taoensso.encore.as_qname(k)),\x22\x3d\x22,taoensso.encore.url_encode((function (){var or__5025__auto__ \x3d taoensso.encore.as__QMARK_qname(v);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(v);\n}\n})())].join(\x27\x27);\n});\nvar join \x3d (function (strs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x26\x22,strs);\n});\nif(cljs.core.empty_QMARK_(m)){\nreturn \x22\x22;\n} else {\nreturn join((function (){var iter__5503__auto__ \x3d (function taoensso$encore$format_query_string_$_iter__50643(s__50644){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__50644__$1 \x3d s__50644;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__50644__$1);\nif(temp__5825__auto__){\nvar s__50644__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__50644__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__50644__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__50646 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__50645 \x3d (0);\nwhile(true){\nif((i__50645 \x3c size__5502__auto__)){\nvar vec__50647 \x3d cljs.core._nth(c__5501__auto__,i__50645);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50647,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50647,(1),null);\nif((!((v \x3d\x3d null)))){\ncljs.core.chunk_append(b__50646,((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ \x3d cljs.core.seq(v);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22], null);\n}\n})())):param(k,v)));\n\nvar G__51301 \x3d (i__50645 + (1));\ni__50645 \x3d G__51301;\ncontinue;\n} else {\nvar G__51302 \x3d (i__50645 + (1));\ni__50645 \x3d G__51302;\ncontinue;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__50646),taoensso$encore$format_query_string_$_iter__50643(cljs.core.chunk_rest(s__50644__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__50646),null);\n}\n} else {\nvar vec__50650 \x3d cljs.core.first(s__50644__$2);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50650,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50650,(1),null);\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.cons(((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ \x3d cljs.core.seq(v);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22], null);\n}\n})())):param(k,v)),taoensso$encore$format_query_string_$_iter__50643(cljs.core.rest(s__50644__$2)));\n} else {\nvar G__51305 \x3d cljs.core.rest(s__50644__$2);\ns__50644__$1 \x3d G__51305;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(m);\n})());\n}\n});\ntaoensso.encore.assoc_conj \x3d (function taoensso$encore$assoc_conj(m,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var b2__43681__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar cur \x3d b2__43681__auto__;\nif(cljs.core.vector_QMARK_(cur)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cur,v);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cur,v], null);\n}\n} else {\nreturn v;\n}\n})());\n});\n/**\n * Based on `ring-codec/form-decode`.\n */\ntaoensso.encore.parse_query_params \x3d (function taoensso$encore$parse_query_params(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51308 \x3d arguments.length;\nvar i__5750__auto___51309 \x3d (0);\nwhile(true){\nif((i__5750__auto___51309 \x3c len__5749__auto___51308)){\nargs__5755__auto__.push((arguments[i__5750__auto___51309]));\n\nvar G__51310 \x3d (i__5750__auto___51309 + (1));\ni__5750__auto___51309 \x3d G__51310;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s,p__50655){\nvar vec__50656 \x3d p__50655;\nvar keywordize_QMARK_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50656,(0),null);\nvar encoding \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50656,(1),null);\nif(((clojure.string.blank_QMARK_(s)) || (cljs.core.not(taoensso.encore.str_contains_QMARK_(s,\x22\x3d\x22))))){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nvar s__$1 \x3d (cljs.core.truth_(taoensso.encore.str_starts_with_QMARK_(s,\x22?\x22))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(1)):s);\nvar m \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,param){\nvar b2__43681__auto__ \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(param,/\x3d/,(2));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar vec__50659 \x3d b2__43681__auto__;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50659,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50659,(1),null);\nreturn taoensso.encore.assoc_conj(m,taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(k,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0)),taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(v,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0)));\n} else {\nreturn m;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,clojure.string.split.cljs$core$IFn$_invoke$arity$2(s__$1,/\x26/));\nif(cljs.core.truth_(keywordize_QMARK_)){\nreturn taoensso.encore.map_keys(cljs.core.keyword,m);\n} else {\nreturn m;\n}\n}\n}));\n\n(taoensso.encore.parse_query_params.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.parse_query_params.cljs$lang$applyTo \x3d (function (seq50653){\nvar G__50654 \x3d cljs.core.first(seq50653);\nvar seq50653__$1 \x3d cljs.core.next(seq50653);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50654,seq50653__$1);\n}));\n\ntaoensso.encore.merge_url_with_query_string \x3d (function taoensso$encore$merge_url_with_query_string(url,m){\nvar vec__50662 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),/\\?/,(2));\nvar url__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50662,(0),null);\nvar _QMARK_qstr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50662,(1),null);\nvar qmap \x3d taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(_QMARK_qstr)?taoensso.encore.map_keys(cljs.core.keyword,taoensso.encore.parse_query_params(_QMARK_qstr)):null),taoensso.encore.map_keys(cljs.core.keyword,m));\nvar _QMARK_qstr__$1 \x3d taoensso.encore.as__QMARK_nblank(taoensso.encore.format_query_string(qmap));\nvar b2__43681__auto__ \x3d _QMARK_qstr__$1;\nif(cljs.core.truth_(b2__43681__auto__)){\nvar qstr \x3d b2__43681__auto__;\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(url__$1),\x22?\x22,qstr].join(\x27\x27);\n} else {\nreturn url__$1;\n}\n});\n/**\n * Returns given Cljs argument as JSON string.\n */\ntaoensso.encore.pr_json \x3d (function taoensso$encore$pr_json(x){\nreturn JSON.stringify(cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic(x,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22keyword-fn\x22,\x22keyword-fn\x22,-64566675),taoensso.encore.as_qname], 0)));\n});\n/**\n * Reads given JSON string to return a Cljs value.\n */\ntaoensso.encore.read_json \x3d (function taoensso$encore$read_json(var_args){\nvar G__50666 \x3d arguments.length;\nswitch (G__50666) {\ncase 1:\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2(false,s);\n}));\n\n(taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2 \x3d (function (kw_keys_QMARK_,s){\nif((((s \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)))){\nreturn null;\n} else {\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nif(cljs.core.truth_(kw_keys_QMARK_)){\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(JSON.parse(s),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22keywordize-keys\x22,\x22keywordize-keys\x22,1310784252),true], 0));\n} else {\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(JSON.parse(s));\n}\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6751,9], null),\x22[encore/read-json] Unexpected arg type (expected string or nil)\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),s,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(s)], null)], null),null);\n}\n}\n}));\n\n(taoensso.encore.read_json.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Prefer `latom`.\n */\ntaoensso.encore._swap_val_BANG_ \x3d (function taoensso$encore$_swap_val_BANG_(atom_,k,f){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v1 \x3d (function (){var G__50674 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m0,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__50674) : f.call(null,G__50674));\n})();\nvar m1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nreturn v1;\n} else {\ncontinue;\n}\nbreak;\n}\n});\n\ntaoensso.encore.js__QMARK_win \x3d taoensso.encore.js__QMARK_window;\n\ntaoensso.encore.regular_num_QMARK_ \x3d taoensso.encore.finite_num_QMARK_;\n\ntaoensso.encore.get_window_location \x3d taoensso.encore.get_win_loc;\n\ntaoensso.encore.backport_run_BANG_ \x3d taoensso.encore.run_BANG_;\n\ntaoensso.encore.fq_name \x3d taoensso.encore.as_qname;\n\ntaoensso.encore.qname \x3d taoensso.encore.as_qname;\n\ntaoensso.encore.merge_deep_with \x3d taoensso.encore.nested_merge_with;\n\ntaoensso.encore.merge_deep \x3d taoensso.encore.nested_merge;\n\ntaoensso.encore.parse_bool \x3d taoensso.encore.as__QMARK_bool;\n\ntaoensso.encore.parse_int \x3d taoensso.encore.as__QMARK_int;\n\ntaoensso.encore.parse_float \x3d taoensso.encore.as__QMARK_float;\n\ntaoensso.encore.swapped_STAR_ \x3d taoensso.encore.swapped;\n\ntaoensso.encore.memoize_a0_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_a1_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.a0_memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.a1_memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_1 \x3d taoensso.encore.memoize_last;\n\ntaoensso.encore.memoize1 \x3d taoensso.encore.memoize_last;\n\ntaoensso.encore.memoize_STAR_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.nnil_QMARK_ \x3d cljs.core.some_QMARK_;\n\ntaoensso.encore.nneg_num_QMARK_ \x3d taoensso.encore.nat_num_QMARK_;\n\ntaoensso.encore.nneg_int_QMARK_ \x3d taoensso.encore.nat_int_QMARK_;\n\ntaoensso.encore.nneg_float_QMARK_ \x3d taoensso.encore.nat_float_QMARK_;\n\ntaoensso.encore.uint_QMARK_ \x3d taoensso.encore.nat_int_QMARK_;\n\ntaoensso.encore.pint_QMARK_ \x3d taoensso.encore.pos_int_QMARK_;\n\ntaoensso.encore.nnil_EQ_ \x3d taoensso.encore.some_EQ_;\n\ntaoensso.encore.as__QMARK_uint \x3d taoensso.encore.as__QMARK_nat_int;\n\ntaoensso.encore.as__QMARK_pint \x3d taoensso.encore.as__QMARK_pos_int;\n\ntaoensso.encore.as__QMARK_ufloat \x3d taoensso.encore.as__QMARK_nat_float;\n\ntaoensso.encore.as__QMARK_pfloat \x3d taoensso.encore.as__QMARK_pos_float;\n\ntaoensso.encore.as_uint \x3d taoensso.encore.as_nat_int;\n\ntaoensso.encore.as_pint \x3d taoensso.encore.as_pos_int;\n\ntaoensso.encore.as_ufloat \x3d taoensso.encore.as_nat_float;\n\ntaoensso.encore.as_pfloat \x3d taoensso.encore.as_pos_float;\n\ntaoensso.encore.run_BANG__STAR_ \x3d taoensso.encore.run_BANG_;\n\ntaoensso.encore.nano_time \x3d taoensso.encore.now_nano;\n\ntaoensso.encore._swap_cache_BANG_ \x3d taoensso.encore._swap_val_BANG_;\n\ntaoensso.encore._unswapped \x3d taoensso.encore.swapped_vec;\n\ntaoensso.encore._vswapped \x3d taoensso.encore.swapped_vec;\n\ntaoensso.encore._swap_k_BANG_ \x3d taoensso.encore._swap_val_BANG_;\n\ntaoensso.encore.update_in_STAR_ \x3d taoensso.encore.update_in;\n\ntaoensso.encore.idx_fn \x3d taoensso.encore.counter;\n\ntaoensso.encore.vec_STAR_ \x3d taoensso.encore.ensure_vec;\n\ntaoensso.encore.set_STAR_ \x3d taoensso.encore.ensure_set;\n\ntaoensso.encore.have_transducers_QMARK_ \x3d true;\n\ntaoensso.encore.pval_QMARK_ \x3d taoensso.encore.pnum_QMARK_;\n\ntaoensso.encore.as__QMARK_pval \x3d taoensso.encore.as__QMARK_pnum;\n\ntaoensso.encore.as_pval \x3d taoensso.encore.as_pnum;\n\nvar nolist_QMARK__51358 \x3d (function (p1__50667_SHARP_){\nreturn cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.createAsIfByAssoc([null,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY]),p1__50667_SHARP_);\n});\ntaoensso.encore.compile_ns_filter \x3d (function taoensso$encore$compile_ns_filter(var_args){\nvar G__50676 \x3d arguments.length;\nswitch (G__50676) {\ncase 1:\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns_pattern){\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2(ns_pattern,null);\n}));\n\n(taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2 \x3d (function (whitelist,blacklist){\nif(((nolist_QMARK__51358(whitelist)) \x26\x26 (nolist_QMARK__51358(blacklist)))){\nreturn (function (_){\nreturn true;\n});\n} else {\nreturn taoensso.encore.name_filter(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),whitelist,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),blacklist], null));\n}\n}));\n\n(taoensso.encore.compile_ns_filter.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.undefined__GT_nil \x3d (function taoensso$encore$undefined__GT_nil(x){\nif((void 0 \x3d\x3d\x3d x)){\nreturn null;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.spaced_str_with_nils \x3d (function taoensso$encore$spaced_str_with_nils(xs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.nil__GT_str,xs));\n});\n\ntaoensso.encore.spaced_str \x3d (function taoensso$encore$spaced_str(xs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.undefined__GT_nil,xs));\n});\n\ntaoensso.encore.approx_EQ_ \x3d (function taoensso$encore$approx_EQ_(var_args){\nvar G__50678 \x3d arguments.length;\nswitch (G__50678) {\ncase 2:\nreturn taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2(x,y);\n}));\n\n(taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,y,signf){\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3(signf,x,y);\n}));\n\n(taoensso.encore.approx_EQ_.cljs$lang$maxFixedArity \x3d 3);\n\n\ntaoensso.encore.join_once \x3d (function taoensso$encore$join_once(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51369 \x3d arguments.length;\nvar i__5750__auto___51370 \x3d (0);\nwhile(true){\nif((i__5750__auto___51370 \x3c len__5749__auto___51369)){\nargs__5755__auto__.push((arguments[i__5750__auto___51370]));\n\nvar G__51371 \x3d (i__5750__auto___51370 + (1));\ni__5750__auto___51370 \x3d G__51371;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.join_once.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.join_once.cljs$core$IFn$_invoke$arity$variadic \x3d (function (sep,coll){\nreturn taoensso.encore.str_join_once(sep,coll);\n}));\n\n(taoensso.encore.join_once.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.join_once.cljs$lang$applyTo \x3d (function (seq50679){\nvar G__50680 \x3d cljs.core.first(seq50679);\nvar seq50679__$1 \x3d cljs.core.next(seq50679);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50680,seq50679__$1);\n}));\n\n\ntaoensso.encore.nnil_set \x3d (function taoensso$encore$nnil_set(x){\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(taoensso.encore.ensure_set(x),null);\n});\n\ntaoensso.encore.keys_EQ_ \x3d (function taoensso$encore$keys_EQ_(m,ks){\nreturn taoensso.encore.ks_EQ_(ks,m);\n});\n\ntaoensso.encore.keys_LT__EQ_ \x3d (function taoensso$encore$keys_LT__EQ_(m,ks){\nreturn taoensso.encore.ks_LT__EQ_(ks,m);\n});\n\ntaoensso.encore.keys_GT__EQ_ \x3d (function taoensso$encore$keys_GT__EQ_(m,ks){\nreturn taoensso.encore.ks_GT__EQ_(ks,m);\n});\n\ntaoensso.encore.keys_EQ_nnil_QMARK_ \x3d (function taoensso$encore$keys_EQ_nnil_QMARK_(m,ks){\nreturn taoensso.encore.ks_nnil_QMARK_(ks,m);\n});\n\ntaoensso.encore.logging_level \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596));\n\ntaoensso.encore.set_exp_backoff_timeout_BANG_ \x3d (function taoensso$encore$set_exp_backoff_timeout_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51372 \x3d arguments.length;\nvar i__5750__auto___51374 \x3d (0);\nwhile(true){\nif((i__5750__auto___51374 \x3c len__5749__auto___51372)){\nargs__5755__auto__.push((arguments[i__5750__auto___51374]));\n\nvar G__51376 \x3d (i__5750__auto___51374 + (1));\ni__5750__auto___51374 \x3d G__51376;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (nullary_f,p__50683){\nvar vec__50684 \x3d p__50683;\nvar nattempt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50684,(0),null);\nreturn setTimeout(nullary_f,taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d nattempt;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})()));\n}));\n\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$applyTo \x3d (function (seq50681){\nvar G__50682 \x3d cljs.core.first(seq50681);\nvar seq50681__$1 \x3d cljs.core.next(seq50681);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50682,seq50681__$1);\n}));\n\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore._STAR_log_level_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore._STAR_log_level_STAR_ \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\n}\n\ntaoensso.encore.log_QMARK_ \x3d (function (){var __GT_n \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(1),new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596),(2),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),(3),new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),(4),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(5),new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888),(6),new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),(7)], null);\nreturn (function (level){\nreturn ((__GT_n.cljs$core$IFn$_invoke$arity$1 ? __GT_n.cljs$core$IFn$_invoke$arity$1(level) : __GT_n.call(null,level)) \x3e\x3d (__GT_n.cljs$core$IFn$_invoke$arity$1 ? __GT_n.cljs$core$IFn$_invoke$arity$1(taoensso.encore._STAR_log_level_STAR_) : __GT_n.call(null,taoensso.encore._STAR_log_level_STAR_)));\n});\n})();\n\ntaoensso.encore.tracef \x3d (function taoensso$encore$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51378 \x3d arguments.length;\nvar i__5750__auto___51380 \x3d (0);\nwhile(true){\nif((i__5750__auto___51380 \x3c len__5749__auto___51378)){\nargs__5755__auto__.push((arguments[i__5750__auto___51380]));\n\nvar G__51381 \x3d (i__5750__auto___51380 + (1));\ni__5750__auto___51380 \x3d G__51381;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.tracef.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.tracef.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.tracef.cljs$lang$applyTo \x3d (function (seq50687){\nvar G__50688 \x3d cljs.core.first(seq50687);\nvar seq50687__$1 \x3d cljs.core.next(seq50687);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50688,seq50687__$1);\n}));\n\n\ntaoensso.encore.debugf \x3d (function taoensso$encore$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51382 \x3d arguments.length;\nvar i__5750__auto___51383 \x3d (0);\nwhile(true){\nif((i__5750__auto___51383 \x3c len__5749__auto___51382)){\nargs__5755__auto__.push((arguments[i__5750__auto___51383]));\n\nvar G__51384 \x3d (i__5750__auto___51383 + (1));\ni__5750__auto___51383 \x3d G__51384;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.debugf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.debugf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.debugf.cljs$lang$applyTo \x3d (function (seq50689){\nvar G__50690 \x3d cljs.core.first(seq50689);\nvar seq50689__$1 \x3d cljs.core.next(seq50689);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50690,seq50689__$1);\n}));\n\n\ntaoensso.encore.infof \x3d (function taoensso$encore$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51386 \x3d arguments.length;\nvar i__5750__auto___51387 \x3d (0);\nwhile(true){\nif((i__5750__auto___51387 \x3c len__5749__auto___51386)){\nargs__5755__auto__.push((arguments[i__5750__auto___51387]));\n\nvar G__51388 \x3d (i__5750__auto___51387 + (1));\ni__5750__auto___51387 \x3d G__51388;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.infof.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.infof.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.infof.cljs$lang$applyTo \x3d (function (seq50691){\nvar G__50692 \x3d cljs.core.first(seq50691);\nvar seq50691__$1 \x3d cljs.core.next(seq50691);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50692,seq50691__$1);\n}));\n\n\ntaoensso.encore.warnf \x3d (function taoensso$encore$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51389 \x3d arguments.length;\nvar i__5750__auto___51390 \x3d (0);\nwhile(true){\nif((i__5750__auto___51390 \x3c len__5749__auto___51389)){\nargs__5755__auto__.push((arguments[i__5750__auto___51390]));\n\nvar G__51392 \x3d (i__5750__auto___51390 + (1));\ni__5750__auto___51390 \x3d G__51392;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.warnf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22WARN: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.warnf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.warnf.cljs$lang$applyTo \x3d (function (seq50693){\nvar G__50694 \x3d cljs.core.first(seq50693);\nvar seq50693__$1 \x3d cljs.core.next(seq50693);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50694,seq50693__$1);\n}));\n\n\ntaoensso.encore.errorf \x3d (function taoensso$encore$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51393 \x3d arguments.length;\nvar i__5750__auto___51394 \x3d (0);\nwhile(true){\nif((i__5750__auto___51394 \x3c len__5749__auto___51393)){\nargs__5755__auto__.push((arguments[i__5750__auto___51394]));\n\nvar G__51395 \x3d (i__5750__auto___51394 + (1));\ni__5750__auto___51394 \x3d G__51395;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.errorf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22ERROR: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.errorf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.errorf.cljs$lang$applyTo \x3d (function (seq50695){\nvar G__50696 \x3d cljs.core.first(seq50695);\nvar seq50695__$1 \x3d cljs.core.next(seq50695);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50696,seq50695__$1);\n}));\n\n\ntaoensso.encore.fatalf \x3d (function taoensso$encore$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51396 \x3d arguments.length;\nvar i__5750__auto___51397 \x3d (0);\nwhile(true){\nif((i__5750__auto___51397 \x3c len__5749__auto___51396)){\nargs__5755__auto__.push((arguments[i__5750__auto___51397]));\n\nvar G__51398 \x3d (i__5750__auto___51397 + (1));\ni__5750__auto___51397 \x3d G__51398;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.fatalf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22FATAL: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.fatalf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.fatalf.cljs$lang$applyTo \x3d (function (seq50697){\nvar G__50698 \x3d cljs.core.first(seq50697);\nvar seq50697__$1 \x3d cljs.core.next(seq50697);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50698,seq50697__$1);\n}));\n\n\ntaoensso.encore.reportf \x3d (function taoensso$encore$reportf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51399 \x3d arguments.length;\nvar i__5750__auto___51400 \x3d (0);\nwhile(true){\nif((i__5750__auto___51400 \x3c len__5749__auto___51399)){\nargs__5755__auto__.push((arguments[i__5750__auto___51400]));\n\nvar G__51401 \x3d (i__5750__auto___51400 + (1));\ni__5750__auto___51400 \x3d G__51401;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.reportf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.reportf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.reportf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.reportf.cljs$lang$applyTo \x3d (function (seq50699){\nvar G__50700 \x3d cljs.core.first(seq50699);\nvar seq50699__$1 \x3d cljs.core.next(seq50699);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50700,seq50699__$1);\n}));\n\n\ntaoensso.encore.greatest \x3d (function taoensso$encore$greatest(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51403 \x3d arguments.length;\nvar i__5750__auto___51404 \x3d (0);\nwhile(true){\nif((i__5750__auto___51404 \x3c len__5749__auto___51403)){\nargs__5755__auto__.push((arguments[i__5750__auto___51404]));\n\nvar G__51406 \x3d (i__5750__auto___51404 + (1));\ni__5750__auto___51404 \x3d G__51406;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,p__50703){\nvar vec__50704 \x3d p__50703;\nvar _QMARK_comparator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50704,(0),null);\nvar comparator \x3d (function (){var or__5025__auto__ \x3d _QMARK_comparator;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.rcompare;\n}\n})();\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__50669_SHARP_,p2__50670_SHARP_){\nif((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__50669_SHARP_,p2__50670_SHARP_) : comparator.call(null,p1__50669_SHARP_,p2__50670_SHARP_))) \x3e (0))){\nreturn p2__50670_SHARP_;\n} else {\nreturn p1__50669_SHARP_;\n}\n}),coll);\n}));\n\n(taoensso.encore.greatest.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.greatest.cljs$lang$applyTo \x3d (function (seq50701){\nvar G__50702 \x3d cljs.core.first(seq50701);\nvar seq50701__$1 \x3d cljs.core.next(seq50701);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50702,seq50701__$1);\n}));\n\n\ntaoensso.encore.least \x3d (function taoensso$encore$least(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51411 \x3d arguments.length;\nvar i__5750__auto___51412 \x3d (0);\nwhile(true){\nif((i__5750__auto___51412 \x3c len__5749__auto___51411)){\nargs__5755__auto__.push((arguments[i__5750__auto___51412]));\n\nvar G__51414 \x3d (i__5750__auto___51412 + (1));\ni__5750__auto___51412 \x3d G__51414;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,p__50709){\nvar vec__50710 \x3d p__50709;\nvar _QMARK_comparator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50710,(0),null);\nvar comparator \x3d (function (){var or__5025__auto__ \x3d _QMARK_comparator;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.rcompare;\n}\n})();\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__50671_SHARP_,p2__50672_SHARP_){\nif((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__50671_SHARP_,p2__50672_SHARP_) : comparator.call(null,p1__50671_SHARP_,p2__50672_SHARP_))) \x3c (0))){\nreturn p2__50672_SHARP_;\n} else {\nreturn p1__50671_SHARP_;\n}\n}),coll);\n}));\n\n(taoensso.encore.least.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.least.cljs$lang$applyTo \x3d (function (seq50707){\nvar G__50708 \x3d cljs.core.first(seq50707);\nvar seq50707__$1 \x3d cljs.core.next(seq50707);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50708,seq50707__$1);\n}));\n\n\n/**\n * Ref. \x3chttp://goo.gl/0GzRuz\x3e\n */\ntaoensso.encore.clj1098 \x3d (function taoensso$encore$clj1098(x){\nvar or__5025__auto__ \x3d x;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n});\n\n/**\n * Prefer `xdistinct`.\n */\ntaoensso.encore.distinct_by \x3d (function taoensso$encore$distinct_by(keyfn,coll){\nvar step \x3d (function taoensso$encore$distinct_by_$_step(xs,seen){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn (function (p__50713,seen__$1){\nwhile(true){\nvar vec__50714 \x3d p__50713;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50714,(0),null);\nvar xs__$1 \x3d vec__50714;\nvar b2__43681__auto__ \x3d cljs.core.seq(xs__$1);\nif(b2__43681__auto__){\nvar s \x3d b2__43681__auto__;\nvar v_STAR_ \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(v) : keyfn.call(null,v));\nif(cljs.core.contains_QMARK_(seen__$1,v_STAR_)){\nvar G__51417 \x3d cljs.core.rest(s);\nvar G__51418 \x3d seen__$1;\np__50713 \x3d G__51417;\nseen__$1 \x3d G__51418;\ncontinue;\n} else {\nreturn cljs.core.cons(v,taoensso$encore$distinct_by_$_step(cljs.core.rest(s),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen__$1,v_STAR_)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})(xs,seen);\n}),null,null));\n});\nreturn step(coll,cljs.core.PersistentHashSet.EMPTY);\n});\n\n/**\n * Prefer `xdistinct`.\n */\ntaoensso.encore.distinctv \x3d (function taoensso$encore$distinctv(var_args){\nvar G__50718 \x3d arguments.length;\nswitch (G__50718) {\ncase 1:\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,coll);\n}));\n\n(taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2 \x3d (function (keyfn,coll){\nvar tr \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__50719,in$){\nvar vec__50720 \x3d p__50719;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50720,(0),null);\nvar seen \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50720,(1),null);\nvar in_STAR_ \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$));\nif(cljs.core.contains_QMARK_(seen,in_STAR_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,seen], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,in$),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,in_STAR_)], null);\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.transient$(cljs.core.PersistentVector.EMPTY),cljs.core.PersistentHashSet.EMPTY], null),coll);\nreturn cljs.core.persistent_BANG_(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(tr,(0)));\n}));\n\n(taoensso.encore.distinctv.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.map_kvs \x3d (function taoensso$encore$map_kvs(kf,vf,m){\n\nif(cljs.core.truth_(m)){\nvar vf__$1 \x3d (((vf \x3d\x3d null))?(function (_,v){\nreturn v;\n}):vf);\nvar kf__$1 \x3d (((kf \x3d\x3d null))?(function (k,_){\nreturn k;\n}):((cljs.core.keyword_identical_QMARK_(kf,new cljs.core.Keyword(null,\x22keywordize\x22,\x22keywordize\x22,1381210758)))?(function (k,_){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k);\n}):kf));\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,(kf__$1.cljs$core$IFn$_invoke$arity$2 ? kf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : kf__$1.call(null,k,v)),(vf__$1.cljs$core$IFn$_invoke$arity$2 ? vf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : vf__$1.call(null,k,v)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n});\n\ntaoensso.encore.as_map \x3d (function taoensso$encore$as_map(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51425 \x3d arguments.length;\nvar i__5750__auto___51426 \x3d (0);\nwhile(true){\nif((i__5750__auto___51426 \x3c len__5749__auto___51425)){\nargs__5755__auto__.push((arguments[i__5750__auto___51426]));\n\nvar G__51427 \x3d (i__5750__auto___51426 + (1));\ni__5750__auto___51426 \x3d G__51427;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (kvs,p__50725){\nvar vec__50726 \x3d p__50725;\nvar kf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50726,(0),null);\nvar vf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50726,(1),null);\n\nif(cljs.core.empty_QMARK_(kvs)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nvar vf__$1 \x3d (((vf \x3d\x3d null))?(function (_,v){\nreturn v;\n}):vf);\nvar kf__$1 \x3d (((kf \x3d\x3d null))?(function (k,_){\nreturn k;\n}):((cljs.core.keyword_identical_QMARK_(kf,new cljs.core.Keyword(null,\x22keywordize\x22,\x22keywordize\x22,1381210758)))?(function (k,_){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k);\n}):kf));\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_kvs((function (m,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,(kf__$1.cljs$core$IFn$_invoke$arity$2 ? kf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : kf__$1.call(null,k,v)),(vf__$1.cljs$core$IFn$_invoke$arity$2 ? vf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : vf__$1.call(null,k,v)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),kvs));\n}\n}));\n\n(taoensso.encore.as_map.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.as_map.cljs$lang$applyTo \x3d (function (seq50723){\nvar G__50724 \x3d cljs.core.first(seq50723);\nvar seq50723__$1 \x3d cljs.core.next(seq50723);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50724,seq50723__$1);\n}));\n\n\ntaoensso.encore.keywordize_map \x3d (function taoensso$encore$keywordize_map(m){\nreturn taoensso.encore.map_keys(cljs.core.keyword,m);\n});\n\ntaoensso.encore.removev \x3d (function taoensso$encore$removev(pred,coll){\nreturn cljs.core.filterv(cljs.core.complement(pred),coll);\n});\n\ntaoensso.encore.nvec_QMARK_ \x3d (function taoensso$encore$nvec_QMARK_(n,x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),n)));\n});\n\ntaoensso.encore.memoized \x3d (function taoensso$encore$memoized(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51438 \x3d arguments.length;\nvar i__5750__auto___51439 \x3d (0);\nwhile(true){\nif((i__5750__auto___51439 \x3c len__5749__auto___51438)){\nargs__5755__auto__.push((arguments[i__5750__auto___51439]));\n\nvar G__51440 \x3d (i__5750__auto___51439 + (1));\ni__5750__auto___51439 \x3d G__51440;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.memoized.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.memoized.cljs$core$IFn$_invoke$arity$variadic \x3d (function (cache,f,args){\nif(cljs.core.truth_(cache)){\nreturn cljs.core.deref(taoensso.encore._swap_val_BANG_(cache,args,(function (_QMARK_dv){\nif(cljs.core.truth_(_QMARK_dv)){\nreturn _QMARK_dv;\n} else {\nreturn (new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}),null));\n}\n})));\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}\n}));\n\n(taoensso.encore.memoized.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(taoensso.encore.memoized.cljs$lang$applyTo \x3d (function (seq50729){\nvar G__50730 \x3d cljs.core.first(seq50729);\nvar seq50729__$1 \x3d cljs.core.next(seq50729);\nvar G__50731 \x3d cljs.core.first(seq50729__$1);\nvar seq50729__$2 \x3d cljs.core.next(seq50729__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50730,G__50731,seq50729__$2);\n}));\n\n\ntaoensso.encore.translate_signed_idx \x3d (function taoensso$encore$translate_signed_idx(signed_idx,max_idx){\nif((signed_idx \x3e\x3d (0))){\nvar x__5113__auto__ \x3d signed_idx;\nvar y__5114__auto__ \x3d max_idx;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n} else {\nvar x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (signed_idx + max_idx);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n}\n});\n\n\ntaoensso.encore.sentinel \x3d ({});\n\ntaoensso.encore.sentinel_QMARK_ \x3d (function taoensso$encore$sentinel_QMARK_(x){\nreturn (x \x3d\x3d\x3d taoensso.encore.sentinel);\n});\n\ntaoensso.encore.nil__GT_sentinel \x3d (function taoensso$encore$nil__GT_sentinel(x){\nif((x \x3d\x3d null)){\nreturn taoensso.encore.sentinel;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.sentinel__GT_nil \x3d (function taoensso$encore$sentinel__GT_nil(x){\nif(taoensso.encore.sentinel_QMARK_(x)){\nreturn null;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.singleton_QMARK_ \x3d (function taoensso$encore$singleton_QMARK_(coll){\nif(cljs.core.counted_QMARK_(coll)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(coll),(1));\n} else {\nreturn cljs.core.not(cljs.core.next(coll));\n}\n});\n\ntaoensso.encore.__GT__QMARK_singleton \x3d (function taoensso$encore$__GT__QMARK_singleton(coll){\nif(taoensso.encore.singleton_QMARK_(coll)){\nvar vec__50734 \x3d coll;\nvar c1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50734,(0),null);\nreturn c1;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.__GT_vec \x3d (function taoensso$encore$__GT_vec(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.sequential_QMARK_(x)){\nreturn cljs.core.vec(x);\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [x], null);\n}\n}\n});\n\ntaoensso.encore.fzipmap \x3d (function taoensso$encore$fzipmap(ks,vs){\nvar m \x3d cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\nvar ks__$1 \x3d cljs.core.seq(ks);\nvar vs__$1 \x3d cljs.core.seq(vs);\nwhile(true){\nif(((ks__$1) \x26\x26 (vs__$1))){\nvar G__51444 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,cljs.core.first(ks__$1),cljs.core.first(vs__$1));\nvar G__51445 \x3d cljs.core.next(ks__$1);\nvar G__51446 \x3d cljs.core.next(vs__$1);\nm \x3d G__51444;\nks__$1 \x3d G__51445;\nvs__$1 \x3d G__51446;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(m);\n}\nbreak;\n}\n});\n\ntaoensso.encore.filter_kvs \x3d (function taoensso$encore$filter_kvs(pred,m){\nif((m \x3d\x3d null)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n});\n\ntaoensso.encore.remove_kvs \x3d (function taoensso$encore$remove_kvs(pred,m){\nif((m \x3d\x3d null)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n} else {\nreturn m__$1;\n}\n}),m,m);\n}\n});\n\ntaoensso.encore.revery \x3d (function taoensso$encore$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\n\ntaoensso.encore.revery_kv \x3d (function taoensso$encore$revery_kv(pred,coll){\nreturn cljs.core.reduce_kv((function (acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\n\ntaoensso.encore.every \x3d taoensso.encore.revery;\n\ntaoensso.encore.replace_in \x3d (function taoensso$encore$replace_in(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___51447 \x3d arguments.length;\nvar i__5750__auto___51448 \x3d (0);\nwhile(true){\nif((i__5750__auto___51448 \x3c len__5749__auto___51447)){\nargs__5755__auto__.push((arguments[i__5750__auto___51448]));\n\nvar G__51449 \x3d (i__5750__auto___51448 + (1));\ni__5750__auto___51448 \x3d G__51449;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,ops){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m__$1,_QMARK_op){\nif(cljs.core.truth_(_QMARK_op)){\nvar vec__50739 \x3d _QMARK_op;\nvar type \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(0),null);\nvar ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(1),null);\nvar valf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50739,(2),null);\nvar f \x3d ((cljs.core.keyword_identical_QMARK_(type,new cljs.core.Keyword(null,\x22reset\x22,\x22reset\x22,-800929946)))?(function (_){\nreturn valf;\n}):valf);\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m__$1,ks,null,f);\n} else {\nreturn m__$1;\n}\n}),m,ops);\n}));\n\n(taoensso.encore.replace_in.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.replace_in.cljs$lang$applyTo \x3d (function (seq50737){\nvar G__50738 \x3d cljs.core.first(seq50737);\nvar seq50737__$1 \x3d cljs.core.next(seq50737);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50738,seq50737__$1);\n}));\n\n\nvar return_51452 \x3d (function (m0,v0,m1,v1){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v0,v1], null);\n});\n/**\n * Prefer `swap-in!` with `swapped` return value.\n */\ntaoensso.encore.swap_in_BANG__STAR_ \x3d (function taoensso$encore$swap_in_BANG__STAR_(var_args){\nvar G__50743 \x3d arguments.length;\nswitch (G__50743) {\ncase 2:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,f){\nreturn taoensso.encore._swap_k0_BANG_(return_51452,atom_,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,f){\nreturn taoensso.encore._swap_kn_BANG_(return_51452,atom_,ks,null,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,f){\nreturn taoensso.encore._swap_kn_BANG_(return_51452,atom_,ks,not_found,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Prefer `swap-val!` with `swapped` return value.\n */\ntaoensso.encore.swap_val_BANG__STAR_ \x3d (function taoensso$encore$swap_val_BANG__STAR_(var_args){\nvar G__50745 \x3d arguments.length;\nswitch (G__50745) {\ncase 3:\nreturn taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,f){\nreturn taoensso.encore._swap_k1_BANG_(return_51452,atom_,k,null,f);\n}));\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,f){\nreturn taoensso.encore._swap_k1_BANG_(return_51452,atom_,k,not_found,f);\n}));\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n\ntaoensso.encore.dswap_BANG_ \x3d taoensso.encore.swap_in_BANG__STAR_;\n\ntaoensso.encore.swap_BANG__STAR_ \x3d taoensso.encore.swap_in_BANG__STAR_;\n\n/**\n * Renamed to `name-filter`.\n */\ntaoensso.encore.compile_str_filter \x3d taoensso.encore.name_filter;\n\n/**\n * Prefer `identical-kw?` macro.\n */\ntaoensso.encore.kw_identical_QMARK_ \x3d (function taoensso$encore$kw_identical_QMARK_(x,y){\nreturn cljs.core.keyword_identical_QMARK_(x,y);\n});\n\n/**\n * Prefer `newline`.\n */\ntaoensso.encore.system_newline \x3d \x22\\n\x22;\n\n/**\n * Prefer `matching-error`.\n */\ntaoensso.encore._matching_error \x3d taoensso.truss.matching_error;\n\n/**\n * Prefer `rate-limiter`.\n */\ntaoensso.encore.rate_limiter_STAR_ \x3d (function taoensso$encore$rate_limiter_STAR_(var_args){\nvar G__50747 \x3d arguments.length;\nswitch (G__50747) {\ncase 1:\nreturn taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183),true], null),spec);\n}));\n\n(taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183),true),spec);\n}));\n\n(taoensso.encore.rate_limiter_STAR_.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Prefer `rate-limiter*`.\n */\ntaoensso.encore.limiter_STAR_ \x3d taoensso.encore.rate_limiter_STAR_;\n\n/**\n * Prefer `rate-limiter`.\n */\ntaoensso.encore.limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Prefer `reassoc-some`.\n */\ntaoensso.encore.dis_assoc_some \x3d taoensso.encore.reassoc_some;\n\n/**\n * Prefer `println`.\n */\ntaoensso.encore.println_atomic \x3d taoensso.encore.println;\n\n/**\n * Prefer `merge-with*`.\n */\ntaoensso.encore._merge_with \x3d taoensso.encore.merge_with_STAR_;\n\n/**\n * Prefer `merge`.\n */\ntaoensso.encore.fast_merge \x3d taoensso.encore.merge;\n\n/**\n * Prefer `rand-bytes`.\n */\ntaoensso.encore.secure_rand_bytes \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true);\n\n/**\n * Prefer `round`.\n */\ntaoensso.encore.round_STAR_ \x3d taoensso.encore.round;\n\n/**\n * Prefer `ajax-call`.\n */\ntaoensso.encore.ajax_lite \x3d taoensso.encore.ajax_call;\n\n/**\n * Prefer `ex-map`.\n */\ntaoensso.encore.error_data \x3d (function taoensso$encore$error_data(x){\nvar b2__43681__auto__ \x3d (function (){var and__5023__auto__ \x3d x;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.ex_data(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__43681__auto__)){\nvar data_map \x3d b2__43681__auto__;\nvar base_map \x3d (function (){var err \x3d x;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22err-type\x22,\x22err-type\x22,-116717722),cljs.core.type(err),new cljs.core.Keyword(null,\x22err-msg\x22,\x22err-msg\x22,-1158512684),err.message,new cljs.core.Keyword(null,\x22err-cause\x22,\x22err-cause\x22,897008749),err.cause], null);\n})();\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_map,data_map);\n} else {\nreturn null;\n}\n});\n\n/**\n * Prefer `is`.\n */\ntaoensso.encore.when_QMARK_ \x3d (function taoensso$encore$when_QMARK_(pred,x){\nif(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x));\n}catch (e50748){var _ \x3d e50748;\nreturn null;\n}})())){\nreturn x;\n} else {\nreturn null;\n}\n});\n\n/**\n * Prefer `list-form`.\n */\ntaoensso.encore.call_form_QMARK_ \x3d (function taoensso$encore$call_form_QMARK_(x){\nreturn taoensso.encore.list_form_QMARK_(x);\n});\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.get_subvec \x3d (function taoensso$encore$get_subvec(var_args){\nvar G__50750 \x3d arguments.length;\nswitch (G__50750) {\ncase 2:\nreturn taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,start){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,start);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$3 \x3d (function (v,start,end){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,start,end);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvec.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.get_subvector \x3d (function taoensso$encore$get_subvector(var_args){\nvar G__50752 \x3d arguments.length;\nswitch (G__50752) {\ncase 2:\nreturn taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,start){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$3 \x3d (function (v,start,len){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,len);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvector.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr_by_idx \x3d (function taoensso$encore$get_substr_by_idx(var_args){\nvar G__50754 \x3d arguments.length;\nswitch (G__50754) {\ncase 2:\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3(s,start,null);\n}));\n\n(taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,end){\nvar len \x3d cljs.core.count(s);\nvar start__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\nvar end__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d end;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn len;\n}\n})());\nvar start__$2 \x3d (((start__$1 \x3c (0)))?(start__$1 + len):start__$1);\nvar end__$2 \x3d (((end__$1 \x3c (0)))?(end__$1 + len):end__$1);\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-idx\x22,\x22by-idx\x22,-1997587605),start__$2,end__$2);\n}));\n\n(taoensso.encore.get_substr_by_idx.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr_by_len \x3d (function taoensso$encore$get_substr_by_len(var_args){\nvar G__50756 \x3d arguments.length;\nswitch (G__50756) {\ncase 2:\nreturn taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})(),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\n}));\n\n(taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,len){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})(),(function (){var or__5025__auto__ \x3d len;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548);\n}\n})());\n}));\n\n(taoensso.encore.get_substr_by_len.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr \x3d (function taoensso$encore$get_substr(var_args){\nvar G__50758 \x3d arguments.length;\nswitch (G__50758) {\ncase 2:\nreturn taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nvar or__5025__auto__ \x3d taoensso.encore.substr(s,start);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,end){\nvar or__5025__auto__ \x3d taoensso.encore.substr(s,start,end);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.get_substr.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substring \x3d (function taoensso$encore$get_substring(var_args){\nvar G__50760 \x3d arguments.length;\nswitch (G__50760) {\ncase 2:\nreturn taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\n}));\n\n(taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,len){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,len);\n}));\n\n(taoensso.encore.get_substring.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore._QMARK_subvec_LT_idx \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.not_empty,taoensso.encore.get_subvec);\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore._QMARK_subvec_LT_len \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.not_empty,taoensso.encore.get_subvector);\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.subvec_STAR_ \x3d taoensso.encore.get_subvector;\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore._QMARK_substr_LT_idx \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_nempty_str,taoensso.encore.get_substr);\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore._QMARK_substr_LT_len \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_nempty_str,taoensso.encore.get_substring);\n\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.encore.ex_root \x3d taoensso.truss.ex_root;\n\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.encore.ex_type \x3d taoensso.truss.ex_type;\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.encore.ex_map_STAR_ \x3d taoensso.truss.ex_map_STAR_;\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.encore.ex_map \x3d taoensso.truss.ex_map;\n\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.encore.ex_chain \x3d taoensso.truss.ex_chain;\n\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.encore.matching_error \x3d taoensso.truss.matching_error;\n\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.encore.catching_rf \x3d taoensso.truss.catching_rf;\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.encore.catching_xform \x3d taoensso.truss.catching_xform;\n\n/**\n * Prefer `*ctx*`\n */\ntaoensso.encore.get_truss_data \x3d taoensso.truss.get_data;\n\ntaoensso.encore.ex_message \x3d (function taoensso$encore$ex_message(x){\nif((x instanceof Error)){\nreturn x.message;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.ex_data \x3d (function taoensso$encore$ex_data(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn x.data;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.ex_cause \x3d (function taoensso$encore$ex_cause(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn x.cause;\n} else {\nreturn null;\n}\n});\n\n/**\n * Returns true if x is not nil, false otherwise.\n */\ntaoensso.encore.some_QMARK_ \x3d cljs.core.some_QMARK_;\n\ntaoensso.encore.is_BANG_ \x3d (function taoensso$encore$is_BANG_(var_args){\nvar G__50766 \x3d arguments.length;\nswitch (G__50766) {\ncase 1:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.some_QMARK_,x,null);\n}));\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,x){\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3(pred,x,null);\n}));\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pred,x,data){\nif(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x));\n}catch (e50767){var _ \x3d e50767;\nreturn null;\n}})())){\nreturn x;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [7349,8], null),[\x22[encore/is!] \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(pred),\x22 failed against arg: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(\x27\x27),taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data),null);\n}\n}));\n\n(taoensso.encore.is_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\ntaoensso.encore.pred \x3d (function taoensso$encore$pred(pred_fn){\nreturn pred_fn;\n});\n\ntaoensso.encore.pred_fn \x3d (function taoensso$encore$pred_fn(x){\nif(cljs.core.fn_QMARK_(x)){\nreturn x;\n} else {\nreturn null;\n}\n});\n"); -SHADOW_ENV.evalLoad("taoensso.encore.stats.js", true, "goog.provide(\x27taoensso.encore.stats\x27);\ngoog.scope(function(){\n taoensso.encore.stats.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.IReduce}\n*/\ntaoensso.encore.stats.SortedLongs \x3d (function (a){\nthis.a \x3d a;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 524306;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SortedLongs.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SortedLongs\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862),self__.a.length], null));\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.a.length;\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (_,idx){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.a[idx]);\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (_,idx,not_found){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar max_idx \x3d (self__.a.length - (1));\nif((idx \x3e max_idx)){\nreturn not_found;\n} else {\nif((idx \x3c max_idx)){\nreturn not_found;\n} else {\nreturn (self__.a[idx]);\n}\n}\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,f,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,i){\nvar G__50769 \x3d acc;\nvar G__50770 \x3d (self__.a[i]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50769,G__50770) : f.call(null,G__50769,G__50770));\n}),init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(self__.a.length));\n}));\n\n(taoensso.encore.stats.SortedLongs.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SortedLongs\x22);\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SortedLongs\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SortedLongs.\n */\ntaoensso.encore.stats.__GT_SortedLongs \x3d (function taoensso$encore$stats$__GT_SortedLongs(a){\nreturn (new taoensso.encore.stats.SortedLongs(a));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.IReduce}\n*/\ntaoensso.encore.stats.SortedDoubles \x3d (function (a){\nthis.a \x3d a;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 524306;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SortedDoubles.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SortedDoubles\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862),self__.a.length], null));\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.a.length;\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (_,idx){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.a[idx]);\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (_,idx,not_found){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar max_idx \x3d (self__.a.length - (1));\nif((idx \x3e max_idx)){\nreturn not_found;\n} else {\nif((idx \x3c max_idx)){\nreturn not_found;\n} else {\nreturn (self__.a[idx]);\n}\n}\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,f,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,i){\nvar G__50774 \x3d acc;\nvar G__50775 \x3d (self__.a[i]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50774,G__50775) : f.call(null,G__50774,G__50775));\n}),init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(self__.a.length));\n}));\n\n(taoensso.encore.stats.SortedDoubles.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SortedDoubles\x22);\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SortedDoubles\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SortedDoubles.\n */\ntaoensso.encore.stats.__GT_SortedDoubles \x3d (function taoensso$encore$stats$__GT_SortedDoubles(a){\nreturn (new taoensso.encore.stats.SortedDoubles(a));\n});\n\ntaoensso.encore.stats.sorted_longs_QMARK_ \x3d (function taoensso$encore$stats$sorted_longs_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SortedLongs);\n});\ntaoensso.encore.stats.sorted_doubles_QMARK_ \x3d (function taoensso$encore$stats$sorted_doubles_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SortedDoubles);\n});\ntaoensso.encore.stats.sorted_nums_QMARK_ \x3d (function taoensso$encore$stats$sorted_nums_QMARK_(x){\nreturn ((taoensso.encore.stats.sorted_longs_QMARK_(x)) || (taoensso.encore.stats.sorted_doubles_QMARK_(x)));\n});\n/**\n * Returns `SortedLongs` given `SortedLongs`, `SortedDoubles`, or num seq.\n */\ntaoensso.encore.stats.sorted_longs \x3d (function taoensso$encore$stats$sorted_longs(var_args){\nvar G__50781 \x3d arguments.length;\nswitch (G__50781) {\ncase 1:\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn (new taoensso.encore.stats.SortedLongs(cljs.core.long_array.cljs$core$IFn$_invoke$arity$1(nums.a)));\n} else {\nvar a \x3d ((cljs.core.array_QMARK_(nums))?(cljs.core.truth_(allow_mutation_QMARK_)?nums:cljs.core.aclone(nums)):cljs.core.to_array(nums));\ntaoensso.encore.stats.goog$module$goog$array.sort(a);\n\nreturn (new taoensso.encore.stats.SortedLongs(a));\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_longs.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns `SortedDoubles` given `SortedDoubles`, `SortedLongs`, or num seq.\n */\ntaoensso.encore.stats.sorted_doubles \x3d (function taoensso$encore$stats$sorted_doubles(var_args){\nvar G__50797 \x3d arguments.length;\nswitch (G__50797) {\ncase 1:\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn (new taoensso.encore.stats.SortedDoubles(cljs.core.double_array.cljs$core$IFn$_invoke$arity$1(nums.a)));\n} else {\nvar a \x3d ((cljs.core.array_QMARK_(nums))?(cljs.core.truth_(allow_mutation_QMARK_)?nums:cljs.core.aclone(nums)):cljs.core.to_array(nums));\ntaoensso.encore.stats.goog$module$goog$array.sort(a);\n\nreturn (new taoensso.encore.stats.SortedDoubles(a));\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_doubles.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.stats.fast_first \x3d (function taoensso$encore$stats$fast_first(x){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$3(x,(0),null);\n});\n/**\n * Returns `SortedLongs` or `SortedDoubles`,\n * given `SortedLongs`, `SortedDoubles`, or num seq.\n */\ntaoensso.encore.stats.sorted_nums \x3d (function taoensso$encore$stats$sorted_nums(var_args){\nvar G__50807 \x3d arguments.length;\nswitch (G__50807) {\ncase 1:\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nnew cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [nums], null);\n\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn nums;\n} else {\nif(cljs.core.truth_((function (){var temp__5825__auto__ \x3d taoensso.encore.stats.fast_first(nums);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar n1 \x3d temp__5825__auto__;\nreturn taoensso.encore.float_QMARK_(n1);\n} else {\nreturn null;\n}\n})())){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(allow_mutation_QMARK_,nums);\n} else {\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(allow_mutation_QMARK_,nums);\n}\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_nums.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns interpolated nth numerical value.\n */\ntaoensso.encore.stats.weighted_nth \x3d (function taoensso$encore$stats$weighted_nth(idx,nums){\nvar idx__$1 \x3d idx;\nvar idx_floor \x3d Math.floor(idx__$1);\nvar idx_ceil \x3d Math.ceil(idx__$1);\nif((idx_ceil \x3d\x3d\x3d idx_floor)){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx__$1 | (0)));\n} else {\nvar weight_floor \x3d (idx_ceil - idx__$1);\nvar weight_ceil \x3d ((1) - weight_floor);\nreturn ((weight_floor * cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx_floor | (0)))) + (weight_ceil * cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx_ceil | (0)))));\n}\n});\n/**\n * Returns ?element.\n */\ntaoensso.encore.stats.percentile \x3d (function taoensso$encore$stats$percentile(pnum,nums){\nvar snums \x3d taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1(nums);\nvar max_idx \x3d (cljs.core.count(snums) - (1));\nif((max_idx \x3e\x3d (0))){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * taoensso.encore.as_pnum_BANG_(pnum))));\n} else {\nreturn null;\n}\n});\n/**\n * Returns ?[min p25 p50 p75 p90 p95 p99 max] elements in:\n * - O(1) for Sorted types (SortedLongs, SortedDoubles),\n * - O(n.log_n) otherwise.\n */\ntaoensso.encore.stats.percentiles \x3d (function taoensso$encore$stats$percentiles(nums){\nvar snums \x3d taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1(nums);\nvar max_idx \x3d (cljs.core.count(snums) - (1));\nif((max_idx \x3e\x3d (0))){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,(0)),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.25))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.5))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.75))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.9))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.95))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.99))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,max_idx)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.stats.bessel_correction \x3d (function taoensso$encore$stats$bessel_correction(n,add){\nreturn (n + add);\n});\ntaoensso.encore.stats.rf_sum \x3d (function taoensso$encore$stats$rf_sum(acc,in$){\nreturn (acc + in$);\n});\ntaoensso.encore.stats.rf_sum_variance \x3d (function taoensso$encore$stats$rf_sum_variance(xbar,acc,x){\nreturn (acc + Math.pow((x - xbar),2.0));\n});\ntaoensso.encore.stats.rf_sum_abs_deviation \x3d (function taoensso$encore$stats$rf_sum_abs_deviation(central_point,acc,x){\nreturn (acc + Math.abs((x - central_point)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.stats.SummaryStats \x3d (function (xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum){\nthis.xfloats_QMARK_ \x3d xfloats_QMARK_;\nthis.nx \x3d nx;\nthis.xsum \x3d xsum;\nthis.xmin \x3d xmin;\nthis.xmax \x3d xmax;\nthis.xlast \x3d xlast;\nthis.p25 \x3d p25;\nthis.p50 \x3d p50;\nthis.p75 \x3d p75;\nthis.p90 \x3d p90;\nthis.p95 \x3d p95;\nthis.p99 \x3d p99;\nthis.xvar_sum \x3d xvar_sum;\nthis.xmad_sum \x3d xmad_sum;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SummaryStats.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SummaryStats\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),self__.nx], null));\n}));\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (taoensso.encore.stats.deref_sstats.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.stats.deref_sstats.cljs$core$IFn$_invoke$arity$1(this$__$1) : taoensso.encore.stats.deref_sstats.call(null,this$__$1));\n}));\n\n(taoensso.encore.stats.SummaryStats.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 14, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22xfloats?\x22,\x22xfloats?\x22,-1045666612,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22nx\x22,\x22nx\x22,-355904839,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xsum\x22,\x22xsum\x22,-1727262973,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmin\x22,\x22xmin\x22,-666991895,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmax\x22,\x22xmax\x22,-955946008,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xlast\x22,\x22xlast\x22,2044041055,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p25\x22,\x22p25\x22,-746504108,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p50\x22,\x22p50\x22,140405155,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p75\x22,\x22p75\x22,1087889997,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p90\x22,\x22p90\x22,1954450489,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p95\x22,\x22p95\x22,561546053,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p99\x22,\x22p99\x22,-1061840369,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xvar-sum\x22,\x22xvar-sum\x22,1779238530,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmad-sum\x22,\x22xmad-sum\x22,-1123105350,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SummaryStats\x22);\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SummaryStats\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SummaryStats.\n */\ntaoensso.encore.stats.__GT_SummaryStats \x3d (function taoensso$encore$stats$__GT_SummaryStats(xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum){\nreturn (new taoensso.encore.stats.SummaryStats(xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum));\n});\n\ntaoensso.encore.stats.deref_sstats \x3d (function taoensso$encore$stats$deref_sstats(ss){\nvar fin \x3d (cljs.core.truth_(ss.xfloats_QMARK_)?cljs.core.double$:(function (p1__50859_SHARP_){\nreturn Math.round(p1__50859_SHARP_);\n}));\nvar nx \x3d ss.nx;\nif((nx \x3e (0))){\n} else {\nthrow (new Error(\x22Assert failed: (pos? nx)\x22));\n}\n\nreturn cljs.core.with_meta(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),new cljs.core.Keyword(null,\x22mean\x22,\x22mean\x22,-1359234715),new cljs.core.Keyword(null,\x22p75\x22,\x22p75\x22,-552641530),new cljs.core.Keyword(null,\x22mad-sum\x22,\x22mad-sum\x22,-768606937),new cljs.core.Keyword(null,\x22p99\x22,\x22p99\x22,1592595400),new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.Keyword(null,\x22p25\x22,\x22p25\x22,1907931661),new cljs.core.Keyword(null,\x22p90\x22,\x22p90\x22,313918962),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),new cljs.core.Keyword(null,\x22mad\x22,\x22mad\x22,-1963165801),new cljs.core.Keyword(null,\x22last\x22,\x22last\x22,1105735132),new cljs.core.Keyword(null,\x22p50\x22,\x22p50\x22,-1500126372),new cljs.core.Keyword(null,\x22sum\x22,\x22sum\x22,136986814),new cljs.core.Keyword(null,\x22p95\x22,\x22p95\x22,-1078985474),new cljs.core.Keyword(null,\x22var-sum\x22,\x22var-sum\x22,-1026113793)],[(function (){var G__50863 \x3d ss.xmin;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50863) : fin.call(null,G__50863));\n})(),(ss.xsum / nx),(function (){var G__50864 \x3d ss.p75;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50864) : fin.call(null,G__50864));\n})(),ss.xmad_sum,(function (){var G__50865 \x3d ss.p99;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50865) : fin.call(null,G__50865));\n})(),nx,(function (){var G__50866 \x3d ss.p25;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50866) : fin.call(null,G__50866));\n})(),(function (){var G__50867 \x3d ss.p90;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50867) : fin.call(null,G__50867));\n})(),(ss.xvar_sum / nx),(function (){var G__50868 \x3d ss.xmax;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50868) : fin.call(null,G__50868));\n})(),(ss.xmad_sum / nx),(function (){var G__50869 \x3d ss.xlast;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50869) : fin.call(null,G__50869));\n})(),(function (){var G__50870 \x3d ss.p50;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50870) : fin.call(null,G__50870));\n})(),(function (){var G__50871 \x3d ss.xsum;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50871) : fin.call(null,G__50871));\n})(),(function (){var G__50872 \x3d ss.p95;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__50872) : fin.call(null,G__50872));\n})(),ss.xvar_sum]),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155),ss.xfloats_QMARK_], null));\n});\n/**\n * Returns true iff given a `SummaryStats` argument.\n */\ntaoensso.encore.stats.summary_stats_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SummaryStats);\n});\n/**\n * Given a coll of numbers or previously dereffed `SummaryStats` map,\n * returns a new mergeable ?`SummaryStats` with:\n * (deref ss) \x3d\x3e {:keys [n sum min max p25 ... p99 mean var mad]}\n * \n * See also `summary-stats-merge`.\n */\ntaoensso.encore.stats.summary_stats \x3d (function taoensso$encore$stats$summary_stats(var_args){\nvar G__50875 \x3d arguments.length;\nswitch (G__50875) {\ncase 1:\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2(null,x);\n}));\n\n(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,x){\nif(cljs.core.truth_(x)){\nif(taoensso.encore.stats.summary_stats_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.map_QMARK_(x)){\nvar map__50882 \x3d x;\nvar map__50882__$1 \x3d cljs.core.__destructure_map(map__50882);\nvar last \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22last\x22,\x22last\x22,1105735132));\nvar p50 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p50\x22,\x22p50\x22,-1500126372));\nvar sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22sum\x22,\x22sum\x22,136986814));\nvar p95 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p95\x22,\x22p95\x22,-1078985474));\nvar var_sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22var-sum\x22,\x22var-sum\x22,-1026113793));\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar p75 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p75\x22,\x22p75\x22,-552641530));\nvar mad_sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22mad-sum\x22,\x22mad-sum\x22,-768606937));\nvar p99 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p99\x22,\x22p99\x22,1592595400));\nvar n \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025));\nvar p25 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p25\x22,\x22p25\x22,1907931661));\nvar p90 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22p90\x22,\x22p90\x22,313918962));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50882__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar floats_QMARK_ \x3d (function (){var b2__43681__auto__ \x3d cljs.core.find(opts,new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn cljs.core.val(e);\n} else {\nvar b2__43681__auto____$1 \x3d cljs.core.find(cljs.core.meta(x),new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar e \x3d b2__43681__auto____$1;\nreturn cljs.core.val(e);\n} else {\nreturn taoensso.encore.float_QMARK_(sum);\n}\n}\n})();\nreturn (new taoensso.encore.stats.SummaryStats(floats_QMARK_,n,sum,min,max,last,p25,p50,p75,p90,p95,p99,var_sum,mad_sum));\n} else {\nvar snums \x3d (function (){var temp__5823__auto__ \x3d cljs.core.find(opts,new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nif(cljs.core.truth_(cljs.core.val(e))){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(true,x);\n} else {\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(true,x);\n}\n} else {\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2(true,x);\n}\n})();\nvar nx \x3d cljs.core.count(snums);\nif((nx \x3e (0))){\nvar vec__50900 \x3d taoensso.encore.stats.percentiles(snums);\nvar xmin \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(0),null);\nvar p25 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(1),null);\nvar p50 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(2),null);\nvar p75 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(3),null);\nvar p90 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(4),null);\nvar p95 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(5),null);\nvar p99 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(6),null);\nvar xmax \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50900,(7),null);\nvar xsum \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.stats.rf_sum,0.0,snums);\nvar xbar \x3d (xsum / nx);\nvar xlast \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,(nx - (1)));\nvar vec__50903 \x3d taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.stats.rf_sum_variance,xbar),0.0,cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.stats.rf_sum_abs_deviation,xbar),0.0,snums);\nvar xvar_sum \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50903,(0),null);\nvar xmad_sum \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50903,(1),null);\nreturn (new taoensso.encore.stats.SummaryStats(taoensso.encore.stats.sorted_doubles_QMARK_(snums),nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum));\n} else {\nreturn null;\n}\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.stats.summary_stats.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given one or more ?`SummaryStats`, returns a new ?`SummaryStats` with:\n * (summary-stats-merge\n * (summary-stats nums1)\n * (summary-stats nums2))\n * \n * an approximatation of (summary-stats (merge nums1 nums2))\n * \n * Useful when you want summary stats for a large coll of numbers for which\n * it would be infeasible/expensive to keep all numbers for accurate merging.\n */\ntaoensso.encore.stats.summary_stats_merge \x3d (function taoensso$encore$stats$summary_stats_merge(var_args){\nvar G__50912 \x3d arguments.length;\nswitch (G__50912) {\ncase 1:\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (ss1){\nreturn ss1;\n}));\n\n(taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (ss1,ss2){\nif(cljs.core.truth_(ss1)){\nif(cljs.core.truth_(ss2)){\nvar ss1__$1 \x3d ss1;\nvar ss2__$1 \x3d ss2;\nvar nx1 \x3d ss1__$1.nx;\nvar nx2 \x3d ss2__$1.nx;\nvar _ \x3d (((nx1 \x3e (0)))?null:(function(){throw (new Error(\x22Assert failed: (pos? nx1)\x22))})());\nvar ___$1 \x3d (((nx2 \x3e (0)))?null:(function(){throw (new Error(\x22Assert failed: (pos? nx2)\x22))})());\nvar xfloats1_QMARK_ \x3d ss1__$1.xfloats_QMARK_;\nvar xsum1 \x3d ss1__$1.xsum;\nvar xmin1 \x3d ss1__$1.xmin;\nvar xmax1 \x3d ss1__$1.xmax;\nvar p25_1 \x3d ss1__$1.p25;\nvar p50_1 \x3d ss1__$1.p50;\nvar p75_1 \x3d ss1__$1.p75;\nvar p90_1 \x3d ss1__$1.p90;\nvar p95_1 \x3d ss1__$1.p95;\nvar p99_1 \x3d ss1__$1.p99;\nvar xvar_sum1 \x3d ss1__$1.xvar_sum;\nvar xmad_sum1 \x3d ss1__$1.xmad_sum;\nvar xfloats2_QMARK_ \x3d ss2__$1.xfloats_QMARK_;\nvar xsum2 \x3d ss2__$1.xsum;\nvar xmin2 \x3d ss2__$1.xmin;\nvar xmax2 \x3d ss2__$1.xmax;\nvar xlast2 \x3d ss2__$1.xlast;\nvar p25_2 \x3d ss2__$1.p25;\nvar p50_2 \x3d ss2__$1.p50;\nvar p75_2 \x3d ss2__$1.p75;\nvar p90_2 \x3d ss2__$1.p90;\nvar p95_2 \x3d ss2__$1.p95;\nvar p99_2 \x3d ss2__$1.p99;\nvar xvar_sum2 \x3d ss2__$1.xvar_sum;\nvar xmad_sum2 \x3d ss2__$1.xmad_sum;\nvar xfloats3_QMARK_ \x3d (function (){var or__5025__auto__ \x3d xfloats1_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn xfloats2_QMARK_;\n}\n})();\nvar nx3 \x3d (nx1 + nx2);\nvar nx1_ratio \x3d (nx1 / nx3);\nvar nx2_ratio \x3d (nx2 / nx3);\nvar xsum3 \x3d (xsum1 + xsum2);\nvar xmin3 \x3d (((xmin1 \x3c xmin2))?xmin1:xmin2);\nvar xmax3 \x3d (((xmax1 \x3e xmax2))?xmax1:xmax2);\nvar xvar_sum3 \x3d (xvar_sum1 + xvar_sum2);\nvar xmad_sum3 \x3d (xmad_sum1 + xmad_sum2);\nvar p25_3 \x3d ((nx1_ratio * p25_1) + (nx2_ratio * p25_2));\nvar p50_3 \x3d ((nx1_ratio * p50_1) + (nx2_ratio * p50_2));\nvar p75_3 \x3d ((nx1_ratio * p75_1) + (nx2_ratio * p75_2));\nvar p90_3 \x3d ((nx1_ratio * p90_1) + (nx2_ratio * p90_2));\nvar p95_3 \x3d ((nx1_ratio * p95_1) + (nx2_ratio * p95_2));\nvar p99_3 \x3d ((nx1_ratio * p99_1) + (nx2_ratio * p99_2));\nreturn (new taoensso.encore.stats.SummaryStats(xfloats3_QMARK_,nx3,xsum3,xmin3,xmax3,xlast2,p25_3,p50_3,p75_3,p90_3,p95_3,p99_3,xvar_sum3,xmad_sum3));\n} else {\nreturn ss1;\n}\n} else {\nreturn ss2;\n}\n}));\n\n(taoensso.encore.stats.summary_stats_merge.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.stats.buf_new \x3d (function taoensso$encore$stats$buf_new(var_args){\nvar G__50931 \x3d arguments.length;\nswitch (G__50931) {\ncase 0:\nreturn taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn [];\n}));\n\n(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nif(cljs.core.truth_(init)){\nreturn [init];\n} else {\nreturn [];\n}\n}));\n\n(taoensso.encore.stats.buf_new.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.encore.stats.buf_add \x3d (function taoensso$encore$stats$buf_add(buf,x){\nreturn buf.push(x);\n});\ntaoensso.encore.stats.buf_len \x3d (function taoensso$encore$stats$buf_len(buf){\nreturn buf.length;\n});\n\n/**\n * @interface\n */\ntaoensso.encore.stats.ISummaryStatsBuffered \x3d function(){};\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_51073 \x3d (function() {\nvar G__51074 \x3d null;\nvar G__51074__1 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_deref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_deref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-deref\x22,_);\n}\n}\n});\nvar G__51074__2 \x3d (function (_,flush_QMARK_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_deref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,flush_QMARK_) : m__5374__auto__.call(null,_,flush_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_deref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,flush_QMARK_) : m__5372__auto__.call(null,_,flush_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-deref\x22,_);\n}\n}\n});\nG__51074 \x3d function(_,flush_QMARK_){\nswitch(arguments.length){\ncase 1:\nreturn G__51074__1.call(this,_);\ncase 2:\nreturn G__51074__2.call(this,_,flush_QMARK_);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__51074.cljs$core$IFn$_invoke$arity$1 \x3d G__51074__1;\nG__51074.cljs$core$IFn$_invoke$arity$2 \x3d G__51074__2;\nreturn G__51074;\n})()\n;\n/**\n * Returns current ?sstats.\n */\ntaoensso.encore.stats.ssb_deref \x3d (function taoensso$encore$stats$ssb_deref(var_args){\nvar G__50946 \x3d arguments.length;\nswitch (G__50946) {\ncase 1:\nreturn taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$1 \x3d (function (_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_51073(_);\n}\n}));\n\n(taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$2 \x3d (function (_,flush_QMARK_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2(_,flush_QMARK_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_51073(_,flush_QMARK_);\n}\n}));\n\n(taoensso.encore.stats.ssb_deref.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$dyn_51081 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_clear[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_clear[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-clear\x22,_);\n}\n}\n});\n/**\n * Clears all internal state and returns nil.\n */\ntaoensso.encore.stats.ssb_clear \x3d (function taoensso$encore$stats$ssb_clear(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$dyn_51081(_);\n}\n});\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$dyn_51082 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_flush[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_flush[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-flush\x22,_);\n}\n}\n});\n/**\n * Flushes internal buffer and returns newly merged sstats or nil.\n */\ntaoensso.encore.stats.ssb_flush \x3d (function taoensso$encore$stats$ssb_flush(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$dyn_51082(_);\n}\n});\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$dyn_51084 \x3d (function (_,n){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_push[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,n) : m__5374__auto__.call(null,_,n));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_push[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,n) : m__5372__auto__.call(null,_,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-push\x22,_);\n}\n}\n});\n/**\n * Adds given num to internal buffer.\n */\ntaoensso.encore.stats.ssb_push \x3d (function taoensso$encore$stats$ssb_push(_,n){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2(_,n);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$dyn_51084(_,n);\n}\n});\n\n/**\n * Clears internal state (incl. stats and buffers, etc.) for given\n * stateful `SummaryStats` instance and returns nil.\n */\ntaoensso.encore.stats.summary_stats_clear_BANG_ \x3d (function taoensso$encore$stats$summary_stats_clear_BANG_(stateful_summary_stats){\nreturn taoensso.encore.stats.ssb_clear(stateful_summary_stats);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {taoensso.encore.stats.ISummaryStatsBuffered}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.stats.SummaryStatsBuffered \x3d (function (sstats_,buf_,buf_size,merge_counter,merge_cb){\nthis.sstats_ \x3d sstats_;\nthis.buf_ \x3d buf_;\nthis.buf_size \x3d buf_size;\nthis.merge_counter \x3d merge_counter;\nthis.merge_cb \x3d merge_cb;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SummaryStatsBuffered\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),cljs.core.get.cljs$core$IFn$_invoke$arity$3((self__.sstats_.cljs$core$IFn$_invoke$arity$0 ? self__.sstats_.cljs$core$IFn$_invoke$arity$0() : self__.sstats_.call(null)),new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),(0)),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),taoensso.encore.stats.buf_len((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null))),new cljs.core.Keyword(null,\x22merged\x22,\x22merged\x22,1648712643),(function (){var temp__5823__auto__ \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar mc \x3d temp__5823__auto__;\nreturn cljs.core.deref(mc);\n} else {\nreturn (0);\n}\n})()], null));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1(null);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__50973 \x3d (arguments.length - (1));\nswitch (G__50973) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.apply \x3d (function (self__,args50971){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args50971)));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2(null,n);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2(null,true);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2 \x3d (function (this$,flush_QMARK_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d flush_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(null);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (self__.sstats_.cljs$core$IFn$_invoke$arity$0 ? self__.sstats_.cljs$core$IFn$_invoke$arity$0() : self__.sstats_.call(null));\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.reset_BANG_(self__.buf_,taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0());\n\ncljs.core.reset_BANG_(self__.sstats_,null);\n\nvar temp__5825__auto___51096 \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5825__auto___51096)){\nvar mc_51097 \x3d temp__5825__auto___51096;\n(mc_51097.cljs$core$IFn$_invoke$arity$2 ? mc_51097.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),(0)) : mc_51097.call(null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),(0)));\n} else {\n}\n\nreturn null;\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar vec__50983 \x3d cljs.core.reset_vals_BANG_(self__.buf_,taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1(null));\nvar drained \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50983,(0),null);\nif((taoensso.encore.stats.buf_len(drained) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nvar t0 \x3d (cljs.core.truth_(self__.merge_cb)?taoensso.encore.now_nano():null);\nvar _ \x3d (function (){var temp__5825__auto__ \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar mc \x3d temp__5825__auto__;\nreturn (mc.cljs$core$IFn$_invoke$arity$0 ? mc.cljs$core$IFn$_invoke$arity$0() : mc.call(null));\n} else {\nreturn null;\n}\n})();\nvar sstats_drained \x3d taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1(drained);\nvar sstats_merged \x3d (function (){var G__50992 \x3d (function (old){\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2(old,sstats_drained);\n});\nreturn (self__.sstats_.cljs$core$IFn$_invoke$arity$1 ? self__.sstats_.cljs$core$IFn$_invoke$arity$1(G__50992) : self__.sstats_.call(null,G__50992));\n})();\nif(cljs.core.truth_(self__.merge_cb)){\nvar G__50993_51100 \x3d this$__$1;\nvar G__50994_51101 \x3d (taoensso.encore.now_nano() - t0);\n(self__.merge_cb.cljs$core$IFn$_invoke$arity$2 ? self__.merge_cb.cljs$core$IFn$_invoke$arity$2(G__50993_51100,G__50994_51101) : self__.merge_cb.call(null,G__50993_51100,G__50994_51101));\n} else {\n}\n\nreturn sstats_merged;\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2 \x3d (function (this$,n){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntaoensso.encore.stats.buf_add((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null)),n);\n\nvar temp__5825__auto___51105 \x3d self__.buf_size;\nif(cljs.core.truth_(temp__5825__auto___51105)){\nvar nmax_51106 \x3d temp__5825__auto___51105;\nif((taoensso.encore.stats.buf_len((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null))) \x3e nmax_51106)){\nthis$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(null);\n} else {\n}\n} else {\n}\n\nreturn null;\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22sstats_\x22,\x22sstats_\x22,-1678756230,null),new cljs.core.Symbol(null,\x22buf_\x22,\x22buf_\x22,-495739085,null),new cljs.core.Symbol(null,\x22buf-size\x22,\x22buf-size\x22,828478350,null),new cljs.core.Symbol(null,\x22merge-counter\x22,\x22merge-counter\x22,-694937119,null),new cljs.core.Symbol(null,\x22merge-cb\x22,\x22merge-cb\x22,692712502,null)], null);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SummaryStatsBuffered\x22);\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SummaryStatsBuffered\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SummaryStatsBuffered.\n */\ntaoensso.encore.stats.__GT_SummaryStatsBuffered \x3d (function taoensso$encore$stats$__GT_SummaryStatsBuffered(sstats_,buf_,buf_size,merge_counter,merge_cb){\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(sstats_,buf_,buf_size,merge_counter,merge_cb));\n});\n\n/**\n * Returns a new stateful `SummaryStatsBuffered` with:\n * (ssb \x3cnum\x3e) \x3d\x3e Adds given number to internal buffer.\n * (deref ssb) \x3d\x3e Flushes buffer if necessary, and returns a mergeable\n * `?SummaryStats`. Deref again to get a map of summary\n * stats for all numbers ever added to ssb:\n * {:keys [n sum min max p25 ... p99 mean var mad]}.\n * \n * Useful for summarizing a (possibly infinite) stream of numbers.\n * \n * Options:\n * `:buffer-init` - Initial buffer content, useful for persistent ssb.\n * `:sstats-init` - Initial summary stats, useful for persistent ssb.\n * `:buffer-size`\n * The maximum number of numbers that may be buffered before next\n * (ssb \x3cnum\x3e) call will block to flush buffer and merge with any\n * existing summary stats.\n * \n * Larger buffers mean better performance and more accurate stats,\n * at the cost of more memory use while buffering.\n */\ntaoensso.encore.stats.summary_stats_buffered \x3d (function taoensso$encore$stats$summary_stats_buffered(var_args){\nvar G__51012 \x3d arguments.length;\nswitch (G__51012) {\ncase 0:\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__51013){\nvar map__51014 \x3d p__51013;\nvar map__51014__$1 \x3d cljs.core.__destructure_map(map__51014);\nvar opts \x3d map__51014__$1;\nvar buffer_size \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__51014__$1,new cljs.core.Keyword(null,\x22buffer-size\x22,\x22buffer-size\x22,1047120420),100000.0);\nvar buffer_init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51014__$1,new cljs.core.Keyword(null,\x22buffer-init\x22,\x22buffer-init\x22,-1144679333));\nvar sstats_init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51014__$1,new cljs.core.Keyword(null,\x22sstats-init\x22,\x22sstats-init\x22,689628975));\nvar merge_cb \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51014__$1,new cljs.core.Keyword(null,\x22merge-cb\x22,\x22merge-cb\x22,-947819025));\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(taoensso.encore.latom(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1(sstats_init)),taoensso.encore.latom(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1(buffer_init)),cljs.core.long$(buffer_size),taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0(),merge_cb));\n}));\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns fastest possible `SummaryStatsBuffered`.\n */\ntaoensso.encore.stats.summary_stats_buffered_fast \x3d (function taoensso$encore$stats$summary_stats_buffered_fast(buffer_size,merge_cb){\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(taoensso.encore.latom(null),taoensso.encore.latom(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0()),buffer_size,null,merge_cb));\n});\n/**\n * Returns true iff given a `SummaryStatsBuffered` instance.\n */\ntaoensso.encore.stats.summary_stats_buffered_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_buffered_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SummaryStatsBuffered);\n});\n/**\n * Returns true iff given a stateful `SummaryStats` instance.\n */\ntaoensso.encore.stats.summary_stats_stateful_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_stateful_QMARK_(x){\nreturn taoensso.encore.stats.summary_stats_buffered_QMARK_(x);\n});\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n"); -SHADOW_ENV.evalLoad("taoensso.encore.signals.js", true, "goog.provide(\x27taoensso.encore.signals\x27);\n/**\n * Map of {\x3clevel-keyword\x3e \x3clevel-integer\x3e} aliases.\n */\ntaoensso.encore.signals.level_aliases \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596),new cljs.core.Keyword(null,\x22high++\x22,\x22high++\x22,2122734286),new cljs.core.Keyword(null,\x22low-\x22,\x22low-\x22,1453123823),new cljs.core.Keyword(null,\x22low--\x22,\x22low--\x22,-1484729873),new cljs.core.Keyword(null,\x22high\x22,\x22high\x22,2027297808),new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888),new cljs.core.Keyword(null,\x22high+\x22,\x22high+\x22,1276710996),new cljs.core.Keyword(null,\x22med\x22,\x22med\x22,-1154404524),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22low---\x22,\x22low---\x22,346223190),new cljs.core.Keyword(null,\x22low\x22,\x22low\x22,-1601362409),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22high+++\x22,\x22high+++\x22,2048295289)],[(90),(60),(10),(20),(80),(20),(10),(60),(80),(70),(50),(50),(0),(30),(70),(90)]),null);\nvar expected_52058 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(taoensso.encore.signals.level_aliases)),new cljs.core.Symbol(null,\x22integer\x22,\x22integer\x22,1035809817,null));\n/**\n * Throws an `ex-info` for given invalid level.\n */\ntaoensso.encore.signals.bad_level_BANG_ \x3d (function taoensso$encore$signals$bad_level_BANG_(x){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [39,5], null),[\x22[encore/signals] Invalid level: `\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((x \x3d\x3d null))?\x22nil\x22:x)),\x22`\x22].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),expected_52058], null),null);\n});\ntaoensso.encore.signals._valid_level_int \x3d (function taoensso$encore$signals$_valid_level_int(x){\nif((x instanceof cljs.core.Keyword)){\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.level_aliases,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n} else {\nif(cljs.core.integer_QMARK_(x)){\nreturn cljs.core.long$(x);\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n}\n});\ntaoensso.encore.signals._valid_level \x3d (function taoensso$encore$signals$_valid_level(x){\nif((x instanceof cljs.core.Keyword)){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.level_aliases,x))){\nreturn x;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n} else {\nif(cljs.core.integer_QMARK_(x)){\nreturn x;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n}\n});\nvar nf_compile_52059 \x3d (function (nf_spec){\nreturn taoensso.encore.name_filter((function (){var or__5025__auto__ \x3d nf_spec;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423);\n}\n})());\n});\nvar nf_match_QMARK__52060 \x3d (function (nf_spec,n){\nreturn nf_compile_52059(nf_spec)(n);\n});\nvar nf__GT_min_level_52061 \x3d (function (ml_spec,nf_arg){\nif(cljs.core.vector_QMARK_(ml_spec)){\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2((function (p__51959){\nvar vec__51960 \x3d p__51959;\nvar nf_spec \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51960,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51960,(1),null);\nif(cljs.core.truth_(nf_match_QMARK__52060(nf_spec,nf_arg))){\nreturn min_level;\n} else {\nreturn null;\n}\n}),ml_spec);\n} else {\nreturn ml_spec;\n}\n});\n/**\n * Returns valid `encore/name-filter` spec, or throws.\n */\ntaoensso.encore.signals.valid_nf_spec \x3d (function taoensso$encore$signals$valid_nf_spec(x){\nvar temp__5823__auto__ \x3d (function (){try{nf_compile_52059(x);\n\nreturn null;\n}catch (e51963){var t \x3d e51963;\nreturn t;\n}})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar t \x3d temp__5823__auto__;\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [97,7], null),((cljs.core.fn_QMARK_(x))?\x22[encore/signals] Invalid name filter (fn filters no longer supported)\x22:\x22[encore/signals] Invalid name filter\x22),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name-filter\x22,\x22name-filter\x22,-205720878),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),t);\n} else {\nreturn x;\n}\n});\n\n/**\n * Low-level name filter.\n */\ntaoensso.encore.signals.allow_name_QMARK_ \x3d (function taoensso$encore$signals$allow_name_QMARK_(nf_spec,nf_arg){\nif(nf_match_QMARK__52060(nf_spec,nf_arg)){\nreturn true;\n} else {\nreturn false;\n}\n});\n\n/**\n * Returns simple unvalidated ?min-level from {\x3ckind\x3e [[\x3cnf-spec\x3e \x3cmin-level\x3e] ...]}, etc.\n */\ntaoensso.encore.signals.parse_min_level \x3d (function taoensso$encore$signals$parse_min_level(ml_spec,kind,nf_arg){\nif(cljs.core.map_QMARK_(ml_spec)){\nvar or__5025__auto__ \x3d (cljs.core.truth_(kind)?(function (){var temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ml_spec,kind);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ml_spec_STAR_ \x3d temp__5825__auto__;\nreturn nf__GT_min_level_52061(ml_spec_STAR_,nf_arg);\n} else {\nreturn null;\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ml_spec,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ml_spec_STAR_ \x3d temp__5825__auto__;\nreturn nf__GT_min_level_52061(ml_spec_STAR_,nf_arg);\n} else {\nreturn null;\n}\n}\n} else {\nreturn nf__GT_min_level_52061(ml_spec,nf_arg);\n}\n});\n\nvar parse_min_level_52062 \x3d taoensso.encore.signals.parse_min_level;\n/**\n * Low-level level filter.\n */\ntaoensso.encore.signals.allow_level_QMARK_ \x3d (function taoensso$encore$signals$allow_level_QMARK_(var_args){\nvar G__51965 \x3d arguments.length;\nswitch (G__51965) {\ncase 2:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (min_level,level){\nif((taoensso.encore.signals._valid_level_int(level) \x3e\x3d taoensso.encore.signals._valid_level_int(min_level))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (ml_spec,nf_arg,level){\nvar min_level \x3d nf__GT_min_level_52061(ml_spec,nf_arg);\nif((taoensso.encore.signals._valid_level_int(level) \x3e\x3d taoensso.encore.signals._valid_level_int(min_level))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (ml_spec,kind,nf_arg,level){\nif(cljs.core.truth_(ml_spec)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2((parse_min_level_52062.cljs$core$IFn$_invoke$arity$3 ? parse_min_level_52062.cljs$core$IFn$_invoke$arity$3(ml_spec,kind,nf_arg) : parse_min_level_52062.call(null,ml_spec,kind,nf_arg)),level);\n} else {\nreturn true;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns valid min level, or throws.\n */\ntaoensso.encore.signals.valid_min_level \x3d (function taoensso$encore$signals$valid_min_level(x){\nif(cljs.core.vector_QMARK_(x)){\ntaoensso.encore.run_BANG_((function (p__51966){\nvar vec__51967 \x3d p__51966;\nvar nf_spec \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51967,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51967,(1),null);\ntaoensso.encore.signals.valid_nf_spec(nf_spec);\n\nreturn taoensso.encore.signals._valid_level(min_level);\n}),x);\n\nreturn x;\n} else {\nreturn taoensso.encore.signals._valid_level(x);\n}\n});\n/**\n * Low-level util to update given min level.\n */\ntaoensso.encore.signals.update_min_level \x3d (function taoensso$encore$signals$update_min_level(old,kind,nf_spec,new$){\nvar b2__43681__auto__ \x3d ((cljs.core.map_QMARK_(old))?old:null);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar old_map \x3d b2__43681__auto__;\nvar kind__$1 \x3d (function (){var or__5025__auto__ \x3d kind;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328);\n}\n})();\nvar old_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,kind__$1);\nvar new_val \x3d (taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4(old_val,null,nf_spec,new$) : taoensso.encore.signals.update_min_level.call(null,old_val,null,nf_spec,new$));\nvar new_map \x3d (((new_val \x3d\x3d null))?cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(old_map,kind__$1)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old_map,kind__$1,new_val));\nvar temp__5823__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new_map),(1)))?cljs.core.get.cljs$core$IFn$_invoke$arity$2(new_map,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)):null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar simplified \x3d temp__5823__auto__;\nreturn simplified;\n} else {\nreturn new_map;\n}\n} else {\nif(cljs.core.truth_(kind)){\nvar old_map \x3d (cljs.core.truth_(old)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),old], null):cljs.core.PersistentArrayMap.EMPTY);\nreturn (taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4(old_map,kind,nf_spec,new$) : taoensso.encore.signals.update_min_level.call(null,old_map,kind,nf_spec,new$));\n} else {\nif((nf_spec \x3d\x3d null)){\nif(cljs.core.truth_(new$)){\nreturn taoensso.encore.signals.valid_min_level(new$);\n} else {\nreturn null;\n}\n} else {\nvar new$__$1 \x3d (cljs.core.truth_(new$)?taoensso.encore.signals._valid_level(new$):null);\nvar nf_spec__$1 \x3d taoensso.encore.signals.valid_nf_spec((((nf_spec instanceof cljs.core.Namespace))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(nf_spec):nf_spec));\nvar old_vec \x3d ((cljs.core.vector_QMARK_(old))?old:(cljs.core.truth_(old)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22*\x22,taoensso.encore.signals._valid_level(old)], null)], null):cljs.core.PersistentVector.EMPTY));\nvar new_vec \x3d cljs.core.not_empty((function (){var exact_match_QMARK_ \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashSet.createAsIfByAssoc([nf_spec__$1])], 0)),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([nf_spec__$1], 0))]);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__51970){\nvar vec__51971 \x3d p__51970;\nvar nf_spec_STAR_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51971,(0),null);\nvar _min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51971,(1),null);\nvar entry \x3d vec__51971;\nif(cljs.core.truth_((function (){var G__51974 \x3d cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([nf_spec_STAR_], 0));\nreturn (exact_match_QMARK_.cljs$core$IFn$_invoke$arity$1 ? exact_match_QMARK_.cljs$core$IFn$_invoke$arity$1(G__51974) : exact_match_QMARK_.call(null,G__51974));\n})())){\nreturn acc;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,entry);\n}\n}),(cljs.core.truth_(new$__$1)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nf_spec__$1,new$__$1], null)], null):cljs.core.PersistentVector.EMPTY),old_vec);\n})());\nvar temp__5823__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new_vec),(1)))?(function (){var vec__51975 \x3d new_vec;\nvar vec__51978 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51975,(0),null);\nvar nf_spec__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51978,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51978,(1),null);\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22*\x22,null,new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423),null], null), null),nf_spec__$2)){\nreturn min_level;\n} else {\nreturn null;\n}\n})():null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar simplified \x3d temp__5823__auto__;\nreturn simplified;\n} else {\nreturn new_vec;\n}\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.signals.SpecFilter \x3d (function (kind_filter,ns_filter,id_filter,min_level,filter_fn){\nthis.kind_filter \x3d kind_filter;\nthis.ns_filter \x3d ns_filter;\nthis.id_filter \x3d id_filter;\nthis.min_level \x3d min_level;\nthis.filter_fn \x3d filter_fn;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),self__.kind_filter,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),self__.ns_filter,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),self__.id_filter,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919),self__.min_level], null));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__51982 \x3d (arguments.length - (1));\nswitch (G__51982) {\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.apply \x3d (function (self__,args51981){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args51981)));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (kind,ns,id,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$4 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$4(kind,ns,id,level) : self__.filter_fn.call(null,kind,ns,id,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (ns,id,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$3 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$3(ns,id,level) : self__.filter_fn.call(null,ns,id,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$2 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$2(ns,level) : self__.filter_fn.call(null,ns,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (ct_map){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$1 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$1(ct_map) : self__.filter_fn.call(null,ct_map));\n}));\n\n(taoensso.encore.signals.SpecFilter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22kind-filter\x22,\x22kind-filter\x22,-623624854,null),new cljs.core.Symbol(null,\x22ns-filter\x22,\x22ns-filter\x22,1749129975,null),new cljs.core.Symbol(null,\x22id-filter\x22,\x22id-filter\x22,1068250250,null),new cljs.core.Symbol(null,\x22min-level\x22,\x22min-level\x22,-1019750850,null),new cljs.core.Symbol(null,\x22filter-fn\x22,\x22filter-fn\x22,-964960094,null)], null);\n}));\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$type \x3d true);\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$ctorStr \x3d \x22taoensso.encore.signals/SpecFilter\x22);\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.signals/SpecFilter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.signals/SpecFilter.\n */\ntaoensso.encore.signals.__GT_SpecFilter \x3d (function taoensso$encore$signals$__GT_SpecFilter(kind_filter,ns_filter,id_filter,min_level,filter_fn){\nreturn (new taoensso.encore.signals.SpecFilter(kind_filter,ns_filter,id_filter,min_level,filter_fn));\n});\n\n/**\n * Returns true iff given a `SpecFilter`.\n */\ntaoensso.encore.signals.spec_filter_QMARK_ \x3d (function taoensso$encore$signals$spec_filter_QMARK_(x){\nreturn (x instanceof taoensso.encore.signals.SpecFilter);\n});\n/**\n * Returns nil, or a stateful (caching) `SpecFilter` with the given specs.\n */\ntaoensso.encore.signals.spec_filter \x3d (function (){var get_cached \x3d taoensso.encore.fmemoize((function taoensso$encore$signals$spec_filter(kind_filter,ns_filter,id_filter,min_level){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d kind_filter;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ns_filter;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d id_filter;\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn min_level;\n}\n}\n}\n})())){\nif(cljs.core.truth_(kind_filter)){\ntaoensso.encore.signals.valid_nf_spec(kind_filter);\n} else {\n}\n\nif(cljs.core.truth_(ns_filter)){\ntaoensso.encore.signals.valid_nf_spec(ns_filter);\n} else {\n}\n\nif(cljs.core.truth_(id_filter)){\ntaoensso.encore.signals.valid_nf_spec(id_filter);\n} else {\n}\n\nif(cljs.core.truth_(min_level)){\nif(cljs.core.map_QMARK_(min_level)){\ntaoensso.encore.run_kv_BANG_((function (kind,min_level__$1){\nreturn taoensso.encore.signals.valid_min_level(min_level__$1);\n}),min_level);\n} else {\ntaoensso.encore.signals.valid_min_level(min_level);\n}\n} else {\n}\n\nreturn (new taoensso.encore.signals.SpecFilter(kind_filter,ns_filter,id_filter,min_level,taoensso.encore.fmemoize((function() {\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK_ \x3d null;\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1 \x3d (function (p__51983){\nvar map__51984 \x3d p__51983;\nvar map__51984__$1 \x3d cljs.core.__destructure_map(map__51984);\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51984__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51984__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51984__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51984__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar and__5023__auto__ \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d kind_filter;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn kind;\n} else {\nreturn and__5023__auto__;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(kind_filter,kind):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_((function (){var and__5023__auto____$1 \x3d ns_filter;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ns;\n} else {\nreturn and__5023__auto____$1;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nvar and__5023__auto____$2 \x3d (cljs.core.truth_((function (){var and__5023__auto____$2 \x3d id_filter;\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn id;\n} else {\nreturn and__5023__auto____$2;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$2)){\nif(cljs.core.truth_((function (){var and__5023__auto____$3 \x3d min_level;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn level;\n} else {\nreturn and__5023__auto____$3;\n}\n})())){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4(min_level,kind,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2 \x3d (function (ns,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto__)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3(min_level,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3 \x3d (function (ns,id,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_(id_filter)?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3(min_level,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4 \x3d (function (kind,ns,id,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(kind_filter)?taoensso.encore.signals.allow_name_QMARK_(kind_filter,kind):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nvar and__5023__auto____$2 \x3d (cljs.core.truth_(id_filter)?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$2)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4(min_level,kind,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_ \x3d function(kind,ns,id,level){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1.call(this,kind);\ncase 2:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2.call(this,kind,ns);\ncase 3:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3.call(this,kind,ns,id);\ncase 4:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4.call(this,kind,ns,id,level);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4;\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK_;\n})()\n)));\n} else {\nreturn null;\n}\n}));\nreturn (function() {\nvar taoensso$encore$signals$spec_filter \x3d null;\nvar taoensso$encore$signals$spec_filter__1 \x3d (function (p__51985){\nvar map__51986 \x3d p__51985;\nvar map__51986__$1 \x3d cljs.core.__destructure_map(map__51986);\nvar kind_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\nvar ns_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\nvar id_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\nvar min_level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nvar as \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641));\nvar specs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51986__$1,new cljs.core.Keyword(null,\x22specs\x22,\x22specs\x22,1426570741));\nreturn get_cached(kind_filter,ns_filter,id_filter,min_level);\n});\nvar taoensso$encore$signals$spec_filter__4 \x3d (function (kind_filter,ns_filter,id_filter,min_level){\nreturn get_cached(kind_filter,ns_filter,id_filter,min_level);\n});\ntaoensso$encore$signals$spec_filter \x3d function(kind_filter,ns_filter,id_filter,min_level){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$encore$signals$spec_filter__1.call(this,kind_filter);\ncase 4:\nreturn taoensso$encore$signals$spec_filter__4.call(this,kind_filter,ns_filter,id_filter,min_level);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$spec_filter.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$spec_filter__1;\ntaoensso$encore$signals$spec_filter.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$signals$spec_filter__4;\nreturn taoensso$encore$signals$spec_filter;\n})()\n})();\nvar nil_sf_52070 \x3d (new taoensso.encore.signals.SpecFilter(null,null,null,null,null));\n/**\n * Returns nil, or updated stateful (caching) `SpecFilter`.\n */\ntaoensso.encore.signals.update_spec_filter \x3d (function taoensso$encore$signals$update_spec_filter(old,specs){\nvar base \x3d (function (){var or__5025__auto__ \x3d old;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn nil_sf_52070;\n}\n})();\nif(cljs.core.empty_QMARK_(specs)){\nreturn old;\n} else {\nreturn taoensso.encore.signals.spec_filter(cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),base.kind_filter),cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),base.ns_filter),cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),base.id_filter),(function (){var old_min_level \x3d base.min_level;\nvar b2__43681__auto__ \x3d cljs.core.find(specs,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar e \x3d b2__43681__auto__;\nreturn taoensso.encore.signals.update_min_level(old_min_level,null,null,cljs.core.val(e));\n} else {\nvar b2__43681__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(specs,new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803));\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar f \x3d b2__43681__auto____$1;\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(old_min_level) : f.call(null,old_min_level));\n} else {\nreturn old_min_level;\n}\n}\n})());\n}\n});\nvar limiters_basic__52074 \x3d taoensso.encore.latom(cljs.core.PersistentArrayMap.EMPTY);\nvar limiters_full__52075 \x3d taoensso.encore.latom(cljs.core.PersistentArrayMap.EMPTY);\n/**\n * Calls the identified stateful rate-limiter and returns true iff limited.\n */\ntaoensso.encore.signals.call_limited_BANG__QMARK_ \x3d (function taoensso$encore$signals$call_limited_BANG__QMARK_(var_args){\nvar G__51990 \x3d arguments.length;\nswitch (G__51990) {\ncase 2:\nreturn taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (cs_id,spec){\nvar rl \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2((limiters_basic__52074.cljs$core$IFn$_invoke$arity$0 ? limiters_basic__52074.cljs$core$IFn$_invoke$arity$0() : limiters_basic__52074.call(null)),cs_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar G__51991 \x3d cs_id;\nvar G__51992 \x3d (function (p1__51987_SHARP_){\nvar or__5025__auto____$1 \x3d p1__51987_SHARP_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),true], null),spec);\n}\n});\nreturn (limiters_basic__52074.cljs$core$IFn$_invoke$arity$2 ? limiters_basic__52074.cljs$core$IFn$_invoke$arity$2(G__51991,G__51992) : limiters_basic__52074.call(null,G__51991,G__51992));\n}\n})();\nif(cljs.core.truth_((rl.cljs$core$IFn$_invoke$arity$0 ? rl.cljs$core$IFn$_invoke$arity$0() : rl.call(null)))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (cs_id,spec,req_id){\nvar rl \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2((limiters_full__52075.cljs$core$IFn$_invoke$arity$0 ? limiters_full__52075.cljs$core$IFn$_invoke$arity$0() : limiters_full__52075.call(null)),cs_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar G__51993 \x3d cs_id;\nvar G__51994 \x3d (function (p1__51988_SHARP_){\nvar or__5025__auto____$1 \x3d p1__51988_SHARP_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),false], null),spec);\n}\n});\nreturn (limiters_full__52075.cljs$core$IFn$_invoke$arity$2 ? limiters_full__52075.cljs$core$IFn$_invoke$arity$2(G__51993,G__51994) : limiters_full__52075.call(null,G__51993,G__51994));\n}\n})();\nif(cljs.core.truth_((rl.cljs$core$IFn$_invoke$arity$1 ? rl.cljs$core$IFn$_invoke$arity$1(req_id) : rl.call(null,req_id)))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Protocol that app/library signal types must implement to support signal handling.\n * @interface\n */\ntaoensso.encore.signals.ISignalHandling \x3d function(){};\n\nvar taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$dyn_52077 \x3d (function (_,spec_filter){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.allow_signal_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,spec_filter) : m__5374__auto__.call(null,_,spec_filter));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.allow_signal_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,spec_filter) : m__5372__auto__.call(null,_,spec_filter));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.allow-signal?\x22,_);\n}\n}\n});\n/**\n * Returns true iff given signal is allowed by given `SpecFilter`.\n */\ntaoensso.encore.signals.allow_signal_QMARK_ \x3d (function taoensso$encore$signals$allow_signal_QMARK_(_,spec_filter){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2(_,spec_filter);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$dyn_52077(_,spec_filter);\n}\n});\n\nvar taoensso$encore$signals$ISignalHandling$signal_value$dyn_52081 \x3d (function (_,handler_sample_rate){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.signal_value[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,handler_sample_rate) : m__5374__auto__.call(null,_,handler_sample_rate));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.signal_value[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,handler_sample_rate) : m__5372__auto__.call(null,_,handler_sample_rate));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.signal-value\x22,_);\n}\n}\n});\n/**\n * Returns public signal value as given to handlers, etc.\n */\ntaoensso.encore.signals.signal_value \x3d (function taoensso$encore$signals$signal_value(_,handler_sample_rate){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$signal_value$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$signal_value$arity$2(_,handler_sample_rate);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$signal_value$dyn_52081(_,handler_sample_rate);\n}\n});\n\nvar taoensso$encore$signals$ISignalHandling$signal_debug$dyn_52083 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.signal_debug[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.signal_debug[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.signal-debug\x22,_);\n}\n}\n});\n/**\n * Returns minimal signal representation for debug purposes.\n */\ntaoensso.encore.signals.signal_debug \x3d (function taoensso$encore$signals$signal_debug(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1(_);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$signal_debug$dyn_52083(_);\n}\n});\n\n/**\n * Returns non-empty ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn ...]}}.\n */\ntaoensso.encore.signals.get_handlers_map \x3d (function taoensso$encore$signals$get_handlers_map(var_args){\nvar G__51996 \x3d arguments.length;\nswitch (G__51996) {\ncase 1:\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1 \x3d (function (handlers_vec){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,false);\n}));\n\n(taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2 \x3d (function (handlers_vec,raw_QMARK_){\nif(cljs.core.truth_(handlers_vec)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,wrapped_handler_fn){\nvar whm \x3d cljs.core.meta(wrapped_handler_fn);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,cljs.core.get.cljs$core$IFn$_invoke$arity$2(whm,new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),(cljs.core.truth_(raw_QMARK_)?whm:(function (){var info \x3d cljs.core.select_keys(whm,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),new cljs.core.Keyword(null,\x22handler-fn\x22,\x22handler-fn\x22,-799387730)], null));\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(whm,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar stats_fn \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(info,new cljs.core.Keyword(null,\x22handler-stats_\x22,\x22handler-stats_\x22,-831095881),(new cljs.core.Delay((function (){\nreturn (stats_fn.cljs$core$IFn$_invoke$arity$0 ? stats_fn.cljs$core$IFn$_invoke$arity$0() : stats_fn.call(null));\n}),null)));\n} else {\nreturn info;\n}\n})()));\n}),null,handlers_vec);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.get_handlers_map.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns non-empty ?{\x3chandler-id\x3e ?{:keys [handling-nsecs counts]}}.\n */\ntaoensso.encore.signals.get_handlers_stats \x3d (function taoensso$encore$signals$get_handlers_stats(handlers_vec){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar handlers_map \x3d temp__5825__auto__;\nreturn cljs.core.reduce_kv((function (m,handler_id,p__51997){\nvar map__51998 \x3d p__51997;\nvar map__51998__$1 \x3d cljs.core.__destructure_map(map__51998);\nvar stats_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51998__$1,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177));\nif(cljs.core.truth_(stats_fn)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,handler_id,(stats_fn.cljs$core$IFn$_invoke$arity$0 ? stats_fn.cljs$core$IFn$_invoke$arity$0() : stats_fn.call(null)));\n} else {\nreturn m;\n}\n}),null,handlers_map);\n} else {\nreturn null;\n}\n});\n/**\n * Calls given handlers with the given signal.\n * Signal\x27s type must implement `ISignalHandling`.\n */\ntaoensso.encore.signals.call_handlers_BANG_ \x3d (function taoensso$encore$signals$call_handlers_BANG_(handlers_vec,signal){\nreturn cljs.core.run_BANG_((function (wrapped_handler_fn){\nreturn (wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1 ? wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1(signal) : wrapped_handler_fn.call(null,signal));\n}),handlers_vec);\n});\n/**\n * Stops handlers in parallel and returns\n * {\x3chandler-id\x3e {:keys [okay error drained?]}}.\n */\ntaoensso.encore.signals.stop_handlers_BANG_ \x3d (function taoensso$encore$signals$stop_handlers_BANG_(handlers_vec){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar handlers_map \x3d temp__5825__auto__;\nvar results \x3d cljs.core.reduce_kv((function (m,handler_id,p__51999){\nvar map__52000 \x3d p__51999;\nvar map__52000__$1 \x3d cljs.core.__destructure_map(map__52000);\nvar wrapped_handler_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52000__$1,new cljs.core.Keyword(null,\x22wrapped-handler-fn\x22,\x22wrapped-handler-fn\x22,-1449520424));\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,handler_id,(wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0 ? wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0() : wrapped_handler_fn.call(null)));\n}),null,handlers_map);\nreturn results;\n} else {\nreturn null;\n}\n});\n/**\n * Returns wrapped-handler-fn with given handler-id, or nil.\n */\ntaoensso.encore.signals.get_wrapped_handler_fn \x3d (function taoensso$encore$signals$get_wrapped_handler_fn(handlers_vec,handler_id){\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2((function (p1__52001_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(p1__52001_SHARP_),new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),handler_id);\n}),handlers_vec);\n});\n/**\n * Returns updated, non-empty handlers vec.\n */\ntaoensso.encore.signals.remove_handler \x3d (function taoensso$encore$signals$remove_handler(handlers_vec,handler_id){\nreturn cljs.core.not_empty(cljs.core.filterv((function (p1__52002_SHARP_){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(p1__52002_SHARP_),new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),handler_id);\n}),handlers_vec));\n});\n\n/**\n * Returns updated, non-empty handlers vec.\n */\ntaoensso.encore.signals.add_handler \x3d (function taoensso$encore$signals$add_handler(var_args){\nvar G__52005 \x3d arguments.length;\nswitch (G__52005) {\ncase 3:\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3 \x3d (function (handlers_vec,handler_id,pre_wrapped_handler_fn){\nif(cljs.core.not(pre_wrapped_handler_fn)){\nreturn handlers_vec;\n} else {\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3((function (p1__52003_SHARP_){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(p1__52003_SHARP_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715)], null),taoensso.encore.signals.default_handler_priority);\n}),taoensso.encore.rcompare,cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d taoensso.encore.signals.remove_handler(handlers_vec,handler_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),pre_wrapped_handler_fn));\n}\n}));\n\n(taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5 \x3d (function (handlers_vec,handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts){\nif(cljs.core.not(unwrapped_handler_fn)){\nreturn handlers_vec;\n} else {\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(dispatch_opts,new cljs.core.Keyword(null,\x22no-wrap?\x22,\x22no-wrap?\x22,2080720814)))){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3(handlers_vec,handler_id,unwrapped_handler_fn);\n} else {\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3(handlers_vec,handler_id,(taoensso.encore.signals.wrap_handler.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.wrap_handler.cljs$core$IFn$_invoke$arity$4(handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts) : taoensso.encore.signals.wrap_handler.call(null,handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts)));\n}\n}\n}));\n\n(taoensso.encore.signals.add_handler.cljs$lang$maxFixedArity \x3d 5);\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d null;\n}\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d null;\n}\ntaoensso.encore.signals.default_handler_priority \x3d (100);\n/**\n * Default handler dispatch options, see\n * `help:handler-dispatch-options` for details.\n */\ntaoensso.encore.signals.default_handler_dispatch_opts \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715),taoensso.encore.signals.default_handler_priority,new cljs.core.Keyword(null,\x22track-stats?\x22,\x22track-stats?\x22,-713524039),false], null);\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.encore.signals.comp_xfn \x3d (function taoensso$encore$signals$comp_xfn(var_args){\nvar G__52011 \x3d arguments.length;\nswitch (G__52011) {\ncase 1:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___52097 \x3d arguments.length;\nvar i__5750__auto___52098 \x3d (0);\nwhile(true){\nif((i__5750__auto___52098 \x3c len__5749__auto___52097)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___52098]));\n\nvar G__52099 \x3d (i__5750__auto___52098 + (1));\ni__5750__auto___52098 \x3d G__52099;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1 \x3d (function (fs){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (in$__$1,f){\nif(cljs.core.truth_(f)){\nvar or__5025__auto__ \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(in$__$1) : f.call(null,in$__$1));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(null);\n}\n} else {\nreturn in$__$1;\n}\n}),in$,fs);\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$2 \x3d (function (f1,f2){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nif(cljs.core.truth_(f1)){\nif(cljs.core.truth_(f2)){\nvar temp__5825__auto__ \x3d (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar in$__$1 \x3d temp__5825__auto__;\nreturn (f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1));\n} else {\nreturn null;\n}\n} else {\nreturn (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$));\n}\n} else {\nif(cljs.core.truth_(f2)){\nreturn (f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$) : f2.call(null,in$));\n} else {\nreturn in$;\n}\n}\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$3 \x3d (function (f1,f2,f3){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nvar b2__43681__auto__ \x3d (cljs.core.truth_(f1)?(f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$)):in$);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar in$__$1 \x3d b2__43681__auto__;\nvar b2__43681__auto____$1 \x3d (cljs.core.truth_(f2)?(f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1)):in$__$1);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar in$__$2 \x3d b2__43681__auto____$1;\nif(cljs.core.truth_(f3)){\nreturn (f3.cljs$core$IFn$_invoke$arity$1 ? f3.cljs$core$IFn$_invoke$arity$1(in$__$2) : f3.call(null,in$__$2));\n} else {\nreturn in$__$2;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f1,f2,f3,fs){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nvar b2__43681__auto__ \x3d (cljs.core.truth_(f1)?(f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$)):in$);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar in$__$1 \x3d b2__43681__auto__;\nvar b2__43681__auto____$1 \x3d (cljs.core.truth_(f2)?(f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1)):in$__$1);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar in$__$2 \x3d b2__43681__auto____$1;\nvar b2__43681__auto____$2 \x3d (cljs.core.truth_(f3)?(f3.cljs$core$IFn$_invoke$arity$1 ? f3.cljs$core$IFn$_invoke$arity$1(in$__$2) : f3.call(null,in$__$2)):in$__$2);\nif(cljs.core.truth_(b2__43681__auto____$2)){\nvar in$__$3 \x3d b2__43681__auto____$2;\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1(fs)(in$__$3);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n}));\n\n/** @this {Function} */\n(taoensso.encore.signals.comp_xfn.cljs$lang$applyTo \x3d (function (seq52007){\nvar G__52008 \x3d cljs.core.first(seq52007);\nvar seq52007__$1 \x3d cljs.core.next(seq52007);\nvar G__52009 \x3d cljs.core.first(seq52007__$1);\nvar seq52007__$2 \x3d cljs.core.next(seq52007__$1);\nvar G__52010 \x3d cljs.core.first(seq52007__$2);\nvar seq52007__$3 \x3d cljs.core.next(seq52007__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52008,G__52009,G__52010,seq52007__$3);\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Wraps given handler-fn to add common handler-level functionality.\n */\ntaoensso.encore.signals.wrap_handler \x3d (function taoensso$encore$signals$wrap_handler(handler_id,handler_fn,lib_dispatch_opts,user_dispatch_opts){\nvar dispatch_opts \x3d taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic(taoensso.encore.signals.default_handler_dispatch_opts,lib_dispatch_opts,(function (){var temp__5825__auto__ \x3d cljs.core.meta(handler_fn);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar m \x3d temp__5825__auto__;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291));\n} else {\nreturn null;\n}\n})(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([user_dispatch_opts], 0));\nvar map__52012 \x3d dispatch_opts;\nvar map__52012__$1 \x3d cljs.core.__destructure_map(map__52012);\nvar rl_backp \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22rl-backp\x22,\x22rl-backp\x22,-226781703));\nvar track_stats_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22track-stats?\x22,\x22track-stats?\x22,-713524039));\nvar id_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\nvar kind_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\nvar limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363));\nvar xfn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22xfn\x22,\x22xfn\x22,538978120));\nvar rl_error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22rl-error\x22,\x22rl-error\x22,1545982960));\nvar ns_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\nvar error_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22error-fn\x22,\x22error-fn\x22,-171437615));\nvar sample \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nvar priority \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715));\nvar backp_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22backp-fn\x22,\x22backp-fn\x22,1835678931));\nvar when_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22when-fn\x22,\x22when-fn\x22,-57616971));\nvar min_level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52012__$1,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nvar _ \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22middleware\x22,\x22middleware\x22,1462115504)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [614,56], null),\x22`:middleware` handler dispatch option has been renamed `:xfn`, apologies!\x22,null,null)})():null);\nvar ___$1 \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22sample-rate\x22,\x22sample-rate\x22,-603246554)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [615,56], null),\x22`:sample-rate` handler dispatch option has been renamed `:sample`, apologies!\x22,null,null)})():null);\nvar ___$2 \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22rate-limit\x22,\x22rate-limit\x22,1748082022)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [616,56], null),\x22`:rate-limit` handler dispatch option has been renamed `:limit`, apologies!\x22,null,null)})():null);\nvar vec__52013 \x3d (cljs.core.truth_(sample)?((cljs.core.fn_QMARK_(sample))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,sample], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [taoensso.encore.as_pnum_BANG_(sample),null], null)):null);\nvar sample_rate \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52013,(0),null);\nvar sample_rate_fn \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52013,(1),null);\nvar rl_handler \x3d (function (){var temp__5825__auto__ \x3d limit;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar spec \x3d temp__5825__auto__;\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),true], null),spec);\n} else {\nreturn null;\n}\n})();\nvar spec_filter_STAR_ \x3d taoensso.encore.signals.spec_filter(kind_filter,ns_filter,id_filter,min_level);\nvar xfn__$1 \x3d ((cljs.core.vector_QMARK_(xfn))?taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1(xfn):(((function (arg52019){\nif((arg52019 \x3d\x3d null)){\nreturn true;\n} else {\nreturn cljs.core.fn_QMARK_(arg52019);\n}\n})(xfn))?xfn:taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore.signals\x22,629,46,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22fn?\x22,\x22fn?\x22,1820990818,null)], null),new cljs.core.Symbol(null,\x22xfn\x22,\x22xfn\x22,-2115457649,null),xfn,null,null)));\nvar rl_error__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22rl-error\x22,\x22rl-error\x22,1545982960),taoensso.encore.rate_limiter_once_per(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676),(1))));\nvar rl_backp__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22rl-backp\x22,\x22rl-backp\x22,-226781703),taoensso.encore.rate_limiter_once_per(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676),(1))));\nvar backp_fn__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22backp-fn\x22,\x22backp-fn\x22,1835678931),new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769));\nvar error_fn__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22error-fn\x22,\x22error-fn\x22,-171437615),new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769));\nvar error_fn_STAR_ \x3d (cljs.core.truth_(error_fn__$1)?(function (signal,error){\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d rl_error__$1;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (rl_error__$1.cljs$core$IFn$_invoke$arity$0 ? rl_error__$1.cljs$core$IFn$_invoke$arity$0() : rl_error__$1.call(null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn null;\n} else {\nvar temp__5825__auto__ \x3d ((cljs.core.keyword_identical_QMARK_(error_fn__$1,new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769)))?taoensso.encore.signals._STAR_default_handler_error_fn_STAR_:error_fn__$1);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar error_fn__$2 \x3d temp__5825__auto__;\nif(cljs.core.truth_(signal)){\nvar G__52027 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22signal\x22,\x22signal\x22,-1984951589),signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error], null);\nreturn (error_fn__$2.cljs$core$IFn$_invoke$arity$1 ? error_fn__$2.cljs$core$IFn$_invoke$arity$1(G__52027) : error_fn__$2.call(null,G__52027));\n} else {\nvar G__52028 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error], null);\nreturn (error_fn__$2.cljs$core$IFn$_invoke$arity$1 ? error_fn__$2.cljs$core$IFn$_invoke$arity$1(G__52028) : error_fn__$2.call(null,G__52028));\n}\n} else {\nreturn null;\n}\n}\n}catch (e52026){var ___$3 \x3d e52026;\nreturn null;\n}}):null);\nvar runner \x3d null;\nvar stopped_QMARK__ \x3d taoensso.encore.latom(false);\nvar stop_fn \x3d (function (){\nif((!(cljs.core.compare_and_set_BANG_(stopped_QMARK__,false,true)))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22okay\x22,\x22okay\x22,675029136),new cljs.core.Keyword(null,\x22stopped\x22,\x22stopped\x22,-1490414640)], null);\n} else {\nvar drained_QMARK_ \x3d null;\nvar handler_result \x3d (function (){try{(handler_fn.cljs$core$IFn$_invoke$arity$0 ? handler_fn.cljs$core$IFn$_invoke$arity$0() : handler_fn.call(null));\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22okay\x22,\x22okay\x22,675029136),new cljs.core.Keyword(null,\x22stopped\x22,\x22stopped\x22,-1490414640)], null);\n}catch (e52029){var t \x3d e52029;\nif(cljs.core.truth_(error_fn_STAR_)){\nerror_fn_STAR_(null,t);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),t], null);\n}finally {if(cljs.core.truth_(runner)){\n(runner.cljs$core$IFn$_invoke$arity$0 ? runner.cljs$core$IFn$_invoke$arity$0() : runner.call(null));\n} else {\n}\n}})();\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(handler_result,new cljs.core.Keyword(null,\x22drained?\x22,\x22drained?\x22,-1635967677),drained_QMARK_);\n}\n});\nvar ssb \x3d (cljs.core.truth_(track_stats_QMARK_)?taoensso.encore.stats.summary_stats_buffered_fast(100000.0,null):null);\nvar vec__52016 \x3d (cljs.core.truth_(track_stats_QMARK_)?cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2((10),taoensso.encore.counter):null);\nvar cnt_allowed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(0),null);\nvar cnt_disallowed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(1),null);\nvar cnt_handled \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(2),null);\nvar cnt_errors \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(3),null);\nvar cnt_backp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(4),null);\nvar cnt_sampled \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(5),null);\nvar cnt_filtered \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(6),null);\nvar cnt_rate_limited \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(7),null);\nvar cnt_suppressed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(8),null);\nvar cnt_dropped \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52016,(9),null);\nvar handle_signal_BANG_ \x3d (function (sig_raw){\nvar ns0 \x3d (cljs.core.truth_(track_stats_QMARK_)?taoensso.encore.now_nano():null);\nvar result \x3d (function (){var or__5025__auto__ \x3d (function (){try{var sample_rate__$1 \x3d (function (){var or__5025__auto__ \x3d sample_rate;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d sample_rate_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar f \x3d temp__5825__auto__;\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n} else {\nreturn null;\n}\n}\n})();\nvar allow_QMARK_ \x3d (cljs.core.truth_(track_stats_QMARK_)?(((cljs.core.truth_(sample_rate__$1)?(((Math.random() \x3c sample_rate__$1))?true:(function (){\n(cnt_sampled.cljs$core$IFn$_invoke$arity$0 ? cnt_sampled.cljs$core$IFn$_invoke$arity$0() : cnt_sampled.call(null));\n\nreturn false;\n})()\n):true))?(((cljs.core.truth_(spec_filter_STAR_)?(cljs.core.truth_(taoensso.encore.signals.allow_signal_QMARK_(sig_raw,spec_filter_STAR_))?true:(function (){\n(cnt_filtered.cljs$core$IFn$_invoke$arity$0 ? cnt_filtered.cljs$core$IFn$_invoke$arity$0() : cnt_filtered.call(null));\n\nreturn false;\n})()\n):true))?(((cljs.core.truth_(when_fn)?(cljs.core.truth_((when_fn.cljs$core$IFn$_invoke$arity$0 ? when_fn.cljs$core$IFn$_invoke$arity$0() : when_fn.call(null)))?true:(function (){\n(cnt_filtered.cljs$core$IFn$_invoke$arity$0 ? cnt_filtered.cljs$core$IFn$_invoke$arity$0() : cnt_filtered.call(null));\n\nreturn false;\n})()\n):true))?(cljs.core.truth_(rl_handler)?(cljs.core.truth_((rl_handler.cljs$core$IFn$_invoke$arity$0 ? rl_handler.cljs$core$IFn$_invoke$arity$0() : rl_handler.call(null)))?(function (){\n(cnt_rate_limited.cljs$core$IFn$_invoke$arity$0 ? cnt_rate_limited.cljs$core$IFn$_invoke$arity$0() : cnt_rate_limited.call(null));\n\nreturn false;\n})()\n:true):true):false):false):false):(((cljs.core.truth_(sample_rate__$1)?(Math.random() \x3c sample_rate__$1):true))?(cljs.core.truth_((cljs.core.truth_(spec_filter_STAR_)?taoensso.encore.signals.allow_signal_QMARK_(sig_raw,spec_filter_STAR_):true))?(cljs.core.truth_((cljs.core.truth_(when_fn)?(when_fn.cljs$core$IFn$_invoke$arity$0 ? when_fn.cljs$core$IFn$_invoke$arity$0() : when_fn.call(null)):true))?(cljs.core.truth_(rl_handler)?(cljs.core.truth_((rl_handler.cljs$core$IFn$_invoke$arity$0 ? rl_handler.cljs$core$IFn$_invoke$arity$0() : rl_handler.call(null)))?false:true):true):false):false):false));\nif(cljs.core.truth_(track_stats_QMARK_)){\nif(allow_QMARK_){\n(cnt_allowed.cljs$core$IFn$_invoke$arity$0 ? cnt_allowed.cljs$core$IFn$_invoke$arity$0() : cnt_allowed.call(null));\n} else {\n(cnt_disallowed.cljs$core$IFn$_invoke$arity$0 ? cnt_disallowed.cljs$core$IFn$_invoke$arity$0() : cnt_disallowed.call(null));\n}\n} else {\n}\n\nif(allow_QMARK_){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.signal_value(sig_raw,sample_rate__$1);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar sig_val \x3d temp__5825__auto__;\ntry{var b2__43681__auto__ \x3d (cljs.core.truth_(xfn__$1)?(xfn__$1.cljs$core$IFn$_invoke$arity$1 ? xfn__$1.cljs$core$IFn$_invoke$arity$1(sig_val) : xfn__$1.call(null,sig_val)):sig_val);\nif(cljs.core.truth_(b2__43681__auto__)){\nvar sig_val_STAR_ \x3d b2__43681__auto__;\ntry{(handler_fn.cljs$core$IFn$_invoke$arity$1 ? handler_fn.cljs$core$IFn$_invoke$arity$1(sig_val_STAR_) : handler_fn.call(null,sig_val_STAR_));\n\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_handled.cljs$core$IFn$_invoke$arity$0 ? cnt_handled.cljs$core$IFn$_invoke$arity$0() : cnt_handled.call(null));\n} else {\n}\n\nreturn true;\n}catch (e52033){var t \x3d e52033;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nreturn error_fn_STAR_(sig_val_STAR_,t);\n} else {\nreturn null;\n}\n}} else {\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_suppressed.cljs$core$IFn$_invoke$arity$0 ? cnt_suppressed.cljs$core$IFn$_invoke$arity$0() : cnt_suppressed.call(null));\n} else {\n}\n\nreturn null;\n}\n}catch (e52032){var t \x3d e52032;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nreturn error_fn_STAR_(sig_val,t);\n} else {\nreturn null;\n}\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}catch (e52030){var t \x3d e52030;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nvar sig_dbg \x3d (function (){var or__5025__auto__ \x3d (function (){try{return taoensso.encore.signals.signal_debug(sig_raw);\n}catch (e52031){var ___$3 \x3d e52031;\nreturn null;\n}})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn sig_raw;\n}\n})();\nreturn error_fn_STAR_(sig_dbg,t);\n} else {\nreturn null;\n}\n}})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn false;\n}\n})();\nif(cljs.core.truth_(track_stats_QMARK_)){\nvar G__52034_52107 \x3d (taoensso.encore.now_nano() - ns0);\n(ssb.cljs$core$IFn$_invoke$arity$1 ? ssb.cljs$core$IFn$_invoke$arity$1(G__52034_52107) : ssb.call(null,G__52034_52107));\n} else {\n}\n\nreturn result;\n});\nvar wrapped_handler_fn \x3d (function() {\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn \x3d null;\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0 \x3d (function (){\nreturn stop_fn();\n});\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1 \x3d (function (sig_raw){\nif(cljs.core.truth_((stopped_QMARK__.cljs$core$IFn$_invoke$arity$0 ? stopped_QMARK__.cljs$core$IFn$_invoke$arity$0() : stopped_QMARK__.call(null)))){\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_dropped.cljs$core$IFn$_invoke$arity$0 ? cnt_dropped.cljs$core$IFn$_invoke$arity$0() : cnt_dropped.call(null));\n} else {\n}\n\nreturn null;\n} else {\nreturn handle_signal_BANG_(sig_raw);\n}\n});\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn \x3d function(sig_raw){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1.call(this,sig_raw);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0;\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1;\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn;\n})()\n;\nvar stats_fn \x3d (cljs.core.truth_(track_stats_QMARK_)?(function() {\nvar G__52108 \x3d null;\nvar G__52108__0 \x3d (function (){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22handling-nsecs\x22,\x22handling-nsecs\x22,1811247246),(function (){var temp__5825__auto__ \x3d cljs.core.deref(ssb);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar sstats \x3d temp__5825__auto__;\nreturn cljs.core.deref(sstats);\n} else {\nreturn null;\n}\n})(),new cljs.core.Keyword(null,\x22counts\x22,\x22counts\x22,234305892),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22errors\x22,\x22errors\x22,-908790718),new cljs.core.Keyword(null,\x22dropped\x22,\x22dropped\x22,-1651285782),new cljs.core.Keyword(null,\x22filtered\x22,\x22filtered\x22,-437499761),new cljs.core.Keyword(null,\x22handled\x22,\x22handled\x22,1889700151),new cljs.core.Keyword(null,\x22back-pressure\x22,\x22back-pressure\x22,-1355705609),new cljs.core.Keyword(null,\x22disallowed\x22,\x22disallowed\x22,544208344),new cljs.core.Keyword(null,\x22suppressed\x22,\x22suppressed\x22,-5041288),new cljs.core.Keyword(null,\x22rate-limited\x22,\x22rate-limited\x22,1069945372),new cljs.core.Keyword(null,\x22allowed\x22,\x22allowed\x22,1436019743),new cljs.core.Keyword(null,\x22sampled\x22,\x22sampled\x22,-1590460609)],[cljs.core.deref(cnt_errors),cljs.core.deref(cnt_dropped),cljs.core.deref(cnt_filtered),cljs.core.deref(cnt_handled),cljs.core.deref(cnt_backp),cljs.core.deref(cnt_disallowed),cljs.core.deref(cnt_suppressed),cljs.core.deref(cnt_rate_limited),cljs.core.deref(cnt_allowed),cljs.core.deref(cnt_sampled)])], null);\n});\nvar G__52108__1 \x3d (function (action){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [782,23], null),\x22Not currently implemented\x22,cljs.core.PersistentArrayMap.EMPTY,null);\n});\nG__52108 \x3d function(action){\nswitch(arguments.length){\ncase 0:\nreturn G__52108__0.call(this);\ncase 1:\nreturn G__52108__1.call(this,action);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__52108.cljs$core$IFn$_invoke$arity$0 \x3d G__52108__0;\nG__52108.cljs$core$IFn$_invoke$arity$1 \x3d G__52108__1;\nreturn G__52108;\n})()\n:null);\nreturn cljs.core.with_meta(wrapped_handler_fn,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22handler-fn\x22,\x22handler-fn\x22,-799387730),handler_fn,new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),dispatch_opts,new cljs.core.Keyword(null,\x22wrapped-handler-fn\x22,\x22wrapped-handler-fn\x22,-1449520424),wrapped_handler_fn,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177),stats_fn], null));\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.encore.signals.update_ctx \x3d (function taoensso$encore$signals$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2(old_ctx,update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1532,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n}\n}\n}\n});\n/**\n * `:foo/bar` -\x3e \x22FOO/BAR\x22, etc.\n */\ntaoensso.encore.signals.upper_qn \x3d taoensso.encore.fmemoize((function (x){\nreturn clojure.string.upper_case(taoensso.encore.as_qname(x));\n}));\n/**\n * `:info` -\x3e \x22INFO\x22,\n * `5` -\x3e \x22LEVEL:5\x22, etc.\n */\ntaoensso.encore.signals.format_level \x3d taoensso.encore.fmemoize((function (x){\nif((x instanceof cljs.core.Keyword)){\nreturn (taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1(x) : taoensso.encore.signals.upper_qn.call(null,x));\n} else {\nreturn [\x22LEVEL:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)].join(\x27\x27);\n}\n}));\n/**\n * `:foo.bar/baz` -\x3e \x22::baz\x22, etc.\n */\ntaoensso.encore.signals.format_id \x3d taoensso.encore.fmemoize((function (ns,x){\nif((x instanceof cljs.core.Keyword)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(x),ns)){\nreturn [\x22::\x22,cljs.core.name(x)].join(\x27\x27);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n}));\n/**\n * Returns \x22\x3cnamespace\x3e[\x3cline\x3e,\x3ccolumn\x3e]\x22 ?string.\n */\ntaoensso.encore.signals.format_callsite \x3d (function taoensso$encore$signals$format_callsite(var_args){\nvar G__52053 \x3d arguments.length;\nswitch (G__52053) {\ncase 2:\nreturn taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,coords){\nif(cljs.core.truth_(ns)){\nvar temp__5823__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__52054 \x3d temp__5823__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52054,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52054,(1),null);\nif(cljs.core.truth_(line)){\nif(cljs.core.truth_(column)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn ns;\n}\n} else {\nreturn ns;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$1 \x3d (function (location){\nvar temp__5825__auto__ \x3d location;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__52057 \x3d temp__5825__auto__;\nvar map__52057__$1 \x3d cljs.core.__destructure_map(map__52057);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52057__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52057__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52057__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nif(cljs.core.truth_(ns)){\nif(cljs.core.truth_(line)){\nif(cljs.core.truth_(column)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn ns;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.format_callsite.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.signals.signal_with_combined_sample_rate \x3d (function taoensso$encore$signals$signal_with_combined_sample_rate(handler_sample_rate,sig_val){\nvar or__5025__auto__ \x3d (cljs.core.truth_(handler_sample_rate)?((cljs.core.map_QMARK_(sig_val))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(sig_val,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),(handler_sample_rate * (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(sig_val,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 1.0;\n}\n})())):null):null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn sig_val;\n}\n});\n"); -SHADOW_ENV.evalLoad("taoensso.telemere.impl.js", true, "goog.provide(\x27taoensso.telemere.impl\x27);\n/**\n * Documented at `taoensso.telemere/*uid-fn*`.\n */\ntaoensso.telemere.impl.uid_kind \x3d new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328);\nvar base_52465 \x3d null;\nvar kind_filter_52466 \x3d null;\nvar ns_filter_52467 \x3d null;\nvar id_filter_52468 \x3d null;\nvar min_level_52469 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl._STAR_rt_call_filter_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * `SpecFilter` used for runtime filtering, or nil.\n */\ntaoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d taoensso.encore.signals.spec_filter(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),(function (){var or__5025__auto__ \x3d kind_filter_52466;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_52465,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\n}\n})(),new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),(function (){var or__5025__auto__ \x3d ns_filter_52467;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_52465,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\n}\n})(),new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),(function (){var or__5025__auto__ \x3d id_filter_52468;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_52465,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\n}\n})(),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919),(function (){var or__5025__auto__ \x3d min_level_52469;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_52465,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\n}\n})()], null));\n}\n\n/**\n* @constructor\n*/\ntaoensso.telemere.impl.MsgSkip \x3d (function (){\n});\n\n(taoensso.telemere.impl.MsgSkip.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/MsgSkip\x22);\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/MsgSkip\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/MsgSkip.\n */\ntaoensso.telemere.impl.__GT_MsgSkip \x3d (function taoensso$telemere$impl$__GT_MsgSkip(){\nreturn (new taoensso.telemere.impl.MsgSkip());\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.telemere.impl.MsgSplice \x3d (function (args){\nthis.args \x3d args;\n});\n\n(taoensso.telemere.impl.MsgSplice.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22args\x22,\x22args\x22,-1338879193,null)], null);\n}));\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/MsgSplice\x22);\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/MsgSplice\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/MsgSplice.\n */\ntaoensso.telemere.impl.__GT_MsgSplice \x3d (function taoensso$telemere$impl$__GT_MsgSplice(args){\nreturn (new taoensso.telemere.impl.MsgSplice(args));\n});\n\n/**\n * For use within signal message vectors.\n * Special value that will be ignored (noop) when creating message.\n * Useful for conditionally skipping parts of message content, etc.:\n * \n * (signal! {:msg [\x22Hello\x22 (if \x3ccond\x3e \x3cthen\x3e msg-skip) \x22world\x22] \x3c...\x3e}) or\n * (log! [\x22Hello\x22 (if \x3ccond\x3e \x3cthen\x3e msg-skip) \x22world\x22]), etc.\n * \n * %\x3e {:msg_ \x22Hello world\x22 \x3c...\x3e}\n */\ntaoensso.telemere.impl.msg_skip \x3d (new taoensso.telemere.impl.MsgSkip());\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.impl.msg_splice \x3d (function taoensso$telemere$impl$msg_splice(args){\nreturn (new taoensso.telemere.impl.MsgSplice(args));\n});\nvar xform_52470 \x3d (function (rf){\nvar rf_STAR_ \x3d (function taoensso$telemere$impl$rf_STAR_(acc,in$){\nif((in$ instanceof taoensso.telemere.impl.MsgSplice)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso$telemere$impl$rf_STAR_,acc,in$.args);\n} else {\nif((in$ instanceof taoensso.telemere.impl.MsgSkip)){\nreturn acc;\n} else {\nif((in$ \x3d\x3d null)){\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,\x22nil\x22) : rf.call(null,acc,\x22nil\x22));\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}\n}\n}\n});\nreturn (function() {\nvar G__52471 \x3d null;\nvar G__52471__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n});\nvar G__52471__1 \x3d (function (acc){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n});\nvar G__52471__2 \x3d (function (acc,in$){\nreturn rf_STAR_(acc,in$);\n});\nG__52471 \x3d function(acc,in$){\nswitch(arguments.length){\ncase 0:\nreturn G__52471__0.call(this);\ncase 1:\nreturn G__52471__1.call(this,acc);\ncase 2:\nreturn G__52471__2.call(this,acc,in$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__52471.cljs$core$IFn$_invoke$arity$0 \x3d G__52471__0;\nG__52471.cljs$core$IFn$_invoke$arity$1 \x3d G__52471__1;\nG__52471.cljs$core$IFn$_invoke$arity$2 \x3d G__52471__2;\nreturn G__52471;\n})()\n});\n/**\n * Returns string formed by joining all args with \x22 \x22 separator,\n * rendering nils as \x22nil\x22. Supports `msg-skip`, `msg-splice`.\n * \n * API intended to be usefully different to `str`:\n * - `str`: no spacers, skip nils, no splicing\n * - `signal-msg`: auto spacers, show nils, opt-in splicing\n */\ntaoensso.telemere.impl.signal_msg \x3d (function taoensso$telemere$impl$signal_msg(args){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,xform_52470,args);\n});\ntaoensso.telemere.impl.default_trace_msg \x3d (function taoensso$telemere$impl$default_trace_msg(form,value,error,nsecs){\nif(cljs.core.truth_(error)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22 !\x3e \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.truss.ex_type(error))].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22 \x3d\x3e \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(value)].join(\x27\x27);\n}\n});\n/**\n * ?{:keys [id uid]}\n */\ntaoensso.telemere.impl._STAR_trace_root_STAR_ \x3d null;\n/**\n * ?{:keys [id uid]}\n */\ntaoensso.telemere.impl._STAR_trace_parent_STAR_ \x3d null;\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.telemere.impl.Signal \x3d (function (schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs,__meta,__extmap,__hash){\nthis.schema \x3d schema;\nthis.inst \x3d inst;\nthis.uid \x3d uid;\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.sample \x3d sample;\nthis.kind \x3d kind;\nthis.id \x3d id;\nthis.level \x3d level;\nthis.ctx \x3d ctx;\nthis.parent \x3d parent;\nthis.root \x3d root;\nthis.data \x3d data;\nthis.kvs \x3d kvs;\nthis.msg_ \x3d msg_;\nthis.error \x3d error;\nthis.run_form \x3d run_form;\nthis.run_val \x3d run_val;\nthis.end_inst \x3d end_inst;\nthis.run_nsecs \x3d run_nsecs;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.telemere.impl.Signal.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar sig \x3d this;\nreturn [\x22taoensso.telemere.Signal\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.encore.pr_edn_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,sig)))].join(\x27\x27);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k52412,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__52416 \x3d k52412;\nvar G__52416__$1 \x3d (((G__52416 instanceof cljs.core.Keyword))?G__52416.fqn:null);\nswitch (G__52416__$1) {\ncase \x22schema\x22:\nreturn self__.schema;\n\nbreak;\ncase \x22inst\x22:\nreturn self__.inst;\n\nbreak;\ncase \x22uid\x22:\nreturn self__.uid;\n\nbreak;\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22sample\x22:\nreturn self__.sample;\n\nbreak;\ncase \x22kind\x22:\nreturn self__.kind;\n\nbreak;\ncase \x22id\x22:\nreturn self__.id;\n\nbreak;\ncase \x22level\x22:\nreturn self__.level;\n\nbreak;\ncase \x22ctx\x22:\nreturn self__.ctx;\n\nbreak;\ncase \x22parent\x22:\nreturn self__.parent;\n\nbreak;\ncase \x22root\x22:\nreturn self__.root;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22kvs\x22:\nreturn self__.kvs;\n\nbreak;\ncase \x22msg_\x22:\nreturn self__.msg_;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ncase \x22run-form\x22:\nreturn self__.run_form;\n\nbreak;\ncase \x22run-val\x22:\nreturn self__.run_val;\n\nbreak;\ncase \x22end-inst\x22:\nreturn self__.end_inst;\n\nbreak;\ncase \x22run-nsecs\x22:\nreturn self__.run_nsecs;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k52412,else__5326__auto__);\n\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__52417){\nvar vec__52418 \x3d p__52417;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52418,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52418,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.telemere.impl.Signal{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),self__.schema],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),self__.inst],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),self__.uid],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),self__.sample],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),self__.ctx],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),self__.root],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),self__.kvs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),self__.msg_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),self__.run_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),self__.run_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),self__.end_inst],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),self__.run_nsecs],null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__52411){\nvar self__ \x3d this;\nvar G__52411__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__52411__$1,20,new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (20 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-2071815066 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this52413,other52414){\nvar self__ \x3d this;\nvar this52413__$1 \x3d this;\nreturn (((!((other52414 \x3d\x3d null)))) \x26\x26 ((((this52413__$1.constructor \x3d\x3d\x3d other52414.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.schema,other52414.schema)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.inst,other52414.inst)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.uid,other52414.uid)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.ns,other52414.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.coords,other52414.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.sample,other52414.sample)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.kind,other52414.kind)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.id,other52414.id)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.level,other52414.level)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.ctx,other52414.ctx)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.parent,other52414.parent)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.root,other52414.root)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.data,other52414.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.kvs,other52414.kvs)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.msg_,other52414.msg_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.error,other52414.error)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.run_form,other52414.run_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.run_val,other52414.run_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.end_inst,other52414.end_inst)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.run_nsecs,other52414.run_nsecs)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52413__$1.__extmap,other52414.__extmap)))))))))))))))))))))))))))))))))))))))))))));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 20, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),null,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),null,new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),null,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),null,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),null,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),null,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),null,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),null,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),null,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),null,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),null,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),null,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k52412){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__52421 \x3d k52412;\nvar G__52421__$1 \x3d (((G__52421 instanceof cljs.core.Keyword))?G__52421.fqn:null);\nswitch (G__52421__$1) {\ncase \x22schema\x22:\ncase \x22inst\x22:\ncase \x22uid\x22:\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22sample\x22:\ncase \x22kind\x22:\ncase \x22id\x22:\ncase \x22level\x22:\ncase \x22ctx\x22:\ncase \x22parent\x22:\ncase \x22root\x22:\ncase \x22data\x22:\ncase \x22kvs\x22:\ncase \x22msg_\x22:\ncase \x22error\x22:\ncase \x22run-form\x22:\ncase \x22run-val\x22:\ncase \x22end-inst\x22:\ncase \x22run-nsecs\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k52412);\n\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__52411){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__52422 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__52423 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(G__52411,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,G__52411,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,G__52411,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,G__52411,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,G__52411,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,G__52411,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,G__52411,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,G__52411,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,G__52411,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,G__52411,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,G__52411,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,G__52411,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,G__52411,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,G__52411,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,G__52411,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,G__52411,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,G__52411,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,G__52411,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,G__52411,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52422.cljs$core$IFn$_invoke$arity$2 ? pred__52422.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),expr__52423) : pred__52422.call(null,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),expr__52423)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,G__52411,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__52411),null));\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),self__.schema,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),self__.inst,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),self__.uid,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),self__.sample,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),self__.ctx,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),self__.root,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),self__.kvs,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),self__.msg_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),self__.run_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),self__.run_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),self__.end_inst,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),self__.run_nsecs,null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__52411){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,G__52411,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.telemere.impl.Signal.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22inst\x22,\x22inst\x22,-2008473268,null),new cljs.core.Symbol(null,\x22uid\x22,\x22uid\x22,192762127,null),new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22sample\x22,\x22sample\x22,1719555128,null),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22level\x22,\x22level\x22,-1363938217,null),new cljs.core.Symbol(null,\x22ctx\x22,\x22ctx\x22,1146921409,null),new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22kvs\x22,\x22kvs\x22,-1695980277,null),new cljs.core.Symbol(null,\x22msg_\x22,\x22msg_\x22,-284615473,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null),new cljs.core.Symbol(null,\x22run-form\x22,\x22run-form\x22,2046178924,null),new cljs.core.Symbol(null,\x22run-val\x22,\x22run-val\x22,1336205007,null),new cljs.core.Symbol(null,\x22end-inst\x22,\x22end-inst\x22,2136888683,null),new cljs.core.Symbol(null,\x22run-nsecs\x22,\x22run-nsecs\x22,1673153251,null)], null);\n}));\n\n(taoensso.telemere.impl.Signal.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.Signal.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.telemere.impl/Signal\x22,null,(1),null));\n}));\n\n(taoensso.telemere.impl.Signal.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.telemere.impl/Signal\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/Signal.\n */\ntaoensso.telemere.impl.__GT_Signal \x3d (function taoensso$telemere$impl$__GT_Signal(schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs){\nreturn (new taoensso.telemere.impl.Signal(schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs,null,null,null));\n});\n\n/**\n * Factory function for taoensso.telemere.impl/Signal, taking a map of keywords to field values.\n */\ntaoensso.telemere.impl.map__GT_Signal \x3d (function taoensso$telemere$impl$map__GT_Signal(G__52415){\nvar extmap__5365__auto__ \x3d (function (){var G__52425 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__52415,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724)], 0));\nif(cljs.core.record_QMARK_(G__52415)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__52425);\n} else {\nreturn G__52425;\n}\n})();\nreturn (new taoensso.telemere.impl.Signal(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156).cljs$core$IFn$_invoke$arity$1(G__52415),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724).cljs$core$IFn$_invoke$arity$1(G__52415),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (sig,__w,_){\nvar sig__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#taoensso.telemere.Signal\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.encore.pr_edn_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,sig__$1)))].join(\x27\x27));\n}));\ntaoensso.telemere.impl.signal_QMARK_ \x3d (function taoensso$telemere$impl$signal_QMARK_(x){\nreturn (x instanceof taoensso.telemere.impl.Signal);\n});\ntaoensso.telemere.impl.impl_signal_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_otel-context\x22,\x22_otel-context\x22,-1187753645),null], null), null);\ntaoensso.telemere.impl.standard_signal_keys \x3d clojure.set.difference.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(taoensso.telemere.impl.map__GT_Signal(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),(0)], null)))),taoensso.telemere.impl.impl_signal_keys);\n\n/**\n* @constructor\n * @implements {taoensso.encore.signals.ISignalHandling}\n*/\ntaoensso.telemere.impl.WrappedSignal \x3d (function (kind,ns,id,level,signal_value_){\nthis.kind \x3d kind;\nthis.ns \x3d ns;\nthis.id \x3d id;\nthis.level \x3d level;\nthis.signal_value_ \x3d signal_value_;\n});\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2 \x3d (function (_,spec_filter){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (spec_filter.cljs$core$IFn$_invoke$arity$4 ? spec_filter.cljs$core$IFn$_invoke$arity$4(self__.kind,self__.ns,self__.id,self__.level) : spec_filter.call(null,self__.kind,self__.ns,self__.id,self__.level));\n}));\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level], null);\n}));\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$signal_value$arity$2 \x3d (function (_,handler_sample_rate){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.signals.signal_with_combined_sample_rate(handler_sample_rate,cljs.core.force(self__.signal_value_));\n}));\n\n(taoensso.telemere.impl.WrappedSignal.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22level\x22,\x22level\x22,-1363938217,null),new cljs.core.Symbol(null,\x22signal-value_\x22,\x22signal-value_\x22,1525225232,null)], null);\n}));\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/WrappedSignal\x22);\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/WrappedSignal\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/WrappedSignal.\n */\ntaoensso.telemere.impl.__GT_WrappedSignal \x3d (function taoensso$telemere$impl$__GT_WrappedSignal(kind,ns,id,level,signal_value_){\nreturn (new taoensso.telemere.impl.WrappedSignal(kind,ns,id,level,signal_value_));\n});\n\n/**\n * Used by `taoensso.telemere/dispatch-signal!`.\n */\ntaoensso.telemere.impl.wrap_signal \x3d (function taoensso$telemere$impl$wrap_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nvar map__52426 \x3d signal;\nvar map__52426__$1 \x3d cljs.core.__destructure_map(map__52426);\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52426__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52426__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52426__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52426__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nreturn (new taoensso.telemere.impl.WrappedSignal(kind,ns,id,level,signal));\n} else {\nreturn null;\n}\n});\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl._STAR_sig_handlers_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * ?[\x3cwrapped-handler-fn\x3e]\n */\ntaoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d null;\n}\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.telemere.impl.SpyOpts \x3d (function (vol_,last_only_QMARK_,trap_QMARK_,__meta,__extmap,__hash){\nthis.vol_ \x3d vol_;\nthis.last_only_QMARK_ \x3d last_only_QMARK_;\nthis.trap_QMARK_ \x3d trap_QMARK_;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k52428,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__52432 \x3d k52428;\nvar G__52432__$1 \x3d (((G__52432 instanceof cljs.core.Keyword))?G__52432.fqn:null);\nswitch (G__52432__$1) {\ncase \x22vol_\x22:\nreturn self__.vol_;\n\nbreak;\ncase \x22last-only?\x22:\nreturn self__.last_only_QMARK_;\n\nbreak;\ncase \x22trap?\x22:\nreturn self__.trap_QMARK_;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k52428,else__5326__auto__);\n\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__52433){\nvar vec__52434 \x3d p__52433;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52434,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52434,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.telemere.impl.SpyOpts{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),self__.vol_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),self__.last_only_QMARK_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),self__.trap_QMARK_],null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__52427){\nvar self__ \x3d this;\nvar G__52427__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__52427__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (3 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-98713752 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this52429,other52430){\nvar self__ \x3d this;\nvar this52429__$1 \x3d this;\nreturn (((!((other52430 \x3d\x3d null)))) \x26\x26 ((((this52429__$1.constructor \x3d\x3d\x3d other52430.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52429__$1.vol_,other52430.vol_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52429__$1.last_only_QMARK_,other52430.last_only_QMARK_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52429__$1.trap_QMARK_,other52430.trap_QMARK_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this52429__$1.__extmap,other52430.__extmap)))))))))));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),null,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),null,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k52428){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__52437 \x3d k52428;\nvar G__52437__$1 \x3d (((G__52437 instanceof cljs.core.Keyword))?G__52437.fqn:null);\nswitch (G__52437__$1) {\ncase \x22vol_\x22:\ncase \x22last-only?\x22:\ncase \x22trap?\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k52428);\n\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__52427){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__52438 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__52439 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__52438.cljs$core$IFn$_invoke$arity$2 ? pred__52438.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),expr__52439) : pred__52438.call(null,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),expr__52439)))){\nreturn (new taoensso.telemere.impl.SpyOpts(G__52427,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52438.cljs$core$IFn$_invoke$arity$2 ? pred__52438.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),expr__52439) : pred__52438.call(null,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),expr__52439)))){\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,G__52427,self__.trap_QMARK_,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__52438.cljs$core$IFn$_invoke$arity$2 ? pred__52438.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),expr__52439) : pred__52438.call(null,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),expr__52439)))){\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,G__52427,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__52427),null));\n}\n}\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),self__.vol_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),self__.last_only_QMARK_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),self__.trap_QMARK_,null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__52427){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,G__52427,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22vol_\x22,\x22vol_\x22,1178937224,null),new cljs.core.Symbol(null,\x22last-only?\x22,\x22last-only?\x22,1800006145,null),new cljs.core.Symbol(null,\x22trap?\x22,\x22trap?\x22,888340579,null)], null);\n}));\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.telemere.impl/SpyOpts\x22,null,(1),null));\n}));\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.telemere.impl/SpyOpts\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/SpyOpts.\n */\ntaoensso.telemere.impl.__GT_SpyOpts \x3d (function taoensso$telemere$impl$__GT_SpyOpts(vol_,last_only_QMARK_,trap_QMARK_){\nreturn (new taoensso.telemere.impl.SpyOpts(vol_,last_only_QMARK_,trap_QMARK_,null,null,null));\n});\n\n/**\n * Factory function for taoensso.telemere.impl/SpyOpts, taking a map of keywords to field values.\n */\ntaoensso.telemere.impl.map__GT_SpyOpts \x3d (function taoensso$telemere$impl$map__GT_SpyOpts(G__52431){\nvar extmap__5365__auto__ \x3d (function (){var G__52441 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__52431,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948)], 0));\nif(cljs.core.record_QMARK_(G__52431)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__52441);\n} else {\nreturn G__52441;\n}\n})();\nreturn (new taoensso.telemere.impl.SpyOpts(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303).cljs$core$IFn$_invoke$arity$1(G__52431),new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618).cljs$core$IFn$_invoke$arity$1(G__52431),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948).cljs$core$IFn$_invoke$arity$1(G__52431),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * ?SpyOpts\n */\ntaoensso.telemere.impl._STAR_sig_spy_STAR_ \x3d null;\ntaoensso.telemere.impl.force_msg_in_sig \x3d (function taoensso$telemere$impl$force_msg_in_sig(sig){\nif((!(cljs.core.map_QMARK_(sig)))){\nreturn sig;\n} else {\nvar temp__5823__auto__ \x3d cljs.core.find(sig,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(sig,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),cljs.core.force(cljs.core.val(e)));\n} else {\nreturn sig;\n}\n}\n});\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n */\ntaoensso.telemere.impl.dispatch_signal_BANG_ \x3d (function taoensso$telemere$impl$dispatch_signal_BANG_(signal){\nvar or__5025__auto__ \x3d (function (){var temp__5825__auto__ \x3d taoensso.telemere.impl._STAR_sig_spy_STAR_;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__52449 \x3d temp__5825__auto__;\nvar map__52449__$1 \x3d cljs.core.__destructure_map(map__52449);\nvar vol_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52449__$1,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303));\nvar last_only_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52449__$1,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618));\nvar trap_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52449__$1,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948));\nvar sv_52491 \x3d taoensso.encore.signals.signal_value(signal,null);\nif(cljs.core.truth_(last_only_QMARK_)){\ncljs.core.vreset_BANG_(vol_,sv_52491);\n} else {\ncljs.core._vreset_BANG_(vol_,(function (p1__52448_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d p1__52448_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),sv_52491);\n})(cljs.core._deref(vol_)));\n}\n\nif(cljs.core.truth_(trap_QMARK_)){\nreturn new cljs.core.Keyword(null,\x22trapped\x22,\x22trapped\x22,-1135045162);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d taoensso.encore.signals.call_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_,signal);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22dispatched\x22,\x22dispatched\x22,-305136936);\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n*/\ntaoensso.telemere.impl.RunResult \x3d (function (value,error,run_nsecs){\nthis.value \x3d value;\nthis.error \x3d error;\nthis.run_nsecs \x3d run_nsecs;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.telemere.impl.RunResult.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__52451 \x3d (arguments.length - (1));\nswitch (G__52451) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.apply \x3d (function (self__,args52450){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args52450)));\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.error)){\nthrow self__.error;\n} else {\nreturn self__.value;\n}\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (signal_){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.error)){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.telemere.impl\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [470,7], null),\x22Signal `:run` form error\x22,(function (){try{return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22taoensso.telemere\x22,\x22signal\x22,\x22taoensso.telemere/signal\x22,1391011740),cljs.core.force(signal_)], null);\n}catch (e52452){var t \x3d e52452;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22taoensso.telemere\x22,\x22signal-error\x22,\x22taoensso.telemere/signal-error\x22,366067440),t], null);\n}})(),self__.error);\n} else {\nreturn self__.value;\n}\n}));\n\n(taoensso.telemere.impl.RunResult.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22run-nsecs\x22,\x22run-nsecs\x22,1673153251,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.telemere.impl.RunResult.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.RunResult.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/RunResult\x22);\n\n(taoensso.telemere.impl.RunResult.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/RunResult\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/RunResult.\n */\ntaoensso.telemere.impl.__GT_RunResult \x3d (function taoensso$telemere$impl$__GT_RunResult(value,error,run_nsecs){\nreturn (new taoensso.telemere.impl.RunResult(value,error,run_nsecs));\n});\n\n/**\n * Returns given platform instant plus given number of nanosecs.\n */\ntaoensso.telemere.impl.inst_PLUS_nsecs \x3d (function taoensso$telemere$impl$inst_PLUS_nsecs(inst,run_nsecs){\nreturn (new Date((inst.getTime() + (run_nsecs / 1000000.0))));\n});\n"); -SHADOW_ENV.evalLoad("taoensso.telemere.utils.js", true, "goog.provide(\x27taoensso.telemere.utils\x27);\n/**\n * `:info` -\x3e \x22INFO\x22,\n * `5` -\x3e \x22LEVEL:5\x22, etc.\n */\ntaoensso.telemere.utils.format_level \x3d taoensso.encore.signals.format_level;\n\n/**\n * `:foo.bar/baz` -\x3e \x22::baz\x22, etc.\n */\ntaoensso.telemere.utils.format_id \x3d taoensso.encore.signals.format_id;\n/**\n * Alpha, subject to change.\n * Returns a (fn nano-uid [root?]) that returns a random nano-style uid string like:\n * \x22r76-B8LoIPs5lBG1_Uhdy\x22 - 126 bit (21 char) root uid\n * \x22tMEYoZH0K-\x22 - 60 bit (10 char) non-root (child) uid\n */\ntaoensso.telemere.utils.nano_uid_fn \x3d (function taoensso$telemere$utils$nano_uid_fn(var_args){\nvar G__52474 \x3d arguments.length;\nswitch (G__52474) {\ncase 0:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52476){\nvar map__52477 \x3d p__52476;\nvar map__52477__$1 \x3d cljs.core.__destructure_map(map__52477);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52477__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52477__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(21));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52477__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(10));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nreturn (function taoensso$telemere$utils$nano_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,root_len__$1);\n} else {\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,child_len__$1);\n}\n});\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:\n * \x2205039666eb9dc3206475f44ab9f3d843\x22 - 128 bit (32 char) root uid\n * \x22721fcef639a51513\x22 - 64 bit (16 char) non-root (child) uid\n */\ntaoensso.telemere.utils.hex_uid_fn \x3d (function taoensso$telemere$utils$hex_uid_fn(var_args){\nvar G__52479 \x3d arguments.length;\nswitch (G__52479) {\ncase 0:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52480){\nvar map__52481 \x3d p__52480;\nvar map__52481__$1 \x3d cljs.core.__destructure_map(map__52481);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52481__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52481__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(32));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52481__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(16));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nvar rand_bytes_fn \x3d (cljs.core.truth_(secure_QMARK_)?cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true):cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,false));\nvar hex_uid_root \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),root_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nvar hex_uid_child \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),child_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nreturn (function taoensso$telemere$utils$hex_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn hex_uid_root();\n} else {\nreturn hex_uid_child();\n}\n});\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Private, don\x27t use.\n * Returns (fn uid [root?]) for given uid kind.\n */\ntaoensso.telemere.utils.parse_uid_fn \x3d (function taoensso$telemere$utils$parse_uid_fn(kind){\nvar G__52482 \x3d kind;\nvar G__52482__$1 \x3d (((G__52482 instanceof cljs.core.Keyword))?G__52482.fqn:null);\nswitch (G__52482__$1) {\ncase \x22uuid\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid();\n});\n\nbreak;\ncase \x22uuid-str\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0();\n});\n\nbreak;\ncase \x22default\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ndefault:\nvar or__5025__auto__ \x3d ((cljs.core.vector_QMARK_(kind))?(function (){var vec__52483 \x3d kind;\nvar kind__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52483,(0),null);\nvar root_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52483,(1),null);\nvar child_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52483,(2),null);\nvar G__52486 \x3d kind__$1;\nvar G__52486__$1 \x3d (((G__52486 instanceof cljs.core.Keyword))?G__52486.fqn:null);\nswitch (G__52486__$1) {\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [122,7], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22uid-fn\x22,\x22taoensso.telemere.utils/uid-fn\x22,790130699,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 11, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),\x22null\x22,new cljs.core.Keyword(null,\x22uuid-str\x22,\x22uuid-str\x22,358395442),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),\x22null\x22,new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),\x22null\x22], null), null)], null));\n}\n\n}\n});\n/**\n * Single system newline\n */\ntaoensso.telemere.utils.newline \x3d \x22\\n\x22;\n\n/**\n * Prints given arg to an edn string readable with `read-edn`.\n */\ntaoensso.telemere.utils.pr_edn \x3d taoensso.encore.pr_edn;\n\n/**\n * Returns a random UUID string of given length (max 36).\n * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.telemere.utils.uuid_str \x3d taoensso.encore.uuid_str;\n\n/**\n * Returns given Cljs argument as JSON string.\n */\ntaoensso.telemere.utils.pr_json \x3d taoensso.encore.pr_json;\n/**\n * Returns JavaScript console logger to match given signal level:\n * `:debug` -\x3e `js/console.debug`,\n * `:error` -\x3e `js/console.error`, etc.\n * \n * Defaults to `js.console.log` for unmatched signal levels.\n * NB: assumes that `js/console` exists, handler constructors should check first!\n */\ntaoensso.telemere.utils.js_console_logger \x3d (function taoensso$telemere$utils$js_console_logger(level){\nvar G__52488 \x3d level;\nvar G__52488__$1 \x3d (((G__52488 instanceof cljs.core.Keyword))?G__52488.fqn:null);\nswitch (G__52488__$1) {\ncase \x22trace\x22:\nreturn console.debug;\n\nbreak;\ncase \x22debug\x22:\nreturn console.debug;\n\nbreak;\ncase \x22info\x22:\nreturn console.info;\n\nbreak;\ncase \x22warn\x22:\nreturn console.warn;\n\nbreak;\ncase \x22error\x22:\nreturn console.error;\n\nbreak;\ncase \x22fatal\x22:\nreturn console.error;\n\nbreak;\ncase \x22report\x22:\nreturn console.info;\n\nbreak;\ndefault:\nreturn console.log;\n\n}\n});\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.utils.error_signal_QMARK_ \x3d (function taoensso$telemere$utils$error_signal_QMARK_(signal){\nvar and__5023__auto__ \x3d signal;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.boolean$((function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.keyword_identical_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803)),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d (function (){var G__52490 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar G__52490__$1 \x3d (((G__52490 instanceof cljs.core.Keyword))?G__52490.fqn:null);\nswitch (G__52490__$1) {\ncase \x22error\x22:\ncase \x22fatal\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error?\x22,\x22error?\x22,-460689159));\n}\n}\n}\n})());\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal without app-level kvs or `:kvs` key.\n */\ntaoensso.telemere.utils.remove_signal_kvs \x3d (function taoensso$telemere$utils$remove_signal_kvs(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar kvs \x3d temp__5823__auto__;\nreturn cljs.core.reduce_kv((function (m,k,_v){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492)),kvs);\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with nil-valued keys removed.\n */\ntaoensso.telemere.utils.remove_signal_nils \x3d (function taoensso$telemere$utils$remove_signal_nils(signal){\nif(taoensso.encore.editable_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn m;\n}\n}),cljs.core.transient$(signal),signal));\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:msg_` value forced (realized when a delay).\n */\ntaoensso.telemere.utils.force_signal_msg \x3d (function taoensso$telemere$utils$force_signal_msg(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar msg_ \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),cljs.core.force(msg_));\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:error` replaced by\n * [{:keys [type msg data]} ...] cause chain.\n */\ntaoensso.telemere.utils.expand_signal_error \x3d (function taoensso$telemere$utils$expand_signal_error(signal){\nvar b2__43681__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(b2__43681__auto__)){\nvar error \x3d b2__43681__auto__;\nvar b2__43681__auto____$1 \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),error);\nif(cljs.core.truth_(b2__43681__auto____$1)){\nvar chain \x3d b2__43681__auto____$1;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),chain);\n} else {\nreturn signal;\n}\n} else {\nreturn signal;\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn format [nanosecs]) that:\n * - Takes a long nanoseconds (e.g. runtime).\n * - Returns a human-readable string like:\n * \x221.00m\x22, \x224.20s\x22, \x22340ms\x22, \x22822\u03bcs\x22, etc.\n */\ntaoensso.telemere.utils.format_nsecs_fn \x3d (function taoensso$telemere$utils$format_nsecs_fn(var_args){\nvar G__52494 \x3d arguments.length;\nswitch (G__52494) {\ncase 0:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52495){\nvar map__52496 \x3d p__52495;\nvar map__52496__$1 \x3d cljs.core.__destructure_map(map__52496);\nvar _opts \x3d map__52496__$1;\nreturn (function taoensso$telemere$utils$format_nsecs(nanosecs){\nreturn taoensso.encore.format_nsecs(nanosecs);\n});\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Experimental, subject to change without notice.\n * \n * Returns a (fn format [instant]) that:\n * - Takes a platform instant (`java.time.Instant` or `js/Date`).\n * - Returns a formatted human-readable instant string.\n * \n * Options:\n * `:formatter`\n * Clj: `java.time.format.DateTimeFormatter`\n * Cljs: `goog.i18n.DateTimeFormat`\n * \n * Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n * e.g.: \x222011-12-03T10:15:130Z\x22.\n * \n * `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n * Note that zone may be ignored by some `DateTimeFormatter`s,\n * including the default (`DateTimeFormatter/ISO_INSTANT`)!\n */\ntaoensso.telemere.utils.format_inst_fn \x3d taoensso.encore.format_inst_fn;\n/**\n * Alpha, subject to change.\n * Returns a (fn format [error]) that:\n * - Takes a platform error (`Throwable` or `js/Error`).\n * - Returns a human-readable error string.\n */\ntaoensso.telemere.utils.format_error_fn \x3d (function taoensso$telemere$utils$format_error_fn(var_args){\nvar G__52498 \x3d arguments.length;\nswitch (G__52498) {\ncase 0:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52499){\nvar map__52500 \x3d p__52499;\nvar map__52500__$1 \x3d cljs.core.__destructure_map(map__52500);\nvar _opts \x3d map__52500__$1;\nvar nl \x3d \x22\\n\x22;\nvar nls \x3d taoensso.encore.newlines;\nreturn (function taoensso$telemere$utils$format_error(error){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_map(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar em \x3d temp__5825__auto__;\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_ \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.sb_append,sb);\nvar map__52501 \x3d em;\nvar map__52501__$1 \x3d cljs.core.__destructure_map(map__52501);\nvar chain \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52501__$1,new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029));\nvar trace \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52501__$1,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415));\nvar s_PLUS_cause_52582 \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,[nls,\x22Caused: \x22].join(\x27\x27));\ns_PLUS_(\x22Root: \x22);\n\nvar seq__52502_52583 \x3d cljs.core.seq(cljs.core.rseq(chain));\nvar chunk__52503_52584 \x3d null;\nvar count__52504_52585 \x3d (0);\nvar i__52505_52586 \x3d (0);\nwhile(true){\nif((i__52505_52586 \x3c count__52504_52585)){\nvar map__52508_52588 \x3d chunk__52503_52584.cljs$core$IIndexed$_nth$arity$2(null,i__52505_52586);\nvar map__52508_52589__$1 \x3d cljs.core.__destructure_map(map__52508_52588);\nvar type_52590 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52508_52589__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_52591 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52508_52589__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_52592 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52508_52589__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_52582(type_52590,\x22 - \x22,msg_52591);\n\nif(cljs.core.truth_(data_52592)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_52592));\n} else {\n}\n\n\nvar G__52593 \x3d seq__52502_52583;\nvar G__52594 \x3d chunk__52503_52584;\nvar G__52595 \x3d count__52504_52585;\nvar G__52596 \x3d (i__52505_52586 + (1));\nseq__52502_52583 \x3d G__52593;\nchunk__52503_52584 \x3d G__52594;\ncount__52504_52585 \x3d G__52595;\ni__52505_52586 \x3d G__52596;\ncontinue;\n} else {\nvar temp__5825__auto___52598__$1 \x3d cljs.core.seq(seq__52502_52583);\nif(temp__5825__auto___52598__$1){\nvar seq__52502_52599__$1 \x3d temp__5825__auto___52598__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__52502_52599__$1)){\nvar c__5548__auto___52600 \x3d cljs.core.chunk_first(seq__52502_52599__$1);\nvar G__52601 \x3d cljs.core.chunk_rest(seq__52502_52599__$1);\nvar G__52602 \x3d c__5548__auto___52600;\nvar G__52603 \x3d cljs.core.count(c__5548__auto___52600);\nvar G__52604 \x3d (0);\nseq__52502_52583 \x3d G__52601;\nchunk__52503_52584 \x3d G__52602;\ncount__52504_52585 \x3d G__52603;\ni__52505_52586 \x3d G__52604;\ncontinue;\n} else {\nvar map__52509_52605 \x3d cljs.core.first(seq__52502_52599__$1);\nvar map__52509_52606__$1 \x3d cljs.core.__destructure_map(map__52509_52605);\nvar type_52607 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52509_52606__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_52608 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52509_52606__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_52609 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52509_52606__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_52582(type_52607,\x22 - \x22,msg_52608);\n\nif(cljs.core.truth_(data_52609)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_52609));\n} else {\n}\n\n\nvar G__52610 \x3d cljs.core.next(seq__52502_52599__$1);\nvar G__52611 \x3d null;\nvar G__52612 \x3d (0);\nvar G__52613 \x3d (0);\nseq__52502_52583 \x3d G__52610;\nchunk__52503_52584 \x3d G__52611;\ncount__52504_52585 \x3d G__52612;\ni__52505_52586 \x3d G__52613;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core.truth_(trace)){\ns_PLUS_(nl,nl,\x22Root stack trace:\x22,nl);\n\ns_PLUS_(trace);\n} else {\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn preamble [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a signal preamble ?string like:\n * \x222024-03-26T11:14:51.806Z INFO EVENT Hostname taoensso.telemere[2,21] ::ev-id msg\x22\n * \n * Options:\n * `:format-inst-fn` - (fn format [instant]) \x3d\x3e string.\n * `:format-id-fn` --- (fn format [ns id]) \x3d\x3e string.\n * `:format-msg-fn` -- (fn format [msg]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_preamble_fn \x3d (function taoensso$telemere$utils$signal_preamble_fn(var_args){\nvar G__52511 \x3d arguments.length;\nswitch (G__52511) {\ncase 0:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52512){\nvar map__52513 \x3d p__52512;\nvar map__52513__$1 \x3d cljs.core.__destructure_map(map__52513);\nvar format_inst_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52513__$1,new cljs.core.Keyword(null,\x22format-inst-fn\x22,\x22format-inst-fn\x22,518148350),(taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.utils.format_inst_fn.call(null)));\nvar format_id_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52513__$1,new cljs.core.Keyword(null,\x22format-id-fn\x22,\x22format-id-fn\x22,513589829),taoensso.telemere.utils.format_id);\nvar format_msg_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52513__$1,new cljs.core.Keyword(null,\x22format-msg-fn\x22,\x22format-msg-fn\x22,-1387049398),cljs.core.identity);\nreturn (function taoensso$telemere$utils$signal_preamble(signal){\nvar map__52514 \x3d signal;\nvar map__52514__$1 \x3d cljs.core.__destructure_map(map__52514);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar msg_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52514__$1,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_spc \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,\x22 \x22);\nif(cljs.core.truth_(inst)){\nvar temp__5825__auto___52617 \x3d format_inst_fn;\nif(cljs.core.truth_(temp__5825__auto___52617)){\nvar ff_52618 \x3d temp__5825__auto___52617;\ns_PLUS_spc((ff_52618.cljs$core$IFn$_invoke$arity$1 ? ff_52618.cljs$core$IFn$_invoke$arity$1(inst) : ff_52618.call(null,inst)));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(level)){\ns_PLUS_spc((taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1 ? taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1(level) : taoensso.telemere.utils.format_level.call(null,level)));\n} else {\n}\n\nif(cljs.core.truth_(kind)){\ns_PLUS_spc((taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1(kind) : taoensso.encore.signals.upper_qn.call(null,kind)));\n} else {\n}\n\nif(cljs.core.truth_(ns)){\ns_PLUS_spc(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2(ns,cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112))));\n} else {\n}\n\nif(cljs.core.truth_(id)){\nvar temp__5825__auto___52619 \x3d format_id_fn;\nif(cljs.core.truth_(temp__5825__auto___52619)){\nvar ff_52620 \x3d temp__5825__auto___52619;\ns_PLUS_spc((ff_52620.cljs$core$IFn$_invoke$arity$2 ? ff_52620.cljs$core$IFn$_invoke$arity$2(ns,id) : ff_52620.call(null,ns,id)));\n} else {\n}\n} else {\n}\n\nvar b2__43681__auto___52621 \x3d format_msg_fn;\nif(cljs.core.truth_(b2__43681__auto___52621)){\nvar ff_52622 \x3d b2__43681__auto___52621;\nvar b2__43681__auto___52623__$1 \x3d cljs.core.force(msg_);\nif(cljs.core.truth_(b2__43681__auto___52623__$1)){\nvar msg_52624 \x3d b2__43681__auto___52623__$1;\ns_PLUS_spc((ff_52622.cljs$core$IFn$_invoke$arity$1 ? ff_52622.cljs$core$IFn$_invoke$arity$1(msg_52624) : ff_52622.call(null,msg_52624)));\n} else {\n}\n} else {\n}\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.utils.format_parent \x3d (function taoensso$telemere$utils$format_parent(ns,p__52515){\nvar map__52516 \x3d p__52515;\nvar map__52516__$1 \x3d cljs.core.__destructure_map(map__52516);\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52516__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar uid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52516__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nif(cljs.core.truth_(id)){\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id))),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id)))], null);\n}\n} else {\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn content [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal content ?string (incl. data, ctx, etc.).\n * \n * Options:\n * `:raw-error?` ------ Retain unformatted error? (default false)\n * `:incl-keys` ------- Subset of signal keys to retain from those\n * otherwise excluded by default: #{:kvs :host :thread}\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * `:format-error-fn` - (fn [error]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_content_fn \x3d (function taoensso$telemere$utils$signal_content_fn(var_args){\nvar G__52518 \x3d arguments.length;\nswitch (G__52518) {\ncase 0:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52519){\nvar map__52520 \x3d p__52519;\nvar map__52520__$1 \x3d cljs.core.__destructure_map(map__52520);\nvar raw_error_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52520__$1,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52520__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52520__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_error_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52520__$1,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nvar err_start \x3d [nl,\x22\x3c\x3c\x3c error \x3c\x3c\x3c\x22,nl].join(\x27\x27);\nvar err_stop \x3d [nl,\x22\x3e\x3e\x3e error \x3e\x3e\x3e\x22].join(\x27\x27);\nvar incl_kvs_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function() {\nvar taoensso$telemere$utils$signal_content \x3d null;\nvar taoensso$telemere$utils$signal_content__1 \x3d (function (signal){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS__PLUS_ \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,nl);\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3(signal,s_PLUS__PLUS_,taoensso.encore.pr_edn_STAR_);\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\nvar taoensso$telemere$utils$signal_content__3 \x3d (function (signal,append_fn,val_fn){\nvar af \x3d append_fn;\nvar vf \x3d val_fn;\nvar map__52521_52627 \x3d signal;\nvar map__52521_52628__$1 \x3d cljs.core.__destructure_map(map__52521_52627);\nvar ns_52629 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar uid_52630 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nvar parent_52631 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\nvar root_52632 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar data_52633 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar kvs_52634 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar ctx_52635 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118));\nvar sample_52636 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52521_52628__$1,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nif(cljs.core.truth_(sample_52636)){\nvar G__52522_52638 \x3d \x22 sample: \x22;\nvar G__52523_52639 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(sample_52636) : vf.call(null,sample_52636));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52522_52638,G__52523_52639) : af.call(null,G__52522_52638,G__52523_52639));\n} else {\n}\n\nif(cljs.core.truth_(uid_52630)){\nvar G__52524_52640 \x3d \x22 uid: \x22;\nvar G__52525_52641 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(uid_52630) : vf.call(null,uid_52630));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52524_52640,G__52525_52641) : af.call(null,G__52524_52640,G__52525_52641));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d parent_52631;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(parent_52631,root_52632);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__52526_52642 \x3d \x22 parent: \x22;\nvar G__52527_52643 \x3d (function (){var G__52528 \x3d taoensso.telemere.utils.format_parent(ns_52629,parent_52631);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__52528) : vf.call(null,G__52528));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52526_52642,G__52527_52643) : af.call(null,G__52526_52642,G__52527_52643));\n} else {\n}\n\nif(cljs.core.truth_(root_52632)){\nvar G__52529_52644 \x3d \x22 root: \x22;\nvar G__52530_52645 \x3d (function (){var G__52531 \x3d taoensso.telemere.utils.format_parent(ns_52629,root_52632);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__52531) : vf.call(null,G__52531));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52529_52644,G__52530_52645) : af.call(null,G__52529_52644,G__52530_52645));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(data_52633))){\nvar G__52532_52647 \x3d \x22 data: \x22;\nvar G__52533_52648 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(data_52633) : vf.call(null,data_52633));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52532_52647,G__52533_52648) : af.call(null,G__52532_52647,G__52533_52648));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(ctx_52635))){\nvar G__52534_52650 \x3d \x22 ctx: \x22;\nvar G__52535_52651 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(ctx_52635) : vf.call(null,ctx_52635));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52534_52650,G__52535_52651) : af.call(null,G__52534_52650,G__52535_52651));\n} else {\n}\n\nif((cljs.core.truth_(kvs_52634)?incl_kvs_QMARK_:false)){\nvar G__52536_52653 \x3d \x22 kvs: \x22;\nvar G__52537_52655 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(kvs_52634) : vf.call(null,kvs_52634));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52536_52653,G__52537_52655) : af.call(null,G__52536_52653,G__52537_52655));\n} else {\n}\n\nvar map__52538 \x3d signal;\nvar map__52538__$1 \x3d cljs.core.__destructure_map(map__52538);\nvar run_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52538__$1,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52538__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(run_form)){\nvar map__52539_52658 \x3d signal;\nvar map__52539_52659__$1 \x3d cljs.core.__destructure_map(map__52539_52658);\nvar run_val_52660 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52539_52659__$1,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520));\nvar run_nsecs_52661 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52539_52659__$1,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724));\nvar run_time_52662 \x3d (cljs.core.truth_(run_nsecs_52661)?(function (){var temp__5825__auto__ \x3d format_nsecs_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nreturn (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(run_nsecs_52661) : ff.call(null,run_nsecs_52661));\n} else {\nreturn null;\n}\n})():null);\nvar run_info_52663 \x3d (cljs.core.truth_(error)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_52662,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_52661], null):new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_52662,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_52661,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),run_val_52660], null));\nvar G__52540_52666 \x3d \x22 run: \x22;\nvar G__52541_52667 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(run_info_52663) : vf.call(null,run_info_52663));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__52540_52666,G__52541_52667) : af.call(null,G__52540_52666,G__52541_52667));\n} else {\n}\n\nif(cljs.core.truth_(error)){\nif(cljs.core.truth_(raw_error_QMARK_)){\nreturn (af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(\x22 error: \x22,error) : af.call(null,\x22 error: \x22,error));\n} else {\nvar temp__5825__auto__ \x3d format_error_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nvar G__52542 \x3d err_start;\nvar G__52543 \x3d (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(error) : ff.call(null,error));\nvar G__52544 \x3d err_stop;\nreturn (af.cljs$core$IFn$_invoke$arity$3 ? af.cljs$core$IFn$_invoke$arity$3(G__52542,G__52543,G__52544) : af.call(null,G__52542,G__52543,G__52544));\n} else {\nreturn null;\n}\n}\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$utils$signal_content \x3d function(signal,append_fn,val_fn){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$telemere$utils$signal_content__1.call(this,signal);\ncase 3:\nreturn taoensso$telemere$utils$signal_content__3.call(this,signal,append_fn,val_fn);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$utils$signal_content__1;\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$telemere$utils$signal_content__3;\nreturn taoensso$telemere$utils$signal_content;\n})()\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.utils.clean_signal_fn \x3d (function taoensso$telemere$utils$clean_signal_fn(var_args){\nvar G__52546 \x3d arguments.length;\nswitch (G__52546) {\ncase 0:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52547){\nvar map__52548 \x3d p__52547;\nvar map__52548__$1 \x3d cljs.core.__destructure_map(map__52548);\nvar opts \x3d map__52548__$1;\nvar incl_kvs_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52548__$1,new cljs.core.Keyword(null,\x22incl-kvs?\x22,\x22incl-kvs?\x22,1936239040));\nvar incl_nils_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52548__$1,new cljs.core.Keyword(null,\x22incl-nils?\x22,\x22incl-nils?\x22,-1704506526));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52548__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar assoc_BANG__STAR_ \x3d ((cljs.core.not(incl_nils_QMARK_))?(function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}):cljs.core.assoc_BANG_);\nvar incl_schema_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791));\nvar incl_kvs_key_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function taoensso$telemere$utils$clean_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nvar G__52553 \x3d k;\nvar G__52553__$1 \x3d (((G__52553 instanceof cljs.core.Keyword))?G__52553.fqn:null);\nswitch (G__52553__$1) {\ncase \x22data\x22:\ncase \x22run-nsecs\x22:\ncase \x22ctx\x22:\ncase \x22kind\x22:\ncase \x22id\x22:\ncase \x22root\x22:\ncase \x22sample\x22:\ncase \x22level\x22:\ncase \x22ns\x22:\ncase \x22uid\x22:\ncase \x22run-val\x22:\ncase \x22coords\x22:\ncase \x22parent\x22:\ncase \x22inst\x22:\ncase \x22run-form\x22:\ncase \x22end-inst\x22:\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n\nbreak;\ncase \x22error\x22:\nvar temp__5823__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),v);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar chain \x3d temp__5823__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,chain);\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22msg_\x22:\nvar G__52554 \x3d m;\nvar G__52555 \x3d k;\nvar G__52556 \x3d cljs.core.force(v);\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(G__52554,G__52555,G__52556) : assoc_BANG__STAR_.call(null,G__52554,G__52555,G__52556));\n\nbreak;\ncase \x22_otel-context\x22:\nreturn m;\n\nbreak;\ncase \x22schema\x22:\nif(incl_schema_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22kvs\x22:\nif(incl_kvs_key_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22thread\x22:\nif(incl_thread_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22host\x22:\nif(incl_host_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ndefault:\nif(cljs.core.truth_(incl_kvs_QMARK_)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nif(cljs.core.contains_QMARK_(incl_keys,k)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n}\n\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.utils.pr_signal_fn \x3d (function taoensso$telemere$utils$pr_signal_fn(var_args){\nvar G__52558 \x3d arguments.length;\nswitch (G__52558) {\ncase 0:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52559){\nvar map__52560 \x3d p__52559;\nvar map__52560__$1 \x3d cljs.core.__destructure_map(map__52560);\nvar opts \x3d map__52560__$1;\nvar pr_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52560__$1,new cljs.core.Keyword(null,\x22pr-fn\x22,\x22pr-fn\x22,2001500794),new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885));\nvar clean_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52560__$1,new cljs.core.Keyword(null,\x22clean-fn\x22,\x22clean-fn\x22,-1262646726),taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0());\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52560__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar nl \x3d taoensso.telemere.utils.newline;\nvar pr_fn__$1 \x3d (function (){var G__52561 \x3d pr_fn;\nvar G__52561__$1 \x3d (((G__52561 instanceof cljs.core.Keyword))?G__52561.fqn:null);\nswitch (G__52561__$1) {\ncase \x22edn\x22:\nreturn taoensso.telemere.utils.pr_edn;\n\nbreak;\ncase \x22json\x22:\nreturn taoensso.telemere.utils.pr_json;\n\nbreak;\ndefault:\nif(cljs.core.fn_QMARK_(pr_fn)){\nreturn pr_fn;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [762,16], null),pr_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pr-fn\x22,\x22pr-fn\x22,-652934975,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22pr-signal-fn\x22,\x22taoensso.telemere.utils/pr-signal-fn\x22,-829484633,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22unary-fn\x22,\x22unary-fn\x22,1332940686,null),\x22null\x22,new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885),\x22null\x22,new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),\x22null\x22], null), null)], null));\n}\n\n}\n})();\nreturn (function taoensso$telemere$utils$pr_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nif(cljs.core.truth_(incl_newline_QMARK_)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__52563 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__52563) : pr_fn__$1.call(null,G__52563));\n})()),nl].join(\x27\x27);\n} else {\nvar G__52564 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__52564) : pr_fn__$1.call(null,G__52564));\n}\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.utils.format_signal_fn \x3d (function taoensso$telemere$utils$format_signal_fn(var_args){\nvar G__52566 \x3d arguments.length;\nswitch (G__52566) {\ncase 0:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52567){\nvar map__52568 \x3d p__52567;\nvar map__52568__$1 \x3d cljs.core.__destructure_map(map__52568);\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52568__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52568__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar content_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52568__$1,new cljs.core.Keyword(null,\x22content-fn\x22,\x22content-fn\x22,-1280686114),taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nreturn (function taoensso$telemere$utils$format_signal(signal){\nvar preamble \x3d (cljs.core.truth_(preamble_fn)?(preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)):null);\nvar content \x3d (cljs.core.truth_(content_fn)?(content_fn.cljs$core$IFn$_invoke$arity$1 ? content_fn.cljs$core$IFn$_invoke$arity$1(signal) : content_fn.call(null,signal)):null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d preamble;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn content;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),nl,cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n}\n});\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n"); -SHADOW_ENV.evalLoad("taoensso.telemere.consoles.js", true, "goog.provide(\x27taoensso.telemere.consoles\x27);\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.consoles.handler_COLON_console \x3d (function taoensso$telemere$consoles$handler_COLON_console(var_args){\nvar G__52573 \x3d arguments.length;\nswitch (G__52573) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52575){\nvar map__52576 \x3d p__52575;\nvar map__52576__$1 \x3d cljs.core.__destructure_map(map__52576);\nvar output_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52576__$1,new cljs.core.Keyword(null,\x22output-fn\x22,\x22output-fn\x22,1600951539),taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0());\nif((typeof console !\x3d\x3d \x27undefined\x27)){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console__1 \x3d (function (signal){\nvar temp__5825__auto__ \x3d (output_fn.cljs$core$IFn$_invoke$arity$1 ? output_fn.cljs$core$IFn$_invoke$arity$1(signal) : output_fn.call(null,signal));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar output \x3d temp__5825__auto__;\nvar logger \x3d (function (){var G__52579 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nreturn (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(G__52579) : js_console_logger.call(null,G__52579));\n})();\nreturn logger.call(logger,cljs.core.str.cljs$core$IFn$_invoke$arity$1(output));\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$consoles$a_handler_COLON_console \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console__0;\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.consoles.logger_fn \x3d (function taoensso$telemere$consoles$logger_fn(logger){\nreturn (function() {\nvar G__52646 \x3d null;\nvar G__52646__1 \x3d (function (x1){\nreturn logger.call(logger,x1);\n});\nvar G__52646__2 \x3d (function (x1,x2){\nreturn logger.call(logger,x1,x2);\n});\nvar G__52646__3 \x3d (function (x1,x2,x3){\nreturn logger.call(logger,x1,x2,x3);\n});\nvar G__52646__4 \x3d (function() { \nvar G__52649__delegate \x3d function (x1,x2,x3,more){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(logger,x1,x2,x3,more);\n};\nvar G__52649 \x3d function (x1,x2,x3,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 3) {\nvar G__52652__i \x3d 0, G__52652__a \x3d new Array(arguments.length - 3);\nwhile (G__52652__i \x3c G__52652__a.length) {G__52652__a[G__52652__i] \x3d arguments[G__52652__i + 3]; ++G__52652__i;}\n more \x3d new cljs.core.IndexedSeq(G__52652__a,0,null);\n} \nreturn G__52649__delegate.call(this,x1,x2,x3,more);};\nG__52649.cljs$lang$maxFixedArity \x3d 3;\nG__52649.cljs$lang$applyTo \x3d (function (arglist__52654){\nvar x1 \x3d cljs.core.first(arglist__52654);\narglist__52654 \x3d cljs.core.next(arglist__52654);\nvar x2 \x3d cljs.core.first(arglist__52654);\narglist__52654 \x3d cljs.core.next(arglist__52654);\nvar x3 \x3d cljs.core.first(arglist__52654);\nvar more \x3d cljs.core.rest(arglist__52654);\nreturn G__52649__delegate(x1,x2,x3,more);\n});\nG__52649.cljs$core$IFn$_invoke$arity$variadic \x3d G__52649__delegate;\nreturn G__52649;\n})()\n;\nG__52646 \x3d function(x1,x2,x3,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 1:\nreturn G__52646__1.call(this,x1);\ncase 2:\nreturn G__52646__2.call(this,x1,x2);\ncase 3:\nreturn G__52646__3.call(this,x1,x2,x3);\ndefault:\nvar G__52656 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__52657__i \x3d 0, G__52657__a \x3d new Array(arguments.length - 3);\nwhile (G__52657__i \x3c G__52657__a.length) {G__52657__a[G__52657__i] \x3d arguments[G__52657__i + 3]; ++G__52657__i;}\nG__52656 \x3d new cljs.core.IndexedSeq(G__52657__a,0,null);\n}\nreturn G__52646__4.cljs$core$IFn$_invoke$arity$variadic(x1,x2,x3, G__52656);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__52646.cljs$lang$maxFixedArity \x3d 3;\nG__52646.cljs$lang$applyTo \x3d G__52646__4.cljs$lang$applyTo;\nG__52646.cljs$core$IFn$_invoke$arity$1 \x3d G__52646__1;\nG__52646.cljs$core$IFn$_invoke$arity$2 \x3d G__52646__2;\nG__52646.cljs$core$IFn$_invoke$arity$3 \x3d G__52646__3;\nG__52646.cljs$core$IFn$_invoke$arity$variadic \x3d G__52646__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__52646;\n})()\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.consoles.handler_COLON_console_raw \x3d (function taoensso$telemere$consoles$handler_COLON_console_raw(var_args){\nvar G__52597 \x3d arguments.length;\nswitch (G__52597) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__52615){\nvar map__52616 \x3d p__52615;\nvar map__52616__$1 \x3d cljs.core.__destructure_map(map__52616);\nvar opts \x3d map__52616__$1;\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52616__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__52616__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nif((((typeof console !\x3d\x3d \x27undefined\x27)) \x26\x26 ((typeof console !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof console.group !\x3d\x3d \x27undefined\x27)))){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nvar content_fn \x3d taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),format_nsecs_fn,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),null,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940),true], null));\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__1 \x3d (function (signal){\nvar map__52625 \x3d signal;\nvar map__52625__$1 \x3d cljs.core.__destructure_map(map__52625);\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52625__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__52625__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar logger \x3d (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(level) : js_console_logger.call(null,level));\nconsole.group((preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)));\n\ncontent_fn(signal,taoensso.telemere.consoles.logger_fn(logger),cljs.core.identity);\n\nvar temp__5825__auto___52665 \x3d (function (){var and__5023__auto__ \x3d error;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn taoensso.truss.ex_root(error).stack;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___52665)){\nvar stack_52668 \x3d temp__5825__auto___52665;\nlogger.call(logger,stack_52668);\n} else {\n}\n\nreturn console.groupEnd();\n});\ntaoensso$telemere$consoles$a_handler_COLON_console_raw \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__0;\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$lang$maxFixedArity \x3d 1);\n\n"); -SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.telemere\x27);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * See `help:handler-dispatch-opts` for details.\n */\ntaoensso.telemere.default_handler_dispatch_opts \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.default_handler_dispatch_opts,new cljs.core.Keyword(null,\x22convey-bindings?\x22,\x22convey-bindings?\x22,1403560206));\ntaoensso.telemere.level_aliases \x3d taoensso.encore.signals.level_aliases;\n\n/**\n * A signal will be provided to a handler iff ALL of the following are true:\n * \n * 1. Call filters pass:\n * a. Compile-time: sample rate, kind, ns, id, level, when form, rate limit\n * b. Runtime: sample rate, kind, ns, id, level, when form, rate limit\n * \n * 2. Handler filters pass:\n * a. Compile-time: not applicable\n * b. Runtime: sample rate, kind, ns, id, level, when fn, rate limit\n * \n * 3. Call transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * 4. Handler transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * \n * Transform fns provides a flexible way to modify and/or filter signals by\n * arbitrary signal data/content conditions (return nil to skip handling).\n * \n * Call and handler filters are ADDITIVE, so handlers can be MORE but not LESS\n * restrictive than call filters allow. This makes sense: call filters decide\n * if a signal can be created. Handler filters decide if a particular handler\n * is allowed to handle a created signal.\n * \n * Config:\n * \n * To set call filters (1a, 1b):\n * \n * Use:\n * `set-kind-filter!`, `with-kind-filter`\n * `set-ns-filter!`, `with-ns-filter`\n * `set-id-filter!`, `with-id-filter`\n * `set-min-level!`, `with-min-level`\n * \n * or see `help:environmental-config`.\n * \n * To set handler filters (2b) or transform (4):\n * \n * Provide relevant opts when calling `add-handler!` or `with-handler/+`.\n * See `help:handler-dispatch-options` for details.\n * \n * Note: call filters (1a, 1b) should generally be AT LEAST as permissive\n * as handler filters (2b) since they\x27re always applied first.\n * \n * To set call transform (3): use `set-xfn!`, `with-xfn`.\n * \n * Compile-time vs runtime filtering:\n * \n * Compile-time filters are an advanced feature that can be tricky to set\n * and use correctly. Most folks will want ONLY runtime filters.\n * \n * Compile-time filters works by eliding (completely removing the code for)\n * disallowed calls. This means zero performance cost for these calls, but\n * also means that compile-time filters are PERMANENT once applied.\n * \n * So if you set `:info` as the compile-time minimum level, that\x27ll REMOVE\n * CODE for every signal call below `:info` level. To decrease that minimum\n * level, you\x27ll need to rebuild.\n * \n * Compile-time filters can be set ONLY with environmental config\n * (see `help:environmental-config` for details).\n * \n * Signal and handler sampling is multiplicative:\n * \n * Both calls and handlers can have independent sample rates, and these\n * MULTIPLY! If a signal is created with 20% sampling and a handler\n * handles 50% of received signals, then 10% of possible signals will be\n * handled (50% of 20%).\n * \n * When sampling is active, the final (combined multiplicative) rate is\n * helpfully reflected in each signal\x27s `:sample` rate value \u2208\u211d[0,1].\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_filters \x3d \x22See docstring\x22;\n\n/**\n * Signal handlers process created signals to do something with them (analyse them,\n * write them to console/file/queue/db, etc.).\n * \n * Manage handlers with:\n * \n * `get-handlers` - Returns info on registered handlers (dispatch options, etc.)\n * `get-handlers-stats` - Returns stats for registered handlers (handling times, etc.)\n * \n * `add-handler!` - Registers given handler\n * `remove-handler!` - Unregisters given handler\n * \n * `with-handler` - Executes form with ONLY the given handler registered\n * `with-handler+` - Executes form with the given handler (also) registered\n * \n * `stop-handlers!` - Stops registered handlers\n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See the relevant docstrings for details.\n * See `help:handler-dispatch-options` for handler filters, etc.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handlers \x3d \x22See docstring\x22;\n\n/**\n * Dispatch options can be provided for each signal handler when calling\n * `add-handler!` or `with-handler/+`. These options will be merged over the\n * defaults specified by `default-handler-dispatch-opts`.\n * \n * All handlers support the same dispatch options, including:\n * \n * `:async` (Clj only) - may be `nil` (\x3d\x3e synchronous) or map with options:\n * \n * `:buffer-size` (default 1024)\n * Size of request buffer, and the max number of pending requests before\n * configured back-pressure behaviour is triggered (see `:mode`).\n * \n * `:mode` (default `:blocking`)\n * Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n * Controls what happens when a new request is made while request buffer is full:\n * `:blocking` \x3d\x3e Blocks caller until buffer space is available\n * `:dropping` \x3d\x3e Drops the newest request (noop)\n * `:sliding` \x3d\x3e Drops the oldest request\n * \n * `:n-threads` (default 1)\n * Number of threads to use for executing fns (servicing request buffer).\n * NB handling order guaranteed to be be sequential iff n\x3d1.\n * \n * `:drain-msecs` (default 6000 msecs)\n * Maximum time (in milliseconds) to try allow pending execution requests to\n * complete when stopping handler. nil \x3d\x3e no maximum.\n * \n * `:priority` (default 100)\n * Optional handler priority \u2208\u2124.\n * Handlers will be called in descending priority order (larger ints first).\n * \n * `:track-stats?` (default true)\n * Should handler track statistics (e.g. handling times) for\n * reporting by `get-handlers-stats`?\n * \n * `:sample` (default nil \x3d\x3e no sampling)\n * Optional sample rate \u2208\u211d[0,1], or (fn dyamic-sample-rate []) \x3d\x3e \u211d[0,1].\n * When present, handle only this (random) proportion of signals:\n * 1.0 \x3d\x3e handle 100% of signals (same as nil rate, default)\n * 0.0 \x3d\x3e hanel 0% of signals (noop all)\n * 0.5 \x3d\x3e handle 50% of signals (random)\n * \n * `:kind-filter` - Kind filter as in `set-kind-filter!` (when relevant)\n * `:ns-filter` - Namespace filter as in `set-ns-filter!`\n * `:id-filter` - Id filter as in `set-id-filter!` (when relevant)\n * `:min-level` - Minimum level as in `set-min-level!`\n * \n * ^^ Recall that all handler filters are ADDITIVE: handlers can be MORE\n * (but not LESS) restrictive than call filters allow!\n * \n * `:when-fn` (default nil \x3d\x3e always allow)\n * Optional NULLARY (fn allow? []) that must return truthy for handler to be\n * called. When present, called *after* sampling and other filters, but before\n * rate limiting. Useful for filtering based on external state/context.\n * See `:xfn` for an alternative that takes a signal argument!\n * \n * `:limit` (default nil \x3d\x3e no rate limit)\n * Optional rate limit spec as provided to `taoensso.encore/rate-limiter`,\n * {\x3climit-id\x3e [\x3cn-max-calls\x3e \x3cmsecs-window\x3e]}.\n * \n * Examples:\n * {\x221/sec\x22 [1 1000]} \x3d\x3e Max 1 call per 1000 msecs\n * {\x221/sec\x22 [1 1000]\n * \x2210/min\x22 [10 60000]} \x3d\x3e Max 1 call per 1000 msecs,\n * and 10 calls per 60 secs\n * \n * `:xfn` (default nil \x3d\x3e no transform)\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply before\n * handling signal. When transform returns nil, skips handler.\n * \n * Compose multiple transform fns together with `comp-xfn`.\n * \n * `:error-fn` - (fn [{:keys [handler-id signal error]}]) to call on handler error.\n * `:backp-fn` - (fn [{:keys [handler-id ]}]) to call on handler back-pressure.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handler_dispatch_options \x3d \x22See docstring\x22;\n\n/**\n * Returns current ?{:keys [compile-time runtime]} filter config.\n */\ntaoensso.telemere.get_filters \x3d (function taoensso$telemere$get_filters(){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)], null));\n});\n\n/**\n * Returns current ?{:keys [compile-time runtime]} minimum call levels\n * for given/current namespace.\n */\ntaoensso.telemere.get_min_levels \x3d (function taoensso$telemere$get_min_levels(var_args){\nvar G__54305 \x3d arguments.length;\nswitch (G__54305) {\ncase 0:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1 \x3d (function (kind){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,ns){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns)),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns))], null));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Returns ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn handler-stats_]}}\n * for all registered signal handlers.\n */\ntaoensso.telemere.get_handlers \x3d (function taoensso$telemere$get_handlers(){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Alpha, subject to change.\n * Returns ?{\x3chandler-id\x3e {:keys [handling-nsecs counts]}} for all registered\n * signal handlers that have the `:track-stats?` dispatch option enabled\n * (it is by default).\n * \n * Stats include:\n * \n * `:handling-nsecs` - Summary stats of nanosecond handling times, keys:\n * `:min` - Minimum handling time\n * `:max` - Maximum handling time\n * `:mean` - Arithmetic mean handling time\n * `:mad` - Mean absolute deviation of handling time (measure of dispersion)\n * `:var` - Variance of handling time (measure of dispersion)\n * `:p50` - 50th percentile of handling time (50% of times \x3c\x3d this)\n * `:p90` - 90th percentile of handling time (90% of times \x3c\x3d this)\n * `:p99` - 99th percentile of handling time\n * `:last` - Most recent handling time\n * ...\n * \n * `:counts` - Integer counts for handler outcomes, keys (chronologically):\n * \n * `:dropped` - Noop handler calls due to stopped handler\n * `:back-pressure` - Handler calls that experienced (async) back-pressure\n * (possible noop, depending on back-pressure mode)\n * \n * `:sampled` - Noop handler calls due to sample rate\n * `:filtered` - Noop handler calls due to kind/ns/id/level/when filtering\n * `:rate-limited` - Noop handler calls due to rate limit\n * `:disallowed` - Noop handler calls due to sampling/filtering/rate-limiting\n * `:allowed` - Other handler calls (no sampling/filtering/rate-limiting)\n * \n * `:suppressed` - Noop handler calls due to nil transform (xfn) result\n * `:handled` - Handler calls that completed successfully\n * `:errors` - Handler calls that threw an error\n * \n * Note that for performance reasons returned counts are not mutually atomic,\n * e.g. `:sampled` count may be incremented before `:disallowed` count is.\n * \n * Useful for understanding/debugging how your handlers behave in practice,\n * especially when they\x27re under stress (high-volumes, etc.).\n * \n * Handler stats are tracked from the time each handler is last registered\n * (e.g. with an `add-handler!` call).\n */\ntaoensso.telemere.get_handlers_stats \x3d (function taoensso$telemere$get_handlers_stats(){\nreturn taoensso.encore.signals.get_handlers_stats(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n\n/**\n * Sets call kind filter based on given `kind-filter` spec.\n * `kind-filter` may be:\n * \n * - A regex pattern of kind/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_kind_filter_BANG_ \x3d (function taoensso$telemere$set_kind_filter_BANG_(kind_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__51870__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__51870__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),kind_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call namespace filter based on given `ns-filter` spec.\n * `ns-filter` may be:\n * \n * - A namespace.\n * - A regex pattern of namespaces/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_ns_filter_BANG_ \x3d (function taoensso$telemere$set_ns_filter_BANG_(ns_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__51873__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__51873__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),ns_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call id filter based on given `id-filter` spec.\n * `id-filter` may be:\n * \n * - A regex pattern of id/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_id_filter_BANG_ \x3d (function taoensso$telemere$set_id_filter_BANG_(id_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__51876__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__51876__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),id_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets minimum call level based on given `min-level` spec.\n * `min-level` may be:\n * \n * - nil (\x3d\x3e no minimum level).\n * - A level keyword (see `level-aliases` value for details).\n * - An integer (see `level-aliases` value for details).\n * - (Advanced) [[nf-filter min-level] ...] vector.\n * \n * If non-nil `kind` is provided, then the given minimum level will\n * apply only for that call kind.\n * \n * If `ns-filter` is provided, then the given minimum level will\n * apply only for the namespace/s that match (see `set-ns-filter!`).\n * Order matters if \x3e1 configured ns filter can match an ns! First\n * match wins, see `get-filters` or `get-min-levels` to view/debug\n * (left-\x3eright) match order.\n * \n * Examples:\n * (set-min-level! nil) ; Disable minimum level\n * (set-min-level! :info) ; Set `:info` as minimum level\n * (set-min-level! 100) ; Set 100 as minimum level\n * \n * (set-min-level! nil *ns* :info) ; Set for this ns only\n * (set-min-level! nil [[\x22my.ns\x22 :debug] [\x22* :info]]) ; Advanced\n */\ntaoensso.telemere.set_min_level_BANG_ \x3d (function taoensso$telemere$set_min_level_BANG_(var_args){\nvar G__54307 \x3d arguments.length;\nswitch (G__54307) {\ncase 1:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(null,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(kind,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,ns_filter,min_level){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old_sf__51882__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old_sf__51882__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803),(function (old_ml__51883__auto__){\nreturn taoensso.encore.signals.update_min_level(old_ml__51883__auto__,kind,ns_filter,min_level);\n})], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n\n\n/**\n * Registers given signal handler and returns\n * {\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * now registered. If an old handler already existed under the same id, stop it.\n * \n * `handler-fn` should be a fn of exactly 2 arities:\n * \n * [signal] ; Single argument\n * Called asynchronously or synchronously (depending on dispatch options)\n * to do something useful with the given signal.\n * \n * Example actions:\n * Save data to disk or db, `tap\x3e`, log, `put!` to an appropriate\n * `core.async` channel, filter, aggregate, use for a realtime analytics\n * dashboard, examine for outliers or unexpected data, etc.\n * \n * [] ; No arguments\n * Called exactly once when stopping handler to provide an opportunity\n * for handler to flush buffers, close files, etc. May just noop.\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See `help:handler-dispatch-options` for handler filters, etc.\n */\ntaoensso.telemere.add_handler_BANG_ \x3d (function taoensso$telemere$add_handler_BANG_(var_args){\nvar G__54309 \x3d arguments.length;\nswitch (G__54309) {\ncase 2:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (handler_id,handler_fn){\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(handler_id,handler_fn,null);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (handler_id,handler_fn,dispatch_opts){\nvar removed_handler__51892__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__51893__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__51894__auto__){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5(m__51894__auto__,handler_id,handler_fn,taoensso.telemere.default_handler_dispatch_opts,dispatch_opts);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__51892__auto__)){\n(removed_handler__51892__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__51892__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__51892__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__51893__auto__);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Stops and deregisters signal handler with given id, and returns\n * ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * still registered.\n */\ntaoensso.telemere.remove_handler_BANG_ \x3d (function taoensso$telemere$remove_handler_BANG_(handler_id){\nvar removed_handler__51896__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__51897__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__51898__auto__){\nreturn taoensso.encore.signals.remove_handler(m__51898__auto__,handler_id);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__51896__auto__)){\n(removed_handler__51896__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__51896__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__51896__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__51897__auto__);\n});\n\n/**\n * Stops registered signal handlers in parallel by calling each\n * handler-fn with no arguments. This gives each handler the opportunity\n * to flush buffers, close files, etc.\n * \n * Each handler will immediately stop accepting new signals, nooping if called.\n * \n * Blocks to return ?{\x3chandler-id\x3e {:keys [okay error]}}, honouring each\n * handler\x27s `:drain-msecs` value (see `help:handler-dispatch-options`).\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n */\ntaoensso.telemere.stop_handlers_BANG_ \x3d (function taoensso$telemere$stop_handlers_BANG_(){\nreturn taoensso.encore.signals.stop_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Optional context (state) attached to all signals.\n * Value may be any type, but is usually nil or a map. Default (root) value is nil.\n * \n * Useful for dynamically attaching arbitrary app-level state to signals.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Tips:\n * - Value may be (or may contain) an atom if you want mutable semantics.\n * - Value may be of form {\x3cscope-id\x3e \x3cdata\x3e} for custom scoping, etc.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_ctx_STAR_ \x3d null;\n\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.telemere.set_ctx_BANG_ \x3d (function taoensso$telemere$set_ctx_BANG_(root_ctx){\nreturn (taoensso.telemere._STAR_ctx_STAR_ \x3d root_ctx);\n});\n\nvar ret__5804__auto___54331 \x3d (function (){\n/**\n * Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx \x3d (function taoensso$telemere$with_ctx(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___54332 \x3d arguments.length;\nvar i__5750__auto___54333 \x3d (0);\nwhile(true){\nif((i__5750__auto___54333 \x3c len__5749__auto___54332)){\nargs__5755__auto__.push((arguments[i__5750__auto___54333]));\n\nvar G__54334 \x3d (i__5750__auto___54333 + (1));\ni__5750__auto___54333 \x3d G__54334;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,ctx,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,ctx,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx.cljs$lang$applyTo \x3d (function (seq54310){\nvar G__54311 \x3d cljs.core.first(seq54310);\nvar seq54310__$1 \x3d cljs.core.next(seq54310);\nvar G__54312 \x3d cljs.core.first(seq54310__$1);\nvar seq54310__$2 \x3d cljs.core.next(seq54310__$1);\nvar G__54313 \x3d cljs.core.first(seq54310__$2);\nvar seq54310__$3 \x3d cljs.core.next(seq54310__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54311,G__54312,G__54313,seq54310__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___54335 \x3d (function (){\n/**\n * Evaluates given body with updated `*ctx*` value.\n * \n * `update-map-or-fn` may be:\n * - A map to merge with current `*ctx*` value, or\n * - A unary fn to apply to current `*ctx*` value\n * \n * See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx_PLUS_ \x3d (function taoensso$telemere$with_ctx_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___54336 \x3d arguments.length;\nvar i__5750__auto___54337 \x3d (0);\nwhile(true){\nif((i__5750__auto___54337 \x3c len__5749__auto___54336)){\nargs__5755__auto__.push((arguments[i__5750__auto___54337]));\n\nvar G__54338 \x3d (i__5750__auto___54337 + (1));\ni__5750__auto___54337 \x3d G__54338;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,update_map_or_fn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,update_map_or_fn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$applyTo \x3d (function (seq54314){\nvar G__54315 \x3d cljs.core.first(seq54314);\nvar seq54314__$1 \x3d cljs.core.next(seq54314);\nvar G__54316 \x3d cljs.core.first(seq54314__$1);\nvar seq54314__$2 \x3d cljs.core.next(seq54314__$1);\nvar G__54317 \x3d cljs.core.first(seq54314__$2);\nvar seq54314__$3 \x3d cljs.core.next(seq54314__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54315,G__54316,G__54317,seq54314__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$macro \x3d true);\n\n\n/**\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply to all signals.\n * When transform returns nil, skips all handlers. Default (root) value is nil.\n * \n * Useful for dynamically filtering and/or modifying signals by signal data/content/etc.\n * \n * Re/bind dynamic value using `with-xfn`, `with-xfn+`, `binding`.\n * Modify root (default) value using `set-xfn!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Examples:\n * \n * ;; Filter all signals by returning nil:\n * (t/set-xfn! (fn [signal] (when-not (:skip-me? signal) signal)))\n * \n * ;; Remove key/s from all signals:\n * (t/set-xfn! (fn [signal] (dissoc signal :unwanted-key1 ...)))\n * \n * ;; Remove key/s from signals to specific handler:\n * (t/add-handler! ::my-handler my-handler\n * {:xfn (fn [signal] (dissoc signal :unwanted-key1 ...))})\n * \n * ;; Dynamic transform for specific signal/s:\n * (binding [*xfn* (fn [signal] ...)]\n * (...))\n * \n * Tips:\n * - Compose multiple transform fns together with `comp-xfn`.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_xfn_STAR_ \x3d null;\n\n/**\n * Set `*xfn*` var\x27s default (root) value. See `*xfn*` for details.\n */\ntaoensso.telemere.set_xfn_BANG_ \x3d (function taoensso$telemere$set_xfn_BANG_(_QMARK_root_xfn){\nreturn (taoensso.telemere._STAR_xfn_STAR_ \x3d _QMARK_root_xfn);\n});\n\nvar ret__5804__auto___54339 \x3d (function (){\n/**\n * Evaluates given body with given `*xfn*` value, see `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn \x3d (function taoensso$telemere$with_xfn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___54340 \x3d arguments.length;\nvar i__5750__auto___54341 \x3d (0);\nwhile(true){\nif((i__5750__auto___54341 \x3c len__5749__auto___54340)){\nargs__5755__auto__.push((arguments[i__5750__auto___54341]));\n\nvar G__54342 \x3d (i__5750__auto___54341 + (1));\ni__5750__auto___54341 \x3d G__54342;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,_QMARK_xfn,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn.cljs$lang$applyTo \x3d (function (seq54318){\nvar G__54319 \x3d cljs.core.first(seq54318);\nvar seq54318__$1 \x3d cljs.core.next(seq54318);\nvar G__54320 \x3d cljs.core.first(seq54318__$1);\nvar seq54318__$2 \x3d cljs.core.next(seq54318__$1);\nvar G__54321 \x3d cljs.core.first(seq54318__$2);\nvar seq54318__$3 \x3d cljs.core.next(seq54318__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54319,G__54320,G__54321,seq54318__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___54343 \x3d (function (){\n/**\n * Evaluates given body with composed `*xfn*` value.\n * Same as (with-xfn (comp-xfn *xfn* ?xfn) ...).\n * See `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn_PLUS_ \x3d (function taoensso$telemere$with_xfn_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___54344 \x3d arguments.length;\nvar i__5750__auto___54345 \x3d (0);\nwhile(true){\nif((i__5750__auto___54345 \x3c len__5749__auto___54344)){\nargs__5755__auto__.push((arguments[i__5750__auto___54345]));\n\nvar G__54346 \x3d (i__5750__auto___54345 + (1));\ni__5750__auto___54345 \x3d G__54346;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22comp-xfn\x22,\x22taoensso.encore.signals/comp-xfn\x22,-1050364423,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,_QMARK_xfn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$applyTo \x3d (function (seq54322){\nvar G__54323 \x3d cljs.core.first(seq54322);\nvar seq54322__$1 \x3d cljs.core.next(seq54322);\nvar G__54324 \x3d cljs.core.first(seq54322__$1);\nvar seq54322__$2 \x3d cljs.core.next(seq54322__$1);\nvar G__54325 \x3d cljs.core.first(seq54322__$2);\nvar seq54322__$3 \x3d cljs.core.next(seq54322__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54323,G__54324,G__54325,seq54322__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$macro \x3d true);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.telemere.chance \x3d taoensso.encore.chance;\n\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.telemere.rate_limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Single system newline\n */\ntaoensso.telemere.newline \x3d \x22\\n\x22;\n\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.telemere.comp_xfn \x3d taoensso.encore.signals.comp_xfn;\n\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.msg_splice \x3d taoensso.telemere.impl.msg_splice;\n\ntaoensso.telemere.msg_skip \x3d taoensso.telemere.impl.msg_skip;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.clean_signal_fn \x3d taoensso.telemere.utils.clean_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.format_signal_fn \x3d taoensso.telemere.utils.format_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.pr_signal_fn \x3d taoensso.telemere.utils.pr_signal_fn;\n\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.error_signal_QMARK_ \x3d taoensso.telemere.utils.error_signal_QMARK_;\n/**\n * Call a Telemere signal creator to conditionally create a signal at that callsite.\n * \n * When filtering conditions are met [4], the call creates a Telemere signal [3]\n * and dispatches it to registered handlers for processing (e.g. writing to\n * console/file/queue/db, etc.).\n * \n * Telemere doesn\x27t make a hard distinction between different kinds of signals\n * (log, event, error, etc.) - they\x27re all just plain Clojure/Script maps with\n * various keys:\n * \n * - All signal creators offer the same options [2], and\n * - All signal kinds can contain the same content [3]\n * \n * Creators vary only in in their default `:kind` value and call APIs (expected\n * args and return values), making them more/less convenient for certain use cases:\n * \n * `log!` ------------- ?level + msg \x3d\x3e nil\n * `event!` ----------- id + ?level \x3d\x3e nil\n * `trace!` ----------- ?id + run \x3d\x3e run result (value or throw)\n * `spy!` ------------- ?level + run \x3d\x3e run result (value or throw)\n * `error!` ----------- ?id + error \x3d\x3e given error\n * `catch-\x3eerror!` ---- ?id + run \x3d\x3e run value or ?catch-val\n * `uncaught-\x3eerror!` - ?id \x3d\x3e nil\n * `signal!` ---------- opts \x3d\x3e allowed? / run result (value or throw)\n * \n * - `log!` and `event!` are both good default/general-purpose signal creators.\n * - `log!` emphasizes messages, while `event!` emphasizes ids.\n * - `signal!` is the generic creator, and is used by all the others.\n * \n * ----------------------------------------------------------------------\n * [2] See `help:signal-options` - {:keys [kind level id data ...]}\n * [3] See `help:signal-content` - {:keys [kind level id data ...]}\n * [4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)\n */\ntaoensso.telemere.help_COLON_signal_creators \x3d \x22See docstring\x22;\n\n/**\n * Signal options are provided as a map with COMPILE-TIME keys.\n * All options are available for all signal creator calls:\n * \n * `:inst` -------- Platform instant [1] when signal was created, \u2208 #{nil :auto \x3c[1]\x3e}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy \x3capp-val\x3e ...}\n * `:id` ---------- ?id of signal (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- ?id of signal instance (unique to each signal created at callsite, contrast with `:id`)\n * Defaults to `:auto` for tracing signals, and nil otherwise\n * \n * `:msg` --------- Arb app-level ?message to incl. in signal: str or vec of strs to join (with `\\space`), may be a delay\n * `:data` -------- Arb app-level ?data to incl. in signal: usu. a map\n * `:error` ------- Arb app-level ?error to incl. in signal: platform error [2]\n * \n * `:run` --------- ?form to execute UNCONDITIONALLY; will incl. `:run-val` in signal\n * `:do` ---------- ?form to execute conditionally (iff signal allowed), before establishing `:let` ?binding\n * `:let` --------- ?bindings to establish conditionally (iff signal allowed), BEFORE evaluating `:data` and `:msg` (useful!)\n * \n * `:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info\n * `:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root signal tracing info\n * `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal, as per `with-ctx`\n * `:ctx+` -------- Custom ?val to update auto (dynamic `*ctx*`) in signal, as per `with-ctx+`\n * \n * `:ns` ---------- Custom ?str namespace to override auto signal callsite info\n * `:coords` ------ Custom ?[line column] to override auto signal callsite info\n * \n * `:elidable?` --- Should signal be subject to compile-time elision? (default true)\n * `:allow?` ------ Custom override for usual runtime filtering (true \x3d\x3e ALWAYS create signal)\n * `:trace?` ------ Should tracing be enabled for `:run` form?\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for random signal sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * `:when` -------- Arb ?form; when present, form must return truthy to allow signal\n * `:limit` ------- Rate limit ?spec given to `taoensso.telemere/rate-limiter`, see its docstring for details\n * `:limit-by` ---- When present, rate limits will be enforced independently for each value (any Clojure value!)\n * `:xfn` --------- Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn`\n * `:xfn+` -------- Optional extra transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn+`\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs to incl. in signal. Typically NOT included in\n * handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n */\ntaoensso.telemere.help_COLON_signal_options \x3d \x22See docstring\x22;\n\n/**\n * Telemere signals are maps with {:keys [inst id ns level data msg_ ...]},\n * though they can be modified by call and/or handler transform (xfns).\n * \n * Default signal keys:\n * \n * `:schema` ------ Int version of signal schema (current: 1)\n * `:inst` -------- Platform instant [1] when signal was created, monotonicity depends on system clock\n * `:ns` ---------- ?str namespace of signal callsite\n * `:coords` ------ ?[line column] of signal callsite\n * \n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy :slf4j :tools-logging \x3capp-val\x3e ...}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:id` ---------- Signal callsite ?id (usu. keyword) (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- Signal instance ?id (usu. string) (unique to each signal created at callsite when tracing, contrast with `:id`)\n * \n * `:msg_` -------- Arb app-level message ?str given to signal creator - may be a delay, always use `force` to unwrap!\n * `:data` -------- Arb app-level data ?val (usu. a map) given to signal creator\n * `:error` ------- Arb app-level platform ?error [2] given to signal creator\n * \n * `:run-form` ---- Unevaluated ?form given to signal creator as `:run`\n * `:run-val` ----- Successful return ?val of `:run` ?form\n * `:run-nsecs` --- ?int nanosecs runtime of `:run` ?form\n * `:end-inst` ---- Platform ?instant [1] when `:run` ?form completed\n * \n * `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing\n * `:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing\n * `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created\n * \n * `:host` -------- (Clj only) {:keys [name ip]} info for network host\n * `:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for combined call AND handler sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included\n * in handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n */\ntaoensso.telemere.help_COLON_signal_content \x3d \x22See docstring\x22;\n\n/**\n * Telemere supports extensive environmental config via JVM properties,\n * environment variables, or classpath resources.\n * \n * Environmental filter config includes:\n * \n * 1. Minimum level (see signal `:level`):\n * a. JVM property: `taoensso.telemere.rt-min-level`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_MIN_LEVEL`\n * c. Classpath resource: `taoensso.telemere.rt-min-level`\n * \n * 2. Namespace filter (see signal `:ns`):\n * a. JVM property: `taoensso.telemere.rt-ns-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_NS_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-ns-filter`\n * \n * 3. Id filter (see signal `:id`):\n * a. JVM property: `taoensso.telemere.rt-id-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_ID_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-id-filter`\n * \n * 4. Kind filter (signal `:kind`):\n * a. JVM property: `taoensso.telemere.rt-kind-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_KIND_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-kind-filter`\n * \n * Config values are parsed as edn, examples:\n * \n * `taoensso.telemere.rt-min-level` \x3d\x3e \x22:info\x22\n * `TAOENSSO_TELEMERE_RT_NS_FILTER` \x3d\x3e \x22{:disallow \\\x22taoensso.*\\\x22}\x22\n * `taoensso.telemere.rt-id-filter.cljs` \x3d\x3e \x22#{:my-id1 :my-id2}\x22\n * `TAOENSSO_TELEMERE_RT_KIND_FILTER_CLJ` \x3d\x3e \x22nil\x22\n * \n * Runtime vs compile-time filters\n * \n * The above filters (1..4) all apply at RUNTIME (\x22rt\x22).\n * This is typically what you want, since it allows you to freely adjust filtering\n * (making it less OR MORE permissive) through later API calls like `set-min-level!`.\n * \n * As an advanced option, you can instead/additionally ELIDE (entirely omit) filtered\n * callsites at COMPILE-TIME (\x22ct\x22) by replacing \x22rt\x22-\x3e\x22ct\x22 / \x22RT\x22-\x3e\x22CT\x22 in the config\n * ids above. Compile-time filters CANNOT be made MORE permissive at runtime.\n * \n * Tips:\n * \n * - The above config ids will affect both Clj AND Cljs.\n * For platform-specific filters, use\n * \x22.clj\x22 / \x22_CLJ\x22 or\n * \x22.cljs\x22 / \x22_CLJS\x22 suffixes instead.\n * e.g. \x22taoensso.telemere.rt-min-level.cljs\x22.\n * \n * - To get the right edn syntax, first set your runtime filters using the\n * standard utils (`set-min-level!`, etc.). Then call `get-filters` and\n * serialize the relevant parts to edn with `pr-str`.\n * \n * - All environmental config uses `get-env` underneath.\n * See the `get-env` docstring for more/advanced details.\n * \n * - Classpath resources are files accessible on your project\x27s\n * classpath. This usually includes files in your project\x27s\n * `resources/` dir.\n */\ntaoensso.telemere.help_COLON_environmental_config \x3d \x22See docstring\x22;\n/**\n * Experimental, subject to change. Feedback welcome!\n * (fn [root?]) used to generate signal `:uid` values (unique instance ids)\n * when tracing.\n * \n * Relevant only when `otel-tracing?` is false.\n * If `otel-tracing?` is true, uids are instead generated by `*otel-tracer*`.\n * \n * `root?` argument is true iff signal is a top-level trace (i.e. form being\n * traced is unnested \x3d has no parent form). Root-level uids typically need\n * more entropy and so are usually longer (e.g. 32 vs 16 hex chars).\n * \n * Override default by setting one of the following:\n * 1. JVM property: `taoensso.telemere.uid-kind`\n * 2. Env variable: `TAOENSSO_TELEMERE_UID_KIND`\n * 3. Classpath resource: `taoensso.telemere.uid-kind`\n * \n * Possible (compile-time) values include:\n * `:uuid` - UUID string (Cljs) or `java.util.UUID` (Clj)\n * `:uuid-str` - UUID string (36/36 chars)\n * `:nano/secure` - nano-style string (21/10 chars) w/ strong RNG\n * `:nano/insecure` - nano-style string (21/10 chars) w/ fast RNG (default)\n * `:hex/insecure` - hex-style string (32/16 chars) w/ strong RNG\n * `:hex/secure` - hex-style string (32/16 chars) w/ fast RNG\n */\ntaoensso.telemere._STAR_uid_fn_STAR_ \x3d taoensso.telemere.utils.parse_uid_fn(taoensso.telemere.impl.uid_kind);\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n * Normally called automatically (internally) by signal creators, this util\n * is provided publicly since it\x27s also handy for manually re/dispatching\n * custom/modified signals, etc.:\n * \n * (let [original-signal (with-signal :trap (event! ::my-id1))\n * modified-signal (assoc original-signal :id ::my-id2)]\n * (dispatch-signal! modified-signal))\n */\ntaoensso.telemere.dispatch_signal_BANG_ \x3d (function taoensso$telemere$dispatch_signal_BANG_(signal){\nvar temp__5825__auto__ \x3d taoensso.telemere.impl.wrap_signal(signal);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar wrapped_signal \x3d temp__5825__auto__;\nreturn taoensso.telemere.impl.dispatch_signal_BANG_(wrapped_signal);\n} else {\nreturn null;\n}\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.handler_COLON_console \x3d taoensso.telemere.consoles.handler_COLON_console;\n\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.handler_COLON_console_raw \x3d taoensso.telemere.consoles.handler_COLON_console_raw;\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.__on_init !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.telemere.__on_init \x3d (function (){\n(taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d (function (p__54326){\nvar map__54327 \x3d p__54326;\nvar map__54327__$1 \x3d cljs.core.__destructure_map(map__54327);\nvar m \x3d map__54327__$1;\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54327__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-error\x22,\x22taoensso.encore.signals/handler-error\x22,1772750988);\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)),null,\x22Error executing wrapped handler fn\x22,error,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\n(taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d (function (data){\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-back-pressure\x22,\x22taoensso.encore.signals/handler-back-pressure\x22,699164801);\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,data,null,\x22Back pressure on wrapped handler fn\x22,null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\ntaoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(\x22default\x22,\x22console\x22,\x22default/console\x22,-1389954628),(taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.handler_COLON_console.call(null)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601),null], null));\n\nreturn null;\n})()\n\n;\n}\n"); -SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n * @interface\n */\nintemporal.store.TaskStore \x3d function(){};\n\nvar intemporal$store$TaskStore$list_tasks$dyn_54381 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.list_tasks[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.list_tasks[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.list-tasks\x22,this$);\n}\n}\n});\n/**\n * Lists all tasks\n */\nintemporal.store.list_tasks \x3d (function intemporal$store$list_tasks(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$list_tasks$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$list_tasks$arity$1(this$);\n} else {\nreturn intemporal$store$TaskStore$list_tasks$dyn_54381(this$);\n}\n});\n\nvar intemporal$store$TaskStore$task_LT__panic$dyn_54382 \x3d (function (this$,task_id,error){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.task_LT__panic[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,error) : m__5374__auto__.call(null,this$,task_id,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.task_LT__panic[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,error) : m__5372__auto__.call(null,this$,task_id,error));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.task\x3c-panic\x22,this$);\n}\n}\n});\n/**\n * Terminates the task via panic; events should not be stored\n */\nintemporal.store.task_LT__panic \x3d (function intemporal$store$task_LT__panic(this$,task_id,error){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$task_LT__panic$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$task_LT__panic$arity$3(this$,task_id,error);\n} else {\nreturn intemporal$store$TaskStore$task_LT__panic$dyn_54382(this$,task_id,error);\n}\n});\n\nvar intemporal$store$TaskStore$task_LT__event$dyn_54383 \x3d (function (this$,task_id,event_descr){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.task_LT__event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event_descr) : m__5374__auto__.call(null,this$,task_id,event_descr));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.task_LT__event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event_descr) : m__5372__auto__.call(null,this$,task_id,event_descr));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.task\x3c-event\x22,this$);\n}\n}\n});\n/**\n * Transitions the task. The task should be dequeued beforehand. Returns the event.\n * `event-descr` is one of:\n * `{:sym \x27ns/f :args [1]}`\n * `{:sym \x27ns/f :result :ok}`\n * `{:sym \x27ns/f :error \x3csome error\x3e}`\n * \n */\nintemporal.store.task_LT__event \x3d (function intemporal$store$task_LT__event(this$,task_id,event_descr){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$task_LT__event$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$task_LT__event$arity$3(this$,task_id,event_descr);\n} else {\nreturn intemporal$store$TaskStore$task_LT__event$dyn_54383(this$,task_id,event_descr);\n}\n});\n\nvar intemporal$store$TaskStore$watch_task$dyn_54384 \x3d (function (this$,id,callback){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.watch_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,callback) : m__5374__auto__.call(null,this$,id,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.watch_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,callback) : m__5372__auto__.call(null,this$,id,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.watch-task\x22,this$);\n}\n}\n});\n/**\n * Observes state changes, calling `callback` for any task that matches `predicate`.\n */\nintemporal.store.watch_task \x3d (function intemporal$store$watch_task(this$,id,callback){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$watch_task$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$watch_task$arity$3(this$,id,callback);\n} else {\nreturn intemporal$store$TaskStore$watch_task$dyn_54384(this$,id,callback);\n}\n});\n\nvar intemporal$store$TaskStore$await_task$dyn_54385 \x3d (function() {\nvar G__54386 \x3d null;\nvar G__54386__2 \x3d (function (this$,id){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.await_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5374__auto__.call(null,this$,id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.await_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5372__auto__.call(null,this$,id));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.await-task\x22,this$);\n}\n}\n});\nvar G__54386__3 \x3d (function (this$,id,opts){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.await_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,opts) : m__5374__auto__.call(null,this$,id,opts));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.await_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,id,opts) : m__5372__auto__.call(null,this$,id,opts));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.await-task\x22,this$);\n}\n}\n});\nG__54386 \x3d function(this$,id,opts){\nswitch(arguments.length){\ncase 2:\nreturn G__54386__2.call(this,this$,id);\ncase 3:\nreturn G__54386__3.call(this,this$,id,opts);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__54386.cljs$core$IFn$_invoke$arity$2 \x3d G__54386__2;\nG__54386.cljs$core$IFn$_invoke$arity$3 \x3d G__54386__3;\nreturn G__54386;\n})()\n;\n/**\n * Waits for workflow to finish. Returns a deref\x27able value. Can throw.\n * Opts include\n * - `timeout-ms`: timeout for task await\n */\nintemporal.store.await_task \x3d (function intemporal$store$await_task(var_args){\nvar G__54348 \x3d arguments.length;\nswitch (G__54348) {\ncase 2:\nreturn intemporal.store.await_task.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.store.await_task.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.store.await_task.cljs$core$IFn$_invoke$arity$2 \x3d (function (this$,id){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$await_task$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$await_task$arity$2(this$,id);\n} else {\nreturn intemporal$store$TaskStore$await_task$dyn_54385(this$,id);\n}\n}));\n\n(intemporal.store.await_task.cljs$core$IFn$_invoke$arity$3 \x3d (function (this$,id,opts){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$await_task$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$await_task$arity$3(this$,id,opts);\n} else {\nreturn intemporal$store$TaskStore$await_task$dyn_54385(this$,id,opts);\n}\n}));\n\n(intemporal.store.await_task.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar intemporal$store$TaskStore$find_task$dyn_54389 \x3d (function (this$,id){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.find_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5374__auto__.call(null,this$,id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.find_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,id) : m__5372__auto__.call(null,this$,id));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.find-task\x22,this$);\n}\n}\n});\n/**\n * Finds the task on the db by id\n */\nintemporal.store.find_task \x3d (function intemporal$store$find_task(this$,id){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$find_task$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$find_task$arity$2(this$,id);\n} else {\nreturn intemporal$store$TaskStore$find_task$dyn_54389(this$,id);\n}\n});\n\nvar intemporal$store$TaskStore$reenqueue_pending_tasks$dyn_54391 \x3d (function (this$,callback){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.reenqueue_pending_tasks[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,callback) : m__5374__auto__.call(null,this$,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.reenqueue_pending_tasks[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,callback) : m__5372__auto__.call(null,this$,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.reenqueue-pending-tasks\x22,this$);\n}\n}\n});\n/**\n * Marks all pending tasks belonging to the store\x27s `owner` as `new`\n */\nintemporal.store.reenqueue_pending_tasks \x3d (function intemporal$store$reenqueue_pending_tasks(this$,callback){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2(this$,callback);\n} else {\nreturn intemporal$store$TaskStore$reenqueue_pending_tasks$dyn_54391(this$,callback);\n}\n});\n\nvar intemporal$store$TaskStore$release_pending_tasks$dyn_54392 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.release_pending_tasks[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.release_pending_tasks[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.release-pending-tasks\x22,this$);\n}\n}\n});\n/**\n * Disowns all tasks that are pending\n */\nintemporal.store.release_pending_tasks \x3d (function intemporal$store$release_pending_tasks(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$release_pending_tasks$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$release_pending_tasks$arity$1(this$);\n} else {\nreturn intemporal$store$TaskStore$release_pending_tasks$dyn_54392(this$);\n}\n});\n\nvar intemporal$store$TaskStore$enqueue_task$dyn_54393 \x3d (function (this$,task){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.enqueue_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,task) : m__5374__auto__.call(null,this$,task));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.enqueue_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,task) : m__5372__auto__.call(null,this$,task));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.enqueue-task\x22,this$);\n}\n}\n});\n/**\n * Atomically enqueues a protocol, workflow or activity task execution\n */\nintemporal.store.enqueue_task \x3d (function intemporal$store$enqueue_task(this$,task){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$enqueue_task$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$enqueue_task$arity$2(this$,task);\n} else {\nreturn intemporal$store$TaskStore$enqueue_task$dyn_54393(this$,task);\n}\n});\n\nvar intemporal$store$TaskStore$dequeue_task$dyn_54394 \x3d (function() {\nvar G__54395 \x3d null;\nvar G__54395__1 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.dequeue_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.dequeue_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.dequeue-task\x22,this$);\n}\n}\n});\nvar G__54395__2 \x3d (function (this$,opts){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.dequeue_task[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,opts) : m__5374__auto__.call(null,this$,opts));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.dequeue_task[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,opts) : m__5372__auto__.call(null,this$,opts));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.dequeue-task\x22,this$);\n}\n}\n});\nG__54395 \x3d function(this$,opts){\nswitch(arguments.length){\ncase 1:\nreturn G__54395__1.call(this,this$);\ncase 2:\nreturn G__54395__2.call(this,this$,opts);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__54395.cljs$core$IFn$_invoke$arity$1 \x3d G__54395__1;\nG__54395.cljs$core$IFn$_invoke$arity$2 \x3d G__54395__2;\nreturn G__54395;\n})()\n;\n/**\n * Atomically dequeues some workflow, protocol or activity task execution.\n * For deterministic purposes, should dequeue the oldest task first.\n * If the task was deserialized, its `fvar` attribute must be a `fn`\n * Opts:\n * * `lease-ms`- duration of lease for dequeue. After lease expires, the task is eligible for dequeueing again\n */\nintemporal.store.dequeue_task \x3d (function intemporal$store$dequeue_task(var_args){\nvar G__54350 \x3d arguments.length;\nswitch (G__54350) {\ncase 1:\nreturn intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$1 \x3d (function (this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$dequeue_task$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$dequeue_task$arity$1(this$);\n} else {\nreturn intemporal$store$TaskStore$dequeue_task$dyn_54394(this$);\n}\n}));\n\n(intemporal.store.dequeue_task.cljs$core$IFn$_invoke$arity$2 \x3d (function (this$,opts){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$dequeue_task$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$dequeue_task$arity$2(this$,opts);\n} else {\nreturn intemporal$store$TaskStore$dequeue_task$dyn_54394(this$,opts);\n}\n}));\n\n(intemporal.store.dequeue_task.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar intemporal$store$TaskStore$clear_tasks$dyn_54399 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.clear_tasks[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.clear_tasks[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22TaskStore.clear-tasks\x22,this$);\n}\n}\n});\n/**\n * Deletes all tasks\n */\nintemporal.store.clear_tasks \x3d (function intemporal$store$clear_tasks(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$TaskStore$clear_tasks$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$TaskStore$clear_tasks$arity$1(this$);\n} else {\nreturn intemporal$store$TaskStore$clear_tasks$dyn_54399(this$);\n}\n});\n\n\n/**\n * @interface\n */\nintemporal.store.HistoryStore \x3d function(){};\n\nvar intemporal$store$HistoryStore$list_events$dyn_54400 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.list_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.list_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22HistoryStore.list-events\x22,this$);\n}\n}\n});\n/**\n * Lists all events\n */\nintemporal.store.list_events \x3d (function intemporal$store$list_events(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$HistoryStore$list_events$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$HistoryStore$list_events$arity$1(this$);\n} else {\nreturn intemporal$store$HistoryStore$list_events$dyn_54400(this$);\n}\n});\n\nvar intemporal$store$HistoryStore$save_event$dyn_54401 \x3d (function (this$,task_id,event){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.save_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event) : m__5374__auto__.call(null,this$,task_id,event));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.save_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,task_id,event) : m__5372__auto__.call(null,this$,task_id,event));\n} else {\nthrow cljs.core.missing_protocol(\x22HistoryStore.save-event\x22,this$);\n}\n}\n});\n/**\n * Saves the event for the given task id. Returns the saved event\n */\nintemporal.store.save_event \x3d (function intemporal$store$save_event(this$,task_id,event){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$HistoryStore$save_event$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$HistoryStore$save_event$arity$3(this$,task_id,event);\n} else {\nreturn intemporal$store$HistoryStore$save_event$dyn_54401(this$,task_id,event);\n}\n});\n\nvar intemporal$store$HistoryStore$all_events$dyn_54402 \x3d (function (this$,task_id){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.all_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,task_id) : m__5374__auto__.call(null,this$,task_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.all_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,task_id) : m__5372__auto__.call(null,this$,task_id));\n} else {\nthrow cljs.core.missing_protocol(\x22HistoryStore.all-events\x22,this$);\n}\n}\n});\n/**\n * Returns all the events for a given task id\n */\nintemporal.store.all_events \x3d (function intemporal$store$all_events(this$,task_id){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$HistoryStore$all_events$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$HistoryStore$all_events$arity$2(this$,task_id);\n} else {\nreturn intemporal$store$HistoryStore$all_events$dyn_54402(this$,task_id);\n}\n});\n\nvar intemporal$store$HistoryStore$clear_events$dyn_54403 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.clear_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.clear_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22HistoryStore.clear-events\x22,this$);\n}\n}\n});\n/**\n * Deletes all events\n */\nintemporal.store.clear_events \x3d (function intemporal$store$clear_events(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$HistoryStore$clear_events$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$store$HistoryStore$clear_events$arity$1(this$);\n} else {\nreturn intemporal$store$HistoryStore$clear_events$dyn_54403(this$);\n}\n});\n\n\n/**\n * @interface\n */\nintemporal.store.InternalVarStore \x3d function(){};\n\nvar intemporal$store$InternalVarStore$register$dyn_54406 \x3d (function (this$,sym,var$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.register[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(this$,sym,var$) : m__5374__auto__.call(null,this$,sym,var$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.register[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(this$,sym,var$) : m__5372__auto__.call(null,this$,sym,var$));\n} else {\nthrow cljs.core.missing_protocol(\x22InternalVarStore.register\x22,this$);\n}\n}\n});\n/**\n * Register the symbol with the var\n */\nintemporal.store.register \x3d (function intemporal$store$register(this$,sym,var$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$InternalVarStore$register$arity$3 \x3d\x3d null)))))){\nreturn this$.intemporal$store$InternalVarStore$register$arity$3(this$,sym,var$);\n} else {\nreturn intemporal$store$InternalVarStore$register$dyn_54406(this$,sym,var$);\n}\n});\n\nvar intemporal$store$InternalVarStore$lookup$dyn_54407 \x3d (function (this$,sym){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.store.lookup[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,sym) : m__5374__auto__.call(null,this$,sym));\n} else {\nvar m__5372__auto__ \x3d (intemporal.store.lookup[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,sym) : m__5372__auto__.call(null,this$,sym));\n} else {\nthrow cljs.core.missing_protocol(\x22InternalVarStore.lookup\x22,this$);\n}\n}\n});\n/**\n * Finds the var for the given symbol\n */\nintemporal.store.lookup \x3d (function intemporal$store$lookup(this$,sym){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$store$InternalVarStore$lookup$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$store$InternalVarStore$lookup$arity$2(this$,sym);\n} else {\nreturn intemporal$store$InternalVarStore$lookup$dyn_54407(this$,sym);\n}\n});\n\nintemporal.store.now \x3d (function intemporal$store$now(){\nreturn (new Date()).getTime();\n});\n/**\n * Default lease time in millis - 15mins\n */\nintemporal.store.default_lease \x3d (((15) * (60)) * (1000));\nintemporal.store.sym__GT_var \x3d (function intemporal$store$sym__GT_var(store,p__54351){\nvar map__54352 \x3d p__54351;\nvar map__54352__$1 \x3d cljs.core.__destructure_map(map__54352);\nvar task \x3d map__54352__$1;\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54352__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar fvar \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54352__$1,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046));\nvar or__5025__auto__ \x3d fvar;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.store.lookup(store,sym);\n}\n});\nintemporal.store.edn_exists_QMARK_ \x3d (function intemporal$store$edn_exists_QMARK_(file){\nreturn cljs.core.seq(window.localStorage.getItem(file));\n});\nintemporal.store.read_edn \x3d (function intemporal$store$read_edn(file,readers){\nvar f \x3d window.localStorage.getItem(file);\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),readers], null),f);\n});\nintemporal.store.write_edn \x3d (function intemporal$store$write_edn(file,val){\nreturn window.localStorage.setItem(file,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val], 0)));\n});\nintemporal.store.default_owner \x3d \x22intemporal\x22;\n\n/**\n* @constructor\n * @implements {intemporal.store.InternalVarStore}\n * @implements {intemporal.store.TaskStore}\n * @implements {cljs.core.IMeta}\n * @implements {intemporal.store.HistoryStore}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.store.t_intemporal$store54363 \x3d (function (failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364){\nthis.failures \x3d failures;\nthis.maybe_fail_BANG_ \x3d maybe_fail_BANG_;\nthis.owner \x3d owner;\nthis.pcounter \x3d pcounter;\nthis.p__54360 \x3d p__54360;\nthis.vars \x3d vars;\nthis.ecounter \x3d ecounter;\nthis.update_task \x3d update_task;\nthis.file \x3d file;\nthis.readers \x3d readers;\nthis.history \x3d history;\nthis.tasks \x3d tasks;\nthis.tcounter \x3d tcounter;\nthis.counter \x3d counter;\nthis.find_task \x3d find_task;\nthis.map__54361 \x3d map__54361;\nthis.persist_BANG_ \x3d persist_BANG_;\nthis.meta54364 \x3d meta54364;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.store.t_intemporal$store54363.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_54365,meta54364__$1){\nvar self__ \x3d this;\nvar _54365__$1 \x3d this;\nreturn (new intemporal.store.t_intemporal$store54363(self__.failures,self__.maybe_fail_BANG_,self__.owner,self__.pcounter,self__.p__54360,self__.vars,self__.ecounter,self__.update_task,self__.file,self__.readers,self__.history,self__.tasks,self__.tcounter,self__.counter,self__.find_task,self__.map__54361,self__.persist_BANG_,meta54364__$1));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_54365){\nvar self__ \x3d this;\nvar _54365__$1 \x3d this;\nreturn self__.meta54364;\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$register$arity$3 \x3d (function (this$,sym,var$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.vars,cljs.core.assoc,sym,var$);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$InternalVarStore$lookup$arity$2 \x3d (function (this$,sym){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.vars),sym);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$list_events$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(self__.history)));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$save_event$arity$3 \x3d (function (this$,task_id,event){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar evt_PLUS_id \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(event,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.counter,cljs.core.inc));\n(intemporal.store.internal.validate_event_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_event_BANG_.cljs$core$IFn$_invoke$arity$1(evt_PLUS_id) : intemporal.store.internal.validate_event_BANG_.call(null,evt_PLUS_id));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.history,(function (v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,task_id,cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(v,task_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),evt_PLUS_id));\n}));\n\nreturn evt_PLUS_id;\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$all_events$arity$2 \x3d (function (this$,task_id){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.history),task_id);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$HistoryStore$clear_events$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.reset_BANG_(self__.history,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$await_task$arity$2 \x3d (function (this$,id){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.intemporal$store$TaskStore$await_task$arity$3(null,id,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),intemporal.store.default_lease], null));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$await_task$arity$3 \x3d (function (this$,id,p__54366){\nvar self__ \x3d this;\nvar map__54367 \x3d p__54366;\nvar map__54367__$1 \x3d cljs.core.__destructure_map(map__54367);\nvar opts \x3d map__54367__$1;\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54367__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar this$__$1 \x3d this;\n(self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0 ? self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0() : self__.maybe_fail_BANG_.call(null));\n\nvar task \x3d (self__.find_task.cljs$core$IFn$_invoke$arity$2 ? self__.find_task.cljs$core$IFn$_invoke$arity$2(this$__$1,id) : self__.find_task.call(null,this$__$1,id));\nvar deferred \x3d promesa.core.deferred();\nvar wrap_result \x3d (function (p__54368){\nvar map__54369 \x3d p__54368;\nvar map__54369__$1 \x3d cljs.core.__destructure_map(map__54369);\nvar task__$1 \x3d map__54369__$1;\nvar result \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54369__$1,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211));\nif(intemporal.store.internal.success_QMARK_(task__$1)){\nreturn promesa.core.resolved(result);\n} else {\nif(intemporal.store.internal.failure_QMARK_(task__$1)){\nreturn promesa.core.rejected(result);\n} else {\nreturn promesa.core.rejected(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Unknown state\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task__$1], null)));\n\n}\n}\n});\nif(intemporal.store.internal.terminal_QMARK_(task)){\nreturn wrap_result(task);\n} else {\nthis$__$1.intemporal$store$TaskStore$watch_task$arity$3(null,id,(function (task__$1){\nif(intemporal.store.internal.terminal_QMARK_(task__$1)){\npromesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(deferred,task__$1);\n\nreturn true;\n} else {\nreturn null;\n}\n}));\n\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3(deferred,timeout_ms,new cljs.core.Keyword(\x22intemporal.store\x22,\x22timeout\x22,\x22intemporal.store/timeout\x22,-112290028)),(function (resolved){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.store\x22,\x22timeout\x22,\x22intemporal.store/timeout\x22,-112290028),resolved)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Timeout waiting for task to be completed\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task], null));\n} else {\nreturn wrap_result(resolved);\n}\n}));\n}\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$watch_task$arity$3 \x3d (function (this$,id,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar k \x3d cljs.core.keyword.cljs$core$IFn$_invoke$arity$1([\x22watcher-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.pcounter,cljs.core.inc))].join(\x27\x27));\nvar watchfn \x3d (function (k__$1,atm,old,new$){\nvar xf \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$3(cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p1__54355_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(id,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54355_SHARP_));\n})),cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p1__54356_SHARP_){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54356_SHARP_)),p1__54356_SHARP_);\n})),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1)));\nvar changeset \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$3(xf,cljs.core.conj,cljs.core.vals(new$));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.first(changeset);\nif(cljs.core.truth_(and__5023__auto__)){\nvar G__54370 \x3d cljs.core.first(changeset);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__54370) : f.call(null,G__54370));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.remove_watch(self__.tasks,k__$1);\n} else {\nreturn null;\n}\n});\nreturn cljs.core.add_watch(self__.tasks,k,watchfn);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$task_LT__event$arity$3 \x3d (function (this$,task_id,p__54371){\nvar self__ \x3d this;\nvar map__54372 \x3d p__54371;\nvar map__54372__$1 \x3d cljs.core.__destructure_map(map__54372);\nvar event_descr \x3d map__54372__$1;\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar result \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54372__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar this$__$1 \x3d this;\nif((!((args \x3d\x3d null)))){\nvar evt \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),ref,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),root,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),null], null);\nif(cljs.core.truth_(id)){\n} else {\nthis$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt);\n}\n\n(self__.update_task.cljs$core$IFn$_invoke$arity$4 ? self__.update_task.cljs$core$IFn$_invoke$arity$4(this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727)) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727)));\n\nreturn evt;\n} else {\nif((!((error \x3d\x3d null)))){\nvar evt \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),ref,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),root,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),null], null);\nif(cljs.core.truth_(id)){\n} else {\nthis$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt);\n}\n\n(self__.update_task.cljs$core$IFn$_invoke$arity$6 ? self__.update_task.cljs$core$IFn$_invoke$arity$6(this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22failure\x22,\x22failure\x22,720415879),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),error) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22failure\x22,\x22failure\x22,720415879),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),error));\n\nreturn evt;\n} else {\nvar evt \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),ref,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),root,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\nif(cljs.core.truth_(id)){\n} else {\nthis$__$1.intemporal$store$HistoryStore$save_event$arity$3(null,task_id,evt);\n}\n\n(self__.update_task.cljs$core$IFn$_invoke$arity$6 ? self__.update_task.cljs$core$IFn$_invoke$arity$6(this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result));\n\nreturn evt;\n\n}\n}\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$enqueue_task$arity$2 \x3d (function (this$,task){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\n(self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0 ? self__.maybe_fail_BANG_.cljs$core$IFn$_invoke$arity$0() : self__.maybe_fail_BANG_.call(null));\n\nvar task_PLUS_owner \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(task,new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939),self__.owner,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.tcounter,cljs.core.inc)], 0));\n(intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1(task_PLUS_owner) : intemporal.store.internal.validate_task_BANG_.call(null,task_PLUS_owner));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.tasks,cljs.core.assoc,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task),task_PLUS_owner);\n\nthis$__$1.intemporal$store$InternalVarStore$register$arity$3(null,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(task_PLUS_owner),new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046).cljs$core$IFn$_invoke$arity$1(task_PLUS_owner));\n\nreturn task_PLUS_owner;\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$reenqueue_pending_tasks$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar task__GT_run_QMARK_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.tasks,cljs.core.update_vals,(function (p__54373){\nvar map__54374 \x3d p__54373;\nvar map__54374__$1 \x3d cljs.core.__destructure_map(map__54374);\nvar task \x3d map__54374__$1;\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54374__$1,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),state)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(task),self__.owner)) || ((new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(task) \x3d\x3d null)))))){\nif(cljs.core.contains_QMARK_(cljs.core.deref(task__GT_run_QMARK_),task)){\n} else {\n(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(task) : f.call(null,task));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(task__GT_run_QMARK_,cljs.core.conj,task);\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(task,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939),self__.owner], 0));\n} else {\nreturn task;\n}\n}));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$clear_tasks$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.reset_BANG_(self__.tasks,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$find_task$arity$2 \x3d (function (this$,id){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54354_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(p1__54354_SHARP_),id);\n}),cljs.core.vals(cljs.core.deref(self__.tasks))));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$release_pending_tasks$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.tasks,cljs.core.update_vals,(function (p__54375){\nvar map__54376 \x3d p__54375;\nvar map__54376__$1 \x3d cljs.core.__destructure_map(map__54376);\nvar task \x3d map__54376__$1;\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54376__$1,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nvar G__54377 \x3d task;\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(task),self__.owner)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__54377,new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939),null);\n} else {\nreturn G__54377;\n}\n}));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$list_tasks$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54353_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.owner,new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(p1__54353_SHARP_))) || ((new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(p1__54353_SHARP_) \x3d\x3d null)));\n}),cljs.core.vals(cljs.core.deref(self__.tasks)));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$task_LT__panic$arity$3 \x3d (function (this$,task_id,error){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.update_task.cljs$core$IFn$_invoke$arity$4 ? self__.update_task.cljs$core$IFn$_invoke$arity$4(this$__$1,task_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),error) : self__.update_task.call(null,this$__$1,task_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),error));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$dequeue_task$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.intemporal$store$TaskStore$dequeue_task$arity$2(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22lease-ms\x22,\x22lease-ms\x22,191549996),null], null));\n}));\n\n(intemporal.store.t_intemporal$store54363.prototype.intemporal$store$TaskStore$dequeue_task$arity$2 \x3d (function (this$,p__54378){\nvar self__ \x3d this;\nvar map__54379 \x3d p__54378;\nvar map__54379__$1 \x3d cljs.core.__destructure_map(map__54379);\nvar lease_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54379__$1,new cljs.core.Keyword(null,\x22lease-ms\x22,\x22lease-ms\x22,191549996));\nvar this$__$1 \x3d this;\nvar first_new \x3d (function (v){\nreturn cljs.core.first(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__54357_SHARP_){\nvar and__5023__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.owner,new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_))) || ((new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_) \x3d\x3d null)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar G__54380 \x3d new cljs.core.Keyword(null,\x22lease-end\x22,\x22lease-end\x22,2142146879).cljs$core$IFn$_invoke$arity$1(p1__54357_SHARP_);\nif((G__54380 \x3d\x3d null)){\nreturn null;\n} else {\nreturn (G__54380 \x3c intemporal.store.now());\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}),cljs.core.vals(v))));\n});\nvar found_QMARK_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2(self__.tasks,(function (v){\nvar found \x3d first_new(v);\nif(cljs.core.truth_(found)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(found),cljs.core.reset_BANG_(found_QMARK_,cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(found,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046),intemporal.store.sym__GT_var(this$__$1,found),new cljs.core.Keyword(null,\x22lease-end\x22,\x22lease-end\x22,2142146879),(cljs.core.truth_(lease_ms)?(intemporal.store.now() + lease_ms):null)], 0))));\n} else {\nreturn v;\n}\n}));\n\nreturn cljs.core.deref(found_QMARK_);\n}));\n\n(intemporal.store.t_intemporal$store54363.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 18, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22failures\x22,\x22failures\x22,727615171,null),new cljs.core.Symbol(null,\x22maybe-fail!\x22,\x22maybe-fail!\x22,-88256508,null),new cljs.core.Symbol(null,\x22owner\x22,\x22owner\x22,1247919588,null),new cljs.core.Symbol(null,\x22pcounter\x22,\x22pcounter\x22,-1054343387,null),new cljs.core.Symbol(null,\x22p__54360\x22,\x22p__54360\x22,1931893670,null),new cljs.core.Symbol(null,\x22vars\x22,\x22vars\x22,-406425690,null),new cljs.core.Symbol(null,\x22ecounter\x22,\x22ecounter\x22,-1468060630,null),new cljs.core.Symbol(null,\x22update-task\x22,\x22update-task\x22,1145318256,null),new cljs.core.Symbol(null,\x22file\x22,\x22file\x22,370885649,null),new cljs.core.Symbol(null,\x22readers\x22,\x22readers\x22,-477731503,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22tasks\x22,\x22tasks\x22,-113837353,null),new cljs.core.Symbol(null,\x22tcounter\x22,\x22tcounter\x22,1419138136,null),new cljs.core.Symbol(null,\x22counter\x22,\x22counter\x22,-1850427592,null),new cljs.core.Symbol(null,\x22find-task\x22,\x22find-task\x22,835161369,null),new cljs.core.Symbol(null,\x22map__54361\x22,\x22map__54361\x22,2020921209,null),new cljs.core.Symbol(null,\x22persist!\x22,\x22persist!\x22,-1958402018,null),new cljs.core.Symbol(null,\x22meta54364\x22,\x22meta54364\x22,-1781238991,null)], null);\n}));\n\n(intemporal.store.t_intemporal$store54363.cljs$lang$type \x3d true);\n\n(intemporal.store.t_intemporal$store54363.cljs$lang$ctorStr \x3d \x22intemporal.store/t_intemporal$store54363\x22);\n\n(intemporal.store.t_intemporal$store54363.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.store/t_intemporal$store54363\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/t_intemporal$store54363.\n */\nintemporal.store.__GT_t_intemporal$store54363 \x3d (function intemporal$store$__GT_t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364){\nreturn (new intemporal.store.t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history,tasks,tcounter,counter,find_task,map__54361,persist_BANG_,meta54364));\n});\n\n\n/**\n * Creates a new memory-based store\n */\nintemporal.store.make_store \x3d (function intemporal$store$make_store(var_args){\nvar G__54359 \x3d arguments.length;\nswitch (G__54359) {\ncase 0:\nreturn intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.store.make_store.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(intemporal.store.make_store.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__54360){\nvar map__54361 \x3d p__54360;\nvar map__54361__$1 \x3d cljs.core.__destructure_map(map__54361);\nvar owner \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__54361__$1,new cljs.core.Keyword(null,\x22owner\x22,\x22owner\x22,-392611939),intemporal.store.default_owner);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54361__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar readers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54361__$1,new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030));\nvar failures \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__54361__$1,new cljs.core.Keyword(null,\x22failures\x22,\x22failures\x22,-912916356),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22validation\x22,\x22validation\x22,-2141396518),(0)], null));\nvar tasks \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar history__$1 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar counter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nvar pcounter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nvar ecounter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nvar tcounter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nvar vars \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar maybe_fail_BANG_ \x3d (function (){\nif((cljs.core.rand_int((100)) \x3c ((100) * cljs.core.get.cljs$core$IFn$_invoke$arity$2(failures,new cljs.core.Keyword(null,\x22validation\x22,\x22validation\x22,-2141396518))))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Forced error via failure rate\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22type\x22,\x22intemporal.workflow.internal/type\x22,-1847162431),new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097)], null));\n} else {\nreturn null;\n}\n});\nvar persist_BANG_ \x3d (function (k,ref,old,new$){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d file;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(old,new$);\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.store\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [115,26], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Persisting store to file\x22,file], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.store.write_edn(file,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22tasks\x22,\x22tasks\x22,-1754368880),cljs.core.deref(tasks),new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.deref(history__$1),new cljs.core.Keyword(null,\x22counter\x22,\x22counter\x22,804008177),cljs.core.deref(counter),new cljs.core.Keyword(null,\x22pcounter\x22,\x22pcounter\x22,1600092382),cljs.core.deref(pcounter),new cljs.core.Keyword(null,\x22ecounter\x22,\x22ecounter\x22,1186375139),cljs.core.deref(ecounter)], null));\n} else {\nreturn null;\n}\n});\nvar find_task \x3d (function (this$,id){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(tasks),id);\n});\nvar update_task \x3d (function() { \nvar G__54425__delegate \x3d function (this$,id,kvs){\nvar temp__5825__auto__ \x3d find_task(this$,id);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar w \x3d temp__5825__auto__;\nmaybe_fail_BANG_();\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(tasks,cljs.core.assoc,id,(function (){var G__54362 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc,w,kvs);\nreturn (intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1 ? intemporal.store.internal.validate_task_BANG_.cljs$core$IFn$_invoke$arity$1(G__54362) : intemporal.store.internal.validate_task_BANG_.call(null,G__54362));\n})());\n} else {\nreturn null;\n}\n};\nvar G__54425 \x3d function (this$,id,var_args){\nvar kvs \x3d null;\nif (arguments.length \x3e 2) {\nvar G__54426__i \x3d 0, G__54426__a \x3d new Array(arguments.length - 2);\nwhile (G__54426__i \x3c G__54426__a.length) {G__54426__a[G__54426__i] \x3d arguments[G__54426__i + 2]; ++G__54426__i;}\n kvs \x3d new cljs.core.IndexedSeq(G__54426__a,0,null);\n} \nreturn G__54425__delegate.call(this,this$,id,kvs);};\nG__54425.cljs$lang$maxFixedArity \x3d 2;\nG__54425.cljs$lang$applyTo \x3d (function (arglist__54427){\nvar this$ \x3d cljs.core.first(arglist__54427);\narglist__54427 \x3d cljs.core.next(arglist__54427);\nvar id \x3d cljs.core.first(arglist__54427);\nvar kvs \x3d cljs.core.rest(arglist__54427);\nreturn G__54425__delegate(this$,id,kvs);\n});\nG__54425.cljs$core$IFn$_invoke$arity$variadic \x3d G__54425__delegate;\nreturn G__54425;\n})()\n;\nif(cljs.core.truth_(file)){\ncljs.core.add_watch(tasks,new cljs.core.Keyword(null,\x22persist\x22,\x22persist\x22,815289548),persist_BANG_);\n\ncljs.core.add_watch(history__$1,new cljs.core.Keyword(null,\x22persist\x22,\x22persist\x22,815289548),persist_BANG_);\n\ncljs.core.add_watch(counter,new cljs.core.Keyword(null,\x22persist\x22,\x22persist\x22,815289548),persist_BANG_);\n\ncljs.core.add_watch(pcounter,new cljs.core.Keyword(null,\x22persist\x22,\x22persist\x22,815289548),persist_BANG_);\n\ncljs.core.add_watch(ecounter,new cljs.core.Keyword(null,\x22persist\x22,\x22persist\x22,815289548),persist_BANG_);\n\nif(intemporal.store.edn_exists_QMARK_(file)){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.store\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [142,10], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Reading store file\x22,file], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar data_54428 \x3d intemporal.store.read_edn(file,readers);\ncljs.core.reset_BANG_(tasks,(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tasks\x22,\x22tasks\x22,-1754368880).cljs$core$IFn$_invoke$arity$1(data_54428);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})());\n\ncljs.core.reset_BANG_(history__$1,(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(data_54428);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})());\n\ncljs.core.reset_BANG_(counter,(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22counter\x22,\x22counter\x22,804008177).cljs$core$IFn$_invoke$arity$1(data_54428);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\n\ncljs.core.reset_BANG_(pcounter,(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22pcounter\x22,\x22pcounter\x22,1600092382).cljs$core$IFn$_invoke$arity$1(data_54428);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\n\ncljs.core.reset_BANG_(ecounter,(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ecounter\x22,\x22ecounter\x22,1186375139).cljs$core$IFn$_invoke$arity$1(data_54428);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\n} else {\n}\n} else {\n}\n\nreturn (new intemporal.store.t_intemporal$store54363(failures,maybe_fail_BANG_,owner,pcounter,p__54360,vars,ecounter,update_task,file,readers,history__$1,tasks,tcounter,counter,find_task,map__54361__$1,persist_BANG_,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.store.make_store.cljs$lang$maxFixedArity \x3d 1);\n\n"); -SHADOW_ENV.evalLoad("intemporal.workflow.internal.js", true, "goog.provide(\x27intemporal.workflow.internal\x27);\nintemporal.workflow.internal._STAR_env_STAR_ \x3d null;\nintemporal.workflow.internal.default_env \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compensations\x22,\x22compensations\x22,-2044076971),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.List.EMPTY),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),(((15) * (60)) * (1000))], null);\n/**\n * Derives the `runtime` attrs from the current env.\n */\nintemporal.workflow.internal.env__GT_runtime \x3d (function intemporal$workflow$internal$env__GT_runtime(){\nreturn cljs.core.select_keys(intemporal.workflow.internal._STAR_env_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406)], null));\n});\n/**\n * Generates a random id. if env var `DEV` is defined, generates a two-word human-readable id.\n */\nintemporal.workflow.internal.random_id \x3d (function intemporal$workflow$internal$random_id(){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n\n});\nintemporal.workflow.internal.create_workflow_task \x3d (function intemporal$workflow$internal$create_workflow_task(var_args){\nvar G__54390 \x3d arguments.length;\nswitch (G__54390) {\ncase 6:\nreturn intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase 9:\nreturn intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$9((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$6 \x3d (function (ref,root,sym,fvar,args,id){\nreturn intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$9(ref,root,sym,fvar,args,id,null,new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),null);\n}));\n\n(intemporal.workflow.internal.create_workflow_task.cljs$core$IFn$_invoke$arity$9 \x3d (function (ref,root,sym,fvar,args,id,result,state,runtime){\nvar runtime__$1 \x3d (function (){var or__5025__auto__ \x3d runtime;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.workflow.internal.env__GT_runtime();\n}\n})();\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046)],[args,ref,new cljs.core.Keyword(null,\x22workflow\x22,\x22workflow\x22,-640694607),state,sym,root,result,id,runtime__$1,fvar]);\n}));\n\n(intemporal.workflow.internal.create_workflow_task.cljs$lang$maxFixedArity \x3d 9);\n\nintemporal.workflow.internal.create_activity_task \x3d (function intemporal$workflow$internal$create_activity_task(var_args){\nvar G__54398 \x3d arguments.length;\nswitch (G__54398) {\ncase 6:\nreturn intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase 9:\nreturn intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$9((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$6 \x3d (function (ref,root,sym,fvar,args,id){\nreturn intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$9(ref,root,sym,fvar,args,id,null,new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),null);\n}));\n\n(intemporal.workflow.internal.create_activity_task.cljs$core$IFn$_invoke$arity$9 \x3d (function (ref,root,sym,fvar,args,id,result,state,runtime){\nvar runtime__$1 \x3d (function (){var or__5025__auto__ \x3d runtime;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.workflow.internal.env__GT_runtime();\n}\n})();\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046)],[args,ref,new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),state,sym,root,result,id,runtime__$1,fvar]);\n}));\n\n(intemporal.workflow.internal.create_activity_task.cljs$lang$maxFixedArity \x3d 9);\n\nintemporal.workflow.internal.create_proto_activity_task \x3d (function intemporal$workflow$internal$create_proto_activity_task(var_args){\nvar G__54405 \x3d arguments.length;\nswitch (G__54405) {\ncase 7:\nreturn intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase 10:\nreturn intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$10((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$7 \x3d (function (proto,ref,root,sym,fvar,args,id){\nreturn intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$10(proto,ref,root,sym,fvar,args,id,null,new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),null);\n}));\n\n(intemporal.workflow.internal.create_proto_activity_task.cljs$core$IFn$_invoke$arity$10 \x3d (function (proto,ref,root,sym,fvar,args,id,result,state,runtime){\nvar runtime__$1 \x3d (function (){var or__5025__auto__ \x3d runtime;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.workflow.internal.env__GT_runtime();\n}\n})();\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22proto\x22,\x22proto\x22,811784976),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046)],[args,ref,new cljs.core.Keyword(null,\x22proto-activity\x22,\x22proto-activity\x22,210113264),state,sym,proto,root,result,id,runtime__$1,fvar]);\n}));\n\n(intemporal.workflow.internal.create_proto_activity_task.cljs$lang$maxFixedArity \x3d 10);\n\nintemporal.workflow.internal.event_matches_QMARK_ \x3d (function intemporal$workflow$internal$event_matches_QMARK_(p__54408,p__54409){\nvar map__54410 \x3d p__54408;\nvar map__54410__$1 \x3d cljs.core.__destructure_map(map__54410);\nvar t \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54410__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar s \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54410__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar map__54411 \x3d p__54409;\nvar map__54411__$1 \x3d cljs.core.__destructure_map(map__54411);\nvar t2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54411__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar s2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54411__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(t,t2)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,s2)));\n});\n/**\n * Resumes a generic fn call task\n */\nintemporal.workflow.internal.resume_fn_task \x3d (function intemporal$workflow$internal$resume_fn_task(p__54412,store,protos,p__54413,p__54414){\nvar map__54415 \x3d p__54412;\nvar map__54415__$1 \x3d cljs.core.__destructure_map(map__54415);\nvar env \x3d map__54415__$1;\nvar vthread_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54415__$1,new cljs.core.Keyword(null,\x22vthread?\x22,\x22vthread?\x22,-1109904715));\nvar shutdown_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54415__$1,new cljs.core.Keyword(null,\x22shutdown?\x22,\x22shutdown?\x22,563347206));\nvar map__54416 \x3d p__54413;\nvar map__54416__$1 \x3d cljs.core.__destructure_map(map__54416);\nvar task \x3d map__54416__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar proto \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22proto\x22,\x22proto\x22,811784976));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar fvar \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54416__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar vec__54417 \x3d p__54414;\nvar invoke \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54417,(0),null);\nvar success \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54417,(1),null);\nvar failure \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54417,(2),null);\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22proto-activity\x22,\x22proto-activity\x22,210113264),type)) \x26\x26 ((cljs.core.get.cljs$core$IFn$_invoke$arity$2(protos,proto) \x3d\x3d null)))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Protocol implementation for \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([proto], 0)),\x22 not found; available protocols:\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([protos], 0)),\x22. Make sure to pass `:protocols` key when starting poller or worker \x22].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22type\x22,\x22intemporal.workflow.internal/type\x22,-1847162431),new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protos,new cljs.core.Keyword(null,\x22required\x22,\x22required\x22,1807647006),proto], null));\n} else {\n}\n\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [91,3], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Resuming task with id\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\ntry{var shutting_down_QMARK_ \x3d (function (){\nvar and__5023__auto__ \x3d cljs.core.ifn_QMARK_(shutdown_QMARK_);\nif(and__5023__auto__){\nreturn (shutdown_QMARK_.cljs$core$IFn$_invoke$arity$0 ? shutdown_QMARK_.cljs$core$IFn$_invoke$arity$0() : shutdown_QMARK_.call(null));\n} else {\nreturn and__5023__auto__;\n}\n});\nvar vec__54422 \x3d intemporal.store.all_events(store,id);\nvar inv_QMARK_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54422,(0),null);\nvar res_QMARK_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54422,(1),null);\nvar next_event_54452 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),id,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),(function (){var or__5025__auto__ \x3d root;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn id;\n}\n})(),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),invoke,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\nif(cljs.core.truth_(inv_QMARK_)){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [100,11], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found replay event for task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task)], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nif(cljs.core.truth_(res_QMARK_)){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [102,11], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found result event for task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task)], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nif(cljs.core.not(inv_QMARK_)){\nintemporal.store.task_LT__event(store,id,next_event_54452);\n} else {\nif((!(intemporal.workflow.internal.event_matches_QMARK_(inv_QMARK_,next_event_54452)))){\nthrow intemporal.error.internal_error(\x22Transition unexpected\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22got\x22,\x22got\x22,-1674745710),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(inv_QMARK_),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),invoke], null));\n} else {\n}\n}\n\nvar next_event \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),id,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),(function (){var or__5025__auto__ \x3d root;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn id;\n}\n})(),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),success,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\nvar next_failure \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(next_event,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),failure);\nvar handle_ok \x3d (function (r){\nif(cljs.core.truth_(shutting_down_QMARK_())){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [122,32], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),r], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Shutting down, interrupting result\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.store.task_LT__panic(store,id,intemporal.error.panic(\x22Worker shutting down during invocation result handling\x22));\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [125,32], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),r], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got actual function result for task\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.store.task_LT__event(store,id,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(next_event,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),r));\n\nreturn r;\n}\n});\nvar handle_fail \x3d (function (e){\nif(cljs.core.truth_(shutting_down_QMARK_())){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [131,32], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e], null),null,\x22Exception caught during shutdown, panicking task\x22,null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.store.task_LT__panic(store,id,intemporal.error.panic(\x22Worker shutting down during invocation failure handling\x22));\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [134,32], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Exception caught during actual function invocation for task\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.store.task_LT__event(store,id,(function (){var G__54429 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(next_failure,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e);\nif(cljs.core.truth_(intemporal.error.internal_error_QMARK_(e))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__54429,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22failure\x22,\x22intemporal.workflow.internal/failure\x22,1850429790));\n} else {\nreturn G__54429;\n}\n})());\n}\n\nreturn promesa.core.rejected(e);\n});\nvar retval \x3d (((!((res_QMARK_ \x3d\x3d null))))?(function (){var success_QMARK_ \x3d (!((new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res_QMARK_) \x3d\x3d null)));\nvar retval \x3d ((success_QMARK_)?new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res_QMARK_):new cljs.core.Keyword(null,\x22error?\x22,\x22error?\x22,-460689159).cljs$core$IFn$_invoke$arity$1(res_QMARK_));\nintemporal.store.task_LT__event(store,id,res_QMARK_);\n\nif(success_QMARK_){\nreturn promesa.core.resolved(retval);\n} else {\nreturn promesa.core.rejected(retval);\n}\n})():((cljs.core.not(res_QMARK_))?(function (){var args_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22proto-activity\x22,\x22proto-activity\x22,210113264),type))?cljs.core.cons(cljs.core.get.cljs$core$IFn$_invoke$arity$2(protos,proto),args):args);\nvar r \x3d (function (){var _STAR_env_STAR__orig_val__54430 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__54431 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,env], 0));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__54431);\n\ntry{(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [158,46], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args_SINGLEQUOTE_], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Calling actual function for task\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(vthread_QMARK_)){\nvar inner \x3d promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (res,rej){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.vthread_call((function (){\nvar _STAR_env_STAR__orig_val__54432 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__54433 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22vthread?\x22,\x22vthread?\x22,-1109904715));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__54433);\n\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(fvar,args_SINGLEQUOTE_);\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__54432);\n}})),res),rej);\n}));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(inner,handle_ok),handle_fail);\n} else {\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(null,(function (_){\nvar _STAR_env_STAR__orig_val__54434 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__54435 \x3d env;\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__54435);\n\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(fvar,args_SINGLEQUOTE_);\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__54434);\n}})),handle_ok),handle_fail);\n}\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__54430);\n}})();\nreturn r;\n})():(((!(((intemporal.workflow.internal.event_matches_QMARK_(res_QMARK_,next_event)) || (intemporal.workflow.internal.event_matches_QMARK_(res_QMARK_,next_failure))))))?(function(){throw intemporal.error.internal_error(\x22Transition unexpected\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22got\x22,\x22got\x22,-1674745710),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(res_QMARK_),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [success,failure], null)], null))})():null)));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow.internal\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [191,9], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22retval\x22,\x22retval\x22,-1500299614),retval], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Finished internal execution for task\x22,id], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn retval;\n}catch (e54420){if((e54420 instanceof Error)){\nvar e \x3d e54420;\nvar wrapped_54471 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(\x22Internal error while resuming execution\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22type\x22,\x22intemporal.workflow.internal/type\x22,-1847162431),new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097)], null),e);\nintemporal.store.task_LT__event(store,id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),id,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),(function (){var or__5025__auto__ \x3d root;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn id;\n}\n})(),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22intemporal.workflow.internal\x22,\x22failure\x22,\x22intemporal.workflow.internal/failure\x22,1850429790),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),wrapped_54471], null));\n\nreturn promesa.core.rejected(e);\n} else {\nthrow e54420;\n\n}\n}});\nif((typeof intemporal !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof intemporal.workflow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof intemporal.workflow.internal !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof intemporal.workflow.internal.resume_task !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Continues a task that has been queued for execution. Replays events if they exist.\n */\nintemporal.workflow.internal.resume_task \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__54436 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__54436.cljs$core$IFn$_invoke$arity$0 ? fexpr__54436.cljs$core$IFn$_invoke$arity$0() : fexpr__54436.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22intemporal.workflow.internal\x22,\x22resume-task\x22),(function (env,store,protos,task){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(task);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\nintemporal.workflow.internal.resume_task.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22workflow\x22,\x22workflow\x22,-640694607),(function (env,store,protos,p__54437){\nvar map__54438 \x3d p__54437;\nvar map__54438__$1 \x3d cljs.core.__destructure_map(map__54438);\nvar task \x3d map__54438__$1;\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54438__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54438__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54438__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar fvar \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54438__$1,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54438__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nreturn intemporal.workflow.internal.resume_fn_task(env,store,protos,task,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22invoke\x22,\x22intemporal.workflow/invoke\x22,-1395924883),new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22success\x22,\x22intemporal.workflow/success\x22,-650952432),new cljs.core.Keyword(\x22intemporal.workflow\x22,\x22failure\x22,\x22intemporal.workflow/failure\x22,39732733)], null));\n}));\nintemporal.workflow.internal.resume_task.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),(function (env,store,protos,p__54439){\nvar map__54440 \x3d p__54439;\nvar map__54440__$1 \x3d cljs.core.__destructure_map(map__54440);\nvar task \x3d map__54440__$1;\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54440__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54440__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54440__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar fvar \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54440__$1,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54440__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nreturn intemporal.workflow.internal.resume_fn_task(env,store,protos,task,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.activity\x22,\x22invoke\x22,\x22intemporal.activity/invoke\x22,1074985885),new cljs.core.Keyword(\x22intemporal.activity\x22,\x22success\x22,\x22intemporal.activity/success\x22,1977785760),new cljs.core.Keyword(\x22intemporal.activity\x22,\x22failure\x22,\x22intemporal.activity/failure\x22,523133613)], null));\n}));\nintemporal.workflow.internal.resume_task.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22proto-activity\x22,\x22proto-activity\x22,210113264),(function (env,store,protos,p__54441){\nvar map__54442 \x3d p__54441;\nvar map__54442__$1 \x3d cljs.core.__destructure_map(map__54442);\nvar task \x3d map__54442__$1;\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54442__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54442__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54442__$1,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305));\nvar fvar \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54442__$1,new cljs.core.Keyword(null,\x22fvar\x22,\x22fvar\x22,1802913046));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54442__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nreturn intemporal.workflow.internal.resume_fn_task(env,store,protos,task,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22invoke\x22,\x22intemporal.protocol/invoke\x22,1740420888),new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22success\x22,\x22intemporal.protocol/success\x22,-1641924553),new cljs.core.Keyword(\x22intemporal.protocol\x22,\x22failure\x22,\x22intemporal.protocol/failure\x22,1497427240)], null));\n}));\n/**\n * Enqueues `task` onto the store and awaits its execution.\n * If the exact task is alread present (eg we are resuming a crashed workflow),\n * the existing task will be awaited instead.\n */\nintemporal.workflow.internal.enqueue_and_wait \x3d (function intemporal$workflow$internal$enqueue_and_wait(p__54443,p__54444){\nvar map__54445 \x3d p__54443;\nvar map__54445__$1 \x3d cljs.core.__destructure_map(map__54445);\nvar opts \x3d map__54445__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54445__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__54446 \x3d p__54444;\nvar map__54446__$1 \x3d cljs.core.__destructure_map(map__54446);\nvar task \x3d map__54446__$1;\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__54446__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nif((!((store \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Store should exist\x22,\x22\\n\x22,\x22(some? store)\x22].join(\x27\x27)));\n}\n\nif((!((task \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Task should exist\x22,\x22\\n\x22,\x22(some? task)\x22].join(\x27\x27)));\n}\n\nvar db_task \x3d (function (){var or__5025__auto__ \x3d intemporal.store.find_task(store,id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn intemporal.store.enqueue_task(store,task);\n}\n})();\nvar prom \x3d intemporal.store.await_task(store,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(db_task),opts);\nreturn prom;\n});\n"); -SHADOW_ENV.evalLoad("intemporal.workflow.js", true, "goog.provide(\x27intemporal.workflow\x27);\n/**\n * Returns the workflow execution environment for the current thread\n */\nintemporal.workflow.current_env \x3d (function intemporal$workflow$current_env(){\nif((!((intemporal.workflow.internal._STAR_env_STAR_ \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22No workflow env detected, should only be called within a workflow function\x22,\x22\\n\x22,\x22(some? internal/*env*)\x22].join(\x27\x27)));\n}\n\nreturn intemporal.workflow.internal._STAR_env_STAR_;\n});\n/**\n * Returns the current workflow uuid\n */\nintemporal.workflow.workflow_id \x3d (function intemporal$workflow$workflow_id(){\nif((!((intemporal.workflow.internal._STAR_env_STAR_ \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22No workflow env detected, should only be called within a workflow function\x22,\x22\\n\x22,\x22(some? internal/*env*)\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\n});\n\n/**\n * @interface\n */\nintemporal.workflow.ITaskExecutor \x3d function(){};\n\nvar intemporal$workflow$ITaskExecutor$submit$dyn_56829 \x3d (function (this$,f){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.workflow.submit[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,f) : m__5374__auto__.call(null,this$,f));\n} else {\nvar m__5372__auto__ \x3d (intemporal.workflow.submit[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,f) : m__5372__auto__.call(null,this$,f));\n} else {\nthrow cljs.core.missing_protocol(\x22ITaskExecutor.submit\x22,this$);\n}\n}\n});\n/**\n * Submits the function `f` for execution\n */\nintemporal.workflow.submit \x3d (function intemporal$workflow$submit(this$,f){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$workflow$ITaskExecutor$submit$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$workflow$ITaskExecutor$submit$arity$2(this$,f);\n} else {\nreturn intemporal$workflow$ITaskExecutor$submit$dyn_56829(this$,f);\n}\n});\n\nvar intemporal$workflow$ITaskExecutor$shutdown$dyn_56830 \x3d (function (this$,grace_period_ms){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.workflow.shutdown[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,grace_period_ms) : m__5374__auto__.call(null,this$,grace_period_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.workflow.shutdown[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,grace_period_ms) : m__5372__auto__.call(null,this$,grace_period_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22ITaskExecutor.shutdown\x22,this$);\n}\n}\n});\n/**\n * Shuts down the task executor\n */\nintemporal.workflow.shutdown \x3d (function intemporal$workflow$shutdown(this$,grace_period_ms){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$workflow$ITaskExecutor$shutdown$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$workflow$ITaskExecutor$shutdown$arity$2(this$,grace_period_ms);\n} else {\nreturn intemporal$workflow$ITaskExecutor$shutdown$dyn_56830(this$,grace_period_ms);\n}\n});\n\nvar intemporal$workflow$ITaskExecutor$running_QMARK_$dyn_56831 \x3d (function (this$){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.workflow.running_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$));\n} else {\nvar m__5372__auto__ \x3d (intemporal.workflow.running_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\x22ITaskExecutor.running?\x22,this$);\n}\n}\n});\n/**\n * Indicates if the executor is running\n */\nintemporal.workflow.running_QMARK_ \x3d (function intemporal$workflow$running_QMARK_(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$workflow$ITaskExecutor$running_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn this$.intemporal$workflow$ITaskExecutor$running_QMARK_$arity$1(this$);\n} else {\nreturn intemporal$workflow$ITaskExecutor$running_QMARK_$dyn_56831(this$);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {intemporal.workflow.ITaskExecutor}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.workflow.t_intemporal$workflow56790 \x3d (function (run_QMARK_,meta56791){\nthis.run_QMARK_ \x3d run_QMARK_;\nthis.meta56791 \x3d meta56791;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.workflow.t_intemporal$workflow56790.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_56792,meta56791__$1){\nvar self__ \x3d this;\nvar _56792__$1 \x3d this;\nreturn (new intemporal.workflow.t_intemporal$workflow56790(self__.run_QMARK_,meta56791__$1));\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_56792){\nvar self__ \x3d this;\nvar _56792__$1 \x3d this;\nreturn self__.meta56791;\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.prototype.intemporal$workflow$ITaskExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.workflow.t_intemporal$workflow56790.prototype.intemporal$workflow$ITaskExecutor$submit$arity$2 \x3d (function (_,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(cljs.core.deref(self__.run_QMARK_))){\nreturn promesa.core.vthread_call((function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n} else {\nreturn null;\n}\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.prototype.intemporal$workflow$ITaskExecutor$shutdown$arity$2 \x3d (function (_,grace_period_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reset_BANG_(self__.run_QMARK_,false);\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.prototype.intemporal$workflow$ITaskExecutor$running_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.run_QMARK_);\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22run?\x22,\x22run?\x22,-1901812910,null),new cljs.core.Symbol(null,\x22meta56791\x22,\x22meta56791\x22,-1147985458,null)], null);\n}));\n\n(intemporal.workflow.t_intemporal$workflow56790.cljs$lang$type \x3d true);\n\n(intemporal.workflow.t_intemporal$workflow56790.cljs$lang$ctorStr \x3d \x22intemporal.workflow/t_intemporal$workflow56790\x22);\n\n(intemporal.workflow.t_intemporal$workflow56790.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.workflow/t_intemporal$workflow56790\x22);\n}));\n\n/**\n * Positional factory function for intemporal.workflow/t_intemporal$workflow56790.\n */\nintemporal.workflow.__GT_t_intemporal$workflow56790 \x3d (function intemporal$workflow$__GT_t_intemporal$workflow56790(run_QMARK_,meta56791){\nreturn (new intemporal.workflow.t_intemporal$workflow56790(run_QMARK_,meta56791));\n});\n\n\n/**\n * Creates an object that satisfies `ITaskExecutor`.\n */\nintemporal.workflow.make_task_executor \x3d (function intemporal$workflow$make_task_executor(){\nvar run_QMARK_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true);\nreturn (new intemporal.workflow.t_intemporal$workflow56790(run_QMARK_,cljs.core.PersistentArrayMap.EMPTY));\n});\n/**\n * Executes a given protocol, activity or workflow `task`\n */\nintemporal.workflow.worker_execute_fn \x3d (function intemporal$workflow$worker_execute_fn(store,protocols,p__56793,task_counter,shutting_down_QMARK_){\nvar map__56794 \x3d p__56793;\nvar map__56794__$1 \x3d cljs.core.__destructure_map(map__56794);\nvar task \x3d map__56794__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__56794__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__56794__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar root \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__56794__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar runtime \x3d new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996).cljs$core$IFn$_invoke$arity$1(task);\nvar base_env \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22ref\x22,\x22ref\x22,1289896967),id,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),(function (){var or__5025__auto__ \x3d root;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn id;\n}\n})(),new cljs.core.Keyword(null,\x22protos\x22,\x22protos\x22,-804831293),protocols,new cljs.core.Keyword(null,\x22next-id\x22,\x22next-id\x22,-224240762),(function (){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d root;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn id;\n}\n})()),\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(task_counter,cljs.core.inc))].join(\x27\x27);\n}),new cljs.core.Keyword(null,\x22shutdown?\x22,\x22shutdown?\x22,563347206),shutting_down_QMARK_], null);\nvar internal_env \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,base_env,runtime], 0));\nvar _STAR_env_STAR__orig_val__56795 \x3d intemporal.workflow.internal._STAR_env_STAR_;\nvar _STAR_env_STAR__temp_val__56796 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([intemporal.workflow.internal.default_env,internal_env], 0));\n(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__temp_val__56796);\n\ntry{(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [90,7], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(task),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),internal_env], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Resuming task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task)], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.workflow.internal.resume_task.cljs$core$IFn$_invoke$arity$4(internal_env,store,protocols,task);\n}finally {(intemporal.workflow.internal._STAR_env_STAR_ \x3d _STAR_env_STAR__orig_val__56795);\n}});\n/**\n * Continously polls for task while `task-executor` is active.\n */\nintemporal.workflow.worker_poll_fn \x3d (function intemporal$workflow$worker_poll_fn(store,protocols,task_executor,polling_ms){\nvar task_counter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_56801,reject_fn_56800){\nvar loop_fn_56797 \x3d (function intemporal$workflow$worker_poll_fn_$_loop_fn_56797(){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_56798,err_56799){\nif((!((err_56799 \x3d\x3d null)))){\nreturn (reject_fn_56800.cljs$core$IFn$_invoke$arity$1 ? reject_fn_56800.cljs$core$IFn$_invoke$arity$1(err_56799) : reject_fn_56800.call(null,err_56799));\n} else {\nif(promesa.core.recur_QMARK_(res_56798)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings(intemporal$workflow$worker_poll_fn_$_loop_fn_56797));\n\nreturn null;\n} else {\nreturn (resolve_fn_56801.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_56801.cljs$core$IFn$_invoke$arity$1(res_56798) : resolve_fn_56801.call(null,res_56798));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___49963__auto__){\nreturn promesa.protocols._promise(promesa.core.chain.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(polling_ms),(function (_){\nwhile(true){\nvar temp__5825__auto___56832 \x3d intemporal.store.dequeue_task(store);\nif(cljs.core.truth_(temp__5825__auto___56832)){\nvar task_56833 \x3d temp__5825__auto___56832;\n((function (task_56833,temp__5825__auto___56832,task_counter){\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (function (){var signal__52359__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [103,26], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_data\x22,\x22_data\x22,-1394265439),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22task\x22,\x22task\x22,-1476607993),task_56833], null)], null),(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Dequeued task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task_56833)], null));\n}),null)),null,null,null,null,null,null,null,null));\nreturn cljs.core.reduce_kv(cljs.core.assoc,signal__52359__auto__,signal__52359__auto__.kvs);\n})();\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n});})(task_56833,temp__5825__auto___56832,task_counter))\n();\n\n\nintemporal.workflow.submit(task_executor,((function (task_56833,temp__5825__auto___56832,task_counter){\nreturn (function (){\nreturn intemporal.workflow.worker_execute_fn(store,protocols,task_56833,task_counter,(function (){\nreturn cljs.core.not(intemporal.workflow.running_QMARK_(task_executor));\n}));\n});})(task_56833,temp__5825__auto___56832,task_counter))\n);\n\ncontinue;\n} else {\n}\nbreak;\n}\n\nif(cljs.core.truth_(intemporal.workflow.running_QMARK_(task_executor))){\nreturn promesa.core.__GT_Recur(cljs.core.PersistentVector.EMPTY);\n} else {\nreturn null;\n}\n})));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings(loop_fn_56797));\n}));\n});\n/**\n * Starts a poller that will submit tasks to the `task-executor`.\n * Protocol implementations are resolved via a map of `:protocols {my.ns Impl}`\n * Returns an `ITaskExecutor` that can be shutdown.\n * For clj runtimes, task-executor should be `(Executors/newVirtualThreadPerTaskExecutor)`, as\n * each execution will be blocked while they await for a given task dependencie\x27s execution.\n */\nintemporal.workflow.start_poller_BANG_ \x3d (function intemporal$workflow$start_poller_BANG_(var_args){\nvar G__56806 \x3d arguments.length;\nswitch (G__56806) {\ncase 2:\nreturn intemporal.workflow.start_poller_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___56835 \x3d arguments.length;\nvar i__5750__auto___56837 \x3d (0);\nwhile(true){\nif((i__5750__auto___56837 \x3c len__5749__auto___56835)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___56837]));\n\nvar G__56839 \x3d (i__5750__auto___56837 + (1));\ni__5750__auto___56837 \x3d G__56839;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn intemporal.workflow.start_poller_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(intemporal.workflow.start_poller_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (store,p__56807){\nvar map__56808 \x3d p__56807;\nvar map__56808__$1 \x3d cljs.core.__destructure_map(map__56808);\nvar opts \x3d map__56808__$1;\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56808__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.EMPTY);\nvar polling_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56808__$1,new cljs.core.Keyword(null,\x22polling-ms\x22,\x22polling-ms\x22,472249198),(100));\nreturn intemporal.workflow.start_poller_BANG_.cljs$core$IFn$_invoke$arity$variadic(store,intemporal.workflow.make_task_executor(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opts], 0));\n}));\n\n(intemporal.workflow.start_poller_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,task_executor,p__56809){\nvar map__56810 \x3d p__56809;\nvar map__56810__$1 \x3d cljs.core.__destructure_map(map__56810);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56810__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.EMPTY);\nvar polling_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56810__$1,new cljs.core.Keyword(null,\x22polling-ms\x22,\x22polling-ms\x22,472249198),(100));\nif((((!((task_executor \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d task_executor.intemporal$workflow$ITaskExecutor$))))?true:(((!task_executor.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(intemporal.workflow.ITaskExecutor,task_executor):false)):cljs.core.native_satisfies_QMARK_(intemporal.workflow.ITaskExecutor,task_executor))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Supplied task executor does not satisfy ITaskExecutor\x22,\x22\\n\x22,\x22(satisfies? ITaskExecutor task-executor)\x22].join(\x27\x27)));\n}\n\nvar polling_fn_56842 \x3d (function (){\nreturn intemporal.workflow.worker_poll_fn(store,protocols,task_executor,polling_ms);\n});\nintemporal.workflow.submit(task_executor,polling_fn_56842);\n\nreturn task_executor;\n}));\n\n/** @this {Function} */\n(intemporal.workflow.start_poller_BANG_.cljs$lang$applyTo \x3d (function (seq56803){\nvar G__56804 \x3d cljs.core.first(seq56803);\nvar seq56803__$1 \x3d cljs.core.next(seq56803);\nvar G__56805 \x3d cljs.core.first(seq56803__$1);\nvar seq56803__$2 \x3d cljs.core.next(seq56803__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__56804,G__56805,seq56803__$2);\n}));\n\n(intemporal.workflow.start_poller_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Starts a single worker thread that periodically polls for tasks and executes them in a\n * separate thread. Mostly used for testing purposes.\n */\nintemporal.workflow.start_worker_BANG_ \x3d (function intemporal$workflow$start_worker_BANG_(var_args){\nvar G__56815 \x3d arguments.length;\nswitch (G__56815) {\ncase 1:\nreturn intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___56846 \x3d arguments.length;\nvar i__5750__auto___56847 \x3d (0);\nwhile(true){\nif((i__5750__auto___56847 \x3c len__5749__auto___56846)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___56847]));\n\nvar G__56848 \x3d (i__5750__auto___56847 + (1));\ni__5750__auto___56847 \x3d G__56848;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((1) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);\nreturn intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__auto__);\n\n}\n});\n\n(intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (store){\nreturn intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$variadic(store,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}));\n\n(intemporal.workflow.start_worker_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,p__56816){\nvar map__56817 \x3d p__56816;\nvar map__56817__$1 \x3d cljs.core.__destructure_map(map__56817);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56817__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.EMPTY);\nvar polling_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__56817__$1,new cljs.core.Keyword(null,\x22polling-ms\x22,\x22polling-ms\x22,472249198),(100));\nvar run_QMARK_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true);\nvar task_counter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\npromesa.core.vthread_call((function (){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_56822,reject_fn_56821){\nvar loop_fn_56818 \x3d (function intemporal$workflow$loop_fn_56818(){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_56819,err_56820){\nif((!((err_56820 \x3d\x3d null)))){\nreturn (reject_fn_56821.cljs$core$IFn$_invoke$arity$1 ? reject_fn_56821.cljs$core$IFn$_invoke$arity$1(err_56820) : reject_fn_56821.call(null,err_56820));\n} else {\nif(promesa.core.recur_QMARK_(res_56819)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings(intemporal$workflow$loop_fn_56818));\n\nreturn null;\n} else {\nreturn (resolve_fn_56822.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_56822.cljs$core$IFn$_invoke$arity$1(res_56819) : resolve_fn_56822.call(null,res_56819));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___49963__auto__){\nreturn promesa.protocols._promise(promesa.core.chain.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(polling_ms),(function (_){\nvar temp__5825__auto___56849 \x3d intemporal.store.dequeue_task(store);\nif(cljs.core.truth_(temp__5825__auto___56849)){\nvar task_56850 \x3d temp__5825__auto___56849;\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [137,27], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(task_56850)], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Dequeued task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task_56850)], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\npromesa.core.vthread_call((function (){\nreturn intemporal.workflow.worker_execute_fn(store,protocols,task_56850,task_counter,(function (){\nreturn cljs.core.not(cljs.core.deref(run_QMARK_));\n}));\n}));\n} else {\n}\n\nif(cljs.core.truth_(cljs.core.deref(run_QMARK_))){\nreturn promesa.core.__GT_Recur(cljs.core.PersistentVector.EMPTY);\n} else {\nreturn null;\n}\n})));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings(loop_fn_56818));\n}));\n}));\n\nreturn (function (){\nreturn cljs.core.reset_BANG_(run_QMARK_,false);\n});\n}));\n\n/** @this {Function} */\n(intemporal.workflow.start_worker_BANG_.cljs$lang$applyTo \x3d (function (seq56813){\nvar G__56814 \x3d cljs.core.first(seq56813);\nvar seq56813__$1 \x3d cljs.core.next(seq56813);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__56814,seq56813__$1);\n}));\n\n(intemporal.workflow.start_worker_BANG_.cljs$lang$maxFixedArity \x3d (1));\n\nintemporal.workflow.enqueue_and_wait \x3d (function intemporal$workflow$enqueue_and_wait(p__56823,task){\nvar map__56824 \x3d p__56823;\nvar map__56824__$1 \x3d cljs.core.__destructure_map(map__56824);\nvar opts \x3d map__56824__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__56824__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context1 \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__52369__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__52360__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [146,3], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(task)], null),null,(new cljs.core.Delay((function (){\nreturn taoensso.telemere.impl.signal_msg(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Enqueuing task with id\x22,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(task)], null));\n}),null)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__52361__auto__ \x3d temp__5823__auto__;\nreturn (xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__52361__auto__.cljs$core$IFn$_invoke$arity$1(signal__52360__auto__) : xfn__52361__auto__.call(null,signal__52360__auto__));\n} else {\nreturn signal__52360__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__52369__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__52369__auto__) : __run_result.call(null,signal__52369__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.workflow.internal.enqueue_and_wait(opts,task);\n});\n/**\n * Adds a compensation action to the current workflow.\n */\nintemporal.workflow.add_compensation \x3d (function intemporal$workflow$add_compensation(thunk){\nif(cljs.core.ifn_QMARK_(thunk)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Compensation action should implement IFn\x22,\x22\\n\x22,\x22(ifn? thunk)\x22].join(\x27\x27)));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22compensations\x22,\x22compensations\x22,-2044076971).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_),cljs.core.conj,thunk);\n});\n/**\n * Runs compensation in program order. A failure of the compensation action will stop running other compensations.\n */\nintemporal.workflow.compensate \x3d (function intemporal$workflow$compensate(){\nvar thunks \x3d new cljs.core.Keyword(null,\x22compensations\x22,\x22compensations\x22,-2044076971).cljs$core$IFn$_invoke$arity$1(intemporal.workflow.internal._STAR_env_STAR_);\nvar seq__56825 \x3d cljs.core.seq(cljs.core.deref(thunks));\nvar chunk__56826 \x3d null;\nvar count__56827 \x3d (0);\nvar i__56828 \x3d (0);\nwhile(true){\nif((i__56828 \x3c count__56827)){\nvar f \x3d chunk__56826.cljs$core$IIndexed$_nth$arity$2(null,i__56828);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(thunks,cljs.core.pop);\n\n(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\n\nvar G__56857 \x3d seq__56825;\nvar G__56858 \x3d chunk__56826;\nvar G__56859 \x3d count__56827;\nvar G__56860 \x3d (i__56828 + (1));\nseq__56825 \x3d G__56857;\nchunk__56826 \x3d G__56858;\ncount__56827 \x3d G__56859;\ni__56828 \x3d G__56860;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__56825);\nif(temp__5825__auto__){\nvar seq__56825__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__56825__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__56825__$1);\nvar G__56861 \x3d cljs.core.chunk_rest(seq__56825__$1);\nvar G__56862 \x3d c__5548__auto__;\nvar G__56863 \x3d cljs.core.count(c__5548__auto__);\nvar G__56864 \x3d (0);\nseq__56825 \x3d G__56861;\nchunk__56826 \x3d G__56862;\ncount__56827 \x3d G__56863;\ni__56828 \x3d G__56864;\ncontinue;\n} else {\nvar f \x3d cljs.core.first(seq__56825__$1);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(thunks,cljs.core.pop);\n\n(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\n\nvar G__56865 \x3d cljs.core.next(seq__56825__$1);\nvar G__56866 \x3d null;\nvar G__56867 \x3d (0);\nvar G__56868 \x3d (0);\nseq__56825 \x3d G__56865;\nchunk__56826 \x3d G__56866;\ncount__56827 \x3d G__56867;\ni__56828 \x3d G__56868;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n"); +SHADOW_ENV.evalLoad("taoensso.encore.js", true, "goog.provide(\x27taoensso.encore\x27);\ngoog.scope(function(){\n taoensso.encore.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n taoensso.encore.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n/**\n * See `assert-min-encore-version`\n */\ntaoensso.encore.encore_version \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),(159),(0)], null);\n/**\n * Private, don\x27t use.\n * Returns true if given a list or Cons (\x3d\x3e possible call form).\n */\ntaoensso.encore.list_form_QMARK_ \x3d (function taoensso$encore$list_form_QMARK_(x){\nreturn ((cljs.core.list_QMARK_(x)) || ((x instanceof cljs.core.Cons)));\n});\n/**\n * Given a symbol and args, returns [\x3cname-with-attrs-meta\x3e \x3cargs\x3e \x3cattrs\x3e]\n * with support for `defn` style `?docstring` and `?attrs-map`.\n */\ntaoensso.encore.name_with_attrs \x3d (function taoensso$encore$name_with_attrs(var_args){\nvar G__33790 \x3d arguments.length;\nswitch (G__33790) {\ncase 2:\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$2 \x3d (function (sym,args){\nreturn taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3(sym,args,null);\n}));\n\n(taoensso.encore.name_with_attrs.cljs$core$IFn$_invoke$arity$3 \x3d (function (sym,args,attrs_merge){\nvar vec__33791 \x3d ((((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.next(args))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args], null));\nvar _QMARK_docstring \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33791,(0),null);\nvar args__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33791,(1),null);\nvar vec__33794 \x3d ((((cljs.core.map_QMARK_(cljs.core.first(args__$1))) \x26\x26 (cljs.core.next(args__$1))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$1),cljs.core.next(args__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentArrayMap.EMPTY,args__$1], null));\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33794,(0),null);\nvar args__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33794,(1),null);\nvar vec__33797 \x3d ((((typeof cljs.core.first(args__$2) \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.next(args__$2))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__$2),cljs.core.next(args__$2)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_QMARK_docstring,args__$2], null));\nvar _QMARK_docstring__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33797,(0),null);\nvar args__$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33797,(1),null);\nvar attrs__$1 \x3d (cljs.core.truth_(_QMARK_docstring__$1)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(attrs,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),_QMARK_docstring__$1):attrs);\nvar attrs__$2 \x3d (function (){var b2__30646__auto__ \x3d cljs.core.meta(sym);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar m \x3d b2__30646__auto__;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(m,attrs__$1);\n} else {\nreturn attrs__$1;\n}\n})();\nvar attrs__$3 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(attrs__$2,attrs_merge);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(sym,attrs__$3),args__$3,attrs__$3], null);\n}));\n\n(taoensso.encore.name_with_attrs.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.node_target_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22);\ntaoensso.encore.react_native_target_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22react-native\x22);\ntaoensso.encore.js__QMARK_window \x3d (((((!(taoensso.encore.react_native_target_QMARK_))) \x26\x26 ((typeof window !\x3d\x3d \x27undefined\x27))))?window:null);\ntaoensso.encore.js__QMARK_process \x3d (((typeof process !\x3d\x3d \x27undefined\x27))?process:null);\ntaoensso.encore.js__QMARK_crypto \x3d ((taoensso.encore.react_native_target_QMARK_)?null:(function (){var or__5025__auto__ \x3d (((typeof crypto !\x3d\x3d \x27undefined\x27))?crypto:null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif((typeof window !\x3d\x3d \x27undefined\x27)){\nreturn taoensso.encore.goog$module$goog$object.get(window,\x22crypto\x22);\n} else {\nreturn null;\n}\n}\n})());\n/**\n * Returns human-readable type name for given arb value.\n */\ntaoensso.encore.type_name \x3d (function taoensso$encore$type_name(x){\nif((x \x3d\x3d null)){\nreturn \x22nil\x22;\n} else {\nif((void 0 \x3d\x3d\x3d x)){\nreturn \x22undefined\x22;\n} else {\nvar ctor \x3d cljs.core.type(x);\nvar or__5025__auto__ \x3d ctor.name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ctor.displayName;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d goog.typeOf(x);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nvar or__5025__auto____$3 \x3d (function (){try{return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ctor], 0));\n}catch (e33803){var _ \x3d e33803;\nreturn null;\n}})();\nif(cljs.core.truth_(or__5025__auto____$3)){\nreturn or__5025__auto____$3;\n} else {\nreturn \x22unknown\x22;\n}\n}\n}\n}\n}\n}\n});\ntaoensso.encore.nempty_str_QMARK_ \x3d (function taoensso$encore$nempty_str_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22\x22)))));\n});\n\ntaoensso.encore.boolean_QMARK_ \x3d (function taoensso$encore$boolean_QMARK_(x){\nreturn ((x \x3d\x3d\x3d true) || (x \x3d\x3d\x3d false));\n});\n\ntaoensso.encore.indexed_QMARK_ \x3d (function taoensso$encore$indexed_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IIndexed$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.named_QMARK_ \x3d (function taoensso$encore$named_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$INamed$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.editable_QMARK_ \x3d (function taoensso$encore$editable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IEditableCollection$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.derefable_QMARK_ \x3d (function taoensso$encore$derefable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (32768))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IDeref$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.atom_QMARK_ \x3d (function taoensso$encore$atom_QMARK_(x){\nreturn (x instanceof cljs.core.Atom);\n});\n\ntaoensso.encore.transient_QMARK_ \x3d (function taoensso$encore$transient_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (8))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ITransientCollection$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.lazy_seq_QMARK_ \x3d (function taoensso$encore$lazy_seq_QMARK_(x){\nreturn (x instanceof cljs.core.LazySeq);\n});\n\ntaoensso.encore.re_pattern_QMARK_ \x3d (function taoensso$encore$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\n\ntaoensso.encore.can_meta_QMARK_ \x3d (function taoensso$encore$can_meta_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IWithMeta$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\ntaoensso.encore.stringy_QMARK_ \x3d (function taoensso$encore$stringy_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) || (typeof x \x3d\x3d\x3d \x27string\x27));\n});\n\ntaoensso.encore.ident_QMARK_ \x3d (function taoensso$encore$ident_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)));\n});\n\ntaoensso.encore.nameable_QMARK_ \x3d (function taoensso$encore$nameable_QMARK_(x){\nreturn ((taoensso.encore.named_QMARK_(x)) || (typeof x \x3d\x3d\x3d \x27string\x27));\n});\n\ntaoensso.encore.simple_ident_QMARK_ \x3d (function taoensso$encore$simple_ident_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.ident_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (cljs.core.namespace(x) \x3d\x3d null);\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.qualified_ident_QMARK_ \x3d (function taoensso$encore$qualified_ident_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.ident_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.simple_symbol_QMARK_ \x3d (function taoensso$encore$simple_symbol_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n\ntaoensso.encore.qualified_symbol_QMARK_ \x3d (function taoensso$encore$qualified_symbol_QMARK_(x){\nvar and__5023__auto__ \x3d (x instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.simple_keyword_QMARK_ \x3d (function taoensso$encore$simple_keyword_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n\ntaoensso.encore.qualified_keyword_QMARK_ \x3d (function taoensso$encore$qualified_keyword_QMARK_(x){\nvar and__5023__auto__ \x3d (x instanceof cljs.core.Keyword);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn true;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.vec2_QMARK_ \x3d (function taoensso$encore$vec2_QMARK_(x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),(2))));\n});\n\ntaoensso.encore.vec3_QMARK_ \x3d (function taoensso$encore$vec3_QMARK_(x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),(3))));\n});\n\ntaoensso.encore.nblank_str_QMARK_ \x3d (function taoensso$encore$nblank_str_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!(clojure.string.blank_QMARK_(x)))));\n});\n\ntaoensso.encore.nblank_QMARK_ \x3d (function taoensso$encore$nblank_QMARK_(x){\nreturn (!(clojure.string.blank_QMARK_(x)));\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.encore.error_QMARK_ \x3d taoensso.truss.error_QMARK_;\n/**\n * Returns true iff given a `clojure.core.async` channel.\n */\ntaoensso.encore.chan_QMARK_ \x3d (function taoensso$encore$chan_QMARK_(x){\nreturn (x instanceof cljs.core.async.impl.channels.ManyToManyChannel);\n});\n/**\n * Like `force` for refs.\n */\ntaoensso.encore.force_ref \x3d (function taoensso$encore$force_ref(x){\nif(taoensso.encore.derefable_QMARK_(x)){\nreturn cljs.core.deref(x);\n} else {\nreturn x;\n}\n});\n/**\n * Like `force` for vars.\n */\ntaoensso.encore.force_var \x3d (function taoensso$encore$force_var(x){\nif(cljs.core.var_QMARK_(x)){\nreturn cljs.core.deref(x);\n} else {\nreturn x;\n}\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * finite (excl. NaN and infinities).\n */\ntaoensso.encore.finite_num_QMARK_ \x3d (function taoensso$encore$finite_num_QMARK_(x){\nreturn Number.isFinite(x);\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * a fixed-precision integer.\n */\ntaoensso.encore.int_QMARK_ \x3d (function taoensso$encore$int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.finite_num_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (parseFloat(x) \x3d\x3d\x3d parseInt(x,(10)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given a number (of standard type) that is:\n * a fixed-precision floating-point (incl. NaN and infinities).\n */\ntaoensso.encore.float_QMARK_ \x3d (function taoensso$encore$float_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((parseFloat(x) \x3d\x3d\x3d parseInt(x,(10)))))));\n});\ntaoensso.encore.nneg_QMARK_ \x3d (function taoensso$encore$nneg_QMARK_(x){\nreturn (!((x \x3c (0))));\n});\n\ntaoensso.encore.zero_num_QMARK_ \x3d (function taoensso$encore$zero_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3d\x3d\x3d (0))));\n});\n\ntaoensso.encore.nzero_num_QMARK_ \x3d (function taoensso$encore$nzero_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((x \x3d\x3d\x3d (0))))));\n});\n\ntaoensso.encore.nat_num_QMARK_ \x3d (function taoensso$encore$nat_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((!((x \x3c (0))))));\n});\n\ntaoensso.encore.pos_num_QMARK_ \x3d (function taoensso$encore$pos_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3e (0))));\n});\n\ntaoensso.encore.neg_num_QMARK_ \x3d (function taoensso$encore$neg_num_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27number\x27) \x26\x26 ((x \x3c (0))));\n});\n\ntaoensso.encore.nat_int_QMARK_ \x3d (function taoensso$encore$nat_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!((x \x3c (0))));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.pos_int_QMARK_ \x3d (function taoensso$encore$pos_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3e (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.neg_int_QMARK_ \x3d (function taoensso$encore$neg_int_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.int_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3c (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.nat_float_QMARK_ \x3d (function taoensso$encore$nat_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!((x \x3c (0))));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.pos_float_QMARK_ \x3d (function taoensso$encore$pos_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3e (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n\ntaoensso.encore.neg_float_QMARK_ \x3d (function taoensso$encore$neg_float_QMARK_(x){\nvar and__5023__auto__ \x3d taoensso.encore.float_QMARK_(x);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (x \x3c (0));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given number in unsigned unit proportion interval \u2208\u211d[0,1].\n */\ntaoensso.encore.pnum_QMARK_ \x3d (function taoensso$encore$pnum_QMARK_(x){\nvar and__5023__auto__ \x3d typeof x \x3d\x3d\x3d \x27number\x27;\nif(and__5023__auto__){\nvar n \x3d x;\nreturn (((n \x3e\x3d 0.0)) \x26\x26 ((n \x3c\x3d 1.0)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Returns true iff given number in signed unit proportion interval \u2208\u211d[-1,1].\n */\ntaoensso.encore.rnum_QMARK_ \x3d (function taoensso$encore$rnum_QMARK_(x){\nvar and__5023__auto__ \x3d typeof x \x3d\x3d\x3d \x27number\x27;\nif(and__5023__auto__){\nvar n \x3d x;\nreturn (((n \x3e\x3d -1.0)) \x26\x26 ((n \x3c\x3d 1.0)));\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.max_long \x3d Number.MAX_SAFE_INTEGER;\ntaoensso.encore.min_long \x3d Number.MIN_SAFE_INTEGER;\ntaoensso.encore.int_str_QMARK_ \x3d (function taoensso$encore$int_str_QMARK_(s){\nreturn cljs.core.re_matches(/[+-]?\\d+/,s);\n});\ntaoensso.encore.parse_js_float \x3d (function taoensso$encore$parse_js_float(s){\nvar x \x3d parseFloat(s);\nif(cljs.core.truth_(isNaN(x))){\nreturn null;\n} else {\nreturn x;\n}\n});\ntaoensso.encore.parse_js_int \x3d (function taoensso$encore$parse_js_int(s){\nif(cljs.core.truth_(taoensso.encore.int_str_QMARK_(s))){\nvar x \x3d parseInt(s,(10));\nif(((cljs.core.not(isNaN(x))) \x26\x26 ((((x \x3c\x3d taoensso.encore.max_long)) \x26\x26 ((x \x3e\x3d taoensso.encore.min_long)))))){\nreturn x;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ntaoensso.encore.as__QMARK_nzero \x3d (function taoensso$encore$as__QMARK_nzero(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nif((x \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nblank \x3d (function taoensso$encore$as__QMARK_nblank(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nif(clojure.string.blank_QMARK_(x)){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_kw \x3d (function taoensso$encore$as__QMARK_kw(x){\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_name \x3d (function taoensso$encore$as__QMARK_name(x){\nif(taoensso.encore.named_QMARK_(x)){\nreturn cljs.core.name(x);\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_qname \x3d (function taoensso$encore$as__QMARK_qname(x){\nif(taoensso.encore.named_QMARK_(x)){\nvar n \x3d cljs.core.name(x);\nvar b2__30646__auto__ \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar ns \x3d b2__30646__auto__;\nreturn [ns,\x22/\x22,n].join(\x27\x27);\n} else {\nreturn n;\n}\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_nempty_str \x3d (function taoensso$encore$as__QMARK_nempty_str(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22\x22)){\nreturn null;\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nblank_trim \x3d (function taoensso$encore$as__QMARK_nblank_trim(x){\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar s \x3d clojure.string.trim(x);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)){\nreturn null;\n} else {\nreturn s;\n}\n} else {\nreturn null;\n}\n});\n\n\ntaoensso.encore.as__QMARK_int \x3d (function taoensso$encore$as__QMARK_int(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.long$(x);\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.encore.parse_js_int(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_float \x3d (function taoensso$encore$as__QMARK_float(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.encore.parse_js_float(x);\n} else {\nreturn null;\n}\n}\n});\n\ntaoensso.encore.as__QMARK_nat_int \x3d (function taoensso$encore$as__QMARK_nat_int(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar n \x3d b2__30646__auto__;\nif((n \x3c (0))){\nreturn null;\n} else {\nreturn n;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pos_int \x3d (function taoensso$encore$as__QMARK_pos_int(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar n \x3d b2__30646__auto__;\nif((n \x3e (0))){\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_nat_float \x3d (function taoensso$encore$as__QMARK_nat_float(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar n \x3d b2__30646__auto__;\nif((n \x3c (0))){\nreturn null;\n} else {\nreturn n;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pos_float \x3d (function taoensso$encore$as__QMARK_pos_float(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar n \x3d b2__30646__auto__;\nif((n \x3e (0))){\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_pnum \x3d (function taoensso$encore$as__QMARK_pnum(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar f \x3d b2__30646__auto__;\nif((f \x3e 1.0)){\nreturn 1.0;\n} else {\nif((f \x3c 0.0)){\nreturn 0.0;\n} else {\nreturn f;\n}\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_rnum \x3d (function taoensso$encore$as__QMARK_rnum(x){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar f \x3d b2__30646__auto__;\nif((f \x3e 1.0)){\nreturn 1.0;\n} else {\nif((f \x3c -1.0)){\nreturn -0.0;\n} else {\nreturn f;\n}\n}\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.as__QMARK_bool \x3d (function taoensso$encore$as__QMARK_bool(x){\nif(((x \x3d\x3d\x3d true) || (((x \x3d\x3d\x3d false) || ((x \x3d\x3d null)))))){\nreturn x;\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,(0))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22false\x22)) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22FALSE\x22)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x220\x22)))))))){\nreturn false;\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,(1))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22true\x22)) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x22TRUE\x22)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,\x221\x22)))))))){\nreturn true;\n} else {\nreturn null;\n}\n}\n}\n});\n\nvar regex_34586 \x3d /^[^\\s@]+@[^\\s@]+\\.\\S*[^\\.]$/;\ntaoensso.encore.as__QMARK_email \x3d (function taoensso$encore$as__QMARK_email(var_args){\nvar G__33811 \x3d arguments.length;\nswitch (G__33811) {\ncase 1:\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_s){\nreturn taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2((320),_QMARK_s);\n}));\n\n(taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2 \x3d (function (max_len,_QMARK_s){\nvar b2__30646__auto__ \x3d (function (){var and__5023__auto__ \x3d _QMARK_s;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn clojure.string.trim(_QMARK_s);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar s \x3d b2__30646__auto__;\nif((cljs.core.count(s) \x3c\x3d max_len)){\nreturn cljs.core.re_find(regex_34586,s);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_email.cljs$lang$maxFixedArity \x3d 2);\n\n\n\ntaoensso.encore.as__QMARK_nemail \x3d (function taoensso$encore$as__QMARK_nemail(var_args){\nvar G__33813 \x3d arguments.length;\nswitch (G__33813) {\ncase 1:\nreturn taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1 \x3d (function (_QMARK_s){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(_QMARK_s);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar email \x3d b2__30646__auto__;\nreturn clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email)));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2 \x3d (function (max_len,_QMARK_s){\nvar b2__30646__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(max_len,_QMARK_s);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar email \x3d b2__30646__auto__;\nreturn clojure.string.lower_case((taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1(email) : taoensso.encore.norm_str.call(null,email)));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.as__QMARK_nemail.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore._as_throw \x3d (function taoensso$encore$_as_throw(kind,x){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1026,3], null),[\x22[encore/as-\x22,cljs.core.name(kind),\x22] failed against arg: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22pred-kind\x22,\x22pred-kind\x22,138885083),kind,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),null);\n});\nvar _as_throw_34589 \x3d taoensso.encore._as_throw;\ntaoensso.encore.as_nblank \x3d (function taoensso$encore$as_nblank(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nblank(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nblank\x22,\x22nblank\x22,626815585),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nblank\x22,\x22nblank\x22,626815585),x));\n}\n});\n\ntaoensso.encore.as_nblank_trim \x3d (function taoensso$encore$as_nblank_trim(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nblank_trim(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nblank-trim\x22,\x22nblank-trim\x22,-1443525862),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nblank-trim\x22,\x22nblank-trim\x22,-1443525862),x));\n}\n});\n\ntaoensso.encore.as_nempty_str \x3d (function taoensso$encore$as_nempty_str(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nempty_str(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nempty-str\x22,\x22nempty-str\x22,-215700100),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nempty-str\x22,\x22nempty-str\x22,-215700100),x));\n}\n});\n\ntaoensso.encore.as_name \x3d (function taoensso$encore$as_name(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_name(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),x));\n}\n});\n\ntaoensso.encore.as_qname \x3d (function taoensso$encore$as_qname(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_qname(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22qname\x22,\x22qname\x22,-1983612179),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22qname\x22,\x22qname\x22,-1983612179),x));\n}\n});\n\ntaoensso.encore.as_nzero \x3d (function taoensso$encore$as_nzero(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nzero(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nzero\x22,\x22nzero\x22,2053173656),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nzero\x22,\x22nzero\x22,2053173656),x));\n}\n});\n\ntaoensso.encore.as_kw \x3d (function taoensso$encore$as_kw(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_kw(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kw\x22,\x22kw\x22,1158308175),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22kw\x22,\x22kw\x22,1158308175),x));\n}\n});\n\ntaoensso.encore.as_email \x3d (function taoensso$encore$as_email(var_args){\nvar G__33815 \x3d arguments.length;\nswitch (G__33815) {\ncase 1:\nreturn taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x));\n}\n}));\n\n(taoensso.encore.as_email.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_email.cljs$core$IFn$_invoke$arity$2(n,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22email\x22,\x22email\x22,1415816706),x));\n}\n}));\n\n(taoensso.encore.as_email.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.as_nemail \x3d (function taoensso$encore$as_nemail(var_args){\nvar G__33817 \x3d arguments.length;\nswitch (G__33817) {\ncase 1:\nreturn taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x));\n}\n}));\n\n(taoensso.encore.as_nemail.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nemail.cljs$core$IFn$_invoke$arity$2(n,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nemail\x22,\x22nemail\x22,318708381),x));\n}\n}));\n\n(taoensso.encore.as_nemail.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.as_int \x3d (function taoensso$encore$as_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22int\x22,\x22int\x22,-1741416922),x));\n}\n});\n\ntaoensso.encore.as_nat_int \x3d (function taoensso$encore$as_nat_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nat_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nat-int\x22,\x22nat-int\x22,313429715),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nat-int\x22,\x22nat-int\x22,313429715),x));\n}\n});\n\ntaoensso.encore.as_pos_int \x3d (function taoensso$encore$as_pos_int(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pos_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos-int\x22,\x22pos-int\x22,15030207),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22pos-int\x22,\x22pos-int\x22,15030207),x));\n}\n});\n\ntaoensso.encore.as_float \x3d (function taoensso$encore$as_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22float\x22,\x22float\x22,-1732389368),x));\n}\n});\n\ntaoensso.encore.as_nat_float \x3d (function taoensso$encore$as_nat_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_nat_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nat-float\x22,\x22nat-float\x22,-371030973),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22nat-float\x22,\x22nat-float\x22,-371030973),x));\n}\n});\n\ntaoensso.encore.as_pos_float \x3d (function taoensso$encore$as_pos_float(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pos_float(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos-float\x22,\x22pos-float\x22,-715200084),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22pos-float\x22,\x22pos-float\x22,-715200084),x));\n}\n});\n\ntaoensso.encore.as_pnum \x3d (function taoensso$encore$as_pnum(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_pnum(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pnum\x22,\x22pnum\x22,-602522434),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22pnum\x22,\x22pnum\x22,-602522434),x));\n}\n});\n\ntaoensso.encore.as_rnum \x3d (function taoensso$encore$as_rnum(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_rnum(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22rnum\x22,\x22rnum\x22,-783850724),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22rnum\x22,\x22rnum\x22,-783850724),x));\n}\n});\n\ntaoensso.encore.as_pnum_BANG_ \x3d (function taoensso$encore$as_pnum_BANG_(x){\nif(cljs.core.truth_(taoensso.encore.pnum_QMARK_(x))){\nreturn x;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pnum!\x22,\x22pnum!\x22,837651383),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22pnum!\x22,\x22pnum!\x22,837651383),x));\n}\n});\n\ntaoensso.encore.as_rnum_BANG_ \x3d (function taoensso$encore$as_rnum_BANG_(x){\nif(cljs.core.truth_(taoensso.encore.rnum_QMARK_(x))){\nreturn x;\n} else {\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22rnum!\x22,\x22rnum!\x22,-567516079),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22rnum!\x22,\x22rnum!\x22,-567516079),x));\n}\n});\n\ntaoensso.encore.as_bool \x3d (function taoensso$encore$as_bool(x){\nvar _QMARK_b \x3d taoensso.encore.as__QMARK_bool(x);\nif((_QMARK_b \x3d\x3d null)){\nreturn (_as_throw_34589.cljs$core$IFn$_invoke$arity$2 ? _as_throw_34589.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bool\x22,\x22bool\x22,1444635321),x) : _as_throw_34589.call(null,new cljs.core.Keyword(null,\x22bool\x22,\x22bool\x22,1444635321),x));\n} else {\nreturn _QMARK_b;\n}\n});\ntaoensso.encore.convey_reduced \x3d (function taoensso$encore$convey_reduced(x){\nif(cljs.core.reduced_QMARK_(x)){\nreturn cljs.core.reduced(x);\n} else {\nreturn x;\n}\n});\n/**\n * Public version of `core/preserving-reduced`.\n */\ntaoensso.encore.preserve_reduced \x3d (function taoensso$encore$preserve_reduced(rf){\nreturn (function (acc,in$){\nvar result \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\nif(cljs.core.reduced_QMARK_(result)){\nreturn cljs.core.reduced(result);\n} else {\nreturn result;\n}\n});\n});\n/**\n * Like `reduce-kv` but takes a flat sequence of kv pairs.\n */\ntaoensso.encore.reduce_kvs \x3d (function taoensso$encore$reduce_kvs(rf,init,kvs){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1((2)),cljs.core.completing.cljs$core$IFn$_invoke$arity$1((function (acc,p__33818){\nvar vec__33819 \x3d p__33818;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33819,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33819,(1),null);\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n})),init,kvs);\n});\n/**\n * No longer useful with Clojure 1.7+, just use (reduce f init (range ...)).\n */\ntaoensso.encore.reduce_n \x3d (function taoensso$encore$reduce_n(var_args){\nvar G__33823 \x3d arguments.length;\nswitch (G__33823) {\ncase 3:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3 \x3d (function (rf,init,end){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(end));\n}));\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4 \x3d (function (rf,init,start,end){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end));\n}));\n\n(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf,init,start,end,step){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,cljs.core.range.cljs$core$IFn$_invoke$arity$3(start,end,step));\n}));\n\n(taoensso.encore.reduce_n.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Like `reduce` but takes (rf [acc idx in]) with idx as in `map-indexed`.\n * As `reduce-kv` against vector coll, but works on any seqable coll type.\n */\ntaoensso.encore.reduce_indexed \x3d (function taoensso$encore$reduce_indexed(rf,init,coll){\nvar c \x3d (taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 ? taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0() : taoensso.encore.counter.call(null));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nvar G__33824 \x3d acc;\nvar G__33825 \x3d (c.cljs$core$IFn$_invoke$arity$0 ? c.cljs$core$IFn$_invoke$arity$0() : c.call(null));\nvar G__33826 \x3d in$;\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33824,G__33825,G__33826) : rf.call(null,G__33824,G__33825,G__33826));\n}),init,coll);\n});\n/**\n * Like `reduce-kv` but for JavaScript objects.\n */\ntaoensso.encore.reduce_obj \x3d (function taoensso$encore$reduce_obj(f,init,o){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,k){\nvar G__33827 \x3d acc;\nvar G__33828 \x3d k;\nvar G__33829 \x3d taoensso.encore.goog$module$goog$object.get(o,k,null);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__33827,G__33828,G__33829) : f.call(null,G__33827,G__33828,G__33829));\n}),init,cljs.core.js_keys(o));\n});\ntaoensso.encore.run_BANG_ \x3d (function taoensso$encore$run_BANG_(proc,coll){\ncljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__33831_SHARP_,p2__33830_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$1 ? proc.cljs$core$IFn$_invoke$arity$1(p2__33830_SHARP_) : proc.call(null,p2__33830_SHARP_));\n}),null,coll);\n\nreturn null;\n});\n\ntaoensso.encore.run_kv_BANG_ \x3d (function taoensso$encore$run_kv_BANG_(proc,m){\ncljs.core.reduce_kv((function (p1__33834_SHARP_,p2__33832_SHARP_,p3__33833_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33832_SHARP_,p3__33833_SHARP_) : proc.call(null,p2__33832_SHARP_,p3__33833_SHARP_));\n}),null,m);\n\nreturn null;\n});\n\ntaoensso.encore.run_kvs_BANG_ \x3d (function taoensso$encore$run_kvs_BANG_(proc,kvs){\ntaoensso.encore.reduce_kvs((function (p1__33837_SHARP_,p2__33835_SHARP_,p3__33836_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33835_SHARP_,p3__33836_SHARP_) : proc.call(null,p2__33835_SHARP_,p3__33836_SHARP_));\n}),null,kvs);\n\nreturn null;\n});\n\ntaoensso.encore.run_obj_BANG_ \x3d (function taoensso$encore$run_obj_BANG_(proc,obj){\ntaoensso.encore.reduce_obj((function (p1__33840_SHARP_,p2__33838_SHARP_,p3__33839_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$2 ? proc.cljs$core$IFn$_invoke$arity$2(p2__33838_SHARP_,p3__33839_SHARP_) : proc.call(null,p2__33838_SHARP_,p3__33839_SHARP_));\n}),null,obj);\n\nreturn null;\n});\nvar rf_34607 \x3d (function (pred){\nreturn (function (_acc,in$){\nvar b2__30646__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar p \x3d b2__30646__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first truthy (pred x) for x in coll.\n * Like `core/some` but faster and supports transducers.\n */\ntaoensso.encore.rsome \x3d (function taoensso$encore$rsome(var_args){\nvar G__33842 \x3d arguments.length;\nswitch (G__33842) {\ncase 2:\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34607(pred),null,coll);\n}));\n\n(taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34607(pred)),null,coll);\n}));\n\n(taoensso.encore.rsome.cljs$lang$maxFixedArity \x3d 3);\n\nvar rf_34615 \x3d (function (pred){\nreturn (function (_acc,k,v){\nvar b2__30646__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar p \x3d b2__30646__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\nvar tf_34616 \x3d (function (pred){\nreturn (function (_acc,p__33843){\nvar vec__33844 \x3d p__33843;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33844,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33844,(1),null);\nvar b2__30646__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar p \x3d b2__30646__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first truthy (pred k v) for kv in associative coll.\n * Like `core/some` but faster and takes kvs.\n */\ntaoensso.encore.rsome_kv \x3d (function taoensso$encore$rsome_kv(pred,coll){\nreturn cljs.core.reduce_kv(rf_34615(pred),null,coll);\n});\nvar rf_34617 \x3d (function (pred){\nreturn (function (_acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn cljs.core.reduced(in$);\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first x in coll with truthy (pred x).\n */\ntaoensso.encore.rfirst \x3d (function taoensso$encore$rfirst(var_args){\nvar G__33848 \x3d arguments.length;\nswitch (G__33848) {\ncase 2:\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34617(pred),null,coll);\n}));\n\n(taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34617(pred)),null,coll);\n}));\n\n(taoensso.encore.rfirst.cljs$lang$maxFixedArity \x3d 3);\n\nvar entry_34621 \x3d (function (k,v){\nreturn (new cljs.core.MapEntry(k,v,null));\n});\nvar rf_34622 \x3d (function (pred){\nreturn (function (_acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.reduced(entry_34621(k,v));\n} else {\nreturn null;\n}\n});\n});\nvar tf_34623 \x3d (function (pred){\nreturn (function (_acc,p__33849){\nvar vec__33850 \x3d p__33849;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33850,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33850,(1),null);\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.reduced(entry_34621(k,v));\n} else {\nreturn null;\n}\n});\n});\n/**\n * Returns nil, or first [k v] entry in associative coll with truthy (pred k v).\n */\ntaoensso.encore.rfirst_kv \x3d (function taoensso$encore$rfirst_kv(pred,coll){\nreturn cljs.core.reduce_kv(rf_34622(pred),null,coll);\n});\nvar rf_34624 \x3d (function (pred){\nreturn (function (_acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\n/**\n * Returns true iff (pred x) is truthy for every x in coll.\n * Like `core/every?` but faster and supports transducers.\n */\ntaoensso.encore.revery_QMARK_ \x3d (function taoensso$encore$revery_QMARK_(var_args){\nvar G__33854 \x3d arguments.length;\nswitch (G__33854) {\ncase 2:\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf_34624(pred),true,coll);\n}));\n\n(taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,pred,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf_34624(pred)),true,coll);\n}));\n\n(taoensso.encore.revery_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\nvar rf_34626 \x3d (function (pred){\nreturn (function (_acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\nvar tf_34627 \x3d (function (pred){\nreturn (function (_acc,p__33855){\nvar vec__33856 \x3d p__33855;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33856,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33856,(1),null);\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n});\n});\n/**\n * Returns true iff (pred k v) is truthy for every kv in associative coll.\n */\ntaoensso.encore.revery_kv_QMARK_ \x3d (function taoensso$encore$revery_kv_QMARK_(pred,coll){\nreturn cljs.core.reduce_kv(rf_34626(pred),true,coll);\n});\n/**\n * Reduces given sequential xs and ys as pairs (e.g. key-val pairs).\n * Calls (rf acc x y) for each sequential pair.\n * \n * Useful, among other things, as a more flexible version of `zipmap`.\n */\ntaoensso.encore.reduce_zip \x3d (function taoensso$encore$reduce_zip(var_args){\nvar G__33862 \x3d arguments.length;\nswitch (G__33862) {\ncase 4:\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$4 \x3d (function (rf,init,xs,ys){\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5(rf,init,xs,ys,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459));\n}));\n\n(taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf,init,xs,ys,not_found){\nif(((cljs.core.vector_QMARK_(xs)) \x26\x26 (cljs.core.vector_QMARK_(ys)))){\nvar n \x3d ((cljs.core.keyword_identical_QMARK_(not_found,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459)))?(function (){var x__5113__auto__ \x3d cljs.core.count(xs);\nvar y__5114__auto__ \x3d cljs.core.count(ys);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})():(function (){var x__5110__auto__ \x3d cljs.core.count(xs);\nvar y__5111__auto__ \x3d cljs.core.count(ys);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})());\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,idx){\nvar G__33863 \x3d acc;\nvar G__33864 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(xs,idx,not_found);\nvar G__33865 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(ys,idx,not_found);\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33863,G__33864,G__33865) : rf.call(null,G__33863,G__33864,G__33865));\n}),init,n);\n} else {\nvar not_found_QMARK_ \x3d (!(cljs.core.keyword_identical_QMARK_(not_found,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22skip\x22,\x22taoensso.encore/skip\x22,-726061459))));\nvar acc \x3d init;\nvar xs__$1 \x3d cljs.core.seq(xs);\nvar ys__$1 \x3d cljs.core.seq(ys);\nwhile(true){\nif(((not_found_QMARK_)?((xs__$1) || (ys__$1)):((xs__$1) \x26\x26 (ys__$1)))){\nvar result \x3d (function (){var G__33866 \x3d acc;\nvar G__33867 \x3d cljs.core.first((function (){var or__5025__auto__ \x3d xs__$1;\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null);\n}\n})());\nvar G__33868 \x3d cljs.core.first((function (){var or__5025__auto__ \x3d ys__$1;\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [not_found], null);\n}\n})());\nreturn (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(G__33866,G__33867,G__33868) : rf.call(null,G__33866,G__33867,G__33868));\n})();\nif(cljs.core.reduced_QMARK_(result)){\nreturn cljs.core.deref(result);\n} else {\nvar G__34631 \x3d result;\nvar G__34632 \x3d cljs.core.next(xs__$1);\nvar G__34633 \x3d cljs.core.next(ys__$1);\nacc \x3d G__34631;\nxs__$1 \x3d G__34632;\nys__$1 \x3d G__34633;\ncontinue;\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n}\n}));\n\n(taoensso.encore.reduce_zip.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.Tup2 \x3d (function (x,y){\nthis.x \x3d x;\nthis.y \x3d y;\n});\n\n(taoensso.encore.Tup2.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22x\x22,\x22x\x22,-555367584,null),new cljs.core.Symbol(null,\x22y\x22,\x22y\x22,-117328249,null)], null);\n}));\n\n(taoensso.encore.Tup2.cljs$lang$type \x3d true);\n\n(taoensso.encore.Tup2.cljs$lang$ctorStr \x3d \x22taoensso.encore/Tup2\x22);\n\n(taoensso.encore.Tup2.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Tup2\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Tup2.\n */\ntaoensso.encore.__GT_Tup2 \x3d (function taoensso$encore$__GT_Tup2(x,y){\nreturn (new taoensso.encore.Tup2(x,y));\n});\n\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.Tup3 \x3d (function (x,y,z){\nthis.x \x3d x;\nthis.y \x3d y;\nthis.z \x3d z;\n});\n\n(taoensso.encore.Tup3.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22x\x22,\x22x\x22,-555367584,null),new cljs.core.Symbol(null,\x22y\x22,\x22y\x22,-117328249,null),new cljs.core.Symbol(null,\x22z\x22,\x22z\x22,851004344,null)], null);\n}));\n\n(taoensso.encore.Tup3.cljs$lang$type \x3d true);\n\n(taoensso.encore.Tup3.cljs$lang$ctorStr \x3d \x22taoensso.encore/Tup3\x22);\n\n(taoensso.encore.Tup3.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Tup3\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Tup3.\n */\ntaoensso.encore.__GT_Tup3 \x3d (function taoensso$encore$__GT_Tup3(x,y,z){\nreturn (new taoensso.encore.Tup3(x,y,z));\n});\n\n/**\n * Like `reduce` but supports separate simultaneous accumulators\n * as a micro-optimization when reducing a large collection multiple\n * times.\n */\ntaoensso.encore.reduce_multi \x3d (function taoensso$encore$reduce_multi(var_args){\nvar G__33870 \x3d arguments.length;\nswitch (G__33870) {\ncase 3:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 7:\nreturn taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$3 \x3d (function (rf,init,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf,init,coll);\n}));\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5 \x3d (function (rf1,init1,rf2,init2,coll){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (tuple,in$){\nvar x \x3d tuple.x;\nvar y \x3d tuple.y;\nvar rx_QMARK_ \x3d cljs.core.reduced_QMARK_(x);\nvar ry_QMARK_ \x3d cljs.core.reduced_QMARK_(y);\nif(((rx_QMARK_) \x26\x26 (ry_QMARK_))){\nreturn cljs.core.reduced(tuple);\n} else {\nvar x__$1 \x3d ((rx_QMARK_)?x:(rf1.cljs$core$IFn$_invoke$arity$2 ? rf1.cljs$core$IFn$_invoke$arity$2(x,in$) : rf1.call(null,x,in$)));\nvar y__$1 \x3d ((ry_QMARK_)?y:(rf2.cljs$core$IFn$_invoke$arity$2 ? rf2.cljs$core$IFn$_invoke$arity$2(y,in$) : rf2.call(null,y,in$)));\nreturn (new taoensso.encore.Tup2(x__$1,y__$1));\n}\n}),(new taoensso.encore.Tup2(init1,init2)),coll);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.unreduced(tuple.x),cljs.core.unreduced(tuple.y)], null);\n}));\n\n(taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$7 \x3d (function (rf1,init1,rf2,init2,rf3,init3,coll){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (tuple,in$){\nvar x \x3d tuple.x;\nvar y \x3d tuple.y;\nvar z \x3d tuple.z;\nvar rx_QMARK_ \x3d cljs.core.reduced_QMARK_(x);\nvar ry_QMARK_ \x3d cljs.core.reduced_QMARK_(y);\nvar rz_QMARK_ \x3d cljs.core.reduced_QMARK_(z);\nif(((rx_QMARK_) \x26\x26 (((ry_QMARK_) \x26\x26 (rz_QMARK_))))){\nreturn cljs.core.reduced(tuple);\n} else {\nvar x__$1 \x3d ((rx_QMARK_)?x:(rf1.cljs$core$IFn$_invoke$arity$2 ? rf1.cljs$core$IFn$_invoke$arity$2(x,in$) : rf1.call(null,x,in$)));\nvar y__$1 \x3d ((ry_QMARK_)?y:(rf2.cljs$core$IFn$_invoke$arity$2 ? rf2.cljs$core$IFn$_invoke$arity$2(y,in$) : rf2.call(null,y,in$)));\nvar z__$1 \x3d ((rz_QMARK_)?z:(rf3.cljs$core$IFn$_invoke$arity$2 ? rf3.cljs$core$IFn$_invoke$arity$2(z,in$) : rf3.call(null,z,in$)));\nreturn (new taoensso.encore.Tup3(x__$1,y__$1,z__$1));\n}\n}),(new taoensso.encore.Tup3(init1,init2,init3)),coll);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.unreduced(tuple.x),cljs.core.unreduced(tuple.y),cljs.core.unreduced(tuple.z)], null);\n}));\n\n(taoensso.encore.reduce_multi.cljs$lang$maxFixedArity \x3d 7);\n\n/**\n * Reduces sequence of elements interleaved from given `colls`.\n * (reduce-interleave-all conj [] [[:a :b] [1 2 3]]) \x3d\x3e [:a 1 :b 2 3]\n */\ntaoensso.encore.reduce_interleave_all \x3d (function taoensso$encore$reduce_interleave_all(rf,init,colls){\nif(cljs.core.empty_QMARK_(colls)){\nreturn init;\n} else {\nvar acc \x3d init;\nvar colls__$1 \x3d colls;\nwhile(true){\nvar tuple \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (acc,colls__$1){\nreturn (function (tuple,in$){\nif(cljs.core.empty_QMARK_(in$)){\nreturn tuple;\n} else {\nvar vec__33871 \x3d in$;\nvar seq__33872 \x3d cljs.core.seq(vec__33871);\nvar first__33873 \x3d cljs.core.first(seq__33872);\nvar seq__33872__$1 \x3d cljs.core.next(seq__33872);\nvar in1 \x3d first__33873;\nvar next_in \x3d seq__33872__$1;\nvar acc__$1 \x3d tuple.x;\nvar ncs \x3d tuple.y;\nvar res \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc__$1,in1) : rf.call(null,acc__$1,in1));\nif(cljs.core.reduced_QMARK_(res)){\nreturn cljs.core.reduced((new taoensso.encore.Tup2(cljs.core.deref(res),null)));\n} else {\nreturn (new taoensso.encore.Tup2(res,((next_in)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d ncs;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),next_in):ncs)));\n}\n}\n});})(acc,colls__$1))\n,(new taoensso.encore.Tup2(acc,null)),colls__$1);\nvar acc__$1 \x3d tuple.x;\nvar next_colls \x3d tuple.y;\nif(cljs.core.truth_(next_colls)){\nvar G__34637 \x3d acc__$1;\nvar G__34638 \x3d next_colls;\nacc \x3d G__34637;\ncolls__$1 \x3d G__34638;\ncontinue;\n} else {\nreturn acc__$1;\n}\nbreak;\n}\n}\n});\nvar map_like_QMARK__34639 \x3d (function (p1__33874_SHARP_){\nreturn ((cljs.core.map_QMARK_(p1__33874_SHARP_)) || (cljs.core.record_QMARK_(p1__33874_SHARP_)));\n});\n/**\n * Private, don\x27t use.\n * Simpler, faster `clojure.walk/postwalk`.\n */\ntaoensso.encore.postwalk \x3d (function taoensso$encore$postwalk(var_args){\nvar G__33878 \x3d arguments.length;\nswitch (G__33878) {\ncase 2:\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,f){\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(false,x,f);\n}));\n\n(taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3 \x3d (function (preserve_seqs_QMARK_,x,f){\nvar ps \x3d (cljs.core.truth_(preserve_seqs_QMARK_)?cljs.core.seq:cljs.core.identity);\nvar pw \x3d (function (p1__33875_SHARP_,p2__33876_SHARP_){\nreturn taoensso.encore.postwalk.cljs$core$IFn$_invoke$arity$3(preserve_seqs_QMARK_,p1__33875_SHARP_,p2__33876_SHARP_);\n});\nif(map_like_QMARK__34639(x)){\nvar G__33879 \x3d cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,pw(k,f),pw(v,f));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33879) : f.call(null,G__33879));\n} else {\nif(cljs.core.seq_QMARK_(x)){\nvar G__33880 \x3d (function (){var G__33881 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f));\n}),cljs.core.PersistentVector.EMPTY,x);\nreturn (ps.cljs$core$IFn$_invoke$arity$1 ? ps.cljs$core$IFn$_invoke$arity$1(G__33881) : ps.call(null,G__33881));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33880) : f.call(null,G__33880));\n} else {\nif(cljs.core.coll_QMARK_(x)){\nvar G__33882 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,pw(in$,f));\n}),cljs.core.empty(x),x);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33882) : f.call(null,G__33882));\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x));\n}\n}\n}\n}));\n\n(taoensso.encore.postwalk.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.subfn \x3d (function taoensso$encore$subfn(context,by_idx_fn){\nreturn (function() {\nvar taoensso$encore$subfn_$_subfn_STAR_ \x3d null;\nvar taoensso$encore$subfn_$_subfn_STAR___2 \x3d (function (c,start_idx){\nif(cljs.core.truth_(c)){\nvar max_idx \x3d cljs.core.count(c);\nvar start_idx__$1 \x3d cljs.core.long$(start_idx);\nif((start_idx__$1 \x3c max_idx)){\nvar G__33884 \x3d c;\nvar G__33885 \x3d (function (){var x__5110__auto__ \x3d start_idx__$1;\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar G__33886 \x3d max_idx;\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(G__33884,G__33885,G__33886) : by_idx_fn.call(null,G__33884,G__33885,G__33886));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nvar taoensso$encore$subfn_$_subfn_STAR___3 \x3d (function (c,start_idx,end_idx){\nif(cljs.core.truth_(c)){\nvar start_idx__$1 \x3d (function (){var x__5110__auto__ \x3d cljs.core.long$(start_idx);\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar end_idx__$1 \x3d (function (){var x__5113__auto__ \x3d cljs.core.long$(end_idx);\nvar y__5114__auto__ \x3d cljs.core.count(c);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx__$1 \x3c end_idx__$1)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx__$1,end_idx__$1) : by_idx_fn.call(null,c,start_idx__$1,end_idx__$1));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nvar taoensso$encore$subfn_$_subfn_STAR___4 \x3d (function (c,kind,start,end){\nif(cljs.core.truth_(c)){\nvar max_end \x3d cljs.core.count(c);\nvar end__$1 \x3d ((cljs.core.keyword_identical_QMARK_(end,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548)))?max_end:end);\nvar G__33887 \x3d kind;\nvar G__33887__$1 \x3d (((G__33887 instanceof cljs.core.Keyword))?G__33887.fqn:null);\nswitch (G__33887__$1) {\ncase \x22by-idx\x22:\nreturn taoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$3(c,start,end__$1);\n\nbreak;\ncase \x22by-len\x22:\nvar len \x3d cljs.core.long$(end__$1);\nif((len \x3c\x3d (0))){\nreturn null;\n} else {\nvar start_idx \x3d cljs.core.long$(start);\nif((start_idx \x3c (0))){\nvar start_idx__$1 \x3d (function (){var x__5110__auto__ \x3d (start_idx + max_end);\nvar y__5111__auto__ \x3d (0);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar end_idx \x3d (function (){var x__5113__auto__ \x3d (start_idx__$1 + len);\nvar y__5114__auto__ \x3d max_end;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx__$1 \x3c end_idx)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx__$1,end_idx) : by_idx_fn.call(null,c,start_idx__$1,end_idx));\n} else {\nreturn null;\n}\n} else {\nvar end_idx \x3d (function (){var x__5113__auto__ \x3d (start_idx + len);\nvar y__5114__auto__ \x3d max_end;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nif((start_idx \x3c end_idx)){\nreturn (by_idx_fn.cljs$core$IFn$_invoke$arity$3 ? by_idx_fn.cljs$core$IFn$_invoke$arity$3(c,start_idx,end_idx) : by_idx_fn.call(null,c,start_idx,end_idx));\n} else {\nreturn null;\n}\n}\n}\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1388,12], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),context,new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22by-idx\x22,\x22by-idx\x22,-1997587605),null,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),null], null), null)], null));\n\n}\n} else {\nreturn null;\n}\n});\ntaoensso$encore$subfn_$_subfn_STAR_ \x3d function(c,kind,start,end){\nswitch(arguments.length){\ncase 2:\nreturn taoensso$encore$subfn_$_subfn_STAR___2.call(this,c,kind);\ncase 3:\nreturn taoensso$encore$subfn_$_subfn_STAR___3.call(this,c,kind,start);\ncase 4:\nreturn taoensso$encore$subfn_$_subfn_STAR___4.call(this,c,kind,start,end);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$subfn_$_subfn_STAR___2;\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$subfn_$_subfn_STAR___3;\ntaoensso$encore$subfn_$_subfn_STAR_.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$subfn_$_subfn_STAR___4;\nreturn taoensso$encore$subfn_$_subfn_STAR_;\n})()\n});\n/**\n * Returns a non-empty sub-vector, or nil.\n * Like `core/subvec` but:\n * - Doesn\x27t throw when out-of-bounds (clips to bounds).\n * - Returns nil rather than an empty vector.\n * - When given `:by-len` kind (4-arity case):\n * - `start` may be -ive (\x3d\x3e index from right of vector).\n * - `end` is desired vector length, or `:max`.\n */\ntaoensso.encore.subvec \x3d taoensso.encore.subfn(new cljs.core.Symbol(\x22taoensso.encore\x22,\x22subvec\x22,\x22taoensso.encore/subvec\x22,-995330198,null),cljs.core.subvec);\n/**\n * Returns a non-empty sub-string, or nil.\n * Like `subs` but:\n * - Doesn\x27t throw when out-of-bounds (clips to bounds).\n * - Returns nil rather than an empty string.\n * - When given `:by-len` kind (4-arity case):\n * - `start` may be -ive (\x3d\x3e index from right of string).\n * - `end` is desired string length, or `:max`.\n */\ntaoensso.encore.substr \x3d taoensso.encore.subfn(new cljs.core.Symbol(\x22taoensso.encore\x22,\x22substr\x22,\x22taoensso.encore/substr\x22,852382831,null),(function (s,n1,n2){\nreturn s.substring(n1,n2);\n}));\n/**\n * Returns a `MapEntry` with given key and value.\n */\ntaoensso.encore.map_entry \x3d (function taoensso$encore$map_entry(k,v){\nreturn (new cljs.core.MapEntry(k,v,null));\n});\n/**\n * Returns true iff given a `PersistentQueue`.\n */\ntaoensso.encore.queue_QMARK_ \x3d (function taoensso$encore$queue_QMARK_(x){\nreturn (x instanceof cljs.core.PersistentQueue);\n});\n/**\n * Returns a new `PersistentQueue`.\n */\ntaoensso.encore.queue \x3d (function taoensso$encore$queue(var_args){\nvar G__33889 \x3d arguments.length;\nswitch (G__33889) {\ncase 1:\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 0:\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0(),coll);\n}));\n\n(taoensso.encore.queue.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentQueue.EMPTY;\n}));\n\n(taoensso.encore.queue.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns a new `PersistentQueue` given items.\n */\ntaoensso.encore.queue_STAR_ \x3d (function taoensso$encore$queue_STAR_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___34645 \x3d arguments.length;\nvar i__5750__auto___34646 \x3d (0);\nwhile(true){\nif((i__5750__auto___34646 \x3c len__5749__auto___34645)){\nargs__5755__auto__.push((arguments[i__5750__auto___34646]));\n\nvar G__34647 \x3d (i__5750__auto___34646 + (1));\ni__5750__auto___34646 \x3d G__34647;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.queue_STAR_.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.queue_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (items){\nreturn taoensso.encore.queue.cljs$core$IFn$_invoke$arity$1(items);\n}));\n\n(taoensso.encore.queue_STAR_.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.queue_STAR_.cljs$lang$applyTo \x3d (function (seq33890){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq33890));\n}));\n\ntaoensso.encore.ensure_vec \x3d (function taoensso$encore$ensure_vec(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.vec(x);\n}\n});\ntaoensso.encore.ensure_set \x3d (function taoensso$encore$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\n/**\n * Like `assoc` for JS objects.\n */\ntaoensso.encore.oset \x3d (function taoensso$encore$oset(o,k,v){\nreturn taoensso.encore.goog$module$goog$object.set((((o \x3d\x3d null))?({}):o),cljs.core.name(k),v);\n});\nvar sentinel_34648 \x3d ({});\n/**\n * Experimental, subject to change without notice.\n * Like `assoc-in` for JS objects.\n */\ntaoensso.encore.oset_in \x3d (function taoensso$encore$oset_in(o,ks,v){\nvar o__$1 \x3d (((o \x3d\x3d null))?({}):o);\nvar b2__30646__auto__ \x3d cljs.core.seq(ks);\nif(b2__30646__auto__){\nvar ks__$1 \x3d b2__30646__auto__;\nvar o_next \x3d o__$1;\nvar ks_next \x3d ks__$1;\nwhile(true){\nvar k1 \x3d cljs.core.name(cljs.core.first(ks_next));\nvar o_next__$1 \x3d (function (){var o_next_STAR_ \x3d taoensso.encore.goog$module$goog$object.get(o_next,k1,sentinel_34648);\nif((o_next_STAR_ \x3d\x3d\x3d sentinel_34648)){\nvar new_obj \x3d ({});\ntaoensso.encore.goog$module$goog$object.set(o_next,k1,new_obj);\n\nreturn new_obj;\n} else {\nreturn o_next_STAR_;\n}\n})();\nvar b2__30646__auto____$1 \x3d cljs.core.next(ks_next);\nif(b2__30646__auto____$1){\nvar ks_next__$1 \x3d b2__30646__auto____$1;\nvar G__34649 \x3d o_next__$1;\nvar G__34650 \x3d ks_next__$1;\no_next \x3d G__34649;\nks_next \x3d G__34650;\ncontinue;\n} else {\ntaoensso.encore.goog$module$goog$object.set(o_next__$1,k1,v);\n\nreturn o__$1;\n}\nbreak;\n}\n} else {\nreturn o__$1;\n}\n});\n/**\n * Like `get` for JS objects.\n */\ntaoensso.encore.oget \x3d (function taoensso$encore$oget(var_args){\nvar G__33902 \x3d arguments.length;\nswitch (G__33902) {\ncase 1:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar b2__30646__auto__ \x3d taoensso.encore.js__QMARK_window;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar o \x3d b2__30646__auto__;\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,k){\nif(cljs.core.truth_(o)){\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k),null);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.oget.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,k,not_found){\nif(cljs.core.truth_(o)){\nreturn taoensso.encore.goog$module$goog$object.get(o,cljs.core.name(k),not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.oget.cljs$lang$maxFixedArity \x3d 3);\n\nvar sentinel_34656 \x3d ({});\n/**\n * Like `get-in` for JS objects.\n */\ntaoensso.encore.oget_in \x3d (function taoensso$encore$oget_in(var_args){\nvar G__33906 \x3d arguments.length;\nswitch (G__33906) {\ncase 1:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$1 \x3d (function (ks){\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3(taoensso.encore.js__QMARK_window,ks,null);\n}));\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,ks){\nreturn taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3(o,ks,null);\n}));\n\n(taoensso.encore.oget_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,ks,not_found){\nif(cljs.core.truth_(o)){\nvar o__$1 \x3d o;\nvar ks__$1 \x3d cljs.core.seq(ks);\nwhile(true){\nif(ks__$1){\nvar o__$2 \x3d taoensso.encore.goog$module$goog$object.get(o__$1,cljs.core.name(cljs.core.first(ks__$1)),sentinel_34656);\nif((o__$2 \x3d\x3d\x3d sentinel_34656)){\nreturn not_found;\n} else {\nvar G__34660 \x3d o__$2;\nvar G__34661 \x3d cljs.core.next(ks__$1);\no__$1 \x3d G__34660;\nks__$1 \x3d G__34661;\ncontinue;\n}\n} else {\nreturn o__$1;\n}\nbreak;\n}\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.oget_in.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `get` but returns val for first key that exists in map.\n * Useful for key aliases or fallbacks. See also `get*`.\n */\ntaoensso.encore.get1 \x3d (function taoensso$encore$get1(var_args){\nvar G__33908 \x3d arguments.length;\nswitch (G__33908) {\ncase 2:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.get1.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,k){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,not_found){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k,not_found);\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k1,k2,not_found){\nvar b2__30646__auto__ \x3d (function (){var and__5023__auto__ \x3d m;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.find(m,k1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find(m,k2);\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn cljs.core.val(e);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.get1.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k1,k2,k3,not_found){\nvar b2__30646__auto__ \x3d (function (){var and__5023__auto__ \x3d m;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.find(m,k1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.find(m,k2);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.find(m,k3);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn cljs.core.val(e);\n} else {\nreturn not_found;\n}\n}));\n\n(taoensso.encore.get1.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Conjoins each non-nil value.\n */\ntaoensso.encore.conj_some \x3d (function taoensso$encore$conj_some(var_args){\nvar G__33918 \x3d arguments.length;\nswitch (G__33918) {\ncase 0:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34664 \x3d arguments.length;\nvar i__5750__auto___34665 \x3d (0);\nwhile(true){\nif((i__5750__auto___34665 \x3c len__5749__auto___34664)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34665]));\n\nvar G__34666 \x3d (i__5750__auto___34665 + (1));\ni__5750__auto___34665 \x3d G__34666;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nif((x \x3d\x3d null)){\nreturn coll;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\n}\n}));\n\n(taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_some,taoensso.encore.conj_some.cljs$core$IFn$_invoke$arity$2(coll,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.conj_some.cljs$lang$applyTo \x3d (function (seq33915){\nvar G__33916 \x3d cljs.core.first(seq33915);\nvar seq33915__$1 \x3d cljs.core.next(seq33915);\nvar G__33917 \x3d cljs.core.first(seq33915__$1);\nvar seq33915__$2 \x3d cljs.core.next(seq33915__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33916,G__33917,seq33915__$2);\n}));\n\n(taoensso.encore.conj_some.cljs$lang$maxFixedArity \x3d (2));\n\n\n/**\n * Conjoins each truthy value.\n */\ntaoensso.encore.conj_when \x3d (function taoensso$encore$conj_when(var_args){\nvar G__33923 \x3d arguments.length;\nswitch (G__33923) {\ncase 0:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34670 \x3d arguments.length;\nvar i__5750__auto___34671 \x3d (0);\nwhile(true){\nif((i__5750__auto___34671 \x3c len__5749__auto___34670)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34671]));\n\nvar G__34672 \x3d (i__5750__auto___34671 + (1));\ni__5750__auto___34671 \x3d G__34672;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nif(cljs.core.truth_(x)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\n} else {\nreturn coll;\n}\n}));\n\n(taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.conj_when,taoensso.encore.conj_when.cljs$core$IFn$_invoke$arity$2(coll,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.conj_when.cljs$lang$applyTo \x3d (function (seq33920){\nvar G__33921 \x3d cljs.core.first(seq33920);\nvar seq33920__$1 \x3d cljs.core.next(seq33920);\nvar G__33922 \x3d cljs.core.first(seq33920__$1);\nvar seq33920__$2 \x3d cljs.core.next(seq33920__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33921,G__33922,seq33920__$2);\n}));\n\n(taoensso.encore.conj_when.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Assocs each kv to given ?map iff its value is not nil.\n */\ntaoensso.encore.assoc_some \x3d (function taoensso$encore$assoc_some(var_args){\nvar G__33929 \x3d arguments.length;\nswitch (G__33929) {\ncase 3:\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34676 \x3d arguments.length;\nvar i__5750__auto___34677 \x3d (0);\nwhile(true){\nif((i__5750__auto___34677 \x3c len__5749__auto___34676)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34677]));\n\nvar G__34678 \x3d (i__5750__auto___34677 + (1));\ni__5750__auto___34677 \x3d G__34678;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_some,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_some,taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_some.cljs$lang$applyTo \x3d (function (seq33925){\nvar G__33926 \x3d cljs.core.first(seq33925);\nvar seq33925__$1 \x3d cljs.core.next(seq33925);\nvar G__33927 \x3d cljs.core.first(seq33925__$1);\nvar seq33925__$2 \x3d cljs.core.next(seq33925__$1);\nvar G__33928 \x3d cljs.core.first(seq33925__$2);\nvar seq33925__$3 \x3d cljs.core.next(seq33925__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33926,G__33927,G__33928,seq33925__$3);\n}));\n\n(taoensso.encore.assoc_some.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map iff its val is truthy.\n */\ntaoensso.encore.assoc_when \x3d (function taoensso$encore$assoc_when(var_args){\nvar G__33935 \x3d arguments.length;\nswitch (G__33935) {\ncase 3:\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34680 \x3d arguments.length;\nvar i__5750__auto___34681 \x3d (0);\nwhile(true){\nif((i__5750__auto___34681 \x3c len__5749__auto___34680)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34681]));\n\nvar G__34682 \x3d (i__5750__auto___34681 + (1));\ni__5750__auto___34681 \x3d G__34682;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_when,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_when,taoensso.encore.assoc_when.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_when.cljs$lang$applyTo \x3d (function (seq33931){\nvar G__33932 \x3d cljs.core.first(seq33931);\nvar seq33931__$1 \x3d cljs.core.next(seq33931);\nvar G__33933 \x3d cljs.core.first(seq33931__$1);\nvar seq33931__$2 \x3d cljs.core.next(seq33931__$1);\nvar G__33934 \x3d cljs.core.first(seq33931__$2);\nvar seq33931__$3 \x3d cljs.core.next(seq33931__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33932,G__33933,G__33934,seq33931__$3);\n}));\n\n(taoensso.encore.assoc_when.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map iff its key doesn\x27t already exist.\n */\ntaoensso.encore.assoc_nx \x3d (function taoensso$encore$assoc_nx(var_args){\nvar G__33941 \x3d arguments.length;\nswitch (G__33941) {\ncase 3:\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34684 \x3d arguments.length;\nvar i__5750__auto___34685 \x3d (0);\nwhile(true){\nif((i__5750__auto___34685 \x3c len__5749__auto___34684)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34685]));\n\nvar G__34686 \x3d (i__5750__auto___34685 + (1));\ni__5750__auto___34685 \x3d G__34686;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.contains_QMARK_(m,k)){\nreturn m;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.assoc_nx,m,m_kvs);\n}));\n\n(taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.assoc_nx,taoensso.encore.assoc_nx.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.assoc_nx.cljs$lang$applyTo \x3d (function (seq33937){\nvar G__33938 \x3d cljs.core.first(seq33937);\nvar seq33937__$1 \x3d cljs.core.next(seq33937);\nvar G__33939 \x3d cljs.core.first(seq33937__$1);\nvar seq33937__$2 \x3d cljs.core.next(seq33937__$1);\nvar G__33940 \x3d cljs.core.first(seq33937__$2);\nvar seq33937__$3 \x3d cljs.core.next(seq33937__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33938,G__33939,G__33940,seq33937__$3);\n}));\n\n(taoensso.encore.assoc_nx.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map if its value is nil, otherwise dissocs it.\n */\ntaoensso.encore.reassoc_some \x3d (function taoensso$encore$reassoc_some(var_args){\nvar G__33947 \x3d arguments.length;\nswitch (G__33947) {\ncase 3:\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34688 \x3d arguments.length;\nvar i__5750__auto___34689 \x3d (0);\nwhile(true){\nif((i__5750__auto___34689 \x3c len__5749__auto___34688)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34689]));\n\nvar G__34690 \x3d (i__5750__auto___34689 + (1));\ni__5750__auto___34689 \x3d G__34690;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((v \x3d\x3d null)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}));\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.reassoc_some,m,m_kvs);\n}));\n\n(taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.reassoc_some,taoensso.encore.reassoc_some.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.reassoc_some.cljs$lang$applyTo \x3d (function (seq33943){\nvar G__33944 \x3d cljs.core.first(seq33943);\nvar seq33943__$1 \x3d cljs.core.next(seq33943);\nvar G__33945 \x3d cljs.core.first(seq33943__$1);\nvar seq33943__$2 \x3d cljs.core.next(seq33943__$1);\nvar G__33946 \x3d cljs.core.first(seq33943__$2);\nvar seq33943__$3 \x3d cljs.core.next(seq33943__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33944,G__33945,G__33946,seq33943__$3);\n}));\n\n(taoensso.encore.reassoc_some.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Assocs each kv to given ?map if its value is truthy, otherwise dissocs it.\n */\ntaoensso.encore.reassoc_when \x3d (function taoensso$encore$reassoc_when(var_args){\nvar G__33953 \x3d arguments.length;\nswitch (G__33953) {\ncase 3:\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34692 \x3d arguments.length;\nvar i__5750__auto___34693 \x3d (0);\nwhile(true){\nif((i__5750__auto___34693 \x3c len__5749__auto___34692)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34693]));\n\nvar G__34694 \x3d (i__5750__auto___34693 + (1));\ni__5750__auto___34693 \x3d G__34694;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}\n}));\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.encore.reassoc_when,m,m_kvs);\n}));\n\n(taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,v,kvs){\nreturn taoensso.encore.reduce_kvs(taoensso.encore.reassoc_when,taoensso.encore.reassoc_when.cljs$core$IFn$_invoke$arity$3(m,k,v),kvs);\n}));\n\n/** @this {Function} */\n(taoensso.encore.reassoc_when.cljs$lang$applyTo \x3d (function (seq33949){\nvar G__33950 \x3d cljs.core.first(seq33949);\nvar seq33949__$1 \x3d cljs.core.next(seq33949);\nvar G__33951 \x3d cljs.core.first(seq33949__$1);\nvar seq33949__$2 \x3d cljs.core.next(seq33949__$1);\nvar G__33952 \x3d cljs.core.first(seq33949__$2);\nvar seq33949__$3 \x3d cljs.core.next(seq33949__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33950,G__33951,G__33952,seq33949__$3);\n}));\n\n(taoensso.encore.reassoc_when.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.vnext \x3d (function taoensso$encore$vnext(v){\nif((cljs.core.count(v) \x3e (1))){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1));\n} else {\nreturn null;\n}\n});\ntaoensso.encore.vrest \x3d (function taoensso$encore$vrest(v){\nif((cljs.core.count(v) \x3e (1))){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1));\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n});\ntaoensso.encore.vsplit_last \x3d (function taoensso$encore$vsplit_last(v){\nvar c \x3d cljs.core.count(v);\nif((c \x3e (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((c \x3e (1)))?cljs.core.pop(v):null),cljs.core.peek(v)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.vsplit_first \x3d (function taoensso$encore$vsplit_first(v){\nvar c \x3d cljs.core.count(v);\nif((c \x3e (0))){\nvar vec__33954 \x3d v;\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33954,(0),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v1,(((c \x3e (1)))?cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(v,(1)):null)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.not_empty_coll \x3d (function taoensso$encore$not_empty_coll(x){\nif(cljs.core.truth_(x)){\nif(cljs.core.coll_QMARK_(x)){\nreturn cljs.core.not_empty(x);\n} else {\nreturn x;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Faster (f (vec (butlast xs)) (last x)).\n */\ntaoensso.encore.fsplit_last \x3d (function taoensso$encore$fsplit_last(xs,f){\nif(cljs.core.vector_QMARK_(xs)){\nvar vec__33957 \x3d taoensso.encore.vsplit_last(xs);\nvar vn \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33957,(0),null);\nvar vl \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33957,(1),null);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(vn,vl) : f.call(null,vn,vl));\n} else {\nvar butlast \x3d cljs.core.PersistentVector.EMPTY;\nvar xs__$1 \x3d xs;\nwhile(true){\nvar vec__33963 \x3d xs__$1;\nvar seq__33964 \x3d cljs.core.seq(vec__33963);\nvar first__33965 \x3d cljs.core.first(seq__33964);\nvar seq__33964__$1 \x3d cljs.core.next(seq__33964);\nvar x1 \x3d first__33965;\nvar xn \x3d seq__33964__$1;\nif(xn){\nvar G__34695 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(butlast,x1);\nvar G__34696 \x3d xn;\nbutlast \x3d G__34695;\nxs__$1 \x3d G__34696;\ncontinue;\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(butlast,x1) : f.call(null,butlast,x1));\n}\nbreak;\n}\n}\n});\ntaoensso.encore.takev \x3d (function taoensso$encore$takev(n,coll){\nif(cljs.core.vector_QMARK_(coll)){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(coll,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(0),n);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n} else {\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),coll);\n}\n});\ntaoensso.encore.distinct_elements_QMARK_ \x3d (function taoensso$encore$distinct_elements_QMARK_(x){\nreturn ((cljs.core.set_QMARK_(x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),cljs.core.count(taoensso.encore.ensure_set(x)))));\n});\n/**\n * (seq-kvs {:a :A}) \x3d\x3e (:a :A).\n */\ntaoensso.encore.seq_kvs \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce,cljs.core.concat);\n/**\n * Like `apply` but calls `seq-kvs` on final arg.\n */\ntaoensso.encore.mapply \x3d (function taoensso$encore$mapply(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___34697 \x3d arguments.length;\nvar i__5750__auto___34698 \x3d (0);\nwhile(true){\nif((i__5750__auto___34698 \x3c len__5749__auto___34697)){\nargs__5755__auto__.push((arguments[i__5750__auto___34698]));\n\nvar G__34699 \x3d (i__5750__auto___34698 + (1));\ni__5750__auto___34698 \x3d G__34699;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.mapply.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.mapply.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,taoensso.encore.fsplit_last(args,(function (xs,lx){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(xs,taoensso.encore.seq_kvs(lx));\n})));\n}));\n\n(taoensso.encore.mapply.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.mapply.cljs$lang$applyTo \x3d (function (seq33966){\nvar G__33967 \x3d cljs.core.first(seq33966);\nvar seq33966__$1 \x3d cljs.core.next(seq33966);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33967,seq33966__$1);\n}));\n\n/**\n * Like `into` but supports multiple \x22from\x22s.\n */\ntaoensso.encore.into_all \x3d (function taoensso$encore$into_all(var_args){\nvar G__33972 \x3d arguments.length;\nswitch (G__33972) {\ncase 2:\nreturn taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34701 \x3d arguments.length;\nvar i__5750__auto___34702 \x3d (0);\nwhile(true){\nif((i__5750__auto___34702 \x3c len__5749__auto___34701)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34702]));\n\nvar G__34703 \x3d (i__5750__auto___34702 + (1));\ni__5750__auto___34702 \x3d G__34703;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (to,from){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(to,from);\n}));\n\n(taoensso.encore.into_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (to,from,more){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,acc,in$);\n}),cljs.core.transient$(to),cljs.core.cons(from,more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.into_all.cljs$lang$applyTo \x3d (function (seq33969){\nvar G__33970 \x3d cljs.core.first(seq33969);\nvar seq33969__$1 \x3d cljs.core.next(seq33969);\nvar G__33971 \x3d cljs.core.first(seq33969__$1);\nvar seq33969__$2 \x3d cljs.core.next(seq33969__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33970,G__33971,seq33969__$2);\n}));\n\n(taoensso.encore.into_all.cljs$lang$maxFixedArity \x3d (2));\n\ntaoensso.encore.min_transient_card \x3d (11);\n/**\n * Like `repeatedly` but faster and `conj`s items into given collection.\n */\ntaoensso.encore.repeatedly_into \x3d (function taoensso$encore$repeatedly_into(coll,n,f){\nif((((n \x3e\x3d (11)))?taoensso.encore.editable_QMARK_(coll):false)){\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,_){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}),cljs.core.transient$(coll),n));\n} else {\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}),coll,n);\n}\n});\ntaoensso.encore.update_BANG_ \x3d (function taoensso$encore$update_BANG_(m,k,f){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__33973 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__33973) : f.call(null,G__33973));\n})());\n});\n/**\n * Like `into` but assumes `to!` is a transient, and doesn\x27t call\n * `persist!` when done. Useful as a performance optimization in some cases.\n */\ntaoensso.encore.into_BANG_ \x3d (function taoensso$encore$into_BANG_(var_args){\nvar G__33975 \x3d arguments.length;\nswitch (G__33975) {\ncase 1:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (to_BANG_){\nreturn to_BANG_;\n}));\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (to_BANG_,from){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,to_BANG_,from);\n}));\n\n(taoensso.encore.into_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (to_BANG_,xform,from){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.conj_BANG_,to_BANG_,from);\n}));\n\n(taoensso.encore.into_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a stateful transducer like (core/distinct) that supports an optional\n * key function. Retains only items with distinct (keyfn \x3citem\x3e).\n */\ntaoensso.encore.xdistinct \x3d (function taoensso$encore$xdistinct(var_args){\nvar G__33977 \x3d arguments.length;\nswitch (G__33977) {\ncase 0:\nreturn taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.xdistinct.cljs$core$IFn$_invoke$arity$1 \x3d (function (keyfn){\nreturn (function (rf){\nvar seen_ \x3d cljs.core.volatile_BANG_(cljs.core.transient$(cljs.core.PersistentHashSet.EMPTY));\nreturn (function() {\nvar G__34708 \x3d null;\nvar G__34708__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n});\nvar G__34708__1 \x3d (function (acc){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n});\nvar G__34708__2 \x3d (function (acc,in$){\nvar k \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$));\nif(cljs.core.contains_QMARK_(cljs.core.deref(seen_),k)){\nreturn acc;\n} else {\nseen_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(seen_.cljs$core$IDeref$_deref$arity$1(null),k));\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}\n});\nG__34708 \x3d function(acc,in$){\nswitch(arguments.length){\ncase 0:\nreturn G__34708__0.call(this);\ncase 1:\nreturn G__34708__1.call(this,acc);\ncase 2:\nreturn G__34708__2.call(this,acc,in$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__34708.cljs$core$IFn$_invoke$arity$0 \x3d G__34708__0;\nG__34708.cljs$core$IFn$_invoke$arity$1 \x3d G__34708__1;\nG__34708.cljs$core$IFn$_invoke$arity$2 \x3d G__34708__2;\nreturn G__34708;\n})()\n});\n}));\n\n(taoensso.encore.xdistinct.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns given ?map with keys and vals inverted, dropping non-unique vals!\n */\ntaoensso.encore.invert_map \x3d (function taoensso$encore$invert_map(m){\nif(cljs.core.truth_(m)){\nif((cljs.core.count(m) \x3e (11))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Like `invert-map` but throws on non-unique vals.\n */\ntaoensso.encore.invert_map_BANG_ \x3d (function taoensso$encore$invert_map_BANG_(m){\nvar b2__30646__auto__ \x3d taoensso.encore.invert_map(m);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar im \x3d b2__30646__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(im),cljs.core.count(m))){\nreturn im;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1710,7], null),\x22[encore/invert-map!] Non-unique map vals\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),m,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(m)], null)], null),null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map with (key-fn \x3ckey\x3e) keys.\n */\ntaoensso.encore.map_keys \x3d (function taoensso$encore$map_keys(key_fn,m){\nif(cljs.core.truth_(m)){\nif((cljs.core.count(m) \x3e (11))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(k) : key_fn.call(null,k)),v);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(k) : key_fn.call(null,k)),v);\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map with (val-fn \x3cval\x3e) vals.\n */\ntaoensso.encore.map_vals \x3d (function taoensso$encore$map_vals(val_fn,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,k,(val_fn.cljs$core$IFn$_invoke$arity$1 ? val_fn.cljs$core$IFn$_invoke$arity$1(v) : val_fn.call(null,v)));\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,k,(val_fn.cljs$core$IFn$_invoke$arity$1 ? val_fn.cljs$core$IFn$_invoke$arity$1(v) : val_fn.call(null,v)));\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, retaining only keys for which (key-pred \x3ckey\x3e) is truthy.\n */\ntaoensso.encore.filter_keys \x3d (function taoensso$encore$filter_keys(key_pred,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,_){\nif(cljs.core.truth_((key_pred.cljs$core$IFn$_invoke$arity$1 ? key_pred.cljs$core$IFn$_invoke$arity$1(k) : key_pred.call(null,k)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,_){\nif(cljs.core.truth_((key_pred.cljs$core$IFn$_invoke$arity$1 ? key_pred.cljs$core$IFn$_invoke$arity$1(k) : key_pred.call(null,k)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, retaining only keys for which (val-pred \x3cval\x3e) is truthy.\n */\ntaoensso.encore.filter_vals \x3d (function taoensso$encore$filter_vals(val_pred,m){\nif(cljs.core.truth_(m)){\nif(((taoensso.encore.editable_QMARK_(m))?(cljs.core.count(m) \x3e\x3d (11)):false)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((val_pred.cljs$core$IFn$_invoke$arity$1 ? val_pred.cljs$core$IFn$_invoke$arity$1(v) : val_pred.call(null,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),cljs.core.transient$(m),m));\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((val_pred.cljs$core$IFn$_invoke$arity$1 ? val_pred.cljs$core$IFn$_invoke$arity$1(v) : val_pred.call(null,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Returns given ?map, removing keys for which (key-pred \x3ckey\x3e) is truthy.\n */\ntaoensso.encore.remove_keys \x3d (function taoensso$encore$remove_keys(key_pred,m){\nreturn taoensso.encore.filter_keys(cljs.core.complement(key_pred),m);\n});\n/**\n * Returns given ?map, removing keys for which (val-pred \x3cval\x3e) is truthy.\n */\ntaoensso.encore.remove_vals \x3d (function taoensso$encore$remove_vals(val_pred,m){\nreturn taoensso.encore.filter_vals(cljs.core.complement(val_pred),m);\n});\n/**\n * Returns a map like the one given, replacing keys using\n * given {\x3cold-new\x3e \x3cnew-key\x3e} replacements. O(min(n_replacements, n_m)).\n */\ntaoensso.encore.rename_keys \x3d (function taoensso$encore$rename_keys(replacements,m){\nif(cljs.core.empty_QMARK_(m)){\nreturn m;\n} else {\nif(cljs.core.empty_QMARK_(replacements)){\nreturn m;\n} else {\nif((cljs.core.count(m) \x3e cljs.core.count(replacements))){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,new_k){\nvar b2__30646__auto__ \x3d cljs.core.find(m,old_k);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),new_k,cljs.core.val(e));\n} else {\nreturn acc;\n}\n}),cljs.core.transient$(m),replacements));\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,old_k,v){\nvar b2__30646__auto__ \x3d cljs.core.find(replacements,old_k);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,old_k),cljs.core.val(e),v);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$(m),m));\n}\n}\n}\n});\n/**\n * Returns {(f x) x} ?map for xs in `coll`.\n */\ntaoensso.encore.keys_by \x3d (function taoensso$encore$keys_by(f,coll){\nif(cljs.core.empty_QMARK_(coll)){\nreturn null;\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,x){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x)),x);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),coll));\n}\n});\ntaoensso.encore.ks_nnil_QMARK_ \x3d (function taoensso$encore$ks_nnil_QMARK_(ks,m){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33978_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__33978_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.encore.ks_EQ_ \x3d (function taoensso$encore$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33979_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__33979_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.ks_GT__EQ_ \x3d (function taoensso$encore$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__33980_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__33980_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.encore.ks_LT__EQ_ \x3d (function taoensso$encore$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.encore.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Like `core/update-in` but:.\n * - Empty ks will return (f m), not act like [nil] ks.\n * - Adds support for `not-found`.\n * - Adds support for special return vals: `:update/dissoc`, `:update/abort`.\n */\ntaoensso.encore.update_in \x3d (function taoensso$encore$update_in(var_args){\nvar G__33982 \x3d arguments.length;\nswitch (G__33982) {\ncase 3:\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,ks,f){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,f);\n}));\n\n(taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,ks,not_found,f){\nif(cljs.core.empty_QMARK_(ks)){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(m) : f.call(null,m));\n} else {\nvar old \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m,ks,not_found);\nvar new$ \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(old) : f.call(null,old));\nvar G__33983 \x3d new$;\nvar G__33983__$1 \x3d (((G__33983 instanceof cljs.core.Keyword))?G__33983.fqn:null);\nswitch (G__33983__$1) {\ncase \x22update/abort\x22:\ncase \x22swap/abort\x22:\nreturn m;\n\nbreak;\ncase \x22update/dissoc\x22:\ncase \x22swap/dissoc\x22:\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks__$1,null,(function (v){\nif(cljs.core.truth_(v)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(v,lk);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\nbreak;\ndefault:\nreturn cljs.core.assoc_in(m,ks,new$);\n\n}\n}\n}));\n\n(taoensso.encore.update_in.cljs$lang$maxFixedArity \x3d 4);\n\ntaoensso.encore.contains_in_QMARK_ \x3d (function taoensso$encore$contains_in_QMARK_(var_args){\nvar G__33985 \x3d arguments.length;\nswitch (G__33985) {\ncase 3:\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,ks,k){\nreturn cljs.core.contains_QMARK_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(coll,ks),k);\n}));\n\n(taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,ks){\nif(cljs.core.empty_QMARK_(ks)){\nreturn false;\n} else {\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.contains_in_QMARK_.cljs$core$IFn$_invoke$arity$3(coll,ks__$1,lk);\n}));\n}\n}));\n\n(taoensso.encore.contains_in_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.dissoc_in \x3d (function taoensso$encore$dissoc_in(var_args){\nvar G__33991 \x3d arguments.length;\nswitch (G__33991) {\ncase 3:\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34731 \x3d arguments.length;\nvar i__5750__auto___34732 \x3d (0);\nwhile(true){\nif((i__5750__auto___34732 \x3c len__5749__auto___34731)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34732]));\n\nvar G__34734 \x3d (i__5750__auto___34732 + (1));\ni__5750__auto___34732 \x3d G__34734;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,ks,dissoc_k){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,(function (m__$1){\nif(cljs.core.truth_(m__$1)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,dissoc_k);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,ks,dissoc_k,more){\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m,ks,null,(function (m__$1){\nif(cljs.core.truth_(m__$1)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,dissoc_k),more);\n} else {\nreturn new cljs.core.Keyword(\x22update\x22,\x22abort\x22,\x22update/abort\x22,-250474569);\n}\n}));\n}));\n\n/** @this {Function} */\n(taoensso.encore.dissoc_in.cljs$lang$applyTo \x3d (function (seq33987){\nvar G__33988 \x3d cljs.core.first(seq33987);\nvar seq33987__$1 \x3d cljs.core.next(seq33987);\nvar G__33989 \x3d cljs.core.first(seq33987__$1);\nvar seq33987__$2 \x3d cljs.core.next(seq33987__$1);\nvar G__33990 \x3d cljs.core.first(seq33987__$2);\nvar seq33987__$3 \x3d cljs.core.next(seq33987__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33988,G__33989,G__33990,seq33987__$3);\n}));\n\n(taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,ks){\nif(cljs.core.empty_QMARK_(m)){\nreturn m;\n} else {\nreturn taoensso.encore.fsplit_last(ks,(function (ks__$1,lk){\nreturn taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$3(m,ks__$1,lk);\n}));\n}\n}));\n\n(taoensso.encore.dissoc_in.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.node_paths \x3d (function taoensso$encore$node_paths(var_args){\nvar G__33993 \x3d arguments.length;\nswitch (G__33993) {\ncase 1:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$1 \x3d (function (m){\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(cljs.core.associative_QMARK_,m,null);\n}));\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$2 \x3d (function (node_pred,m){\nreturn taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(node_pred,m,null);\n}));\n\n(taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3 \x3d (function (node_pred,m,basis){\nvar basis__$1 \x3d (function (){var or__5025__auto__ \x3d basis;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})();\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,v){\nif(cljs.core.truth_((node_pred.cljs$core$IFn$_invoke$arity$1 ? node_pred.cljs$core$IFn$_invoke$arity$1(v) : node_pred.call(null,v)))){\nvar paths_from_basis \x3d taoensso.encore.node_paths.cljs$core$IFn$_invoke$arity$3(node_pred,v,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(basis__$1,k));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,in$){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc__$1,in$);\n}),acc,paths_from_basis);\n} else {\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(basis__$1,k,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v], 0)));\n}\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),m));\n}));\n\n(taoensso.encore.node_paths.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `interleave` but includes all items (i.e. stops when the longest\n * rather than shortest coll has been consumed).\n */\ntaoensso.encore.interleave_all \x3d (function taoensso$encore$interleave_all(var_args){\nvar G__33998 \x3d arguments.length;\nswitch (G__33998) {\ncase 0:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34751 \x3d arguments.length;\nvar i__5750__auto___34753 \x3d (0);\nwhile(true){\nif((i__5750__auto___34753 \x3c len__5749__auto___34751)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34753]));\n\nvar G__34754 \x3d (i__5750__auto___34753 + (1));\ni__5750__auto___34753 \x3d G__34754;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.List.EMPTY;\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (c1){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn c1;\n}),null,null));\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (c1,c2){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nif(((s1) \x26\x26 (s2))){\nreturn cljs.core.cons(cljs.core.first(s1),cljs.core.cons(cljs.core.first(s2),taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(s1),cljs.core.rest(s2))));\n} else {\nif(s1){\nreturn s1;\n} else {\nif(s2){\nreturn s2;\n} else {\nreturn null;\n}\n}\n}\n}),null,null));\n}));\n\n(taoensso.encore.interleave_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (c1,c2,colls){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar ss \x3d cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(colls,c2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c1], 0))));\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,ss),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(taoensso.encore.interleave_all,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,ss)));\n}),null,null));\n}));\n\n/** @this {Function} */\n(taoensso.encore.interleave_all.cljs$lang$applyTo \x3d (function (seq33995){\nvar G__33996 \x3d cljs.core.first(seq33995);\nvar seq33995__$1 \x3d cljs.core.next(seq33995);\nvar G__33997 \x3d cljs.core.first(seq33995__$1);\nvar seq33995__$2 \x3d cljs.core.next(seq33995__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__33996,G__33997,seq33995__$2);\n}));\n\n(taoensso.encore.interleave_all.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Like `interleave`, but:\n * - Returns a vector rather than lazy seq (\x3d\x3e greedy).\n * - Includes all items (i.e. stops when the longest rather than\n * shortest coll has been consumed).\n * \n * Single-arity version takes a coll of colls.\n */\ntaoensso.encore.vinterleave_all \x3d (function taoensso$encore$vinterleave_all(var_args){\nvar G__34004 \x3d arguments.length;\nswitch (G__34004) {\ncase 1:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34764 \x3d arguments.length;\nvar i__5750__auto___34766 \x3d (0);\nwhile(true){\nif((i__5750__auto___34766 \x3c len__5749__auto___34764)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34766]));\n\nvar G__34767 \x3d (i__5750__auto___34766 + (1));\ni__5750__auto___34766 \x3d G__34767;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (colls){\nif(cljs.core.empty_QMARK_(colls)){\nreturn cljs.core.PersistentVector.EMPTY;\n} else {\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_interleave_all(cljs.core.conj_BANG_,cljs.core.transient$(cljs.core.PersistentVector.EMPTY),colls));\n}\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (c1,c2){\nvar v \x3d cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nwhile(true){\nif(((s1) \x26\x26 (s2))){\nvar G__34770 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,cljs.core.first(s1)),cljs.core.first(s2));\nvar G__34771 \x3d cljs.core.next(s1);\nvar G__34772 \x3d cljs.core.next(s2);\nv \x3d G__34770;\ns1 \x3d G__34771;\ns2 \x3d G__34772;\ncontinue;\n} else {\nif(s1){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,v,s1));\n} else {\nif(s2){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj_BANG_,v,s2));\n} else {\nreturn cljs.core.persistent_BANG_(v);\n}\n}\n}\nbreak;\n}\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$3 \x3d (function (c1,c2,c3){\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null));\n}));\n\n(taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (c1,c2,c3,colls){\nreturn taoensso.encore.vinterleave_all.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null),colls));\n}));\n\n/** @this {Function} */\n(taoensso.encore.vinterleave_all.cljs$lang$applyTo \x3d (function (seq34000){\nvar G__34001 \x3d cljs.core.first(seq34000);\nvar seq34000__$1 \x3d cljs.core.next(seq34000);\nvar G__34002 \x3d cljs.core.first(seq34000__$1);\nvar seq34000__$2 \x3d cljs.core.next(seq34000__$1);\nvar G__34003 \x3d cljs.core.first(seq34000__$2);\nvar seq34000__$3 \x3d cljs.core.next(seq34000__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34001,G__34002,G__34003,seq34000__$3);\n}));\n\n(taoensso.encore.vinterleave_all.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.p_BANG_ \x3d (function taoensso$encore$p_BANG_(m){\nif(taoensso.encore.transient_QMARK_(m)){\nreturn cljs.core.persistent_BANG_(m);\n} else {\nreturn m;\n}\n});\nvar nx_34778 \x3d ({});\nvar min_transient_card_34779 \x3d (64);\nvar dissoc_QMARK__34780 \x3d (function (v){\nvar G__34007 \x3d v;\nvar G__34007__$1 \x3d (((G__34007 instanceof cljs.core.Keyword))?G__34007.fqn:null);\nswitch (G__34007__$1) {\ncase \x22merge/dissoc\x22:\ncase \x22swap/dissoc\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n});\nvar dissoc_STAR__34781 \x3d (function (m,k){\nif(taoensso.encore.transient_QMARK_(m)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}\n});\n/**\n * Private, don\x27t use. Flexible low-level merge util.\n * Optimized for reasonable worst-case performance.\n */\ntaoensso.encore.merge_with_STAR_ \x3d (function taoensso$encore$merge_with_STAR_(var_args){\nvar G__34009 \x3d arguments.length;\nswitch (G__34009) {\ncase 3:\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (nest_QMARK_,f,maps){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(taoensso.encore.merge_with_STAR_,nest_QMARK_,f),null,maps);\n}));\n\n(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (nest_QMARK_,f,m1,m2){\nvar n2 \x3d cljs.core.count(m2);\nif((n2 \x3d\x3d\x3d (0))){\nvar or__5025__auto__ \x3d m1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(taoensso.encore.can_meta_QMARK_(m2)){\nreturn cljs.core.with_meta(m2,null);\n} else {\nreturn null;\n}\n}\n} else {\nvar b2__30646__auto__ \x3d cljs.core.find(m2,new cljs.core.Keyword(\x22merge\x22,\x22replace?\x22,\x22merge/replace?\x22,-914523787));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nvar m2__$1 \x3d dissoc_STAR__34781(m2,new cljs.core.Keyword(\x22merge\x22,\x22replace?\x22,\x22merge/replace?\x22,-914523787));\nif(cljs.core.truth_(cljs.core.val(e))){\nreturn m2__$1;\n} else {\nreturn taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(nest_QMARK_,f,m1,m2__$1);\n}\n} else {\nvar n1 \x3d cljs.core.count(m1);\nif((n1 \x3e\x3d n2)){\nvar m1_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m1))?m1:(((n1 \x3e\x3d min_transient_card_34779))?cljs.core.transient$(m1):m1));\nvar assoc_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m1_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc);\nreturn cljs.core.reduce_kv((function (m1_STAR___$1,k2,v2){\nvar v1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m1,k2,nx_34778);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d nest_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.map_QMARK_(v1)) \x26\x26 (cljs.core.map_QMARK_(v2)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__34010 \x3d m1_STAR___$1;\nvar G__34011 \x3d k2;\nvar G__34012 \x3d taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2));\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__34010,G__34011,G__34012) : assoc_STAR_.call(null,G__34010,G__34011,G__34012));\n} else {\nif((v1 \x3d\x3d\x3d nx_34778)){\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v2) : assoc_STAR_.call(null,m1_STAR___$1,k2,v2));\n} else {\nif(cljs.core.truth_(dissoc_QMARK__34780(v2))){\nreturn dissoc_STAR__34781(m1_STAR___$1,k2);\n} else {\nif(cljs.core.truth_(f)){\nvar v3 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2));\nif(cljs.core.truth_(dissoc_QMARK__34780(v3))){\nreturn dissoc_STAR__34781(m1_STAR___$1,k2);\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v3) : assoc_STAR_.call(null,m1_STAR___$1,k2,v3));\n}\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m1_STAR___$1,k2,v2) : assoc_STAR_.call(null,m1_STAR___$1,k2,v2));\n}\n}\n}\n}\n}),m1_STAR_,taoensso.encore.p_BANG_(m2));\n} else {\nvar m2_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m2))?m2:(function (){var m2__$1 \x3d cljs.core.with_meta(m2,cljs.core.meta(m1));\nif((n2 \x3e\x3d min_transient_card_34779)){\nreturn cljs.core.transient$(m2__$1);\n} else {\nreturn m2__$1;\n}\n})());\nvar assoc_STAR_ \x3d ((taoensso.encore.transient_QMARK_(m2_STAR_))?cljs.core.assoc_BANG_:cljs.core.assoc);\nreturn cljs.core.reduce_kv((function (m2_STAR___$1,k1,v1){\nvar v2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m2,k1,nx_34778);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d nest_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.map_QMARK_(v1)) \x26\x26 (cljs.core.map_QMARK_(v2)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__34013 \x3d m2_STAR___$1;\nvar G__34014 \x3d k1;\nvar G__34015 \x3d taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,v1,v2));\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(G__34013,G__34014,G__34015) : assoc_STAR_.call(null,G__34013,G__34014,G__34015));\n} else {\nif((v2 \x3d\x3d\x3d nx_34778)){\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v1) : assoc_STAR_.call(null,m2_STAR___$1,k1,v1));\n} else {\nif(cljs.core.truth_(dissoc_QMARK__34780(v2))){\nreturn dissoc_STAR__34781(m2_STAR___$1,k1);\n} else {\nif(cljs.core.truth_(f)){\nvar v3 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v1,v2) : f.call(null,v1,v2));\nif(cljs.core.truth_(dissoc_QMARK__34780(v3))){\nreturn dissoc_STAR__34781(m2_STAR___$1,k1);\n} else {\nreturn (assoc_STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_STAR_.cljs$core$IFn$_invoke$arity$3(m2_STAR___$1,k1,v3) : assoc_STAR_.call(null,m2_STAR___$1,k1,v3));\n}\n} else {\nreturn m2_STAR___$1;\n}\n}\n}\n}\n}),m2_STAR_,taoensso.encore.p_BANG_(m1));\n}\n}\n}\n}));\n\n(taoensso.encore.merge_with_STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Like `core/merge` but:\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge \x3d (function taoensso$encore$merge(var_args){\nvar G__34021 \x3d arguments.length;\nswitch (G__34021) {\ncase 0:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34799 \x3d arguments.length;\nvar i__5750__auto___34800 \x3d (0);\nwhile(true){\nif((i__5750__auto___34800 \x3c len__5749__auto___34799)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34800]));\n\nvar G__34801 \x3d (i__5750__auto___34800 + (1));\ni__5750__auto___34800 \x3d G__34801;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2));\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2),m3));\n}));\n\n(taoensso.encore.merge.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,null,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,null,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge.cljs$lang$applyTo \x3d (function (seq34017){\nvar G__34018 \x3d cljs.core.first(seq34017);\nvar seq34017__$1 \x3d cljs.core.next(seq34017);\nvar G__34019 \x3d cljs.core.first(seq34017__$1);\nvar seq34017__$2 \x3d cljs.core.next(seq34017__$1);\nvar G__34020 \x3d cljs.core.first(seq34017__$2);\nvar seq34017__$3 \x3d cljs.core.next(seq34017__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34018,G__34019,G__34020,seq34017__$3);\n}));\n\n(taoensso.encore.merge.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Like `core/merge` but:\n * - Recursively merges nested maps.\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.nested_merge \x3d (function taoensso$encore$nested_merge(var_args){\nvar G__34027 \x3d arguments.length;\nswitch (G__34027) {\ncase 0:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34804 \x3d arguments.length;\nvar i__5750__auto___34805 \x3d (0);\nwhile(true){\nif((i__5750__auto___34805 \x3c len__5749__auto___34804)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34805]));\n\nvar G__34806 \x3d (i__5750__auto___34805 + (1));\ni__5750__auto___34805 \x3d G__34806;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2));\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2),m3));\n}));\n\n(taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(true,null,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,null,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.nested_merge.cljs$lang$applyTo \x3d (function (seq34023){\nvar G__34024 \x3d cljs.core.first(seq34023);\nvar seq34023__$1 \x3d cljs.core.next(seq34023);\nvar G__34025 \x3d cljs.core.first(seq34023__$1);\nvar seq34023__$2 \x3d cljs.core.next(seq34023__$1);\nvar G__34026 \x3d cljs.core.first(seq34023__$2);\nvar seq34023__$3 \x3d cljs.core.next(seq34023__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34024,G__34025,G__34026,seq34023__$3);\n}));\n\n(taoensso.encore.nested_merge.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Like `core/merge-with` but:\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge_with \x3d (function taoensso$encore$merge_with(var_args){\nvar G__34034 \x3d arguments.length;\nswitch (G__34034) {\ncase 1:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34812 \x3d arguments.length;\nvar i__5750__auto___34813 \x3d (0);\nwhile(true){\nif((i__5750__auto___34813 \x3c len__5749__auto___34812)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34813]));\n\nvar G__34814 \x3d (i__5750__auto___34813 + (1));\ni__5750__auto___34813 \x3d G__34814;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn null;\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2));\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2),m3));\n}));\n\n(taoensso.encore.merge_with.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,f,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,f,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge_with.cljs$lang$applyTo \x3d (function (seq34029){\nvar G__34030 \x3d cljs.core.first(seq34029);\nvar seq34029__$1 \x3d cljs.core.next(seq34029);\nvar G__34031 \x3d cljs.core.first(seq34029__$1);\nvar seq34029__$2 \x3d cljs.core.next(seq34029__$1);\nvar G__34032 \x3d cljs.core.first(seq34029__$2);\nvar seq34029__$3 \x3d cljs.core.next(seq34029__$2);\nvar G__34033 \x3d cljs.core.first(seq34029__$3);\nvar seq34029__$4 \x3d cljs.core.next(seq34029__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34030,G__34031,G__34032,G__34033,seq34029__$4);\n}));\n\n(taoensso.encore.merge_with.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Like `core/merge-with` but:\n * - Recursively merges nested maps.\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.nested_merge_with \x3d (function taoensso$encore$nested_merge_with(var_args){\nvar G__34041 \x3d arguments.length;\nswitch (G__34041) {\ncase 1:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34817 \x3d arguments.length;\nvar i__5750__auto___34818 \x3d (0);\nwhile(true){\nif((i__5750__auto___34818 \x3c len__5749__auto___34817)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34818]));\n\nvar G__34819 \x3d (i__5750__auto___34818 + (1));\ni__5750__auto___34818 \x3d G__34819;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn null;\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2));\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2),m3));\n}));\n\n(taoensso.encore.nested_merge_with.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(true,f,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(true,f,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.nested_merge_with.cljs$lang$applyTo \x3d (function (seq34036){\nvar G__34037 \x3d cljs.core.first(seq34036);\nvar seq34036__$1 \x3d cljs.core.next(seq34036);\nvar G__34038 \x3d cljs.core.first(seq34036__$1);\nvar seq34036__$2 \x3d cljs.core.next(seq34036__$1);\nvar G__34039 \x3d cljs.core.first(seq34036__$2);\nvar seq34036__$3 \x3d cljs.core.next(seq34036__$2);\nvar G__34040 \x3d cljs.core.first(seq34036__$3);\nvar seq34036__$4 \x3d cljs.core.next(seq34036__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34037,G__34038,G__34039,G__34040,seq34036__$4);\n}));\n\n(taoensso.encore.nested_merge_with.cljs$lang$maxFixedArity \x3d (4));\n\nvar mf_34821 \x3d (function (x,y){\nreturn x;\n});\n/**\n * Like `core/merge` but:\n * - Preserves existing values, e.g. (merge-nx \x3cuser-opts\x3e \x3cdefaults\x3e).\n * - Supports `:merge/dissoc` vals.\n * - Often faster, with much better worst-case performance.\n */\ntaoensso.encore.merge_nx \x3d (function taoensso$encore$merge_nx(var_args){\nvar G__34047 \x3d arguments.length;\nswitch (G__34047) {\ncase 0:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34824 \x3d arguments.length;\nvar i__5750__auto___34825 \x3d (0);\nwhile(true){\nif((i__5750__auto___34825 \x3c len__5749__auto___34824)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34825]));\n\nvar G__34826 \x3d (i__5750__auto___34825 + (1));\ni__5750__auto___34825 \x3d G__34826;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$1 \x3d (function (m1){\nreturn taoensso.encore.p_BANG_(m1);\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$2 \x3d (function (m1,m2){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2));\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$3 \x3d (function (m1,m2,m3){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2),m3));\n}));\n\n(taoensso.encore.merge_nx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m1,m2,m3,more){\nreturn taoensso.encore.p_BANG_(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$3(false,mf_34821,cljs.core.cons(taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,taoensso.encore.merge_with_STAR_.cljs$core$IFn$_invoke$arity$4(false,mf_34821,m1,m2),m3),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.merge_nx.cljs$lang$applyTo \x3d (function (seq34043){\nvar G__34044 \x3d cljs.core.first(seq34043);\nvar seq34043__$1 \x3d cljs.core.next(seq34043);\nvar G__34045 \x3d cljs.core.first(seq34043__$1);\nvar seq34043__$2 \x3d cljs.core.next(seq34043__$1);\nvar G__34046 \x3d cljs.core.first(seq34043__$2);\nvar seq34043__$3 \x3d cljs.core.next(seq34043__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34044,G__34045,G__34046,seq34043__$3);\n}));\n\n(taoensso.encore.merge_nx.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.encore.submap_QMARK_ \x3d taoensso.truss.submap_QMARK_;\n/**\n * Experimental, subject to change without notice.\n * Returns true iff `sub_i` is a (possibly nested) submap of `m_i`.\n * Uses `submap?`.\n */\ntaoensso.encore.submaps_QMARK_ \x3d (function taoensso$encore$submaps_QMARK_(maps,subs){\nif((cljs.core.count(subs) \x3e cljs.core.count(maps))){\nreturn false;\n} else {\nreturn taoensso.encore.reduce_zip.cljs$core$IFn$_invoke$arity$5((function (acc,m,sub){\nvar or__5025__auto__ \x3d (taoensso.encore.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.encore.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(m,sub) : taoensso.encore.submap_QMARK_.call(null,m,sub));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,maps,subs,null);\n}\n});\n/**\n * Like `select-keys` but supports nested key spec:\n * \n * (select-nested-keys\n * {:a :A :b :B :c {:c1 :C1 :c2 :C2} :d :D} ; `src-map`\n * [:a {:c [:c1], :d [:d1 :d2]}]) ; `key-spec`\n * \n * \x3d\x3e {:a :A, :c {:c1 :C1}, :d :D}\n * \n * Note that as with the `{:d [:d1 :d2]}` spec in the example above,\n * if spec expects a nested map but the actual value is not a map,\n * the actual value will be included in output as-is.\n * \n * Has the same behaviour as `select-keys` when `key-spec` is a\n * simple vector of keys.\n */\ntaoensso.encore.select_nested_keys \x3d (function taoensso$encore$select_nested_keys(src_map,key_spec){\nif(((cljs.core.empty_QMARK_(src_map)) || (cljs.core.empty_QMARK_(key_spec)))){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function taoensso$encore$select_nested_keys_$_rf(acc,spec_in){\nif(cljs.core.map_QMARK_(spec_in)){\nreturn cljs.core.reduce_kv((function (acc__$1,k,nested_spec_in){\nif(cljs.core.contains_QMARK_(src_map,k)){\nvar src_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(src_map,k);\nif(cljs.core.map_QMARK_(src_val)){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc__$1,k,(taoensso.encore.select_nested_keys.cljs$core$IFn$_invoke$arity$2 ? taoensso.encore.select_nested_keys.cljs$core$IFn$_invoke$arity$2(src_val,nested_spec_in) : taoensso.encore.select_nested_keys.call(null,src_val,nested_spec_in)));\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc__$1,k,src_val);\n}\n} else {\nreturn acc__$1;\n}\n}),acc,spec_in);\n} else {\nvar k \x3d spec_in;\nif(cljs.core.contains_QMARK_(src_map,k)){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,k,cljs.core.get.cljs$core$IFn$_invoke$arity$2(src_map,k));\n} else {\nreturn acc;\n}\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),key_spec));\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.explode_keyword \x3d (function taoensso$encore$explode_keyword(k){\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(k),/[\\.\\/]/);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.merge_keywords \x3d (function taoensso$encore$merge_keywords(var_args){\nvar G__34049 \x3d arguments.length;\nswitch (G__34049) {\ncase 1:\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$1 \x3d (function (ks){\nreturn taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2(ks,false);\n}));\n\n(taoensso.encore.merge_keywords.cljs$core$IFn$_invoke$arity$2 \x3d (function (ks,omit_slash_QMARK_){\nif(cljs.core.seq(ks)){\nvar parts \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nif((in$ \x3d\x3d null)){\nreturn acc;\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,acc,taoensso.encore.explode_keyword(in$));\n}\n}),cljs.core.PersistentVector.EMPTY,ks);\nif(cljs.core.seq(parts)){\nif(cljs.core.truth_(omit_slash_QMARK_)){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,parts));\n} else {\nvar ppop \x3d cljs.core.pop(parts);\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(((cljs.core.seq(ppop))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,ppop):null),cljs.core.peek(parts));\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.merge_keywords.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.get_ctor \x3d (function taoensso$encore$get_ctor(name){\nif((typeof globalThis !\x3d\x3d \x27undefined\x27)){\nreturn (globalThis[name]);\n} else {\nreturn null;\n}\n});\nvar encoder_34834 \x3d (function (){var b2__30646__auto__ \x3d taoensso.encore.get_ctor(\x22TextEncoder\x22);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar ctor \x3d b2__30646__auto__;\nreturn (new ctor());\n} else {\nreturn null;\n}\n})();\n/**\n * Returns UTF-8 encoded Uint8Array for given string.\n */\ntaoensso.encore.str__GT_utf8_ba \x3d (cljs.core.truth_(encoder_34834)?(function (s){\nreturn encoder_34834.encode(s);\n}):(function (_){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2146,20], null),\x22`js/TextEncoder` not available\x22,null,null);\n}));\n\nvar decoder_34835 \x3d (function (){var b2__30646__auto__ \x3d taoensso.encore.get_ctor(\x22TextDecoder\x22);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar ctor \x3d b2__30646__auto__;\nreturn (new ctor(\x22utf-8\x22));\n} else {\nreturn null;\n}\n})();\n/**\n * Returns string for given UTF-8 encoded Uint8Array.\n */\ntaoensso.encore.utf8_ba__GT_str \x3d (cljs.core.truth_(decoder_34835)?(function (u8s){\nreturn decoder_34835.decode(u8s);\n}):(function (_){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2153,20], null),\x22`js/TextDecoder` not available\x22,null,null);\n}));\ntaoensso.encore.approx_EQ__EQ_ \x3d (function taoensso$encore$approx_EQ__EQ_(var_args){\nvar G__34053 \x3d arguments.length;\nswitch (G__34053) {\ncase 2:\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (Math.abs((x - y)) \x3c 0.001);\n}));\n\n(taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3 \x3d (function (signf,x,y){\nreturn (Math.abs((x - y)) \x3c signf);\n}));\n\n(taoensso.encore.approx_EQ__EQ_.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.clamp \x3d (function taoensso$encore$clamp(nmin,nmax,n){\nif((n \x3c nmin)){\nreturn nmin;\n} else {\nif((n \x3e nmax)){\nreturn nmax;\n} else {\nreturn n;\n}\n}\n});\ntaoensso.encore.clamp_int \x3d (function taoensso$encore$clamp_int(nmin,nmax,n){\nvar nmin__$1 \x3d cljs.core.long$(nmin);\nvar nmax__$1 \x3d cljs.core.long$(nmax);\nvar n__$1 \x3d cljs.core.long$(n);\nif((n__$1 \x3c nmin__$1)){\nreturn nmin__$1;\n} else {\nif((n__$1 \x3e nmax__$1)){\nreturn nmax__$1;\n} else {\nreturn n__$1;\n}\n}\n});\ntaoensso.encore.clamp_float \x3d (function taoensso$encore$clamp_float(nmin,nmax,n){\nvar nmin__$1 \x3d nmin;\nvar nmax__$1 \x3d nmax;\nvar n__$1 \x3d n;\nif((n__$1 \x3c nmin__$1)){\nreturn nmin__$1;\n} else {\nif((n__$1 \x3e nmax__$1)){\nreturn nmax__$1;\n} else {\nreturn n__$1;\n}\n}\n});\ntaoensso.encore.pnum_complement \x3d (function taoensso$encore$pnum_complement(pnum){\nreturn (1.0 - pnum);\n});\ntaoensso.encore.as_pnum_complement \x3d (function taoensso$encore$as_pnum_complement(x){\nreturn (1.0 - taoensso.encore.as_pnum(x));\n});\ntaoensso.encore.pow \x3d (function taoensso$encore$pow(n,exp){\nreturn Math.pow(n,exp);\n});\ntaoensso.encore.abs \x3d (function taoensso$encore$abs(n){\nif((n \x3c (0))){\nreturn (- n);\n} else {\nreturn n;\n}\n});\n/**\n * General purpose rounding util.\n * Returns given number `n` rounded according to given options:\n * - `kind` - \u2208 #{:round :floor :ceil :trunc} (default `:round`)\n * - `precision` - Number of decimal places to include (default `nil` \x3d\x3e none)\n */\ntaoensso.encore.round \x3d (function taoensso$encore$round(var_args){\nvar G__34066 \x3d arguments.length;\nswitch (G__34066) {\ncase 1:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22round\x22,\x22round\x22,2009433328),null,n);\n}));\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$2 \x3d (function (a1,a2){\nif((a2 instanceof cljs.core.Keyword)){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a2,null,a1);\n} else {\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a1,null,a2);\n}\n}));\n\n(taoensso.encore.round.cljs$core$IFn$_invoke$arity$3 \x3d (function (a1,a2,a3){\nif((a2 instanceof cljs.core.Keyword)){\nreturn taoensso.encore.round.cljs$core$IFn$_invoke$arity$3(a2,a3,a1);\n} else {\nvar n \x3d a3;\nvar modifier \x3d (cljs.core.truth_(a2)?Math.pow(10.0,a2):null);\nvar n_STAR_ \x3d (cljs.core.truth_(modifier)?(n * modifier):n);\nvar rounded \x3d (function (){var kind \x3d a1;\nvar G__34067 \x3d kind;\nvar G__34067__$1 \x3d (((G__34067 instanceof cljs.core.Keyword))?G__34067.fqn:null);\nswitch (G__34067__$1) {\ncase \x22round\x22:\nreturn Math.round(n_STAR_);\n\nbreak;\ncase \x22floor\x22:\nreturn Math.floor(n_STAR_);\n\nbreak;\ncase \x22ceil\x22:\nreturn Math.ceil(n_STAR_);\n\nbreak;\ncase \x22trunc\x22:\nreturn cljs.core.long$(n_STAR_);\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2306,16], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22round\x22,\x22taoensso.encore/round\x22,716371329,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ceil\x22,\x22ceil\x22,-1824929952),null,new cljs.core.Keyword(null,\x22trunc\x22,\x22trunc\x22,-256146097),null,new cljs.core.Keyword(null,\x22round\x22,\x22round\x22,2009433328),null,new cljs.core.Keyword(null,\x22floor\x22,\x22floor\x22,1882041021),null], null), null)], null));\n\n}\n})();\nif(cljs.core.truth_(modifier)){\nreturn (rounded / modifier);\n} else {\nreturn cljs.core.long$(rounded);\n}\n}\n}));\n\n(taoensso.encore.round.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.perc \x3d (function taoensso$encore$perc(n,divisor){\nreturn Math.round(((n / divisor) * 100.0));\n});\n\ntaoensso.encore.round0 \x3d (function taoensso$encore$round0(n){\nreturn Math.round(n);\n});\n\ntaoensso.encore.round1 \x3d (function taoensso$encore$round1(n){\nreturn (Math.round((n * 10.0)) / 10.0);\n});\n\ntaoensso.encore.round2 \x3d (function taoensso$encore$round2(n){\nreturn (Math.round((n * 100.0)) / 100.0);\n});\n\ntaoensso.encore.round3 \x3d (function taoensso$encore$round3(n){\nreturn (Math.round((n * 1000.0)) / 1000.0);\n});\n\ntaoensso.encore.round4 \x3d (function taoensso$encore$round4(n){\nreturn (Math.round((n * 10000.0)) / 10000.0);\n});\n\ntaoensso.encore.roundn \x3d (function taoensso$encore$roundn(precision,n){\nvar p \x3d Math.pow(10.0,cljs.core.long$(precision));\nreturn (Math.round((n * p)) / p);\n});\n/**\n * Returns binary exponential backoff value for n\x3c\x3d36.\n */\ntaoensso.encore.exp_backoff \x3d (function taoensso$encore$exp_backoff(var_args){\nvar G__34069 \x3d arguments.length;\nswitch (G__34069) {\ncase 1:\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1 \x3d (function (n_attempt){\nreturn taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2(n_attempt,null);\n}));\n\n(taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$2 \x3d (function (n_attempt,p__34070){\nvar map__34071 \x3d p__34070;\nvar map__34071__$1 \x3d cljs.core.__destructure_map(map__34071);\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34071__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34071__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar factor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34071__$1,new cljs.core.Keyword(null,\x22factor\x22,\x22factor\x22,-2103172748),(1000));\nvar n \x3d (((n_attempt \x3e (36)))?(36):n_attempt);\nvar b \x3d Math.pow((2),n);\nvar t \x3d cljs.core.long$((((b + cljs.core.rand.cljs$core$IFn$_invoke$arity$1(b)) * 0.5) * factor));\nvar t__$1 \x3d cljs.core.long$((cljs.core.truth_(min)?(((t \x3c min))?min:t):t));\nvar t__$2 \x3d cljs.core.long$((cljs.core.truth_(max)?(((t__$1 \x3e max))?max:t__$1):t__$1));\nreturn t__$2;\n}));\n\n(taoensso.encore.exp_backoff.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.encore.chance \x3d (function taoensso$encore$chance(prob){\nreturn (Math.random() \x3c prob);\n});\ntaoensso.encore.merge_meta \x3d (function taoensso$encore$merge_meta(x,m){\nreturn cljs.core.with_meta(x,taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(x),m));\n});\ntaoensso.encore.without_meta \x3d (function taoensso$encore$without_meta(x){\nif(cljs.core.truth_(cljs.core.meta(x))){\nreturn cljs.core.with_meta(x,null);\n} else {\nreturn x;\n}\n});\n/**\n * Returns true iff given args are equal AND non-nil.\n */\ntaoensso.encore.some_EQ_ \x3d (function taoensso$encore$some_EQ_(var_args){\nvar G__34077 \x3d arguments.length;\nswitch (G__34077) {\ncase 1:\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34860 \x3d arguments.length;\nvar i__5750__auto___34861 \x3d (0);\nwhile(true){\nif((i__5750__auto___34861 \x3c len__5749__auto___34860)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34861]));\n\nvar G__34862 \x3d (i__5750__auto___34861 + (1));\ni__5750__auto___34861 \x3d G__34862;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (!((x \x3d\x3d null)));\n}));\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (((!((x \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)));\n}));\n\n(taoensso.encore.some_EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nvar and__5023__auto__ \x3d (!((x \x3d\x3d null)));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y);\nif(and__5023__auto____$1){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2((function (p1__34072_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p1__34072_SHARP_,x);\n}),more);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n}));\n\n/** @this {Function} */\n(taoensso.encore.some_EQ_.cljs$lang$applyTo \x3d (function (seq34074){\nvar G__34075 \x3d cljs.core.first(seq34074);\nvar seq34074__$1 \x3d cljs.core.next(seq34074);\nvar G__34076 \x3d cljs.core.first(seq34074__$1);\nvar seq34074__$2 \x3d cljs.core.next(seq34074__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34075,G__34076,seq34074__$2);\n}));\n\n(taoensso.encore.some_EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns first non-nil arg, or nil.\n */\ntaoensso.encore.nnil \x3d (function taoensso$encore$nnil(var_args){\nvar G__34083 \x3d arguments.length;\nswitch (G__34083) {\ncase 0:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34864 \x3d arguments.length;\nvar i__5750__auto___34865 \x3d (0);\nwhile(true){\nif((i__5750__auto___34865 \x3c len__5749__auto___34864)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34865]));\n\nvar G__34866 \x3d (i__5750__auto___34865 + (1));\ni__5750__auto___34865 \x3d G__34866;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn null;\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nif((x \x3d\x3d null)){\nreturn y;\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,y,z){\nif((x \x3d\x3d null)){\nif((y \x3d\x3d null)){\nreturn z;\n} else {\nreturn y;\n}\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.nnil.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,z,more){\nif((x \x3d\x3d null)){\nif((y \x3d\x3d null)){\nif((z \x3d\x3d null)){\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2(cljs.core.some_QMARK_,more);\n} else {\nreturn z;\n}\n} else {\nreturn y;\n}\n} else {\nreturn x;\n}\n}));\n\n/** @this {Function} */\n(taoensso.encore.nnil.cljs$lang$applyTo \x3d (function (seq34079){\nvar G__34080 \x3d cljs.core.first(seq34079);\nvar seq34079__$1 \x3d cljs.core.next(seq34079);\nvar G__34081 \x3d cljs.core.first(seq34079__$1);\nvar seq34079__$2 \x3d cljs.core.next(seq34079__$1);\nvar G__34082 \x3d cljs.core.first(seq34079__$2);\nvar seq34079__$3 \x3d cljs.core.next(seq34079__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34080,G__34081,G__34082,seq34079__$3);\n}));\n\n(taoensso.encore.nnil.cljs$lang$maxFixedArity \x3d (3));\n\ntaoensso.encore.parse_version \x3d (function taoensso$encore$parse_version(x){\nvar vec__34084 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),/-/,(2));\nvar s_version \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34084,(0),null);\nvar _QMARK_s_qualifier \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34084,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22version\x22,\x22version\x22,425292698),(function (){var b2__30646__auto__ \x3d cljs.core.re_seq(/\\d+/,s_version);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar s \x3d b2__30646__auto__;\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_int,s);\n} else {\nreturn null;\n}\n})(),new cljs.core.Keyword(null,\x22qualifier\x22,\x22qualifier\x22,125841738),(function (){var b2__30646__auto__ \x3d _QMARK_s_qualifier;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar s \x3d b2__30646__auto__;\nreturn clojure.string.lower_case(s);\n} else {\nreturn null;\n}\n})()], null);\n});\n/**\n * Is `clojure.core.async` present (not necessarily loaded)?\n */\ntaoensso.encore.have_core_async_QMARK_ \x3d true;\n/**\n * Returns true iff given platform instant (`java.time.Instant` or `js/Date`).\n */\ntaoensso.encore.inst_QMARK_ \x3d (function taoensso$encore$inst_QMARK_(x){\nreturn (x instanceof Date);\n});\n/**\n * Returns current system instant as `js/Date`.\n */\ntaoensso.encore.now_inst \x3d (function taoensso$encore$now_inst(){\nreturn (new Date());\n});\n\n/**\n * Returns current system instant as `js/Date`.\n */\ntaoensso.encore.now_dt \x3d (function taoensso$encore$now_dt(){\nreturn (new Date());\n});\n\n/**\n * Returns current system insant as milliseconds since Unix epoch.\n */\ntaoensso.encore.now_udt \x3d (function taoensso$encore$now_udt(){\nreturn Date.now();\n});\n\n/**\n * Returns current value of best-resolution time source as nanoseconds.\n */\ntaoensso.encore.now_nano \x3d (function (){var b2__30646__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,\x22performance\x22);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar perf \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d (function (){var or__5025__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22now\x22);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22mozNow\x22);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22webkitNow\x22);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nvar or__5025__auto____$3 \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22msNow\x22);\nif(cljs.core.truth_(or__5025__auto____$3)){\nreturn or__5025__auto____$3;\n} else {\nreturn taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(perf,\x22oNow\x22);\n}\n}\n}\n}\n})();\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar pf \x3d b2__30646__auto____$1;\nreturn (function (){\nreturn Math.floor((1000000.0 * pf.call(perf)));\n});\n} else {\nreturn (function (){\nreturn (1000000.0 * Date.now());\n});\n}\n} else {\nreturn (function (){\nreturn (1000000.0 * Date.now());\n});\n}\n})();\n\n/**\n * Returns given `js/Date` as milliseconds since Unix epoch.\n */\ntaoensso.encore.inst__GT_udt \x3d (function taoensso$encore$inst__GT_udt(inst){\nreturn inst.getTime();\n});\n\n/**\n * Returns given milliseconds since Unix epoch as `js/Date`.\n */\ntaoensso.encore.udt__GT_inst \x3d (function taoensso$encore$udt__GT_inst(msecs_since_epoch){\nreturn (new Date(msecs_since_epoch));\n});\ntaoensso.encore.udt_QMARK_ \x3d (function taoensso$encore$udt_QMARK_(x){\nreturn taoensso.encore.int_QMARK_(x);\n});\n/**\n * Returns given ?arg as platform instant (`java.time.Instant` or `js/Date`), or nil.\n */\ntaoensso.encore.as__QMARK_inst \x3d (function taoensso$encore$as__QMARK_inst(x){\nif((x instanceof Date)){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn (new Date(x));\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar x__$1 \x3d (new Date(x));\nif(cljs.core.truth_(isNaN(x__$1))){\nreturn null;\n} else {\nreturn x__$1;\n}\n} else {\nreturn null;\n}\n}\n}\n});\n/**\n * Returns given ?arg as (pos/neg) milliseconds since Unix epoch, or nil.\n */\ntaoensso.encore.as__QMARK_udt \x3d (function taoensso$encore$as__QMARK_udt(x){\nif((x instanceof Date)){\nreturn x.getTime();\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nvar or__5025__auto__ \x3d taoensso.encore.parse_js_int(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar x__$1 \x3d Date.parse(x);\nif(cljs.core.truth_(isNaN(x__$1))){\nreturn null;\n} else {\nreturn x__$1;\n}\n}\n} else {\nreturn null;\n}\n}\n}\n});\ntaoensso.encore.as_inst \x3d (function taoensso$encore$as_inst(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_inst(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore._as_throw(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),x);\n}\n});\ntaoensso.encore.as_udt \x3d (function taoensso$encore$as_udt(x){\nvar or__5025__auto__ \x3d taoensso.encore.as__QMARK_udt(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore._as_throw(new cljs.core.Keyword(null,\x22udt\x22,\x22udt\x22,2011712751),x);\n}\n});\n/**\n * Experimental, subject to change without notice.\n * \n * Returns a (fn format [instant]) that:\n * - Takes a platform instant (`java.time.Instant` or `js/Date`).\n * - Returns a formatted human-readable instant string.\n * \n * Options:\n * `:formatter`\n * Clj: `java.time.format.DateTimeFormatter`\n * Cljs: `goog.i18n.DateTimeFormat`\n * \n * Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n * e.g.: \x222011-12-03T10:15:130Z\x22.\n * \n * `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n * Note that zone may be ignored by some `DateTimeFormatter`s,\n * including the default (`DateTimeFormatter/ISO_INSTANT`)!\n */\ntaoensso.encore.format_inst_fn \x3d (function taoensso$encore$format_inst_fn(var_args){\nvar G__34096 \x3d arguments.length;\nswitch (G__34096) {\ncase 0:\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__34097){\nvar map__34098 \x3d p__34097;\nvar map__34098__$1 \x3d cljs.core.__destructure_map(map__34098);\nvar formatter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34098__$1,new cljs.core.Keyword(null,\x22formatter\x22,\x22formatter\x22,-483008823));\nif(cljs.core.truth_(formatter)){\nreturn (function taoensso$encore$format_instant(instant){\nreturn formatter.format(instant);\n});\n} else {\nreturn (function taoensso$encore$format_instant(instant){\nreturn instant.toISOString();\n});\n}\n}));\n\n(taoensso.encore.format_inst_fn.cljs$lang$maxFixedArity \x3d 1);\n\nvar default_fn_34872 \x3d taoensso.encore.format_inst_fn.cljs$core$IFn$_invoke$arity$0();\n/**\n * Takes a platform instant (`java.time.Instant` or `js/Date`) and\n * returns a formatted human-readable string in `ISO8601` format\n * (`YYYY-MM-DDTHH:mm:ss.sssZ`), e.g. \x222011-12-03T10:15:130Z\x22.\n */\ntaoensso.encore.format_inst \x3d (function taoensso$encore$format_inst(inst){\nreturn (default_fn_34872.cljs$core$IFn$_invoke$arity$1 ? default_fn_34872.cljs$core$IFn$_invoke$arity$1(inst) : default_fn_34872.call(null,inst));\n});\ntaoensso.encore.secs__GT_ms \x3d (function taoensso$encore$secs__GT_ms(secs){\nreturn (cljs.core.long$(secs) * (1000));\n});\ntaoensso.encore.ms__GT_secs \x3d (function taoensso$encore$ms__GT_secs(ms){\nreturn cljs.core.quot(cljs.core.long$(ms),(1000));\n});\n/**\n * Returns ~number of milliseconds in period defined by given args.\n */\ntaoensso.encore.ms \x3d (function taoensso$encore$ms(var_args){\nvar G__34117 \x3d arguments.length;\nswitch (G__34117) {\ncase 1:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34875 \x3d arguments.length;\nvar i__5750__auto___34876 \x3d (0);\nwhile(true){\nif((i__5750__auto___34876 \x3c len__5749__auto___34875)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34876]));\n\nvar G__34885 \x3d (i__5750__auto___34876 + (1));\ni__5750__auto___34876 \x3d G__34885;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__34118){\nvar map__34119 \x3d p__34118;\nvar map__34119__$1 \x3d cljs.core.__destructure_map(map__34119);\nvar ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22ms\x22,\x22ms\x22,-1152709733));\nvar weeks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22weeks\x22,\x22weeks\x22,1844596125));\nvar msecs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22msecs\x22,\x22msecs\x22,1711980553));\nvar months \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22months\x22,\x22months\x22,-45571637));\nvar secs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22secs\x22,\x22secs\x22,1532330091));\nvar mins \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676));\nvar days \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22days\x22,\x22days\x22,-1394072564));\nvar hours \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22hours\x22,\x22hours\x22,58380855));\nvar years \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34119__$1,new cljs.core.Keyword(null,\x22years\x22,\x22years\x22,-1298579689));\nreturn taoensso.encore.round0((((((((((cljs.core.truth_(years)?(years * (31536000000)):0.0) + (cljs.core.truth_(months)?(months * 2.551392E9):0.0)) + (cljs.core.truth_(weeks)?(weeks * (604800000)):0.0)) + (cljs.core.truth_(days)?(days * (86400000)):0.0)) + (cljs.core.truth_(hours)?(hours * (3600000)):0.0)) + (cljs.core.truth_(mins)?(mins * (60000)):0.0)) + (cljs.core.truth_(secs)?(secs * (1000)):0.0)) + (cljs.core.truth_(msecs)?msecs:0.0)) + (cljs.core.truth_(ms)?ms:0.0)));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2 \x3d (function (k1,v1){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1]));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$4 \x3d (function (k1,v1,k2,v2){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]));\n}));\n\n(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k1,v1,k2,v2,more){\nreturn taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(taoensso.encore.reduce_kvs(cljs.core.assoc,cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]),more));\n}));\n\n/** @this {Function} */\n(taoensso.encore.ms.cljs$lang$applyTo \x3d (function (seq34112){\nvar G__34113 \x3d cljs.core.first(seq34112);\nvar seq34112__$1 \x3d cljs.core.next(seq34112);\nvar G__34114 \x3d cljs.core.first(seq34112__$1);\nvar seq34112__$2 \x3d cljs.core.next(seq34112__$1);\nvar G__34115 \x3d cljs.core.first(seq34112__$2);\nvar seq34112__$3 \x3d cljs.core.next(seq34112__$2);\nvar G__34116 \x3d cljs.core.first(seq34112__$3);\nvar seq34112__$4 \x3d cljs.core.next(seq34112__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34113,G__34114,G__34115,G__34116,seq34112__$4);\n}));\n\n(taoensso.encore.ms.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Returns ~number of seconds in period defined by given args.\n */\ntaoensso.encore.secs \x3d (function taoensso$encore$secs(var_args){\nvar G__34126 \x3d arguments.length;\nswitch (G__34126) {\ncase 1:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34895 \x3d arguments.length;\nvar i__5750__auto___34896 \x3d (0);\nwhile(true){\nif((i__5750__auto___34896 \x3c len__5749__auto___34895)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34896]));\n\nvar G__34898 \x3d (i__5750__auto___34896 + (1));\ni__5750__auto___34896 \x3d G__34898;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((4) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);\nreturn taoensso.encore.secs.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(opts));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$2 \x3d (function (k1,v1){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1])));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$4 \x3d (function (k1,v1,k2,v2){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2])));\n}));\n\n(taoensso.encore.secs.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k1,v1,k2,v2,more){\nreturn taoensso.encore.ms__GT_secs(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$1(taoensso.encore.reduce_kvs(cljs.core.assoc,cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,v1,k2,v2]),more)));\n}));\n\n/** @this {Function} */\n(taoensso.encore.secs.cljs$lang$applyTo \x3d (function (seq34121){\nvar G__34122 \x3d cljs.core.first(seq34121);\nvar seq34121__$1 \x3d cljs.core.next(seq34121);\nvar G__34123 \x3d cljs.core.first(seq34121__$1);\nvar seq34121__$2 \x3d cljs.core.next(seq34121__$1);\nvar G__34124 \x3d cljs.core.first(seq34121__$2);\nvar seq34121__$3 \x3d cljs.core.next(seq34121__$2);\nvar G__34125 \x3d cljs.core.first(seq34121__$3);\nvar seq34121__$4 \x3d cljs.core.next(seq34121__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34122,G__34123,G__34124,G__34125,seq34121__$4);\n}));\n\n(taoensso.encore.secs.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Example UTF-8 string for tests, etc.\n */\ntaoensso.encore.a_utf8_str \x3d \x22Hi \\u0CAC\\u0CBE \\u0C87\\u0CB2\\u0CCD\\u0CB2\\u0CBF \\u0CB8\\u0C82\\u0CAD\\u0CB5\\u0CBF\\u0CB8 10\x22;\ntaoensso.encore.str_builder_QMARK_ \x3d (function taoensso$encore$str_builder_QMARK_(x){\nreturn (x instanceof goog.string.StringBuffer);\n});\n/**\n * Returns a new stateful string builder:\n * - `java.lang.StringBuilder` for Clj\n * - `goog.string.StringBuffer` for Cljs\n * \n * See also `sb-append`.\n */\ntaoensso.encore.str_builder \x3d (function taoensso$encore$str_builder(var_args){\nvar G__34128 \x3d arguments.length;\nswitch (G__34128) {\ncase 0:\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (new goog.string.StringBuffer());\n}));\n\n(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nif((init instanceof goog.string.StringBuffer)){\nreturn init;\n} else {\nreturn (new goog.string.StringBuffer(cljs.core.str.cljs$core$IFn$_invoke$arity$1(init)));\n}\n}));\n\n(taoensso.encore.str_builder.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns given string builder\x27s current length (character count).\n */\ntaoensso.encore.sb_length \x3d (function taoensso$encore$sb_length(sb){\nreturn sb.getLength();\n});\n/**\n * Appends given string/s to given string builder. See also `str-builder.`\n */\ntaoensso.encore.sb_append \x3d (function taoensso$encore$sb_append(var_args){\nvar G__34133 \x3d arguments.length;\nswitch (G__34133) {\ncase 2:\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___34944 \x3d arguments.length;\nvar i__5750__auto___34946 \x3d (0);\nwhile(true){\nif((i__5750__auto___34946 \x3c len__5749__auto___34944)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___34946]));\n\nvar G__34948 \x3d (i__5750__auto___34946 + (1));\ni__5750__auto___34946 \x3d G__34948;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2 \x3d (function (str_builder,x){\nif((x \x3d\x3d null)){\nreturn str_builder;\n} else {\nreturn str_builder.append(x.toString());\n}\n}));\n\n(taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$variadic \x3d (function (str_builder,x,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(str_builder,x),more);\n}));\n\n/** @this {Function} */\n(taoensso.encore.sb_append.cljs$lang$applyTo \x3d (function (seq34130){\nvar G__34131 \x3d cljs.core.first(seq34130);\nvar seq34130__$1 \x3d cljs.core.next(seq34130);\nvar G__34132 \x3d cljs.core.first(seq34130__$1);\nvar seq34130__$2 \x3d cljs.core.next(seq34130__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34131,G__34132,seq34130__$2);\n}));\n\n(taoensso.encore.sb_append.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Private, don\x27t use.\n * Returns a stateful string-building (fn [x \x26 more]) that:\n * - Appends non-nil xs to a string builder, starting with a separator IFF\n * string building has started and at least one x is non-nil.\n * - Returns the underlying string builder.\n */\ntaoensso.encore.sb_appender \x3d (function taoensso$encore$sb_appender(var_args){\nvar G__34135 \x3d arguments.length;\nswitch (G__34135) {\ncase 0:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),\x22 \x22);\n}));\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$1 \x3d (function (separator){\nreturn taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),separator);\n}));\n\n(taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2 \x3d (function (sb,separator){\nvar sep_BANG_ \x3d (function (){var sep \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(separator);\nvar started_QMARK__ \x3d cljs.core.volatile_BANG_(false);\nreturn (function (){\nif(cljs.core.truth_(cljs.core.deref(started_QMARK__))){\nsb.append(sep);\n\nreturn true;\n} else {\ncljs.core.vreset_BANG_(started_QMARK__,true);\n\nreturn false;\n}\n});\n})();\nreturn (function() {\nvar taoensso$encore$a_sb_appender \x3d null;\nvar taoensso$encore$a_sb_appender__0 \x3d (function (){\nreturn sb;\n});\nvar taoensso$encore$a_sb_appender__1 \x3d (function (x){\nif((x \x3d\x3d null)){\nreturn sb;\n} else {\nsep_BANG_();\n\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x);\n}\n});\nvar taoensso$encore$a_sb_appender__2 \x3d (function() { \nvar G__34957__delegate \x3d function (x,more){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (x \x3d\x3d null);\nif(and__5023__auto__){\nreturn taoensso.encore.revery_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,more);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn null;\n} else {\nsep_BANG_();\n\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,x),more);\n}\n};\nvar G__34957 \x3d function (x,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 1) {\nvar G__34958__i \x3d 0, G__34958__a \x3d new Array(arguments.length - 1);\nwhile (G__34958__i \x3c G__34958__a.length) {G__34958__a[G__34958__i] \x3d arguments[G__34958__i + 1]; ++G__34958__i;}\n more \x3d new cljs.core.IndexedSeq(G__34958__a,0,null);\n} \nreturn G__34957__delegate.call(this,x,more);};\nG__34957.cljs$lang$maxFixedArity \x3d 1;\nG__34957.cljs$lang$applyTo \x3d (function (arglist__34959){\nvar x \x3d cljs.core.first(arglist__34959);\nvar more \x3d cljs.core.rest(arglist__34959);\nreturn G__34957__delegate(x,more);\n});\nG__34957.cljs$core$IFn$_invoke$arity$variadic \x3d G__34957__delegate;\nreturn G__34957;\n})()\n;\ntaoensso$encore$a_sb_appender \x3d function(x,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$a_sb_appender__0.call(this);\ncase 1:\nreturn taoensso$encore$a_sb_appender__1.call(this,x);\ndefault:\nvar G__34962 \x3d null;\nif (arguments.length \x3e 1) {\nvar G__34963__i \x3d 0, G__34963__a \x3d new Array(arguments.length - 1);\nwhile (G__34963__i \x3c G__34963__a.length) {G__34963__a[G__34963__i] \x3d arguments[G__34963__i + 1]; ++G__34963__i;}\nG__34962 \x3d new cljs.core.IndexedSeq(G__34963__a,0,null);\n}\nreturn taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic(x, G__34962);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$a_sb_appender.cljs$lang$maxFixedArity \x3d 1;\ntaoensso$encore$a_sb_appender.cljs$lang$applyTo \x3d taoensso$encore$a_sb_appender__2.cljs$lang$applyTo;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$a_sb_appender__0;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$a_sb_appender__1;\ntaoensso$encore$a_sb_appender.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$a_sb_appender__2.cljs$core$IFn$_invoke$arity$variadic;\nreturn taoensso$encore$a_sb_appender;\n})()\n}));\n\n(taoensso.encore.sb_appender.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * String builder reducing fn.\n */\ntaoensso.encore.str_rf \x3d (function taoensso$encore$str_rf(var_args){\nvar G__34137 \x3d arguments.length;\nswitch (G__34137) {\ncase 0:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (acc){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(acc);\n}));\n\n(taoensso.encore.str_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (acc,in$){\nif((in$ \x3d\x3d null)){\nreturn acc;\n} else {\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$1(acc).append(in$.toString());\n}\n}));\n\n(taoensso.encore.str_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `str-rf` but presumes string builder init value.\n */\ntaoensso.encore.sb_rf \x3d (function taoensso$encore$sb_rf(var_args){\nvar G__34139 \x3d arguments.length;\nswitch (G__34139) {\ncase 0:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\n}));\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (sb){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}));\n\n(taoensso.encore.sb_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (sb,in$){\nif((in$ \x3d\x3d null)){\nreturn sb;\n} else {\nreturn sb.append(in$.toString());\n}\n}));\n\n(taoensso.encore.sb_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Faster generalization of `clojure.string/join` with transducer support.\n */\ntaoensso.encore.str_join \x3d (function taoensso$encore$str_join(var_args){\nvar G__34141 \x3d arguments.length;\nswitch (G__34141) {\ncase 1:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$1 \x3d (function (xs){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(null,null,xs);\n}));\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$2 \x3d (function (separator,xs){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(separator,null,xs);\n}));\n\n(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3 \x3d (function (separator,xform,xs){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d separator;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(separator,\x22\x22);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar separator__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(separator);\nif(cljs.core.truth_(xform)){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(xform,cljs.core.interpose.cljs$core$IFn$_invoke$arity$1(separator__$1)),taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n} else {\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.interpose.cljs$core$IFn$_invoke$arity$1(separator__$1),taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n}\n} else {\nif(cljs.core.truth_(xform)){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.sb_rf,taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs));\n}\n}\n}));\n\n(taoensso.encore.str_join.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.str_contains_QMARK_ \x3d (function taoensso$encore$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.encore.str_starts_with_QMARK_ \x3d (function taoensso$encore$str_starts_with_QMARK_(s,substr){\nreturn (s.indexOf(substr) \x3d\x3d\x3d (0));\n});\ntaoensso.encore.str_ends_with_QMARK_ \x3d (function taoensso$encore$str_ends_with_QMARK_(s,substr){\nvar s_len \x3d s.length;\nvar substr_len \x3d substr.length;\nif((s_len \x3e\x3d substr_len)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr,(s_len - substr_len)));\n} else {\nreturn null;\n}\n});\n/**\n * Returns (first/last) ?index of substring if it exists within given string.\n */\ntaoensso.encore.str__QMARK_index \x3d (function taoensso$encore$str__QMARK_index(var_args){\nvar G__34143 \x3d arguments.length;\nswitch (G__34143) {\ncase 2:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,substr){\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4(s,substr,(0),false);\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,substr,start_idx){\nreturn taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4(s,substr,start_idx,false);\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$core$IFn$_invoke$arity$4 \x3d (function (s,substr,start_idx,last_QMARK_){\nvar result \x3d (cljs.core.truth_(last_QMARK_)?s.lastIndexOf(substr,start_idx):s.indexOf(substr,start_idx));\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(result,(-1))){\nreturn result;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.str__QMARK_index.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns true iff given strings are equal, ignoring case.\n */\ntaoensso.encore.case_insensitive_str_EQ_ \x3d (function taoensso$encore$case_insensitive_str_EQ_(s1,s2){\nvar or__5025__auto__ \x3d (s1 \x3d\x3d\x3d s2);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar l1 \x3d s1.length;\nvar l2 \x3d s2.length;\nvar and__5023__auto__ \x3d (l1 \x3d\x3d\x3d l2);\nif(and__5023__auto__){\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$4((function (acc,idx){\nvar c1 \x3d s1.charAt(idx).toLowerCase();\nvar c2 \x3d s2.charAt(idx).toLowerCase();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c1,c2)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,(0),l1);\n} else {\nreturn and__5023__auto__;\n}\n}\n});\n/**\n * Returns normalized form of given string.\n * `norm-form` is \u2208 #{:nfc :nfkc :nfd :nfkd} (default `:nfc` as per W3C).\n */\ntaoensso.encore.norm_str \x3d (function taoensso$encore$norm_str(var_args){\nvar G__34145 \x3d arguments.length;\nswitch (G__34145) {\ncase 1:\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nfc\x22,\x22nfc\x22,1898291461),s);\n}));\n\n(taoensso.encore.norm_str.cljs$core$IFn$_invoke$arity$2 \x3d (function (norm_form,s){\nvar norm_form__$1 \x3d (function (){var G__34146 \x3d norm_form;\nvar G__34146__$1 \x3d (((G__34146 instanceof cljs.core.Keyword))?G__34146.fqn:null);\nswitch (G__34146__$1) {\ncase \x22nfc\x22:\nreturn \x22NFC\x22;\n\nbreak;\ncase \x22nfkc\x22:\nreturn \x22NFKC\x22;\n\nbreak;\ncase \x22nfd\x22:\nreturn \x22NFD\x22;\n\nbreak;\ncase \x22nfkd\x22:\nreturn \x22NFKD\x22;\n\nbreak;\ndefault:\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2939,14], null),norm_form,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22norm-form\x22,\x22norm-form\x22,-1587703891,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22norm-str\x22,\x22taoensso.encore/norm-str\x22,-56716920,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22nfc\x22,\x22nfc\x22,1898291461),null,new cljs.core.Keyword(null,\x22nfkc\x22,\x22nfkc\x22,1301302858),null,new cljs.core.Keyword(null,\x22nfkd\x22,\x22nfkd\x22,-445525140),null,new cljs.core.Keyword(null,\x22nfd\x22,\x22nfd\x22,-1770233195),null], null), null)], null));\n\n\n}\n})();\nreturn s.normalize(norm_form__$1);\n}));\n\n(taoensso.encore.norm_str.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `str/replace` but provides consistent Clj/s behaviour.\n * \n * Workaround for \x3chttp://dev.clojure.org/jira/browse/CLJS-794\x3e,\n * \x3chttp://dev.clojure.org/jira/browse/CLJS-911\x3e.\n * \n * Note that ClojureScript 1.7.145 introduced a partial fix for CLJS-911.\n * A full fix could unfortunately not be introduced w/o breaking compatibility\n * with the previously incorrect behaviour. CLJS-794 also remains unresolved.\n */\ntaoensso.encore.str_replace \x3d (function taoensso$encore$str_replace(s,match,replacement){\nif(typeof match \x3d\x3d\x3d \x27string\x27){\nreturn s.replace((new RegExp(goog.string.regExpEscape(match),\x22g\x22)),replacement);\n} else {\nif((match instanceof RegExp)){\nvar flags \x3d [\x22g\x22,(cljs.core.truth_(match.ignoreCase)?\x22i\x22:null),(cljs.core.truth_(match.multiline)?\x22m\x22:null)].join(\x27\x27);\nvar replacement__$1 \x3d ((typeof replacement \x3d\x3d\x3d \x27string\x27)?replacement:(function() { \nvar G__34988__delegate \x3d function (args){\nvar G__34147 \x3d cljs.core.vec(args);\nreturn (replacement.cljs$core$IFn$_invoke$arity$1 ? replacement.cljs$core$IFn$_invoke$arity$1(G__34147) : replacement.call(null,G__34147));\n};\nvar G__34988 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__34989__i \x3d 0, G__34989__a \x3d new Array(arguments.length - 0);\nwhile (G__34989__i \x3c G__34989__a.length) {G__34989__a[G__34989__i] \x3d arguments[G__34989__i + 0]; ++G__34989__i;}\n args \x3d new cljs.core.IndexedSeq(G__34989__a,0,null);\n} \nreturn G__34988__delegate.call(this,args);};\nG__34988.cljs$lang$maxFixedArity \x3d 0;\nG__34988.cljs$lang$applyTo \x3d (function (arglist__34990){\nvar args \x3d cljs.core.seq(arglist__34990);\nreturn G__34988__delegate(args);\n});\nG__34988.cljs$core$IFn$_invoke$arity$variadic \x3d G__34988__delegate;\nreturn G__34988;\n})()\n);\nreturn s.replace((new RegExp(match.source,flags)),replacement__$1);\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2977,14], null),[\x22Invalid match arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join(\x27\x27),null,null);\n}\n}\n});\ntaoensso.encore.nil__GT_str \x3d (function taoensso$encore$nil__GT_str(x){\nif((x \x3d\x3d null)){\nreturn \x22nil\x22;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.format_STAR_ \x3d (function taoensso$encore$format_STAR_(var_args){\nvar G__34149 \x3d arguments.length;\nswitch (G__34149) {\ncase 2:\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (fmt,args){\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3(taoensso.encore.nil__GT_str,fmt,args);\n}));\n\n(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,fmt,args){\nif((fmt \x3d\x3d null)){\nreturn \x22\x22;\n} else {\nvar args__$1 \x3d (cljs.core.truth_(xform)?cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(xform,args):args);\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,fmt,args__$1);\n}\n}));\n\n(taoensso.encore.format_STAR_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Like `core/format` but:\n * * Returns \x22\x22 when fmt is nil rather than throwing an NPE.\n * * Formats nil as \x22nil\x22 rather than \x22null\x22.\n * * Provides ClojureScript support via goog.string.format (this has fewer\n * formatting options than Clojure\x27s `format`!).\n */\ntaoensso.encore.format \x3d (function taoensso$encore$format(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35002 \x3d arguments.length;\nvar i__5750__auto___35003 \x3d (0);\nwhile(true){\nif((i__5750__auto___35003 \x3c len__5749__auto___35002)){\nargs__5755__auto__.push((arguments[i__5750__auto___35003]));\n\nvar G__35004 \x3d (i__5750__auto___35003 + (1));\ni__5750__auto___35003 \x3d G__35004;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.format.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.format.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,args){\nreturn taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,args);\n}));\n\n(taoensso.encore.format.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.format.cljs$lang$applyTo \x3d (function (seq34150){\nvar G__34151 \x3d cljs.core.first(seq34150);\nvar seq34150__$1 \x3d cljs.core.next(seq34150);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34151,seq34150__$1);\n}));\n\n/**\n * Like `string/join` but skips nils and duplicate separators.\n */\ntaoensso.encore.str_join_once \x3d (function taoensso$encore$str_join_once(separator,coll){\nvar sep \x3d separator;\nif(clojure.string.blank_QMARK_(sep)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.str_rf,\x22\x22,coll));\n} else {\nvar acc_ends_with_sep_QMARK__ \x3d cljs.core.volatile_BANG_(false);\nvar acc_empty_QMARK__ \x3d cljs.core.volatile_BANG_(true);\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nvar in$__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(in$);\nvar in_empty_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(in$__$1,\x22\x22);\nvar in_starts_with_sep_QMARK_ \x3d taoensso.encore.str_starts_with_QMARK_(in$__$1,sep);\nvar in_ends_with_sep_QMARK_ \x3d taoensso.encore.str_ends_with_QMARK_(in$__$1,sep);\nvar acc_ends_with_sep_QMARK_ \x3d cljs.core.deref(acc_ends_with_sep_QMARK__);\nvar acc_empty_QMARK_ \x3d cljs.core.deref(acc_empty_QMARK__);\ncljs.core.vreset_BANG_(acc_ends_with_sep_QMARK__,in_ends_with_sep_QMARK_);\n\nif(cljs.core.truth_(acc_empty_QMARK_)){\ncljs.core.vreset_BANG_(acc_empty_QMARK__,in_empty_QMARK_);\n} else {\n}\n\nif(cljs.core.truth_(acc_ends_with_sep_QMARK_)){\nif(cljs.core.truth_(in_starts_with_sep_QMARK_)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1.substring((1)));\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n}\n} else {\nif(cljs.core.truth_(in_starts_with_sep_QMARK_)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n} else {\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d acc_empty_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn in_empty_QMARK_;\n}\n})())){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n} else {\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,sep);\n\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,in$__$1);\n}\n}\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),coll));\n}\n});\ntaoensso.encore.path \x3d (function taoensso$encore$path(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35007 \x3d arguments.length;\nvar i__5750__auto___35008 \x3d (0);\nwhile(true){\nif((i__5750__auto___35008 \x3c len__5749__auto___35007)){\nargs__5755__auto__.push((arguments[i__5750__auto___35008]));\n\nvar G__35009 \x3d (i__5750__auto___35008 + (1));\ni__5750__auto___35008 \x3d G__35009;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.path.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.path.cljs$core$IFn$_invoke$arity$variadic \x3d (function (parts){\nreturn taoensso.encore.str_join_once(\x22/\x22,parts);\n}));\n\n(taoensso.encore.path.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.path.cljs$lang$applyTo \x3d (function (seq34152){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34152));\n}));\n\n/**\n * Converts all word breaks of any form and length (including line breaks of any\n * form, tabs, spaces, etc.) to a single regular space.\n */\ntaoensso.encore.norm_word_breaks \x3d (function taoensso$encore$norm_word_breaks(s){\nreturn clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),/\\s+/,\x22 \x22);\n});\ntaoensso.encore.count_words \x3d (function taoensso$encore$count_words(s){\nif(clojure.string.blank_QMARK_(s)){\nreturn (0);\n} else {\nreturn cljs.core.count(clojure.string.split.cljs$core$IFn$_invoke$arity$2(s,/\\s+/));\n}\n});\n/**\n * Simple Hiccup-like string templating to complement Tempura.\n */\ntaoensso.encore.into_str \x3d (function taoensso$encore$into_str(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35011 \x3d arguments.length;\nvar i__5750__auto___35012 \x3d (0);\nwhile(true){\nif((i__5750__auto___35012 \x3c len__5749__auto___35011)){\nargs__5755__auto__.push((arguments[i__5750__auto___35012]));\n\nvar G__35013 \x3d (i__5750__auto___35012 + (1));\ni__5750__auto___35012 \x3d G__35013;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.into_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.into_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function taoensso$encore$rf(acc,in$){\nif(cljs.core.sequential_QMARK_(in$)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso$encore$rf,acc,in$);\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(acc,cljs.core.str.cljs$core$IFn$_invoke$arity$1(in$));\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),xs));\n}));\n\n(taoensso.encore.into_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.into_str.cljs$lang$applyTo \x3d (function (seq34153){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34153));\n}));\n\n/**\n * Constant-time string equality checker.\n * Useful to prevent timing attacks, etc.\n */\ntaoensso.encore.const_str_EQ_ \x3d (function taoensso$encore$const_str_EQ_(s1,s2){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d s1;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn s2;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar vx \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x220\x22,\x221\x22], null);\nvar v1 \x3d cljs.core.vec(s1);\nvar v2 \x3d cljs.core.vec(s2);\nvar n1 \x3d cljs.core.count(v1);\nvar n2 \x3d cljs.core.count(v2);\nvar nmax \x3d (function (){var x__5110__auto__ \x3d n1;\nvar y__5111__auto__ \x3d n2;\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar nmin \x3d (function (){var x__5113__auto__ \x3d n1;\nvar y__5114__auto__ \x3d n2;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})();\nreturn taoensso.encore.reduce_n.cljs$core$IFn$_invoke$arity$3((function (acc,idx){\nif((idx \x3e\x3d nmin)){\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(vx,(0)),cljs.core.get.cljs$core$IFn$_invoke$arity$2(vx,(1)));\nif(and__5023__auto__){\nreturn acc;\n} else {\nreturn and__5023__auto__;\n}\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(v1,idx),cljs.core.get.cljs$core$IFn$_invoke$arity$2(v2,idx));\nif(and__5023__auto__){\nreturn acc;\n} else {\nreturn and__5023__auto__;\n}\n}\n}),true,nmax);\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.format_num_fn \x3d (function taoensso$encore$format_num_fn(n_min_fd,n_max_fd){\nvar nf \x3d (new Intl.NumberFormat(\x22en-US\x22,({\x22minimumFractionDigits\x22: n_min_fd, \x22maximumFractionDigits\x22: n_max_fd, \x22useGrouping\x22: true})));\nreturn (function (n){\nreturn nf.format(n);\n});\n});\nvar fmt0_35017 \x3d taoensso.encore.format_num_fn((0),(0));\nvar fmt2_35018 \x3d taoensso.encore.format_num_fn((2),(2));\n/**\n * Returns given nanoseconds (long) as formatted human-readable string.\n * Example outputs: \x221.00m\x22, \x224.20s\x22, \x22340ms\x22, \x22822\u03bcs\x22, etc.\n */\ntaoensso.encore.format_nsecs \x3d (function taoensso$encore$format_nsecs(nanosecs){\nvar ns \x3d nanosecs;\nif((ns \x3e\x3d 6.0E10)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_35018((ns / 6.0E10))),\x22m\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1.0E9)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt2_35018((ns / 1.0E9))),\x22s\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1000000.0)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017((ns / 1000000.0))),\x22ms\x22].join(\x27\x27);\n} else {\nif((ns \x3e\x3d 1000.0)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017((ns / 1000.0))),\x22\\u03BCs\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt0_35017(ns)),\x22ns\x22].join(\x27\x27);\n}\n}\n}\n}\n});\n/**\n * Give any nameable type (string, keyword, symbol), returns the same\n * type with at most `n-full` (default 1) unabbreviated namespace parts.\n * \n * Example:\n * (abbreviate-ns 2 :foo.bar/baz) \x3d\x3e :foo.bar/baz\n * (abbreviate-ns 1 :foo.bar/baz) \x3d\x3e :f.bar/baz\n * (abbreviate-ns 0 :foo.bar/baz) \x3d\x3e :f.b/baz\n */\ntaoensso.encore.abbreviate_ns \x3d (function taoensso$encore$abbreviate_ns(var_args){\nvar G__34155 \x3d arguments.length;\nswitch (G__34155) {\ncase 1:\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2((1),x);\n}));\n\n(taoensso.encore.abbreviate_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (n_full,x){\nvar n_full__$1 \x3d cljs.core.long$((function (){var error34163 \x3d (function (){try{if(cljs.core.truth_(taoensso.encore.nat_int_QMARK_(n_full))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34165){var e \x3d e34165;\nreturn e;\n}})();\nif(cljs.core.truth_(error34163)){\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,3156,23,new cljs.core.Symbol(\x22taoensso.encore\x22,\x22nat-int?\x22,\x22taoensso.encore/nat-int?\x22,2095181418,null),new cljs.core.Symbol(null,\x22n-full\x22,\x22n-full\x22,797009712,null),n_full,null,error34163);\n} else {\nreturn n_full;\n}\n})());\nvar vec__34156 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as_qname(x),/\\//);\nvar p1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34156,(0),null);\nvar p2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34156,(1),null);\nif(cljs.core.truth_(p2)){\nvar name_part \x3d p2;\nvar ns_parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(p1,/\\./);\nvar n_to_abbr \x3d (cljs.core.count(ns_parts) - n_full__$1);\nvar sb \x3d taoensso.encore.reduce_indexed((function (sb,idx,in$){\nif((idx \x3d\x3d\x3d (0))){\n} else {\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,\x22.\x22);\n}\n\nif((idx \x3c n_to_abbr)){\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,in$.substring((0),(1)));\n} else {\nreturn taoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,in$);\n}\n}),taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0(),ns_parts);\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,\x22/\x22);\n\ntaoensso.encore.sb_append.cljs$core$IFn$_invoke$arity$2(sb,name_part);\n\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\nif((x instanceof cljs.core.Keyword)){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(s);\n} else {\nif((x instanceof cljs.core.Symbol)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(s);\n} else {\nreturn s;\n}\n}\n} else {\nreturn x;\n}\n}));\n\n(taoensso.encore.abbreviate_ns.cljs$lang$maxFixedArity \x3d 2);\n\nvar as__QMARK_qname_35023 \x3d taoensso.encore.as__QMARK_qname;\nvar always_35024 \x3d (function taoensso$encore$always(_in){\nreturn true;\n});\nvar never_35025 \x3d (function taoensso$encore$never(_in){\nreturn false;\n});\nvar ns_QMARK__35026 \x3d (function (x){\nreturn (x instanceof cljs.core.Namespace);\n});\nvar input_str_BANG__35027 \x3d (function (x){\nvar or__5025__auto__ \x3d (as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1(x) : as__QMARK_qname_35023.call(null,x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif((x \x3d\x3d null)){\nreturn \x22\x22;\n} else {\nif(ns_QMARK__35026(x)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3199,13], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22name-filter\x22,\x22taoensso.encore/name-filter\x22,-2070485905,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22filter-input-arg\x22,\x22filter-input-arg\x22,1147690060,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22namespace\x22,\x22namespace\x22,1263021155,null),\x22null\x22,new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22,new cljs.core.Symbol(null,\x22keyword\x22,\x22keyword\x22,-1843046022,null),\x22null\x22], null), null)], null));\n}\n}\n}\n});\nvar wild_str__GT__QMARK_re_pattern_35028 \x3d (function (s){\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(s,\x22*\x22))){\nreturn cljs.core.re_pattern(clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace([\x22^\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),\x22$\x22].join(\x27\x27),\x22(.*)\x22,\x22__OR_CHILDREN__\x22),\x22.\x22,\x22\\\\.\x22),\x22*\x22,\x22.*\x22),\x22__OR_CHILDREN__\x22,\x22(\\\\..*)?\x22));\n} else {\nreturn null;\n}\n});\nvar compile__GT_match_fn_35029 \x3d (function taoensso$encore$compile__GT_match_fn(spec,cache_QMARK_){\nwhile(true){\nif(cljs.core.truth_((function (){var fexpr__34167 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22*\x22,null,new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423),null], null), null);\nreturn (fexpr__34167.cljs$core$IFn$_invoke$arity$1 ? fexpr__34167.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__34167.call(null,spec));\n})())){\nreturn always_35024;\n} else {\nif(cljs.core.truth_((function (){var fexpr__34168 \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22none\x22,\x22none\x22,1333468478)]);\nreturn (fexpr__34168.cljs$core$IFn$_invoke$arity$1 ? fexpr__34168.cljs$core$IFn$_invoke$arity$1(spec) : fexpr__34168.call(null,spec));\n})())){\nreturn never_35025;\n} else {\nif(taoensso.encore.re_pattern_QMARK_(spec)){\nreturn ((function (spec,cache_QMARK_,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nreturn cljs.core.re_find(spec,input_str_BANG__35027(in$));\n});\n;})(spec,cache_QMARK_,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n} else {\nif(ns_QMARK__35026(spec)){\nvar G__35040 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec);\nvar G__35041 \x3d cache_QMARK_;\nspec \x3d G__35040;\ncache_QMARK_ \x3d G__35041;\ncontinue;\n} else {\nvar b2__30646__auto__ \x3d (as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1 ? as__QMARK_qname_35023.cljs$core$IFn$_invoke$arity$1(spec) : as__QMARK_qname_35023.call(null,spec));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar str_spec \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d wild_str__GT__QMARK_re_pattern_35028(str_spec);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar re_pattern \x3d b2__30646__auto____$1;\nvar G__35043 \x3d re_pattern;\nvar G__35044 \x3d cache_QMARK_;\nspec \x3d G__35043;\ncache_QMARK_ \x3d G__35044;\ncontinue;\n} else {\nreturn ((function (spec,cache_QMARK_,b2__30646__auto____$1,str_spec,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(str_spec,input_str_BANG__35027(in$));\n});\n;})(spec,cache_QMARK_,b2__30646__auto____$1,str_spec,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n}\n} else {\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.set_QMARK_(spec)))){\nif(cljs.core.truth_((function (){var fexpr__34169 \x3d cljs.core.set(spec);\nreturn (fexpr__34169.cljs$core$IFn$_invoke$arity$1 ? fexpr__34169.cljs$core$IFn$_invoke$arity$1(\x22*\x22) : fexpr__34169.call(null,\x22*\x22));\n})())){\nreturn always_35024;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(spec),(1))){\nvar G__35047 \x3d cljs.core.first(spec);\nvar G__35048 \x3d cache_QMARK_;\nspec \x3d G__35047;\ncache_QMARK_ \x3d G__35048;\ncontinue;\n} else {\nvar vec__34170 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (spec,cache_QMARK_,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function (p__34173,spec__$1){\nvar vec__34174 \x3d p__34173;\nvar fixed_strs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34174,(0),null);\nvar re_patterns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34174,(1),null);\nvar spec__$2 \x3d ((ns_QMARK__35026(spec__$1))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec__$1):taoensso.encore.as_qname(spec__$1));\nvar b2__30646__auto____$1 \x3d ((taoensso.encore.re_pattern_QMARK_(spec__$2))?spec__$2:wild_str__GT__QMARK_re_pattern_35028(spec__$2));\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar re_pattern \x3d b2__30646__auto____$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [fixed_strs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(re_patterns,re_pattern)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(fixed_strs,spec__$2),re_patterns], null);\n}\n});})(spec,cache_QMARK_,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentHashSet.EMPTY,cljs.core.PersistentVector.EMPTY], null),spec);\nvar fixed_strs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34170,(0),null);\nvar re_patterns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34170,(1),null);\nvar fx_match \x3d cljs.core.not_empty(fixed_strs);\nvar re_match \x3d (function (){var b2__30646__auto____$1 \x3d cljs.core.not_empty(re_patterns);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar re_patterns__$1 \x3d b2__30646__auto____$1;\nvar f \x3d ((function (spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in_str){\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2(((function (spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function (p1__34166_SHARP_){\nreturn cljs.core.re_find(p1__34166_SHARP_,in_str);\n});})(spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n,re_patterns__$1);\n});})(spec,cache_QMARK_,re_patterns__$1,b2__30646__auto____$1,vec__34170,fixed_strs,re_patterns,fx_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n;\nif(cljs.core.truth_(cache_QMARK_)){\nreturn (taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.fmemoize.cljs$core$IFn$_invoke$arity$1(f) : taoensso.encore.fmemoize.call(null,f));\n} else {\nreturn f;\n}\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d fx_match;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn re_match;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar in_str \x3d input_str_BANG__35027(in$);\nvar or__5025__auto__ \x3d (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(in_str) : fx_match.call(null,in_str));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(in_str) : re_match.call(null,in_str));\n}\n});\n;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n} else {\nif(cljs.core.truth_(fx_match)){\nreturn ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar G__34177 \x3d input_str_BANG__35027(in$);\nreturn (fx_match.cljs$core$IFn$_invoke$arity$1 ? fx_match.cljs$core$IFn$_invoke$arity$1(G__34177) : fx_match.call(null,G__34177));\n});\n;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n} else {\nif(cljs.core.truth_(re_match)){\nreturn ((function (spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028){\nreturn (function taoensso$encore$compile__GT_match_fn_$_match_QMARK_(in$){\nvar G__34178 \x3d input_str_BANG__35027(in$);\nreturn (re_match.cljs$core$IFn$_invoke$arity$1 ? re_match.cljs$core$IFn$_invoke$arity$1(G__34178) : re_match.call(null,G__34178));\n});\n;})(spec,cache_QMARK_,vec__34170,fixed_strs,re_patterns,fx_match,re_match,b2__30646__auto__,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028))\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,null,\x22[encore/cond!] No matching clause\x22,null,null);\n}\n}\n}\n}\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3262,11], null),spec,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22name-filter\x22,\x22taoensso.encore/name-filter\x22,-2070485905,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22filter-spec\x22,\x22filter-spec\x22,539212879,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22namespace\x22,\x22namespace\x22,1263021155,null),\x22null\x22,new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22,new cljs.core.Symbol(null,\x22keyword\x22,\x22keyword\x22,-1843046022,null),\x22null\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),new cljs.core.Symbol(null,\x22\x3cspec\x3e\x22,\x22\x3cspec\x3e\x22,1165019597,null),new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),new cljs.core.Symbol(null,\x22\x3cspec\x3e\x22,\x22\x3cspec\x3e\x22,1165019597,null)], null),\x22null\x22,new cljs.core.Symbol(null,\x22regex\x22,\x22regex\x22,-1714946913,null),\x22null\x22], null), null)], null));\n}\n}\n}\n}\n}\n}\nbreak;\n}\n});\n/**\n * Given filter `spec`, returns a compiled (fn match? [x]) that:\n * - Takes a string, keyword, symbol, or namespace.\n * - Returns true iff input matches spec.\n * \n * Useful for efficiently filtering namespaces, class names, id kws, etc.\n * \n * Spec may be:\n * - A namespace to match exactly\n * - A regex pattern to match\n * - A str/kw/sym to match, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will match \x22foo.bar\x22\n * \x22foo(.*)\x22 will match \x22foo.bar\x22 and \x22foo\x22\n * If you need literal \x22*\x22s, use #\x22\\*\x22 regex instead.\n * \n * - A set/vector of the above to match any\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as the above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n * \n * Spec examples:\n * *ns*, #{}, \x22*\x22, \x22foo.bar\x22, \x22foo.bar.*\x22, \x22foo.bar(.*)\x22,\n * #{\x22foo\x22 \x22bar.*\x22}, #\x22(foo1|foo2)\\.bar\x22,\n * {:allow #{\x22foo\x22 \x22bar.*\x22} :disallow #{\x22foo.*.bar.*\x22}}.\n */\ntaoensso.encore.name_filter \x3d (function taoensso$encore$name_filter(spec){\nwhile(true){\nif(cljs.core.map_QMARK_(spec)){\nvar cache_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22cache?\x22,\x22cache?\x22,-1601953949));\nvar allow_spec \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22whitelist\x22,\x22whitelist\x22,-979294437));\n}\n})();\nvar disallow_spec \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22blacklist\x22,\x22blacklist\x22,1248093170));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,new cljs.core.Keyword(null,\x22deny\x22,\x22deny\x22,1589338523));\n}\n}\n})();\nvar allow \x3d (function (){var b2__30646__auto__ \x3d allow_spec;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar as \x3d b2__30646__auto__;\nreturn compile__GT_match_fn_35029(as,cache_QMARK_);\n} else {\nreturn null;\n}\n})();\nvar disallow \x3d (function (){var b2__30646__auto__ \x3d disallow_spec;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar ds \x3d b2__30646__auto__;\nreturn compile__GT_match_fn_35029(ds,cache_QMARK_);\n} else {\nreturn null;\n}\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,always_35024)){\nreturn never_35025;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,never_35025)){\nreturn never_35025;\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d allow;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn disallow;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif((allow.cljs$core$IFn$_invoke$arity$1 ? allow.cljs$core$IFn$_invoke$arity$1(in$) : allow.call(null,in$))){\nif((disallow.cljs$core$IFn$_invoke$arity$1 ? disallow.cljs$core$IFn$_invoke$arity$1(in$) : disallow.call(null,in$))){\nreturn false;\n} else {\nreturn true;\n}\n} else {\nreturn false;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029))\n} else {\nif(cljs.core.truth_(allow)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(allow,always_35024)){\nreturn always_35024;\n} else {\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif(allow(in$)){\nreturn true;\n} else {\nreturn false;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029))\n}\n} else {\nif(cljs.core.truth_(disallow)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(disallow,never_35025)){\nreturn always_35024;\n} else {\nreturn ((function (spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029){\nreturn (function taoensso$encore$name_filter_$_match_QMARK_(in$){\nif(disallow(in$)){\nreturn false;\n} else {\nreturn true;\n}\n});\n;})(spec,cache_QMARK_,allow_spec,disallow_spec,allow,disallow,as__QMARK_qname_35023,always_35024,never_35025,ns_QMARK__35026,input_str_BANG__35027,wild_str__GT__QMARK_re_pattern_35028,compile__GT_match_fn_35029))\n}\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3313,11], null),\x22[encore/name-filter] `allow-spec` and `disallow-spec` cannot both be nil\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow-spec\x22,\x22allow-spec\x22,448749872),allow_spec,new cljs.core.Keyword(null,\x22disallow-spec\x22,\x22disallow-spec\x22,-16464308),disallow_spec], null),null);\n}\n}\n}\n}\n}\n} else {\nvar G__35060 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),spec,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),null], null);\nspec \x3d G__35060;\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Single system newline\n */\ntaoensso.encore.newline \x3d \x22\\n\x22;\n/**\n * Double system newline\n */\ntaoensso.encore.newlines \x3d [\x22\\n\x22,\x22\\n\x22].join(\x27\x27);\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.x__GT_str \x3d (function taoensso$encore$x__GT_str(allow_readably_QMARK_,allow_dup_QMARK_,add_newline_QMARK_,x){\nif(cljs.core.truth_(allow_readably_QMARK_)){\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n}\n} else {\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n}\n}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.xs__GT_str \x3d (function taoensso$encore$xs__GT_str(allow_readably_QMARK_,allow_dup_QMARK_,add_newline_QMARK_,xs){\nif(cljs.core.truth_(allow_readably_QMARK_)){\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.prn_str,xs);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str,xs);\n}\n} else {\nif(cljs.core.truth_(add_newline_QMARK_)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.println_str,xs);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.print_str,xs);\n}\n}\n});\n/**\n * Identical to `core/pr`.\n */\ntaoensso.encore.pr \x3d cljs.core.pr;\n\n/**\n * Identical to `core/prn`.\n */\ntaoensso.encore.prn \x3d cljs.core.prn;\n\n/**\n * Identical to `core/print`.\n */\ntaoensso.encore.print \x3d cljs.core.print;\n\n/**\n * Identical to `core/println`.\n */\ntaoensso.encore.println \x3d cljs.core.println;\n/**\n * Prints given arg to an edn string readable with `read-edn`.\n */\ntaoensso.encore.pr_edn \x3d (function taoensso$encore$pr_edn(x){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core._STAR_print_level_STAR_ \x3d\x3d null);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core._STAR_print_length_STAR_ \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn cljs.core._STAR_print_readably_STAR_;\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn taoensso.encore.x__GT_str(true,false,false,x);\n} else {\nvar _STAR_print_level_STAR__orig_val__34179 \x3d cljs.core._STAR_print_level_STAR_;\nvar _STAR_print_length_STAR__orig_val__34180 \x3d cljs.core._STAR_print_length_STAR_;\nvar _STAR_print_readably_STAR__orig_val__34181 \x3d cljs.core._STAR_print_readably_STAR_;\nvar _STAR_print_level_STAR__temp_val__34182 \x3d null;\nvar _STAR_print_length_STAR__temp_val__34183 \x3d null;\nvar _STAR_print_readably_STAR__temp_val__34184 \x3d true;\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__temp_val__34182);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__temp_val__34183);\n\n(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__temp_val__34184);\n\ntry{return taoensso.encore.x__GT_str(true,false,false,x);\n}finally {(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__orig_val__34181);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__orig_val__34180);\n\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__orig_val__34179);\n}}\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.pr_edn_STAR_ \x3d (function taoensso$encore$pr_edn_STAR_(x){\nreturn taoensso.encore.x__GT_str(true,false,false,x);\n});\n/**\n * Reads given edn string to return a Clj/s value.\n */\ntaoensso.encore.read_edn \x3d (function taoensso$encore$read_edn(var_args){\nvar G__34186 \x3d arguments.length;\nswitch (G__34186) {\ncase 1:\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2(null,s);\n}));\n\n(taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,s){\nif((((s \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)))){\nreturn null;\n} else {\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar readers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399));\nvar readers__$1 \x3d ((cljs.core.keyword_identical_QMARK_(readers,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399)))?cljs.core.deref(cljs.reader._STAR_tag_table_STAR_):readers);\nvar default$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399));\nvar default$__$1 \x3d ((cljs.core.keyword_identical_QMARK_(default$,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22dynamic\x22,\x22taoensso.encore/dynamic\x22,-1726758399)))?cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_):default$);\nvar opts__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(opts,new cljs.core.Keyword(null,\x22readers\x22,\x22readers\x22,-2118263030),readers__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1], 0));\nreturn cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(opts__$1,s);\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [3472,6], null),\x22[encore/read-edn] Unexpected arg type (expected string or nil)\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),s,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(s)], null)], null),null);\n}\n}\n}));\n\n(taoensso.encore.read_edn.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.str_impl \x3d (function taoensso$encore$str_impl(var_args){\nvar G__34188 \x3d arguments.length;\nswitch (G__34188) {\ncase 2:\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,class_name){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(class_name);\n}));\n\n(taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,class_name,data){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(class_name),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(data),\x22]\x22].join(\x27\x27);\n}));\n\n(taoensso.encore.str_impl.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * For Clj: returns a random `java.util.UUID`.\n * For Cljs: returns a random UUID string.\n * \n * Uses strong randomness when possible.\n * See also `uuid-str`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.encore.uuid \x3d (function taoensso$encore$uuid(){\nvar b2__30646__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_crypto,\x22randomUUID\x22);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar f \x3d b2__30646__auto__;\nreturn f.call(taoensso.encore.js__QMARK_crypto);\n} else {\nvar quad_hex \x3d (function (){\nvar unpadded_hex \x3d cljs.core.rand_int((65536)).toString((16));\nvar G__34189 \x3d ((unpadded_hex).length);\nswitch (G__34189) {\ncase (1):\nreturn [\x22000\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (2):\nreturn [\x2200\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (3):\nreturn [\x220\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ndefault:\nreturn unpadded_hex;\n\n}\n});\nvar ver_trip_hex \x3d ((16384) | ((4095) \x26 cljs.core.rand_int((65536)))).toString((16));\nvar res_trip_hex \x3d ((32768) | ((16383) \x26 cljs.core.rand_int((65536)))).toString((16));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),\x22-\x22,ver_trip_hex,\x22-\x22,res_trip_hex,\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(quad_hex())].join(\x27\x27);\n}\n});\n/**\n * Returns a random UUID string of given length (max 36).\n * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.encore.uuid_str \x3d (function taoensso$encore$uuid_str(var_args){\nvar G__34191 \x3d arguments.length;\nswitch (G__34191) {\ncase 1:\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 0:\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$1 \x3d (function (max_len){\nvar or__5025__auto__ \x3d taoensso.encore.substr(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0(),new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(0),max_len);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.uuid();\n}));\n\n(taoensso.encore.uuid_str.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns a random byte array of given size.\n */\ntaoensso.encore.rand_bytes \x3d (function taoensso$encore$rand_bytes(prefer_secure_QMARK_,size){\nvar ba \x3d (new Uint8Array(size));\nvar b2__30646__auto___35069 \x3d (function (){var and__5023__auto__ \x3d prefer_secure_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn taoensso.encore.js__QMARK_crypto;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto___35069)){\nvar crypto_35070 \x3d b2__30646__auto___35069;\ncrypto_35070.getRandomValues(ba);\n} else {\nvar n__5616__auto___35071 \x3d size;\nvar i_35073 \x3d (0);\nwhile(true){\nif((i_35073 \x3c n__5616__auto___35071)){\n(ba[i_35073] \x3d Math.floor(((256) * Math.random())));\n\nvar G__35075 \x3d (i_35073 + (1));\ni_35073 \x3d G__35075;\ncontinue;\n} else {\n}\nbreak;\n}\n}\n\nreturn ba;\n});\n/**\n * Returns a (fn rand-id []) that returns random id strings.\n * Options include:\n * `:chars` - \u2208 #{\x3cstring\x3e :nanoid :alphanumeric :no-look-alikes ...}\n * `:len` - Length of id strings to generate\n * `:rand-bytes-fn` - Optional (fn [size]) to return random byte array of given size\n * \n * See also `uuid-str`, `nano-id`.\n */\ntaoensso.encore.rand_id_fn \x3d (function taoensso$encore$rand_id_fn(p__34192){\nvar map__34193 \x3d p__34192;\nvar map__34193__$1 \x3d cljs.core.__destructure_map(map__34193);\nvar chars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22nanoid\x22,\x22nanoid\x22,-90964628));\nvar len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),(21));\nvar rand_bytes_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34193__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true));\nvar chars__$1 \x3d (function (){var G__34194 \x3d chars;\nvar G__34194__$1 \x3d (((G__34194 instanceof cljs.core.Keyword))?G__34194.fqn:null);\nswitch (G__34194__$1) {\ncase \x22alphanumeric\x22:\nreturn \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x22;\n\nbreak;\ncase \x22nanoid\x22:\nreturn \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\x22;\n\nbreak;\ncase \x22nanoid-readable\x22:\nreturn \x22346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz\x22;\n\nbreak;\ncase \x22numbers\x22:\nreturn \x220123456789\x22;\n\nbreak;\ncase \x22alpha-lowercase\x22:\nreturn \x22abcdefghijklmnopqrstuvwxyz\x22;\n\nbreak;\ncase \x22alpha-uppercase\x22:\nreturn \x22ABCDEFGHIJKLMNOPQRSTUVWXYZ\x22;\n\nbreak;\ncase \x22hex-lowercase\x22:\nreturn \x220123456789abcdef\x22;\n\nbreak;\ncase \x22hex-uppercase\x22:\nreturn \x220123456789ABCDEF\x22;\n\nbreak;\ndefault:\nif(typeof chars \x3d\x3d\x3d \x27string\x27){\nreturn chars;\n} else {\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,3654,11,new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),chars,null,null);\n}\n\n}\n})();\nvar nchars \x3d cljs.core.count(chars__$1);\nvar max_char_idx \x3d (nchars - (1));\nvar chars__$2 \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(chars__$1);\nvar mask \x3d ((-1) \x26 (((2) \x3c\x3c (Math.floor((Math.log((nchars - (1))) / Math.log((2)))) | (0))) - (1)));\nvar exp_bytes \x3d ((mask * len) / nchars);\nvar stepn \x3d ((function (){var x__5110__auto__ \x3d (2);\nvar y__5111__auto__ \x3d Math.ceil((0.2 * exp_bytes));\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})() | (0));\nvar step1 \x3d (((((cljs.core.mod((256),nchars) | (0)) \x3d\x3d\x3d (0)))?len:Math.ceil((1.2 * exp_bytes))) | (0));\nreturn (function taoensso$encore$rand_id_fn_$_rand_id(){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar idx \x3d (0);\nvar max_idx \x3d (step1 - (1));\nvar rand_bytes \x3d (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(step1) : rand_bytes_fn.call(null,step1));\nwhile(true){\nvar possible_ch_idx_35084 \x3d ((rand_bytes[idx]) \x26 mask);\nif((possible_ch_idx_35084 \x3c\x3d max_char_idx)){\nsb.append((chars__$2[possible_ch_idx_35084]));\n} else {\n}\n\nif((sb.length() \x3d\x3d\x3d len)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nif((idx \x3d\x3d\x3d max_idx)){\nvar G__35085 \x3d (0);\nvar G__35086 \x3d (stepn - (1));\nvar G__35087 \x3d (rand_bytes_fn.cljs$core$IFn$_invoke$arity$1 ? rand_bytes_fn.cljs$core$IFn$_invoke$arity$1(stepn) : rand_bytes_fn.call(null,stepn));\nidx \x3d G__35085;\nmax_idx \x3d G__35086;\nrand_bytes \x3d G__35087;\ncontinue;\n} else {\nvar G__35088 \x3d (idx + (1));\nvar G__35089 \x3d max_idx;\nvar G__35090 \x3d rand_bytes;\nidx \x3d G__35088;\nmax_idx \x3d G__35089;\nrand_bytes \x3d G__35090;\ncontinue;\n}\n}\nbreak;\n}\n});\n});\nvar chars_35091 \x3d (function (){var s \x3d \x220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\x22;\nreturn cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(s);\n})();\n/**\n * Returns a random \x22Nano ID\x22 of given length, Ref. \x3chttps://github.com/ai/nanoid\x3e.\n * Faster, variable-length version of (rand-id-fn {:chars :nanoid}).\n * 126 bits of entropy with default length (21).\n * See also `uuid-str`, `rand-id-fn`.\n */\ntaoensso.encore.nanoid \x3d (function taoensso$encore$nanoid(var_args){\nvar G__34202 \x3d arguments.length;\nswitch (G__34202) {\ncase 0:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(true,(21));\n}));\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$1 \x3d (function (len){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(true,len);\n}));\n\n(taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2 \x3d (function (prefer_secure_QMARK_,len){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar ba \x3d taoensso.encore.rand_bytes(prefer_secure_QMARK_,len);\nvar max_idx \x3d (len - (1));\nvar idx_35094 \x3d (0);\nwhile(true){\nsb.append((chars_35091[((ba[idx_35094]) \x26 (63))]));\n\nif((idx_35094 \x3c max_idx)){\nvar G__35096 \x3d (idx_35094 + (1));\nidx_35094 \x3d G__35096;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}));\n\n(taoensso.encore.nanoid.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.LightAtom \x3d (function (state){\nthis.state \x3d state;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 98304;\n});\n(taoensso.encore.LightAtom.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.state;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IReset$_reset_BANG_$arity$2 \x3d (function (_,new$){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\n(self__.state \x3d new$);\n\nreturn new$;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 \x3d (function (t,swap_fn){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn (t__$1.cljs$core$IFn$_invoke$arity$1 ? t__$1.cljs$core$IFn$_invoke$arity$1(swap_fn) : t__$1.call(null,swap_fn));\n}));\n\n(taoensso.encore.LightAtom.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__34204 \x3d (arguments.length - (1));\nswitch (G__34204) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.LightAtom.prototype.apply \x3d (function (self__,args34203){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34203)));\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.state;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (swap_fn){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar new$ \x3d (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(self__.state) : swap_fn.call(null,self__.state));\n(self__.state \x3d new$);\n\nreturn new$;\n}));\n\n(taoensso.encore.LightAtom.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,swap_fn){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar old_map \x3d self__.state;\nvar new_val \x3d (function (){var G__34205 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,k);\nreturn (swap_fn.cljs$core$IFn$_invoke$arity$1 ? swap_fn.cljs$core$IFn$_invoke$arity$1(G__34205) : swap_fn.call(null,G__34205));\n})();\nvar new_map \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old_map,k,new_val);\n(self__.state \x3d new_map);\n\nreturn new_val;\n}));\n\n(taoensso.encore.LightAtom.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(taoensso.encore.LightAtom.cljs$lang$type \x3d true);\n\n(taoensso.encore.LightAtom.cljs$lang$ctorStr \x3d \x22taoensso.encore/LightAtom\x22);\n\n(taoensso.encore.LightAtom.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LightAtom\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LightAtom.\n */\ntaoensso.encore.__GT_LightAtom \x3d (function taoensso$encore$__GT_LightAtom(state){\nreturn (new taoensso.encore.LightAtom(state));\n});\n\n/**\n * Private, don\x27t use. Micro-optimized lightweight `atom`.\n * Up to 30% faster than standard atoms, with the same atomicity guarantees.\n */\ntaoensso.encore.latom \x3d (function taoensso$encore$latom(init_state){\nreturn (new taoensso.encore.LightAtom(init_state));\n});\n/**\n * Impln. for 0-key resets\n */\ntaoensso.encore._reset_k0_BANG_ \x3d (function taoensso$encore$_reset_k0_BANG_(return$,atom_,m1){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m1,m1) : return$.call(null,m0,m0,m1,m1));\n} else {\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Impln. for 1-key resets\n */\ntaoensso.encore._reset_k1_BANG_ \x3d (function taoensso$encore$_reset_k1_BANG_(return$,atom_,k,not_found,v1){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__34206 \x3d m0;\nvar G__34207 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar G__34208 \x3d m1;\nvar G__34209 \x3d v1;\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34206,G__34207,G__34208,G__34209) : return$.call(null,G__34206,G__34207,G__34208,G__34209));\n} else {\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Impln. for n-key resets\n */\ntaoensso.encore._reset_kn_BANG_ \x3d (function taoensso$encore$_reset_kn_BANG_(return$,atom_,ks,not_found,v1){\nvar b2__30646__auto__ \x3d cljs.core.seq(ks);\nif(b2__30646__auto__){\nvar ks_seq \x3d b2__30646__auto__;\nif(cljs.core.next(ks_seq)){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.assoc_in(m0,ks,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__34210 \x3d m0;\nvar G__34211 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar G__34212 \x3d m1;\nvar G__34213 \x3d v1;\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34210,G__34211,G__34212,G__34213) : return$.call(null,G__34210,G__34211,G__34212,G__34213));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nreturn taoensso.encore._reset_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ks,(0)),not_found,v1);\n}\n} else {\nreturn taoensso.encore._reset_k0_BANG_(return$,atom_,v1);\n}\n});\nvar return_35116 \x3d (function (m0,v0,m1,v1){\nreturn v0;\n});\n/**\n * Like `reset!` but supports `update-in` semantics, returns \x3cold-key-val\x3e.\n */\ntaoensso.encore.reset_in_BANG_ \x3d (function taoensso$encore$reset_in_BANG_(var_args){\nvar G__34215 \x3d arguments.length;\nswitch (G__34215) {\ncase 2:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,val){\nreturn taoensso.encore._reset_k0_BANG_(return_35116,atom_,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,val){\nreturn taoensso.encore._reset_kn_BANG_(return_35116,atom_,ks,null,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,val){\nreturn taoensso.encore._reset_kn_BANG_(return_35116,atom_,ks,not_found,val);\n}));\n\n(taoensso.encore.reset_in_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `reset-in!` but optimized for single-key case. Returns \x3cold-key-val\x3e.\n */\ntaoensso.encore.reset_val_BANG_ \x3d (function taoensso$encore$reset_val_BANG_(var_args){\nvar G__34217 \x3d arguments.length;\nswitch (G__34217) {\ncase 3:\nreturn taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,val){\nreturn taoensso.encore._reset_k1_BANG_(return_35116,atom_,k,null,val);\n}));\n\n(taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,val){\nreturn taoensso.encore._reset_k1_BANG_(return_35116,atom_,k,not_found,val);\n}));\n\n(taoensso.encore.reset_val_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\nvar sentinel_35126 \x3d ({});\nvar return_35127 \x3d (function (m0,v0,m1,v1){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,v1);\n});\n/**\n * Like `reset-in!` but returns true iff the atom\x27s value changed.\n */\ntaoensso.encore.reset_in_BANG__QMARK_ \x3d (function taoensso$encore$reset_in_BANG__QMARK_(var_args){\nvar G__34221 \x3d arguments.length;\nswitch (G__34221) {\ncase 2:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,val){\nreturn taoensso.encore._reset_k0_BANG_(return_35127,atom_,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,val){\nreturn taoensso.encore._reset_kn_BANG_(return_35127,atom_,ks,sentinel_35126,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,val){\nreturn taoensso.encore._reset_kn_BANG_(return_35127,atom_,ks,not_found,val);\n}));\n\n(taoensso.encore.reset_in_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `reset-in!?` but optimized for single-key case.\n * Returns true iff the atom\x27s value changed.\n */\ntaoensso.encore.reset_val_BANG__QMARK_ \x3d (function taoensso$encore$reset_val_BANG__QMARK_(var_args){\nvar G__34223 \x3d arguments.length;\nswitch (G__34223) {\ncase 3:\nreturn taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,new_val){\nvar v0 \x3d taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,sentinel_35126,new_val);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,new_val);\n}));\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,new_val){\nvar v0 \x3d taoensso.encore.reset_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,not_found,new_val);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(v0,new_val);\n}));\n\n(taoensso.encore.reset_val_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Atomically swaps value of `atom_` to `val` and returns\n * true iff the atom\x27s value changed. See also `reset-in!?`.\n */\ntaoensso.encore.reset_BANG__QMARK_ \x3d (function taoensso$encore$reset_BANG__QMARK_(atom_,val){\nwhile(true){\nvar old \x3d cljs.core.deref(atom_);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,val)){\nreturn false;\n} else {\nif(cljs.core.compare_and_set_BANG_(atom_,old,val)){\nreturn true;\n} else {\ncontinue;\n}\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.Swapped \x3d (function (newv,returnv){\nthis.newv \x3d newv;\nthis.returnv \x3d returnv;\n});\n\n(taoensso.encore.Swapped.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22newv\x22,\x22newv\x22,-238403387,null),new cljs.core.Symbol(null,\x22returnv\x22,\x22returnv\x22,-1488668972,null)], null);\n}));\n\n(taoensso.encore.Swapped.cljs$lang$type \x3d true);\n\n(taoensso.encore.Swapped.cljs$lang$ctorStr \x3d \x22taoensso.encore/Swapped\x22);\n\n(taoensso.encore.Swapped.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Swapped\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Swapped.\n */\ntaoensso.encore.__GT_Swapped \x3d (function taoensso$encore$__GT_Swapped(newv,returnv){\nreturn (new taoensso.encore.Swapped(newv,returnv));\n});\n\n\n/**\n * For use within the swap functions of `swap-in!` and `swap-val!`.\n * \n * Allows the easy decoupling of new and returned values. Compare:\n * (let [a (atom 0)] [(core/swap! a (fn [old] (inc old) )) @a]) [1 1] ; new\x3d1, return\x3d1\n * (let [a (atom 0)] [(swap-in! a (fn [old] (swapped (inc old) old))) @a]) [0 1] ; new\x3d1, return\x3d0\n * \n * Faster and much more flexible than `core/swap-vals!`, etc.\n * Especially useful when combined with the `update-in` semantics of `swap-in!`, etc.\n */\ntaoensso.encore.swapped \x3d (function taoensso$encore$swapped(new_val,return_val){\nreturn (new taoensso.encore.Swapped(new_val,return_val));\n});\n\n/**\n * Private, don\x27t use.\n */\ntaoensso.encore.swapped_vec \x3d (function taoensso$encore$swapped_vec(x){\nif((x instanceof taoensso.encore.Swapped)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x.newv,x.returnv], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,x], null);\n}\n});\n\n/**\n * Returns true iff given `Swapped` argument.\n */\ntaoensso.encore.swapped_QMARK_ \x3d (function taoensso$encore$swapped_QMARK_(x){\nreturn (x instanceof taoensso.encore.Swapped);\n});\n\ntaoensso.encore.return_swapped \x3d (function taoensso$encore$return_swapped(sw,m0,m1){\nvar rv \x3d sw.returnv;\nvar G__34224 \x3d rv;\nvar G__34224__$1 \x3d (((G__34224 instanceof cljs.core.Keyword))?G__34224.fqn:null);\nswitch (G__34224__$1) {\ncase \x22swap/changed?\x22:\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(m1,m0);\n\nbreak;\ncase \x22swap/new\x22:\nreturn m1;\n\nbreak;\ncase \x22swap/old\x22:\nreturn m0;\n\nbreak;\ndefault:\nreturn rv;\n\n}\n});\n/**\n * Impln. for 0-key swaps\n */\ntaoensso.encore._swap_k0_BANG_ \x3d (function taoensso$encore$_swap_k0_BANG_(return$,atom_,f){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(m0) : f.call(null,m0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar m1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(m1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m0,m0) : return$.call(null,m0,m0,m0,m0));\n}\n} else {\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,m0,m1,m1) : return$.call(null,m0,m0,m1,m1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n});\n/**\n * Impln. for 1-key swaps\n */\ntaoensso.encore._swap_k1_BANG_ \x3d (function taoensso$encore$_swap_k1_BANG_(return$,atom_,k,not_found,f){\nif(cljs.core.keyword_identical_QMARK_(f,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782))){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m0,k);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__34225 \x3d m0;\nvar G__34226 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar G__34227 \x3d m1;\nvar G__34228 \x3d new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782);\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34225,G__34226,G__34227,G__34228) : return$.call(null,G__34225,G__34226,G__34227,G__34228));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v0 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m0,k,not_found);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v0) : f.call(null,v0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar v1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m0);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m0,v0) : return$.call(null,m0,v0,m0,v0));\n}\n} else {\nvar m1 \x3d ((cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782)))?cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m0,k):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1));\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m1,v1) : return$.call(null,m0,v0,m1,v1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n});\n/**\n * Impln. for n-key swaps\n */\ntaoensso.encore._swap_kn_BANG_ \x3d (function taoensso$encore$_swap_kn_BANG_(return$,atom_,ks,not_found,f){\nvar b2__30646__auto__ \x3d cljs.core.seq(ks);\nif(b2__30646__auto__){\nvar ks_seq \x3d b2__30646__auto__;\nif(cljs.core.next(ks_seq)){\nif(cljs.core.keyword_identical_QMARK_(f,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782))){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar m1 \x3d taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2(m0,ks);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nvar G__34229 \x3d m0;\nvar G__34230 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar G__34231 \x3d m1;\nvar G__34232 \x3d new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782);\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(G__34229,G__34230,G__34231,G__34232) : return$.call(null,G__34229,G__34230,G__34231,G__34232));\n} else {\ncontinue;\n}\nbreak;\n}\n} else {\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v0 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(m0,ks,not_found);\nvar s1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v0) : f.call(null,v0));\nvar sw_QMARK_ \x3d (s1 instanceof taoensso.encore.Swapped);\nvar v1 \x3d ((sw_QMARK_)?s1.newv:s1);\nif(cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993))){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m0);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m0,v0) : return$.call(null,m0,v0,m0,v0));\n}\n} else {\nvar m1 \x3d ((cljs.core.keyword_identical_QMARK_(v1,new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782)))?taoensso.encore.dissoc_in.cljs$core$IFn$_invoke$arity$2(m0,ks):cljs.core.assoc_in(m0,ks,v1));\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nif(sw_QMARK_){\nreturn taoensso.encore.return_swapped(s1,m0,m1);\n} else {\nreturn (return$.cljs$core$IFn$_invoke$arity$4 ? return$.cljs$core$IFn$_invoke$arity$4(m0,v0,m1,v1) : return$.call(null,m0,v0,m1,v1));\n}\n} else {\ncontinue;\n}\n}\nbreak;\n}\n}\n} else {\nreturn taoensso.encore._swap_k1_BANG_(return$,atom_,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ks,(0)),not_found,f);\n}\n} else {\nreturn taoensso.encore._swap_k0_BANG_(return$,atom_,f);\n}\n});\nvar return_35146 \x3d (function (m0,v0,m1,v1){\nreturn v1;\n});\n/**\n * Like `swap!` but supports `update-in` semantics and `swapped`.\n * Returns \x3cnew-key-val\x3e or \x3cswapped-return-val\x3e:\n * (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2] inc) \x3d\x3e 6\n * (swap-in! (atom {:k1 {:k2 5}}) [:k1 :k2]\n * (fn [old] (swapped (inc old) old))) \x3d\x3e 5\n */\ntaoensso.encore.swap_in_BANG_ \x3d (function taoensso$encore$swap_in_BANG_(var_args){\nvar G__34234 \x3d arguments.length;\nswitch (G__34234) {\ncase 2:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,f){\nreturn taoensso.encore._swap_k0_BANG_(return_35146,atom_,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,f){\nreturn taoensso.encore._swap_kn_BANG_(return_35146,atom_,ks,null,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,f){\nreturn taoensso.encore._swap_kn_BANG_(return_35146,atom_,ks,not_found,f);\n}));\n\n(taoensso.encore.swap_in_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Like `swap-in!` but optimized for single-key case.\n * Returns \x3cnew-key-val\x3e or \x3cswapped-return-val\x3e:\n * (swap-val! (atom {:k 5}) :k inc) \x3d\x3e 6\n * (swap-val! (atom {:k 5}) :k\n * (fn [old] (swapped (inc old) old))) \x3d\x3e 5\n */\ntaoensso.encore.swap_val_BANG_ \x3d (function taoensso$encore$swap_val_BANG_(var_args){\nvar G__34236 \x3d arguments.length;\nswitch (G__34236) {\ncase 3:\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,f){\nreturn taoensso.encore._swap_k1_BANG_(return_35146,atom_,k,null,f);\n}));\n\n(taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,f){\nreturn taoensso.encore._swap_k1_BANG_(return_35146,atom_,k,not_found,f);\n}));\n\n(taoensso.encore.swap_val_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Removes and returns value mapped to key:\n * (let [a (atom {:k :v})]\n * [(pull-val! a :k) @a]) \x3d\x3e [:v {}]\n */\ntaoensso.encore.pull_val_BANG_ \x3d (function taoensso$encore$pull_val_BANG_(var_args){\nvar G__34238 \x3d arguments.length;\nswitch (G__34238) {\ncase 2:\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,k){\nreturn taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3(atom_,k,null);\n}));\n\n(taoensso.encore.pull_val_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,not_found){\nreturn taoensso.encore.swap_val_BANG_.cljs$core$IFn$_invoke$arity$4(atom_,k,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22nx\x22,\x22taoensso.encore/nx\x22,1544906500),(function (v0){\nif(cljs.core.keyword_identical_QMARK_(v0,new cljs.core.Keyword(\x22taoensso.encore\x22,\x22nx\x22,\x22taoensso.encore/nx\x22,1544906500))){\nreturn taoensso.encore.swapped(new cljs.core.Keyword(\x22swap\x22,\x22abort\x22,\x22swap/abort\x22,508048993),not_found);\n} else {\nreturn taoensso.encore.swapped(new cljs.core.Keyword(\x22swap\x22,\x22dissoc\x22,\x22swap/dissoc\x22,-605373782),v0);\n}\n}));\n}));\n\n(taoensso.encore.pull_val_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `core/memoize` but only caches the given fn\x27s latest input.\n * Speeds repeated fn calls with the same arguments.\n * Great for ReactJS render fn caching, etc.\n */\ntaoensso.encore.memoize_last \x3d (function taoensso$encore$memoize_last(f){\nvar sentinel \x3d ({});\nvar call \x3d (function (){var in_ \x3d cljs.core.volatile_BANG_(({}));\nvar out_ \x3d cljs.core.volatile_BANG_(null);\nreturn (function (in_STAR_,f0){\nwhile(true){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(in_STAR_,cljs.core.deref(in_))){\nreturn cljs.core.deref(out_);\n} else {\nvar out \x3d (f0.cljs$core$IFn$_invoke$arity$0 ? f0.cljs$core$IFn$_invoke$arity$0() : f0.call(null));\ncljs.core.vreset_BANG_(in_,in_STAR_);\n\ncljs.core.vreset_BANG_(out_,out);\n\nreturn out;\n}\nbreak;\n}\n});\n})();\nreturn (function() {\nvar taoensso$encore$memoize_last_$_memoized_fn \x3d null;\nvar taoensso$encore$memoize_last_$_memoized_fn__0 \x3d (function (){\nreturn call(sentinel,(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__1 \x3d (function (x){\nreturn call(x,(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null,x));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__2 \x3d (function (x,y){\nreturn call(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y], null),(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null,x,y));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__3 \x3d (function (x,y,z){\nreturn call(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y,z], null),(function (){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) : f.call(null,x,y,z));\n}));\n});\nvar taoensso$encore$memoize_last_$_memoized_fn__4 \x3d (function() { \nvar G__35169__delegate \x3d function (x,y,z,more){\nreturn call(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [sentinel,x,y,z,more], null),(function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,more);\n}));\n};\nvar G__35169 \x3d function (x,y,z,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 3) {\nvar G__35170__i \x3d 0, G__35170__a \x3d new Array(arguments.length - 3);\nwhile (G__35170__i \x3c G__35170__a.length) {G__35170__a[G__35170__i] \x3d arguments[G__35170__i + 3]; ++G__35170__i;}\n more \x3d new cljs.core.IndexedSeq(G__35170__a,0,null);\n} \nreturn G__35169__delegate.call(this,x,y,z,more);};\nG__35169.cljs$lang$maxFixedArity \x3d 3;\nG__35169.cljs$lang$applyTo \x3d (function (arglist__35171){\nvar x \x3d cljs.core.first(arglist__35171);\narglist__35171 \x3d cljs.core.next(arglist__35171);\nvar y \x3d cljs.core.first(arglist__35171);\narglist__35171 \x3d cljs.core.next(arglist__35171);\nvar z \x3d cljs.core.first(arglist__35171);\nvar more \x3d cljs.core.rest(arglist__35171);\nreturn G__35169__delegate(x,y,z,more);\n});\nG__35169.cljs$core$IFn$_invoke$arity$variadic \x3d G__35169__delegate;\nreturn G__35169;\n})()\n;\ntaoensso$encore$memoize_last_$_memoized_fn \x3d function(x,y,z,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$memoize_last_$_memoized_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$memoize_last_$_memoized_fn__1.call(this,x);\ncase 2:\nreturn taoensso$encore$memoize_last_$_memoized_fn__2.call(this,x,y);\ncase 3:\nreturn taoensso$encore$memoize_last_$_memoized_fn__3.call(this,x,y,z);\ndefault:\nvar G__35172 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__35173__i \x3d 0, G__35173__a \x3d new Array(arguments.length - 3);\nwhile (G__35173__i \x3c G__35173__a.length) {G__35173__a[G__35173__i] \x3d arguments[G__35173__i + 3]; ++G__35173__i;}\nG__35172 \x3d new cljs.core.IndexedSeq(G__35173__a,0,null);\n}\nreturn taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__35172);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$lang$maxFixedArity \x3d 3;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$lang$applyTo \x3d taoensso$encore$memoize_last_$_memoized_fn__4.cljs$lang$applyTo;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$memoize_last_$_memoized_fn__0;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$memoize_last_$_memoized_fn__1;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$memoize_last_$_memoized_fn__2;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$memoize_last_$_memoized_fn__3;\ntaoensso$encore$memoize_last_$_memoized_fn.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$memoize_last_$_memoized_fn__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn taoensso$encore$memoize_last_$_memoized_fn;\n})()\n});\n/**\n * For Clj: fastest possible memoize. Non-racey, 0-7 arity only.\n * For Cljs: same as `core/memoize`.\n */\ntaoensso.encore.fmemoize \x3d (function taoensso$encore$fmemoize(f){\nreturn cljs.core.memoize(f);\n});\ntaoensso.encore.gc_now_QMARK_ \x3d (function taoensso$encore$gc_now_QMARK_(rate){\nreturn (Math.random() \x3c\x3d rate);\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.SimpleCacheEntry \x3d (function (delay,udt){\nthis.delay \x3d delay;\nthis.udt \x3d udt;\n});\n\n(taoensso.encore.SimpleCacheEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/SimpleCacheEntry\x22);\n\n(taoensso.encore.SimpleCacheEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/SimpleCacheEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/SimpleCacheEntry.\n */\ntaoensso.encore.__GT_SimpleCacheEntry \x3d (function taoensso$encore$__GT_SimpleCacheEntry(delay,udt){\nreturn (new taoensso.encore.SimpleCacheEntry(delay,udt));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.TickedCacheEntry \x3d (function (delay,udt,tick_lru,tick_lfu){\nthis.delay \x3d delay;\nthis.udt \x3d udt;\nthis.tick_lru \x3d tick_lru;\nthis.tick_lfu \x3d tick_lfu;\n});\n\n(taoensso.encore.TickedCacheEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tick-lru\x22,\x22tick-lru\x22,1625824877,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tick-lfu\x22,\x22tick-lfu\x22,-1976905322,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/TickedCacheEntry\x22);\n\n(taoensso.encore.TickedCacheEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/TickedCacheEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/TickedCacheEntry.\n */\ntaoensso.encore.__GT_TickedCacheEntry \x3d (function taoensso$encore$__GT_TickedCacheEntry(delay,udt,tick_lru,tick_lfu){\nreturn (new taoensso.encore.TickedCacheEntry(delay,udt,tick_lru,tick_lfu));\n});\n\n/**\n * Returns a cached version of given referentially transparent function `f`.\n * \n * Like `core/memoize` but:\n * - Often faster, depending on options.\n * - Prevents race conditions on writes.\n * - Supports cache invalidation by prepending args with:\n * - `:cache/del` ; Delete cached item for subsequent args, returns nil.\n * - `:cache/fresh` ; Renew cached item for subsequent args, returns new val.\n * \n * - Supports options:\n * - `ttl-ms` ; Expire cached items after \x3cthis\x3e many msecs.\n * - `size` ; Restrict cache size to \x3cthis\x3e many items at the next garbage\n * ; collection (GC).\n * \n * - `gc-every` ; Run garbage collection (GC) approximately once every\n * ; \x3cthis\x3e many calls to cached fn. If unspecified, GC rate\n * ; will be determined automatically based on `size`.\n * \n * See also `defn-cached`, `fmemoize`, `memoize-last`.\n */\ntaoensso.encore.cache \x3d (function taoensso$encore$cache(var_args){\nvar G__34246 \x3d arguments.length;\nswitch (G__34246) {\ncase 1:\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar cache_ \x3d cljs.core.volatile_BANG_(cljs.core.PersistentArrayMap.EMPTY);\nvar get_sentinel \x3d ({});\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (xs){\nvar x1 \x3d cljs.core.first(xs);\nvar G__34249 \x3d x1;\nvar G__34249__$1 \x3d (((G__34249 instanceof cljs.core.Keyword))?G__34249.fqn:null);\nswitch (G__34249__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar xn \x3d cljs.core.next(xs);\nvar x2 \x3d cljs.core.first(xn);\nif(cljs.core.keyword_identical_QMARK_(x2,new cljs.core.Keyword(\x22mem\x22,\x22all\x22,\x22mem/all\x22,892075139))){\ncljs.core.vreset_BANG_(cache_,cljs.core.PersistentArrayMap.EMPTY);\n} else {\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cache_.cljs$core$IDeref$_deref$arity$1(null),xn));\n}\n\nreturn null;\n\nbreak;\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nvar xn \x3d cljs.core.next(xs);\nvar v \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,xn);\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cache_.cljs$core$IDeref$_deref$arity$1(null),xn,v));\n\nreturn v;\n\nbreak;\ndefault:\nvar v \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cache_),xs,get_sentinel);\nif((v \x3d\x3d\x3d get_sentinel)){\nvar v__$1 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,xs);\ncache_.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cache_.cljs$core$IDeref$_deref$arity$1(null),xs,v__$1));\n\nreturn v__$1;\n} else {\nreturn v;\n}\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__35184__i \x3d 0, G__35184__a \x3d new Array(arguments.length - 0);\nwhile (G__35184__i \x3c G__35184__a.length) {G__35184__a[G__35184__i] \x3d arguments[G__35184__i + 0]; ++G__35184__i;}\n xs \x3d new cljs.core.IndexedSeq(G__35184__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,xs);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__35185){\nvar xs \x3d cljs.core.seq(arglist__35185);\nreturn taoensso$encore$cached__delegate(xs);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n}));\n\n(taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__34250,f){\nvar map__34251 \x3d p__34250;\nvar map__34251__$1 \x3d cljs.core.__destructure_map(map__34251);\nvar opts \x3d map__34251__$1;\nvar size \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007));\nvar ttl_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875));\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34251__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691));\nvar error34257_35186 \x3d (function (){try{if(cljs.core.truth_((function (arg34252){\nreturn taoensso.truss.impl.ks_LT__EQ_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),null,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),null,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),null], null), null),arg34252);\n})(opts))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34259){var e \x3d e34259;\nreturn e;\n}})();\nif(cljs.core.truth_(error34257_35186)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4325,4,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ks\x3c\x3d\x22,\x22ks\x3c\x3d\x22,1664853833),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),\x22null\x22,new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),\x22null\x22,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),\x22null\x22], null), null)], null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),opts,null,error34257_35186);\n} else {\n}\n\nvar ps34261_35190 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22pos-num?\x22,\x22pos-num?\x22,976533390,null)], null);\nvar pf34262_35191 \x3d (function (arg34260){\nif((arg34260 \x3d\x3d null)){\nreturn true;\n} else {\nreturn taoensso.encore.pos_num_QMARK_(arg34260);\n}\n});\nvar df34263_35192 \x3d null;\nvar error34265_35194 \x3d (function (){try{if(cljs.core.truth_(pf34262_35191(size))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34267){var e \x3d e34267;\nreturn e;\n}})();\nif(cljs.core.truth_(error34265_35194)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4326,4,ps34261_35190,new cljs.core.Symbol(null,\x22size\x22,\x22size\x22,-1555742762,null),size,df34263_35192,error34265_35194);\n} else {\n}\n\nvar error34268_35204 \x3d (function (){try{if(cljs.core.truth_(pf34262_35191(ttl_ms))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34270){var e \x3d e34270;\nreturn e;\n}})();\nif(cljs.core.truth_(error34268_35204)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4326,4,ps34261_35190,new cljs.core.Symbol(null,\x22ttl-ms\x22,\x22ttl-ms\x22,-1349172894,null),ttl_ms,df34263_35192,error34268_35204);\n} else {\n}\n\nvar error34271_35209 \x3d (function (){try{if(cljs.core.truth_(pf34262_35191(gc_every))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34273){var e \x3d e34273;\nreturn e;\n}})();\nif(cljs.core.truth_(error34271_35209)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4326,4,ps34261_35190,new cljs.core.Symbol(null,\x22gc-every\x22,\x22gc-every\x22,-21013164,null),gc_every,df34263_35192,error34271_35209);\n} else {\n}\n\n\nif(cljs.core.truth_(size)){\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar ticker \x3d (taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 ? taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0() : taoensso.encore.counter.call(null));\nvar cache_ \x3d taoensso.encore.latom(null);\nvar latch_ \x3d taoensso.encore.latom(null);\nvar ttl_ms__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d ttl_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\nvar ttl_QMARK_ \x3d (!((ttl_ms__$1 \x3d\x3d\x3d (0))));\nvar size__$1 \x3d cljs.core.long$(size);\nvar gc_every__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d gc_every;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.clamp_int((1000),(16000),size__$1);\n}\n})());\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (args){\nvar a1 \x3d cljs.core.first(args);\nvar G__34274 \x3d a1;\nvar G__34274__$1 \x3d (((G__34274 instanceof cljs.core.Keyword))?G__34274.fqn:null);\nswitch (G__34274__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar argn \x3d cljs.core.next(args);\nvar a2 \x3d cljs.core.first(argn);\nif(cljs.core.truth_((function (){var G__34275 \x3d a2;\nvar G__34275__$1 \x3d (((G__34275 instanceof cljs.core.Keyword))?G__34275.fqn:null);\nswitch (G__34275__$1) {\ncase \x22cache/all\x22:\ncase \x22mem/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(cache_,null);\n} else {\nvar G__34276_35220 \x3d (function (p1__34243_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34243_SHARP_,argn);\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34276_35220) : cache_.call(null,G__34276_35220));\n}\n\nreturn null;\n\nbreak;\ndefault:\nvar tick \x3d (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null));\nvar instant \x3d ((ttl_QMARK_)?taoensso.encore.now_udt():(0));\nif((((cljs.core.rem(tick,gc_every__$1) \x3d\x3d\x3d (0))) \x26\x26 ((cljs.core.count((cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null))) \x3e\x3d (1.1 * size__$1))))){\nvar latch_35222 \x3d null;\nvar udt_floor_35223 \x3d (instant - ttl_ms__$1);\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_35222)){\nif(ttl_QMARK_){\nvar G__34277_35224 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){\nif((e.udt \x3c udt_floor_35223)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),m));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34277_35224) : cache_.call(null,G__34277_35224));\n} else {\n}\n\nvar snapshot_35225 \x3d (cache_.cljs$core$IFn$_invoke$arity$0 ? cache_.cljs$core$IFn$_invoke$arity$0() : cache_.call(null));\nvar n_to_gc_35226 \x3d (cljs.core.count(snapshot_35225) - size__$1);\nif((n_to_gc_35226 \x3e\x3d (0.1 * size__$1))){\nvar ks_to_gc_35228 \x3d (function (){var G__34278 \x3d n_to_gc_35226;\nvar G__34279 \x3d (function (k){\nvar e \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(snapshot_35225,k);\nreturn (e.tick_lru + e.tick_lfu);\n});\nvar G__34280 \x3d cljs.core.keys(snapshot_35225);\nreturn (taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 ? taoensso.encore.top.cljs$core$IFn$_invoke$arity$3(G__34278,G__34279,G__34280) : taoensso.encore.top.call(null,G__34278,G__34279,G__34280));\n})();\nvar G__34281_35230 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,in$);\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),ks_to_gc_35228));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34281_35230) : cache_.call(null,G__34281_35230));\n} else {\n}\n\n} else {\n}\n} else {\n}\n\nvar fresh_QMARK_ \x3d (function (){var G__34282 \x3d a1;\nvar G__34282__$1 \x3d (((G__34282 instanceof cljs.core.Keyword))?G__34282.fqn:null);\nswitch (G__34282__$1) {\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nvar args__$1 \x3d (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args);\nvar _ \x3d null;\nvar e \x3d (function (){var G__34283 \x3d args__$1;\nvar G__34284 \x3d (function taoensso$encore$cached_$_swap_fn(_QMARK_e){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (_QMARK_e \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d fresh_QMARK_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn ((instant - _QMARK_e.udt) \x3e ttl_ms__$1);\n}\n}\n})())){\nreturn (new taoensso.encore.TickedCacheEntry((new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args__$1);\n}),null)),instant,tick,(1)));\n} else {\nvar e \x3d _QMARK_e;\nreturn (new taoensso.encore.TickedCacheEntry(e.delay,e.udt,tick,(e.tick_lfu + (1))));\n}\n});\nreturn (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__34283,G__34284) : cache_.call(null,G__34283,G__34284));\n})();\nreturn cljs.core.deref(e.delay);\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__35237__i \x3d 0, G__35237__a \x3d new Array(arguments.length - 0);\nwhile (G__35237__i \x3c G__35237__a.length) {G__35237__a[G__35237__i] \x3d arguments[G__35237__i + 0]; ++G__35237__i;}\n args \x3d new cljs.core.IndexedSeq(G__35237__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,args);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__35238){\nvar args \x3d cljs.core.seq(arglist__35238);\nreturn taoensso$encore$cached__delegate(args);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n} else {\nif(cljs.core.truth_(ttl_ms)){\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar cache_ \x3d taoensso.encore.latom(null);\nvar latch_ \x3d taoensso.encore.latom(null);\nvar ttl_ms__$1 \x3d cljs.core.long$(ttl_ms);\nvar gc_rate \x3d (function (){var gce \x3d (function (){var or__5025__auto__ \x3d gc_every;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 8000.0;\n}\n})();\nreturn (1.0 / cljs.core.long$(gce));\n})();\nreturn (function() { \nvar taoensso$encore$cached__delegate \x3d function (args){\nvar a1 \x3d cljs.core.first(args);\nvar G__34285 \x3d a1;\nvar G__34285__$1 \x3d (((G__34285 instanceof cljs.core.Keyword))?G__34285.fqn:null);\nswitch (G__34285__$1) {\ncase \x22cache/del\x22:\ncase \x22mem/del\x22:\nvar argn \x3d cljs.core.next(args);\nvar a2 \x3d cljs.core.first(argn);\nif(cljs.core.truth_((function (){var G__34286 \x3d a2;\nvar G__34286__$1 \x3d (((G__34286 instanceof cljs.core.Keyword))?G__34286.fqn:null);\nswitch (G__34286__$1) {\ncase \x22cache/all\x22:\ncase \x22mem/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(cache_,null);\n} else {\nvar G__34287_35241 \x3d (function (p1__34244_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34244_SHARP_,argn);\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34287_35241) : cache_.call(null,G__34287_35241));\n}\n\nreturn null;\n\nbreak;\ndefault:\nvar instant \x3d taoensso.encore.now_udt();\nif(cljs.core.truth_((gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1 ? gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1(gc_rate) : gc_now_QMARK_.call(null,gc_rate)))){\nvar latch_35243 \x3d null;\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_35243)){\nvar G__34288_35244 \x3d (function taoensso$encore$cached_$_swap_fn(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,e){\nif(((instant - e.udt) \x3e ttl_ms__$1)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,k);\n} else {\nreturn acc;\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),m));\n});\n(cache_.cljs$core$IFn$_invoke$arity$1 ? cache_.cljs$core$IFn$_invoke$arity$1(G__34288_35244) : cache_.call(null,G__34288_35244));\n\n} else {\n}\n} else {\n}\n\nvar fresh_QMARK_ \x3d (function (){var G__34289 \x3d a1;\nvar G__34289__$1 \x3d (((G__34289 instanceof cljs.core.Keyword))?G__34289.fqn:null);\nswitch (G__34289__$1) {\ncase \x22cache/fresh\x22:\ncase \x22mem/fresh\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nvar args__$1 \x3d (cljs.core.truth_(fresh_QMARK_)?cljs.core.next(args):args);\nvar _ \x3d null;\nvar e \x3d (function (){var G__34290 \x3d args__$1;\nvar G__34291 \x3d (function taoensso$encore$cached_$_swap_fn(_QMARK_e){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (_QMARK_e \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d fresh_QMARK_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn ((instant - _QMARK_e.udt) \x3e ttl_ms__$1);\n}\n}\n})())){\nreturn (new taoensso.encore.SimpleCacheEntry((new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args__$1);\n}),null)),instant));\n} else {\nreturn _QMARK_e;\n}\n});\nreturn (cache_.cljs$core$IFn$_invoke$arity$2 ? cache_.cljs$core$IFn$_invoke$arity$2(G__34290,G__34291) : cache_.call(null,G__34290,G__34291));\n})();\nreturn cljs.core.deref(e.delay);\n\n}\n};\nvar taoensso$encore$cached \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__35250__i \x3d 0, G__35250__a \x3d new Array(arguments.length - 0);\nwhile (G__35250__i \x3c G__35250__a.length) {G__35250__a[G__35250__i] \x3d arguments[G__35250__i + 0]; ++G__35250__i;}\n args \x3d new cljs.core.IndexedSeq(G__35250__a,0,null);\n} \nreturn taoensso$encore$cached__delegate.call(this,args);};\ntaoensso$encore$cached.cljs$lang$maxFixedArity \x3d 0;\ntaoensso$encore$cached.cljs$lang$applyTo \x3d (function (arglist__35252){\nvar args \x3d cljs.core.seq(arglist__35252);\nreturn taoensso$encore$cached__delegate(args);\n});\ntaoensso$encore$cached.cljs$core$IFn$_invoke$arity$variadic \x3d taoensso$encore$cached__delegate;\nreturn taoensso$encore$cached;\n})()\n;\n} else {\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1(f);\n}\n}\n}));\n\n(taoensso.encore.cache.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Alternative way to call `cache`, provided mostly for back compatibility.\n * See `cache` docstring for details.\n */\ntaoensso.encore.memoize \x3d (function taoensso$encore$memoize(var_args){\nvar G__34293 \x3d arguments.length;\nswitch (G__34293) {\ncase 1:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$1(f);\n}));\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$2 \x3d (function (ttl_ms,f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),ttl_ms], null),f);\n}));\n\n(taoensso.encore.memoize.cljs$core$IFn$_invoke$arity$3 \x3d (function (size,ttl_ms,f){\nreturn taoensso.encore.cache.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22size\x22,\x22size\x22,1098693007),size,new cljs.core.Keyword(null,\x22ttl-ms\x22,\x22ttl-ms\x22,1305262875),ttl_ms], null),f);\n}));\n\n(taoensso.encore.memoize.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Private, don\x27t use.\n * Returns a basic rate limiter (fn []) that will return falsey (allow) at most once\n * every given number of milliseconds.\n * \n * Similar to (rate-limiter [1 \x3cmsecs\x3e]) but significantly faster to construct and run.\n * Doesn\x27t support request ids!\n */\ntaoensso.encore.rate_limiter_once_per \x3d (function taoensso$encore$rate_limiter_once_per(msecs){\nvar last_ \x3d cljs.core.volatile_BANG_((0));\nvar msecs__$1 \x3d cljs.core.long$(msecs);\nreturn (function() {\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per \x3d null;\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0 \x3d (function (){\nvar t1 \x3d Date.now();\nif(((t1 - cljs.core.deref(last_)) \x3e msecs__$1)){\ncljs.core.vreset_BANG_(last_,t1);\n\nreturn null;\n} else {\nreturn true;\n}\n});\nvar taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1 \x3d (function (req_id){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4548,17], null),\x22[encore/rate-limiter] Basic rate limiters don\x27t support request ids\x22,cljs.core.PersistentArrayMap.EMPTY,null);\n});\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per \x3d function(req_id){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0.call(this);\ncase 1:\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1.call(this,req_id);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__0;\ntaoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per__1;\nreturn taoensso$encore$rate_limiter_once_per_$_a_rate_limiter_once_per;\n})()\n});\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitSpec \x3d (function (n,ms){\nthis.n \x3d n;\nthis.ms \x3d ms;\n});\n\n(taoensso.encore.LimitSpec.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22ms\x22,\x22ms\x22,487821794,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitSpec.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitSpec.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitSpec\x22);\n\n(taoensso.encore.LimitSpec.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitSpec\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitSpec.\n */\ntaoensso.encore.__GT_LimitSpec \x3d (function taoensso$encore$__GT_LimitSpec(n,ms){\nreturn (new taoensso.encore.LimitSpec(n,ms));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitEntry \x3d (function (n,udt0){\nthis.n \x3d n;\nthis.udt0 \x3d udt0;\n});\n\n(taoensso.encore.LimitEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22udt0\x22,\x22udt0\x22,-969222777,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitEntry.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitEntry.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitEntry\x22);\n\n(taoensso.encore.LimitEntry.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitEntry\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitEntry.\n */\ntaoensso.encore.__GT_LimitEntry \x3d (function taoensso$encore$__GT_LimitEntry(n,udt0){\nreturn (new taoensso.encore.LimitEntry(n,udt0));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.encore.LimitHits \x3d (function (m,worst_lid,worst_ms){\nthis.m \x3d m;\nthis.worst_lid \x3d worst_lid;\nthis.worst_ms \x3d worst_ms;\n});\n\n(taoensso.encore.LimitHits.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null),new cljs.core.Symbol(null,\x22worst-lid\x22,\x22worst-lid\x22,-2058001927,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22worst-ms\x22,\x22worst-ms\x22,1541498579,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.encore.LimitHits.cljs$lang$type \x3d true);\n\n(taoensso.encore.LimitHits.cljs$lang$ctorStr \x3d \x22taoensso.encore/LimitHits\x22);\n\n(taoensso.encore.LimitHits.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/LimitHits\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/LimitHits.\n */\ntaoensso.encore.__GT_LimitHits \x3d (function taoensso$encore$__GT_LimitHits(m,worst_lid,worst_ms){\nreturn (new taoensso.encore.LimitHits(m,worst_lid,worst_ms));\n});\n\nvar limit_spec_35266 \x3d (function (n,ms){\nvar ps34294_35267 \x3d new cljs.core.Symbol(\x22taoensso.encore\x22,\x22pos-int?\x22,\x22taoensso.encore/pos-int?\x22,186070635,null);\nvar pf34295_35268 \x3d taoensso.encore.pos_int_QMARK_;\nvar df34296_35269 \x3d null;\nvar error34298_35270 \x3d (function (){try{if(cljs.core.truth_((pf34295_35268.cljs$core$IFn$_invoke$arity$1 ? pf34295_35268.cljs$core$IFn$_invoke$arity$1(n) : pf34295_35268.call(null,n)))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34300){var e \x3d e34300;\nreturn e;\n}})();\nif(cljs.core.truth_(error34298_35270)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4558,29,ps34294_35267,new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null),n,df34296_35269,error34298_35270);\n} else {\n}\n\nvar error34301_35272 \x3d (function (){try{if(cljs.core.truth_((pf34295_35268.cljs$core$IFn$_invoke$arity$1 ? pf34295_35268.cljs$core$IFn$_invoke$arity$1(ms) : pf34295_35268.call(null,ms)))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34303){var e \x3d e34303;\nreturn e;\n}})();\nif(cljs.core.truth_(error34301_35272)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4558,29,ps34294_35267,new cljs.core.Symbol(null,\x22ms\x22,\x22ms\x22,487821794,null),ms,df34296_35269,error34301_35272);\n} else {\n}\n\n\nreturn (new taoensso.encore.LimitSpec(n,ms));\n});\ntaoensso.encore.coerce_limit_spec \x3d (function taoensso$encore$coerce_limit_spec(x){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.reduce_kv((function (acc,lid,p__34304){\nvar vec__34305 \x3d p__34304;\nvar n \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34305,(0),null);\nvar ms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34305,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,limit_spec_35266(n,ms));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\n} else {\nif(cljs.core.vector_QMARK_(x)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__34308){\nvar vec__34309 \x3d p__34308;\nvar n \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(0),null);\nvar ms \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(1),null);\nvar _QMARK_lid \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34309,(2),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,(function (){var or__5025__auto__ \x3d _QMARK_lid;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [n,ms], null);\n}\n})(),limit_spec_35266(n,ms));\n}),cljs.core.PersistentArrayMap.EMPTY,x);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4570,7], null),x,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22rate-limiter\x22,\x22taoensso.encore/rate-limiter\x22,1705152470,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22rate-limiter-spec\x22,\x22rate-limiter-spec\x22,1678589253,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22vector\x22,\x22vector\x22,-751469611,null),\x22null\x22], null), null)], null));\n}\n}\n});\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.encore.rate_limiter \x3d (function taoensso$encore$rate_limiter(var_args){\nvar G__34314 \x3d arguments.length;\nswitch (G__34314) {\ncase 1:\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(null,spec);\n}));\n\n(taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,spec){\nvar map__34315 \x3d opts;\nvar map__34315__$1 \x3d cljs.core.__destructure_map(map__34315);\nvar with_state_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34315__$1,new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183));\nif(cljs.core.empty_QMARK_(spec)){\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.constantly(null)], null);\n} else {\nreturn cljs.core.constantly(null);\n}\n} else {\nvar spec__$1 \x3d taoensso.encore.coerce_limit_spec(spec);\nvar b2__30646__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502));\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(spec__$1),(1));\nif(and__5023__auto____$1){\nvar s \x3d cljs.core.val(cljs.core.first(spec__$1));\nif((s.n \x3d\x3d\x3d (1))){\nreturn s.ms;\n} else {\nreturn null;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar once_per_msecs \x3d b2__30646__auto__;\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,taoensso.encore.rate_limiter_once_per(once_per_msecs)], null);\n} else {\nreturn taoensso.encore.rate_limiter_once_per(once_per_msecs);\n}\n} else {\nvar latch_ \x3d taoensso.encore.latom(null);\nvar reqs_ \x3d taoensso.encore.latom(null);\nvar map__34316 \x3d opts;\nvar map__34316__$1 \x3d cljs.core.__destructure_map(map__34316);\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34316__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),16000.0);\nvar gc_now_QMARK_ \x3d taoensso.encore.gc_now_QMARK_;\nvar gc_rate \x3d (function (){var gce \x3d cljs.core.long$(gc_every);\nreturn (1.0 / gce);\n})();\nvar f1 \x3d (function (rid,delta,peek_QMARK_){\nvar instant \x3d taoensso.encore.now_udt();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(peek_QMARK_);\nif(and__5023__auto__){\nreturn (gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1 ? gc_now_QMARK_.cljs$core$IFn$_invoke$arity$1(gc_rate) : gc_now_QMARK_.call(null,gc_rate));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar latch_35297 \x3d null;\nif(cljs.core.compare_and_set_BANG_(latch_,null,latch_35297)){\nvar G__34317_35298 \x3d (function taoensso$encore$swap_fn(reqs){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,rid__$1,entries){\nvar new_entries \x3d cljs.core.reduce_kv((function (acc__$1,lid,e){\nvar b2__30646__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar s \x3d b2__30646__auto____$1;\nif((instant \x3e\x3d (e.udt0 + s.ms))){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,lid);\n} else {\nreturn acc__$1;\n}\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(acc__$1,lid);\n}\n}),entries,entries);\nif(cljs.core.empty_QMARK_(new_entries)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(acc,rid__$1);\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,rid__$1,new_entries);\n}\n}),cljs.core.transient$((function (){var or__5025__auto__ \x3d reqs;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})()),reqs));\n});\n(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__34317_35298) : reqs_.call(null,G__34317_35298));\n\n} else {\n}\n} else {\n}\n\nwhile(true){\nvar reqs \x3d (reqs_.cljs$core$IFn$_invoke$arity$0 ? reqs_.cljs$core$IFn$_invoke$arity$0() : reqs_.call(null));\nvar entries \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(reqs,rid);\nvar _QMARK_hits \x3d (cljs.core.truth_(entries)?cljs.core.reduce_kv(((function (reqs,entries,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_){\nreturn (function (acc,lid,e){\nvar b2__30646__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec__$1,lid);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar s \x3d b2__30646__auto____$1;\nif(((e.n + delta) \x3c\x3d s.n)){\nreturn acc;\n} else {\nvar tdelta \x3d ((e.udt0 + s.ms) - instant);\nif((tdelta \x3c\x3d (0))){\nreturn acc;\n} else {\nif((acc \x3d\x3d null)){\nreturn (new taoensso.encore.LimitHits(cljs.core.PersistentArrayMap.createAsIfByAssoc([lid,tdelta]),lid,tdelta));\n} else {\nif((tdelta \x3e acc.worst_ms)){\nreturn (new taoensso.encore.LimitHits(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc.m,lid,tdelta),lid,tdelta));\n} else {\nreturn (new taoensso.encore.LimitHits(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc.m,lid,tdelta),acc.worst_lid,acc.worst_ms));\n}\n}\n}\n}\n} else {\nreturn acc;\n}\n});})(reqs,entries,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_))\n,null,entries):null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d peek_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn _QMARK_hits;\n}\n})())){\nvar b2__30646__auto____$1 \x3d _QMARK_hits;\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar h \x3d b2__30646__auto____$1;\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [h.worst_lid,h.worst_ms,h.m], null);\n} else {\nreturn null;\n}\n} else {\nvar b2__30646__auto____$1 \x3d (latch_.cljs$core$IFn$_invoke$arity$0 ? latch_.cljs$core$IFn$_invoke$arity$0() : latch_.call(null));\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar l \x3d b2__30646__auto____$1;\nreturn null;\n} else {\nvar new_entries \x3d cljs.core.reduce_kv(((function (b2__30646__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_){\nreturn (function (acc,lid,s){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,lid,(function (){var b2__30646__auto____$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(entries,lid);\nif(cljs.core.truth_(b2__30646__auto____$2)){\nvar e \x3d b2__30646__auto____$2;\nvar udt0 \x3d e.udt0;\nif((instant \x3e\x3d (udt0 + s.ms))){\nreturn (new taoensso.encore.LimitEntry(delta,instant));\n} else {\nreturn (new taoensso.encore.LimitEntry((delta + e.n),udt0));\n}\n} else {\nreturn (new taoensso.encore.LimitEntry(delta,instant));\n}\n})());\n});})(b2__30646__auto____$1,reqs,entries,_QMARK_hits,instant,latch_,reqs_,map__34316,map__34316__$1,gc_every,gc_now_QMARK_,gc_rate,b2__30646__auto__,spec__$1,map__34315,map__34315__$1,with_state_QMARK_))\n,entries,spec__$1);\nif(cljs.core.compare_and_set_BANG_(reqs_,reqs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(reqs,rid,new_entries))){\nreturn null;\n} else {\ncontinue;\n}\n}\n}\nbreak;\n}\n});\nvar limiter_fn \x3d (function() {\nvar taoensso$encore$a_rate_limiter \x3d null;\nvar taoensso$encore$a_rate_limiter__0 \x3d (function (){\nreturn f1(null,(1),false);\n});\nvar taoensso$encore$a_rate_limiter__1 \x3d (function (req_id){\nreturn f1(req_id,(1),false);\n});\nvar taoensso$encore$a_rate_limiter__2 \x3d (function (cmd,req_id){\nvar G__34318 \x3d cmd;\nvar G__34318__$1 \x3d (((G__34318 instanceof cljs.core.Keyword))?G__34318.fqn:null);\nswitch (G__34318__$1) {\ncase \x22rl/reset\x22:\ncase \x22limiter/reset\x22:\nif(cljs.core.truth_((function (){var G__34319 \x3d req_id;\nvar G__34319__$1 \x3d (((G__34319 instanceof cljs.core.Keyword))?G__34319.fqn:null);\nswitch (G__34319__$1) {\ncase \x22rl/all\x22:\ncase \x22limiter/all\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})())){\ncljs.core.reset_BANG_(reqs_,null);\n} else {\nvar G__34320_35322 \x3d (function (p1__34312_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__34312_SHARP_,req_id);\n});\n(reqs_.cljs$core$IFn$_invoke$arity$1 ? reqs_.cljs$core$IFn$_invoke$arity$1(G__34320_35322) : reqs_.call(null,G__34320_35322));\n}\n\nreturn null;\n\nbreak;\ncase \x22rl/peek\x22:\ncase \x22limiter/peek\x22:\nreturn f1(req_id,(1),true);\n\nbreak;\ndefault:\nif(typeof cmd \x3d\x3d\x3d \x27number\x27){\nreturn f1(req_id,cljs.core.long$(cmd),false);\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [4732,14], null),cmd,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore\x22,\x22rate-limiter\x22,\x22taoensso.encore/rate-limiter\x22,1705152470,null),new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22rate-limiter-command\x22,\x22rate-limiter-command\x22,1767414198,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22rl\x22,\x22reset\x22,\x22rl/reset\x22,-800926172),null,new cljs.core.Keyword(\x22rl\x22,\x22peek\x22,\x22rl/peek\x22,-291391771),null], null), null),new cljs.core.Keyword(null,\x22req-id\x22,\x22req-id\x22,-471642231),req_id], null));\n}\n\n}\n});\ntaoensso$encore$a_rate_limiter \x3d function(cmd,req_id){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$a_rate_limiter__0.call(this);\ncase 1:\nreturn taoensso$encore$a_rate_limiter__1.call(this,cmd);\ncase 2:\nreturn taoensso$encore$a_rate_limiter__2.call(this,cmd,req_id);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$a_rate_limiter__0;\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$a_rate_limiter__1;\ntaoensso$encore$a_rate_limiter.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$a_rate_limiter__2;\nreturn taoensso$encore$a_rate_limiter;\n})()\n;\nif(cljs.core.truth_(with_state_QMARK_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [reqs_,limiter_fn], null);\n} else {\nreturn limiter_fn;\n}\n}\n}\n}));\n\n(taoensso.encore.rate_limiter.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.Counter \x3d (function (c){\nthis.c \x3d c;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.Counter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.c;\n}));\n\n(taoensso.encore.Counter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__34322 \x3d (arguments.length - (1));\nswitch (G__34322) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.Counter.prototype.apply \x3d (function (self__,args34321){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34321)));\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + (1)));\n\nreturn o;\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (add){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + add));\n\nreturn o;\n}));\n\n(taoensso.encore.Counter.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (action,n){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar G__34323 \x3d action;\nvar G__34323__$1 \x3d (((G__34323 instanceof cljs.core.Keyword))?G__34323.fqn:null);\nswitch (G__34323__$1) {\ncase \x22add\x22:\n(self__.c \x3d (self__.c + n));\n\nreturn null;\n\nbreak;\ncase \x22set\x22:\n(self__.c \x3d n);\n\nreturn null;\n\nbreak;\ncase \x22set\x3d\x22:\ncase \x22set-get\x22:\n(self__.c \x3d n);\n\nreturn n;\n\nbreak;\ncase \x22\x3dset\x22:\ncase \x22get-set\x22:\nvar o \x3d self__.c;\n(self__.c \x3d n);\n\nreturn o;\n\nbreak;\ncase \x22\x3d+\x22:\ncase \x22get-add\x22:\nvar o \x3d self__.c;\n(self__.c \x3d (self__.c + n));\n\nreturn o;\n\nbreak;\ncase \x22+\x3d\x22:\ncase \x22add-get\x22:\n(self__.c \x3d (self__.c + n));\n\nreturn self__.c;\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34323__$1)].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.Counter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22c\x22,\x22c\x22,-122660552,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(taoensso.encore.Counter.cljs$lang$type \x3d true);\n\n(taoensso.encore.Counter.cljs$lang$ctorStr \x3d \x22taoensso.encore/Counter\x22);\n\n(taoensso.encore.Counter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/Counter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/Counter.\n */\ntaoensso.encore.__GT_Counter \x3d (function taoensso$encore$__GT_Counter(c){\nreturn (new taoensso.encore.Counter(c));\n});\n\n/**\n * Returns a fast atomic `Counter` with `init` initial integer value with:\n * - @counter \x3d\x3e Return current val\n * - (counter) \x3d\x3e Add 1 and return old val\n * - (counter n) \x3d\x3e Add n and return old val\n * - (counter action n) \x3d\x3e Experimental, action \u2208\n * {:add :set :set-get :get-set :get-add :add-get}.\n */\ntaoensso.encore.counter \x3d (function taoensso$encore$counter(var_args){\nvar G__34325 \x3d arguments.length;\nswitch (G__34325) {\ncase 0:\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1((0));\n}));\n\n(taoensso.encore.counter.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nreturn (new taoensso.encore.Counter(cljs.core.long$(init)));\n}));\n\n(taoensso.encore.counter.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.encore.rc_deref \x3d (function taoensso$encore$rc_deref(msecs,ts_,n_skip_,gc_fn){\nvar t1 \x3d taoensso.encore.now_udt();\nvar n_skip0 \x3d (n_skip_.cljs$core$IFn$_invoke$arity$0 ? n_skip_.cljs$core$IFn$_invoke$arity$0() : n_skip_.call(null));\nvar ts \x3d (ts_.cljs$core$IFn$_invoke$arity$0 ? ts_.cljs$core$IFn$_invoke$arity$0() : ts_.call(null));\nvar n_total \x3d cljs.core.count(ts);\nvar n_window \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (n,t0){\nif(((t1 - t0) \x3c\x3d msecs)){\nreturn (n + (1));\n} else {\nreturn n;\n}\n}),(0),cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(ts,n_skip0));\nvar n_skip1 \x3d (n_total - n_window);\nif((n_skip0 \x3c n_skip1)){\nif(cljs.core.compare_and_set_BANG_(n_skip_,n_skip0,n_skip1)){\nif((n_skip1 \x3e (10000))){\n(gc_fn.cljs$core$IFn$_invoke$arity$1 ? gc_fn.cljs$core$IFn$_invoke$arity$1(n_skip1) : gc_fn.call(null,n_skip1));\n} else {\n}\n} else {\n}\n} else {\n}\n\nreturn n_window;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.RollingCounter \x3d (function (msecs,ts_,n_skip_){\nthis.msecs \x3d msecs;\nthis.ts_ \x3d ts_;\nthis.n_skip_ \x3d n_skip_;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.RollingCounter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__34331 \x3d (arguments.length - (1));\nswitch (G__34331) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.RollingCounter.prototype.apply \x3d (function (self__,args34330){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34330)));\n}));\n\n(taoensso.encore.RollingCounter.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar t1_35347 \x3d taoensso.encore.now_udt();\nvar G__34332_35349 \x3d (function (p1__34328_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__34328_SHARP_,t1_35347);\n});\n(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__34332_35349) : self__.ts_.call(null,G__34332_35349));\n\nreturn this$;\n}));\n\n(taoensso.encore.RollingCounter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.rc_deref(self__.msecs,self__.ts_,self__.n_skip_,(function taoensso$encore$gc(n_skip1){\nvar G__34333_35351 \x3d (function (p1__34329_SHARP_){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(p1__34329_SHARP_,n_skip1);\n});\n(self__.ts_.cljs$core$IFn$_invoke$arity$1 ? self__.ts_.cljs$core$IFn$_invoke$arity$1(G__34333_35351) : self__.ts_.call(null,G__34333_35351));\n\nreturn cljs.core.reset_BANG_(self__.n_skip_,(0));\n}));\n}));\n\n(taoensso.encore.RollingCounter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22msecs\x22,\x22msecs\x22,-942455216,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),new cljs.core.Symbol(null,\x22ts_\x22,\x22ts_\x22,775102722,null),new cljs.core.Symbol(null,\x22n-skip_\x22,\x22n-skip_\x22,-1562682054,null)], null);\n}));\n\n(taoensso.encore.RollingCounter.cljs$lang$type \x3d true);\n\n(taoensso.encore.RollingCounter.cljs$lang$ctorStr \x3d \x22taoensso.encore/RollingCounter\x22);\n\n(taoensso.encore.RollingCounter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/RollingCounter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/RollingCounter.\n */\ntaoensso.encore.__GT_RollingCounter \x3d (function taoensso$encore$__GT_RollingCounter(msecs,ts_,n_skip_){\nreturn (new taoensso.encore.RollingCounter(msecs,ts_,n_skip_));\n});\n\n/**\n * Experimental, subject to change without notice.\n * Returns a RollingCounter that you can:\n * - Invoke to increment count in last `msecs` window and return RollingCounter.\n * - Deref to return count in last `msecs` window.\n */\ntaoensso.encore.rolling_counter \x3d (function taoensso$encore$rolling_counter(msecs){\nreturn (new taoensso.encore.RollingCounter(cljs.core.long$((function (){var error34338 \x3d (function (){try{if(cljs.core.truth_(taoensso.encore.pos_int_QMARK_(msecs))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34340){var e \x3d e34340;\nreturn e;\n}})();\nif(cljs.core.truth_(error34338)){\nreturn taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,4873,11,new cljs.core.Symbol(\x22taoensso.encore\x22,\x22pos-int?\x22,\x22taoensso.encore/pos-int?\x22,186070635,null),new cljs.core.Symbol(null,\x22msecs\x22,\x22msecs\x22,-942455216,null),msecs,null,error34338);\n} else {\nreturn msecs;\n}\n})()),taoensso.encore.latom(cljs.core.PersistentVector.EMPTY),taoensso.encore.latom((0))));\n});\n/**\n * Returns a stateful fn of 2 arities:\n * [ ] \x3d\x3e Returns current sub/vector in O(1).\n * [x] \x3d\x3e Adds `x` to right of sub/vector, maintaining length \x3c\x3d `nmax`.\n * Returns current sub/vector.\n * \n * Useful for maintaining limited-length histories, etc.\n * See also `rolling-list` (Clj only).\n */\ntaoensso.encore.rolling_vector \x3d (function taoensso$encore$rolling_vector(var_args){\nvar G__34342 \x3d arguments.length;\nswitch (G__34342) {\ncase 1:\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$1 \x3d (function (nmax){\nreturn taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2(nmax,null);\n}));\n\n(taoensso.encore.rolling_vector.cljs$core$IFn$_invoke$arity$2 \x3d (function (nmax,p__34343){\nvar map__34344 \x3d p__34343;\nvar map__34344__$1 \x3d cljs.core.__destructure_map(map__34344);\nvar gc_every \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34344__$1,new cljs.core.Keyword(null,\x22gc-every\x22,\x22gc-every\x22,-1661544691),16000.0);\nvar init_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34344__$1,new cljs.core.Keyword(null,\x22init-val\x22,\x22init-val\x22,-70272968));\nvar nmax__$1 \x3d cljs.core.long$(nmax);\nvar acc_ \x3d taoensso.encore.latom(cljs.core.vec(init_val));\nvar gc_every__$1 \x3d (cljs.core.truth_(gc_every)?cljs.core.long$(gc_every):null);\nvar ticker \x3d (cljs.core.truth_(gc_every__$1)?taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0():null);\nvar latch_ \x3d (cljs.core.truth_(gc_every__$1)?taoensso.encore.latom(null):null);\nreturn (function() {\nvar taoensso$encore$rolling_vec_fn \x3d null;\nvar taoensso$encore$rolling_vec_fn__0 \x3d (function (){\nreturn (acc_.cljs$core$IFn$_invoke$arity$0 ? acc_.cljs$core$IFn$_invoke$arity$0() : acc_.call(null));\n});\nvar taoensso$encore$rolling_vec_fn__1 \x3d (function (x){\nif(cljs.core.truth_(gc_every__$1)){\nvar tick_35369 \x3d (ticker.cljs$core$IFn$_invoke$arity$0 ? ticker.cljs$core$IFn$_invoke$arity$0() : ticker.call(null));\nvar b2__30646__auto___35371 \x3d (cljs.core.rem(tick_35369,gc_every__$1) \x3d\x3d\x3d (0));\nif(b2__30646__auto___35371){\nvar gc_now_QMARK__35375 \x3d b2__30646__auto___35371;\nvar G__34345_35377 \x3d (function taoensso$encore$rolling_vec_fn_$_swap_fn(sv){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,sv);\n});\n(acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__34345_35377) : acc_.call(null,G__34345_35377));\n} else {\n}\n} else {\n}\n\nvar G__34346 \x3d (function taoensso$encore$rolling_vec_fn_$_swap_fn(acc){\nvar new$ \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,x);\nif((cljs.core.count(new$) \x3e nmax__$1)){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(new$,(1));\n} else {\nreturn new$;\n}\n});\nreturn (acc_.cljs$core$IFn$_invoke$arity$1 ? acc_.cljs$core$IFn$_invoke$arity$1(G__34346) : acc_.call(null,G__34346));\n});\ntaoensso$encore$rolling_vec_fn \x3d function(x){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$rolling_vec_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$rolling_vec_fn__1.call(this,x);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$rolling_vec_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$rolling_vec_fn__0;\ntaoensso$encore$rolling_vec_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$rolling_vec_fn__1;\nreturn taoensso$encore$rolling_vec_fn;\n})()\n}));\n\n(taoensso.encore.rolling_vector.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reverse comparator.\n */\ntaoensso.encore.rcompare \x3d (function taoensso$encore$rcompare(x,y){\nreturn cljs.core.compare(y,x);\n});\n/**\n * Like `core/sort` but:\n * - Returns a vector.\n * - `comparator` can be `:asc`, `:desc`, or an arbitrary comparator.\n * - An optional `keyfn` may be provided, as in `core/sort-by`.\n */\ntaoensso.encore.sortv \x3d (function taoensso$encore$sortv(var_args){\nvar G__34348 \x3d arguments.length;\nswitch (G__34348) {\ncase 1:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3(null,new cljs.core.Keyword(null,\x22asc\x22,\x22asc\x22,356854569),coll);\n}));\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$2 \x3d (function (comparator,coll){\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3(null,comparator,coll);\n}));\n\n(taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3 \x3d (function (_QMARK_keyfn,comparator,coll){\nif(cljs.core.seq(coll)){\nvar comparator__$1 \x3d (function (){var G__34349 \x3d comparator;\nvar G__34349__$1 \x3d (((G__34349 instanceof cljs.core.Keyword))?G__34349.fqn:null);\nswitch (G__34349__$1) {\ncase \x22asc\x22:\nreturn cljs.core.compare;\n\nbreak;\ncase \x22dsc\x22:\ncase \x22desc\x22:\nreturn (function (x,y){\nreturn cljs.core.compare(y,x);\n});\n\nbreak;\ndefault:\nreturn comparator;\n\n}\n})();\nvar comparator__$2 \x3d (function (){var b2__30646__auto__ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(_QMARK_keyfn,cljs.core.identity))?_QMARK_keyfn:null);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar kfn \x3d b2__30646__auto__;\nreturn (function (x,y){\nvar G__34350 \x3d (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(x) : kfn.call(null,x));\nvar G__34351 \x3d (kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(y) : kfn.call(null,y));\nreturn (comparator__$1.cljs$core$IFn$_invoke$arity$2 ? comparator__$1.cljs$core$IFn$_invoke$arity$2(G__34350,G__34351) : comparator__$1.call(null,G__34350,G__34351));\n});\n} else {\nreturn comparator__$1;\n}\n})();\nvar a \x3d cljs.core.to_array(coll);\ntaoensso.encore.goog$module$goog$array.stableSort(a,cljs.core.fn__GT_comparator(comparator__$2));\n\nreturn cljs.core.with_meta(cljs.core.vec(a),cljs.core.meta(coll));\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.sortv.cljs$lang$maxFixedArity \x3d 3);\n\nvar sentinel_35400 \x3d ({});\nvar nil__GT_sentinel_35401 \x3d (function (x){\nif((x \x3d\x3d null)){\nreturn sentinel_35400;\n} else {\nreturn x;\n}\n});\nvar sentinel__GT_nil_35402 \x3d (function (x){\nif((x \x3d\x3d\x3d sentinel_35400)){\nreturn null;\n} else {\nreturn x;\n}\n});\n/**\n * Reduces the top `n` items from `coll` of N items.\n * Clj impln is O(N.logn) vs O(N.logN) for (take n (sort-by ...)).\n */\ntaoensso.encore.reduce_top \x3d (function taoensso$encore$reduce_top(var_args){\nvar G__34356 \x3d arguments.length;\nswitch (G__34356) {\ncase 4:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,rf,init,coll){\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,cljs.core.identity,cljs.core.compare,rf,init,coll);\n}));\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$5 \x3d (function (n,keyfn,rf,init,coll){\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cljs.core.compare,rf,init,coll);\n}));\n\n(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6 \x3d (function (n,keyfn,cmp,rf,init,coll){\nvar coll_size \x3d cljs.core.count(coll);\nvar n__$1 \x3d cljs.core.long$((function (){var x__5113__auto__ \x3d coll_size;\nvar y__5114__auto__ \x3d cljs.core.long$(n);\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\nif((n__$1 \x3e (0))){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.take.cljs$core$IFn$_invoke$arity$1(n__$1),cljs.core.completing.cljs$core$IFn$_invoke$arity$1(rf),init,cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3(keyfn,cmp,coll));\n} else {\nreturn init;\n}\n}));\n\n(taoensso.encore.reduce_top.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Conjoins the top `n` items from `coll` into `to` using `reduce-top`.\n */\ntaoensso.encore.top_into \x3d (function taoensso$encore$top_into(var_args){\nvar G__34358 \x3d arguments.length;\nswitch (G__34358) {\ncase 3:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$3 \x3d (function (to,n,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(to,n,cljs.core.identity,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$4 \x3d (function (to,n,keyfn,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(to,n,keyfn,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5 \x3d (function (to,n,keyfn,cmp,coll){\nif((((n \x3e\x3d (11)))?taoensso.encore.editable_QMARK_(to):false)){\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cmp,cljs.core.conj_BANG_,cljs.core.transient$(to),coll));\n} else {\nreturn taoensso.encore.reduce_top.cljs$core$IFn$_invoke$arity$6(n,keyfn,cmp,cljs.core.conj,to,coll);\n}\n}));\n\n(taoensso.encore.top_into.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Returns a sorted vector of the top `n` items from `coll` using `reduce-top`.\n */\ntaoensso.encore.top \x3d (function taoensso$encore$top(var_args){\nvar G__34360 \x3d arguments.length;\nswitch (G__34360) {\ncase 2:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.top.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,cljs.core.identity,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,keyfn,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,keyfn,cljs.core.compare,coll);\n}));\n\n(taoensso.encore.top.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,keyfn,cmp,coll){\nreturn taoensso.encore.top_into.cljs$core$IFn$_invoke$arity$5(cljs.core.PersistentVector.EMPTY,n,keyfn,cmp,coll);\n}));\n\n(taoensso.encore.top.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Private, don\x27t use.\n * For Clj: same as `Thread/sleep`.\n * For Cljs: hot loops until given number of msecs have elapsed.\n * \n * Useful for certain synchronous unit tests, etc.\n */\ntaoensso.encore.hot_sleep \x3d (function taoensso$encore$hot_sleep(msecs){\nvar t0 \x3d Date.now();\nwhile(true){\nif(((Date.now() - t0) \x3c msecs)){\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n});\ntaoensso.encore._valid_unstub_impl \x3d (function taoensso$encore$_valid_unstub_impl(x){\nif(cljs.core.fn_QMARK_(x)){\nreturn x;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6078,5], null),\x22[encore/stubfn] Unexpected unstub implementation \x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null)], null),null);\n}\n});\n/**\n * Given a {:before ?(fn []) :after ?(fn [])} map, returns cross-platform\n * test fixtures for use by both `clojure.test` and `cljs.test`:\n * \n * (let [f (test-fixtures {:before (fn [] (test-setup))})]\n * (clojure.test/use-fixtures :once f)\n * (cljs.test/use-fixtures :once f))\n */\ntaoensso.encore.test_fixtures \x3d (function taoensso$encore$test_fixtures(fixtures_map){\nvar error34381_35416 \x3d (function (){try{if(cljs.core.map_QMARK_(fixtures_map)){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34383){var e \x3d e34383;\nreturn e;\n}})();\nif(cljs.core.truth_(error34381_35416)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,6141,3,new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22fixtures-map\x22,\x22fixtures-map\x22,732147048,null),fixtures_map,null,error34381_35416);\n} else {\n}\n\nreturn fixtures_map;\n});\n\n/**\n * @interface\n */\ntaoensso.encore.ITimeoutImpl \x3d function(){};\n\nvar taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_35420 \x3d (function (_,msecs,f){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore._schedule_timeout[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(_,msecs,f) : m__5374__auto__.call(null,_,msecs,f));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore._schedule_timeout[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(_,msecs,f) : m__5372__auto__.call(null,_,msecs,f));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutImpl.-schedule-timeout\x22,_);\n}\n}\n});\ntaoensso.encore._schedule_timeout \x3d (function taoensso$encore$_schedule_timeout(_,msecs,f){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3(_,msecs,f);\n} else {\nreturn taoensso$encore$ITimeoutImpl$_schedule_timeout$dyn_35420(_,msecs,f);\n}\n});\n\n\n\n/**\n* @constructor\n * @implements {taoensso.encore.ITimeoutImpl}\n*/\ntaoensso.encore.DefaultTimeoutImpl \x3d (function (){\n});\n(taoensso.encore.DefaultTimeoutImpl.prototype.taoensso$encore$ITimeoutImpl$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.DefaultTimeoutImpl.prototype.taoensso$encore$ITimeoutImpl$_schedule_timeout$arity$3 \x3d (function (_,msecs,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn setTimeout(f,msecs);\n}));\n\n(taoensso.encore.DefaultTimeoutImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$type \x3d true);\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$ctorStr \x3d \x22taoensso.encore/DefaultTimeoutImpl\x22);\n\n(taoensso.encore.DefaultTimeoutImpl.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/DefaultTimeoutImpl\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/DefaultTimeoutImpl.\n */\ntaoensso.encore.__GT_DefaultTimeoutImpl \x3d (function taoensso$encore$__GT_DefaultTimeoutImpl(){\nreturn (new taoensso.encore.DefaultTimeoutImpl());\n});\n\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.default_timeout_impl_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Simple one-timeout timeout implementation provided by platform timer.\n * O(logn) add, O(1) cancel, O(1) tick. Fns must be non-blocking or cheap.\n * Similar efficiency to core.async timers (binary heap vs DelayQueue).\n */\ntaoensso.encore.default_timeout_impl_ \x3d (new cljs.core.Delay((function (){\nreturn (new taoensso.encore.DefaultTimeoutImpl());\n}),null));\n}\n\n/**\n * @interface\n */\ntaoensso.encore.ITimeoutFuture \x3d function(){};\n\nvar taoensso$encore$ITimeoutFuture$tf_state$dyn_35426 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_state[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_state[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-state\x22,_);\n}\n}\n});\n/**\n * Returns a map of timeout\x27s public state.\n */\ntaoensso.encore.tf_state \x3d (function taoensso$encore$tf_state(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_state$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_state$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_state$dyn_35426(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_poll$dyn_35428 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_poll[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_poll[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-poll\x22,_);\n}\n}\n});\n/**\n * Returns :timeout/pending, :timeout/cancelled, or the timeout\x27s completed result.\n */\ntaoensso.encore.tf_poll \x3d (function taoensso$encore$tf_poll(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_poll$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_poll$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_poll$dyn_35428(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_35431 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_done_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_done_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-done?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is not pending (i.e. has a completed result or is cancelled).\n */\ntaoensso.encore.tf_done_QMARK_ \x3d (function taoensso$encore$tf_done_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_done_QMARK_$dyn_35431(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_35434 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-pending?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is pending.\n */\ntaoensso.encore.tf_pending_QMARK_ \x3d (function taoensso$encore$tf_pending_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$dyn_35434(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_35438 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-cancelled?\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout is cancelled.\n */\ntaoensso.encore.tf_cancelled_QMARK_ \x3d (function taoensso$encore$tf_cancelled_QMARK_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$dyn_35438(_);\n}\n});\n\nvar taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_35443 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.tf_cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.tf_cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ITimeoutFuture.tf-cancel!\x22,_);\n}\n}\n});\n/**\n * Returns true iff the timeout was successfully cancelled (i.e. was previously pending).\n */\ntaoensso.encore.tf_cancel_BANG_ \x3d (function taoensso$encore$tf_cancel_BANG_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1(_);\n} else {\nreturn taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$dyn_35443(_);\n}\n});\n\n\n/**\n* @constructor\n * @implements {taoensso.encore.ITimeoutFuture}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.TimeoutFuture \x3d (function (f,result__,udt){\nthis.f \x3d f;\nthis.result__ \x3d result__;\nthis.udt \x3d udt;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\n});\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_state$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),self__.f,new cljs.core.Keyword(null,\x22udt\x22,\x22udt\x22,2011712751),self__.udt], null);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_poll$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.result__);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (!(cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352))));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_pending_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_cancelled_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.keyword_identical_QMARK_(cljs.core.deref(self__.result__),new cljs.core.Keyword(\x22timeout\x22,\x22cancelled\x22,\x22timeout/cancelled\x22,1188007279));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.taoensso$encore$ITimeoutFuture$tf_cancel_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.compare_and_set_BANG_(self__.result__,new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352),new cljs.core.Keyword(\x22timeout\x22,\x22cancelled\x22,\x22timeout/cancelled\x22,1188007279));\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (t){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn t__$1.taoensso$encore$ITimeoutFuture$tf_done_QMARK_$arity$1(null);\n}));\n\n(taoensso.encore.TimeoutFuture.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (t){\nvar self__ \x3d this;\nvar t__$1 \x3d this;\nreturn t__$1.taoensso$encore$ITimeoutFuture$tf_poll$arity$1(null);\n}));\n\n(taoensso.encore.TimeoutFuture.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22result__\x22,\x22result__\x22,1529131748,null),new cljs.core.Symbol(null,\x22udt\x22,\x22udt\x22,-642723018,null)], null);\n}));\n\n(taoensso.encore.TimeoutFuture.cljs$lang$type \x3d true);\n\n(taoensso.encore.TimeoutFuture.cljs$lang$ctorStr \x3d \x22taoensso.encore/TimeoutFuture\x22);\n\n(taoensso.encore.TimeoutFuture.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore/TimeoutFuture\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore/TimeoutFuture.\n */\ntaoensso.encore.__GT_TimeoutFuture \x3d (function taoensso$encore$__GT_TimeoutFuture(f,result__,udt){\nreturn (new taoensso.encore.TimeoutFuture(f,result__,udt));\n});\n\ntaoensso.encore.timeout_future_QMARK_ \x3d (function taoensso$encore$timeout_future_QMARK_(x){\nreturn (x instanceof taoensso.encore.TimeoutFuture);\n});\n/**\n * Alpha, subject to change.\n * Returns a TimeoutFuture that will execute `f` after given msecs.\n * \n * Does NOT do any automatic binding conveyance.\n * \n * Performance depends on the provided timer implementation (`impl_`).\n * The default implementation offers O(logn) add, O(1) cancel, O(1) tick.\n * \n * See `ITimeoutImpl` for extending to arbitrary timer implementations.\n */\ntaoensso.encore.call_after_timeout \x3d (function taoensso$encore$call_after_timeout(var_args){\nvar G__34391 \x3d arguments.length;\nswitch (G__34391) {\ncase 2:\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (msecs,f){\nreturn taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3(taoensso.encore.default_timeout_impl_,msecs,f);\n}));\n\n(taoensso.encore.call_after_timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (impl_,msecs,f){\nvar msecs__$1 \x3d cljs.core.long$(msecs);\nvar udt \x3d (taoensso.encore.now_udt() + msecs__$1);\nvar result__ \x3d taoensso.encore.latom(new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352));\nvar cas_f \x3d (function (){\nvar result_ \x3d (new cljs.core.Delay((function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}),null));\nif(cljs.core.compare_and_set_BANG_(result__,new cljs.core.Keyword(\x22timeout\x22,\x22pending\x22,\x22timeout/pending\x22,-1523854352),result_)){\nreturn cljs.core.deref(result_);\n} else {\nreturn null;\n}\n});\nvar impl_35458 \x3d cljs.core.force(impl_);\ntaoensso.encore._schedule_timeout(impl_35458,msecs__$1,cas_f);\n\nreturn (new taoensso.encore.TimeoutFuture(f,result__,udt));\n}));\n\n(taoensso.encore.call_after_timeout.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.encore.console_log \x3d (((typeof console !\x3d\x3d \x27undefined\x27))?(function() { \nvar G__35459__delegate \x3d function (xs){\nvar b2__30646__auto__ \x3d console.log;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar f \x3d b2__30646__auto__;\nreturn f.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(xs));\n} else {\nreturn null;\n}\n};\nvar G__35459 \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__35462__i \x3d 0, G__35462__a \x3d new Array(arguments.length - 0);\nwhile (G__35462__i \x3c G__35462__a.length) {G__35462__a[G__35462__i] \x3d arguments[G__35462__i + 0]; ++G__35462__i;}\n xs \x3d new cljs.core.IndexedSeq(G__35462__a,0,null);\n} \nreturn G__35459__delegate.call(this,xs);};\nG__35459.cljs$lang$maxFixedArity \x3d 0;\nG__35459.cljs$lang$applyTo \x3d (function (arglist__35464){\nvar xs \x3d cljs.core.seq(arglist__35464);\nreturn G__35459__delegate(xs);\n});\nG__35459.cljs$core$IFn$_invoke$arity$variadic \x3d G__35459__delegate;\nreturn G__35459;\n})()\n:(function() { \nvar G__35465__delegate \x3d function (xs){\nreturn null;\n};\nvar G__35465 \x3d function (var_args){\nvar xs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__35466__i \x3d 0, G__35466__a \x3d new Array(arguments.length - 0);\nwhile (G__35466__i \x3c G__35466__a.length) {G__35466__a[G__35466__i] \x3d arguments[G__35466__i + 0]; ++G__35466__i;}\n xs \x3d new cljs.core.IndexedSeq(G__35466__a,0,null);\n} \nreturn G__35465__delegate.call(this,xs);};\nG__35465.cljs$lang$maxFixedArity \x3d 0;\nG__35465.cljs$lang$applyTo \x3d (function (arglist__35467){\nvar xs \x3d cljs.core.seq(arglist__35467);\nreturn G__35465__delegate(xs);\n});\nG__35465.cljs$core$IFn$_invoke$arity$variadic \x3d G__35465__delegate;\nreturn G__35465;\n})()\n);\n\ntaoensso.encore.log \x3d taoensso.encore.console_log;\n\ntaoensso.encore.logp \x3d (function taoensso$encore$logp(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35468 \x3d arguments.length;\nvar i__5750__auto___35469 \x3d (0);\nwhile(true){\nif((i__5750__auto___35469 \x3c len__5749__auto___35468)){\nargs__5755__auto__.push((arguments[i__5750__auto___35469]));\n\nvar G__35470 \x3d (i__5750__auto___35469 + (1));\ni__5750__auto___35469 \x3d G__35470;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.logp.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.logp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn taoensso.encore.console_log(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$1(taoensso.encore.nil__GT_str),xs));\n}));\n\n(taoensso.encore.logp.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.logp.cljs$lang$applyTo \x3d (function (seq34392){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34392));\n}));\n\n\ntaoensso.encore.sayp \x3d (function taoensso$encore$sayp(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35474 \x3d arguments.length;\nvar i__5750__auto___35475 \x3d (0);\nwhile(true){\nif((i__5750__auto___35475 \x3c len__5749__auto___35474)){\nargs__5755__auto__.push((arguments[i__5750__auto___35475]));\n\nvar G__35476 \x3d (i__5750__auto___35475 + (1));\ni__5750__auto___35475 \x3d G__35476;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn taoensso.encore.sayp.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(taoensso.encore.sayp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nreturn alert(taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$1(taoensso.encore.nil__GT_str),xs));\n}));\n\n(taoensso.encore.sayp.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(taoensso.encore.sayp.cljs$lang$applyTo \x3d (function (seq34393){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq34393));\n}));\n\n\ntaoensso.encore.logf \x3d (function taoensso$encore$logf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35477 \x3d arguments.length;\nvar i__5750__auto___35478 \x3d (0);\nwhile(true){\nif((i__5750__auto___35478 \x3c len__5749__auto___35477)){\nargs__5755__auto__.push((arguments[i__5750__auto___35478]));\n\nvar G__35479 \x3d (i__5750__auto___35478 + (1));\ni__5750__auto___35478 \x3d G__35479;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.logf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.logf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nreturn taoensso.encore.console_log(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,xs));\n}));\n\n(taoensso.encore.logf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.logf.cljs$lang$applyTo \x3d (function (seq34394){\nvar G__34395 \x3d cljs.core.first(seq34394);\nvar seq34394__$1 \x3d cljs.core.next(seq34394);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34395,seq34394__$1);\n}));\n\n\ntaoensso.encore.sayf \x3d (function taoensso$encore$sayf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35485 \x3d arguments.length;\nvar i__5750__auto___35486 \x3d (0);\nwhile(true){\nif((i__5750__auto___35486 \x3c len__5749__auto___35485)){\nargs__5755__auto__.push((arguments[i__5750__auto___35486]));\n\nvar G__35487 \x3d (i__5750__auto___35486 + (1));\ni__5750__auto___35486 \x3d G__35487;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.sayf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.sayf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nreturn alert(taoensso.encore.format_STAR_.cljs$core$IFn$_invoke$arity$2(fmt,xs));\n}));\n\n(taoensso.encore.sayf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.sayf.cljs$lang$applyTo \x3d (function (seq34396){\nvar G__34397 \x3d cljs.core.first(seq34396);\nvar seq34396__$1 \x3d cljs.core.next(seq34396);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34397,seq34396__$1);\n}));\n\n/**\n * Returns current window location as\n * {:keys [href protocol hostname host pathname search hash]}.\n */\ntaoensso.encore.get_win_loc \x3d (function taoensso$encore$get_win_loc(){\nvar b2__30646__auto__ \x3d taoensso.encore.oget.cljs$core$IFn$_invoke$arity$2(taoensso.encore.js__QMARK_window,\x22location\x22);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar loc \x3d b2__30646__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22href\x22,\x22href\x22,-793805698),loc.href,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),loc.protocol,new cljs.core.Keyword(null,\x22hostname\x22,\x22hostname\x22,2105669933),loc.hostname,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),loc.host,new cljs.core.Keyword(null,\x22pathname\x22,\x22pathname\x22,-1420497528),loc.pathname,new cljs.core.Keyword(null,\x22search\x22,\x22search\x22,1564939822),loc.search,new cljs.core.Keyword(null,\x22hash\x22,\x22hash\x22,-13781596),loc.hash], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.default_xhr_pool_ \x3d (new cljs.core.Delay((function (){\nreturn (new goog.net.XhrIoPool());\n}),null));\n/**\n * Queues a lightweight Ajax call with Google Closure\x27s `goog.net.XhrIo`\n * and returns nil, or the resulting `goog.net.XhrIo` instance if one was\n * immediately available from the XHR pool:\n * \n * (ajax-call\n * \x22http://localhost:8080/my-post-route\x22 ; Endpoint URL\n * \n * {:method :post ; \u2208 #{:get :post :put}\n * :resp-type :text ; \u2208 #{:auto :text :edn :json :xml\n * ; :bin/array-buffer :bin/blob} ; Expected response type\n * \n * :headers {\x22Content-Type\x22 \x22text/plain\x22} ; Request headers\n * :params {:username \x22Rich Hickey\x22 :type \x22Awesome\x22} ; Request params\n * \n * :timeout-ms 10000 ; Request timeout in msecs\n * :with-credentials? false ; Enable if using CORS\n * :xhr-pool my-xhr-pool ; Optional `goog.net.XhrIoPool` instance or delay\n * :xhr-timeout-ms 2500 ; Optional max msecs to wait on pool for `XhrIo`\n * :xhr-cb-fn (fn [xhr]) ; Optional fn to call with `XhrIo` from pool when available\n * }\n * \n * (fn callback [resp-map]\n * (let [{:keys [success? ?status ?error ?content ?content-type]} resp-map]\n * ;; ?status ; \u2208 #{nil 200 404 ...}, non-nil iff server responded\n * ;; ?error ; \u2208 #{nil \x3chttp-error-status-code\x3e \x3cexception\x3e :timeout\n * :abort :http-error :exception :xhr-pool-depleted :bad-edn}\n * (js/alert (str \x22Ajax response: \x22 resp-map)))))\n */\ntaoensso.encore.ajax_call \x3d (function taoensso$encore$ajax_call(url,p__34399,callback_fn){\nvar map__34400 \x3d p__34399;\nvar map__34400__$1 \x3d cljs.core.__destructure_map(map__34400);\nvar opts \x3d map__34400__$1;\nvar resp_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,\x22resp-type\x22,\x22resp-type\x22,1050675962),new cljs.core.Keyword(null,\x22auto\x22,\x22auto\x22,-566279492));\nvar xhr_pool \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,\x22xhr-pool\x22,\x22xhr-pool\x22,1499305499),taoensso.encore.default_xhr_pool_);\nvar body \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),(10000));\nvar xhr_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,\x22xhr-timeout-ms\x22,\x22xhr-timeout-ms\x22,89157982),(2500));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34400__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),new cljs.core.Keyword(null,\x22get\x22,\x22get\x22,1683182755));\nvar xhr_cb_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,\x22xhr-cb-fn\x22,\x22xhr-cb-fn\x22,1569050954));\nvar params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235));\nvar headers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,\x22headers\x22,\x22headers\x22,-835030129));\nvar with_credentials_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34400__$1,new cljs.core.Keyword(null,\x22with-credentials?\x22,\x22with-credentials?\x22,-1773202222));\nvar error34406_35501 \x3d (function (){try{if(cljs.core.truth_((function (arg34401){\nif((arg34401 \x3d\x3d null)){\nreturn true;\n} else {\nreturn taoensso.encore.nat_int_QMARK_(arg34401);\n}\n})(timeout_ms))){\nreturn null;\n} else {\nreturn taoensso.truss.impl.FalsePredError;\n}\n}catch (e34408){var e \x3d e34408;\nreturn e;\n}})();\nif(cljs.core.truth_(error34406_35501)){\ntaoensso.truss.failed_assertion_BANG_(\x22taoensso.encore\x22,6414,13,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22nat-int?\x22,\x22nat-int?\x22,-1879663400,null)], null),new cljs.core.Symbol(null,\x22timeout-ms\x22,\x22timeout-ms\x22,-1900214363,null),timeout_ms,null,error34406_35501);\n} else {\n}\n\nvar xhr_pool__$1 \x3d cljs.core.force(xhr_pool);\nvar with_xhr \x3d (function (xhr){\ntry{var timeout_ms__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22timeout\x22,\x22timeout\x22,-318625318));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn timeout_ms;\n}\n})();\nvar map__34411 \x3d (((function (){var G__34412 \x3d method;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22get\x22,\x22get\x22,1683182755),G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22head\x22,\x22head\x22,-771383919),G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489),G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22GET\x22,G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22HEAD\x22,G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22OPTIONS\x22,G__34412)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22TRACE\x22,G__34412)){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n}\n}\n}\n}\n}\n}\n})())?((cljs.core.empty_QMARK_(params))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),\x22?\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params)))].join(\x27\x27)], null)):(cljs.core.truth_(body)?((cljs.core.empty_QMARK_(params))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),body], null):new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),body,new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),\x22?\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params)))].join(\x27\x27)], null)):(((((typeof FormData !\x3d\x3d \x27undefined\x27)) \x26\x26 ((params instanceof FormData))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),params], null):(cljs.core.truth_((function (){var and__5023__auto__ \x3d (typeof FormData !\x3d\x3d \x27undefined\x27);\nif(and__5023__auto__){\nreturn taoensso.encore.rsome_kv((function (_,v){\nreturn (v instanceof Blob);\n}),params);\n} else {\nreturn and__5023__auto__;\n}\n})())?(function (){var form_data \x3d (new FormData());\nvar seq__34413_35509 \x3d cljs.core.seq(params);\nvar chunk__34414_35510 \x3d null;\nvar count__34415_35511 \x3d (0);\nvar i__34416_35512 \x3d (0);\nwhile(true){\nif((i__34416_35512 \x3c count__34415_35511)){\nvar vec__34423_35513 \x3d chunk__34414_35510.cljs$core$IIndexed$_nth$arity$2(null,i__34416_35512);\nvar k_35514 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34423_35513,(0),null);\nvar v_35515 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34423_35513,(1),null);\nform_data.append(cljs.core.name(k_35514),v_35515);\n\n\nvar G__35516 \x3d seq__34413_35509;\nvar G__35517 \x3d chunk__34414_35510;\nvar G__35518 \x3d count__34415_35511;\nvar G__35519 \x3d (i__34416_35512 + (1));\nseq__34413_35509 \x3d G__35516;\nchunk__34414_35510 \x3d G__35517;\ncount__34415_35511 \x3d G__35518;\ni__34416_35512 \x3d G__35519;\ncontinue;\n} else {\nvar temp__5825__auto___35520 \x3d cljs.core.seq(seq__34413_35509);\nif(temp__5825__auto___35520){\nvar seq__34413_35522__$1 \x3d temp__5825__auto___35520;\nif(cljs.core.chunked_seq_QMARK_(seq__34413_35522__$1)){\nvar c__5548__auto___35529 \x3d cljs.core.chunk_first(seq__34413_35522__$1);\nvar G__35530 \x3d cljs.core.chunk_rest(seq__34413_35522__$1);\nvar G__35531 \x3d c__5548__auto___35529;\nvar G__35532 \x3d cljs.core.count(c__5548__auto___35529);\nvar G__35533 \x3d (0);\nseq__34413_35509 \x3d G__35530;\nchunk__34414_35510 \x3d G__35531;\ncount__34415_35511 \x3d G__35532;\ni__34416_35512 \x3d G__35533;\ncontinue;\n} else {\nvar vec__34426_35535 \x3d cljs.core.first(seq__34413_35522__$1);\nvar k_35536 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34426_35535,(0),null);\nvar v_35537 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34426_35535,(1),null);\nform_data.append(cljs.core.name(k_35536),v_35537);\n\n\nvar G__35539 \x3d cljs.core.next(seq__34413_35522__$1);\nvar G__35540 \x3d null;\nvar G__35541 \x3d (0);\nvar G__35542 \x3d (0);\nseq__34413_35509 \x3d G__35539;\nchunk__34414_35510 \x3d G__35540;\ncount__34415_35511 \x3d G__35541;\ni__34416_35512 \x3d G__35542;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),form_data], null);\n})():new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224),cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.Uri.QueryData.createFromMap(cljs.core.clj__GT_js(params))),new cljs.core.Keyword(null,\x22content-type\x22,\x22content-type\x22,-508222634),\x22application/x-www-form-urlencoded;charset\x3dUTF-8\x22], null)))));\nvar map__34411__$1 \x3d cljs.core.__destructure_map(map__34411);\nvar url_PLUS_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,\x22url+\x22,\x22url+\x22,185078960));\nvar content \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,\x22content\x22,\x22content\x22,15833224));\nvar content_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34411__$1,new cljs.core.Keyword(null,\x22content-type\x22,\x22content-type\x22,-508222634));\nvar headers__$1 \x3d taoensso.encore.map_keys((function (p1__34398_SHARP_){\nreturn clojure.string.lower_case(cljs.core.name(p1__34398_SHARP_));\n}),headers);\nvar headers__$2 \x3d taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$1,\x22x-requested-with\x22,cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$1,\x22x-requested-with\x22,\x22XMLHTTPRequest\x22));\nvar headers__$3 \x3d taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(headers__$2,\x22content-type\x22,cljs.core.get.cljs$core$IFn$_invoke$arity$3(headers__$2,\x22content-type\x22,content_type));\nvar progress_listener \x3d (function (){var b2__30646__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22progress-fn\x22,\x22progress-fn\x22,-1146547855));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar pf \x3d b2__30646__auto__;\nxhr.setProgressEventsEnabled(true);\n\nreturn goog.events.listen(xhr,goog.net.EventType.PROGRESS,(function (ev){\nvar length_computable_QMARK_ \x3d ev.lengthComputable;\nvar loaded \x3d ev.loaded;\nvar total \x3d ev.total;\nvar _QMARK_ratio \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d length_computable_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(total,(0));\n} else {\nreturn and__5023__auto__;\n}\n})())?(loaded / total):null);\nvar G__34429 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22length-computable?\x22,\x22length-computable?\x22,1915473276),length_computable_QMARK_,new cljs.core.Keyword(null,\x22?ratio\x22,\x22?ratio\x22,-1275760831),_QMARK_ratio,new cljs.core.Keyword(null,\x22loaded\x22,\x22loaded\x22,-1246482293),loaded,new cljs.core.Keyword(null,\x22total\x22,\x22total\x22,1916810418),total,new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev], null);\nreturn (pf.cljs$core$IFn$_invoke$arity$1 ? pf.cljs$core$IFn$_invoke$arity$1(G__34429) : pf.call(null,G__34429));\n}));\n} else {\nreturn null;\n}\n})();\ngoog.events.listenOnce(xhr,goog.net.EventType.READY,(function (_){\nreturn xhr_pool__$1.releaseObject(xhr);\n}));\n\ngoog.events.listenOnce(xhr,goog.net.EventType.COMPLETE,(function taoensso$encore$ajax_call_$_wrapped_callback(resp){\nvar success_QMARK_ \x3d xhr.isSuccess();\nvar status \x3d xhr.getStatus();\nvar vec__34430 \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(status,(-1)))?(function (){var content_type__$1 \x3d xhr.getResponseHeader(\x22content-type\x22);\nvar resp_type__$1 \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(resp_type,new cljs.core.Keyword(null,\x22auto\x22,\x22auto\x22,-566279492)))?resp_type:(((content_type__$1 \x3d\x3d null))?new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697):(function (){var ct \x3d clojure.string.lower_case(content_type__$1);\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/edn\x22))){\nreturn new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885);\n} else {\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/json\x22))){\nreturn new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570);\n} else {\nif(cljs.core.truth_(taoensso.encore.str_contains_QMARK_(ct,\x22/xml\x22))){\nreturn new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\n} else {\nreturn new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697);\n}\n}\n}\n})()));\nvar vec__34433 \x3d (function (){var G__34436 \x3d resp_type__$1;\nvar G__34436__$1 \x3d (((G__34436 instanceof cljs.core.Keyword))?G__34436.fqn:null);\nswitch (G__34436__$1) {\ncase \x22text\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseText()], null);\n\nbreak;\ncase \x22json\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseJson()], null);\n\nbreak;\ncase \x22xml\x22:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponseXml()], null);\n\nbreak;\ncase \x22edn\x22:\nvar b2__30646__auto__ \x3d xhr.getResponseText();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar edn \x3d b2__30646__auto__;\ntry{return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [taoensso.encore.read_edn.cljs$core$IFn$_invoke$arity$1(edn)], null);\n}catch (e34437){var _ \x3d e34437;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [edn,new cljs.core.Keyword(null,\x22bad-edn\x22,\x22bad-edn\x22,1465533855)], null);\n}} else {\nreturn null;\n}\n\nbreak;\ndefault:\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [xhr.getResponse()], null);\n\n}\n})();\nvar content__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34433,(0),null);\nvar error \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34433,(1),null);\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [status,content_type__$1,content__$1,error], null);\n})():null);\nvar status__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(0),null);\nvar content_type__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(1),null);\nvar content__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(2),null);\nvar error \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34430,(3),null);\nvar success_QMARK___$1 \x3d (function (){var and__5023__auto__ \x3d success_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(error);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(progress_listener)){\ngoog.events.unlistenByKey(progress_listener);\n} else {\n}\n\nvar G__34438 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22raw-resp\x22,\x22raw-resp\x22,-1924342506),resp,new cljs.core.Keyword(null,\x22xhr\x22,\x22xhr\x22,-177710851),xhr,new cljs.core.Keyword(null,\x22success?\x22,\x22success?\x22,-122854052),success_QMARK___$1,new cljs.core.Keyword(null,\x22?status\x22,\x22?status\x22,938730360),status__$1,new cljs.core.Keyword(null,\x22?content-type\x22,\x22?content-type\x22,-2129759049),content_type__$1,new cljs.core.Keyword(null,\x22?content\x22,\x22?content\x22,1697782054),content__$1,new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),(cljs.core.truth_(success_QMARK___$1)?null:(cljs.core.truth_(error)?error:(cljs.core.truth_(status__$1)?status__$1:(function (){var G__34439 \x3d xhr.getLastErrorCode();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22NO_ERROR\x22,\x22goog.net.ErrorCode/NO_ERROR\x22,-376372140,null),G__34439)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22EXCEPTION\x22,\x22goog.net.ErrorCode/EXCEPTION\x22,-1644416342,null),G__34439)){\nreturn new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22HTTP_ERROR\x22,\x22goog.net.ErrorCode/HTTP_ERROR\x22,1765210984,null),G__34439)){\nreturn new cljs.core.Keyword(null,\x22http-error\x22,\x22http-error\x22,-1040049553);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22ABORT\x22,\x22goog.net.ErrorCode/ABORT\x22,-1128881702,null),G__34439)){\nreturn new cljs.core.Keyword(null,\x22abort\x22,\x22abort\x22,521193198);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22goog.net.ErrorCode\x22,\x22TIMEOUT\x22,\x22goog.net.ErrorCode/TIMEOUT\x22,2036132238,null),G__34439)){\nreturn new cljs.core.Keyword(null,\x22timeout\x22,\x22timeout\x22,-318625318);\n} else {\nreturn new cljs.core.Keyword(null,\x22unknown\x22,\x22unknown\x22,-935977881);\n\n}\n}\n}\n}\n}\n})())))], null);\nreturn (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34438) : callback_fn.call(null,G__34438));\n}));\n\nxhr.setTimeoutInterval((function (){var or__5025__auto__ \x3d timeout_ms__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\n\nxhr.setWithCredentials(cljs.core.boolean$(with_credentials_QMARK_));\n\nxhr.setResponseType((function (){var G__34440 \x3d resp_type;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22auto\x22,\x22auto\x22,-566279492),G__34440)){\nreturn \x22\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__34440)){\nreturn \x22\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697),G__34440)){\nreturn \x22text\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885),G__34440)){\nreturn \x22text\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),G__34440)){\nreturn \x22json\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052),G__34440)){\nreturn \x22document\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22bin\x22,\x22array-buffer\x22,\x22bin/array-buffer\x22,519107969),G__34440)){\nreturn \x22arraybuffer\x22;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22bin\x22,\x22blob\x22,\x22bin/blob\x22,1636652666),G__34440)){\nreturn \x22blob\x22;\n} else {\nreturn resp_type;\n\n}\n}\n}\n}\n}\n}\n}\n}\n})());\n\nxhr.send((function (){var or__5025__auto__ \x3d url_PLUS_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn url;\n}\n})(),cljs.core.name(method),content,cljs.core.clj__GT_js(headers__$3));\n\nvar b2__30646__auto___35572 \x3d xhr_cb_fn;\nif(cljs.core.truth_(b2__30646__auto___35572)){\nvar cb_35573 \x3d b2__30646__auto___35572;\ntry{(cb_35573.cljs$core$IFn$_invoke$arity$1 ? cb_35573.cljs$core$IFn$_invoke$arity$1(xhr) : cb_35573.call(null,xhr));\n}catch (e34441){var __35574 \x3d e34441;\n}} else {\n}\n\nreturn xhr;\n}catch (e34409){var e \x3d e34409;\nxhr_pool__$1.releaseObject(xhr);\n\nvar G__34410_35576 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),e], null);\n(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34410_35576) : callback_fn.call(null,G__34410_35576));\n\nreturn null;\n}});\nvar b2__30646__auto__ \x3d xhr_pool__$1.getObject();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar xhr \x3d b2__30646__auto__;\nreturn with_xhr(xhr);\n} else {\nif(((function (){var or__5025__auto__ \x3d xhr_timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})() \x3d\x3d\x3d (0))){\nvar G__34442_35578 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),new cljs.core.Keyword(null,\x22xhr-pool-depleted\x22,\x22xhr-pool-depleted\x22,-1812092376)], null);\n(callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34442_35578) : callback_fn.call(null,G__34442_35578));\n\nreturn null;\n} else {\nvar done_QMARK__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\nsetTimeout((function taoensso$encore$ajax_call_$_xhr_timeout(){\nif(cljs.core.compare_and_set_BANG_(done_QMARK__,false,true)){\nvar G__34443 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22?error\x22,\x22?error\x22,1070752222),new cljs.core.Keyword(null,\x22xhr-pool-timeout\x22,\x22xhr-pool-timeout\x22,-70669609)], null);\nreturn (callback_fn.cljs$core$IFn$_invoke$arity$1 ? callback_fn.cljs$core$IFn$_invoke$arity$1(G__34443) : callback_fn.call(null,G__34443));\n} else {\nreturn null;\n}\n}),xhr_timeout_ms);\n\nxhr_pool__$1.getObject((function taoensso$encore$ajax_call_$_xhr_cb(xhr){\nif(cljs.core.compare_and_set_BANG_(done_QMARK__,false,true)){\nreturn with_xhr(xhr);\n} else {\nreturn xhr_pool__$1.releaseObject(xhr);\n}\n}));\n\nreturn null;\n}\n}\n});\n/**\n * Based on \x3chttps://goo.gl/fBqy6e\x3e.\n */\ntaoensso.encore.url_encode \x3d (function taoensso$encore$url_encode(s){\nif(cljs.core.truth_(s)){\nreturn clojure.string.replace(encodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),s),\x22*\x22,\x22%2A\x22);\n} else {\nreturn null;\n}\n});\n/**\n * Stolen from \x3chttp://goo.gl/99NSR1\x3e.\n */\ntaoensso.encore.url_decode \x3d (function taoensso$encore$url_decode(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35587 \x3d arguments.length;\nvar i__5750__auto___35588 \x3d (0);\nwhile(true){\nif((i__5750__auto___35588 \x3c len__5749__auto___35587)){\nargs__5755__auto__.push((arguments[i__5750__auto___35588]));\n\nvar G__35590 \x3d (i__5750__auto___35588 + (1));\ni__5750__auto___35588 \x3d G__35590;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s,p__34446){\nvar vec__34447 \x3d p__34446;\nvar encoding \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34447,(0),null);\nif(cljs.core.truth_(s)){\nreturn decodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s));\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.url_decode.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.url_decode.cljs$lang$applyTo \x3d (function (seq34444){\nvar G__34445 \x3d cljs.core.first(seq34444);\nvar seq34444__$1 \x3d cljs.core.next(seq34444);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34445,seq34444__$1);\n}));\n\ntaoensso.encore.format_query_string \x3d (function taoensso$encore$format_query_string(m){\nvar param \x3d (function (k,v){\nreturn [taoensso.encore.url_encode(taoensso.encore.as_qname(k)),\x22\x3d\x22,taoensso.encore.url_encode((function (){var or__5025__auto__ \x3d taoensso.encore.as__QMARK_qname(v);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(v);\n}\n})())].join(\x27\x27);\n});\nvar join \x3d (function (strs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x26\x22,strs);\n});\nif(cljs.core.empty_QMARK_(m)){\nreturn \x22\x22;\n} else {\nreturn join((function (){var iter__5503__auto__ \x3d (function taoensso$encore$format_query_string_$_iter__34450(s__34451){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__34451__$1 \x3d s__34451;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__34451__$1);\nif(temp__5825__auto__){\nvar s__34451__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__34451__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__34451__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__34453 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__34452 \x3d (0);\nwhile(true){\nif((i__34452 \x3c size__5502__auto__)){\nvar vec__34454 \x3d cljs.core._nth(c__5501__auto__,i__34452);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34454,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34454,(1),null);\nif((!((v \x3d\x3d null)))){\ncljs.core.chunk_append(b__34453,((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ \x3d cljs.core.seq(v);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22], null);\n}\n})())):param(k,v)));\n\nvar G__35597 \x3d (i__34452 + (1));\ni__34452 \x3d G__35597;\ncontinue;\n} else {\nvar G__35598 \x3d (i__34452 + (1));\ni__34452 \x3d G__35598;\ncontinue;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__34453),taoensso$encore$format_query_string_$_iter__34450(cljs.core.chunk_rest(s__34451__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__34453),null);\n}\n} else {\nvar vec__34457 \x3d cljs.core.first(s__34451__$2);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34457,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34457,(1),null);\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.cons(((cljs.core.sequential_QMARK_(v))?join(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(param,k),(function (){var or__5025__auto__ \x3d cljs.core.seq(v);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22], null);\n}\n})())):param(k,v)),taoensso$encore$format_query_string_$_iter__34450(cljs.core.rest(s__34451__$2)));\n} else {\nvar G__35599 \x3d cljs.core.rest(s__34451__$2);\ns__34451__$1 \x3d G__35599;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(m);\n})());\n}\n});\ntaoensso.encore.assoc_conj \x3d (function taoensso$encore$assoc_conj(m,k,v){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var b2__30646__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar cur \x3d b2__30646__auto__;\nif(cljs.core.vector_QMARK_(cur)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cur,v);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cur,v], null);\n}\n} else {\nreturn v;\n}\n})());\n});\n/**\n * Based on `ring-codec/form-decode`.\n */\ntaoensso.encore.parse_query_params \x3d (function taoensso$encore$parse_query_params(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35600 \x3d arguments.length;\nvar i__5750__auto___35601 \x3d (0);\nwhile(true){\nif((i__5750__auto___35601 \x3c len__5749__auto___35600)){\nargs__5755__auto__.push((arguments[i__5750__auto___35601]));\n\nvar G__35602 \x3d (i__5750__auto___35601 + (1));\ni__5750__auto___35601 \x3d G__35602;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.parse_query_params.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s,p__34462){\nvar vec__34463 \x3d p__34462;\nvar keywordize_QMARK_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34463,(0),null);\nvar encoding \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34463,(1),null);\nif(((clojure.string.blank_QMARK_(s)) || (cljs.core.not(taoensso.encore.str_contains_QMARK_(s,\x22\x3d\x22))))){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nvar s__$1 \x3d (cljs.core.truth_(taoensso.encore.str_starts_with_QMARK_(s,\x22?\x22))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(1)):s);\nvar m \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,param){\nvar b2__30646__auto__ \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(param,/\x3d/,(2));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar vec__34466 \x3d b2__30646__auto__;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34466,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34466,(1),null);\nreturn taoensso.encore.assoc_conj(m,taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(k,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0)),taoensso.encore.url_decode.cljs$core$IFn$_invoke$arity$variadic(v,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([encoding], 0)));\n} else {\nreturn m;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,clojure.string.split.cljs$core$IFn$_invoke$arity$2(s__$1,/\x26/));\nif(cljs.core.truth_(keywordize_QMARK_)){\nreturn taoensso.encore.map_keys(cljs.core.keyword,m);\n} else {\nreturn m;\n}\n}\n}));\n\n(taoensso.encore.parse_query_params.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.parse_query_params.cljs$lang$applyTo \x3d (function (seq34460){\nvar G__34461 \x3d cljs.core.first(seq34460);\nvar seq34460__$1 \x3d cljs.core.next(seq34460);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34461,seq34460__$1);\n}));\n\ntaoensso.encore.merge_url_with_query_string \x3d (function taoensso$encore$merge_url_with_query_string(url,m){\nvar vec__34469 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(url),/\\?/,(2));\nvar url__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34469,(0),null);\nvar _QMARK_qstr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34469,(1),null);\nvar qmap \x3d taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(_QMARK_qstr)?taoensso.encore.map_keys(cljs.core.keyword,taoensso.encore.parse_query_params(_QMARK_qstr)):null),taoensso.encore.map_keys(cljs.core.keyword,m));\nvar _QMARK_qstr__$1 \x3d taoensso.encore.as__QMARK_nblank(taoensso.encore.format_query_string(qmap));\nvar b2__30646__auto__ \x3d _QMARK_qstr__$1;\nif(cljs.core.truth_(b2__30646__auto__)){\nvar qstr \x3d b2__30646__auto__;\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(url__$1),\x22?\x22,qstr].join(\x27\x27);\n} else {\nreturn url__$1;\n}\n});\n/**\n * Returns given Cljs argument as JSON string.\n */\ntaoensso.encore.pr_json \x3d (function taoensso$encore$pr_json(x){\nreturn JSON.stringify(cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic(x,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22keyword-fn\x22,\x22keyword-fn\x22,-64566675),taoensso.encore.as_qname], 0)));\n});\n/**\n * Reads given JSON string to return a Cljs value.\n */\ntaoensso.encore.read_json \x3d (function taoensso$encore$read_json(var_args){\nvar G__34473 \x3d arguments.length;\nswitch (G__34473) {\ncase 1:\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2(false,s);\n}));\n\n(taoensso.encore.read_json.cljs$core$IFn$_invoke$arity$2 \x3d (function (kw_keys_QMARK_,s){\nif((((s \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\x22)))){\nreturn null;\n} else {\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nif(cljs.core.truth_(kw_keys_QMARK_)){\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(JSON.parse(s),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22keywordize-keys\x22,\x22keywordize-keys\x22,1310784252),true], 0));\n} else {\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(JSON.parse(s));\n}\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [6764,9], null),\x22[encore/read-json] Unexpected arg type (expected string or nil)\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),s,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(s)], null)], null),null);\n}\n}\n}));\n\n(taoensso.encore.read_json.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Prefer `latom`.\n */\ntaoensso.encore._swap_val_BANG_ \x3d (function taoensso$encore$_swap_val_BANG_(atom_,k,f){\nwhile(true){\nvar m0 \x3d cljs.core.deref(atom_);\nvar v1 \x3d (function (){var G__34481 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m0,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__34481) : f.call(null,G__34481));\n})();\nvar m1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m0,k,v1);\nif(cljs.core.compare_and_set_BANG_(atom_,m0,m1)){\nreturn v1;\n} else {\ncontinue;\n}\nbreak;\n}\n});\n\ntaoensso.encore.js__QMARK_win \x3d taoensso.encore.js__QMARK_window;\n\ntaoensso.encore.regular_num_QMARK_ \x3d taoensso.encore.finite_num_QMARK_;\n\ntaoensso.encore.get_window_location \x3d taoensso.encore.get_win_loc;\n\ntaoensso.encore.backport_run_BANG_ \x3d taoensso.encore.run_BANG_;\n\ntaoensso.encore.fq_name \x3d taoensso.encore.as_qname;\n\ntaoensso.encore.qname \x3d taoensso.encore.as_qname;\n\ntaoensso.encore.merge_deep_with \x3d taoensso.encore.nested_merge_with;\n\ntaoensso.encore.merge_deep \x3d taoensso.encore.nested_merge;\n\ntaoensso.encore.parse_bool \x3d taoensso.encore.as__QMARK_bool;\n\ntaoensso.encore.parse_int \x3d taoensso.encore.as__QMARK_int;\n\ntaoensso.encore.parse_float \x3d taoensso.encore.as__QMARK_float;\n\ntaoensso.encore.swapped_STAR_ \x3d taoensso.encore.swapped;\n\ntaoensso.encore.memoize_a0_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_a1_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.a0_memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.a1_memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_1 \x3d taoensso.encore.memoize_last;\n\ntaoensso.encore.memoize1 \x3d taoensso.encore.memoize_last;\n\ntaoensso.encore.memoize_STAR_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.memoize_ \x3d taoensso.encore.memoize;\n\ntaoensso.encore.nnil_QMARK_ \x3d cljs.core.some_QMARK_;\n\ntaoensso.encore.nneg_num_QMARK_ \x3d taoensso.encore.nat_num_QMARK_;\n\ntaoensso.encore.nneg_int_QMARK_ \x3d taoensso.encore.nat_int_QMARK_;\n\ntaoensso.encore.nneg_float_QMARK_ \x3d taoensso.encore.nat_float_QMARK_;\n\ntaoensso.encore.uint_QMARK_ \x3d taoensso.encore.nat_int_QMARK_;\n\ntaoensso.encore.pint_QMARK_ \x3d taoensso.encore.pos_int_QMARK_;\n\ntaoensso.encore.nnil_EQ_ \x3d taoensso.encore.some_EQ_;\n\ntaoensso.encore.as__QMARK_uint \x3d taoensso.encore.as__QMARK_nat_int;\n\ntaoensso.encore.as__QMARK_pint \x3d taoensso.encore.as__QMARK_pos_int;\n\ntaoensso.encore.as__QMARK_ufloat \x3d taoensso.encore.as__QMARK_nat_float;\n\ntaoensso.encore.as__QMARK_pfloat \x3d taoensso.encore.as__QMARK_pos_float;\n\ntaoensso.encore.as_uint \x3d taoensso.encore.as_nat_int;\n\ntaoensso.encore.as_pint \x3d taoensso.encore.as_pos_int;\n\ntaoensso.encore.as_ufloat \x3d taoensso.encore.as_nat_float;\n\ntaoensso.encore.as_pfloat \x3d taoensso.encore.as_pos_float;\n\ntaoensso.encore.run_BANG__STAR_ \x3d taoensso.encore.run_BANG_;\n\ntaoensso.encore.nano_time \x3d taoensso.encore.now_nano;\n\ntaoensso.encore._swap_cache_BANG_ \x3d taoensso.encore._swap_val_BANG_;\n\ntaoensso.encore._unswapped \x3d taoensso.encore.swapped_vec;\n\ntaoensso.encore._vswapped \x3d taoensso.encore.swapped_vec;\n\ntaoensso.encore._swap_k_BANG_ \x3d taoensso.encore._swap_val_BANG_;\n\ntaoensso.encore.update_in_STAR_ \x3d taoensso.encore.update_in;\n\ntaoensso.encore.idx_fn \x3d taoensso.encore.counter;\n\ntaoensso.encore.vec_STAR_ \x3d taoensso.encore.ensure_vec;\n\ntaoensso.encore.set_STAR_ \x3d taoensso.encore.ensure_set;\n\ntaoensso.encore.have_transducers_QMARK_ \x3d true;\n\ntaoensso.encore.pval_QMARK_ \x3d taoensso.encore.pnum_QMARK_;\n\ntaoensso.encore.as__QMARK_pval \x3d taoensso.encore.as__QMARK_pnum;\n\ntaoensso.encore.as_pval \x3d taoensso.encore.as_pnum;\n\nvar nolist_QMARK__35608 \x3d (function (p1__34474_SHARP_){\nreturn cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.createAsIfByAssoc([null,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY]),p1__34474_SHARP_);\n});\ntaoensso.encore.compile_ns_filter \x3d (function taoensso$encore$compile_ns_filter(var_args){\nvar G__34483 \x3d arguments.length;\nswitch (G__34483) {\ncase 1:\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns_pattern){\nreturn taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2(ns_pattern,null);\n}));\n\n(taoensso.encore.compile_ns_filter.cljs$core$IFn$_invoke$arity$2 \x3d (function (whitelist,blacklist){\nif(((nolist_QMARK__35608(whitelist)) \x26\x26 (nolist_QMARK__35608(blacklist)))){\nreturn (function (_){\nreturn true;\n});\n} else {\nreturn taoensso.encore.name_filter(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22allow\x22,\x22allow\x22,-1857325745),whitelist,new cljs.core.Keyword(null,\x22disallow\x22,\x22disallow\x22,-861898595),blacklist], null));\n}\n}));\n\n(taoensso.encore.compile_ns_filter.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.undefined__GT_nil \x3d (function taoensso$encore$undefined__GT_nil(x){\nif((void 0 \x3d\x3d\x3d x)){\nreturn null;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.spaced_str_with_nils \x3d (function taoensso$encore$spaced_str_with_nils(xs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.nil__GT_str,xs));\n});\n\ntaoensso.encore.spaced_str \x3d (function taoensso$encore$spaced_str(xs){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.encore.undefined__GT_nil,xs));\n});\n\ntaoensso.encore.approx_EQ_ \x3d (function taoensso$encore$approx_EQ_(var_args){\nvar G__34485 \x3d arguments.length;\nswitch (G__34485) {\ncase 2:\nreturn taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$2(x,y);\n}));\n\n(taoensso.encore.approx_EQ_.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,y,signf){\nreturn taoensso.encore.approx_EQ__EQ_.cljs$core$IFn$_invoke$arity$3(signf,x,y);\n}));\n\n(taoensso.encore.approx_EQ_.cljs$lang$maxFixedArity \x3d 3);\n\n\ntaoensso.encore.join_once \x3d (function taoensso$encore$join_once(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35613 \x3d arguments.length;\nvar i__5750__auto___35614 \x3d (0);\nwhile(true){\nif((i__5750__auto___35614 \x3c len__5749__auto___35613)){\nargs__5755__auto__.push((arguments[i__5750__auto___35614]));\n\nvar G__35615 \x3d (i__5750__auto___35614 + (1));\ni__5750__auto___35614 \x3d G__35615;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.join_once.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.join_once.cljs$core$IFn$_invoke$arity$variadic \x3d (function (sep,coll){\nreturn taoensso.encore.str_join_once(sep,coll);\n}));\n\n(taoensso.encore.join_once.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.join_once.cljs$lang$applyTo \x3d (function (seq34486){\nvar G__34487 \x3d cljs.core.first(seq34486);\nvar seq34486__$1 \x3d cljs.core.next(seq34486);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34487,seq34486__$1);\n}));\n\n\ntaoensso.encore.nnil_set \x3d (function taoensso$encore$nnil_set(x){\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(taoensso.encore.ensure_set(x),null);\n});\n\ntaoensso.encore.keys_EQ_ \x3d (function taoensso$encore$keys_EQ_(m,ks){\nreturn taoensso.encore.ks_EQ_(ks,m);\n});\n\ntaoensso.encore.keys_LT__EQ_ \x3d (function taoensso$encore$keys_LT__EQ_(m,ks){\nreturn taoensso.encore.ks_LT__EQ_(ks,m);\n});\n\ntaoensso.encore.keys_GT__EQ_ \x3d (function taoensso$encore$keys_GT__EQ_(m,ks){\nreturn taoensso.encore.ks_GT__EQ_(ks,m);\n});\n\ntaoensso.encore.keys_EQ_nnil_QMARK_ \x3d (function taoensso$encore$keys_EQ_nnil_QMARK_(m,ks){\nreturn taoensso.encore.ks_nnil_QMARK_(ks,m);\n});\n\ntaoensso.encore.logging_level \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596));\n\ntaoensso.encore.set_exp_backoff_timeout_BANG_ \x3d (function taoensso$encore$set_exp_backoff_timeout_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35616 \x3d arguments.length;\nvar i__5750__auto___35617 \x3d (0);\nwhile(true){\nif((i__5750__auto___35617 \x3c len__5749__auto___35616)){\nargs__5755__auto__.push((arguments[i__5750__auto___35617]));\n\nvar G__35618 \x3d (i__5750__auto___35617 + (1));\ni__5750__auto___35617 \x3d G__35618;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (nullary_f,p__34490){\nvar vec__34491 \x3d p__34490;\nvar nattempt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34491,(0),null);\nreturn setTimeout(nullary_f,taoensso.encore.exp_backoff.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d nattempt;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})()));\n}));\n\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.set_exp_backoff_timeout_BANG_.cljs$lang$applyTo \x3d (function (seq34488){\nvar G__34489 \x3d cljs.core.first(seq34488);\nvar seq34488__$1 \x3d cljs.core.next(seq34488);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34489,seq34488__$1);\n}));\n\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore._STAR_log_level_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore._STAR_log_level_STAR_ \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\n}\n\ntaoensso.encore.log_QMARK_ \x3d (function (){var __GT_n \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(1),new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596),(2),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),(3),new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),(4),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(5),new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888),(6),new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),(7)], null);\nreturn (function (level){\nreturn ((__GT_n.cljs$core$IFn$_invoke$arity$1 ? __GT_n.cljs$core$IFn$_invoke$arity$1(level) : __GT_n.call(null,level)) \x3e\x3d (__GT_n.cljs$core$IFn$_invoke$arity$1 ? __GT_n.cljs$core$IFn$_invoke$arity$1(taoensso.encore._STAR_log_level_STAR_) : __GT_n.call(null,taoensso.encore._STAR_log_level_STAR_)));\n});\n})();\n\ntaoensso.encore.tracef \x3d (function taoensso$encore$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35620 \x3d arguments.length;\nvar i__5750__auto___35621 \x3d (0);\nwhile(true){\nif((i__5750__auto___35621 \x3c len__5749__auto___35620)){\nargs__5755__auto__.push((arguments[i__5750__auto___35621]));\n\nvar G__35622 \x3d (i__5750__auto___35621 + (1));\ni__5750__auto___35621 \x3d G__35622;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.tracef.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.tracef.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.tracef.cljs$lang$applyTo \x3d (function (seq34494){\nvar G__34495 \x3d cljs.core.first(seq34494);\nvar seq34494__$1 \x3d cljs.core.next(seq34494);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34495,seq34494__$1);\n}));\n\n\ntaoensso.encore.debugf \x3d (function taoensso$encore$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35624 \x3d arguments.length;\nvar i__5750__auto___35625 \x3d (0);\nwhile(true){\nif((i__5750__auto___35625 \x3c len__5749__auto___35624)){\nargs__5755__auto__.push((arguments[i__5750__auto___35625]));\n\nvar G__35626 \x3d (i__5750__auto___35625 + (1));\ni__5750__auto___35625 \x3d G__35626;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.debugf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.debugf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.debugf.cljs$lang$applyTo \x3d (function (seq34496){\nvar G__34497 \x3d cljs.core.first(seq34496);\nvar seq34496__$1 \x3d cljs.core.next(seq34496);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34497,seq34496__$1);\n}));\n\n\ntaoensso.encore.infof \x3d (function taoensso$encore$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35627 \x3d arguments.length;\nvar i__5750__auto___35628 \x3d (0);\nwhile(true){\nif((i__5750__auto___35628 \x3c len__5749__auto___35627)){\nargs__5755__auto__.push((arguments[i__5750__auto___35628]));\n\nvar G__35630 \x3d (i__5750__auto___35628 + (1));\ni__5750__auto___35628 \x3d G__35630;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.infof.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.infof.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.infof.cljs$lang$applyTo \x3d (function (seq34498){\nvar G__34499 \x3d cljs.core.first(seq34498);\nvar seq34498__$1 \x3d cljs.core.next(seq34498);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34499,seq34498__$1);\n}));\n\n\ntaoensso.encore.warnf \x3d (function taoensso$encore$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35631 \x3d arguments.length;\nvar i__5750__auto___35632 \x3d (0);\nwhile(true){\nif((i__5750__auto___35632 \x3c len__5749__auto___35631)){\nargs__5755__auto__.push((arguments[i__5750__auto___35632]));\n\nvar G__35633 \x3d (i__5750__auto___35632 + (1));\ni__5750__auto___35632 \x3d G__35633;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.warnf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22WARN: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.warnf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.warnf.cljs$lang$applyTo \x3d (function (seq34500){\nvar G__34501 \x3d cljs.core.first(seq34500);\nvar seq34500__$1 \x3d cljs.core.next(seq34500);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34501,seq34500__$1);\n}));\n\n\ntaoensso.encore.errorf \x3d (function taoensso$encore$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35635 \x3d arguments.length;\nvar i__5750__auto___35636 \x3d (0);\nwhile(true){\nif((i__5750__auto___35636 \x3c len__5749__auto___35635)){\nargs__5755__auto__.push((arguments[i__5750__auto___35636]));\n\nvar G__35637 \x3d (i__5750__auto___35636 + (1));\ni__5750__auto___35636 \x3d G__35637;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.errorf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22ERROR: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.errorf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.errorf.cljs$lang$applyTo \x3d (function (seq34502){\nvar G__34503 \x3d cljs.core.first(seq34502);\nvar seq34502__$1 \x3d cljs.core.next(seq34502);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34503,seq34502__$1);\n}));\n\n\ntaoensso.encore.fatalf \x3d (function taoensso$encore$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35638 \x3d arguments.length;\nvar i__5750__auto___35639 \x3d (0);\nwhile(true){\nif((i__5750__auto___35639 \x3c len__5749__auto___35638)){\nargs__5755__auto__.push((arguments[i__5750__auto___35639]));\n\nvar G__35640 \x3d (i__5750__auto___35639 + (1));\ni__5750__auto___35639 \x3d G__35640;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.fatalf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,[\x22FATAL: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fmt)].join(\x27\x27),xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.fatalf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.fatalf.cljs$lang$applyTo \x3d (function (seq34504){\nvar G__34505 \x3d cljs.core.first(seq34504);\nvar seq34504__$1 \x3d cljs.core.next(seq34504);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34505,seq34504__$1);\n}));\n\n\ntaoensso.encore.reportf \x3d (function taoensso$encore$reportf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35643 \x3d arguments.length;\nvar i__5750__auto___35644 \x3d (0);\nwhile(true){\nif((i__5750__auto___35644 \x3c len__5749__auto___35643)){\nargs__5755__auto__.push((arguments[i__5750__auto___35644]));\n\nvar G__35645 \x3d (i__5750__auto___35644 + (1));\ni__5750__auto___35644 \x3d G__35645;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.reportf.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.reportf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (fmt,xs){\nif(cljs.core.truth_(taoensso.encore.log_QMARK_(new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010)))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(taoensso.encore.logf,fmt,xs);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.reportf.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.reportf.cljs$lang$applyTo \x3d (function (seq34506){\nvar G__34507 \x3d cljs.core.first(seq34506);\nvar seq34506__$1 \x3d cljs.core.next(seq34506);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34507,seq34506__$1);\n}));\n\n\ntaoensso.encore.greatest \x3d (function taoensso$encore$greatest(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35646 \x3d arguments.length;\nvar i__5750__auto___35647 \x3d (0);\nwhile(true){\nif((i__5750__auto___35647 \x3c len__5749__auto___35646)){\nargs__5755__auto__.push((arguments[i__5750__auto___35647]));\n\nvar G__35648 \x3d (i__5750__auto___35647 + (1));\ni__5750__auto___35647 \x3d G__35648;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.greatest.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,p__34510){\nvar vec__34511 \x3d p__34510;\nvar _QMARK_comparator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34511,(0),null);\nvar comparator \x3d (function (){var or__5025__auto__ \x3d _QMARK_comparator;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.rcompare;\n}\n})();\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__34476_SHARP_,p2__34477_SHARP_){\nif((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__34476_SHARP_,p2__34477_SHARP_) : comparator.call(null,p1__34476_SHARP_,p2__34477_SHARP_))) \x3e (0))){\nreturn p2__34477_SHARP_;\n} else {\nreturn p1__34476_SHARP_;\n}\n}),coll);\n}));\n\n(taoensso.encore.greatest.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.greatest.cljs$lang$applyTo \x3d (function (seq34508){\nvar G__34509 \x3d cljs.core.first(seq34508);\nvar seq34508__$1 \x3d cljs.core.next(seq34508);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34509,seq34508__$1);\n}));\n\n\ntaoensso.encore.least \x3d (function taoensso$encore$least(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35650 \x3d arguments.length;\nvar i__5750__auto___35651 \x3d (0);\nwhile(true){\nif((i__5750__auto___35651 \x3c len__5749__auto___35650)){\nargs__5755__auto__.push((arguments[i__5750__auto___35651]));\n\nvar G__35652 \x3d (i__5750__auto___35651 + (1));\ni__5750__auto___35651 \x3d G__35652;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.least.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,p__34516){\nvar vec__34517 \x3d p__34516;\nvar _QMARK_comparator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34517,(0),null);\nvar comparator \x3d (function (){var or__5025__auto__ \x3d _QMARK_comparator;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.rcompare;\n}\n})();\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__34478_SHARP_,p2__34479_SHARP_){\nif((cljs.core.long$((comparator.cljs$core$IFn$_invoke$arity$2 ? comparator.cljs$core$IFn$_invoke$arity$2(p1__34478_SHARP_,p2__34479_SHARP_) : comparator.call(null,p1__34478_SHARP_,p2__34479_SHARP_))) \x3c (0))){\nreturn p2__34479_SHARP_;\n} else {\nreturn p1__34478_SHARP_;\n}\n}),coll);\n}));\n\n(taoensso.encore.least.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.least.cljs$lang$applyTo \x3d (function (seq34514){\nvar G__34515 \x3d cljs.core.first(seq34514);\nvar seq34514__$1 \x3d cljs.core.next(seq34514);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34515,seq34514__$1);\n}));\n\n\n/**\n * Ref. \x3chttp://goo.gl/0GzRuz\x3e\n */\ntaoensso.encore.clj1098 \x3d (function taoensso$encore$clj1098(x){\nvar or__5025__auto__ \x3d x;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n});\n\n/**\n * Prefer `xdistinct`.\n */\ntaoensso.encore.distinct_by \x3d (function taoensso$encore$distinct_by(keyfn,coll){\nvar step \x3d (function taoensso$encore$distinct_by_$_step(xs,seen){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn (function (p__34520,seen__$1){\nwhile(true){\nvar vec__34521 \x3d p__34520;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34521,(0),null);\nvar xs__$1 \x3d vec__34521;\nvar b2__30646__auto__ \x3d cljs.core.seq(xs__$1);\nif(b2__30646__auto__){\nvar s \x3d b2__30646__auto__;\nvar v_STAR_ \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(v) : keyfn.call(null,v));\nif(cljs.core.contains_QMARK_(seen__$1,v_STAR_)){\nvar G__35655 \x3d cljs.core.rest(s);\nvar G__35656 \x3d seen__$1;\np__34520 \x3d G__35655;\nseen__$1 \x3d G__35656;\ncontinue;\n} else {\nreturn cljs.core.cons(v,taoensso$encore$distinct_by_$_step(cljs.core.rest(s),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen__$1,v_STAR_)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})(xs,seen);\n}),null,null));\n});\nreturn step(coll,cljs.core.PersistentHashSet.EMPTY);\n});\n\n/**\n * Prefer `xdistinct`.\n */\ntaoensso.encore.distinctv \x3d (function taoensso$encore$distinctv(var_args){\nvar G__34525 \x3d arguments.length;\nswitch (G__34525) {\ncase 1:\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,coll);\n}));\n\n(taoensso.encore.distinctv.cljs$core$IFn$_invoke$arity$2 \x3d (function (keyfn,coll){\nvar tr \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__34526,in$){\nvar vec__34527 \x3d p__34526;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34527,(0),null);\nvar seen \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34527,(1),null);\nvar in_STAR_ \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(in$) : keyfn.call(null,in$));\nif(cljs.core.contains_QMARK_(seen,in_STAR_)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,seen], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,in$),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,in_STAR_)], null);\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.transient$(cljs.core.PersistentVector.EMPTY),cljs.core.PersistentHashSet.EMPTY], null),coll);\nreturn cljs.core.persistent_BANG_(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(tr,(0)));\n}));\n\n(taoensso.encore.distinctv.cljs$lang$maxFixedArity \x3d 2);\n\n\ntaoensso.encore.map_kvs \x3d (function taoensso$encore$map_kvs(kf,vf,m){\n\nif(cljs.core.truth_(m)){\nvar vf__$1 \x3d (((vf \x3d\x3d null))?(function (_,v){\nreturn v;\n}):vf);\nvar kf__$1 \x3d (((kf \x3d\x3d null))?(function (k,_){\nreturn k;\n}):((cljs.core.keyword_identical_QMARK_(kf,new cljs.core.Keyword(null,\x22keywordize\x22,\x22keywordize\x22,1381210758)))?(function (k,_){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k);\n}):kf));\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,(kf__$1.cljs$core$IFn$_invoke$arity$2 ? kf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : kf__$1.call(null,k,v)),(vf__$1.cljs$core$IFn$_invoke$arity$2 ? vf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : vf__$1.call(null,k,v)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n});\n\ntaoensso.encore.as_map \x3d (function taoensso$encore$as_map(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35660 \x3d arguments.length;\nvar i__5750__auto___35661 \x3d (0);\nwhile(true){\nif((i__5750__auto___35661 \x3c len__5749__auto___35660)){\nargs__5755__auto__.push((arguments[i__5750__auto___35661]));\n\nvar G__35662 \x3d (i__5750__auto___35661 + (1));\ni__5750__auto___35661 \x3d G__35662;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.as_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (kvs,p__34532){\nvar vec__34533 \x3d p__34532;\nvar kf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34533,(0),null);\nvar vf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34533,(1),null);\n\nif(cljs.core.empty_QMARK_(kvs)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nvar vf__$1 \x3d (((vf \x3d\x3d null))?(function (_,v){\nreturn v;\n}):vf);\nvar kf__$1 \x3d (((kf \x3d\x3d null))?(function (k,_){\nreturn k;\n}):((cljs.core.keyword_identical_QMARK_(kf,new cljs.core.Keyword(null,\x22keywordize\x22,\x22keywordize\x22,1381210758)))?(function (k,_){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k);\n}):kf));\nreturn cljs.core.persistent_BANG_(taoensso.encore.reduce_kvs((function (m,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,(kf__$1.cljs$core$IFn$_invoke$arity$2 ? kf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : kf__$1.call(null,k,v)),(vf__$1.cljs$core$IFn$_invoke$arity$2 ? vf__$1.cljs$core$IFn$_invoke$arity$2(k,v) : vf__$1.call(null,k,v)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),kvs));\n}\n}));\n\n(taoensso.encore.as_map.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.as_map.cljs$lang$applyTo \x3d (function (seq34530){\nvar G__34531 \x3d cljs.core.first(seq34530);\nvar seq34530__$1 \x3d cljs.core.next(seq34530);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34531,seq34530__$1);\n}));\n\n\ntaoensso.encore.keywordize_map \x3d (function taoensso$encore$keywordize_map(m){\nreturn taoensso.encore.map_keys(cljs.core.keyword,m);\n});\n\ntaoensso.encore.removev \x3d (function taoensso$encore$removev(pred,coll){\nreturn cljs.core.filterv(cljs.core.complement(pred),coll);\n});\n\ntaoensso.encore.nvec_QMARK_ \x3d (function taoensso$encore$nvec_QMARK_(n,x){\nreturn ((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),n)));\n});\n\ntaoensso.encore.memoized \x3d (function taoensso$encore$memoized(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35666 \x3d arguments.length;\nvar i__5750__auto___35667 \x3d (0);\nwhile(true){\nif((i__5750__auto___35667 \x3c len__5749__auto___35666)){\nargs__5755__auto__.push((arguments[i__5750__auto___35667]));\n\nvar G__35669 \x3d (i__5750__auto___35667 + (1));\ni__5750__auto___35667 \x3d G__35669;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn taoensso.encore.memoized.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.memoized.cljs$core$IFn$_invoke$arity$variadic \x3d (function (cache,f,args){\nif(cljs.core.truth_(cache)){\nreturn cljs.core.deref(taoensso.encore._swap_val_BANG_(cache,args,(function (_QMARK_dv){\nif(cljs.core.truth_(_QMARK_dv)){\nreturn _QMARK_dv;\n} else {\nreturn (new cljs.core.Delay((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}),null));\n}\n})));\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}\n}));\n\n(taoensso.encore.memoized.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(taoensso.encore.memoized.cljs$lang$applyTo \x3d (function (seq34536){\nvar G__34537 \x3d cljs.core.first(seq34536);\nvar seq34536__$1 \x3d cljs.core.next(seq34536);\nvar G__34538 \x3d cljs.core.first(seq34536__$1);\nvar seq34536__$2 \x3d cljs.core.next(seq34536__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34537,G__34538,seq34536__$2);\n}));\n\n\ntaoensso.encore.translate_signed_idx \x3d (function taoensso$encore$translate_signed_idx(signed_idx,max_idx){\nif((signed_idx \x3e\x3d (0))){\nvar x__5113__auto__ \x3d signed_idx;\nvar y__5114__auto__ \x3d max_idx;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n} else {\nvar x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (signed_idx + max_idx);\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n}\n});\n\n\ntaoensso.encore.sentinel \x3d ({});\n\ntaoensso.encore.sentinel_QMARK_ \x3d (function taoensso$encore$sentinel_QMARK_(x){\nreturn (x \x3d\x3d\x3d taoensso.encore.sentinel);\n});\n\ntaoensso.encore.nil__GT_sentinel \x3d (function taoensso$encore$nil__GT_sentinel(x){\nif((x \x3d\x3d null)){\nreturn taoensso.encore.sentinel;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.sentinel__GT_nil \x3d (function taoensso$encore$sentinel__GT_nil(x){\nif(taoensso.encore.sentinel_QMARK_(x)){\nreturn null;\n} else {\nreturn x;\n}\n});\n\ntaoensso.encore.singleton_QMARK_ \x3d (function taoensso$encore$singleton_QMARK_(coll){\nif(cljs.core.counted_QMARK_(coll)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(coll),(1));\n} else {\nreturn cljs.core.not(cljs.core.next(coll));\n}\n});\n\ntaoensso.encore.__GT__QMARK_singleton \x3d (function taoensso$encore$__GT__QMARK_singleton(coll){\nif(taoensso.encore.singleton_QMARK_(coll)){\nvar vec__34541 \x3d coll;\nvar c1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34541,(0),null);\nreturn c1;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.__GT_vec \x3d (function taoensso$encore$__GT_vec(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.sequential_QMARK_(x)){\nreturn cljs.core.vec(x);\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [x], null);\n}\n}\n});\n\ntaoensso.encore.fzipmap \x3d (function taoensso$encore$fzipmap(ks,vs){\nvar m \x3d cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\nvar ks__$1 \x3d cljs.core.seq(ks);\nvar vs__$1 \x3d cljs.core.seq(vs);\nwhile(true){\nif(((ks__$1) \x26\x26 (vs__$1))){\nvar G__35670 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,cljs.core.first(ks__$1),cljs.core.first(vs__$1));\nvar G__35671 \x3d cljs.core.next(ks__$1);\nvar G__35672 \x3d cljs.core.next(vs__$1);\nm \x3d G__35670;\nks__$1 \x3d G__35671;\nvs__$1 \x3d G__35672;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(m);\n}\nbreak;\n}\n});\n\ntaoensso.encore.filter_kvs \x3d (function taoensso$encore$filter_kvs(pred,m){\nif((m \x3d\x3d null)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn m__$1;\n} else {\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n}\n}),m,m);\n}\n});\n\ntaoensso.encore.remove_kvs \x3d (function taoensso$encore$remove_kvs(pred,m){\nif((m \x3d\x3d null)){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n} else {\nreturn cljs.core.reduce_kv((function (m__$1,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m__$1,k);\n} else {\nreturn m__$1;\n}\n}),m,m);\n}\n});\n\ntaoensso.encore.revery \x3d (function taoensso$encore$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\n\ntaoensso.encore.revery_kv \x3d (function taoensso$encore$revery_kv(pred,coll){\nreturn cljs.core.reduce_kv((function (acc,k,v){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(k,v) : pred.call(null,k,v)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\n\ntaoensso.encore.every \x3d taoensso.encore.revery;\n\ntaoensso.encore.replace_in \x3d (function taoensso$encore$replace_in(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___35674 \x3d arguments.length;\nvar i__5750__auto___35675 \x3d (0);\nwhile(true){\nif((i__5750__auto___35675 \x3c len__5749__auto___35674)){\nargs__5755__auto__.push((arguments[i__5750__auto___35675]));\n\nvar G__35676 \x3d (i__5750__auto___35675 + (1));\ni__5750__auto___35675 \x3d G__35676;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(taoensso.encore.replace_in.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,ops){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m__$1,_QMARK_op){\nif(cljs.core.truth_(_QMARK_op)){\nvar vec__34546 \x3d _QMARK_op;\nvar type \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(0),null);\nvar ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(1),null);\nvar valf \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34546,(2),null);\nvar f \x3d ((cljs.core.keyword_identical_QMARK_(type,new cljs.core.Keyword(null,\x22reset\x22,\x22reset\x22,-800929946)))?(function (_){\nreturn valf;\n}):valf);\nreturn taoensso.encore.update_in.cljs$core$IFn$_invoke$arity$4(m__$1,ks,null,f);\n} else {\nreturn m__$1;\n}\n}),m,ops);\n}));\n\n(taoensso.encore.replace_in.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(taoensso.encore.replace_in.cljs$lang$applyTo \x3d (function (seq34544){\nvar G__34545 \x3d cljs.core.first(seq34544);\nvar seq34544__$1 \x3d cljs.core.next(seq34544);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__34545,seq34544__$1);\n}));\n\n\nvar return_35677 \x3d (function (m0,v0,m1,v1){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v0,v1], null);\n});\n/**\n * Prefer `swap-in!` with `swapped` return value.\n */\ntaoensso.encore.swap_in_BANG__STAR_ \x3d (function taoensso$encore$swap_in_BANG__STAR_(var_args){\nvar G__34550 \x3d arguments.length;\nswitch (G__34550) {\ncase 2:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (atom_,f){\nreturn taoensso.encore._swap_k0_BANG_(return_35677,atom_,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,ks,f){\nreturn taoensso.encore._swap_kn_BANG_(return_35677,atom_,ks,null,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,ks,not_found,f){\nreturn taoensso.encore._swap_kn_BANG_(return_35677,atom_,ks,not_found,f);\n}));\n\n(taoensso.encore.swap_in_BANG__STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n * Prefer `swap-val!` with `swapped` return value.\n */\ntaoensso.encore.swap_val_BANG__STAR_ \x3d (function taoensso$encore$swap_val_BANG__STAR_(var_args){\nvar G__34552 \x3d arguments.length;\nswitch (G__34552) {\ncase 3:\nreturn taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (atom_,k,f){\nreturn taoensso.encore._swap_k1_BANG_(return_35677,atom_,k,null,f);\n}));\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (atom_,k,not_found,f){\nreturn taoensso.encore._swap_k1_BANG_(return_35677,atom_,k,not_found,f);\n}));\n\n(taoensso.encore.swap_val_BANG__STAR_.cljs$lang$maxFixedArity \x3d 4);\n\n\ntaoensso.encore.dswap_BANG_ \x3d taoensso.encore.swap_in_BANG__STAR_;\n\ntaoensso.encore.swap_BANG__STAR_ \x3d taoensso.encore.swap_in_BANG__STAR_;\n\n/**\n * Renamed to `name-filter`.\n */\ntaoensso.encore.compile_str_filter \x3d taoensso.encore.name_filter;\n\n/**\n * Prefer `identical-kw?` macro.\n */\ntaoensso.encore.kw_identical_QMARK_ \x3d (function taoensso$encore$kw_identical_QMARK_(x,y){\nreturn cljs.core.keyword_identical_QMARK_(x,y);\n});\n\n/**\n * Prefer `newline`.\n */\ntaoensso.encore.system_newline \x3d \x22\\n\x22;\n\n/**\n * Prefer `matching-error`.\n */\ntaoensso.encore._matching_error \x3d taoensso.truss.matching_error;\n\n/**\n * Prefer `rate-limiter`.\n */\ntaoensso.encore.rate_limiter_STAR_ \x3d (function taoensso$encore$rate_limiter_STAR_(var_args){\nvar G__34554 \x3d arguments.length;\nswitch (G__34554) {\ncase 1:\nreturn taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183),true], null),spec);\n}));\n\n(taoensso.encore.rate_limiter_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,spec){\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22with-state?\x22,\x22with-state?\x22,1044523183),true),spec);\n}));\n\n(taoensso.encore.rate_limiter_STAR_.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Prefer `rate-limiter*`.\n */\ntaoensso.encore.limiter_STAR_ \x3d taoensso.encore.rate_limiter_STAR_;\n\n/**\n * Prefer `rate-limiter`.\n */\ntaoensso.encore.limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Prefer `reassoc-some`.\n */\ntaoensso.encore.dis_assoc_some \x3d taoensso.encore.reassoc_some;\n\n/**\n * Prefer `println`.\n */\ntaoensso.encore.println_atomic \x3d taoensso.encore.println;\n\n/**\n * Prefer `merge-with*`.\n */\ntaoensso.encore._merge_with \x3d taoensso.encore.merge_with_STAR_;\n\n/**\n * Prefer `merge`.\n */\ntaoensso.encore.fast_merge \x3d taoensso.encore.merge;\n\n/**\n * Prefer `rand-bytes`.\n */\ntaoensso.encore.secure_rand_bytes \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true);\n\n/**\n * Prefer `round`.\n */\ntaoensso.encore.round_STAR_ \x3d taoensso.encore.round;\n\n/**\n * Prefer `ajax-call`.\n */\ntaoensso.encore.ajax_lite \x3d taoensso.encore.ajax_call;\n\n/**\n * Prefer `ex-map`.\n */\ntaoensso.encore.error_data \x3d (function taoensso$encore$error_data(x){\nvar b2__30646__auto__ \x3d (function (){var and__5023__auto__ \x3d x;\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto__ \x3d cljs.core.ex_data(x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(b2__30646__auto__)){\nvar data_map \x3d b2__30646__auto__;\nvar base_map \x3d (function (){var err \x3d x;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22err-type\x22,\x22err-type\x22,-116717722),cljs.core.type(err),new cljs.core.Keyword(null,\x22err-msg\x22,\x22err-msg\x22,-1158512684),err.message,new cljs.core.Keyword(null,\x22err-cause\x22,\x22err-cause\x22,897008749),err.cause], null);\n})();\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_map,data_map);\n} else {\nreturn null;\n}\n});\n\n/**\n * Prefer `is`.\n */\ntaoensso.encore.when_QMARK_ \x3d (function taoensso$encore$when_QMARK_(pred,x){\nif(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x));\n}catch (e34555){var _ \x3d e34555;\nreturn null;\n}})())){\nreturn x;\n} else {\nreturn null;\n}\n});\n\n/**\n * Prefer `list-form`.\n */\ntaoensso.encore.call_form_QMARK_ \x3d (function taoensso$encore$call_form_QMARK_(x){\nreturn taoensso.encore.list_form_QMARK_(x);\n});\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.get_subvec \x3d (function taoensso$encore$get_subvec(var_args){\nvar G__34557 \x3d arguments.length;\nswitch (G__34557) {\ncase 2:\nreturn taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,start){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,start);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvec.cljs$core$IFn$_invoke$arity$3 \x3d (function (v,start,end){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,start,end);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvec.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.get_subvector \x3d (function taoensso$encore$get_subvector(var_args){\nvar G__34559 \x3d arguments.length;\nswitch (G__34559) {\ncase 2:\nreturn taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,start){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvector.cljs$core$IFn$_invoke$arity$3 \x3d (function (v,start,len){\nvar or__5025__auto__ \x3d taoensso.encore.subvec(v,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,len);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n}));\n\n(taoensso.encore.get_subvector.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr_by_idx \x3d (function taoensso$encore$get_substr_by_idx(var_args){\nvar G__34561 \x3d arguments.length;\nswitch (G__34561) {\ncase 2:\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3(s,start,null);\n}));\n\n(taoensso.encore.get_substr_by_idx.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,end){\nvar len \x3d cljs.core.count(s);\nvar start__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})());\nvar end__$1 \x3d cljs.core.long$((function (){var or__5025__auto__ \x3d end;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn len;\n}\n})());\nvar start__$2 \x3d (((start__$1 \x3c (0)))?(start__$1 + len):start__$1);\nvar end__$2 \x3d (((end__$1 \x3c (0)))?(end__$1 + len):end__$1);\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-idx\x22,\x22by-idx\x22,-1997587605),start__$2,end__$2);\n}));\n\n(taoensso.encore.get_substr_by_idx.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr_by_len \x3d (function taoensso$encore$get_substr_by_len(var_args){\nvar G__34563 \x3d arguments.length;\nswitch (G__34563) {\ncase 2:\nreturn taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})(),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\n}));\n\n(taoensso.encore.get_substr_by_len.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,len){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),(function (){var or__5025__auto__ \x3d start;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (0);\n}\n})(),(function (){var or__5025__auto__ \x3d len;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548);\n}\n})());\n}));\n\n(taoensso.encore.get_substr_by_len.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substr \x3d (function taoensso$encore$get_substr(var_args){\nvar G__34565 \x3d arguments.length;\nswitch (G__34565) {\ncase 2:\nreturn taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nvar or__5025__auto__ \x3d taoensso.encore.substr(s,start);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.get_substr.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,end){\nvar or__5025__auto__ \x3d taoensso.encore.substr(s,start,end);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22\x22;\n}\n}));\n\n(taoensso.encore.get_substr.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore.get_substring \x3d (function taoensso$encore$get_substring(var_args){\nvar G__34567 \x3d arguments.length;\nswitch (G__34567) {\ncase 2:\nreturn taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\n}));\n\n(taoensso.encore.get_substring.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,len){\nreturn taoensso.encore.substr(s,new cljs.core.Keyword(null,\x22by-len\x22,\x22by-len\x22,587837753),start,len);\n}));\n\n(taoensso.encore.get_substring.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore._QMARK_subvec_LT_idx \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.not_empty,taoensso.encore.get_subvec);\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore._QMARK_subvec_LT_len \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.not_empty,taoensso.encore.get_subvector);\n\n/**\n * Prefer `subvec`.\n */\ntaoensso.encore.subvec_STAR_ \x3d taoensso.encore.get_subvector;\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore._QMARK_substr_LT_idx \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_nempty_str,taoensso.encore.get_substr);\n\n/**\n * Prefer `substr`.\n */\ntaoensso.encore._QMARK_substr_LT_len \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.encore.as__QMARK_nempty_str,taoensso.encore.get_substring);\n\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.encore.ex_root \x3d taoensso.truss.ex_root;\n\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.encore.ex_type \x3d taoensso.truss.ex_type;\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.encore.ex_map_STAR_ \x3d taoensso.truss.ex_map_STAR_;\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.encore.ex_map \x3d taoensso.truss.ex_map;\n\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.encore.ex_chain \x3d taoensso.truss.ex_chain;\n\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.encore.matching_error \x3d taoensso.truss.matching_error;\n\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.encore.catching_rf \x3d taoensso.truss.catching_rf;\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.encore.catching_xform \x3d taoensso.truss.catching_xform;\n\n/**\n * Prefer `*ctx*`\n */\ntaoensso.encore.get_truss_data \x3d taoensso.truss.get_data;\n\ntaoensso.encore.ex_message \x3d (function taoensso$encore$ex_message(x){\nif((x instanceof Error)){\nreturn x.message;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.ex_data \x3d (function taoensso$encore$ex_data(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn x.data;\n} else {\nreturn null;\n}\n});\n\ntaoensso.encore.ex_cause \x3d (function taoensso$encore$ex_cause(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn x.cause;\n} else {\nreturn null;\n}\n});\n\n/**\n * Returns true if x is not nil, false otherwise.\n */\ntaoensso.encore.some_QMARK_ \x3d cljs.core.some_QMARK_;\n\ntaoensso.encore.is_BANG_ \x3d (function taoensso$encore$is_BANG_(var_args){\nvar G__34573 \x3d arguments.length;\nswitch (G__34573) {\ncase 1:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.some_QMARK_,x,null);\n}));\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,x){\nreturn taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3(pred,x,null);\n}));\n\n(taoensso.encore.is_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pred,x,data){\nif(cljs.core.truth_((function (){try{return (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null,x));\n}catch (e34574){var _ \x3d e34574;\nreturn null;\n}})())){\nreturn x;\n} else {\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [7362,8], null),[\x22[encore/is!] \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(pred),\x22 failed against arg: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0))].join(\x27\x27),taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data),null);\n}\n}));\n\n(taoensso.encore.is_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\ntaoensso.encore.pred \x3d (function taoensso$encore$pred(pred_fn){\nreturn pred_fn;\n});\n\ntaoensso.encore.pred_fn \x3d (function taoensso$encore$pred_fn(x){\nif(cljs.core.fn_QMARK_(x)){\nreturn x;\n} else {\nreturn null;\n}\n});\n"); +SHADOW_ENV.evalLoad("taoensso.encore.stats.js", true, "goog.provide(\x27taoensso.encore.stats\x27);\ngoog.scope(function(){\n taoensso.encore.stats.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.IReduce}\n*/\ntaoensso.encore.stats.SortedLongs \x3d (function (a){\nthis.a \x3d a;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 524306;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SortedLongs.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SortedLongs\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862),self__.a.length], null));\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.a.length;\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (_,idx){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.a[idx]);\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (_,idx,not_found){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar max_idx \x3d (self__.a.length - (1));\nif((idx \x3e max_idx)){\nreturn not_found;\n} else {\nif((idx \x3c max_idx)){\nreturn not_found;\n} else {\nreturn (self__.a[idx]);\n}\n}\n}));\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,f,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,i){\nvar G__34576 \x3d acc;\nvar G__34577 \x3d (self__.a[i]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__34576,G__34577) : f.call(null,G__34576,G__34577));\n}),init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(self__.a.length));\n}));\n\n(taoensso.encore.stats.SortedLongs.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SortedLongs\x22);\n\n(taoensso.encore.stats.SortedLongs.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SortedLongs\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SortedLongs.\n */\ntaoensso.encore.stats.__GT_SortedLongs \x3d (function taoensso$encore$stats$__GT_SortedLongs(a){\nreturn (new taoensso.encore.stats.SortedLongs(a));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.IReduce}\n*/\ntaoensso.encore.stats.SortedDoubles \x3d (function (a){\nthis.a \x3d a;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 524306;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SortedDoubles.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SortedDoubles\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862),self__.a.length], null));\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.a.length;\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (_,idx){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.a[idx]);\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (_,idx,not_found){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar max_idx \x3d (self__.a.length - (1));\nif((idx \x3e max_idx)){\nreturn not_found;\n} else {\nif((idx \x3c max_idx)){\nreturn not_found;\n} else {\nreturn (self__.a[idx]);\n}\n}\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,f,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,i){\nvar G__34578 \x3d acc;\nvar G__34579 \x3d (self__.a[i]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__34578,G__34579) : f.call(null,G__34578,G__34579));\n}),init,cljs.core.range.cljs$core$IFn$_invoke$arity$1(self__.a.length));\n}));\n\n(taoensso.encore.stats.SortedDoubles.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SortedDoubles\x22);\n\n(taoensso.encore.stats.SortedDoubles.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SortedDoubles\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SortedDoubles.\n */\ntaoensso.encore.stats.__GT_SortedDoubles \x3d (function taoensso$encore$stats$__GT_SortedDoubles(a){\nreturn (new taoensso.encore.stats.SortedDoubles(a));\n});\n\ntaoensso.encore.stats.sorted_longs_QMARK_ \x3d (function taoensso$encore$stats$sorted_longs_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SortedLongs);\n});\ntaoensso.encore.stats.sorted_doubles_QMARK_ \x3d (function taoensso$encore$stats$sorted_doubles_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SortedDoubles);\n});\ntaoensso.encore.stats.sorted_nums_QMARK_ \x3d (function taoensso$encore$stats$sorted_nums_QMARK_(x){\nreturn ((taoensso.encore.stats.sorted_longs_QMARK_(x)) || (taoensso.encore.stats.sorted_doubles_QMARK_(x)));\n});\n/**\n * Returns `SortedLongs` given `SortedLongs`, `SortedDoubles`, or num seq.\n */\ntaoensso.encore.stats.sorted_longs \x3d (function taoensso$encore$stats$sorted_longs(var_args){\nvar G__34581 \x3d arguments.length;\nswitch (G__34581) {\ncase 1:\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn (new taoensso.encore.stats.SortedLongs(cljs.core.long_array.cljs$core$IFn$_invoke$arity$1(nums.a)));\n} else {\nvar a \x3d ((cljs.core.array_QMARK_(nums))?(cljs.core.truth_(allow_mutation_QMARK_)?nums:cljs.core.aclone(nums)):cljs.core.to_array(nums));\ntaoensso.encore.stats.goog$module$goog$array.sort(a);\n\nreturn (new taoensso.encore.stats.SortedLongs(a));\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_longs.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns `SortedDoubles` given `SortedDoubles`, `SortedLongs`, or num seq.\n */\ntaoensso.encore.stats.sorted_doubles \x3d (function taoensso$encore$stats$sorted_doubles(var_args){\nvar G__34583 \x3d arguments.length;\nswitch (G__34583) {\ncase 1:\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn (new taoensso.encore.stats.SortedDoubles(cljs.core.double_array.cljs$core$IFn$_invoke$arity$1(nums.a)));\n} else {\nvar a \x3d ((cljs.core.array_QMARK_(nums))?(cljs.core.truth_(allow_mutation_QMARK_)?nums:cljs.core.aclone(nums)):cljs.core.to_array(nums));\ntaoensso.encore.stats.goog$module$goog$array.sort(a);\n\nreturn (new taoensso.encore.stats.SortedDoubles(a));\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_doubles.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.stats.fast_first \x3d (function taoensso$encore$stats$fast_first(x){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$3(x,(0),null);\n});\n/**\n * Returns `SortedLongs` or `SortedDoubles`,\n * given `SortedLongs`, `SortedDoubles`, or num seq.\n */\ntaoensso.encore.stats.sorted_nums \x3d (function taoensso$encore$stats$sorted_nums(var_args){\nvar G__34585 \x3d arguments.length;\nswitch (G__34585) {\ncase 1:\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1 \x3d (function (nums){\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2(false,nums);\n}));\n\n(taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2 \x3d (function (allow_mutation_QMARK_,nums){\nnew cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [nums], null);\n\nif(taoensso.encore.stats.sorted_longs_QMARK_(nums)){\nreturn nums;\n} else {\nif(taoensso.encore.stats.sorted_doubles_QMARK_(nums)){\nreturn nums;\n} else {\nif(cljs.core.truth_((function (){var temp__5825__auto__ \x3d taoensso.encore.stats.fast_first(nums);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar n1 \x3d temp__5825__auto__;\nreturn taoensso.encore.float_QMARK_(n1);\n} else {\nreturn null;\n}\n})())){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(allow_mutation_QMARK_,nums);\n} else {\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(allow_mutation_QMARK_,nums);\n}\n}\n}\n}));\n\n(taoensso.encore.stats.sorted_nums.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns interpolated nth numerical value.\n */\ntaoensso.encore.stats.weighted_nth \x3d (function taoensso$encore$stats$weighted_nth(idx,nums){\nvar idx__$1 \x3d idx;\nvar idx_floor \x3d Math.floor(idx__$1);\nvar idx_ceil \x3d Math.ceil(idx__$1);\nif((idx_ceil \x3d\x3d\x3d idx_floor)){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx__$1 | (0)));\n} else {\nvar weight_floor \x3d (idx_ceil - idx__$1);\nvar weight_ceil \x3d ((1) - weight_floor);\nreturn ((weight_floor * cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx_floor | (0)))) + (weight_ceil * cljs.core.nth.cljs$core$IFn$_invoke$arity$2(nums,(idx_ceil | (0)))));\n}\n});\n/**\n * Returns ?element.\n */\ntaoensso.encore.stats.percentile \x3d (function taoensso$encore$stats$percentile(pnum,nums){\nvar snums \x3d taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1(nums);\nvar max_idx \x3d (cljs.core.count(snums) - (1));\nif((max_idx \x3e\x3d (0))){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * taoensso.encore.as_pnum_BANG_(pnum))));\n} else {\nreturn null;\n}\n});\n/**\n * Returns ?[min p25 p50 p75 p90 p95 p99 max] elements in:\n * - O(1) for Sorted types (SortedLongs, SortedDoubles),\n * - O(n.log_n) otherwise.\n */\ntaoensso.encore.stats.percentiles \x3d (function taoensso$encore$stats$percentiles(nums){\nvar snums \x3d taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$1(nums);\nvar max_idx \x3d (cljs.core.count(snums) - (1));\nif((max_idx \x3e\x3d (0))){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,(0)),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.25))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.5))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.75))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.9))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.95))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,Math.round((max_idx * 0.99))),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,max_idx)], null);\n} else {\nreturn null;\n}\n});\ntaoensso.encore.stats.bessel_correction \x3d (function taoensso$encore$stats$bessel_correction(n,add){\nreturn (n + add);\n});\ntaoensso.encore.stats.rf_sum \x3d (function taoensso$encore$stats$rf_sum(acc,in$){\nreturn (acc + in$);\n});\ntaoensso.encore.stats.rf_sum_variance \x3d (function taoensso$encore$stats$rf_sum_variance(xbar,acc,x){\nreturn (acc + Math.pow((x - xbar),2.0));\n});\ntaoensso.encore.stats.rf_sum_abs_deviation \x3d (function taoensso$encore$stats$rf_sum_abs_deviation(central_point,acc,x){\nreturn (acc + Math.abs((x - central_point)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.stats.SummaryStats \x3d (function (xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum){\nthis.xfloats_QMARK_ \x3d xfloats_QMARK_;\nthis.nx \x3d nx;\nthis.xsum \x3d xsum;\nthis.xmin \x3d xmin;\nthis.xmax \x3d xmax;\nthis.xlast \x3d xlast;\nthis.p25 \x3d p25;\nthis.p50 \x3d p50;\nthis.p75 \x3d p75;\nthis.p90 \x3d p90;\nthis.p95 \x3d p95;\nthis.p99 \x3d p99;\nthis.xvar_sum \x3d xvar_sum;\nthis.xmad_sum \x3d xmad_sum;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SummaryStats.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SummaryStats\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),self__.nx], null));\n}));\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (taoensso.encore.stats.deref_sstats.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.stats.deref_sstats.cljs$core$IFn$_invoke$arity$1(this$__$1) : taoensso.encore.stats.deref_sstats.call(null,this$__$1));\n}));\n\n(taoensso.encore.stats.SummaryStats.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 14, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22xfloats?\x22,\x22xfloats?\x22,-1045666612,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22nx\x22,\x22nx\x22,-355904839,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xsum\x22,\x22xsum\x22,-1727262973,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmin\x22,\x22xmin\x22,-666991895,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmax\x22,\x22xmax\x22,-955946008,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xlast\x22,\x22xlast\x22,2044041055,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p25\x22,\x22p25\x22,-746504108,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p50\x22,\x22p50\x22,140405155,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p75\x22,\x22p75\x22,1087889997,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p90\x22,\x22p90\x22,1954450489,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p95\x22,\x22p95\x22,561546053,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22p99\x22,\x22p99\x22,-1061840369,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xvar-sum\x22,\x22xvar-sum\x22,1779238530,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xmad-sum\x22,\x22xmad-sum\x22,-1123105350,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null)], null))], null);\n}));\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SummaryStats\x22);\n\n(taoensso.encore.stats.SummaryStats.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SummaryStats\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SummaryStats.\n */\ntaoensso.encore.stats.__GT_SummaryStats \x3d (function taoensso$encore$stats$__GT_SummaryStats(xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum){\nreturn (new taoensso.encore.stats.SummaryStats(xfloats_QMARK_,nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum));\n});\n\ntaoensso.encore.stats.deref_sstats \x3d (function taoensso$encore$stats$deref_sstats(ss){\nvar fin \x3d (cljs.core.truth_(ss.xfloats_QMARK_)?cljs.core.double$:(function (p1__34591_SHARP_){\nreturn Math.round(p1__34591_SHARP_);\n}));\nvar nx \x3d ss.nx;\nif((nx \x3e (0))){\n} else {\nthrow (new Error(\x22Assert failed: (pos? nx)\x22));\n}\n\nreturn cljs.core.with_meta(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),new cljs.core.Keyword(null,\x22mean\x22,\x22mean\x22,-1359234715),new cljs.core.Keyword(null,\x22p75\x22,\x22p75\x22,-552641530),new cljs.core.Keyword(null,\x22mad-sum\x22,\x22mad-sum\x22,-768606937),new cljs.core.Keyword(null,\x22p99\x22,\x22p99\x22,1592595400),new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.Keyword(null,\x22p25\x22,\x22p25\x22,1907931661),new cljs.core.Keyword(null,\x22p90\x22,\x22p90\x22,313918962),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),new cljs.core.Keyword(null,\x22mad\x22,\x22mad\x22,-1963165801),new cljs.core.Keyword(null,\x22last\x22,\x22last\x22,1105735132),new cljs.core.Keyword(null,\x22p50\x22,\x22p50\x22,-1500126372),new cljs.core.Keyword(null,\x22sum\x22,\x22sum\x22,136986814),new cljs.core.Keyword(null,\x22p95\x22,\x22p95\x22,-1078985474),new cljs.core.Keyword(null,\x22var-sum\x22,\x22var-sum\x22,-1026113793)],[(function (){var G__34593 \x3d ss.xmin;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34593) : fin.call(null,G__34593));\n})(),(ss.xsum / nx),(function (){var G__34594 \x3d ss.p75;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34594) : fin.call(null,G__34594));\n})(),ss.xmad_sum,(function (){var G__34595 \x3d ss.p99;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34595) : fin.call(null,G__34595));\n})(),nx,(function (){var G__34596 \x3d ss.p25;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34596) : fin.call(null,G__34596));\n})(),(function (){var G__34597 \x3d ss.p90;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34597) : fin.call(null,G__34597));\n})(),(ss.xvar_sum / nx),(function (){var G__34598 \x3d ss.xmax;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34598) : fin.call(null,G__34598));\n})(),(ss.xmad_sum / nx),(function (){var G__34599 \x3d ss.xlast;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34599) : fin.call(null,G__34599));\n})(),(function (){var G__34600 \x3d ss.p50;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34600) : fin.call(null,G__34600));\n})(),(function (){var G__34601 \x3d ss.xsum;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34601) : fin.call(null,G__34601));\n})(),(function (){var G__34602 \x3d ss.p95;\nreturn (fin.cljs$core$IFn$_invoke$arity$1 ? fin.cljs$core$IFn$_invoke$arity$1(G__34602) : fin.call(null,G__34602));\n})(),ss.xvar_sum]),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155),ss.xfloats_QMARK_], null));\n});\n/**\n * Returns true iff given a `SummaryStats` argument.\n */\ntaoensso.encore.stats.summary_stats_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SummaryStats);\n});\n/**\n * Given a coll of numbers or previously dereffed `SummaryStats` map,\n * returns a new mergeable ?`SummaryStats` with:\n * (deref ss) \x3d\x3e {:keys [n sum min max p25 ... p99 mean var mad]}\n * \n * See also `summary-stats-merge`.\n */\ntaoensso.encore.stats.summary_stats \x3d (function taoensso$encore$stats$summary_stats(var_args){\nvar G__34604 \x3d arguments.length;\nswitch (G__34604) {\ncase 1:\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2(null,x);\n}));\n\n(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$2 \x3d (function (opts,x){\nif(cljs.core.truth_(x)){\nif(taoensso.encore.stats.summary_stats_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.map_QMARK_(x)){\nvar map__34606 \x3d x;\nvar map__34606__$1 \x3d cljs.core.__destructure_map(map__34606);\nvar last \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22last\x22,\x22last\x22,1105735132));\nvar p50 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p50\x22,\x22p50\x22,-1500126372));\nvar sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22sum\x22,\x22sum\x22,136986814));\nvar p95 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p95\x22,\x22p95\x22,-1078985474));\nvar var_sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22var-sum\x22,\x22var-sum\x22,-1026113793));\nvar min \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522));\nvar p75 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p75\x22,\x22p75\x22,-552641530));\nvar mad_sum \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22mad-sum\x22,\x22mad-sum\x22,-768606937));\nvar p99 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p99\x22,\x22p99\x22,1592595400));\nvar n \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025));\nvar p25 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p25\x22,\x22p25\x22,1907931661));\nvar p90 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22p90\x22,\x22p90\x22,313918962));\nvar max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34606__$1,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\nvar floats_QMARK_ \x3d (function (){var b2__30646__auto__ \x3d cljs.core.find(opts,new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn cljs.core.val(e);\n} else {\nvar b2__30646__auto____$1 \x3d cljs.core.find(cljs.core.meta(x),new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar e \x3d b2__30646__auto____$1;\nreturn cljs.core.val(e);\n} else {\nreturn taoensso.encore.float_QMARK_(sum);\n}\n}\n})();\nreturn (new taoensso.encore.stats.SummaryStats(floats_QMARK_,n,sum,min,max,last,p25,p50,p75,p90,p95,p99,var_sum,mad_sum));\n} else {\nvar snums \x3d (function (){var temp__5823__auto__ \x3d cljs.core.find(opts,new cljs.core.Keyword(null,\x22floats?\x22,\x22floats?\x22,1396567155));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nif(cljs.core.truth_(cljs.core.val(e))){\nreturn taoensso.encore.stats.sorted_doubles.cljs$core$IFn$_invoke$arity$2(true,x);\n} else {\nreturn taoensso.encore.stats.sorted_longs.cljs$core$IFn$_invoke$arity$2(true,x);\n}\n} else {\nreturn taoensso.encore.stats.sorted_nums.cljs$core$IFn$_invoke$arity$2(true,x);\n}\n})();\nvar nx \x3d cljs.core.count(snums);\nif((nx \x3e (0))){\nvar vec__34608 \x3d taoensso.encore.stats.percentiles(snums);\nvar xmin \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(0),null);\nvar p25 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(1),null);\nvar p50 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(2),null);\nvar p75 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(3),null);\nvar p90 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(4),null);\nvar p95 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(5),null);\nvar p99 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(6),null);\nvar xmax \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34608,(7),null);\nvar xsum \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso.encore.stats.rf_sum,0.0,snums);\nvar xbar \x3d (xsum / nx);\nvar xlast \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(snums,(nx - (1)));\nvar vec__34611 \x3d taoensso.encore.reduce_multi.cljs$core$IFn$_invoke$arity$5(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.stats.rf_sum_variance,xbar),0.0,cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.stats.rf_sum_abs_deviation,xbar),0.0,snums);\nvar xvar_sum \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34611,(0),null);\nvar xmad_sum \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34611,(1),null);\nreturn (new taoensso.encore.stats.SummaryStats(taoensso.encore.stats.sorted_doubles_QMARK_(snums),nx,xsum,xmin,xmax,xlast,p25,p50,p75,p90,p95,p99,xvar_sum,xmad_sum));\n} else {\nreturn null;\n}\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.stats.summary_stats.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given one or more ?`SummaryStats`, returns a new ?`SummaryStats` with:\n * (summary-stats-merge\n * (summary-stats nums1)\n * (summary-stats nums2))\n * \n * an approximatation of (summary-stats (merge nums1 nums2))\n * \n * Useful when you want summary stats for a large coll of numbers for which\n * it would be infeasible/expensive to keep all numbers for accurate merging.\n */\ntaoensso.encore.stats.summary_stats_merge \x3d (function taoensso$encore$stats$summary_stats_merge(var_args){\nvar G__34620 \x3d arguments.length;\nswitch (G__34620) {\ncase 1:\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (ss1){\nreturn ss1;\n}));\n\n(taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (ss1,ss2){\nif(cljs.core.truth_(ss1)){\nif(cljs.core.truth_(ss2)){\nvar ss1__$1 \x3d ss1;\nvar ss2__$1 \x3d ss2;\nvar nx1 \x3d ss1__$1.nx;\nvar nx2 \x3d ss2__$1.nx;\nvar _ \x3d (((nx1 \x3e (0)))?null:(function(){throw (new Error(\x22Assert failed: (pos? nx1)\x22))})());\nvar ___$1 \x3d (((nx2 \x3e (0)))?null:(function(){throw (new Error(\x22Assert failed: (pos? nx2)\x22))})());\nvar xfloats1_QMARK_ \x3d ss1__$1.xfloats_QMARK_;\nvar xsum1 \x3d ss1__$1.xsum;\nvar xmin1 \x3d ss1__$1.xmin;\nvar xmax1 \x3d ss1__$1.xmax;\nvar p25_1 \x3d ss1__$1.p25;\nvar p50_1 \x3d ss1__$1.p50;\nvar p75_1 \x3d ss1__$1.p75;\nvar p90_1 \x3d ss1__$1.p90;\nvar p95_1 \x3d ss1__$1.p95;\nvar p99_1 \x3d ss1__$1.p99;\nvar xvar_sum1 \x3d ss1__$1.xvar_sum;\nvar xmad_sum1 \x3d ss1__$1.xmad_sum;\nvar xfloats2_QMARK_ \x3d ss2__$1.xfloats_QMARK_;\nvar xsum2 \x3d ss2__$1.xsum;\nvar xmin2 \x3d ss2__$1.xmin;\nvar xmax2 \x3d ss2__$1.xmax;\nvar xlast2 \x3d ss2__$1.xlast;\nvar p25_2 \x3d ss2__$1.p25;\nvar p50_2 \x3d ss2__$1.p50;\nvar p75_2 \x3d ss2__$1.p75;\nvar p90_2 \x3d ss2__$1.p90;\nvar p95_2 \x3d ss2__$1.p95;\nvar p99_2 \x3d ss2__$1.p99;\nvar xvar_sum2 \x3d ss2__$1.xvar_sum;\nvar xmad_sum2 \x3d ss2__$1.xmad_sum;\nvar xfloats3_QMARK_ \x3d (function (){var or__5025__auto__ \x3d xfloats1_QMARK_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn xfloats2_QMARK_;\n}\n})();\nvar nx3 \x3d (nx1 + nx2);\nvar nx1_ratio \x3d (nx1 / nx3);\nvar nx2_ratio \x3d (nx2 / nx3);\nvar xsum3 \x3d (xsum1 + xsum2);\nvar xmin3 \x3d (((xmin1 \x3c xmin2))?xmin1:xmin2);\nvar xmax3 \x3d (((xmax1 \x3e xmax2))?xmax1:xmax2);\nvar xvar_sum3 \x3d (xvar_sum1 + xvar_sum2);\nvar xmad_sum3 \x3d (xmad_sum1 + xmad_sum2);\nvar p25_3 \x3d ((nx1_ratio * p25_1) + (nx2_ratio * p25_2));\nvar p50_3 \x3d ((nx1_ratio * p50_1) + (nx2_ratio * p50_2));\nvar p75_3 \x3d ((nx1_ratio * p75_1) + (nx2_ratio * p75_2));\nvar p90_3 \x3d ((nx1_ratio * p90_1) + (nx2_ratio * p90_2));\nvar p95_3 \x3d ((nx1_ratio * p95_1) + (nx2_ratio * p95_2));\nvar p99_3 \x3d ((nx1_ratio * p99_1) + (nx2_ratio * p99_2));\nreturn (new taoensso.encore.stats.SummaryStats(xfloats3_QMARK_,nx3,xsum3,xmin3,xmax3,xlast2,p25_3,p50_3,p75_3,p90_3,p95_3,p99_3,xvar_sum3,xmad_sum3));\n} else {\nreturn ss1;\n}\n} else {\nreturn ss2;\n}\n}));\n\n(taoensso.encore.stats.summary_stats_merge.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.stats.buf_new \x3d (function taoensso$encore$stats$buf_new(var_args){\nvar G__34630 \x3d arguments.length;\nswitch (G__34630) {\ncase 0:\nreturn taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn [];\n}));\n\n(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1 \x3d (function (init){\nif(cljs.core.truth_(init)){\nreturn [init];\n} else {\nreturn [];\n}\n}));\n\n(taoensso.encore.stats.buf_new.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.encore.stats.buf_add \x3d (function taoensso$encore$stats$buf_add(buf,x){\nreturn buf.push(x);\n});\ntaoensso.encore.stats.buf_len \x3d (function taoensso$encore$stats$buf_len(buf){\nreturn buf.length;\n});\n\n/**\n * @interface\n */\ntaoensso.encore.stats.ISummaryStatsBuffered \x3d function(){};\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_34737 \x3d (function() {\nvar G__34738 \x3d null;\nvar G__34738__1 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_deref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_deref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-deref\x22,_);\n}\n}\n});\nvar G__34738__2 \x3d (function (_,flush_QMARK_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_deref[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,flush_QMARK_) : m__5374__auto__.call(null,_,flush_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_deref[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,flush_QMARK_) : m__5372__auto__.call(null,_,flush_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-deref\x22,_);\n}\n}\n});\nG__34738 \x3d function(_,flush_QMARK_){\nswitch(arguments.length){\ncase 1:\nreturn G__34738__1.call(this,_);\ncase 2:\nreturn G__34738__2.call(this,_,flush_QMARK_);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__34738.cljs$core$IFn$_invoke$arity$1 \x3d G__34738__1;\nG__34738.cljs$core$IFn$_invoke$arity$2 \x3d G__34738__2;\nreturn G__34738;\n})()\n;\n/**\n * Returns current ?sstats.\n */\ntaoensso.encore.stats.ssb_deref \x3d (function taoensso$encore$stats$ssb_deref(var_args){\nvar G__34636 \x3d arguments.length;\nswitch (G__34636) {\ncase 1:\nreturn taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$1 \x3d (function (_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_34737(_);\n}\n}));\n\n(taoensso.encore.stats.ssb_deref.cljs$core$IFn$_invoke$arity$2 \x3d (function (_,flush_QMARK_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2(_,flush_QMARK_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$dyn_34737(_,flush_QMARK_);\n}\n}));\n\n(taoensso.encore.stats.ssb_deref.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$dyn_34747 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_clear[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_clear[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-clear\x22,_);\n}\n}\n});\n/**\n * Clears all internal state and returns nil.\n */\ntaoensso.encore.stats.ssb_clear \x3d (function taoensso$encore$stats$ssb_clear(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$dyn_34747(_);\n}\n});\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$dyn_34750 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_flush[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_flush[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-flush\x22,_);\n}\n}\n});\n/**\n * Flushes internal buffer and returns newly merged sstats or nil.\n */\ntaoensso.encore.stats.ssb_flush \x3d (function taoensso$encore$stats$ssb_flush(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(_);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$dyn_34750(_);\n}\n});\n\nvar taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$dyn_34757 \x3d (function (_,n){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.stats.ssb_push[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,n) : m__5374__auto__.call(null,_,n));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.stats.ssb_push[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,n) : m__5372__auto__.call(null,_,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISummaryStatsBuffered.ssb-push\x22,_);\n}\n}\n});\n/**\n * Adds given num to internal buffer.\n */\ntaoensso.encore.stats.ssb_push \x3d (function taoensso$encore$stats$ssb_push(_,n){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2(_,n);\n} else {\nreturn taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$dyn_34757(_,n);\n}\n});\n\n/**\n * Clears internal state (incl. stats and buffers, etc.) for given\n * stateful `SummaryStats` instance and returns nil.\n */\ntaoensso.encore.stats.summary_stats_clear_BANG_ \x3d (function taoensso$encore$stats$summary_stats_clear_BANG_(stateful_summary_stats){\nreturn taoensso.encore.stats.ssb_clear(stateful_summary_stats);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {taoensso.encore.stats.ISummaryStatsBuffered}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.stats.SummaryStatsBuffered \x3d (function (sstats_,buf_,buf_size,merge_counter,merge_cb){\nthis.sstats_ \x3d sstats_;\nthis.buf_ \x3d buf_;\nthis.buf_size \x3d buf_size;\nthis.merge_counter \x3d merge_counter;\nthis.merge_cb \x3d merge_cb;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar x \x3d this;\nreturn taoensso.encore.str_impl.cljs$core$IFn$_invoke$arity$3(x,\x22taoensso.encore.stats.SummaryStatsBuffered\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),cljs.core.get.cljs$core$IFn$_invoke$arity$3((self__.sstats_.cljs$core$IFn$_invoke$arity$0 ? self__.sstats_.cljs$core$IFn$_invoke$arity$0() : self__.sstats_.call(null)),new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),(0)),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),taoensso.encore.stats.buf_len((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null))),new cljs.core.Keyword(null,\x22merged\x22,\x22merged\x22,1648712643),(function (){var temp__5823__auto__ \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar mc \x3d temp__5823__auto__;\nreturn cljs.core.deref(mc);\n} else {\nreturn (0);\n}\n})()], null));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1(null);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__34643 \x3d (arguments.length - (1));\nswitch (G__34643) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.apply \x3d (function (self__,args34642){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args34642)));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2(null,n);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2(null,true);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_deref$arity$2 \x3d (function (this$,flush_QMARK_){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d flush_QMARK_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn this$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(null);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (self__.sstats_.cljs$core$IFn$_invoke$arity$0 ? self__.sstats_.cljs$core$IFn$_invoke$arity$0() : self__.sstats_.call(null));\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_clear$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.reset_BANG_(self__.buf_,taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0());\n\ncljs.core.reset_BANG_(self__.sstats_,null);\n\nvar temp__5825__auto___34768 \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5825__auto___34768)){\nvar mc_34769 \x3d temp__5825__auto___34768;\n(mc_34769.cljs$core$IFn$_invoke$arity$2 ? mc_34769.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),(0)) : mc_34769.call(null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),(0)));\n} else {\n}\n\nreturn null;\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar vec__34651 \x3d cljs.core.reset_vals_BANG_(self__.buf_,taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1(null));\nvar drained \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34651,(0),null);\nif((taoensso.encore.stats.buf_len(drained) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nvar t0 \x3d (cljs.core.truth_(self__.merge_cb)?taoensso.encore.now_nano():null);\nvar _ \x3d (function (){var temp__5825__auto__ \x3d self__.merge_counter;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar mc \x3d temp__5825__auto__;\nreturn (mc.cljs$core$IFn$_invoke$arity$0 ? mc.cljs$core$IFn$_invoke$arity$0() : mc.call(null));\n} else {\nreturn null;\n}\n})();\nvar sstats_drained \x3d taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1(drained);\nvar sstats_merged \x3d (function (){var G__34655 \x3d (function (old){\nreturn taoensso.encore.stats.summary_stats_merge.cljs$core$IFn$_invoke$arity$2(old,sstats_drained);\n});\nreturn (self__.sstats_.cljs$core$IFn$_invoke$arity$1 ? self__.sstats_.cljs$core$IFn$_invoke$arity$1(G__34655) : self__.sstats_.call(null,G__34655));\n})();\nif(cljs.core.truth_(self__.merge_cb)){\nvar G__34658_34773 \x3d this$__$1;\nvar G__34659_34774 \x3d (taoensso.encore.now_nano() - t0);\n(self__.merge_cb.cljs$core$IFn$_invoke$arity$2 ? self__.merge_cb.cljs$core$IFn$_invoke$arity$2(G__34658_34773,G__34659_34774) : self__.merge_cb.call(null,G__34658_34773,G__34659_34774));\n} else {\n}\n\nreturn sstats_merged;\n}\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.taoensso$encore$stats$ISummaryStatsBuffered$ssb_push$arity$2 \x3d (function (this$,n){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntaoensso.encore.stats.buf_add((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null)),n);\n\nvar temp__5825__auto___34775 \x3d self__.buf_size;\nif(cljs.core.truth_(temp__5825__auto___34775)){\nvar nmax_34776 \x3d temp__5825__auto___34775;\nif((taoensso.encore.stats.buf_len((self__.buf_.cljs$core$IFn$_invoke$arity$0 ? self__.buf_.cljs$core$IFn$_invoke$arity$0() : self__.buf_.call(null))) \x3e nmax_34776)){\nthis$__$1.taoensso$encore$stats$ISummaryStatsBuffered$ssb_flush$arity$1(null);\n} else {\n}\n} else {\n}\n\nreturn null;\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22sstats_\x22,\x22sstats_\x22,-1678756230,null),new cljs.core.Symbol(null,\x22buf_\x22,\x22buf_\x22,-495739085,null),new cljs.core.Symbol(null,\x22buf-size\x22,\x22buf-size\x22,828478350,null),new cljs.core.Symbol(null,\x22merge-counter\x22,\x22merge-counter\x22,-694937119,null),new cljs.core.Symbol(null,\x22merge-cb\x22,\x22merge-cb\x22,692712502,null)], null);\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$type \x3d true);\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$ctorStr \x3d \x22taoensso.encore.stats/SummaryStatsBuffered\x22);\n\n(taoensso.encore.stats.SummaryStatsBuffered.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.stats/SummaryStatsBuffered\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.stats/SummaryStatsBuffered.\n */\ntaoensso.encore.stats.__GT_SummaryStatsBuffered \x3d (function taoensso$encore$stats$__GT_SummaryStatsBuffered(sstats_,buf_,buf_size,merge_counter,merge_cb){\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(sstats_,buf_,buf_size,merge_counter,merge_cb));\n});\n\n/**\n * Returns a new stateful `SummaryStatsBuffered` with:\n * (ssb \x3cnum\x3e) \x3d\x3e Adds given number to internal buffer.\n * (deref ssb) \x3d\x3e Flushes buffer if necessary, and returns a mergeable\n * `?SummaryStats`. Deref again to get a map of summary\n * stats for all numbers ever added to ssb:\n * {:keys [n sum min max p25 ... p99 mean var mad]}.\n * \n * Useful for summarizing a (possibly infinite) stream of numbers.\n * \n * Options:\n * `:buffer-init` - Initial buffer content, useful for persistent ssb.\n * `:sstats-init` - Initial summary stats, useful for persistent ssb.\n * `:buffer-size`\n * The maximum number of numbers that may be buffered before next\n * (ssb \x3cnum\x3e) call will block to flush buffer and merge with any\n * existing summary stats.\n * \n * Larger buffers mean better performance and more accurate stats,\n * at the cost of more memory use while buffering.\n */\ntaoensso.encore.stats.summary_stats_buffered \x3d (function taoensso$encore$stats$summary_stats_buffered(var_args){\nvar G__34669 \x3d arguments.length;\nswitch (G__34669) {\ncase 0:\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__34673){\nvar map__34674 \x3d p__34673;\nvar map__34674__$1 \x3d cljs.core.__destructure_map(map__34674);\nvar opts \x3d map__34674__$1;\nvar buffer_size \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34674__$1,new cljs.core.Keyword(null,\x22buffer-size\x22,\x22buffer-size\x22,1047120420),100000.0);\nvar buffer_init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34674__$1,new cljs.core.Keyword(null,\x22buffer-init\x22,\x22buffer-init\x22,-1144679333));\nvar sstats_init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34674__$1,new cljs.core.Keyword(null,\x22sstats-init\x22,\x22sstats-init\x22,689628975));\nvar merge_cb \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34674__$1,new cljs.core.Keyword(null,\x22merge-cb\x22,\x22merge-cb\x22,-947819025));\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(taoensso.encore.latom(taoensso.encore.stats.summary_stats.cljs$core$IFn$_invoke$arity$1(sstats_init)),taoensso.encore.latom(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$1(buffer_init)),cljs.core.long$(buffer_size),taoensso.encore.counter.cljs$core$IFn$_invoke$arity$0(),merge_cb));\n}));\n\n(taoensso.encore.stats.summary_stats_buffered.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns fastest possible `SummaryStatsBuffered`.\n */\ntaoensso.encore.stats.summary_stats_buffered_fast \x3d (function taoensso$encore$stats$summary_stats_buffered_fast(buffer_size,merge_cb){\nreturn (new taoensso.encore.stats.SummaryStatsBuffered(taoensso.encore.latom(null),taoensso.encore.latom(taoensso.encore.stats.buf_new.cljs$core$IFn$_invoke$arity$0()),buffer_size,null,merge_cb));\n});\n/**\n * Returns true iff given a `SummaryStatsBuffered` instance.\n */\ntaoensso.encore.stats.summary_stats_buffered_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_buffered_QMARK_(x){\nreturn (x instanceof taoensso.encore.stats.SummaryStatsBuffered);\n});\n/**\n * Returns true iff given a stateful `SummaryStats` instance.\n */\ntaoensso.encore.stats.summary_stats_stateful_QMARK_ \x3d (function taoensso$encore$stats$summary_stats_stateful_QMARK_(x){\nreturn taoensso.encore.stats.summary_stats_buffered_QMARK_(x);\n});\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SortedLongs.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SortedDoubles.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStats.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.encore.stats.SummaryStatsBuffered.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,__w,_){\nvar x__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1)].join(\x27\x27));\n}));\n"); +SHADOW_ENV.evalLoad("taoensso.encore.signals.js", true, "goog.provide(\x27taoensso.encore.signals\x27);\n/**\n * Map of {\x3clevel-keyword\x3e \x3clevel-integer\x3e} aliases.\n */\ntaoensso.encore.signals.level_aliases \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596),new cljs.core.Keyword(null,\x22high++\x22,\x22high++\x22,2122734286),new cljs.core.Keyword(null,\x22low-\x22,\x22low-\x22,1453123823),new cljs.core.Keyword(null,\x22low--\x22,\x22low--\x22,-1484729873),new cljs.core.Keyword(null,\x22high\x22,\x22high\x22,2027297808),new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888),new cljs.core.Keyword(null,\x22high+\x22,\x22high+\x22,1276710996),new cljs.core.Keyword(null,\x22med\x22,\x22med\x22,-1154404524),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22low---\x22,\x22low---\x22,346223190),new cljs.core.Keyword(null,\x22low\x22,\x22low\x22,-1601362409),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22high+++\x22,\x22high+++\x22,2048295289)],[(90),(60),(10),(20),(80),(20),(10),(60),(80),(70),(50),(50),(0),(30),(70),(90)]),null);\nvar expected_35864 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(taoensso.encore.signals.level_aliases)),new cljs.core.Symbol(null,\x22integer\x22,\x22integer\x22,1035809817,null));\n/**\n * Throws an `ex-info` for given invalid level.\n */\ntaoensso.encore.signals.bad_level_BANG_ \x3d (function taoensso$encore$signals$bad_level_BANG_(x){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [39,5], null),[\x22[encore/signals] Invalid level: `\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((x \x3d\x3d null))?\x22nil\x22:x)),\x22`\x22].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),expected_35864], null),null);\n});\ntaoensso.encore.signals._valid_level_int \x3d (function taoensso$encore$signals$_valid_level_int(x){\nif((x instanceof cljs.core.Keyword)){\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.level_aliases,x);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n} else {\nif(cljs.core.integer_QMARK_(x)){\nreturn cljs.core.long$(x);\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n}\n});\ntaoensso.encore.signals._valid_level \x3d (function taoensso$encore$signals$_valid_level(x){\nif((x instanceof cljs.core.Keyword)){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.level_aliases,x))){\nreturn x;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n} else {\nif(cljs.core.integer_QMARK_(x)){\nreturn x;\n} else {\nreturn taoensso.encore.signals.bad_level_BANG_(x);\n}\n}\n});\nvar nf_compile_35865 \x3d (function (nf_spec){\nreturn taoensso.encore.name_filter((function (){var or__5025__auto__ \x3d nf_spec;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423);\n}\n})());\n});\nvar nf_match_QMARK__35866 \x3d (function (nf_spec,n){\nreturn nf_compile_35865(nf_spec)(n);\n});\nvar nf__GT_min_level_35867 \x3d (function (ml_spec,nf_arg){\nif(cljs.core.vector_QMARK_(ml_spec)){\nreturn taoensso.encore.rsome.cljs$core$IFn$_invoke$arity$2((function (p__35765){\nvar vec__35766 \x3d p__35765;\nvar nf_spec \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35766,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35766,(1),null);\nif(cljs.core.truth_(nf_match_QMARK__35866(nf_spec,nf_arg))){\nreturn min_level;\n} else {\nreturn null;\n}\n}),ml_spec);\n} else {\nreturn ml_spec;\n}\n});\n/**\n * Returns valid `encore/name-filter` spec, or throws.\n */\ntaoensso.encore.signals.valid_nf_spec \x3d (function taoensso$encore$signals$valid_nf_spec(x){\nvar temp__5823__auto__ \x3d (function (){try{nf_compile_35865(x);\n\nreturn null;\n}catch (e35769){var t \x3d e35769;\nreturn t;\n}})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar t \x3d temp__5823__auto__;\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [97,7], null),((cljs.core.fn_QMARK_(x))?\x22[encore/signals] Invalid name filter (fn filters no longer supported)\x22:\x22[encore/signals] Invalid name filter\x22),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name-filter\x22,\x22name-filter\x22,-205720878),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),x,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(x)], null)], null),t);\n} else {\nreturn x;\n}\n});\n\n/**\n * Low-level name filter.\n */\ntaoensso.encore.signals.allow_name_QMARK_ \x3d (function taoensso$encore$signals$allow_name_QMARK_(nf_spec,nf_arg){\nif(nf_match_QMARK__35866(nf_spec,nf_arg)){\nreturn true;\n} else {\nreturn false;\n}\n});\n\n/**\n * Returns simple unvalidated ?min-level from {\x3ckind\x3e [[\x3cnf-spec\x3e \x3cmin-level\x3e] ...]}, etc.\n */\ntaoensso.encore.signals.parse_min_level \x3d (function taoensso$encore$signals$parse_min_level(ml_spec,kind,nf_arg){\nif(cljs.core.map_QMARK_(ml_spec)){\nvar or__5025__auto__ \x3d (cljs.core.truth_(kind)?(function (){var temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ml_spec,kind);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ml_spec_STAR_ \x3d temp__5825__auto__;\nreturn nf__GT_min_level_35867(ml_spec_STAR_,nf_arg);\n} else {\nreturn null;\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ml_spec,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ml_spec_STAR_ \x3d temp__5825__auto__;\nreturn nf__GT_min_level_35867(ml_spec_STAR_,nf_arg);\n} else {\nreturn null;\n}\n}\n} else {\nreturn nf__GT_min_level_35867(ml_spec,nf_arg);\n}\n});\n\nvar parse_min_level_35868 \x3d taoensso.encore.signals.parse_min_level;\n/**\n * Low-level level filter.\n */\ntaoensso.encore.signals.allow_level_QMARK_ \x3d (function taoensso$encore$signals$allow_level_QMARK_(var_args){\nvar G__35771 \x3d arguments.length;\nswitch (G__35771) {\ncase 2:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (min_level,level){\nif((taoensso.encore.signals._valid_level_int(level) \x3e\x3d taoensso.encore.signals._valid_level_int(min_level))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (ml_spec,nf_arg,level){\nvar min_level \x3d nf__GT_min_level_35867(ml_spec,nf_arg);\nif((taoensso.encore.signals._valid_level_int(level) \x3e\x3d taoensso.encore.signals._valid_level_int(min_level))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d (function (ml_spec,kind,nf_arg,level){\nif(cljs.core.truth_(ml_spec)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$2((parse_min_level_35868.cljs$core$IFn$_invoke$arity$3 ? parse_min_level_35868.cljs$core$IFn$_invoke$arity$3(ml_spec,kind,nf_arg) : parse_min_level_35868.call(null,ml_spec,kind,nf_arg)),level);\n} else {\nreturn true;\n}\n}));\n\n(taoensso.encore.signals.allow_level_QMARK_.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns valid min level, or throws.\n */\ntaoensso.encore.signals.valid_min_level \x3d (function taoensso$encore$signals$valid_min_level(x){\nif(cljs.core.vector_QMARK_(x)){\ntaoensso.encore.run_BANG_((function (p__35772){\nvar vec__35773 \x3d p__35772;\nvar nf_spec \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35773,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35773,(1),null);\ntaoensso.encore.signals.valid_nf_spec(nf_spec);\n\nreturn taoensso.encore.signals._valid_level(min_level);\n}),x);\n\nreturn x;\n} else {\nreturn taoensso.encore.signals._valid_level(x);\n}\n});\n/**\n * Low-level util to update given min level.\n */\ntaoensso.encore.signals.update_min_level \x3d (function taoensso$encore$signals$update_min_level(old,kind,nf_spec,new$){\nvar b2__30646__auto__ \x3d ((cljs.core.map_QMARK_(old))?old:null);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar old_map \x3d b2__30646__auto__;\nvar kind__$1 \x3d (function (){var or__5025__auto__ \x3d kind;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328);\n}\n})();\nvar old_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_map,kind__$1);\nvar new_val \x3d (taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4(old_val,null,nf_spec,new$) : taoensso.encore.signals.update_min_level.call(null,old_val,null,nf_spec,new$));\nvar new_map \x3d (((new_val \x3d\x3d null))?cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(old_map,kind__$1)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old_map,kind__$1,new_val));\nvar temp__5823__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new_map),(1)))?cljs.core.get.cljs$core$IFn$_invoke$arity$2(new_map,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)):null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar simplified \x3d temp__5823__auto__;\nreturn simplified;\n} else {\nreturn new_map;\n}\n} else {\nif(cljs.core.truth_(kind)){\nvar old_map \x3d (cljs.core.truth_(old)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),old], null):cljs.core.PersistentArrayMap.EMPTY);\nreturn (taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.update_min_level.cljs$core$IFn$_invoke$arity$4(old_map,kind,nf_spec,new$) : taoensso.encore.signals.update_min_level.call(null,old_map,kind,nf_spec,new$));\n} else {\nif((nf_spec \x3d\x3d null)){\nif(cljs.core.truth_(new$)){\nreturn taoensso.encore.signals.valid_min_level(new$);\n} else {\nreturn null;\n}\n} else {\nvar new$__$1 \x3d (cljs.core.truth_(new$)?taoensso.encore.signals._valid_level(new$):null);\nvar nf_spec__$1 \x3d taoensso.encore.signals.valid_nf_spec((((nf_spec instanceof cljs.core.Namespace))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(nf_spec):nf_spec));\nvar old_vec \x3d ((cljs.core.vector_QMARK_(old))?old:(cljs.core.truth_(old)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22*\x22,taoensso.encore.signals._valid_level(old)], null)], null):cljs.core.PersistentVector.EMPTY));\nvar new_vec \x3d cljs.core.not_empty((function (){var exact_match_QMARK_ \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashSet.createAsIfByAssoc([nf_spec__$1])], 0)),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([nf_spec__$1], 0))]);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__35776){\nvar vec__35777 \x3d p__35776;\nvar nf_spec_STAR_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35777,(0),null);\nvar _min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35777,(1),null);\nvar entry \x3d vec__35777;\nif(cljs.core.truth_((function (){var G__35780 \x3d cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([nf_spec_STAR_], 0));\nreturn (exact_match_QMARK_.cljs$core$IFn$_invoke$arity$1 ? exact_match_QMARK_.cljs$core$IFn$_invoke$arity$1(G__35780) : exact_match_QMARK_.call(null,G__35780));\n})())){\nreturn acc;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,entry);\n}\n}),(cljs.core.truth_(new$__$1)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nf_spec__$1,new$__$1], null)], null):cljs.core.PersistentVector.EMPTY),old_vec);\n})());\nvar temp__5823__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new_vec),(1)))?(function (){var vec__35781 \x3d new_vec;\nvar vec__35784 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35781,(0),null);\nvar nf_spec__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35784,(0),null);\nvar min_level \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35784,(1),null);\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22*\x22,null,new cljs.core.Keyword(null,\x22any\x22,\x22any\x22,1705907423),null], null), null),nf_spec__$2)){\nreturn min_level;\n} else {\nreturn null;\n}\n})():null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar simplified \x3d temp__5823__auto__;\nreturn simplified;\n} else {\nreturn new_vec;\n}\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IDeref}\n*/\ntaoensso.encore.signals.SpecFilter \x3d (function (kind_filter,ns_filter,id_filter,min_level,filter_fn){\nthis.kind_filter \x3d kind_filter;\nthis.ns_filter \x3d ns_filter;\nthis.id_filter \x3d id_filter;\nthis.min_level \x3d min_level;\nthis.filter_fn \x3d filter_fn;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32769;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),self__.kind_filter,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),self__.ns_filter,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),self__.id_filter,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919),self__.min_level], null));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__35788 \x3d (arguments.length - (1));\nswitch (G__35788) {\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.apply \x3d (function (self__,args35787){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args35787)));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (kind,ns,id,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$4 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$4(kind,ns,id,level) : self__.filter_fn.call(null,kind,ns,id,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (ns,id,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$3 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$3(ns,id,level) : self__.filter_fn.call(null,ns,id,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,level){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$2 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$2(ns,level) : self__.filter_fn.call(null,ns,level));\n}));\n\n(taoensso.encore.signals.SpecFilter.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (ct_map){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.filter_fn.cljs$core$IFn$_invoke$arity$1 ? self__.filter_fn.cljs$core$IFn$_invoke$arity$1(ct_map) : self__.filter_fn.call(null,ct_map));\n}));\n\n(taoensso.encore.signals.SpecFilter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22kind-filter\x22,\x22kind-filter\x22,-623624854,null),new cljs.core.Symbol(null,\x22ns-filter\x22,\x22ns-filter\x22,1749129975,null),new cljs.core.Symbol(null,\x22id-filter\x22,\x22id-filter\x22,1068250250,null),new cljs.core.Symbol(null,\x22min-level\x22,\x22min-level\x22,-1019750850,null),new cljs.core.Symbol(null,\x22filter-fn\x22,\x22filter-fn\x22,-964960094,null)], null);\n}));\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$type \x3d true);\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$ctorStr \x3d \x22taoensso.encore.signals/SpecFilter\x22);\n\n(taoensso.encore.signals.SpecFilter.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.encore.signals/SpecFilter\x22);\n}));\n\n/**\n * Positional factory function for taoensso.encore.signals/SpecFilter.\n */\ntaoensso.encore.signals.__GT_SpecFilter \x3d (function taoensso$encore$signals$__GT_SpecFilter(kind_filter,ns_filter,id_filter,min_level,filter_fn){\nreturn (new taoensso.encore.signals.SpecFilter(kind_filter,ns_filter,id_filter,min_level,filter_fn));\n});\n\n/**\n * Returns true iff given a `SpecFilter`.\n */\ntaoensso.encore.signals.spec_filter_QMARK_ \x3d (function taoensso$encore$signals$spec_filter_QMARK_(x){\nreturn (x instanceof taoensso.encore.signals.SpecFilter);\n});\n/**\n * Returns nil, or a stateful (caching) `SpecFilter` with the given specs.\n */\ntaoensso.encore.signals.spec_filter \x3d (function (){var get_cached \x3d taoensso.encore.fmemoize((function taoensso$encore$signals$spec_filter(kind_filter,ns_filter,id_filter,min_level){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d kind_filter;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ns_filter;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d id_filter;\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn min_level;\n}\n}\n}\n})())){\nif(cljs.core.truth_(kind_filter)){\ntaoensso.encore.signals.valid_nf_spec(kind_filter);\n} else {\n}\n\nif(cljs.core.truth_(ns_filter)){\ntaoensso.encore.signals.valid_nf_spec(ns_filter);\n} else {\n}\n\nif(cljs.core.truth_(id_filter)){\ntaoensso.encore.signals.valid_nf_spec(id_filter);\n} else {\n}\n\nif(cljs.core.truth_(min_level)){\nif(cljs.core.map_QMARK_(min_level)){\ntaoensso.encore.run_kv_BANG_((function (kind,min_level__$1){\nreturn taoensso.encore.signals.valid_min_level(min_level__$1);\n}),min_level);\n} else {\ntaoensso.encore.signals.valid_min_level(min_level);\n}\n} else {\n}\n\nreturn (new taoensso.encore.signals.SpecFilter(kind_filter,ns_filter,id_filter,min_level,taoensso.encore.fmemoize((function() {\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK_ \x3d null;\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1 \x3d (function (p__35789){\nvar map__35790 \x3d p__35789;\nvar map__35790__$1 \x3d cljs.core.__destructure_map(map__35790);\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35790__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35790__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35790__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35790__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar and__5023__auto__ \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d kind_filter;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn kind;\n} else {\nreturn and__5023__auto__;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(kind_filter,kind):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_((function (){var and__5023__auto____$1 \x3d ns_filter;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ns;\n} else {\nreturn and__5023__auto____$1;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nvar and__5023__auto____$2 \x3d (cljs.core.truth_((function (){var and__5023__auto____$2 \x3d id_filter;\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn id;\n} else {\nreturn and__5023__auto____$2;\n}\n})())?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$2)){\nif(cljs.core.truth_((function (){var and__5023__auto____$3 \x3d min_level;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn level;\n} else {\nreturn and__5023__auto____$3;\n}\n})())){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4(min_level,kind,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2 \x3d (function (ns,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto__)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3(min_level,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3 \x3d (function (ns,id,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_(id_filter)?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$3(min_level,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nvar taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4 \x3d (function (kind,ns,id,level){\nvar and__5023__auto__ \x3d (cljs.core.truth_(kind_filter)?taoensso.encore.signals.allow_name_QMARK_(kind_filter,kind):true);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d (cljs.core.truth_(ns_filter)?taoensso.encore.signals.allow_name_QMARK_(ns_filter,ns):true);\nif(cljs.core.truth_(and__5023__auto____$1)){\nvar and__5023__auto____$2 \x3d (cljs.core.truth_(id_filter)?taoensso.encore.signals.allow_name_QMARK_(id_filter,id):true);\nif(cljs.core.truth_(and__5023__auto____$2)){\nif(cljs.core.truth_(min_level)){\nreturn taoensso.encore.signals.allow_level_QMARK_.cljs$core$IFn$_invoke$arity$4(min_level,kind,ns,level);\n} else {\nreturn true;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_ \x3d function(kind,ns,id,level){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1.call(this,kind);\ncase 2:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2.call(this,kind,ns);\ncase 3:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3.call(this,kind,ns,id);\ncase 4:\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4.call(this,kind,ns,id,level);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___1;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___2;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___3;\ntaoensso$encore$signals$spec_filter_$_allow_spec_QMARK_.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$signals$spec_filter_$_allow_spec_QMARK___4;\nreturn taoensso$encore$signals$spec_filter_$_allow_spec_QMARK_;\n})()\n)));\n} else {\nreturn null;\n}\n}));\nreturn (function() {\nvar taoensso$encore$signals$spec_filter \x3d null;\nvar taoensso$encore$signals$spec_filter__1 \x3d (function (p__35791){\nvar map__35792 \x3d p__35791;\nvar map__35792__$1 \x3d cljs.core.__destructure_map(map__35792);\nvar kind_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\nvar ns_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\nvar id_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\nvar min_level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nvar as \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641));\nvar specs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35792__$1,new cljs.core.Keyword(null,\x22specs\x22,\x22specs\x22,1426570741));\nreturn get_cached(kind_filter,ns_filter,id_filter,min_level);\n});\nvar taoensso$encore$signals$spec_filter__4 \x3d (function (kind_filter,ns_filter,id_filter,min_level){\nreturn get_cached(kind_filter,ns_filter,id_filter,min_level);\n});\ntaoensso$encore$signals$spec_filter \x3d function(kind_filter,ns_filter,id_filter,min_level){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$encore$signals$spec_filter__1.call(this,kind_filter);\ncase 4:\nreturn taoensso$encore$signals$spec_filter__4.call(this,kind_filter,ns_filter,id_filter,min_level);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$spec_filter.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$spec_filter__1;\ntaoensso$encore$signals$spec_filter.cljs$core$IFn$_invoke$arity$4 \x3d taoensso$encore$signals$spec_filter__4;\nreturn taoensso$encore$signals$spec_filter;\n})()\n})();\nvar nil_sf_35883 \x3d (new taoensso.encore.signals.SpecFilter(null,null,null,null,null));\n/**\n * Returns nil, or updated stateful (caching) `SpecFilter`.\n */\ntaoensso.encore.signals.update_spec_filter \x3d (function taoensso$encore$signals$update_spec_filter(old,specs){\nvar base \x3d (function (){var or__5025__auto__ \x3d old;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn nil_sf_35883;\n}\n})();\nif(cljs.core.empty_QMARK_(specs)){\nreturn old;\n} else {\nreturn taoensso.encore.signals.spec_filter(cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),base.kind_filter),cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),base.ns_filter),cljs.core.get.cljs$core$IFn$_invoke$arity$3(specs,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),base.id_filter),(function (){var old_min_level \x3d base.min_level;\nvar b2__30646__auto__ \x3d cljs.core.find(specs,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar e \x3d b2__30646__auto__;\nreturn taoensso.encore.signals.update_min_level(old_min_level,null,null,cljs.core.val(e));\n} else {\nvar b2__30646__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(specs,new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803));\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar f \x3d b2__30646__auto____$1;\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(old_min_level) : f.call(null,old_min_level));\n} else {\nreturn old_min_level;\n}\n}\n})());\n}\n});\nvar limiters_basic__35886 \x3d taoensso.encore.latom(cljs.core.PersistentArrayMap.EMPTY);\nvar limiters_full__35887 \x3d taoensso.encore.latom(cljs.core.PersistentArrayMap.EMPTY);\n/**\n * Calls the identified stateful rate-limiter and returns true iff limited.\n */\ntaoensso.encore.signals.call_limited_BANG__QMARK_ \x3d (function taoensso$encore$signals$call_limited_BANG__QMARK_(var_args){\nvar G__35796 \x3d arguments.length;\nswitch (G__35796) {\ncase 2:\nreturn taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (cs_id,spec){\nvar rl \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2((limiters_basic__35886.cljs$core$IFn$_invoke$arity$0 ? limiters_basic__35886.cljs$core$IFn$_invoke$arity$0() : limiters_basic__35886.call(null)),cs_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar G__35797 \x3d cs_id;\nvar G__35798 \x3d (function (p1__35793_SHARP_){\nvar or__5025__auto____$1 \x3d p1__35793_SHARP_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),true], null),spec);\n}\n});\nreturn (limiters_basic__35886.cljs$core$IFn$_invoke$arity$2 ? limiters_basic__35886.cljs$core$IFn$_invoke$arity$2(G__35797,G__35798) : limiters_basic__35886.call(null,G__35797,G__35798));\n}\n})();\nif(cljs.core.truth_((rl.cljs$core$IFn$_invoke$arity$0 ? rl.cljs$core$IFn$_invoke$arity$0() : rl.call(null)))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (cs_id,spec,req_id){\nvar rl \x3d (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2((limiters_full__35887.cljs$core$IFn$_invoke$arity$0 ? limiters_full__35887.cljs$core$IFn$_invoke$arity$0() : limiters_full__35887.call(null)),cs_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar G__35799 \x3d cs_id;\nvar G__35800 \x3d (function (p1__35794_SHARP_){\nvar or__5025__auto____$1 \x3d p1__35794_SHARP_;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),false], null),spec);\n}\n});\nreturn (limiters_full__35887.cljs$core$IFn$_invoke$arity$2 ? limiters_full__35887.cljs$core$IFn$_invoke$arity$2(G__35799,G__35800) : limiters_full__35887.call(null,G__35799,G__35800));\n}\n})();\nif(cljs.core.truth_((rl.cljs$core$IFn$_invoke$arity$1 ? rl.cljs$core$IFn$_invoke$arity$1(req_id) : rl.call(null,req_id)))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(taoensso.encore.signals.call_limited_BANG__QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Protocol that app/library signal types must implement to support signal handling.\n * @interface\n */\ntaoensso.encore.signals.ISignalHandling \x3d function(){};\n\nvar taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$dyn_35897 \x3d (function (_,spec_filter){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.allow_signal_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,spec_filter) : m__5374__auto__.call(null,_,spec_filter));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.allow_signal_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,spec_filter) : m__5372__auto__.call(null,_,spec_filter));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.allow-signal?\x22,_);\n}\n}\n});\n/**\n * Returns true iff given signal is allowed by given `SpecFilter`.\n */\ntaoensso.encore.signals.allow_signal_QMARK_ \x3d (function taoensso$encore$signals$allow_signal_QMARK_(_,spec_filter){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2(_,spec_filter);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$dyn_35897(_,spec_filter);\n}\n});\n\nvar taoensso$encore$signals$ISignalHandling$signal_value$dyn_35898 \x3d (function (_,handler_sample_rate){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.signal_value[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(_,handler_sample_rate) : m__5374__auto__.call(null,_,handler_sample_rate));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.signal_value[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(_,handler_sample_rate) : m__5372__auto__.call(null,_,handler_sample_rate));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.signal-value\x22,_);\n}\n}\n});\n/**\n * Returns public signal value as given to handlers, etc.\n */\ntaoensso.encore.signals.signal_value \x3d (function taoensso$encore$signals$signal_value(_,handler_sample_rate){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$signal_value$arity$2 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$signal_value$arity$2(_,handler_sample_rate);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$signal_value$dyn_35898(_,handler_sample_rate);\n}\n});\n\nvar taoensso$encore$signals$ISignalHandling$signal_debug$dyn_35899 \x3d (function (_){\nvar x__5373__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5374__auto__ \x3d (taoensso.encore.signals.signal_debug[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5374__auto__.call(null,_));\n} else {\nvar m__5372__auto__ \x3d (taoensso.encore.signals.signal_debug[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5372__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISignalHandling.signal-debug\x22,_);\n}\n}\n});\n/**\n * Returns minimal signal representation for debug purposes.\n */\ntaoensso.encore.signals.signal_debug \x3d (function taoensso$encore$signals$signal_debug(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1 \x3d\x3d null)))))){\nreturn _.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1(_);\n} else {\nreturn taoensso$encore$signals$ISignalHandling$signal_debug$dyn_35899(_);\n}\n});\n\n/**\n * Returns non-empty ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn ...]}}.\n */\ntaoensso.encore.signals.get_handlers_map \x3d (function taoensso$encore$signals$get_handlers_map(var_args){\nvar G__35802 \x3d arguments.length;\nswitch (G__35802) {\ncase 1:\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1 \x3d (function (handlers_vec){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,false);\n}));\n\n(taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2 \x3d (function (handlers_vec,raw_QMARK_){\nif(cljs.core.truth_(handlers_vec)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,wrapped_handler_fn){\nvar whm \x3d cljs.core.meta(wrapped_handler_fn);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,cljs.core.get.cljs$core$IFn$_invoke$arity$2(whm,new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),(cljs.core.truth_(raw_QMARK_)?whm:(function (){var info \x3d cljs.core.select_keys(whm,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),new cljs.core.Keyword(null,\x22handler-fn\x22,\x22handler-fn\x22,-799387730)], null));\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(whm,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar stats_fn \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(info,new cljs.core.Keyword(null,\x22handler-stats_\x22,\x22handler-stats_\x22,-831095881),(new cljs.core.Delay((function (){\nreturn (stats_fn.cljs$core$IFn$_invoke$arity$0 ? stats_fn.cljs$core$IFn$_invoke$arity$0() : stats_fn.call(null));\n}),null)));\n} else {\nreturn info;\n}\n})()));\n}),null,handlers_vec);\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.get_handlers_map.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns non-empty ?{\x3chandler-id\x3e ?{:keys [handling-nsecs counts]}}.\n */\ntaoensso.encore.signals.get_handlers_stats \x3d (function taoensso$encore$signals$get_handlers_stats(handlers_vec){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar handlers_map \x3d temp__5825__auto__;\nreturn cljs.core.reduce_kv((function (m,handler_id,p__35803){\nvar map__35804 \x3d p__35803;\nvar map__35804__$1 \x3d cljs.core.__destructure_map(map__35804);\nvar stats_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35804__$1,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177));\nif(cljs.core.truth_(stats_fn)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,handler_id,(stats_fn.cljs$core$IFn$_invoke$arity$0 ? stats_fn.cljs$core$IFn$_invoke$arity$0() : stats_fn.call(null)));\n} else {\nreturn m;\n}\n}),null,handlers_map);\n} else {\nreturn null;\n}\n});\n/**\n * Calls given handlers with the given signal.\n * Signal\x27s type must implement `ISignalHandling`.\n */\ntaoensso.encore.signals.call_handlers_BANG_ \x3d (function taoensso$encore$signals$call_handlers_BANG_(handlers_vec,signal){\nreturn cljs.core.run_BANG_((function (wrapped_handler_fn){\nreturn (wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1 ? wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1(signal) : wrapped_handler_fn.call(null,signal));\n}),handlers_vec);\n});\n/**\n * Stops handlers in parallel and returns\n * {\x3chandler-id\x3e {:keys [okay error drained?]}}.\n */\ntaoensso.encore.signals.stop_handlers_BANG_ \x3d (function taoensso$encore$signals$stop_handlers_BANG_(handlers_vec){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$2(handlers_vec,new cljs.core.Keyword(null,\x22raw\x22,\x22raw\x22,1604651272));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar handlers_map \x3d temp__5825__auto__;\nvar results \x3d cljs.core.reduce_kv((function (m,handler_id,p__35805){\nvar map__35806 \x3d p__35805;\nvar map__35806__$1 \x3d cljs.core.__destructure_map(map__35806);\nvar wrapped_handler_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35806__$1,new cljs.core.Keyword(null,\x22wrapped-handler-fn\x22,\x22wrapped-handler-fn\x22,-1449520424));\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,handler_id,(wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0 ? wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0() : wrapped_handler_fn.call(null)));\n}),null,handlers_map);\nreturn results;\n} else {\nreturn null;\n}\n});\n/**\n * Returns wrapped-handler-fn with given handler-id, or nil.\n */\ntaoensso.encore.signals.get_wrapped_handler_fn \x3d (function taoensso$encore$signals$get_wrapped_handler_fn(handlers_vec,handler_id){\nreturn taoensso.encore.rfirst.cljs$core$IFn$_invoke$arity$2((function (p1__35807_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(p1__35807_SHARP_),new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),handler_id);\n}),handlers_vec);\n});\n/**\n * Returns updated, non-empty handlers vec.\n */\ntaoensso.encore.signals.remove_handler \x3d (function taoensso$encore$signals$remove_handler(handlers_vec,handler_id){\nreturn cljs.core.not_empty(cljs.core.filterv((function (p1__35808_SHARP_){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(p1__35808_SHARP_),new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333)),handler_id);\n}),handlers_vec));\n});\n\n/**\n * Returns updated, non-empty handlers vec.\n */\ntaoensso.encore.signals.add_handler \x3d (function taoensso$encore$signals$add_handler(var_args){\nvar G__35811 \x3d arguments.length;\nswitch (G__35811) {\ncase 3:\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3 \x3d (function (handlers_vec,handler_id,pre_wrapped_handler_fn){\nif(cljs.core.not(pre_wrapped_handler_fn)){\nreturn handlers_vec;\n} else {\nreturn taoensso.encore.sortv.cljs$core$IFn$_invoke$arity$3((function (p1__35809_SHARP_){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(p1__35809_SHARP_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715)], null),taoensso.encore.signals.default_handler_priority);\n}),taoensso.encore.rcompare,cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d taoensso.encore.signals.remove_handler(handlers_vec,handler_id);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),pre_wrapped_handler_fn));\n}\n}));\n\n(taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5 \x3d (function (handlers_vec,handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts){\nif(cljs.core.not(unwrapped_handler_fn)){\nreturn handlers_vec;\n} else {\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(dispatch_opts,new cljs.core.Keyword(null,\x22no-wrap?\x22,\x22no-wrap?\x22,2080720814)))){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3(handlers_vec,handler_id,unwrapped_handler_fn);\n} else {\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$3(handlers_vec,handler_id,(taoensso.encore.signals.wrap_handler.cljs$core$IFn$_invoke$arity$4 ? taoensso.encore.signals.wrap_handler.cljs$core$IFn$_invoke$arity$4(handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts) : taoensso.encore.signals.wrap_handler.call(null,handler_id,unwrapped_handler_fn,lib_dispatch_opts,dispatch_opts)));\n}\n}\n}));\n\n(taoensso.encore.signals.add_handler.cljs$lang$maxFixedArity \x3d 5);\n\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d null;\n}\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d null;\n}\ntaoensso.encore.signals.default_handler_priority \x3d (100);\n/**\n * Default handler dispatch options, see\n * `help:handler-dispatch-options` for details.\n */\ntaoensso.encore.signals.default_handler_dispatch_opts \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715),taoensso.encore.signals.default_handler_priority,new cljs.core.Keyword(null,\x22track-stats?\x22,\x22track-stats?\x22,-713524039),false], null);\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.encore.signals.comp_xfn \x3d (function taoensso$encore$signals$comp_xfn(var_args){\nvar G__35817 \x3d arguments.length;\nswitch (G__35817) {\ncase 1:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___35910 \x3d arguments.length;\nvar i__5750__auto___35911 \x3d (0);\nwhile(true){\nif((i__5750__auto___35911 \x3c len__5749__auto___35910)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___35911]));\n\nvar G__35912 \x3d (i__5750__auto___35911 + (1));\ni__5750__auto___35911 \x3d G__35912;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((3) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);\n\n}\n});\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1 \x3d (function (fs){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (in$__$1,f){\nif(cljs.core.truth_(f)){\nvar or__5025__auto__ \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(in$__$1) : f.call(null,in$__$1));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.reduced(null);\n}\n} else {\nreturn in$__$1;\n}\n}),in$,fs);\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$2 \x3d (function (f1,f2){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nif(cljs.core.truth_(f1)){\nif(cljs.core.truth_(f2)){\nvar temp__5825__auto__ \x3d (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar in$__$1 \x3d temp__5825__auto__;\nreturn (f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1));\n} else {\nreturn null;\n}\n} else {\nreturn (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$));\n}\n} else {\nif(cljs.core.truth_(f2)){\nreturn (f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$) : f2.call(null,in$));\n} else {\nreturn in$;\n}\n}\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$3 \x3d (function (f1,f2,f3){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nvar b2__30646__auto__ \x3d (cljs.core.truth_(f1)?(f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$)):in$);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar in$__$1 \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d (cljs.core.truth_(f2)?(f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1)):in$__$1);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar in$__$2 \x3d b2__30646__auto____$1;\nif(cljs.core.truth_(f3)){\nreturn (f3.cljs$core$IFn$_invoke$arity$1 ? f3.cljs$core$IFn$_invoke$arity$1(in$__$2) : f3.call(null,in$__$2));\n} else {\nreturn in$__$2;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f1,f2,f3,fs){\nreturn (function taoensso$encore$signals$xfn_comp(in$){\nvar b2__30646__auto__ \x3d (cljs.core.truth_(f1)?(f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(in$) : f1.call(null,in$)):in$);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar in$__$1 \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d (cljs.core.truth_(f2)?(f2.cljs$core$IFn$_invoke$arity$1 ? f2.cljs$core$IFn$_invoke$arity$1(in$__$1) : f2.call(null,in$__$1)):in$__$1);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar in$__$2 \x3d b2__30646__auto____$1;\nvar b2__30646__auto____$2 \x3d (cljs.core.truth_(f3)?(f3.cljs$core$IFn$_invoke$arity$1 ? f3.cljs$core$IFn$_invoke$arity$1(in$__$2) : f3.call(null,in$__$2)):in$__$2);\nif(cljs.core.truth_(b2__30646__auto____$2)){\nvar in$__$3 \x3d b2__30646__auto____$2;\nreturn taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1(fs)(in$__$3);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n}));\n\n/** @this {Function} */\n(taoensso.encore.signals.comp_xfn.cljs$lang$applyTo \x3d (function (seq35813){\nvar G__35814 \x3d cljs.core.first(seq35813);\nvar seq35813__$1 \x3d cljs.core.next(seq35813);\nvar G__35815 \x3d cljs.core.first(seq35813__$1);\nvar seq35813__$2 \x3d cljs.core.next(seq35813__$1);\nvar G__35816 \x3d cljs.core.first(seq35813__$2);\nvar seq35813__$3 \x3d cljs.core.next(seq35813__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35814,G__35815,G__35816,seq35813__$3);\n}));\n\n(taoensso.encore.signals.comp_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Wraps given handler-fn to add common handler-level functionality.\n */\ntaoensso.encore.signals.wrap_handler \x3d (function taoensso$encore$signals$wrap_handler(handler_id,handler_fn,lib_dispatch_opts,user_dispatch_opts){\nvar dispatch_opts \x3d taoensso.encore.nested_merge.cljs$core$IFn$_invoke$arity$variadic(taoensso.encore.signals.default_handler_dispatch_opts,lib_dispatch_opts,(function (){var temp__5825__auto__ \x3d cljs.core.meta(handler_fn);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar m \x3d temp__5825__auto__;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291));\n} else {\nreturn null;\n}\n})(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([user_dispatch_opts], 0));\nvar map__35818 \x3d dispatch_opts;\nvar map__35818__$1 \x3d cljs.core.__destructure_map(map__35818);\nvar rl_backp \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22rl-backp\x22,\x22rl-backp\x22,-226781703));\nvar track_stats_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22track-stats?\x22,\x22track-stats?\x22,-713524039));\nvar id_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\nvar kind_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\nvar limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363));\nvar xfn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22xfn\x22,\x22xfn\x22,538978120));\nvar rl_error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22rl-error\x22,\x22rl-error\x22,1545982960));\nvar ns_filter \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\nvar error_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22error-fn\x22,\x22error-fn\x22,-171437615));\nvar sample \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nvar priority \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715));\nvar backp_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22backp-fn\x22,\x22backp-fn\x22,1835678931));\nvar when_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22when-fn\x22,\x22when-fn\x22,-57616971));\nvar min_level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35818__$1,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\nvar _ \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22middleware\x22,\x22middleware\x22,1462115504)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [614,56], null),\x22`:middleware` handler dispatch option has been renamed `:xfn`, apologies!\x22,null,null)})():null);\nvar ___$1 \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22sample-rate\x22,\x22sample-rate\x22,-603246554)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [615,56], null),\x22`:sample-rate` handler dispatch option has been renamed `:sample`, apologies!\x22,null,null)})():null);\nvar ___$2 \x3d ((cljs.core.contains_QMARK_(dispatch_opts,new cljs.core.Keyword(null,\x22rate-limit\x22,\x22rate-limit\x22,1748082022)))?(function(){throw taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [616,56], null),\x22`:rate-limit` handler dispatch option has been renamed `:limit`, apologies!\x22,null,null)})():null);\nvar vec__35819 \x3d (cljs.core.truth_(sample)?((cljs.core.fn_QMARK_(sample))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,sample], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [taoensso.encore.as_pnum_BANG_(sample),null], null)):null);\nvar sample_rate \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35819,(0),null);\nvar sample_rate_fn \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35819,(1),null);\nvar rl_handler \x3d (function (){var temp__5825__auto__ \x3d limit;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar spec \x3d temp__5825__auto__;\nreturn taoensso.encore.rate_limiter.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22allow-basic?\x22,\x22allow-basic?\x22,-810481502),true], null),spec);\n} else {\nreturn null;\n}\n})();\nvar spec_filter_STAR_ \x3d taoensso.encore.signals.spec_filter(kind_filter,ns_filter,id_filter,min_level);\nvar xfn__$1 \x3d ((cljs.core.vector_QMARK_(xfn))?taoensso.encore.signals.comp_xfn.cljs$core$IFn$_invoke$arity$1(xfn):(((function (arg35825){\nif((arg35825 \x3d\x3d null)){\nreturn true;\n} else {\nreturn cljs.core.fn_QMARK_(arg35825);\n}\n})(xfn))?xfn:taoensso.truss.failed_assertion_BANG_(\x22taoensso.encore.signals\x22,629,46,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22or\x22,\x22or\x22,235744169),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Symbol(null,\x22fn?\x22,\x22fn?\x22,1820990818,null)], null),new cljs.core.Symbol(null,\x22xfn\x22,\x22xfn\x22,-2115457649,null),xfn,null,null)));\nvar rl_error__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22rl-error\x22,\x22rl-error\x22,1545982960),taoensso.encore.rate_limiter_once_per(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676),(1))));\nvar rl_backp__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22rl-backp\x22,\x22rl-backp\x22,-226781703),taoensso.encore.rate_limiter_once_per(taoensso.encore.ms.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mins\x22,\x22mins\x22,467369676),(1))));\nvar backp_fn__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22backp-fn\x22,\x22backp-fn\x22,1835678931),new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769));\nvar error_fn__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(dispatch_opts,new cljs.core.Keyword(null,\x22error-fn\x22,\x22error-fn\x22,-171437615),new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769));\nvar error_fn_STAR_ \x3d (cljs.core.truth_(error_fn__$1)?(function (signal,error){\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d rl_error__$1;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (rl_error__$1.cljs$core$IFn$_invoke$arity$0 ? rl_error__$1.cljs$core$IFn$_invoke$arity$0() : rl_error__$1.call(null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn null;\n} else {\nvar temp__5825__auto__ \x3d ((cljs.core.keyword_identical_QMARK_(error_fn__$1,new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22default\x22,\x22taoensso.encore.signals/default\x22,-1402161769)))?taoensso.encore.signals._STAR_default_handler_error_fn_STAR_:error_fn__$1);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar error_fn__$2 \x3d temp__5825__auto__;\nif(cljs.core.truth_(signal)){\nvar G__35833 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22signal\x22,\x22signal\x22,-1984951589),signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error], null);\nreturn (error_fn__$2.cljs$core$IFn$_invoke$arity$1 ? error_fn__$2.cljs$core$IFn$_invoke$arity$1(G__35833) : error_fn__$2.call(null,G__35833));\n} else {\nvar G__35834 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error], null);\nreturn (error_fn__$2.cljs$core$IFn$_invoke$arity$1 ? error_fn__$2.cljs$core$IFn$_invoke$arity$1(G__35834) : error_fn__$2.call(null,G__35834));\n}\n} else {\nreturn null;\n}\n}\n}catch (e35832){var ___$3 \x3d e35832;\nreturn null;\n}}):null);\nvar runner \x3d null;\nvar stopped_QMARK__ \x3d taoensso.encore.latom(false);\nvar stop_fn \x3d (function (){\nif((!(cljs.core.compare_and_set_BANG_(stopped_QMARK__,false,true)))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22okay\x22,\x22okay\x22,675029136),new cljs.core.Keyword(null,\x22stopped\x22,\x22stopped\x22,-1490414640)], null);\n} else {\nvar drained_QMARK_ \x3d null;\nvar handler_result \x3d (function (){try{(handler_fn.cljs$core$IFn$_invoke$arity$0 ? handler_fn.cljs$core$IFn$_invoke$arity$0() : handler_fn.call(null));\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22okay\x22,\x22okay\x22,675029136),new cljs.core.Keyword(null,\x22stopped\x22,\x22stopped\x22,-1490414640)], null);\n}catch (e35835){var t \x3d e35835;\nif(cljs.core.truth_(error_fn_STAR_)){\nerror_fn_STAR_(null,t);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),t], null);\n}finally {if(cljs.core.truth_(runner)){\n(runner.cljs$core$IFn$_invoke$arity$0 ? runner.cljs$core$IFn$_invoke$arity$0() : runner.call(null));\n} else {\n}\n}})();\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$3(handler_result,new cljs.core.Keyword(null,\x22drained?\x22,\x22drained?\x22,-1635967677),drained_QMARK_);\n}\n});\nvar ssb \x3d (cljs.core.truth_(track_stats_QMARK_)?taoensso.encore.stats.summary_stats_buffered_fast(100000.0,null):null);\nvar vec__35822 \x3d (cljs.core.truth_(track_stats_QMARK_)?cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2((10),taoensso.encore.counter):null);\nvar cnt_allowed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(0),null);\nvar cnt_disallowed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(1),null);\nvar cnt_handled \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(2),null);\nvar cnt_errors \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(3),null);\nvar cnt_backp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(4),null);\nvar cnt_sampled \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(5),null);\nvar cnt_filtered \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(6),null);\nvar cnt_rate_limited \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(7),null);\nvar cnt_suppressed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(8),null);\nvar cnt_dropped \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35822,(9),null);\nvar handle_signal_BANG_ \x3d (function (sig_raw){\nvar ns0 \x3d (cljs.core.truth_(track_stats_QMARK_)?taoensso.encore.now_nano():null);\nvar result \x3d (function (){var or__5025__auto__ \x3d (function (){try{var sample_rate__$1 \x3d (function (){var or__5025__auto__ \x3d sample_rate;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar temp__5825__auto__ \x3d sample_rate_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar f \x3d temp__5825__auto__;\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n} else {\nreturn null;\n}\n}\n})();\nvar allow_QMARK_ \x3d (cljs.core.truth_(track_stats_QMARK_)?(((cljs.core.truth_(sample_rate__$1)?(((Math.random() \x3c sample_rate__$1))?true:(function (){\n(cnt_sampled.cljs$core$IFn$_invoke$arity$0 ? cnt_sampled.cljs$core$IFn$_invoke$arity$0() : cnt_sampled.call(null));\n\nreturn false;\n})()\n):true))?(((cljs.core.truth_(spec_filter_STAR_)?(cljs.core.truth_(taoensso.encore.signals.allow_signal_QMARK_(sig_raw,spec_filter_STAR_))?true:(function (){\n(cnt_filtered.cljs$core$IFn$_invoke$arity$0 ? cnt_filtered.cljs$core$IFn$_invoke$arity$0() : cnt_filtered.call(null));\n\nreturn false;\n})()\n):true))?(((cljs.core.truth_(when_fn)?(cljs.core.truth_((when_fn.cljs$core$IFn$_invoke$arity$0 ? when_fn.cljs$core$IFn$_invoke$arity$0() : when_fn.call(null)))?true:(function (){\n(cnt_filtered.cljs$core$IFn$_invoke$arity$0 ? cnt_filtered.cljs$core$IFn$_invoke$arity$0() : cnt_filtered.call(null));\n\nreturn false;\n})()\n):true))?(cljs.core.truth_(rl_handler)?(cljs.core.truth_((rl_handler.cljs$core$IFn$_invoke$arity$0 ? rl_handler.cljs$core$IFn$_invoke$arity$0() : rl_handler.call(null)))?(function (){\n(cnt_rate_limited.cljs$core$IFn$_invoke$arity$0 ? cnt_rate_limited.cljs$core$IFn$_invoke$arity$0() : cnt_rate_limited.call(null));\n\nreturn false;\n})()\n:true):true):false):false):false):(((cljs.core.truth_(sample_rate__$1)?(Math.random() \x3c sample_rate__$1):true))?(cljs.core.truth_((cljs.core.truth_(spec_filter_STAR_)?taoensso.encore.signals.allow_signal_QMARK_(sig_raw,spec_filter_STAR_):true))?(cljs.core.truth_((cljs.core.truth_(when_fn)?(when_fn.cljs$core$IFn$_invoke$arity$0 ? when_fn.cljs$core$IFn$_invoke$arity$0() : when_fn.call(null)):true))?(cljs.core.truth_(rl_handler)?(cljs.core.truth_((rl_handler.cljs$core$IFn$_invoke$arity$0 ? rl_handler.cljs$core$IFn$_invoke$arity$0() : rl_handler.call(null)))?false:true):true):false):false):false));\nif(cljs.core.truth_(track_stats_QMARK_)){\nif(allow_QMARK_){\n(cnt_allowed.cljs$core$IFn$_invoke$arity$0 ? cnt_allowed.cljs$core$IFn$_invoke$arity$0() : cnt_allowed.call(null));\n} else {\n(cnt_disallowed.cljs$core$IFn$_invoke$arity$0 ? cnt_disallowed.cljs$core$IFn$_invoke$arity$0() : cnt_disallowed.call(null));\n}\n} else {\n}\n\nif(allow_QMARK_){\nvar temp__5825__auto__ \x3d taoensso.encore.signals.signal_value(sig_raw,sample_rate__$1);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar sig_val \x3d temp__5825__auto__;\ntry{var b2__30646__auto__ \x3d (cljs.core.truth_(xfn__$1)?(xfn__$1.cljs$core$IFn$_invoke$arity$1 ? xfn__$1.cljs$core$IFn$_invoke$arity$1(sig_val) : xfn__$1.call(null,sig_val)):sig_val);\nif(cljs.core.truth_(b2__30646__auto__)){\nvar sig_val_STAR_ \x3d b2__30646__auto__;\ntry{(handler_fn.cljs$core$IFn$_invoke$arity$1 ? handler_fn.cljs$core$IFn$_invoke$arity$1(sig_val_STAR_) : handler_fn.call(null,sig_val_STAR_));\n\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_handled.cljs$core$IFn$_invoke$arity$0 ? cnt_handled.cljs$core$IFn$_invoke$arity$0() : cnt_handled.call(null));\n} else {\n}\n\nreturn true;\n}catch (e35839){var t \x3d e35839;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nreturn error_fn_STAR_(sig_val_STAR_,t);\n} else {\nreturn null;\n}\n}} else {\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_suppressed.cljs$core$IFn$_invoke$arity$0 ? cnt_suppressed.cljs$core$IFn$_invoke$arity$0() : cnt_suppressed.call(null));\n} else {\n}\n\nreturn null;\n}\n}catch (e35838){var t \x3d e35838;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nreturn error_fn_STAR_(sig_val,t);\n} else {\nreturn null;\n}\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}catch (e35836){var t \x3d e35836;\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_errors.cljs$core$IFn$_invoke$arity$0 ? cnt_errors.cljs$core$IFn$_invoke$arity$0() : cnt_errors.call(null));\n} else {\n}\n\nif(cljs.core.truth_(error_fn_STAR_)){\nvar sig_dbg \x3d (function (){var or__5025__auto__ \x3d (function (){try{return taoensso.encore.signals.signal_debug(sig_raw);\n}catch (e35837){var ___$3 \x3d e35837;\nreturn null;\n}})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn sig_raw;\n}\n})();\nreturn error_fn_STAR_(sig_dbg,t);\n} else {\nreturn null;\n}\n}})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn false;\n}\n})();\nif(cljs.core.truth_(track_stats_QMARK_)){\nvar G__35840_35921 \x3d (taoensso.encore.now_nano() - ns0);\n(ssb.cljs$core$IFn$_invoke$arity$1 ? ssb.cljs$core$IFn$_invoke$arity$1(G__35840_35921) : ssb.call(null,G__35840_35921));\n} else {\n}\n\nreturn result;\n});\nvar wrapped_handler_fn \x3d (function() {\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn \x3d null;\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0 \x3d (function (){\nreturn stop_fn();\n});\nvar taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1 \x3d (function (sig_raw){\nif(cljs.core.truth_((stopped_QMARK__.cljs$core$IFn$_invoke$arity$0 ? stopped_QMARK__.cljs$core$IFn$_invoke$arity$0() : stopped_QMARK__.call(null)))){\nif(cljs.core.truth_(track_stats_QMARK_)){\n(cnt_dropped.cljs$core$IFn$_invoke$arity$0 ? cnt_dropped.cljs$core$IFn$_invoke$arity$0() : cnt_dropped.call(null));\n} else {\n}\n\nreturn null;\n} else {\nreturn handle_signal_BANG_(sig_raw);\n}\n});\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn \x3d function(sig_raw){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0.call(this);\ncase 1:\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1.call(this,sig_raw);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__0;\ntaoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn__1;\nreturn taoensso$encore$signals$wrap_handler_$_sync_wrapped_handler_fn;\n})()\n;\nvar stats_fn \x3d (cljs.core.truth_(track_stats_QMARK_)?(function() {\nvar G__35922 \x3d null;\nvar G__35922__0 \x3d (function (){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22handling-nsecs\x22,\x22handling-nsecs\x22,1811247246),(function (){var temp__5825__auto__ \x3d cljs.core.deref(ssb);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar sstats \x3d temp__5825__auto__;\nreturn cljs.core.deref(sstats);\n} else {\nreturn null;\n}\n})(),new cljs.core.Keyword(null,\x22counts\x22,\x22counts\x22,234305892),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22errors\x22,\x22errors\x22,-908790718),new cljs.core.Keyword(null,\x22dropped\x22,\x22dropped\x22,-1651285782),new cljs.core.Keyword(null,\x22filtered\x22,\x22filtered\x22,-437499761),new cljs.core.Keyword(null,\x22handled\x22,\x22handled\x22,1889700151),new cljs.core.Keyword(null,\x22back-pressure\x22,\x22back-pressure\x22,-1355705609),new cljs.core.Keyword(null,\x22disallowed\x22,\x22disallowed\x22,544208344),new cljs.core.Keyword(null,\x22suppressed\x22,\x22suppressed\x22,-5041288),new cljs.core.Keyword(null,\x22rate-limited\x22,\x22rate-limited\x22,1069945372),new cljs.core.Keyword(null,\x22allowed\x22,\x22allowed\x22,1436019743),new cljs.core.Keyword(null,\x22sampled\x22,\x22sampled\x22,-1590460609)],[cljs.core.deref(cnt_errors),cljs.core.deref(cnt_dropped),cljs.core.deref(cnt_filtered),cljs.core.deref(cnt_handled),cljs.core.deref(cnt_backp),cljs.core.deref(cnt_disallowed),cljs.core.deref(cnt_suppressed),cljs.core.deref(cnt_rate_limited),cljs.core.deref(cnt_allowed),cljs.core.deref(cnt_sampled)])], null);\n});\nvar G__35922__1 \x3d (function (action){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [782,23], null),\x22Not currently implemented\x22,cljs.core.PersistentArrayMap.EMPTY,null);\n});\nG__35922 \x3d function(action){\nswitch(arguments.length){\ncase 0:\nreturn G__35922__0.call(this);\ncase 1:\nreturn G__35922__1.call(this,action);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__35922.cljs$core$IFn$_invoke$arity$0 \x3d G__35922__0;\nG__35922.cljs$core$IFn$_invoke$arity$1 \x3d G__35922__1;\nreturn G__35922;\n})()\n:null);\nreturn cljs.core.with_meta(wrapped_handler_fn,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22handler-id\x22,\x22handler-id\x22,1160395333),handler_id,new cljs.core.Keyword(null,\x22handler-fn\x22,\x22handler-fn\x22,-799387730),handler_fn,new cljs.core.Keyword(null,\x22dispatch-opts\x22,\x22dispatch-opts\x22,-1246785291),dispatch_opts,new cljs.core.Keyword(null,\x22wrapped-handler-fn\x22,\x22wrapped-handler-fn\x22,-1449520424),wrapped_handler_fn,new cljs.core.Keyword(null,\x22stats-fn\x22,\x22stats-fn\x22,745608177),stats_fn], null));\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.encore.signals.update_ctx \x3d (function taoensso$encore$signals$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn taoensso.encore.merge.cljs$core$IFn$_invoke$arity$2(old_ctx,update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.encore.signals\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [1532,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n}\n}\n}\n});\n/**\n * `:foo/bar` -\x3e \x22FOO/BAR\x22, etc.\n */\ntaoensso.encore.signals.upper_qn \x3d taoensso.encore.fmemoize((function (x){\nreturn clojure.string.upper_case(taoensso.encore.as_qname(x));\n}));\n/**\n * `:info` -\x3e \x22INFO\x22,\n * `5` -\x3e \x22LEVEL:5\x22, etc.\n */\ntaoensso.encore.signals.format_level \x3d taoensso.encore.fmemoize((function (x){\nif((x instanceof cljs.core.Keyword)){\nreturn (taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1(x) : taoensso.encore.signals.upper_qn.call(null,x));\n} else {\nreturn [\x22LEVEL:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)].join(\x27\x27);\n}\n}));\n/**\n * `:foo.bar/baz` -\x3e \x22::baz\x22, etc.\n */\ntaoensso.encore.signals.format_id \x3d taoensso.encore.fmemoize((function (ns,x){\nif((x instanceof cljs.core.Keyword)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(x),ns)){\nreturn [\x22::\x22,cljs.core.name(x)].join(\x27\x27);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n}));\n/**\n * Returns \x22\x3cnamespace\x3e[\x3cline\x3e,\x3ccolumn\x3e]\x22 ?string.\n */\ntaoensso.encore.signals.format_callsite \x3d (function taoensso$encore$signals$format_callsite(var_args){\nvar G__35859 \x3d arguments.length;\nswitch (G__35859) {\ncase 2:\nreturn taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,coords){\nif(cljs.core.truth_(ns)){\nvar temp__5823__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__35860 \x3d temp__5823__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35860,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35860,(1),null);\nif(cljs.core.truth_(line)){\nif(cljs.core.truth_(column)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn ns;\n}\n} else {\nreturn ns;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$1 \x3d (function (location){\nvar temp__5825__auto__ \x3d location;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__35863 \x3d temp__5825__auto__;\nvar map__35863__$1 \x3d cljs.core.__destructure_map(map__35863);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35863__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35863__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35863__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nif(cljs.core.truth_(ns)){\nif(cljs.core.truth_(line)){\nif(cljs.core.truth_(column)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn ns;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.encore.signals.format_callsite.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.encore.signals.signal_with_combined_sample_rate \x3d (function taoensso$encore$signals$signal_with_combined_sample_rate(handler_sample_rate,sig_val){\nvar or__5025__auto__ \x3d (cljs.core.truth_(handler_sample_rate)?((cljs.core.map_QMARK_(sig_val))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(sig_val,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),(handler_sample_rate * (function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(sig_val,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 1.0;\n}\n})())):null):null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn sig_val;\n}\n});\n"); +SHADOW_ENV.evalLoad("taoensso.telemere.impl.js", true, "goog.provide(\x27taoensso.telemere.impl\x27);\n/**\n * Documented at `taoensso.telemere/*uid-fn*`.\n */\ntaoensso.telemere.impl.uid_kind \x3d new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328);\nvar base_36275 \x3d null;\nvar kind_filter_36276 \x3d null;\nvar ns_filter_36277 \x3d null;\nvar id_filter_36278 \x3d null;\nvar min_level_36279 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl._STAR_rt_call_filter_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * `SpecFilter` used for runtime filtering, or nil.\n */\ntaoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d taoensso.encore.signals.spec_filter(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),(function (){var or__5025__auto__ \x3d kind_filter_36276;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_36275,new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915));\n}\n})(),new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),(function (){var or__5025__auto__ \x3d ns_filter_36277;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_36275,new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448));\n}\n})(),new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),(function (){var or__5025__auto__ \x3d id_filter_36278;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_36275,new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277));\n}\n})(),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919),(function (){var or__5025__auto__ \x3d min_level_36279;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(base_36275,new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919));\n}\n})()], null));\n}\n\n/**\n* @constructor\n*/\ntaoensso.telemere.impl.MsgSkip \x3d (function (){\n});\n\n(taoensso.telemere.impl.MsgSkip.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/MsgSkip\x22);\n\n(taoensso.telemere.impl.MsgSkip.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/MsgSkip\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/MsgSkip.\n */\ntaoensso.telemere.impl.__GT_MsgSkip \x3d (function taoensso$telemere$impl$__GT_MsgSkip(){\nreturn (new taoensso.telemere.impl.MsgSkip());\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.telemere.impl.MsgSplice \x3d (function (args){\nthis.args \x3d args;\n});\n\n(taoensso.telemere.impl.MsgSplice.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22args\x22,\x22args\x22,-1338879193,null)], null);\n}));\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/MsgSplice\x22);\n\n(taoensso.telemere.impl.MsgSplice.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/MsgSplice\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/MsgSplice.\n */\ntaoensso.telemere.impl.__GT_MsgSplice \x3d (function taoensso$telemere$impl$__GT_MsgSplice(args){\nreturn (new taoensso.telemere.impl.MsgSplice(args));\n});\n\n/**\n * For use within signal message vectors.\n * Special value that will be ignored (noop) when creating message.\n * Useful for conditionally skipping parts of message content, etc.:\n * \n * (signal! {:msg [\x22Hello\x22 (if \x3ccond\x3e \x3cthen\x3e msg-skip) \x22world\x22] \x3c...\x3e}) or\n * (log! [\x22Hello\x22 (if \x3ccond\x3e \x3cthen\x3e msg-skip) \x22world\x22]), etc.\n * \n * %\x3e {:msg_ \x22Hello world\x22 \x3c...\x3e}\n */\ntaoensso.telemere.impl.msg_skip \x3d (new taoensso.telemere.impl.MsgSkip());\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.impl.msg_splice \x3d (function taoensso$telemere$impl$msg_splice(args){\nreturn (new taoensso.telemere.impl.MsgSplice(args));\n});\nvar xform_36280 \x3d (function (rf){\nvar rf_STAR_ \x3d (function taoensso$telemere$impl$rf_STAR_(acc,in$){\nif((in$ instanceof taoensso.telemere.impl.MsgSplice)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(taoensso$telemere$impl$rf_STAR_,acc,in$.args);\n} else {\nif((in$ instanceof taoensso.telemere.impl.MsgSkip)){\nreturn acc;\n} else {\nif((in$ \x3d\x3d null)){\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,\x22nil\x22) : rf.call(null,acc,\x22nil\x22));\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}\n}\n}\n});\nreturn (function() {\nvar G__36281 \x3d null;\nvar G__36281__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n});\nvar G__36281__1 \x3d (function (acc){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n});\nvar G__36281__2 \x3d (function (acc,in$){\nreturn rf_STAR_(acc,in$);\n});\nG__36281 \x3d function(acc,in$){\nswitch(arguments.length){\ncase 0:\nreturn G__36281__0.call(this);\ncase 1:\nreturn G__36281__1.call(this,acc);\ncase 2:\nreturn G__36281__2.call(this,acc,in$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__36281.cljs$core$IFn$_invoke$arity$0 \x3d G__36281__0;\nG__36281.cljs$core$IFn$_invoke$arity$1 \x3d G__36281__1;\nG__36281.cljs$core$IFn$_invoke$arity$2 \x3d G__36281__2;\nreturn G__36281;\n})()\n});\n/**\n * Returns string formed by joining all args with \x22 \x22 separator,\n * rendering nils as \x22nil\x22. Supports `msg-skip`, `msg-splice`.\n * \n * API intended to be usefully different to `str`:\n * - `str`: no spacers, skip nils, no splicing\n * - `signal-msg`: auto spacers, show nils, opt-in splicing\n */\ntaoensso.telemere.impl.signal_msg \x3d (function taoensso$telemere$impl$signal_msg(args){\nreturn taoensso.encore.str_join.cljs$core$IFn$_invoke$arity$3(\x22 \x22,xform_36280,args);\n});\ntaoensso.telemere.impl.default_trace_msg \x3d (function taoensso$telemere$impl$default_trace_msg(form,value,error,nsecs){\nif(cljs.core.truth_(error)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((((form \x3d\x3d null))?\x22nil\x22:form)),\x22 !\x3e \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.truss.ex_type(error))].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((((form \x3d\x3d null))?\x22nil\x22:form)),\x22 \x3d\x3e \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((value \x3d\x3d null))?\x22nil\x22:value))].join(\x27\x27);\n}\n});\n/**\n * ?{:keys [id uid]}\n */\ntaoensso.telemere.impl._STAR_trace_root_STAR_ \x3d null;\n/**\n * ?{:keys [id uid]}\n */\ntaoensso.telemere.impl._STAR_trace_parent_STAR_ \x3d null;\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.telemere.impl.Signal \x3d (function (schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs,__meta,__extmap,__hash){\nthis.schema \x3d schema;\nthis.inst \x3d inst;\nthis.uid \x3d uid;\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.sample \x3d sample;\nthis.kind \x3d kind;\nthis.id \x3d id;\nthis.level \x3d level;\nthis.ctx \x3d ctx;\nthis.parent \x3d parent;\nthis.root \x3d root;\nthis.data \x3d data;\nthis.kvs \x3d kvs;\nthis.msg_ \x3d msg_;\nthis.error \x3d error;\nthis.run_form \x3d run_form;\nthis.run_val \x3d run_val;\nthis.end_inst \x3d end_inst;\nthis.run_nsecs \x3d run_nsecs;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.telemere.impl.Signal.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar sig \x3d this;\nreturn [\x22taoensso.telemere.Signal\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.encore.pr_edn_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,sig)))].join(\x27\x27);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k36222,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__36226 \x3d k36222;\nvar G__36226__$1 \x3d (((G__36226 instanceof cljs.core.Keyword))?G__36226.fqn:null);\nswitch (G__36226__$1) {\ncase \x22schema\x22:\nreturn self__.schema;\n\nbreak;\ncase \x22inst\x22:\nreturn self__.inst;\n\nbreak;\ncase \x22uid\x22:\nreturn self__.uid;\n\nbreak;\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22sample\x22:\nreturn self__.sample;\n\nbreak;\ncase \x22kind\x22:\nreturn self__.kind;\n\nbreak;\ncase \x22id\x22:\nreturn self__.id;\n\nbreak;\ncase \x22level\x22:\nreturn self__.level;\n\nbreak;\ncase \x22ctx\x22:\nreturn self__.ctx;\n\nbreak;\ncase \x22parent\x22:\nreturn self__.parent;\n\nbreak;\ncase \x22root\x22:\nreturn self__.root;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22kvs\x22:\nreturn self__.kvs;\n\nbreak;\ncase \x22msg_\x22:\nreturn self__.msg_;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ncase \x22run-form\x22:\nreturn self__.run_form;\n\nbreak;\ncase \x22run-val\x22:\nreturn self__.run_val;\n\nbreak;\ncase \x22end-inst\x22:\nreturn self__.end_inst;\n\nbreak;\ncase \x22run-nsecs\x22:\nreturn self__.run_nsecs;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k36222,else__5326__auto__);\n\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__36227){\nvar vec__36228 \x3d p__36227;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36228,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36228,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.telemere.impl.Signal{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),self__.schema],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),self__.inst],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),self__.uid],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),self__.sample],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),self__.ctx],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),self__.root],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),self__.kvs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),self__.msg_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),self__.run_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),self__.run_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),self__.end_inst],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),self__.run_nsecs],null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__36221){\nvar self__ \x3d this;\nvar G__36221__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__36221__$1,20,new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (20 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-2071815066 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this36223,other36224){\nvar self__ \x3d this;\nvar this36223__$1 \x3d this;\nreturn (((!((other36224 \x3d\x3d null)))) \x26\x26 ((((this36223__$1.constructor \x3d\x3d\x3d other36224.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.schema,other36224.schema)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.inst,other36224.inst)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.uid,other36224.uid)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.ns,other36224.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.coords,other36224.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.sample,other36224.sample)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.kind,other36224.kind)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.id,other36224.id)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.level,other36224.level)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.ctx,other36224.ctx)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.parent,other36224.parent)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.root,other36224.root)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.data,other36224.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.kvs,other36224.kvs)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.msg_,other36224.msg_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.error,other36224.error)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.run_form,other36224.run_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.run_val,other36224.run_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.end_inst,other36224.end_inst)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.run_nsecs,other36224.run_nsecs)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36223__$1.__extmap,other36224.__extmap)))))))))))))))))))))))))))))))))))))))))))));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 20, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),null,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),null,new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),null,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),null,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),null,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),null,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),null,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),null,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),null,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),null,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),null,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),null,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k36222){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__36231 \x3d k36222;\nvar G__36231__$1 \x3d (((G__36231 instanceof cljs.core.Keyword))?G__36231.fqn:null);\nswitch (G__36231__$1) {\ncase \x22schema\x22:\ncase \x22inst\x22:\ncase \x22uid\x22:\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22sample\x22:\ncase \x22kind\x22:\ncase \x22id\x22:\ncase \x22level\x22:\ncase \x22ctx\x22:\ncase \x22parent\x22:\ncase \x22root\x22:\ncase \x22data\x22:\ncase \x22kvs\x22:\ncase \x22msg_\x22:\ncase \x22error\x22:\ncase \x22run-form\x22:\ncase \x22run-val\x22:\ncase \x22end-inst\x22:\ncase \x22run-nsecs\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k36222);\n\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__36221){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__36232 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__36233 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(G__36221,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,G__36221,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,G__36221,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,G__36221,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,G__36221,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,G__36221,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,G__36221,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,G__36221,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,G__36221,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,G__36221,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,G__36221,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,G__36221,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,G__36221,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,G__36221,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,G__36221,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,G__36221,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,G__36221,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,G__36221,self__.end_inst,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,G__36221,self__.run_nsecs,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36232.cljs$core$IFn$_invoke$arity$2 ? pred__36232.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),expr__36233) : pred__36232.call(null,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),expr__36233)))){\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,G__36221,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__36221),null));\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),self__.schema,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),self__.inst,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),self__.uid,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),self__.sample,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),self__.ctx,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),self__.root,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),self__.kvs,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),self__.msg_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),self__.run_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),self__.run_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),self__.end_inst,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724),self__.run_nsecs,null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__36221){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.Signal(self__.schema,self__.inst,self__.uid,self__.ns,self__.coords,self__.sample,self__.kind,self__.id,self__.level,self__.ctx,self__.parent,self__.root,self__.data,self__.kvs,self__.msg_,self__.error,self__.run_form,self__.run_val,self__.end_inst,self__.run_nsecs,G__36221,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.telemere.impl.Signal.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22schema\x22,\x22schema\x22,58529736,null),new cljs.core.Symbol(null,\x22inst\x22,\x22inst\x22,-2008473268,null),new cljs.core.Symbol(null,\x22uid\x22,\x22uid\x22,192762127,null),new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22sample\x22,\x22sample\x22,1719555128,null),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22level\x22,\x22level\x22,-1363938217,null),new cljs.core.Symbol(null,\x22ctx\x22,\x22ctx\x22,1146921409,null),new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22kvs\x22,\x22kvs\x22,-1695980277,null),new cljs.core.Symbol(null,\x22msg_\x22,\x22msg_\x22,-284615473,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null),new cljs.core.Symbol(null,\x22run-form\x22,\x22run-form\x22,2046178924,null),new cljs.core.Symbol(null,\x22run-val\x22,\x22run-val\x22,1336205007,null),new cljs.core.Symbol(null,\x22end-inst\x22,\x22end-inst\x22,2136888683,null),new cljs.core.Symbol(null,\x22run-nsecs\x22,\x22run-nsecs\x22,1673153251,null)], null);\n}));\n\n(taoensso.telemere.impl.Signal.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.Signal.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.telemere.impl/Signal\x22,null,(1),null));\n}));\n\n(taoensso.telemere.impl.Signal.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.telemere.impl/Signal\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/Signal.\n */\ntaoensso.telemere.impl.__GT_Signal \x3d (function taoensso$telemere$impl$__GT_Signal(schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs){\nreturn (new taoensso.telemere.impl.Signal(schema,inst,uid,ns,coords,sample,kind,id,level,ctx,parent,root,data,kvs,msg_,error,run_form,run_val,end_inst,run_nsecs,null,null,null));\n});\n\n/**\n * Factory function for taoensso.telemere.impl/Signal, taking a map of keywords to field values.\n */\ntaoensso.telemere.impl.map__GT_Signal \x3d (function taoensso$telemere$impl$map__GT_Signal(G__36225){\nvar extmap__5365__auto__ \x3d (function (){var G__36235 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__36225,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724)], 0));\nif(cljs.core.record_QMARK_(G__36225)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__36235);\n} else {\nreturn G__36235;\n}\n})();\nreturn (new taoensso.telemere.impl.Signal(new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22end-inst\x22,\x22end-inst\x22,496357156).cljs$core$IFn$_invoke$arity$1(G__36225),new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724).cljs$core$IFn$_invoke$arity$1(G__36225),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.telemere.impl.Signal.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (sig,__w,_){\nvar sig__$1 \x3d this;\nreturn cljs.core._write(__w,[\x22#taoensso.telemere.Signal\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(taoensso.encore.pr_edn_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,sig__$1)))].join(\x27\x27));\n}));\ntaoensso.telemere.impl.signal_QMARK_ \x3d (function taoensso$telemere$impl$signal_QMARK_(x){\nreturn (x instanceof taoensso.telemere.impl.Signal);\n});\ntaoensso.telemere.impl.impl_signal_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22_otel-context\x22,\x22_otel-context\x22,-1187753645),null], null), null);\ntaoensso.telemere.impl.standard_signal_keys \x3d clojure.set.difference.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(taoensso.telemere.impl.map__GT_Signal(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791),(0)], null)))),taoensso.telemere.impl.impl_signal_keys);\n\n/**\n* @constructor\n * @implements {taoensso.encore.signals.ISignalHandling}\n*/\ntaoensso.telemere.impl.WrappedSignal \x3d (function (kind,ns,id,level,signal_value_){\nthis.kind \x3d kind;\nthis.ns \x3d ns;\nthis.id \x3d id;\nthis.level \x3d level;\nthis.signal_value_ \x3d signal_value_;\n});\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$allow_signal_QMARK_$arity$2 \x3d (function (_,spec_filter){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (spec_filter.cljs$core$IFn$_invoke$arity$4 ? spec_filter.cljs$core$IFn$_invoke$arity$4(self__.kind,self__.ns,self__.id,self__.level) : spec_filter.call(null,self__.kind,self__.ns,self__.id,self__.level));\n}));\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$signal_debug$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),self__.kind,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),self__.id,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),self__.level], null);\n}));\n\n(taoensso.telemere.impl.WrappedSignal.prototype.taoensso$encore$signals$ISignalHandling$signal_value$arity$2 \x3d (function (_,handler_sample_rate){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn taoensso.encore.signals.signal_with_combined_sample_rate(handler_sample_rate,cljs.core.force(self__.signal_value_));\n}));\n\n(taoensso.telemere.impl.WrappedSignal.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22level\x22,\x22level\x22,-1363938217,null),new cljs.core.Symbol(null,\x22signal-value_\x22,\x22signal-value_\x22,1525225232,null)], null);\n}));\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/WrappedSignal\x22);\n\n(taoensso.telemere.impl.WrappedSignal.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/WrappedSignal\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/WrappedSignal.\n */\ntaoensso.telemere.impl.__GT_WrappedSignal \x3d (function taoensso$telemere$impl$__GT_WrappedSignal(kind,ns,id,level,signal_value_){\nreturn (new taoensso.telemere.impl.WrappedSignal(kind,ns,id,level,signal_value_));\n});\n\n/**\n * Used by `taoensso.telemere/dispatch-signal!`.\n */\ntaoensso.telemere.impl.wrap_signal \x3d (function taoensso$telemere$impl$wrap_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nvar map__36236 \x3d signal;\nvar map__36236__$1 \x3d cljs.core.__destructure_map(map__36236);\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36236__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36236__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36236__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36236__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nreturn (new taoensso.telemere.impl.WrappedSignal(kind,ns,id,level,signal));\n} else {\nreturn null;\n}\n});\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.impl._STAR_sig_handlers_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * ?[\x3cwrapped-handler-fn\x3e]\n */\ntaoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d null;\n}\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.telemere.impl.SpyOpts \x3d (function (vol_,last_only_QMARK_,trap_QMARK_,__meta,__extmap,__hash){\nthis.vol_ \x3d vol_;\nthis.last_only_QMARK_ \x3d last_only_QMARK_;\nthis.trap_QMARK_ \x3d trap_QMARK_;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k36238,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__36242 \x3d k36238;\nvar G__36242__$1 \x3d (((G__36242 instanceof cljs.core.Keyword))?G__36242.fqn:null);\nswitch (G__36242__$1) {\ncase \x22vol_\x22:\nreturn self__.vol_;\n\nbreak;\ncase \x22last-only?\x22:\nreturn self__.last_only_QMARK_;\n\nbreak;\ncase \x22trap?\x22:\nreturn self__.trap_QMARK_;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k36238,else__5326__auto__);\n\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__36243){\nvar vec__36244 \x3d p__36243;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36244,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36244,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.telemere.impl.SpyOpts{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),self__.vol_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),self__.last_only_QMARK_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),self__.trap_QMARK_],null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__36237){\nvar self__ \x3d this;\nvar G__36237__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__36237__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (3 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-98713752 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this36239,other36240){\nvar self__ \x3d this;\nvar this36239__$1 \x3d this;\nreturn (((!((other36240 \x3d\x3d null)))) \x26\x26 ((((this36239__$1.constructor \x3d\x3d\x3d other36240.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36239__$1.vol_,other36240.vol_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36239__$1.last_only_QMARK_,other36240.last_only_QMARK_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36239__$1.trap_QMARK_,other36240.trap_QMARK_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this36239__$1.__extmap,other36240.__extmap)))))))))));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),null,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),null,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k36238){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__36247 \x3d k36238;\nvar G__36247__$1 \x3d (((G__36247 instanceof cljs.core.Keyword))?G__36247.fqn:null);\nswitch (G__36247__$1) {\ncase \x22vol_\x22:\ncase \x22last-only?\x22:\ncase \x22trap?\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k36238);\n\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__36237){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__36248 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__36249 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__36248.cljs$core$IFn$_invoke$arity$2 ? pred__36248.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),expr__36249) : pred__36248.call(null,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),expr__36249)))){\nreturn (new taoensso.telemere.impl.SpyOpts(G__36237,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36248.cljs$core$IFn$_invoke$arity$2 ? pred__36248.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),expr__36249) : pred__36248.call(null,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),expr__36249)))){\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,G__36237,self__.trap_QMARK_,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__36248.cljs$core$IFn$_invoke$arity$2 ? pred__36248.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),expr__36249) : pred__36248.call(null,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),expr__36249)))){\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,G__36237,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__36237),null));\n}\n}\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),self__.vol_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),self__.last_only_QMARK_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948),self__.trap_QMARK_,null))], null),self__.__extmap));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__36237){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.telemere.impl.SpyOpts(self__.vol_,self__.last_only_QMARK_,self__.trap_QMARK_,G__36237,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.telemere.impl.SpyOpts.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.telemere.impl.SpyOpts.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22vol_\x22,\x22vol_\x22,1178937224,null),new cljs.core.Symbol(null,\x22last-only?\x22,\x22last-only?\x22,1800006145,null),new cljs.core.Symbol(null,\x22trap?\x22,\x22trap?\x22,888340579,null)], null);\n}));\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.telemere.impl/SpyOpts\x22,null,(1),null));\n}));\n\n(taoensso.telemere.impl.SpyOpts.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.telemere.impl/SpyOpts\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/SpyOpts.\n */\ntaoensso.telemere.impl.__GT_SpyOpts \x3d (function taoensso$telemere$impl$__GT_SpyOpts(vol_,last_only_QMARK_,trap_QMARK_){\nreturn (new taoensso.telemere.impl.SpyOpts(vol_,last_only_QMARK_,trap_QMARK_,null,null,null));\n});\n\n/**\n * Factory function for taoensso.telemere.impl/SpyOpts, taking a map of keywords to field values.\n */\ntaoensso.telemere.impl.map__GT_SpyOpts \x3d (function taoensso$telemere$impl$map__GT_SpyOpts(G__36241){\nvar extmap__5365__auto__ \x3d (function (){var G__36251 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__36241,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948)], 0));\nif(cljs.core.record_QMARK_(G__36241)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__36251);\n} else {\nreturn G__36251;\n}\n})();\nreturn (new taoensso.telemere.impl.SpyOpts(new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303).cljs$core$IFn$_invoke$arity$1(G__36241),new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618).cljs$core$IFn$_invoke$arity$1(G__36241),new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948).cljs$core$IFn$_invoke$arity$1(G__36241),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * ?SpyOpts\n */\ntaoensso.telemere.impl._STAR_sig_spy_STAR_ \x3d null;\ntaoensso.telemere.impl.force_msg_in_sig \x3d (function taoensso$telemere$impl$force_msg_in_sig(sig){\nif((!(cljs.core.map_QMARK_(sig)))){\nreturn sig;\n} else {\nvar temp__5823__auto__ \x3d cljs.core.find(sig,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar e \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(sig,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),cljs.core.force(cljs.core.val(e)));\n} else {\nreturn sig;\n}\n}\n});\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n */\ntaoensso.telemere.impl.dispatch_signal_BANG_ \x3d (function taoensso$telemere$impl$dispatch_signal_BANG_(signal){\nvar or__5025__auto__ \x3d (function (){var temp__5825__auto__ \x3d taoensso.telemere.impl._STAR_sig_spy_STAR_;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__36259 \x3d temp__5825__auto__;\nvar map__36259__$1 \x3d cljs.core.__destructure_map(map__36259);\nvar vol_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36259__$1,new cljs.core.Keyword(null,\x22vol_\x22,\x22vol_\x22,-461594303));\nvar last_only_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36259__$1,new cljs.core.Keyword(null,\x22last-only?\x22,\x22last-only?\x22,159474618));\nvar trap_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36259__$1,new cljs.core.Keyword(null,\x22trap?\x22,\x22trap?\x22,-752190948));\nvar sv_36302 \x3d taoensso.encore.signals.signal_value(signal,null);\nif(cljs.core.truth_(last_only_QMARK_)){\ncljs.core.vreset_BANG_(vol_,sv_36302);\n} else {\ncljs.core._vreset_BANG_(vol_,(function (p1__36258_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d p1__36258_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),sv_36302);\n})(cljs.core._deref(vol_)));\n}\n\nif(cljs.core.truth_(trap_QMARK_)){\nreturn new cljs.core.Keyword(null,\x22trapped\x22,\x22trapped\x22,-1135045162);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d taoensso.encore.signals.call_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_,signal);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22dispatched\x22,\x22dispatched\x22,-305136936);\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n*/\ntaoensso.telemere.impl.RunResult \x3d (function (value,error,run_nsecs){\nthis.value \x3d value;\nthis.error \x3d error;\nthis.run_nsecs \x3d run_nsecs;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(taoensso.telemere.impl.RunResult.prototype.call \x3d (function (unused__11804__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__36261 \x3d (arguments.length - (1));\nswitch (G__36261) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.apply \x3d (function (self__,args36260){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args36260)));\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.error)){\nthrow self__.error;\n} else {\nreturn self__.value;\n}\n}));\n\n(taoensso.telemere.impl.RunResult.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (signal_){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.error)){\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.telemere.impl\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [473,7], null),\x22Signal `:run` form error\x22,(function (){try{return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22taoensso.telemere\x22,\x22signal\x22,\x22taoensso.telemere/signal\x22,1391011740),cljs.core.force(signal_)], null);\n}catch (e36262){var t \x3d e36262;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22taoensso.telemere\x22,\x22signal-error\x22,\x22taoensso.telemere/signal-error\x22,366067440),t], null);\n}})(),self__.error);\n} else {\nreturn self__.value;\n}\n}));\n\n(taoensso.telemere.impl.RunResult.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22run-nsecs\x22,\x22run-nsecs\x22,1673153251,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null)], null))], null);\n}));\n\n(taoensso.telemere.impl.RunResult.cljs$lang$type \x3d true);\n\n(taoensso.telemere.impl.RunResult.cljs$lang$ctorStr \x3d \x22taoensso.telemere.impl/RunResult\x22);\n\n(taoensso.telemere.impl.RunResult.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.telemere.impl/RunResult\x22);\n}));\n\n/**\n * Positional factory function for taoensso.telemere.impl/RunResult.\n */\ntaoensso.telemere.impl.__GT_RunResult \x3d (function taoensso$telemere$impl$__GT_RunResult(value,error,run_nsecs){\nreturn (new taoensso.telemere.impl.RunResult(value,error,run_nsecs));\n});\n\n/**\n * Returns given platform instant plus given number of nanosecs.\n */\ntaoensso.telemere.impl.inst_PLUS_nsecs \x3d (function taoensso$telemere$impl$inst_PLUS_nsecs(inst,run_nsecs){\nreturn (new Date((inst.getTime() + (run_nsecs / 1000000.0))));\n});\n"); +SHADOW_ENV.evalLoad("taoensso.telemere.utils.js", true, "goog.provide(\x27taoensso.telemere.utils\x27);\n/**\n * `:info` -\x3e \x22INFO\x22,\n * `5` -\x3e \x22LEVEL:5\x22, etc.\n */\ntaoensso.telemere.utils.format_level \x3d taoensso.encore.signals.format_level;\n\n/**\n * `:foo.bar/baz` -\x3e \x22::baz\x22, etc.\n */\ntaoensso.telemere.utils.format_id \x3d taoensso.encore.signals.format_id;\n/**\n * Alpha, subject to change.\n * Returns a (fn nano-uid [root?]) that returns a random nano-style uid string like:\n * \x22r76-B8LoIPs5lBG1_Uhdy\x22 - 126 bit (21 char) root uid\n * \x22tMEYoZH0K-\x22 - 60 bit (10 char) non-root (child) uid\n */\ntaoensso.telemere.utils.nano_uid_fn \x3d (function taoensso$telemere$utils$nano_uid_fn(var_args){\nvar G__36284 \x3d arguments.length;\nswitch (G__36284) {\ncase 0:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36286){\nvar map__36287 \x3d p__36286;\nvar map__36287__$1 \x3d cljs.core.__destructure_map(map__36287);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36287__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36287__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(21));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36287__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(10));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nreturn (function taoensso$telemere$utils$nano_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,root_len__$1);\n} else {\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,child_len__$1);\n}\n});\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:\n * \x2205039666eb9dc3206475f44ab9f3d843\x22 - 128 bit (32 char) root uid\n * \x22721fcef639a51513\x22 - 64 bit (16 char) non-root (child) uid\n */\ntaoensso.telemere.utils.hex_uid_fn \x3d (function taoensso$telemere$utils$hex_uid_fn(var_args){\nvar G__36289 \x3d arguments.length;\nswitch (G__36289) {\ncase 0:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36290){\nvar map__36291 \x3d p__36290;\nvar map__36291__$1 \x3d cljs.core.__destructure_map(map__36291);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36291__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36291__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(32));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36291__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(16));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nvar rand_bytes_fn \x3d (cljs.core.truth_(secure_QMARK_)?cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true):cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,false));\nvar hex_uid_root \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),root_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nvar hex_uid_child \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),child_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nreturn (function taoensso$telemere$utils$hex_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn hex_uid_root();\n} else {\nreturn hex_uid_child();\n}\n});\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Private, don\x27t use.\n * Returns (fn uid [root?]) for given uid kind.\n */\ntaoensso.telemere.utils.parse_uid_fn \x3d (function taoensso$telemere$utils$parse_uid_fn(kind){\nvar G__36292 \x3d kind;\nvar G__36292__$1 \x3d (((G__36292 instanceof cljs.core.Keyword))?G__36292.fqn:null);\nswitch (G__36292__$1) {\ncase \x22uuid\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid();\n});\n\nbreak;\ncase \x22uuid-str\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0();\n});\n\nbreak;\ncase \x22default\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ndefault:\nvar or__5025__auto__ \x3d ((cljs.core.vector_QMARK_(kind))?(function (){var vec__36293 \x3d kind;\nvar kind__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(0),null);\nvar root_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(1),null);\nvar child_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(2),null);\nvar G__36296 \x3d kind__$1;\nvar G__36296__$1 \x3d (((G__36296 instanceof cljs.core.Keyword))?G__36296.fqn:null);\nswitch (G__36296__$1) {\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [122,7], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22uid-fn\x22,\x22taoensso.telemere.utils/uid-fn\x22,790130699,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 11, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),\x22null\x22,new cljs.core.Keyword(null,\x22uuid-str\x22,\x22uuid-str\x22,358395442),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),\x22null\x22,new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),\x22null\x22], null), null)], null));\n}\n\n}\n});\n/**\n * Single system newline\n */\ntaoensso.telemere.utils.newline \x3d \x22\\n\x22;\n\n/**\n * Prints given arg to an edn string readable with `read-edn`.\n */\ntaoensso.telemere.utils.pr_edn \x3d taoensso.encore.pr_edn;\n\n/**\n * Returns a random UUID string of given length (max 36).\n * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.telemere.utils.uuid_str \x3d taoensso.encore.uuid_str;\n\n/**\n * Returns given Cljs argument as JSON string.\n */\ntaoensso.telemere.utils.pr_json \x3d taoensso.encore.pr_json;\n/**\n * Returns JavaScript console logger to match given signal level:\n * `:debug` -\x3e `js/console.debug`,\n * `:error` -\x3e `js/console.error`, etc.\n * \n * Defaults to `js.console.log` for unmatched signal levels.\n * NB: assumes that `js/console` exists, handler constructors should check first!\n */\ntaoensso.telemere.utils.js_console_logger \x3d (function taoensso$telemere$utils$js_console_logger(level){\nvar G__36297 \x3d level;\nvar G__36297__$1 \x3d (((G__36297 instanceof cljs.core.Keyword))?G__36297.fqn:null);\nswitch (G__36297__$1) {\ncase \x22trace\x22:\nreturn console.debug;\n\nbreak;\ncase \x22debug\x22:\nreturn console.debug;\n\nbreak;\ncase \x22info\x22:\nreturn console.info;\n\nbreak;\ncase \x22warn\x22:\nreturn console.warn;\n\nbreak;\ncase \x22error\x22:\nreturn console.error;\n\nbreak;\ncase \x22fatal\x22:\nreturn console.error;\n\nbreak;\ncase \x22report\x22:\nreturn console.info;\n\nbreak;\ndefault:\nreturn console.log;\n\n}\n});\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.utils.error_signal_QMARK_ \x3d (function taoensso$telemere$utils$error_signal_QMARK_(signal){\nvar and__5023__auto__ \x3d signal;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.boolean$((function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.keyword_identical_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803)),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d (function (){var G__36298 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar G__36298__$1 \x3d (((G__36298 instanceof cljs.core.Keyword))?G__36298.fqn:null);\nswitch (G__36298__$1) {\ncase \x22error\x22:\ncase \x22fatal\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error?\x22,\x22error?\x22,-460689159));\n}\n}\n}\n})());\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal without app-level kvs or `:kvs` key.\n */\ntaoensso.telemere.utils.remove_signal_kvs \x3d (function taoensso$telemere$utils$remove_signal_kvs(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar kvs \x3d temp__5823__auto__;\nreturn cljs.core.reduce_kv((function (m,k,_v){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492)),kvs);\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with nil-valued keys removed.\n */\ntaoensso.telemere.utils.remove_signal_nils \x3d (function taoensso$telemere$utils$remove_signal_nils(signal){\nif(taoensso.encore.editable_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn m;\n}\n}),cljs.core.transient$(signal),signal));\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:msg_` value forced (realized when a delay).\n */\ntaoensso.telemere.utils.force_signal_msg \x3d (function taoensso$telemere$utils$force_signal_msg(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar msg_ \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),cljs.core.force(msg_));\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:error` replaced by\n * [{:keys [type msg data]} ...] cause chain.\n */\ntaoensso.telemere.utils.expand_signal_error \x3d (function taoensso$telemere$utils$expand_signal_error(signal){\nvar b2__30646__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar error \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),error);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar chain \x3d b2__30646__auto____$1;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),chain);\n} else {\nreturn signal;\n}\n} else {\nreturn signal;\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn format [nanosecs]) that:\n * - Takes a long nanoseconds (e.g. runtime).\n * - Returns a human-readable string like:\n * \x221.00m\x22, \x224.20s\x22, \x22340ms\x22, \x22822\u03bcs\x22, etc.\n */\ntaoensso.telemere.utils.format_nsecs_fn \x3d (function taoensso$telemere$utils$format_nsecs_fn(var_args){\nvar G__36303 \x3d arguments.length;\nswitch (G__36303) {\ncase 0:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36305){\nvar map__36306 \x3d p__36305;\nvar map__36306__$1 \x3d cljs.core.__destructure_map(map__36306);\nvar _opts \x3d map__36306__$1;\nreturn (function taoensso$telemere$utils$format_nsecs(nanosecs){\nreturn taoensso.encore.format_nsecs(nanosecs);\n});\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Experimental, subject to change without notice.\n * \n * Returns a (fn format [instant]) that:\n * - Takes a platform instant (`java.time.Instant` or `js/Date`).\n * - Returns a formatted human-readable instant string.\n * \n * Options:\n * `:formatter`\n * Clj: `java.time.format.DateTimeFormatter`\n * Cljs: `goog.i18n.DateTimeFormat`\n * \n * Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n * e.g.: \x222011-12-03T10:15:130Z\x22.\n * \n * `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n * Note that zone may be ignored by some `DateTimeFormatter`s,\n * including the default (`DateTimeFormatter/ISO_INSTANT`)!\n */\ntaoensso.telemere.utils.format_inst_fn \x3d taoensso.encore.format_inst_fn;\n/**\n * Alpha, subject to change.\n * Returns a (fn format [error]) that:\n * - Takes a platform error (`Throwable` or `js/Error`).\n * - Returns a human-readable error string.\n */\ntaoensso.telemere.utils.format_error_fn \x3d (function taoensso$telemere$utils$format_error_fn(var_args){\nvar G__36308 \x3d arguments.length;\nswitch (G__36308) {\ncase 0:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36309){\nvar map__36310 \x3d p__36309;\nvar map__36310__$1 \x3d cljs.core.__destructure_map(map__36310);\nvar _opts \x3d map__36310__$1;\nvar nl \x3d \x22\\n\x22;\nvar nls \x3d taoensso.encore.newlines;\nreturn (function taoensso$telemere$utils$format_error(error){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_map(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar em \x3d temp__5825__auto__;\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_ \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.sb_append,sb);\nvar map__36311 \x3d em;\nvar map__36311__$1 \x3d cljs.core.__destructure_map(map__36311);\nvar chain \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36311__$1,new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029));\nvar trace \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36311__$1,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415));\nvar s_PLUS_cause_36389 \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,[nls,\x22Caused: \x22].join(\x27\x27));\ns_PLUS_(\x22Root: \x22);\n\nvar seq__36312_36390 \x3d cljs.core.seq(cljs.core.rseq(chain));\nvar chunk__36313_36391 \x3d null;\nvar count__36314_36392 \x3d (0);\nvar i__36315_36393 \x3d (0);\nwhile(true){\nif((i__36315_36393 \x3c count__36314_36392)){\nvar map__36318_36394 \x3d chunk__36313_36391.cljs$core$IIndexed$_nth$arity$2(null,i__36315_36393);\nvar map__36318_36395__$1 \x3d cljs.core.__destructure_map(map__36318_36394);\nvar type_36396 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_36397 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_36398 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_36389(type_36396,\x22 - \x22,msg_36397);\n\nif(cljs.core.truth_(data_36398)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_36398));\n} else {\n}\n\n\nvar G__36399 \x3d seq__36312_36390;\nvar G__36400 \x3d chunk__36313_36391;\nvar G__36401 \x3d count__36314_36392;\nvar G__36402 \x3d (i__36315_36393 + (1));\nseq__36312_36390 \x3d G__36399;\nchunk__36313_36391 \x3d G__36400;\ncount__36314_36392 \x3d G__36401;\ni__36315_36393 \x3d G__36402;\ncontinue;\n} else {\nvar temp__5825__auto___36403__$1 \x3d cljs.core.seq(seq__36312_36390);\nif(temp__5825__auto___36403__$1){\nvar seq__36312_36404__$1 \x3d temp__5825__auto___36403__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__36312_36404__$1)){\nvar c__5548__auto___36405 \x3d cljs.core.chunk_first(seq__36312_36404__$1);\nvar G__36406 \x3d cljs.core.chunk_rest(seq__36312_36404__$1);\nvar G__36407 \x3d c__5548__auto___36405;\nvar G__36408 \x3d cljs.core.count(c__5548__auto___36405);\nvar G__36409 \x3d (0);\nseq__36312_36390 \x3d G__36406;\nchunk__36313_36391 \x3d G__36407;\ncount__36314_36392 \x3d G__36408;\ni__36315_36393 \x3d G__36409;\ncontinue;\n} else {\nvar map__36319_36410 \x3d cljs.core.first(seq__36312_36404__$1);\nvar map__36319_36411__$1 \x3d cljs.core.__destructure_map(map__36319_36410);\nvar type_36412 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_36413 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_36414 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_36389(type_36412,\x22 - \x22,msg_36413);\n\nif(cljs.core.truth_(data_36414)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_36414));\n} else {\n}\n\n\nvar G__36415 \x3d cljs.core.next(seq__36312_36404__$1);\nvar G__36416 \x3d null;\nvar G__36417 \x3d (0);\nvar G__36418 \x3d (0);\nseq__36312_36390 \x3d G__36415;\nchunk__36313_36391 \x3d G__36416;\ncount__36314_36392 \x3d G__36417;\ni__36315_36393 \x3d G__36418;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core.truth_(trace)){\ns_PLUS_(nl,nl,\x22Root stack trace:\x22,nl);\n\ns_PLUS_(trace);\n} else {\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn preamble [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a signal preamble ?string like:\n * \x222024-03-26T11:14:51.806Z INFO EVENT Hostname taoensso.telemere[2,21] ::ev-id msg\x22\n * \n * Options:\n * `:format-inst-fn` - (fn format [instant]) \x3d\x3e string.\n * `:format-id-fn` --- (fn format [ns id]) \x3d\x3e string.\n * `:format-msg-fn` -- (fn format [msg]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_preamble_fn \x3d (function taoensso$telemere$utils$signal_preamble_fn(var_args){\nvar G__36321 \x3d arguments.length;\nswitch (G__36321) {\ncase 0:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36322){\nvar map__36323 \x3d p__36322;\nvar map__36323__$1 \x3d cljs.core.__destructure_map(map__36323);\nvar format_inst_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-inst-fn\x22,\x22format-inst-fn\x22,518148350),(taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.utils.format_inst_fn.call(null)));\nvar format_id_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-id-fn\x22,\x22format-id-fn\x22,513589829),taoensso.telemere.utils.format_id);\nvar format_msg_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-msg-fn\x22,\x22format-msg-fn\x22,-1387049398),cljs.core.identity);\nreturn (function taoensso$telemere$utils$signal_preamble(signal){\nvar map__36324 \x3d signal;\nvar map__36324__$1 \x3d cljs.core.__destructure_map(map__36324);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar msg_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_spc \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,\x22 \x22);\nif(cljs.core.truth_(inst)){\nvar temp__5825__auto___36422 \x3d format_inst_fn;\nif(cljs.core.truth_(temp__5825__auto___36422)){\nvar ff_36423 \x3d temp__5825__auto___36422;\ns_PLUS_spc((ff_36423.cljs$core$IFn$_invoke$arity$1 ? ff_36423.cljs$core$IFn$_invoke$arity$1(inst) : ff_36423.call(null,inst)));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(level)){\ns_PLUS_spc((taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1 ? taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1(level) : taoensso.telemere.utils.format_level.call(null,level)));\n} else {\n}\n\nif(cljs.core.truth_(kind)){\ns_PLUS_spc((taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1(kind) : taoensso.encore.signals.upper_qn.call(null,kind)));\n} else {\n}\n\nif(cljs.core.truth_(ns)){\ns_PLUS_spc(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2(ns,cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112))));\n} else {\n}\n\nif(cljs.core.truth_(id)){\nvar temp__5825__auto___36425 \x3d format_id_fn;\nif(cljs.core.truth_(temp__5825__auto___36425)){\nvar ff_36426 \x3d temp__5825__auto___36425;\ns_PLUS_spc((ff_36426.cljs$core$IFn$_invoke$arity$2 ? ff_36426.cljs$core$IFn$_invoke$arity$2(ns,id) : ff_36426.call(null,ns,id)));\n} else {\n}\n} else {\n}\n\nvar b2__30646__auto___36427 \x3d format_msg_fn;\nif(cljs.core.truth_(b2__30646__auto___36427)){\nvar ff_36428 \x3d b2__30646__auto___36427;\nvar b2__30646__auto___36429__$1 \x3d cljs.core.force(msg_);\nif(cljs.core.truth_(b2__30646__auto___36429__$1)){\nvar msg_36430 \x3d b2__30646__auto___36429__$1;\ns_PLUS_spc((ff_36428.cljs$core$IFn$_invoke$arity$1 ? ff_36428.cljs$core$IFn$_invoke$arity$1(msg_36430) : ff_36428.call(null,msg_36430)));\n} else {\n}\n} else {\n}\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.utils.format_parent \x3d (function taoensso$telemere$utils$format_parent(ns,p__36325){\nvar map__36326 \x3d p__36325;\nvar map__36326__$1 \x3d cljs.core.__destructure_map(map__36326);\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36326__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar uid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36326__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nif(cljs.core.truth_(id)){\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id))),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id)))], null);\n}\n} else {\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn content [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal content ?string (incl. data, ctx, etc.).\n * \n * Options:\n * `:raw-error?` ------ Retain unformatted error? (default false)\n * `:incl-keys` ------- Subset of signal keys to retain from those\n * otherwise excluded by default: #{:kvs :host :thread}\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * `:format-error-fn` - (fn [error]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_content_fn \x3d (function taoensso$telemere$utils$signal_content_fn(var_args){\nvar G__36328 \x3d arguments.length;\nswitch (G__36328) {\ncase 0:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36329){\nvar map__36330 \x3d p__36329;\nvar map__36330__$1 \x3d cljs.core.__destructure_map(map__36330);\nvar raw_error_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36330__$1,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36330__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36330__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_error_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36330__$1,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nvar err_start \x3d [nl,\x22\x3c\x3c\x3c error \x3c\x3c\x3c\x22,nl].join(\x27\x27);\nvar err_stop \x3d [nl,\x22\x3e\x3e\x3e error \x3e\x3e\x3e\x22].join(\x27\x27);\nvar incl_kvs_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function() {\nvar taoensso$telemere$utils$signal_content \x3d null;\nvar taoensso$telemere$utils$signal_content__1 \x3d (function (signal){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS__PLUS_ \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,nl);\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3(signal,s_PLUS__PLUS_,taoensso.encore.pr_edn_STAR_);\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\nvar taoensso$telemere$utils$signal_content__3 \x3d (function (signal,append_fn,val_fn){\nvar af \x3d append_fn;\nvar vf \x3d val_fn;\nvar map__36331_36433 \x3d signal;\nvar map__36331_36434__$1 \x3d cljs.core.__destructure_map(map__36331_36433);\nvar ns_36435 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar uid_36436 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nvar parent_36437 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\nvar root_36438 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar data_36439 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar kvs_36440 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar ctx_36441 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118));\nvar sample_36442 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nif(cljs.core.truth_(sample_36442)){\nvar G__36332_36444 \x3d \x22 sample: \x22;\nvar G__36333_36445 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(sample_36442) : vf.call(null,sample_36442));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36332_36444,G__36333_36445) : af.call(null,G__36332_36444,G__36333_36445));\n} else {\n}\n\nif(cljs.core.truth_(uid_36436)){\nvar G__36334_36446 \x3d \x22 uid: \x22;\nvar G__36335_36447 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(uid_36436) : vf.call(null,uid_36436));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36334_36446,G__36335_36447) : af.call(null,G__36334_36446,G__36335_36447));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d parent_36437;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(parent_36437,root_36438);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__36336_36448 \x3d \x22 parent: \x22;\nvar G__36337_36449 \x3d (function (){var G__36338 \x3d taoensso.telemere.utils.format_parent(ns_36435,parent_36437);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__36338) : vf.call(null,G__36338));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36336_36448,G__36337_36449) : af.call(null,G__36336_36448,G__36337_36449));\n} else {\n}\n\nif(cljs.core.truth_(root_36438)){\nvar G__36339_36451 \x3d \x22 root: \x22;\nvar G__36340_36452 \x3d (function (){var G__36341 \x3d taoensso.telemere.utils.format_parent(ns_36435,root_36438);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__36341) : vf.call(null,G__36341));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36339_36451,G__36340_36452) : af.call(null,G__36339_36451,G__36340_36452));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(data_36439))){\nvar G__36342_36454 \x3d \x22 data: \x22;\nvar G__36343_36455 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(data_36439) : vf.call(null,data_36439));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36342_36454,G__36343_36455) : af.call(null,G__36342_36454,G__36343_36455));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(ctx_36441))){\nvar G__36344_36456 \x3d \x22 ctx: \x22;\nvar G__36345_36457 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(ctx_36441) : vf.call(null,ctx_36441));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36344_36456,G__36345_36457) : af.call(null,G__36344_36456,G__36345_36457));\n} else {\n}\n\nif((cljs.core.truth_(kvs_36440)?incl_kvs_QMARK_:false)){\nvar G__36346_36458 \x3d \x22 kvs: \x22;\nvar G__36347_36459 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(kvs_36440) : vf.call(null,kvs_36440));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36346_36458,G__36347_36459) : af.call(null,G__36346_36458,G__36347_36459));\n} else {\n}\n\nvar map__36348 \x3d signal;\nvar map__36348__$1 \x3d cljs.core.__destructure_map(map__36348);\nvar run_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36348__$1,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36348__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(run_form)){\nvar map__36349_36460 \x3d signal;\nvar map__36349_36461__$1 \x3d cljs.core.__destructure_map(map__36349_36460);\nvar run_val_36462 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36349_36461__$1,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520));\nvar run_nsecs_36463 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36349_36461__$1,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724));\nvar run_time_36464 \x3d (cljs.core.truth_(run_nsecs_36463)?(function (){var temp__5825__auto__ \x3d format_nsecs_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nreturn (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(run_nsecs_36463) : ff.call(null,run_nsecs_36463));\n} else {\nreturn null;\n}\n})():null);\nvar run_info_36465 \x3d (cljs.core.truth_(error)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_36464,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_36463], null):new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_36464,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_36463,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),run_val_36462], null));\nvar G__36350_36467 \x3d \x22 run: \x22;\nvar G__36351_36468 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(run_info_36465) : vf.call(null,run_info_36465));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36350_36467,G__36351_36468) : af.call(null,G__36350_36467,G__36351_36468));\n} else {\n}\n\nif(cljs.core.truth_(error)){\nif(cljs.core.truth_(raw_error_QMARK_)){\nreturn (af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(\x22 error: \x22,error) : af.call(null,\x22 error: \x22,error));\n} else {\nvar temp__5825__auto__ \x3d format_error_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nvar G__36352 \x3d err_start;\nvar G__36353 \x3d (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(error) : ff.call(null,error));\nvar G__36354 \x3d err_stop;\nreturn (af.cljs$core$IFn$_invoke$arity$3 ? af.cljs$core$IFn$_invoke$arity$3(G__36352,G__36353,G__36354) : af.call(null,G__36352,G__36353,G__36354));\n} else {\nreturn null;\n}\n}\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$utils$signal_content \x3d function(signal,append_fn,val_fn){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$telemere$utils$signal_content__1.call(this,signal);\ncase 3:\nreturn taoensso$telemere$utils$signal_content__3.call(this,signal,append_fn,val_fn);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$utils$signal_content__1;\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$telemere$utils$signal_content__3;\nreturn taoensso$telemere$utils$signal_content;\n})()\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.utils.clean_signal_fn \x3d (function taoensso$telemere$utils$clean_signal_fn(var_args){\nvar G__36356 \x3d arguments.length;\nswitch (G__36356) {\ncase 0:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36357){\nvar map__36358 \x3d p__36357;\nvar map__36358__$1 \x3d cljs.core.__destructure_map(map__36358);\nvar opts \x3d map__36358__$1;\nvar incl_kvs_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-kvs?\x22,\x22incl-kvs?\x22,1936239040));\nvar incl_nils_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-nils?\x22,\x22incl-nils?\x22,-1704506526));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar assoc_BANG__STAR_ \x3d ((cljs.core.not(incl_nils_QMARK_))?(function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}):cljs.core.assoc_BANG_);\nvar incl_schema_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791));\nvar incl_kvs_key_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function taoensso$telemere$utils$clean_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nvar G__36363 \x3d k;\nvar G__36363__$1 \x3d (((G__36363 instanceof cljs.core.Keyword))?G__36363.fqn:null);\nswitch (G__36363__$1) {\ncase \x22data\x22:\ncase \x22run-nsecs\x22:\ncase \x22ctx\x22:\ncase \x22kind\x22:\ncase \x22id\x22:\ncase \x22root\x22:\ncase \x22sample\x22:\ncase \x22level\x22:\ncase \x22ns\x22:\ncase \x22uid\x22:\ncase \x22run-val\x22:\ncase \x22coords\x22:\ncase \x22parent\x22:\ncase \x22inst\x22:\ncase \x22run-form\x22:\ncase \x22end-inst\x22:\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n\nbreak;\ncase \x22error\x22:\nvar temp__5823__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),v);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar chain \x3d temp__5823__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,chain);\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22msg_\x22:\nvar G__36364 \x3d m;\nvar G__36365 \x3d k;\nvar G__36366 \x3d cljs.core.force(v);\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(G__36364,G__36365,G__36366) : assoc_BANG__STAR_.call(null,G__36364,G__36365,G__36366));\n\nbreak;\ncase \x22_otel-context\x22:\nreturn m;\n\nbreak;\ncase \x22schema\x22:\nif(incl_schema_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22kvs\x22:\nif(incl_kvs_key_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22thread\x22:\nif(incl_thread_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22host\x22:\nif(incl_host_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ndefault:\nif(cljs.core.truth_(incl_kvs_QMARK_)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nif(cljs.core.contains_QMARK_(incl_keys,k)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n}\n\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.utils.pr_signal_fn \x3d (function taoensso$telemere$utils$pr_signal_fn(var_args){\nvar G__36368 \x3d arguments.length;\nswitch (G__36368) {\ncase 0:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36369){\nvar map__36370 \x3d p__36369;\nvar map__36370__$1 \x3d cljs.core.__destructure_map(map__36370);\nvar opts \x3d map__36370__$1;\nvar pr_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22pr-fn\x22,\x22pr-fn\x22,2001500794),new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885));\nvar clean_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22clean-fn\x22,\x22clean-fn\x22,-1262646726),taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0());\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar nl \x3d taoensso.telemere.utils.newline;\nvar pr_fn__$1 \x3d (function (){var G__36371 \x3d pr_fn;\nvar G__36371__$1 \x3d (((G__36371 instanceof cljs.core.Keyword))?G__36371.fqn:null);\nswitch (G__36371__$1) {\ncase \x22edn\x22:\nreturn taoensso.telemere.utils.pr_edn;\n\nbreak;\ncase \x22json\x22:\nreturn taoensso.telemere.utils.pr_json;\n\nbreak;\ndefault:\nif(cljs.core.fn_QMARK_(pr_fn)){\nreturn pr_fn;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [762,16], null),pr_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pr-fn\x22,\x22pr-fn\x22,-652934975,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22pr-signal-fn\x22,\x22taoensso.telemere.utils/pr-signal-fn\x22,-829484633,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22unary-fn\x22,\x22unary-fn\x22,1332940686,null),\x22null\x22,new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885),\x22null\x22,new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),\x22null\x22], null), null)], null));\n}\n\n}\n})();\nreturn (function taoensso$telemere$utils$pr_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nif(cljs.core.truth_(incl_newline_QMARK_)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__36373 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__36373) : pr_fn__$1.call(null,G__36373));\n})()),nl].join(\x27\x27);\n} else {\nvar G__36374 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__36374) : pr_fn__$1.call(null,G__36374));\n}\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.utils.format_signal_fn \x3d (function taoensso$telemere$utils$format_signal_fn(var_args){\nvar G__36376 \x3d arguments.length;\nswitch (G__36376) {\ncase 0:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36377){\nvar map__36378 \x3d p__36377;\nvar map__36378__$1 \x3d cljs.core.__destructure_map(map__36378);\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar content_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22content-fn\x22,\x22content-fn\x22,-1280686114),taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nreturn (function taoensso$telemere$utils$format_signal(signal){\nvar preamble \x3d (cljs.core.truth_(preamble_fn)?(preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)):null);\nvar content \x3d (cljs.core.truth_(content_fn)?(content_fn.cljs$core$IFn$_invoke$arity$1 ? content_fn.cljs$core$IFn$_invoke$arity$1(signal) : content_fn.call(null,signal)):null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d preamble;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn content;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),nl,cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n}\n});\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n"); +SHADOW_ENV.evalLoad("taoensso.telemere.consoles.js", true, "goog.provide(\x27taoensso.telemere.consoles\x27);\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.consoles.handler_COLON_console \x3d (function taoensso$telemere$consoles$handler_COLON_console(var_args){\nvar G__36388 \x3d arguments.length;\nswitch (G__36388) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36419){\nvar map__36420 \x3d p__36419;\nvar map__36420__$1 \x3d cljs.core.__destructure_map(map__36420);\nvar output_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36420__$1,new cljs.core.Keyword(null,\x22output-fn\x22,\x22output-fn\x22,1600951539),taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0());\nif((typeof console !\x3d\x3d \x27undefined\x27)){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console__1 \x3d (function (signal){\nvar temp__5825__auto__ \x3d (output_fn.cljs$core$IFn$_invoke$arity$1 ? output_fn.cljs$core$IFn$_invoke$arity$1(signal) : output_fn.call(null,signal));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar output \x3d temp__5825__auto__;\nvar logger \x3d (function (){var G__36424 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nreturn (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(G__36424) : js_console_logger.call(null,G__36424));\n})();\nreturn logger.call(logger,cljs.core.str.cljs$core$IFn$_invoke$arity$1(output));\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$consoles$a_handler_COLON_console \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console__0;\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.consoles.logger_fn \x3d (function taoensso$telemere$consoles$logger_fn(logger){\nreturn (function() {\nvar G__36472 \x3d null;\nvar G__36472__1 \x3d (function (x1){\nreturn logger.call(logger,x1);\n});\nvar G__36472__2 \x3d (function (x1,x2){\nreturn logger.call(logger,x1,x2);\n});\nvar G__36472__3 \x3d (function (x1,x2,x3){\nreturn logger.call(logger,x1,x2,x3);\n});\nvar G__36472__4 \x3d (function() { \nvar G__36473__delegate \x3d function (x1,x2,x3,more){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(logger,x1,x2,x3,more);\n};\nvar G__36473 \x3d function (x1,x2,x3,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 3) {\nvar G__36474__i \x3d 0, G__36474__a \x3d new Array(arguments.length - 3);\nwhile (G__36474__i \x3c G__36474__a.length) {G__36474__a[G__36474__i] \x3d arguments[G__36474__i + 3]; ++G__36474__i;}\n more \x3d new cljs.core.IndexedSeq(G__36474__a,0,null);\n} \nreturn G__36473__delegate.call(this,x1,x2,x3,more);};\nG__36473.cljs$lang$maxFixedArity \x3d 3;\nG__36473.cljs$lang$applyTo \x3d (function (arglist__36475){\nvar x1 \x3d cljs.core.first(arglist__36475);\narglist__36475 \x3d cljs.core.next(arglist__36475);\nvar x2 \x3d cljs.core.first(arglist__36475);\narglist__36475 \x3d cljs.core.next(arglist__36475);\nvar x3 \x3d cljs.core.first(arglist__36475);\nvar more \x3d cljs.core.rest(arglist__36475);\nreturn G__36473__delegate(x1,x2,x3,more);\n});\nG__36473.cljs$core$IFn$_invoke$arity$variadic \x3d G__36473__delegate;\nreturn G__36473;\n})()\n;\nG__36472 \x3d function(x1,x2,x3,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 1:\nreturn G__36472__1.call(this,x1);\ncase 2:\nreturn G__36472__2.call(this,x1,x2);\ncase 3:\nreturn G__36472__3.call(this,x1,x2,x3);\ndefault:\nvar G__36476 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__36477__i \x3d 0, G__36477__a \x3d new Array(arguments.length - 3);\nwhile (G__36477__i \x3c G__36477__a.length) {G__36477__a[G__36477__i] \x3d arguments[G__36477__i + 3]; ++G__36477__i;}\nG__36476 \x3d new cljs.core.IndexedSeq(G__36477__a,0,null);\n}\nreturn G__36472__4.cljs$core$IFn$_invoke$arity$variadic(x1,x2,x3, G__36476);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__36472.cljs$lang$maxFixedArity \x3d 3;\nG__36472.cljs$lang$applyTo \x3d G__36472__4.cljs$lang$applyTo;\nG__36472.cljs$core$IFn$_invoke$arity$1 \x3d G__36472__1;\nG__36472.cljs$core$IFn$_invoke$arity$2 \x3d G__36472__2;\nG__36472.cljs$core$IFn$_invoke$arity$3 \x3d G__36472__3;\nG__36472.cljs$core$IFn$_invoke$arity$variadic \x3d G__36472__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__36472;\n})()\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.consoles.handler_COLON_console_raw \x3d (function taoensso$telemere$consoles$handler_COLON_console_raw(var_args){\nvar G__36443 \x3d arguments.length;\nswitch (G__36443) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36450){\nvar map__36453 \x3d p__36450;\nvar map__36453__$1 \x3d cljs.core.__destructure_map(map__36453);\nvar opts \x3d map__36453__$1;\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36453__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36453__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nif((((typeof console !\x3d\x3d \x27undefined\x27)) \x26\x26 ((typeof console !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof console.group !\x3d\x3d \x27undefined\x27)))){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nvar content_fn \x3d taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),format_nsecs_fn,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),null,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940),true], null));\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__1 \x3d (function (signal){\nvar map__36466 \x3d signal;\nvar map__36466__$1 \x3d cljs.core.__destructure_map(map__36466);\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36466__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36466__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar logger \x3d (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(level) : js_console_logger.call(null,level));\nconsole.group((preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)));\n\ncontent_fn(signal,taoensso.telemere.consoles.logger_fn(logger),cljs.core.identity);\n\nvar temp__5825__auto___36480 \x3d (function (){var and__5023__auto__ \x3d error;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn taoensso.truss.ex_root(error).stack;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___36480)){\nvar stack_36482 \x3d temp__5825__auto___36480;\nlogger.call(logger,stack_36482);\n} else {\n}\n\nreturn console.groupEnd();\n});\ntaoensso$telemere$consoles$a_handler_COLON_console_raw \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__0;\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$lang$maxFixedArity \x3d 1);\n\n"); +SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.telemere\x27);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * See `help:handler-dispatch-opts` for details.\n */\ntaoensso.telemere.default_handler_dispatch_opts \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.default_handler_dispatch_opts,new cljs.core.Keyword(null,\x22convey-bindings?\x22,\x22convey-bindings?\x22,1403560206));\ntaoensso.telemere.level_aliases \x3d taoensso.encore.signals.level_aliases;\n\n/**\n * A signal will be provided to a handler iff ALL of the following are true:\n * \n * 1. Call filters pass:\n * a. Compile-time: sample rate, kind, ns, id, level, when form, rate limit\n * b. Runtime: sample rate, kind, ns, id, level, when form, rate limit\n * \n * 2. Handler filters pass:\n * a. Compile-time: not applicable\n * b. Runtime: sample rate, kind, ns, id, level, when fn, rate limit\n * \n * 3. Call transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * 4. Handler transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * \n * Transform fns provides a flexible way to modify and/or filter signals by\n * arbitrary signal data/content conditions (return nil to skip handling).\n * \n * Call and handler filters are ADDITIVE, so handlers can be MORE but not LESS\n * restrictive than call filters allow. This makes sense: call filters decide\n * if a signal can be created. Handler filters decide if a particular handler\n * is allowed to handle a created signal.\n * \n * Config:\n * \n * To set call filters (1a, 1b):\n * \n * Use:\n * `set-kind-filter!`, `with-kind-filter`\n * `set-ns-filter!`, `with-ns-filter`\n * `set-id-filter!`, `with-id-filter`\n * `set-min-level!`, `with-min-level`\n * \n * or see `help:environmental-config`.\n * \n * To set handler filters (2b) or transform (4):\n * \n * Provide relevant opts when calling `add-handler!` or `with-handler/+`.\n * See `help:handler-dispatch-options` for details.\n * \n * Note: call filters (1a, 1b) should generally be AT LEAST as permissive\n * as handler filters (2b) since they\x27re always applied first.\n * \n * To set call transform (3): use `set-xfn!`, `with-xfn`.\n * \n * Compile-time vs runtime filtering:\n * \n * Compile-time filters are an advanced feature that can be tricky to set\n * and use correctly. Most folks will want ONLY runtime filters.\n * \n * Compile-time filters works by eliding (completely removing the code for)\n * disallowed calls. This means zero performance cost for these calls, but\n * also means that compile-time filters are PERMANENT once applied.\n * \n * So if you set `:info` as the compile-time minimum level, that\x27ll REMOVE\n * CODE for every signal call below `:info` level. To decrease that minimum\n * level, you\x27ll need to rebuild.\n * \n * Compile-time filters can be set ONLY with environmental config\n * (see `help:environmental-config` for details).\n * \n * Signal and handler sampling is multiplicative:\n * \n * Both calls and handlers can have independent sample rates, and these\n * MULTIPLY! If a signal is created with 20% sampling and a handler\n * handles 50% of received signals, then 10% of possible signals will be\n * handled (50% of 20%).\n * \n * When sampling is active, the final (combined multiplicative) rate is\n * helpfully reflected in each signal\x27s `:sample` rate value \u2208\u211d[0,1].\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_filters \x3d \x22See docstring\x22;\n\n/**\n * Signal handlers process created signals to do something with them (analyse them,\n * write them to console/file/queue/db, etc.).\n * \n * Manage handlers with:\n * \n * `get-handlers` - Returns info on registered handlers (dispatch options, etc.)\n * `get-handlers-stats` - Returns stats for registered handlers (handling times, etc.)\n * \n * `add-handler!` - Registers given handler\n * `remove-handler!` - Unregisters given handler\n * \n * `with-handler` - Executes form with ONLY the given handler registered\n * `with-handler+` - Executes form with the given handler (also) registered\n * \n * `stop-handlers!` - Stops registered handlers\n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See the relevant docstrings for details.\n * See `help:handler-dispatch-options` for handler filters, etc.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handlers \x3d \x22See docstring\x22;\n\n/**\n * Dispatch options can be provided for each signal handler when calling\n * `add-handler!` or `with-handler/+`. These options will be merged over the\n * defaults specified by `default-handler-dispatch-opts`.\n * \n * All handlers support the same dispatch options, including:\n * \n * `:async` (Clj only) - may be `nil` (\x3d\x3e synchronous) or map with options:\n * \n * `:buffer-size` (default 1024)\n * Size of request buffer, and the max number of pending requests before\n * configured back-pressure behaviour is triggered (see `:mode`).\n * \n * `:mode` (default `:blocking`)\n * Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n * Controls what happens when a new request is made while request buffer is full:\n * `:blocking` \x3d\x3e Blocks caller until buffer space is available\n * `:dropping` \x3d\x3e Drops the newest request (noop)\n * `:sliding` \x3d\x3e Drops the oldest request\n * \n * `:n-threads` (default 1)\n * Number of threads to use for executing fns (servicing request buffer).\n * NB handling order guaranteed to be be sequential iff n\x3d1.\n * \n * `:drain-msecs` (default 6000 msecs)\n * Maximum time (in milliseconds) to try allow pending execution requests to\n * complete when stopping handler. nil \x3d\x3e no maximum.\n * \n * `:priority` (default 100)\n * Optional handler priority \u2208\u2124.\n * Handlers will be called in descending priority order (larger ints first).\n * \n * `:track-stats?` (default true)\n * Should handler track statistics (e.g. handling times) for\n * reporting by `get-handlers-stats`?\n * \n * `:sample` (default nil \x3d\x3e no sampling)\n * Optional sample rate \u2208\u211d[0,1], or (fn dyamic-sample-rate []) \x3d\x3e \u211d[0,1].\n * When present, handle only this (random) proportion of signals:\n * 1.0 \x3d\x3e handle 100% of signals (same as nil rate, default)\n * 0.0 \x3d\x3e hanel 0% of signals (noop all)\n * 0.5 \x3d\x3e handle 50% of signals (random)\n * \n * `:kind-filter` - Kind filter as in `set-kind-filter!` (when relevant)\n * `:ns-filter` - Namespace filter as in `set-ns-filter!`\n * `:id-filter` - Id filter as in `set-id-filter!` (when relevant)\n * `:min-level` - Minimum level as in `set-min-level!`\n * \n * ^^ Recall that all handler filters are ADDITIVE: handlers can be MORE\n * (but not LESS) restrictive than call filters allow!\n * \n * `:when-fn` (default nil \x3d\x3e always allow)\n * Optional NULLARY (fn allow? []) that must return truthy for handler to be\n * called. When present, called *after* sampling and other filters, but before\n * rate limiting. Useful for filtering based on external state/context.\n * See `:xfn` for an alternative that takes a signal argument!\n * \n * `:limit` (default nil \x3d\x3e no rate limit)\n * Optional rate limit spec as provided to `taoensso.encore/rate-limiter`,\n * {\x3climit-id\x3e [\x3cn-max-calls\x3e \x3cmsecs-window\x3e]}.\n * \n * Examples:\n * {\x221/sec\x22 [1 1000]} \x3d\x3e Max 1 call per 1000 msecs\n * {\x221/sec\x22 [1 1000]\n * \x2210/min\x22 [10 60000]} \x3d\x3e Max 1 call per 1000 msecs,\n * and 10 calls per 60 secs\n * \n * `:xfn` (default nil \x3d\x3e no transform)\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply before\n * handling signal. When transform returns nil, skips handler.\n * \n * Compose multiple transform fns together with `comp-xfn`.\n * \n * `:error-fn` - (fn [{:keys [handler-id signal error]}]) to call on handler error.\n * `:backp-fn` - (fn [{:keys [handler-id ]}]) to call on handler back-pressure.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handler_dispatch_options \x3d \x22See docstring\x22;\n\n/**\n * Returns current ?{:keys [compile-time runtime]} filter config.\n */\ntaoensso.telemere.get_filters \x3d (function taoensso$telemere$get_filters(){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)], null));\n});\n\n/**\n * Returns current ?{:keys [compile-time runtime]} minimum call levels\n * for given/current namespace.\n */\ntaoensso.telemere.get_min_levels \x3d (function taoensso$telemere$get_min_levels(var_args){\nvar G__38127 \x3d arguments.length;\nswitch (G__38127) {\ncase 0:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1 \x3d (function (kind){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,ns){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns)),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns))], null));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Returns ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn handler-stats_]}}\n * for all registered signal handlers.\n */\ntaoensso.telemere.get_handlers \x3d (function taoensso$telemere$get_handlers(){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Alpha, subject to change.\n * Returns ?{\x3chandler-id\x3e {:keys [handling-nsecs counts]}} for all registered\n * signal handlers that have the `:track-stats?` dispatch option enabled\n * (it is by default).\n * \n * Stats include:\n * \n * `:handling-nsecs` - Summary stats of nanosecond handling times, keys:\n * `:min` - Minimum handling time\n * `:max` - Maximum handling time\n * `:mean` - Arithmetic mean handling time\n * `:mad` - Mean absolute deviation of handling time (measure of dispersion)\n * `:var` - Variance of handling time (measure of dispersion)\n * `:p50` - 50th percentile of handling time (50% of times \x3c\x3d this)\n * `:p90` - 90th percentile of handling time (90% of times \x3c\x3d this)\n * `:p99` - 99th percentile of handling time\n * `:last` - Most recent handling time\n * ...\n * \n * `:counts` - Integer counts for handler outcomes, keys (chronologically):\n * \n * `:dropped` - Noop handler calls due to stopped handler\n * `:back-pressure` - Handler calls that experienced (async) back-pressure\n * (possible noop, depending on back-pressure mode)\n * \n * `:sampled` - Noop handler calls due to sample rate\n * `:filtered` - Noop handler calls due to kind/ns/id/level/when filtering\n * `:rate-limited` - Noop handler calls due to rate limit\n * `:disallowed` - Noop handler calls due to sampling/filtering/rate-limiting\n * `:allowed` - Other handler calls (no sampling/filtering/rate-limiting)\n * \n * `:suppressed` - Noop handler calls due to nil transform (xfn) result\n * `:handled` - Handler calls that completed successfully\n * `:errors` - Handler calls that threw an error\n * \n * Note that for performance reasons returned counts are not mutually atomic,\n * e.g. `:sampled` count may be incremented before `:disallowed` count is.\n * \n * Useful for understanding/debugging how your handlers behave in practice,\n * especially when they\x27re under stress (high-volumes, etc.).\n * \n * Handler stats are tracked from the time each handler is last registered\n * (e.g. with an `add-handler!` call).\n */\ntaoensso.telemere.get_handlers_stats \x3d (function taoensso$telemere$get_handlers_stats(){\nreturn taoensso.encore.signals.get_handlers_stats(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n\n/**\n * Sets call kind filter based on given `kind-filter` spec.\n * `kind-filter` may be:\n * \n * - A regex pattern of kind/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_kind_filter_BANG_ \x3d (function taoensso$telemere$set_kind_filter_BANG_(kind_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35641__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35641__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),kind_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call namespace filter based on given `ns-filter` spec.\n * `ns-filter` may be:\n * \n * - A namespace.\n * - A regex pattern of namespaces/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_ns_filter_BANG_ \x3d (function taoensso$telemere$set_ns_filter_BANG_(ns_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35653__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35653__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),ns_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call id filter based on given `id-filter` spec.\n * `id-filter` may be:\n * \n * - A regex pattern of id/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_id_filter_BANG_ \x3d (function taoensso$telemere$set_id_filter_BANG_(id_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35659__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35659__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),id_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets minimum call level based on given `min-level` spec.\n * `min-level` may be:\n * \n * - nil (\x3d\x3e no minimum level).\n * - A level keyword (see `level-aliases` value for details).\n * - An integer (see `level-aliases` value for details).\n * - (Advanced) [[nf-filter min-level] ...] vector.\n * \n * If non-nil `kind` is provided, then the given minimum level will\n * apply only for that call kind.\n * \n * If `ns-filter` is provided, then the given minimum level will\n * apply only for the namespace/s that match (see `set-ns-filter!`).\n * Order matters if \x3e1 configured ns filter can match an ns! First\n * match wins, see `get-filters` or `get-min-levels` to view/debug\n * (left-\x3eright) match order.\n * \n * Examples:\n * (set-min-level! nil) ; Disable minimum level\n * (set-min-level! :info) ; Set `:info` as minimum level\n * (set-min-level! 100) ; Set 100 as minimum level\n * \n * (set-min-level! nil *ns* :info) ; Set for this ns only\n * (set-min-level! nil [[\x22my.ns\x22 :debug] [\x22* :info]]) ; Advanced\n */\ntaoensso.telemere.set_min_level_BANG_ \x3d (function taoensso$telemere$set_min_level_BANG_(var_args){\nvar G__38129 \x3d arguments.length;\nswitch (G__38129) {\ncase 1:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(null,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(kind,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,ns_filter,min_level){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old_sf__35681__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old_sf__35681__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803),(function (old_ml__35682__auto__){\nreturn taoensso.encore.signals.update_min_level(old_ml__35682__auto__,kind,ns_filter,min_level);\n})], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n\n\n/**\n * Registers given signal handler and returns\n * {\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * now registered. If an old handler already existed under the same id, stop it.\n * \n * `handler-fn` should be a fn of exactly 2 arities:\n * \n * [signal] ; Single argument\n * Called asynchronously or synchronously (depending on dispatch options)\n * to do something useful with the given signal.\n * \n * Example actions:\n * Save data to disk or db, `tap\x3e`, log, `put!` to an appropriate\n * `core.async` channel, filter, aggregate, use for a realtime analytics\n * dashboard, examine for outliers or unexpected data, etc.\n * \n * [] ; No arguments\n * Called exactly once when stopping handler to provide an opportunity\n * for handler to flush buffers, close files, etc. May just noop.\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See `help:handler-dispatch-options` for handler filters, etc.\n */\ntaoensso.telemere.add_handler_BANG_ \x3d (function taoensso$telemere$add_handler_BANG_(var_args){\nvar G__38131 \x3d arguments.length;\nswitch (G__38131) {\ncase 2:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (handler_id,handler_fn){\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(handler_id,handler_fn,null);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (handler_id,handler_fn,dispatch_opts){\nvar removed_handler__35698__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35699__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35700__auto__){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5(m__35700__auto__,handler_id,handler_fn,taoensso.telemere.default_handler_dispatch_opts,dispatch_opts);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35698__auto__)){\n(removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35698__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35699__auto__);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Stops and deregisters signal handler with given id, and returns\n * ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * still registered.\n */\ntaoensso.telemere.remove_handler_BANG_ \x3d (function taoensso$telemere$remove_handler_BANG_(handler_id){\nvar removed_handler__35702__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35703__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35704__auto__){\nreturn taoensso.encore.signals.remove_handler(m__35704__auto__,handler_id);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35702__auto__)){\n(removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35702__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35703__auto__);\n});\n\n/**\n * Stops registered signal handlers in parallel by calling each\n * handler-fn with no arguments. This gives each handler the opportunity\n * to flush buffers, close files, etc.\n * \n * Each handler will immediately stop accepting new signals, nooping if called.\n * \n * Blocks to return ?{\x3chandler-id\x3e {:keys [okay error]}}, honouring each\n * handler\x27s `:drain-msecs` value (see `help:handler-dispatch-options`).\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n */\ntaoensso.telemere.stop_handlers_BANG_ \x3d (function taoensso$telemere$stop_handlers_BANG_(){\nreturn taoensso.encore.signals.stop_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Optional context (state) attached to all signals.\n * Value may be any type, but is usually nil or a map. Default (root) value is nil.\n * \n * Useful for dynamically attaching arbitrary app-level state to signals.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Tips:\n * - Value may be (or may contain) an atom if you want mutable semantics.\n * - Value may be of form {\x3cscope-id\x3e \x3cdata\x3e} for custom scoping, etc.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_ctx_STAR_ \x3d null;\n\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.telemere.set_ctx_BANG_ \x3d (function taoensso$telemere$set_ctx_BANG_(root_ctx){\nreturn (taoensso.telemere._STAR_ctx_STAR_ \x3d root_ctx);\n});\n\nvar ret__5804__auto___38153 \x3d (function (){\n/**\n * Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx \x3d (function taoensso$telemere$with_ctx(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38154 \x3d arguments.length;\nvar i__5750__auto___38155 \x3d (0);\nwhile(true){\nif((i__5750__auto___38155 \x3c len__5749__auto___38154)){\nargs__5755__auto__.push((arguments[i__5750__auto___38155]));\n\nvar G__38156 \x3d (i__5750__auto___38155 + (1));\ni__5750__auto___38155 \x3d G__38156;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,ctx,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,ctx,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx.cljs$lang$applyTo \x3d (function (seq38132){\nvar G__38133 \x3d cljs.core.first(seq38132);\nvar seq38132__$1 \x3d cljs.core.next(seq38132);\nvar G__38134 \x3d cljs.core.first(seq38132__$1);\nvar seq38132__$2 \x3d cljs.core.next(seq38132__$1);\nvar G__38135 \x3d cljs.core.first(seq38132__$2);\nvar seq38132__$3 \x3d cljs.core.next(seq38132__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38133,G__38134,G__38135,seq38132__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38157 \x3d (function (){\n/**\n * Evaluates given body with updated `*ctx*` value.\n * \n * `update-map-or-fn` may be:\n * - A map to merge with current `*ctx*` value, or\n * - A unary fn to apply to current `*ctx*` value\n * \n * See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx_PLUS_ \x3d (function taoensso$telemere$with_ctx_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38158 \x3d arguments.length;\nvar i__5750__auto___38159 \x3d (0);\nwhile(true){\nif((i__5750__auto___38159 \x3c len__5749__auto___38158)){\nargs__5755__auto__.push((arguments[i__5750__auto___38159]));\n\nvar G__38160 \x3d (i__5750__auto___38159 + (1));\ni__5750__auto___38159 \x3d G__38160;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,update_map_or_fn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,update_map_or_fn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$applyTo \x3d (function (seq38136){\nvar G__38137 \x3d cljs.core.first(seq38136);\nvar seq38136__$1 \x3d cljs.core.next(seq38136);\nvar G__38138 \x3d cljs.core.first(seq38136__$1);\nvar seq38136__$2 \x3d cljs.core.next(seq38136__$1);\nvar G__38139 \x3d cljs.core.first(seq38136__$2);\nvar seq38136__$3 \x3d cljs.core.next(seq38136__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38137,G__38138,G__38139,seq38136__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$macro \x3d true);\n\n\n/**\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply to all signals.\n * When transform returns nil, skips all handlers. Default (root) value is nil.\n * \n * Useful for dynamically filtering and/or modifying signals by signal data/content/etc.\n * \n * Re/bind dynamic value using `with-xfn`, `with-xfn+`, `binding`.\n * Modify root (default) value using `set-xfn!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Examples:\n * \n * ;; Filter all signals by returning nil:\n * (t/set-xfn! (fn [signal] (when-not (:skip-me? signal) signal)))\n * \n * ;; Remove key/s from all signals:\n * (t/set-xfn! (fn [signal] (dissoc signal :unwanted-key1 ...)))\n * \n * ;; Remove key/s from signals to specific handler:\n * (t/add-handler! ::my-handler my-handler\n * {:xfn (fn [signal] (dissoc signal :unwanted-key1 ...))})\n * \n * ;; Dynamic transform for specific signal/s:\n * (binding [*xfn* (fn [signal] ...)]\n * (...))\n * \n * Tips:\n * - Compose multiple transform fns together with `comp-xfn`.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_xfn_STAR_ \x3d null;\n\n/**\n * Set `*xfn*` var\x27s default (root) value. See `*xfn*` for details.\n */\ntaoensso.telemere.set_xfn_BANG_ \x3d (function taoensso$telemere$set_xfn_BANG_(_QMARK_root_xfn){\nreturn (taoensso.telemere._STAR_xfn_STAR_ \x3d _QMARK_root_xfn);\n});\n\nvar ret__5804__auto___38161 \x3d (function (){\n/**\n * Evaluates given body with given `*xfn*` value, see `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn \x3d (function taoensso$telemere$with_xfn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38162 \x3d arguments.length;\nvar i__5750__auto___38163 \x3d (0);\nwhile(true){\nif((i__5750__auto___38163 \x3c len__5749__auto___38162)){\nargs__5755__auto__.push((arguments[i__5750__auto___38163]));\n\nvar G__38164 \x3d (i__5750__auto___38163 + (1));\ni__5750__auto___38163 \x3d G__38164;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,_QMARK_xfn,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn.cljs$lang$applyTo \x3d (function (seq38140){\nvar G__38141 \x3d cljs.core.first(seq38140);\nvar seq38140__$1 \x3d cljs.core.next(seq38140);\nvar G__38142 \x3d cljs.core.first(seq38140__$1);\nvar seq38140__$2 \x3d cljs.core.next(seq38140__$1);\nvar G__38143 \x3d cljs.core.first(seq38140__$2);\nvar seq38140__$3 \x3d cljs.core.next(seq38140__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38141,G__38142,G__38143,seq38140__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38165 \x3d (function (){\n/**\n * Evaluates given body with composed `*xfn*` value.\n * Same as (with-xfn (comp-xfn *xfn* ?xfn) ...).\n * See `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn_PLUS_ \x3d (function taoensso$telemere$with_xfn_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38166 \x3d arguments.length;\nvar i__5750__auto___38167 \x3d (0);\nwhile(true){\nif((i__5750__auto___38167 \x3c len__5749__auto___38166)){\nargs__5755__auto__.push((arguments[i__5750__auto___38167]));\n\nvar G__38168 \x3d (i__5750__auto___38167 + (1));\ni__5750__auto___38167 \x3d G__38168;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22comp-xfn\x22,\x22taoensso.encore.signals/comp-xfn\x22,-1050364423,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,_QMARK_xfn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$applyTo \x3d (function (seq38144){\nvar G__38145 \x3d cljs.core.first(seq38144);\nvar seq38144__$1 \x3d cljs.core.next(seq38144);\nvar G__38146 \x3d cljs.core.first(seq38144__$1);\nvar seq38144__$2 \x3d cljs.core.next(seq38144__$1);\nvar G__38147 \x3d cljs.core.first(seq38144__$2);\nvar seq38144__$3 \x3d cljs.core.next(seq38144__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38145,G__38146,G__38147,seq38144__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$macro \x3d true);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.telemere.chance \x3d taoensso.encore.chance;\n\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.telemere.rate_limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Single system newline\n */\ntaoensso.telemere.newline \x3d \x22\\n\x22;\n\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.telemere.comp_xfn \x3d taoensso.encore.signals.comp_xfn;\n\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.msg_splice \x3d taoensso.telemere.impl.msg_splice;\n\ntaoensso.telemere.msg_skip \x3d taoensso.telemere.impl.msg_skip;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.clean_signal_fn \x3d taoensso.telemere.utils.clean_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.format_signal_fn \x3d taoensso.telemere.utils.format_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.pr_signal_fn \x3d taoensso.telemere.utils.pr_signal_fn;\n\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.error_signal_QMARK_ \x3d taoensso.telemere.utils.error_signal_QMARK_;\n/**\n * Call a Telemere signal creator to conditionally create a signal at that callsite.\n * \n * When filtering conditions are met [4], the call creates a Telemere signal [3]\n * and dispatches it to registered handlers for processing (e.g. writing to\n * console/file/queue/db, etc.).\n * \n * Telemere doesn\x27t make a hard distinction between different kinds of signals\n * (log, event, error, etc.) - they\x27re all just plain Clojure/Script maps with\n * various keys:\n * \n * - All signal creators offer the same options [2], and\n * - All signal kinds can contain the same content [3]\n * \n * Creators vary only in in their default `:kind` value and call APIs (expected\n * args and return values), making them more/less convenient for certain use cases:\n * \n * `log!` ------------- ?level + msg \x3d\x3e nil\n * `event!` ----------- id + ?level \x3d\x3e nil\n * `trace!` ----------- ?id + run \x3d\x3e run result (value or throw)\n * `spy!` ------------- ?level + run \x3d\x3e run result (value or throw)\n * `error!` ----------- ?id + error \x3d\x3e given error\n * `catch-\x3eerror!` ---- ?id + run \x3d\x3e run value or ?catch-val\n * `uncaught-\x3eerror!` - ?id \x3d\x3e nil\n * `signal!` ---------- opts \x3d\x3e allowed? / run result (value or throw)\n * \n * - `log!` and `event!` are both good default/general-purpose signal creators.\n * - `log!` emphasizes messages, while `event!` emphasizes ids.\n * - `signal!` is the generic creator, and is used by all the others.\n * \n * ----------------------------------------------------------------------\n * [2] See `help:signal-options` - {:keys [kind level id data ...]}\n * [3] See `help:signal-content` - {:keys [kind level id data ...]}\n * [4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)\n */\ntaoensso.telemere.help_COLON_signal_creators \x3d \x22See docstring\x22;\n\n/**\n * Signal options are provided as a map with COMPILE-TIME keys.\n * All options are available for all signal creator calls:\n * \n * `:inst` -------- Platform instant [1] when signal was created, \u2208 #{nil :auto \x3c[1]\x3e}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy \x3capp-val\x3e ...}\n * `:id` ---------- ?id of signal (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- ?id of signal instance (unique to each signal created at callsite, contrast with `:id`)\n * Defaults to `:auto` for tracing signals, and nil otherwise\n * \n * `:msg` --------- Arb app-level ?message to incl. in signal: str or vec of strs to join (with `\\space`), may be a delay\n * `:data` -------- Arb app-level ?data to incl. in signal: usu. a map, LAZY! [3]\n * `:error` ------- Arb app-level ?error to incl. in signal: platform error [2]\n * \n * `:run` --------- ?form to execute UNCONDITIONALLY; will incl. `:run-val` in signal\n * `:do` ---------- ?form to execute conditionally (iff signal allowed) and LAZILY [3], before establishing `:let` ?binding\n * `:let` --------- ?bindings to establish conditionally (iff signal allowed) and LAZILY [3], BEFORE evaluating `:data` and `:msg` (useful!)\n * \n * `:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info\n * `:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root signal tracing info\n * `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal, as per `with-ctx`\n * `:ctx+` -------- Custom ?val to update auto (dynamic `*ctx*`) in signal, as per `with-ctx+`\n * \n * `:ns` ---------- Custom ?str namespace to override auto signal callsite info\n * `:coords` ------ Custom ?[line column] to override auto signal callsite info\n * \n * `:elidable?` --- Should signal be subject to compile-time elision? (default true)\n * `:allow?` ------ Custom override for usual runtime filtering (true \x3d\x3e ALWAYS create signal)\n * `:trace?` ------ Should tracing be enabled for `:run` form?\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for random signal sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * `:when` -------- Arb ?form; when present, form must return truthy to allow signal\n * `:limit` ------- Rate limit ?spec given to `taoensso.telemere/rate-limiter`, see its docstring for details\n * `:limit-by` ---- When present, rate limits will be enforced independently for each value (any Clojure value!)\n * `:xfn` --------- Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn`\n * `:xfn+` -------- Optional extra transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn+`\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs to incl. in signal. Typically NOT included in\n * handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers. LAZY! [3]\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n * [3] Most Telemere signal content is evaluated CONDITIONALLY (iff signal allowed),\n * LAZILY (when signal is created), and on the HANDLING THREAD (not logging thread).\n * This allows efficient filtering, better control+monitoring of back pressure,\n * conditional effects, etc. Ref. \x3chttps://www.taoensso.com/telemere/flow\x3e for visual!\n */\ntaoensso.telemere.help_COLON_signal_options \x3d \x22See docstring\x22;\n\n/**\n * Telemere signals are maps with {:keys [inst id ns level data msg_ ...]},\n * though they can be modified by call and/or handler transform (xfns).\n * \n * Default signal keys:\n * \n * `:schema` ------ Int version of signal schema (current: 1)\n * `:inst` -------- Platform instant [1] when signal was created, monotonicity depends on system clock\n * `:ns` ---------- ?str namespace of signal callsite\n * `:coords` ------ ?[line column] of signal callsite\n * \n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy :slf4j :tools-logging \x3capp-val\x3e ...}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:id` ---------- Signal callsite ?id (usu. keyword) (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- Signal instance ?id (usu. string) (unique to each signal created at callsite when tracing, contrast with `:id`)\n * \n * `:msg_` -------- Arb app-level message ?str given to signal creator - may be a delay, always use `force` to unwrap!\n * `:data` -------- Arb app-level data ?val (usu. a map) given to signal creator\n * `:error` ------- Arb app-level platform ?error [2] given to signal creator\n * \n * `:run-form` ---- Unevaluated ?form given to signal creator as `:run`\n * `:run-val` ----- Successful return ?val of `:run` ?form\n * `:run-nsecs` --- ?int nanosecs runtime of `:run` ?form\n * `:end-inst` ---- Platform ?instant [1] when `:run` ?form completed\n * \n * `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing\n * `:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing\n * `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created\n * \n * `:host` -------- (Clj only) {:keys [name ip]} info for network host\n * `:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for combined call AND handler sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included\n * in handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n */\ntaoensso.telemere.help_COLON_signal_content \x3d \x22See docstring\x22;\n\n/**\n * Telemere supports extensive environmental config via JVM properties,\n * environment variables, or classpath resources.\n * \n * Environmental filter config includes:\n * \n * 1. Minimum level (see signal `:level`):\n * a. JVM property: `taoensso.telemere.rt-min-level`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_MIN_LEVEL`\n * c. Classpath resource: `taoensso.telemere.rt-min-level`\n * \n * 2. Namespace filter (see signal `:ns`):\n * a. JVM property: `taoensso.telemere.rt-ns-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_NS_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-ns-filter`\n * \n * 3. Id filter (see signal `:id`):\n * a. JVM property: `taoensso.telemere.rt-id-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_ID_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-id-filter`\n * \n * 4. Kind filter (signal `:kind`):\n * a. JVM property: `taoensso.telemere.rt-kind-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_KIND_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-kind-filter`\n * \n * Config values are parsed as edn, examples:\n * \n * `taoensso.telemere.rt-min-level` \x3d\x3e \x22:info\x22\n * `TAOENSSO_TELEMERE_RT_NS_FILTER` \x3d\x3e \x22{:disallow \\\x22taoensso.*\\\x22}\x22\n * `taoensso.telemere.rt-id-filter.cljs` \x3d\x3e \x22#{:my-id1 :my-id2}\x22\n * `TAOENSSO_TELEMERE_RT_KIND_FILTER_CLJ` \x3d\x3e \x22nil\x22\n * \n * Runtime vs compile-time filters\n * \n * The above filters (1..4) all apply at RUNTIME (\x22rt\x22).\n * This is typically what you want, since it allows you to freely adjust filtering\n * (making it less OR MORE permissive) through later API calls like `set-min-level!`.\n * \n * As an advanced option, you can instead/additionally ELIDE (entirely omit) filtered\n * callsites at COMPILE-TIME (\x22ct\x22) by replacing \x22rt\x22-\x3e\x22ct\x22 / \x22RT\x22-\x3e\x22CT\x22 in the config\n * ids above. Compile-time filters CANNOT be made MORE permissive at runtime.\n * \n * Tips:\n * \n * - The above config ids will affect both Clj AND Cljs.\n * For platform-specific filters, use\n * \x22.clj\x22 / \x22_CLJ\x22 or\n * \x22.cljs\x22 / \x22_CLJS\x22 suffixes instead.\n * e.g. \x22taoensso.telemere.rt-min-level.cljs\x22.\n * \n * - To get the right edn syntax, first set your runtime filters using the\n * standard utils (`set-min-level!`, etc.). Then call `get-filters` and\n * serialize the relevant parts to edn with `pr-str`.\n * \n * - All environmental config uses `get-env` underneath.\n * See the `get-env` docstring for more/advanced details.\n * \n * - Classpath resources are files accessible on your project\x27s\n * classpath. This usually includes files in your project\x27s\n * `resources/` dir.\n */\ntaoensso.telemere.help_COLON_environmental_config \x3d \x22See docstring\x22;\n/**\n * Experimental, subject to change. Feedback welcome!\n * (fn [root?]) used to generate signal `:uid` values (unique instance ids)\n * when tracing.\n * \n * Relevant only when `otel-tracing?` is false.\n * If `otel-tracing?` is true, uids are instead generated by `*otel-tracer*`.\n * \n * `root?` argument is true iff signal is a top-level trace (i.e. form being\n * traced is unnested \x3d has no parent form). Root-level uids typically need\n * more entropy and so are usually longer (e.g. 32 vs 16 hex chars).\n * \n * Override default by setting one of the following:\n * 1. JVM property: `taoensso.telemere.uid-kind`\n * 2. Env variable: `TAOENSSO_TELEMERE_UID_KIND`\n * 3. Classpath resource: `taoensso.telemere.uid-kind`\n * \n * Possible (compile-time) values include:\n * `:uuid` - UUID string (Cljs) or `java.util.UUID` (Clj)\n * `:uuid-str` - UUID string (36/36 chars)\n * `:nano/secure` - nano-style string (21/10 chars) w/ strong RNG\n * `:nano/insecure` - nano-style string (21/10 chars) w/ fast RNG (default)\n * `:hex/insecure` - hex-style string (32/16 chars) w/ strong RNG\n * `:hex/secure` - hex-style string (32/16 chars) w/ fast RNG\n */\ntaoensso.telemere._STAR_uid_fn_STAR_ \x3d taoensso.telemere.utils.parse_uid_fn(taoensso.telemere.impl.uid_kind);\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n * Normally called automatically (internally) by signal creators, this util\n * is provided publicly since it\x27s also handy for manually re/dispatching\n * custom/modified signals, etc.:\n * \n * (let [original-signal (with-signal :trap (event! ::my-id1))\n * modified-signal (assoc original-signal :id ::my-id2)]\n * (dispatch-signal! modified-signal))\n */\ntaoensso.telemere.dispatch_signal_BANG_ \x3d (function taoensso$telemere$dispatch_signal_BANG_(signal){\nvar temp__5825__auto__ \x3d taoensso.telemere.impl.wrap_signal(signal);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar wrapped_signal \x3d temp__5825__auto__;\nreturn taoensso.telemere.impl.dispatch_signal_BANG_(wrapped_signal);\n} else {\nreturn null;\n}\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.handler_COLON_console \x3d taoensso.telemere.consoles.handler_COLON_console;\n\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.handler_COLON_console_raw \x3d taoensso.telemere.consoles.handler_COLON_console_raw;\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.__on_init !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.telemere.__on_init \x3d (function (){\n(taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d (function (p__38148){\nvar map__38149 \x3d p__38148;\nvar map__38149__$1 \x3d cljs.core.__destructure_map(map__38149);\nvar m \x3d map__38149__$1;\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38149__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-error\x22,\x22taoensso.encore.signals/handler-error\x22,1772750988);\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)),null,\x22Error executing wrapped handler fn\x22,error,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\n(taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d (function (data){\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-back-pressure\x22,\x22taoensso.encore.signals/handler-back-pressure\x22,699164801);\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,data,null,\x22Back pressure on wrapped handler fn\x22,null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\ntaoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(\x22default\x22,\x22console\x22,\x22default/console\x22,-1389954628),(taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.handler_COLON_console.call(null)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601),null], null));\n\nreturn null;\n})()\n\n;\n}\n"); +SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmt \x3d (function intemporal$internal$logging$fmt(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\nintemporal.internal.logging.trace \x3d (function intemporal$internal$logging$trace(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38181 \x3d arguments.length;\nvar i__5750__auto___38182 \x3d (0);\nwhile(true){\nif((i__5750__auto___38182 \x3c len__5749__auto___38181)){\nargs__5755__auto__.push((arguments[i__5750__auto___38182]));\n\nvar G__38183 \x3d (i__5750__auto___38182 + (1));\ni__5750__auto___38182 \x3d G__38183;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [17,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.trace.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.trace.cljs$lang$applyTo \x3d (function (seq38169){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38169));\n}));\n\nintemporal.internal.logging.debug \x3d (function intemporal$internal$logging$debug(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38184 \x3d arguments.length;\nvar i__5750__auto___38185 \x3d (0);\nwhile(true){\nif((i__5750__auto___38185 \x3c len__5749__auto___38184)){\nargs__5755__auto__.push((arguments[i__5750__auto___38185]));\n\nvar G__38186 \x3d (i__5750__auto___38185 + (1));\ni__5750__auto___38185 \x3d G__38186;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [18,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.debug.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debug.cljs$lang$applyTo \x3d (function (seq38170){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38170));\n}));\n\nintemporal.internal.logging.info \x3d (function intemporal$internal$logging$info(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38187 \x3d arguments.length;\nvar i__5750__auto___38188 \x3d (0);\nwhile(true){\nif((i__5750__auto___38188 \x3c len__5749__auto___38187)){\nargs__5755__auto__.push((arguments[i__5750__auto___38188]));\n\nvar G__38189 \x3d (i__5750__auto___38188 + (1));\ni__5750__auto___38188 \x3d G__38189;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [19,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.info.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.info.cljs$lang$applyTo \x3d (function (seq38171){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38171));\n}));\n\nintemporal.internal.logging.warn \x3d (function intemporal$internal$logging$warn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38195 \x3d arguments.length;\nvar i__5750__auto___38196 \x3d (0);\nwhile(true){\nif((i__5750__auto___38196 \x3c len__5749__auto___38195)){\nargs__5755__auto__.push((arguments[i__5750__auto___38196]));\n\nvar G__38198 \x3d (i__5750__auto___38196 + (1));\ni__5750__auto___38196 \x3d G__38198;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [20,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.warn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warn.cljs$lang$applyTo \x3d (function (seq38172){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38172));\n}));\n\nintemporal.internal.logging.error \x3d (function intemporal$internal$logging$error(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38203 \x3d arguments.length;\nvar i__5750__auto___38204 \x3d (0);\nwhile(true){\nif((i__5750__auto___38204 \x3c len__5749__auto___38203)){\nargs__5755__auto__.push((arguments[i__5750__auto___38204]));\n\nvar G__38205 \x3d (i__5750__auto___38204 + (1));\ni__5750__auto___38204 \x3d G__38205;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [21,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.error.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.error.cljs$lang$applyTo \x3d (function (seq38173){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38173));\n}));\n\nintemporal.internal.logging.fatal \x3d (function intemporal$internal$logging$fatal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38211 \x3d arguments.length;\nvar i__5750__auto___38212 \x3d (0);\nwhile(true){\nif((i__5750__auto___38212 \x3c len__5749__auto___38211)){\nargs__5755__auto__.push((arguments[i__5750__auto___38212]));\n\nvar G__38213 \x3d (i__5750__auto___38212 + (1));\ni__5750__auto___38212 \x3d G__38213;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [22,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.fatal.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatal.cljs$lang$applyTo \x3d (function (seq38174){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38174));\n}));\n\nintemporal.internal.logging.tracef \x3d (function intemporal$internal$logging$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38216 \x3d arguments.length;\nvar i__5750__auto___38218 \x3d (0);\nwhile(true){\nif((i__5750__auto___38218 \x3c len__5749__auto___38216)){\nargs__5755__auto__.push((arguments[i__5750__auto___38218]));\n\nvar G__38219 \x3d (i__5750__auto___38218 + (1));\ni__5750__auto___38218 \x3d G__38219;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [27,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [28,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.tracef.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.tracef.cljs$lang$applyTo \x3d (function (seq38175){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38175));\n}));\n\nintemporal.internal.logging.debugf \x3d (function intemporal$internal$logging$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38237 \x3d arguments.length;\nvar i__5750__auto___38238 \x3d (0);\nwhile(true){\nif((i__5750__auto___38238 \x3c len__5749__auto___38237)){\nargs__5755__auto__.push((arguments[i__5750__auto___38238]));\n\nvar G__38243 \x3d (i__5750__auto___38238 + (1));\ni__5750__auto___38238 \x3d G__38243;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [32,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [33,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.debugf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debugf.cljs$lang$applyTo \x3d (function (seq38176){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38176));\n}));\n\nintemporal.internal.logging.infof \x3d (function intemporal$internal$logging$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38257 \x3d arguments.length;\nvar i__5750__auto___38258 \x3d (0);\nwhile(true){\nif((i__5750__auto___38258 \x3c len__5749__auto___38257)){\nargs__5755__auto__.push((arguments[i__5750__auto___38258]));\n\nvar G__38259 \x3d (i__5750__auto___38258 + (1));\ni__5750__auto___38258 \x3d G__38259;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [37,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [38,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.infof.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.infof.cljs$lang$applyTo \x3d (function (seq38177){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38177));\n}));\n\nintemporal.internal.logging.warnf \x3d (function intemporal$internal$logging$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38271 \x3d arguments.length;\nvar i__5750__auto___38272 \x3d (0);\nwhile(true){\nif((i__5750__auto___38272 \x3c len__5749__auto___38271)){\nargs__5755__auto__.push((arguments[i__5750__auto___38272]));\n\nvar G__38274 \x3d (i__5750__auto___38272 + (1));\ni__5750__auto___38272 \x3d G__38274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [42,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [43,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.warnf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warnf.cljs$lang$applyTo \x3d (function (seq38178){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38178));\n}));\n\nintemporal.internal.logging.errorf \x3d (function intemporal$internal$logging$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38282 \x3d arguments.length;\nvar i__5750__auto___38283 \x3d (0);\nwhile(true){\nif((i__5750__auto___38283 \x3c len__5749__auto___38282)){\nargs__5755__auto__.push((arguments[i__5750__auto___38283]));\n\nvar G__38285 \x3d (i__5750__auto___38283 + (1));\ni__5750__auto___38283 \x3d G__38285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [47,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [48,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.errorf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.errorf.cljs$lang$applyTo \x3d (function (seq38179){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38179));\n}));\n\nintemporal.internal.logging.fatalf \x3d (function intemporal$internal$logging$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38302 \x3d arguments.length;\nvar i__5750__auto___38303 \x3d (0);\nwhile(true){\nif((i__5750__auto___38303 \x3c len__5749__auto___38302)){\nargs__5755__auto__.push((arguments[i__5750__auto___38303]));\n\nvar G__38304 \x3d (i__5750__auto___38303 + (1));\ni__5750__auto___38303 \x3d G__38304;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [52,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [53,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.fatalf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatalf.cljs$lang$applyTo \x3d (function (seq38180){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38180));\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.utils.js", true, "goog.provide(\x27intemporal.utils\x27);\nintemporal.utils.current_time_ms \x3d (function intemporal$utils$current_time_ms(){\nreturn Date.now();\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__38447 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__38447) : resolve.call(null,G__38447));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___38817 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___38817)){\nvar id_38820 \x3d temp__5825__auto___38817;\nclearTimeout(id_38820);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___38825 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___38825)){\nvar id_38826 \x3d temp__5825__auto___38825;\nclearTimeout(id_38826);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k38457,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__38470 \x3d k38457;\nvar G__38470__$1 \x3d (((G__38470 instanceof cljs.core.Keyword))?G__38470.fqn:null);\nswitch (G__38470__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38457,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38473){\nvar vec__38474 \x3d p__38473;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38474,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38474,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__38456){\nvar self__ \x3d this;\nvar G__38456__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__38456__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this38459,other38460){\nvar self__ \x3d this;\nvar this38459__$1 \x3d this;\nreturn (((!((other38460 \x3d\x3d null)))) \x26\x26 ((((this38459__$1.constructor \x3d\x3d\x3d other38460.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38459__$1.pending_timers,other38460.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38459__$1.__extmap,other38460.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k38457){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__38488 \x3d k38457;\nvar G__38488__$1 \x3d (((G__38488 instanceof cljs.core.Keyword))?G__38488.fqn:null);\nswitch (G__38488__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k38457);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__38456){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__38494 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__38495 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__38494.cljs$core$IFn$_invoke$arity$2 ? pred__38494.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__38495) : pred__38494.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__38495)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__38456,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38456),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__38456){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__38456,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__38515_38851 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__38516_38852 \x3d null;\nvar count__38517_38853 \x3d (0);\nvar i__38518_38854 \x3d (0);\nwhile(true){\nif((i__38518_38854 \x3c count__38517_38853)){\nvar vec__38530_38855 \x3d chunk__38516_38852.cljs$core$IIndexed$_nth$arity$2(null,i__38518_38854);\nvar __38856__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38530_38855,(0),null);\nvar timer_id_38857 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38530_38855,(1),null);\nclearTimeout(timer_id_38857);\n\n\nvar G__38860 \x3d seq__38515_38851;\nvar G__38861 \x3d chunk__38516_38852;\nvar G__38862 \x3d count__38517_38853;\nvar G__38863 \x3d (i__38518_38854 + (1));\nseq__38515_38851 \x3d G__38860;\nchunk__38516_38852 \x3d G__38861;\ncount__38517_38853 \x3d G__38862;\ni__38518_38854 \x3d G__38863;\ncontinue;\n} else {\nvar temp__5825__auto___38864 \x3d cljs.core.seq(seq__38515_38851);\nif(temp__5825__auto___38864){\nvar seq__38515_38865__$1 \x3d temp__5825__auto___38864;\nif(cljs.core.chunked_seq_QMARK_(seq__38515_38865__$1)){\nvar c__5548__auto___38866 \x3d cljs.core.chunk_first(seq__38515_38865__$1);\nvar G__38867 \x3d cljs.core.chunk_rest(seq__38515_38865__$1);\nvar G__38868 \x3d c__5548__auto___38866;\nvar G__38869 \x3d cljs.core.count(c__5548__auto___38866);\nvar G__38870 \x3d (0);\nseq__38515_38851 \x3d G__38867;\nchunk__38516_38852 \x3d G__38868;\ncount__38517_38853 \x3d G__38869;\ni__38518_38854 \x3d G__38870;\ncontinue;\n} else {\nvar vec__38533_38872 \x3d cljs.core.first(seq__38515_38865__$1);\nvar __38873__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38533_38872,(0),null);\nvar timer_id_38874 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38533_38872,(1),null);\nclearTimeout(timer_id_38874);\n\n\nvar G__38876 \x3d cljs.core.next(seq__38515_38865__$1);\nvar G__38877 \x3d null;\nvar G__38878 \x3d (0);\nvar G__38879 \x3d (0);\nseq__38515_38851 \x3d G__38876;\nchunk__38516_38852 \x3d G__38877;\ncount__38517_38853 \x3d G__38878;\ni__38518_38854 \x3d G__38879;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__38464){\nvar extmap__5365__auto__ \x3d (function (){var G__38540 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__38464,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__38464)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38540);\n} else {\nreturn G__38540;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__38464),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38885 \x3d arguments.length;\nvar i__5750__auto___38887 \x3d (0);\nwhile(true){\nif((i__5750__auto___38887 \x3c len__5749__auto___38885)){\nargs__5755__auto__.push((arguments[i__5750__auto___38887]));\n\nvar G__38889 \x3d (i__5750__auto___38887 + (1));\ni__5750__auto___38887 \x3d G__38889;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__38547){\nvar map__38548 \x3d p__38547;\nvar map__38548__$1 \x3d cljs.core.__destructure_map(map__38548);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38548__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq38546){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38546));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e38560){if((e38560 instanceof Error)){\nvar e \x3d e38560;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e38560;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], 0));\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k38568,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__38578 \x3d k38568;\nvar G__38578__$1 \x3d (((G__38578 instanceof cljs.core.Keyword))?G__38578.fqn:null);\nswitch (G__38578__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38568,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38581){\nvar vec__38582 \x3d p__38581;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38582,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38582,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e38588){if((e38588 instanceof Error)){\nvar e \x3d e38588;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e38588;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__38594){\nvar map__38595 \x3d p__38594;\nvar map__38595__$1 \x3d cljs.core.__destructure_map(map__38595);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__38567){\nvar self__ \x3d this;\nvar G__38567__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__38567__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this38569,other38570){\nvar self__ \x3d this;\nvar this38569__$1 \x3d this;\nreturn (((!((other38570 \x3d\x3d null)))) \x26\x26 ((((this38569__$1.constructor \x3d\x3d\x3d other38570.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.registry_atom,other38570.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.default_timeout_ms,other38570.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.__extmap,other38570.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k38568){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__38643 \x3d k38568;\nvar G__38643__$1 \x3d (((G__38643 instanceof cljs.core.Keyword))?G__38643.fqn:null);\nswitch (G__38643__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k38568);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__38567){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__38645 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__38646 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__38645.cljs$core$IFn$_invoke$arity$2 ? pred__38645.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__38646) : pred__38645.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__38646)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__38567,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38645.cljs$core$IFn$_invoke$arity$2 ? pred__38645.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__38646) : pred__38645.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__38646)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__38567,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38567),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__38567){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__38567,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__38572){\nvar extmap__5365__auto__ \x3d (function (){var G__38704 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__38572,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__38572)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38704);\n} else {\nreturn G__38704;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__38572),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__38572),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38958 \x3d arguments.length;\nvar i__5750__auto___38959 \x3d (0);\nwhile(true){\nif((i__5750__auto___38959 \x3c len__5749__auto___38958)){\nargs__5755__auto__.push((arguments[i__5750__auto___38959]));\n\nvar G__38962 \x3d (i__5750__auto___38959 + (1));\ni__5750__auto___38959 \x3d G__38962;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__38754){\nvar map__38755 \x3d p__38754;\nvar map__38755__$1 \x3d cljs.core.__destructure_map(map__38755);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38755__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38755__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nintemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], 0));\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq38725){\nvar G__38726 \x3d cljs.core.first(seq38725);\nvar seq38725__$1 \x3d cljs.core.next(seq38725);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38726,seq38725__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("promesa.protocols.js", true, "goog.provide(\x27promesa.protocols\x27);\n\n/**\n * @interface\n */\npromesa.protocols.IPromise \x3d function(){};\n\nvar promesa$protocols$IPromise$_fmap$dyn_38687 \x3d (function() {\nvar G__38688 \x3d null;\nvar G__38688__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nvar G__38688__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nG__38688 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38688__2.call(this,it,f);\ncase 3:\nreturn G__38688__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38688.cljs$core$IFn$_invoke$arity$2 \x3d G__38688__2;\nG__38688.cljs$core$IFn$_invoke$arity$3 \x3d G__38688__3;\nreturn G__38688;\n})()\n;\n/**\n * Apply function to a computation\n */\npromesa.protocols._fmap \x3d (function promesa$protocols$_fmap(var_args){\nvar G__37892 \x3d arguments.length;\nswitch (G__37892) {\ncase 2:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f);\n}\n}));\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f,executor);\n}\n}));\n\n(promesa.protocols._fmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_merr$dyn_38703 \x3d (function() {\nvar G__38705 \x3d null;\nvar G__38705__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nvar G__38705__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nG__38705 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38705__2.call(this,it,f);\ncase 3:\nreturn G__38705__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38705.cljs$core$IFn$_invoke$arity$2 \x3d G__38705__2;\nG__38705.cljs$core$IFn$_invoke$arity$3 \x3d G__38705__3;\nreturn G__38705;\n})()\n;\n/**\n * Apply function to a failed computation and flatten 1 level\n */\npromesa.protocols._merr \x3d (function promesa$protocols$_merr(var_args){\nvar G__37920 \x3d arguments.length;\nswitch (G__37920) {\ncase 2:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f);\n}\n}));\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f,executor);\n}\n}));\n\n(promesa.protocols._merr.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_mcat$dyn_38711 \x3d (function() {\nvar G__38712 \x3d null;\nvar G__38712__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nvar G__38712__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nG__38712 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38712__2.call(this,it,f);\ncase 3:\nreturn G__38712__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38712.cljs$core$IFn$_invoke$arity$2 \x3d G__38712__2;\nG__38712.cljs$core$IFn$_invoke$arity$3 \x3d G__38712__3;\nreturn G__38712;\n})()\n;\n/**\n * Apply function to a computation and flatten 1 level\n */\npromesa.protocols._mcat \x3d (function promesa$protocols$_mcat(var_args){\nvar G__37931 \x3d arguments.length;\nswitch (G__37931) {\ncase 2:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f);\n}\n}));\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f,executor);\n}\n}));\n\n(promesa.protocols._mcat.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_hmap$dyn_38718 \x3d (function() {\nvar G__38719 \x3d null;\nvar G__38719__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nvar G__38719__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nG__38719 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38719__2.call(this,it,f);\ncase 3:\nreturn G__38719__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38719.cljs$core$IFn$_invoke$arity$2 \x3d G__38719__2;\nG__38719.cljs$core$IFn$_invoke$arity$3 \x3d G__38719__3;\nreturn G__38719;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful.\n */\npromesa.protocols._hmap \x3d (function promesa$protocols$_hmap(var_args){\nvar G__37945 \x3d arguments.length;\nswitch (G__37945) {\ncase 2:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f);\n}\n}));\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f,executor);\n}\n}));\n\n(promesa.protocols._hmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_fnly$dyn_38721 \x3d (function() {\nvar G__38722 \x3d null;\nvar G__38722__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nvar G__38722__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nG__38722 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38722__2.call(this,it,f);\ncase 3:\nreturn G__38722__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38722.cljs$core$IFn$_invoke$arity$2 \x3d G__38722__2;\nG__38722.cljs$core$IFn$_invoke$arity$3 \x3d G__38722__3;\nreturn G__38722;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful; the return value is ignored.\n */\npromesa.protocols._fnly \x3d (function promesa$protocols$_fnly(var_args){\nvar G__37964 \x3d arguments.length;\nswitch (G__37964) {\ncase 2:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f);\n}\n}));\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f,executor);\n}\n}));\n\n(promesa.protocols._fnly.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_then$dyn_38732 \x3d (function() {\nvar G__38733 \x3d null;\nvar G__38733__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nvar G__38733__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nG__38733 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38733__2.call(this,it,f);\ncase 3:\nreturn G__38733__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38733.cljs$core$IFn$_invoke$arity$2 \x3d G__38733__2;\nG__38733.cljs$core$IFn$_invoke$arity$3 \x3d G__38733__3;\nreturn G__38733;\n})()\n;\n/**\n * Apply function to a computation and flatten multiple levels\n */\npromesa.protocols._then \x3d (function promesa$protocols$_then(var_args){\nvar G__37976 \x3d arguments.length;\nswitch (G__37976) {\ncase 2:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f);\n}\n}));\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f,executor);\n}\n}));\n\n(promesa.protocols._then.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Additional state/introspection abstraction.\n * @interface\n */\npromesa.protocols.IState \x3d function(){};\n\nvar promesa$protocols$IState$_extract$dyn_38742 \x3d (function() {\nvar G__38743 \x3d null;\nvar G__38743__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nvar G__38743__2 \x3d (function (it,default$){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5374__auto__.call(null,it,default$));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5372__auto__.call(null,it,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nG__38743 \x3d function(it,default$){\nswitch(arguments.length){\ncase 1:\nreturn G__38743__1.call(this,it);\ncase 2:\nreturn G__38743__2.call(this,it,default$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38743.cljs$core$IFn$_invoke$arity$1 \x3d G__38743__1;\nG__38743.cljs$core$IFn$_invoke$arity$2 \x3d G__38743__2;\nreturn G__38743;\n})()\n;\n/**\n * Extract the current value.\n */\npromesa.protocols._extract \x3d (function promesa$protocols$_extract(var_args){\nvar G__37998 \x3d arguments.length;\nswitch (G__37998) {\ncase 1:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it);\n}\n}));\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,default$){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$2(it,default$);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it,default$);\n}\n}));\n\n(promesa.protocols._extract.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$IState$_resolved_QMARK_$dyn_38750 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolved_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolved_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-resolved?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is resolved.\n */\npromesa.protocols._resolved_QMARK_ \x3d (function promesa$protocols$_resolved_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_resolved_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_resolved_QMARK_$dyn_38750(it);\n}\n});\n\nvar promesa$protocols$IState$_rejected_QMARK_$dyn_38751 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._rejected_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._rejected_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-rejected?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is rejected.\n */\npromesa.protocols._rejected_QMARK_ \x3d (function promesa$protocols$_rejected_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_rejected_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_rejected_QMARK_$dyn_38751(it);\n}\n});\n\nvar promesa$protocols$IState$_pending_QMARK_$dyn_38757 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-pending?\x22,it);\n}\n}\n});\n/**\n * Retutns true if a promise is pending.\n */\npromesa.protocols._pending_QMARK_ \x3d (function promesa$protocols$_pending_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_pending_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_pending_QMARK_$dyn_38757(it);\n}\n});\n\n\n/**\n * A promise constructor abstraction.\n * @interface\n */\npromesa.protocols.IPromiseFactory \x3d function(){};\n\nvar promesa$protocols$IPromiseFactory$_promise$dyn_38758 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._promise[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._promise[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromiseFactory.-promise\x22,it);\n}\n}\n});\n/**\n * Create a promise instance from other types\n */\npromesa.protocols._promise \x3d (function promesa$protocols$_promise(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromiseFactory$_promise$arity$1(it);\n} else {\nreturn promesa$protocols$IPromiseFactory$_promise$dyn_38758(it);\n}\n});\n\n\n/**\n * A cancellation abstraction.\n * @interface\n */\npromesa.protocols.ICancellable \x3d function(){};\n\nvar promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancel!\x22,it);\n}\n}\n});\npromesa.protocols._cancel_BANG_ \x3d (function promesa$protocols$_cancel_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760(it);\n}\n});\n\nvar promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancelled?\x22,it);\n}\n}\n});\npromesa.protocols._cancelled_QMARK_ \x3d (function promesa$protocols$_cancelled_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICompletable \x3d function(){};\n\nvar promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768 \x3d (function (it,v){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolve_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5374__auto__.call(null,it,v));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolve_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5372__auto__.call(null,it,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-resolve!\x22,it);\n}\n}\n});\n/**\n * Deliver a value to empty promise.\n */\npromesa.protocols._resolve_BANG_ \x3d (function promesa$protocols$_resolve_BANG_(it,v){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2(it,v);\n} else {\nreturn promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768(it,v);\n}\n});\n\nvar promesa$protocols$ICompletable$_reject_BANG_$dyn_38774 \x3d (function (it,e){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._reject_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5374__auto__.call(null,it,e));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._reject_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5372__auto__.call(null,it,e));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-reject!\x22,it);\n}\n}\n});\n/**\n * Deliver an error to empty promise.\n */\npromesa.protocols._reject_BANG_ \x3d (function promesa$protocols$_reject_BANG_(it,e){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_reject_BANG_$arity$2(it,e);\n} else {\nreturn promesa$protocols$ICompletable$_reject_BANG_$dyn_38774(it,e);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IExecutor \x3d function(){};\n\nvar promesa$protocols$IExecutor$_exec_BANG_$dyn_38780 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._exec_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._exec_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-exec!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return nil\n */\npromesa.protocols._exec_BANG_ \x3d (function promesa$protocols$_exec_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_exec_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_exec_BANG_$dyn_38780(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_run_BANG_$dyn_38784 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._run_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._run_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-run!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._run_BANG_ \x3d (function promesa$protocols$_run_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_run_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_run_BANG_$dyn_38784(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_submit_BANG_$dyn_38785 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._submit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._submit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-submit!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._submit_BANG_ \x3d (function promesa$protocols$_submit_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_submit_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_submit_BANG_$dyn_38785(it,task);\n}\n});\n\n\n/**\n * A generic abstraction for scheduler facilities.\n * @interface\n */\npromesa.protocols.IScheduler \x3d function(){};\n\nvar promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792 \x3d (function (it,ms,func){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._schedule_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5374__auto__.call(null,it,ms,func));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._schedule_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5372__auto__.call(null,it,ms,func));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.-schedule!\x22,it);\n}\n}\n});\n/**\n * Schedule a function to be executed in future.\n */\npromesa.protocols._schedule_BANG_ \x3d (function promesa$protocols$_schedule_BANG_(it,ms,func){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3(it,ms,func);\n} else {\nreturn promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792(it,ms,func);\n}\n});\n\n\n/**\n * An experimental semaphore protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ISemaphore \x3d function(){};\n\nvar promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798 \x3d (function() {\nvar G__38799 \x3d null;\nvar G__38799__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__3 \x3d (function (it,n,t){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5374__auto__.call(null,it,n,t));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5372__auto__.call(null,it,n,t));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nG__38799 \x3d function(it,n,t){\nswitch(arguments.length){\ncase 1:\nreturn G__38799__1.call(this,it);\ncase 2:\nreturn G__38799__2.call(this,it,n);\ncase 3:\nreturn G__38799__3.call(this,it,n,t);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38799.cljs$core$IFn$_invoke$arity$1 \x3d G__38799__1;\nG__38799.cljs$core$IFn$_invoke$arity$2 \x3d G__38799__2;\nG__38799.cljs$core$IFn$_invoke$arity$3 \x3d G__38799__3;\nreturn G__38799;\n})()\n;\n/**\n * Try acquire n or n permits, non-blocking or optional timeout\n */\npromesa.protocols._try_acquire_BANG_ \x3d (function promesa$protocols$_try_acquire_BANG_(var_args){\nvar G__38458 \x3d arguments.length;\nswitch (G__38458) {\ncase 1:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,n,t){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3(it,n,t);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n,t);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810 \x3d (function() {\nvar G__38811 \x3d null;\nvar G__38811__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nvar G__38811__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nG__38811 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38811__1.call(this,it);\ncase 2:\nreturn G__38811__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38811.cljs$core$IFn$_invoke$arity$1 \x3d G__38811__1;\nG__38811.cljs$core$IFn$_invoke$arity$2 \x3d G__38811__2;\nreturn G__38811;\n})()\n;\n/**\n * Acquire 1 or N permits\n */\npromesa.protocols._acquire_BANG_ \x3d (function promesa$protocols$_acquire_BANG_(var_args){\nvar G__38505 \x3d arguments.length;\nswitch (G__38505) {\ncase 1:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it,n);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$ISemaphore$_release_BANG_$dyn_38816 \x3d (function() {\nvar G__38817 \x3d null;\nvar G__38817__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nvar G__38817__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nG__38817 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38817__1.call(this,it);\ncase 2:\nreturn G__38817__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38817.cljs$core$IFn$_invoke$arity$1 \x3d G__38817__1;\nG__38817.cljs$core$IFn$_invoke$arity$2 \x3d G__38817__2;\nreturn G__38817;\n})()\n;\n/**\n * Release 1 or N permits\n */\npromesa.protocols._release_BANG_ \x3d (function promesa$protocols$_release_BANG_(var_args){\nvar G__38547 \x3d arguments.length;\nswitch (G__38547) {\ncase 1:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it,n);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * An experimental lock protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ILock \x3d function(){};\n\nvar promesa$protocols$ILock$_lock_BANG_$dyn_38826 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._lock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._lock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-lock!\x22,it);\n}\n}\n});\npromesa.protocols._lock_BANG_ \x3d (function promesa$protocols$_lock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_lock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_lock_BANG_$dyn_38826(it);\n}\n});\n\nvar promesa$protocols$ILock$_unlock_BANG_$dyn_38831 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._unlock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._unlock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-unlock!\x22,it);\n}\n}\n});\npromesa.protocols._unlock_BANG_ \x3d (function promesa$protocols$_unlock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_unlock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_unlock_BANG_$dyn_38831(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IReadChannel \x3d function(){};\n\nvar promesa$protocols$IReadChannel$_take_BANG_$dyn_38836 \x3d (function (it,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._take_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5374__auto__.call(null,it,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._take_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5372__auto__.call(null,it,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IReadChannel.-take!\x22,it);\n}\n}\n});\npromesa.protocols._take_BANG_ \x3d (function promesa$protocols$_take_BANG_(it,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IReadChannel$_take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IReadChannel$_take_BANG_$arity$2(it,handler);\n} else {\nreturn promesa$protocols$IReadChannel$_take_BANG_$dyn_38836(it,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IWriteChannel \x3d function(){};\n\nvar promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838 \x3d (function (it,val,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._put_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5374__auto__.call(null,it,val,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._put_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5372__auto__.call(null,it,val,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriteChannel.-put!\x22,it);\n}\n}\n});\npromesa.protocols._put_BANG_ \x3d (function promesa$protocols$_put_BANG_(it,val,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3(it,val,handler);\n} else {\nreturn promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838(it,val,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelInternal \x3d function(){};\n\nvar promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cleanup_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cleanup_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelInternal.-cleanup!\x22,it);\n}\n}\n});\npromesa.protocols._cleanup_BANG_ \x3d (function promesa$protocols$_cleanup_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelMultiplexer \x3d function(){};\n\nvar promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840 \x3d (function (it,ch,close_QMARK_){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._tap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5374__auto__.call(null,it,ch,close_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._tap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5372__auto__.call(null,it,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-tap!\x22,it);\n}\n}\n});\npromesa.protocols._tap_BANG_ \x3d (function promesa$protocols$_tap_BANG_(it,ch,close_QMARK_){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3(it,ch,close_QMARK_);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840(it,ch,close_QMARK_);\n}\n});\n\nvar promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842 \x3d (function (it,ch){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._untap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5374__auto__.call(null,it,ch));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._untap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5372__auto__.call(null,it,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-untap!\x22,it);\n}\n}\n});\npromesa.protocols._untap_BANG_ \x3d (function promesa$protocols$_untap_BANG_(it,ch){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2(it,ch);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842(it,ch);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICloseable \x3d function(){};\n\nvar promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._closed_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._closed_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-closed?\x22,it);\n}\n}\n});\npromesa.protocols._closed_QMARK_ \x3d (function promesa$protocols$_closed_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843(it);\n}\n});\n\nvar promesa$protocols$ICloseable$_close_BANG_$dyn_38845 \x3d (function() {\nvar G__38846 \x3d null;\nvar G__38846__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nvar G__38846__2 \x3d (function (it,reason){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5374__auto__.call(null,it,reason));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5372__auto__.call(null,it,reason));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nG__38846 \x3d function(it,reason){\nswitch(arguments.length){\ncase 1:\nreturn G__38846__1.call(this,it);\ncase 2:\nreturn G__38846__2.call(this,it,reason);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38846.cljs$core$IFn$_invoke$arity$1 \x3d G__38846__1;\nG__38846.cljs$core$IFn$_invoke$arity$2 \x3d G__38846__2;\nreturn G__38846;\n})()\n;\npromesa.protocols._close_BANG_ \x3d (function promesa$protocols$_close_BANG_(var_args){\nvar G__38634 \x3d arguments.length;\nswitch (G__38634) {\ncase 1:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,reason){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$2(it,reason);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it,reason);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * @interface\n */\npromesa.protocols.IBuffer \x3d function(){};\n\nvar promesa$protocols$IBuffer$_full_QMARK_$dyn_38852 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._full_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._full_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-full?\x22,it);\n}\n}\n});\npromesa.protocols._full_QMARK_ \x3d (function promesa$protocols$_full_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_full_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_full_QMARK_$dyn_38852(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_poll_BANG_$dyn_38854 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._poll_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._poll_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-poll!\x22,it);\n}\n}\n});\npromesa.protocols._poll_BANG_ \x3d (function promesa$protocols$_poll_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_poll_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_poll_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_poll_BANG_$dyn_38854(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_offer_BANG_$dyn_38857 \x3d (function (it,val){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._offer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5374__auto__.call(null,it,val));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._offer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5372__auto__.call(null,it,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-offer!\x22,it);\n}\n}\n});\npromesa.protocols._offer_BANG_ \x3d (function promesa$protocols$_offer_BANG_(it,val){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_offer_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_offer_BANG_$arity$2(it,val);\n} else {\nreturn promesa$protocols$IBuffer$_offer_BANG_$dyn_38857(it,val);\n}\n});\n\nvar promesa$protocols$IBuffer$_size$dyn_38864 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._size[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._size[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-size\x22,it);\n}\n}\n});\npromesa.protocols._size \x3d (function promesa$protocols$_size(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_size$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_size$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_size$dyn_38864(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IHandler \x3d function(){};\n\nvar promesa$protocols$IHandler$_active_QMARK_$dyn_38866 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._active_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._active_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-active?\x22,it);\n}\n}\n});\npromesa.protocols._active_QMARK_ \x3d (function promesa$protocols$_active_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_active_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_active_QMARK_$dyn_38866(it);\n}\n});\n\nvar promesa$protocols$IHandler$_commit_BANG_$dyn_38871 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._commit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._commit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-commit!\x22,it);\n}\n}\n});\npromesa.protocols._commit_BANG_ \x3d (function promesa$protocols$_commit_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_commit_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_commit_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_commit_BANG_$dyn_38871(it);\n}\n});\n\nvar promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._blockable_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._blockable_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-blockable?\x22,it);\n}\n}\n});\npromesa.protocols._blockable_QMARK_ \x3d (function promesa$protocols$_blockable_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874(it);\n}\n});\n\n"); +SHADOW_ENV.evalLoad("promesa.util.js", true, "goog.provide(\x27promesa.util\x27);\n/**\n * Create a handler, mainly for combine two separate functions\n * into a single callbale.\n */\npromesa.util.handler \x3d (function promesa$util$handler(fv,fc){\nreturn (function (v,c){\nif(cljs.core.truth_(c)){\nreturn (fc.cljs$core$IFn$_invoke$arity$1 ? fc.cljs$core$IFn$_invoke$arity$1(c) : fc.call(null,c));\n} else {\nreturn (fv.cljs$core$IFn$_invoke$arity$1 ? fv.cljs$core$IFn$_invoke$arity$1(v) : fv.call(null,v));\n}\n});\n});\npromesa.util.has_method_QMARK_ \x3d (function promesa$util$has_method_QMARK_(klass,name){\nvar methods$ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (method){\nreturn method.getName();\n})),klass.getDeclaredMethods());\nreturn cljs.core.contains_QMARK_(methods$,name);\n});\npromesa.util.maybe_deref \x3d (function promesa$util$maybe_deref(o){\nif(cljs.core.delay_QMARK_(o)){\nreturn cljs.core.deref(o);\n} else {\nreturn o;\n}\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.ILock}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.util.t_promesa$util43295 \x3d (function (meta43296){\nthis.meta43296 \x3d meta43296;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43297,meta43296__$1){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn (new promesa.util.t_promesa$util43295(meta43296__$1));\n}));\n\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43297){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn self__.meta43296;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43296\x22,\x22meta43296\x22,331692302,null)], null);\n}));\n\n(promesa.util.t_promesa$util43295.cljs$lang$type \x3d true);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorStr \x3d \x22promesa.util/t_promesa$util43295\x22);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.util/t_promesa$util43295\x22);\n}));\n\n/**\n * Positional factory function for promesa.util/t_promesa$util43295.\n */\npromesa.util.__GT_t_promesa$util43295 \x3d (function promesa$util$__GT_t_promesa$util43295(meta43296){\nreturn (new promesa.util.t_promesa$util43295(meta43296));\n});\n\n\npromesa.util.mutex \x3d (function promesa$util$mutex(){\nreturn (new promesa.util.t_promesa$util43295(cljs.core.PersistentArrayMap.EMPTY));\n});\npromesa.util.try_STAR_ \x3d (function promesa$util$try_STAR_(f,on_error){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43314){var e \x3d e43314;\nreturn (on_error.cljs$core$IFn$_invoke$arity$1 ? on_error.cljs$core$IFn$_invoke$arity$1(e) : on_error.call(null,e));\n}});\n"); +SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.impl.promise\x22);\ngoog.provide(\x22promesa.impl.promise.PromiseImpl\x22);\ngoog.provide(\x22promesa.impl.promise.CancellationError\x22);\ngoog.scope(function() {\n const self \x3d promesa.impl.promise;\n const root \x3d goog.global;\n const PENDING \x3d Symbol(\x22state/pending\x22);\n const RESOLVED \x3d Symbol(\x22state/resolved\x22);\n const REJECTED \x3d Symbol(\x22state/rejected\x22);\n const QUEUE \x3d Symbol(\x22queue\x22);\n const STATE \x3d Symbol(\x22state\x22);\n const VALUE \x3d Symbol(\x22value\x22);\n const RESOLVE_TYPE_FLATTEN \x3d Symbol(\x22resolve-type/flatten\x22);\n const RESOLVE_TYPE_BIND \x3d Symbol(\x22resolve-type/bind\x22);\n const RESOLVE_TYPE_MAP \x3d Symbol(\x22resolve-type/map\x22);\n const defaultResolveMapHandler \x3d v \x3d\x3e v;\n const defaultResolveBindHandler \x3d v \x3d\x3e self.resolved(v);\n const defaultRejectHandler \x3d c \x3d\x3e {\n throw c;\n };\n class CancellationError extends Error {\n }\n class PromiseImpl {\n constructor(val) {\n this[QUEUE] \x3d [];\n this[STATE] \x3d PENDING;\n this[VALUE] \x3d undefined;\n if (val !\x3d\x3d undefined) {\n transition(this, RESOLVED, val);\n }\n }\n get state() {\n return this[STATE];\n }\n get value() {\n return this[VALUE];\n }\n then(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n catch(reject) {\n return this.then(null, reject);\n }\n finally(f) {\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:value \x3d\x3e f(), reject:cause \x3d\x3e f(), complete:(value, cause) \x3d\x3e null});\n return this;\n }\n fmap(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_MAP, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n fbind(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_BIND, resolve:resolve ?? defaultResolveBindHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n handle(fn, resolveType) {\n resolveType \x3d resolveType ?? RESOLVE_TYPE_MAP;\n this[QUEUE].push({type:resolveType, resolve:defaultResolveMapHandler, reject:defaultRejectHandler, complete:fn});\n process(this);\n }\n resolve(value) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, RESOLVED, value);\n }\n return null;\n }\n reject(cause) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, REJECTED, cause);\n }\n return null;\n }\n isPending() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d PENDING;\n }\n isResolved() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d RESOLVED;\n }\n isRejected() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d REJECTED;\n }\n isCancelled() {\n const state \x3d this[STATE];\n const value \x3d this[VALUE];\n return state \x3d\x3d\x3d REJECTED \x26\x26 isCancellationError(value);\n }\n cancel() {\n this.reject(new CancellationError(\x22promise cancelled\x22));\n }\n }\n const nextTick \x3d (() \x3d\x3e {\n if (typeof root.Promise \x3d\x3d\x3d \x22function\x22) {\n const resolved \x3d Promise.resolve(null);\n return function queueMicrotaskWithPromise(f, p) {\n resolved.then(() \x3d\x3e f(p));\n };\n } else if (typeof root.setImmediate \x3d\x3d\x3d \x22function\x22) {\n return root.setImmediate;\n } else if (typeof root.setTimeout \x3d\x3d\x3d \x22function\x22) {\n return (f, p) \x3d\x3e root.setTimeout(f, 0, p);\n } else {\n return (f, p) \x3d\x3e f.call(this, p);\n }\n })();\n function isCancellationError(v) {\n return v instanceof CancellationError;\n }\n function fmtValue(o) {\n if (isThenable(o)) {\n return `\x3cPROMISE:${goog.getUid(o)}\x3e`;\n } else if (o instanceof Error) {\n return `\x3cEXCEPTION:\x27${o.message}\x27\x3e`;\n } else if (o \x3d\x3d\x3d null || o \x3d\x3d\x3d undefined) {\n return `${o}`;\n } else if (typeof o \x3d\x3d\x3d \x22function\x22) {\n return `\x3cFN:${goog.getUid(o)}\x3e`;\n } else {\n return `${o.toString()}`;\n }\n }\n function isSome(o) {\n return o !\x3d\x3d null \x26\x26 o !\x3d\x3d undefined;\n }\n function isFunction(o) {\n return typeof o \x3d\x3d\x3d \x22function\x22;\n }\n function isThenable(o) {\n if (goog.isObject(o)) {\n const thenFn \x3d o.then;\n return isFunction(thenFn);\n } else {\n return false;\n }\n }\n function constantly(v) {\n return () \x3d\x3e v;\n }\n function identity(v) {\n return v;\n }\n function isPromiseImpl(v) {\n return v instanceof PromiseImpl;\n }\n function completeDeferredFn(deferred) {\n return (value, cause) \x3d\x3e {\n if (cause) {\n deferred.reject(cause);\n } else {\n deferred.resolve(value);\n }\n };\n }\n function process(p) {\n if (p[STATE] \x3d\x3d\x3d PENDING) {\n return;\n }\n nextTick(processNextTick, p);\n return p;\n }\n function processNextTick(p) {\n if (p[QUEUE].length \x3d\x3d\x3d 0) {\n return;\n }\n const state \x3d p[STATE];\n const value \x3d p[VALUE];\n let task, rvalue, rcause;\n while (p[QUEUE].length) {\n task \x3d p[QUEUE].shift();\n try {\n if (state \x3d\x3d\x3d RESOLVED) {\n rvalue \x3d task.resolve(value);\n } else if (state \x3d\x3d\x3d REJECTED) {\n rvalue \x3d task.reject(value);\n } else {\n rcause \x3d new TypeError(\x22invalid state\x22);\n }\n } catch (e) {\n rcause \x3d e;\n }\n resolveTask(task, rvalue, rcause);\n }\n }\n function resolveTask(task, value, cause) {\n if (task.complete \x3d\x3d\x3d undefined) {\n return;\n }\n if (cause) {\n task.complete(null, cause);\n } else {\n if (task.type \x3d\x3d\x3d RESOLVE_TYPE_MAP) {\n task.complete(value, null);\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_FLATTEN) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n resolveTask(task, v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n resolveTask(task, v, null);\n }, c \x3d\x3e {\n resolveTask(task, null, c);\n });\n } else {\n task.complete(value, null);\n }\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_BIND) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n task.complete(v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n task.complete(v, null);\n }, c \x3d\x3e {\n task.complete(null, c);\n });\n } else {\n task.complete(null, new TypeError(\x22expected thenable\x22));\n }\n } else {\n task.complete(null, new TypeError(\x22internal: invalid resolve type\x22));\n }\n }\n }\n function transition(p, state, value) {\n if (p[STATE] \x3d\x3d\x3d state || p[STATE] !\x3d\x3d PENDING) {\n return;\n }\n p[STATE] \x3d state;\n p[VALUE] \x3d value;\n return processNextTick(p);\n }\n self.PromiseImpl \x3d PromiseImpl;\n self.CancellationError \x3d CancellationError;\n self.isCancellationError \x3d isCancellationError;\n self.deferred \x3d () \x3d\x3e {\n return new PromiseImpl();\n };\n const NULL_PROMISE \x3d new PromiseImpl(null);\n self.resolved \x3d function resolved(value) {\n if (value \x3d\x3d\x3d null) {\n return NULL_PROMISE;\n } else {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d RESOLVED;\n p[VALUE] \x3d value;\n return p;\n }\n };\n self.rejected \x3d function rejected(reason) {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d REJECTED;\n p[VALUE] \x3d reason;\n return p;\n };\n self.all \x3d function all(promises) {\n return promises.reduce((acc, p) \x3d\x3e {\n return acc.then(results \x3d\x3e {\n return self.coerce(p).fmap(v \x3d\x3e {\n results.push(v);\n return results;\n });\n });\n }, self.resolved([]));\n };\n self.coerce \x3d function coerce(promise) {\n if (promise instanceof PromiseImpl) {\n return promise;\n } else if (isThenable(promise)) {\n const deferred \x3d self.deferred();\n promise.then(v \x3d\x3e {\n deferred.resolve(v);\n }, c \x3d\x3e {\n deferred.reject(c);\n });\n return deferred;\n } else if (promise instanceof Error) {\n return self.rejected(promise);\n } else {\n return self.resolved(promise);\n }\n };\n self.race \x3d function race(promises) {\n const deferred \x3d self.deferred();\n promises.forEach(p \x3d\x3e {\n self.coerce(p).handle((v, c) \x3d\x3e {\n if (c) {\n deferred.reject(c);\n } else {\n deferred.resolve(v);\n }\n });\n });\n return deferred;\n };\n self.nextTick \x3d nextTick;\n self.PENDING \x3d PENDING;\n self.RESOLVED \x3d RESOLVED;\n self.REJECTED \x3d REJECTED;\n});\n"); +SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); +SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); +SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\ntry{return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n}catch (e39435){if((e39435 instanceof Error)){\nvar e \x3d e39435;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n\n}\n}\n} else {\nthrow e39435;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (exec_result){\nvar G__39436 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__39436__$1 \x3d (((G__39436 instanceof cljs.core.Keyword))?G__39436.fqn:null);\nswitch (G__39436__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (_){\nvar G__39437 \x3d executor;\nvar G__39438 \x3d activity_name;\nvar G__39439 \x3d args;\nvar G__39440 \x3d timeout_ms;\nvar G__39441 \x3d retry_policy;\nvar G__39442 \x3d observer;\nvar G__39443 \x3d workflow_id;\nvar G__39444 \x3d seq_num;\nvar G__39445 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__39437,G__39438,G__39439,G__39440,G__39441,G__39442,G__39443,G__39444,G__39445) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__39437,G__39438,G__39439,G__39440,G__39441,G__39442,G__39443,G__39444,G__39445));\n}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39436__$1)].join(\x27\x27)));\n\n}\n}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__39446,pending_events,observer){\nvar map__39447 \x3d p__39446;\nvar map__39447__$1 \x3d cljs.core.__destructure_map(map__39447);\nvar suspension_data \x3d map__39447__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__39448 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39449 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39449);\n\ntry{return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq)),(function (exec_result){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_events(store,workflow_id,pending_events)),(function (___30467__auto__){\nreturn promesa.protocols._promise((function (){var success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__39450 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__39450__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39450,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__39450);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39450__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__39450__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39448);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activities_parallel(executor,pending_asyncs)),(function (results){\nreturn promesa.protocols._promise((function (){var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__39451,result){\nvar map__39452 \x3d p__39451;\nvar map__39452__$1 \x3d cljs.core.__destructure_map(map__39452);\nvar async_info \x3d map__39452__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39452__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39452__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__39453 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39454 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39454);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39453);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39455 \x3d suspension_data;\nvar map__39455__$1 \x3d cljs.core.__destructure_map(map__39455);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39455__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39455__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39456 \x3d suspension_data;\nvar map__39456__$1 \x3d cljs.core.__destructure_map(map__39456);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39456__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39456__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___39485 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___39485)){\nvar signal_data_39486 \x3d temp__5825__auto___39485;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_39486),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_39486),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_39486));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39457 \x3d suspension_data;\nvar map__39457__$1 \x3d cljs.core.__destructure_map(map__39457);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__39491 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__39458 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__39491 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__39491 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39458,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__39491));\n} else {\nreturn G__39458;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__39459 \x3d suspension_data;\nvar map__39459__$1 \x3d cljs.core.__destructure_map(map__39459);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39459__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(workflow_id,history,store,registry,observer){\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\n});\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer):(function (){\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n})()\n)),(function (_){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null))),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_workflow_completed(observer,workflow_id,result):null)),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null));\n}));\n}));\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__39460 \x3d action;\nvar G__39460__$1 \x3d (((G__39460 instanceof cljs.core.Keyword))?G__39460.fqn:null);\nswitch (G__39460__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__39461 \x3d engine;\nvar map__39461__$1 \x3d cljs.core.__destructure_map(map__39461);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__39462 \x3d suspension_type;\nvar G__39462__$1 \x3d (((G__39462 instanceof cljs.core.Keyword))?G__39462.fqn:null);\nswitch (G__39462__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs_list))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer):null)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39462__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__39463,workflow_id,workflow_fn,args,p__39464){\nvar map__39465 \x3d p__39463;\nvar map__39465__$1 \x3d cljs.core.__destructure_map(map__39465);\nvar engine \x3d map__39465__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39466 \x3d p__39464;\nvar map__39466__$1 \x3d cljs.core.__destructure_map(map__39466);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39466__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39466__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39466__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39471,reject_fn_39470){\nvar loop_fn_39467 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_39467(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39468,err_39469){\nif((!((err_39469 \x3d\x3d null)))){\nreturn (reject_fn_39470.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39470.cljs$core$IFn$_invoke$arity$1(err_39469) : reject_fn_39470.call(null,err_39469));\n} else {\nif(promesa.core.recur_QMARK_(res_39468)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_39467,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39468));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39471.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39471.cljs$core$IFn$_invoke$arity$1(res_39468) : resolve_fn_39471.call(null,res_39468));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context(workflow_id,history__$1,store,registry,observer);\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__39472 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39473 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39473);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39472);\n}})();\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result)], 0));\n\nvar G__39474 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__39474__$1 \x3d (((G__39474 instanceof cljs.core.Keyword))?G__39474.fqn:null);\nswitch (G__39474__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ncase \x22suspended\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),wake_fn,observer)),(function (action){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())?intemporal.protocol.on_workflow_resumed(observer,workflow_id):null)),(function (___30467__auto____$2){\nreturn promesa.protocols._promise(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553)))?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null)):intemporal.internal.execution.action__GT_result(action,workflow_id)));\n}));\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39474__$1)].join(\x27\x27)));\n\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39467((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__39475,workflow_id,suspension_data,pending_events,observer){\nvar map__39476 \x3d p__39475;\nvar map__39476__$1 \x3d cljs.core.__destructure_map(map__39476);\nvar engine \x3d map__39476__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39477 \x3d suspension_data;\nvar map__39477__$1 \x3d cljs.core.__destructure_map(map__39477);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__39480 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__39479 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__39479.cljs$core$IFn$_invoke$arity$1 ? fexpr__39479.cljs$core$IFn$_invoke$arity$1(G__39480) : fexpr__39479.call(null,G__39480));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39508 \x3d arguments.length;\nvar i__5750__auto___39509 \x3d (0);\nwhile(true){\nif((i__5750__auto___39509 \x3c len__5749__auto___39508)){\nargs__5755__auto__.push((arguments[i__5750__auto___39509]));\n\nvar G__39510 \x3d (i__5750__auto___39509 + (1));\ni__5750__auto___39509 \x3d G__39510;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39487,workflow_fn,args,p__39488){\nvar map__39489 \x3d p__39487;\nvar map__39489__$1 \x3d cljs.core.__destructure_map(map__39489);\nvar engine \x3d map__39489__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39489__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__39490 \x3d p__39488;\nvar map__39490__$1 \x3d cljs.core.__destructure_map(map__39490);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39490__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39490__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39490__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq39481){\nvar G__39482 \x3d cljs.core.first(seq39481);\nvar seq39481__$1 \x3d cljs.core.next(seq39481);\nvar G__39483 \x3d cljs.core.first(seq39481__$1);\nvar seq39481__$2 \x3d cljs.core.next(seq39481__$1);\nvar G__39484 \x3d cljs.core.first(seq39481__$2);\nvar seq39481__$3 \x3d cljs.core.next(seq39481__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39482,G__39483,G__39484,seq39481__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39511 \x3d arguments.length;\nvar i__5750__auto___39512 \x3d (0);\nwhile(true){\nif((i__5750__auto___39512 \x3c len__5749__auto___39511)){\nargs__5755__auto__.push((arguments[i__5750__auto___39512]));\n\nvar G__39513 \x3d (i__5750__auto___39512 + (1));\ni__5750__auto___39512 \x3d G__39513;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39499,workflow_fn,args,p__39500){\nvar map__39501 \x3d p__39499;\nvar map__39501__$1 \x3d cljs.core.__destructure_map(map__39501);\nvar engine \x3d map__39501__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39501__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__39502 \x3d p__39500;\nvar map__39502__$1 \x3d cljs.core.__destructure_map(map__39502);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39502__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__39503 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39504 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39504);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__39505 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__39505) : on_complete.call(null,G__39505));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39503);\n}});\nvar _STAR_ctx_STAR__orig_val__39506 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39507 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39507);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39506);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq39494){\nvar G__39495 \x3d cljs.core.first(seq39494);\nvar seq39494__$1 \x3d cljs.core.next(seq39494);\nvar G__39496 \x3d cljs.core.first(seq39494__$1);\nvar seq39494__$2 \x3d cljs.core.next(seq39494__$1);\nvar G__39497 \x3d cljs.core.first(seq39494__$2);\nvar seq39494__$3 \x3d cljs.core.next(seq39494__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39495,G__39496,G__39497,seq39494__$3);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IStore}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.store.InMemoryStore \x3d (function (state,__meta,__extmap,__hash){\nthis.state \x3d state;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28969,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28978 \x3d k28969;\nvar G__28978__$1 \x3d (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null);\nswitch (G__28978__$1) {\ncase \x22state\x22:\nreturn self__.state;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){\nvar vec__28983 \x3d p__28980;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.PersistentVector.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),false);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar result \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){\nvar signals \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null));\nif(cljs.core.seq(signals)){\ncljs.core.reset_BANG_(result,cljs.core.first(signals));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest));\n} else {\nreturn s;\n}\n}));\n\nreturn cljs.core.deref(result);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 \x3d (function (this$,worfklow_id,event_type,seq_num){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar history__$1 \x3d this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id);\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num)));\n}),history__$1));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d (function (_,workflow_id,signal_name,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null),callback);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021)], null),cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 \x3d (function (_,workflow_id,events){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.seq(events)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0));\n} else {\n}\n\nreturn events;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 \x3d (function (this$,workflow_id,signal_name,signal_data){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0));\n\nvar temp__5825__auto___29275 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null));\nif(cljs.core.truth_(temp__5825__auto___29275)){\nvar callback_29278 \x3d temp__5825__auto___29275;\nsetTimeout(callback_29278,(0));\n} else {\n}\n\nreturn signal_data;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),true);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar wf \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id], null));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224);\n} else {\nif(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22not-found\x22,\x22not-found\x22,-629079980);\n} else {\nvar last_event \x3d cljs.core.last(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf));\nvar G__29001 \x3d new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(last_event);\nvar G__29001__$1 \x3d (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null);\nswitch (G__29001__$1) {\ncase \x22workflow-completed\x22:\nreturn new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503);\n\nbreak;\ncase \x22workflow-failed\x22:\nreturn new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762);\n\nbreak;\ndefault:\nreturn new cljs.core.Keyword(null,\x22running\x22,\x22running\x22,1554969103);\n\n}\n\n}\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 \x3d (function (_,workflow_id,event){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0));\n\nreturn event;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.store.InMemoryStore{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state],null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28968){\nvar self__ \x3d this;\nvar G__28968__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28970,other28971){\nvar self__ \x3d this;\nvar this28970__$1 \x3d this;\nreturn (((!((other28971 \x3d\x3d null)))) \x26\x26 ((((this28970__$1.constructor \x3d\x3d\x3d other28971.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap)))))));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28969){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29104 \x3d k28969;\nvar G__29104__$1 \x3d (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null);\nswitch (G__29104__$1) {\ncase \x22state\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28969);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29126 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29127 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127)))){\nreturn (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state,null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.store.InMemoryStore.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null)], null);\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$type \x3d true);\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.store/InMemoryStore\x22,null,(1),null));\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.store/InMemoryStore\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/InMemoryStore.\n */\nintemporal.store.__GT_InMemoryStore \x3d (function intemporal$store$__GT_InMemoryStore(state){\nreturn (new intemporal.store.InMemoryStore(state,null,null,null));\n});\n\n/**\n * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values.\n */\nintemporal.store.map__GT_InMemoryStore \x3d (function intemporal$store$map__GT_InMemoryStore(G__28972){\nvar extmap__5365__auto__ \x3d (function (){var G__29201 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(cljs.core.record_QMARK_(G__28972)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201);\n} else {\nreturn G__29201;\n}\n})();\nreturn (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n"); +SHADOW_ENV.evalLoad("intemporal.observer.js", true, "goog.provide(\x27intemporal.observer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.observer.LoggingObserver \x3d (function (log_atom,__meta,__extmap,__hash){\nthis.log_atom \x3d log_atom;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28974,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28979 \x3d k28974;\nvar G__28979__$1 \x3d (((G__28979 instanceof cljs.core.Keyword))?G__28979.fqn:null);\nswitch (G__28979__$1) {\ncase \x22log-atom\x22:\nreturn self__.log_atom;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28974,else__5326__auto__);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28981){\nvar vec__28982 \x3d p__28981;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.observer.LoggingObserver{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom],null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28973){\nvar self__ \x3d this;\nvar G__28973__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28973__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1356941522 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28975,other28976){\nvar self__ \x3d this;\nvar this28975__$1 \x3d this;\nreturn (((!((other28976 \x3d\x3d null)))) \x26\x26 ((((this28975__$1.constructor \x3d\x3d\x3d other28976.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.log_atom,other28976.log_atom)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.__extmap,other28976.__extmap)))))));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,workflow_id,seq_num,activity_name,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,workflow_id,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,result,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-resumed\x22,\x22workflow-resumed\x22,-1165962528),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,workflow_id,seq_num,fire_at){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,error,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,workflow_id,seq_num,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,workflow_id,seq_num,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,workflow_id,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,workflow_id,signal_name,payload){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,workflow_id,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-cancelled\x22,\x22workflow-cancelled\x22,696539230),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,workflow_id,seq_num,activity_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-started\x22,\x22activity-started\x22,-1116606589),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,workflow_id,suspension_type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-suspended\x22,\x22workflow-suspended\x22,1316626574),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),suspension_type,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28974){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29063 \x3d k28974;\nvar G__29063__$1 \x3d (((G__29063 instanceof cljs.core.Keyword))?G__29063.fqn:null);\nswitch (G__29063__$1) {\ncase \x22log-atom\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28974);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29081 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29080.cljs$core$IFn$_invoke$arity$2 ? pred__29080.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081) : pred__29080.call(null,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081)))){\nreturn (new intemporal.observer.LoggingObserver(G__28973,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28973),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom,null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,G__28973,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.observer.LoggingObserver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22log-atom\x22,\x22log-atom\x22,-1250409612,null)], null);\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$type \x3d true);\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.observer/LoggingObserver\x22,null,(1),null));\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.observer/LoggingObserver\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/LoggingObserver.\n */\nintemporal.observer.__GT_LoggingObserver \x3d (function intemporal$observer$__GT_LoggingObserver(log_atom){\nreturn (new intemporal.observer.LoggingObserver(log_atom,null,null,null));\n});\n\n/**\n * Factory function for intemporal.observer/LoggingObserver, taking a map of keywords to field values.\n */\nintemporal.observer.map__GT_LoggingObserver \x3d (function intemporal$observer$map__GT_LoggingObserver(G__28977){\nvar extmap__5365__auto__ \x3d (function (){var G__29148 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28977,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157));\nif(cljs.core.record_QMARK_(G__28977)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29148);\n} else {\nreturn G__29148;\n}\n})();\nreturn (new intemporal.observer.LoggingObserver(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157).cljs$core$IFn$_invoke$arity$1(G__28977),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an observer that logs all events to an atom\n */\nintemporal.observer.make_logging_observer \x3d (function intemporal$observer$make_logging_observer(var_args){\nvar G__29166 \x3d arguments.length;\nswitch (G__29166) {\ncase 0:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY));\n}));\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1 \x3d (function (log_atom){\nreturn intemporal.observer.__GT_LoggingObserver(log_atom);\n}));\n\n(intemporal.observer.make_logging_observer.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.observer.t_intemporal$observer29169 \x3d (function (meta29170){\nthis.meta29170 \x3d meta29170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_29171,meta29170__$1){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170__$1));\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_29171){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn self__.meta29170;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta29170\x22,\x22meta29170\x22,-945651366,null)], null);\n}));\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$type \x3d true);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorStr \x3d \x22intemporal.observer/t_intemporal$observer29169\x22);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.observer/t_intemporal$observer29169\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/t_intemporal$observer29169.\n */\nintemporal.observer.__GT_t_intemporal$observer29169 \x3d (function intemporal$observer$__GT_t_intemporal$observer29169(meta29170){\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170));\n});\n\n\n/**\n * Create an observer that does nothing\n */\nintemporal.observer.noop_observer \x3d (function intemporal$observer$noop_observer(){\nreturn (new intemporal.observer.t_intemporal$observer29169(cljs.core.PersistentArrayMap.EMPTY));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39636 \x3d arguments.length;\nvar i__5750__auto___39637 \x3d (0);\nwhile(true){\nif((i__5750__auto___39637 \x3c len__5749__auto___39636)){\nargs__5755__auto__.push((arguments[i__5750__auto___39637]));\n\nvar G__39638 \x3d (i__5750__auto___39637 + (1));\ni__5750__auto___39637 \x3d G__39638;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__39570){\nvar map__39571 \x3d p__39570;\nvar map__39571__$1 \x3d cljs.core.__destructure_map(map__39571);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39571__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39571__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__39639__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__39572 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39573 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39573);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__39574 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39574 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39574);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39575 \x3d err;\nif((G__39575 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39575);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__39576 \x3d err;\nif((G__39576 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__39576);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39572);\n}};\nvar G__39639 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39640__i \x3d 0, G__39640__a \x3d new Array(arguments.length - 0);\nwhile (G__39640__i \x3c G__39640__a.length) {G__39640__a[G__39640__i] \x3d arguments[G__39640__i + 0]; ++G__39640__i;}\n args \x3d new cljs.core.IndexedSeq(G__39640__a,0,null);\n} \nreturn G__39639__delegate.call(this,args);};\nG__39639.cljs$lang$maxFixedArity \x3d 0;\nG__39639.cljs$lang$applyTo \x3d (function (arglist__39641){\nvar args \x3d cljs.core.seq(arglist__39641);\nreturn G__39639__delegate(args);\n});\nG__39639.cljs$core$IFn$_invoke$arity$variadic \x3d G__39639__delegate;\nreturn G__39639;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq39568){\nvar G__39569 \x3d cljs.core.first(seq39568);\nvar seq39568__$1 \x3d cljs.core.next(seq39568);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39569,seq39568__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39578,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39582 \x3d k39578;\nvar G__39582__$1 \x3d (((G__39582 instanceof cljs.core.Keyword))?G__39582.fqn:null);\nswitch (G__39582__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39578,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39583){\nvar vec__39584 \x3d p__39583;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39584,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39584,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39577){\nvar self__ \x3d this;\nvar G__39577__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39577__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39579,other39580){\nvar self__ \x3d this;\nvar this39579__$1 \x3d this;\nreturn (((!((other39580 \x3d\x3d null)))) \x26\x26 ((((this39579__$1.constructor \x3d\x3d\x3d other39580.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39579__$1.seq_num,other39580.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39579__$1.__extmap,other39580.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39578){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__39587 \x3d k39578;\nvar G__39587__$1 \x3d (((G__39587 instanceof cljs.core.Keyword))?G__39587.fqn:null);\nswitch (G__39587__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39578);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39577){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39588 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39589 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__39588.cljs$core$IFn$_invoke$arity$2 ? pred__39588.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39589) : pred__39588.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39589)))){\nreturn (new intemporal.core.AsyncHandle(G__39577,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39577),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39577){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__39577,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__39581){\nvar extmap__5365__auto__ \x3d (function (){var G__39591 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__39581,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__39581)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39591);\n} else {\nreturn G__39591;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__39581),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__39592 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39592 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39592);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39593 \x3d err;\nif((G__39593 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39593);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e39594){if((e39594 instanceof Error)){\nvar e \x3d e39594;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e39594;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39644 \x3d arguments.length;\nvar i__5750__auto___39645 \x3d (0);\nwhile(true){\nif((i__5750__auto___39645 \x3c len__5749__auto___39644)){\nargs__5755__auto__.push((arguments[i__5750__auto___39645]));\n\nvar G__39646 \x3d (i__5750__auto___39645 + (1));\ni__5750__auto___39645 \x3d G__39646;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__39598){\nvar map__39599 \x3d p__39598;\nvar map__39599__$1 \x3d cljs.core.__destructure_map(map__39599);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39599__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__39600 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39600 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39600);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39601 \x3d err;\nif((G__39601 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39601);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq39595){\nvar G__39596 \x3d cljs.core.first(seq39595);\nvar seq39595__$1 \x3d cljs.core.next(seq39595);\nvar G__39597 \x3d cljs.core.first(seq39595__$1);\nvar seq39595__$2 \x3d cljs.core.next(seq39595__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39596,G__39597,seq39595__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39647 \x3d arguments.length;\nvar i__5750__auto___39648 \x3d (0);\nwhile(true){\nif((i__5750__auto___39648 \x3c len__5749__auto___39647)){\nargs__5755__auto__.push((arguments[i__5750__auto___39648]));\n\nvar G__39649 \x3d (i__5750__auto___39648 + (1));\ni__5750__auto___39648 \x3d G__39649;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq39602){\nvar G__39603 \x3d cljs.core.first(seq39602);\nvar seq39602__$1 \x3d cljs.core.next(seq39602);\nvar G__39604 \x3d cljs.core.first(seq39602__$1);\nvar seq39602__$2 \x3d cljs.core.next(seq39602__$1);\nvar G__39605 \x3d cljs.core.first(seq39602__$2);\nvar seq39602__$3 \x3d cljs.core.next(seq39602__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39603,G__39604,G__39605,seq39602__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39650 \x3d arguments.length;\nvar i__5750__auto___39651 \x3d (0);\nwhile(true){\nif((i__5750__auto___39651 \x3c len__5749__auto___39650)){\nargs__5755__auto__.push((arguments[i__5750__auto___39651]));\n\nvar G__39652 \x3d (i__5750__auto___39651 + (1));\ni__5750__auto___39651 \x3d G__39652;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39611,workflow_id,workflow_fn,args,p__39612){\nvar map__39613 \x3d p__39611;\nvar map__39613__$1 \x3d cljs.core.__destructure_map(map__39613);\nvar engine \x3d map__39613__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39614 \x3d p__39612;\nvar map__39614__$1 \x3d cljs.core.__destructure_map(map__39614);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39614__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39614__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq39606){\nvar G__39607 \x3d cljs.core.first(seq39606);\nvar seq39606__$1 \x3d cljs.core.next(seq39606);\nvar G__39608 \x3d cljs.core.first(seq39606__$1);\nvar seq39606__$2 \x3d cljs.core.next(seq39606__$1);\nvar G__39609 \x3d cljs.core.first(seq39606__$2);\nvar seq39606__$3 \x3d cljs.core.next(seq39606__$2);\nvar G__39610 \x3d cljs.core.first(seq39606__$3);\nvar seq39606__$4 \x3d cljs.core.next(seq39606__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39607,G__39608,G__39609,G__39610,seq39606__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39653 \x3d arguments.length;\nvar i__5750__auto___39654 \x3d (0);\nwhile(true){\nif((i__5750__auto___39654 \x3c len__5749__auto___39653)){\nargs__5755__auto__.push((arguments[i__5750__auto___39654]));\n\nvar G__39655 \x3d (i__5750__auto___39654 + (1));\ni__5750__auto___39654 \x3d G__39655;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__39620){\nvar map__39621 \x3d p__39620;\nvar map__39621__$1 \x3d cljs.core.__destructure_map(map__39621);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39621__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__39622_39656 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39623_39657 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39623_39657);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39622_39656);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq39615){\nvar G__39616 \x3d cljs.core.first(seq39615);\nvar seq39615__$1 \x3d cljs.core.next(seq39615);\nvar G__39617 \x3d cljs.core.first(seq39615__$1);\nvar seq39615__$2 \x3d cljs.core.next(seq39615__$1);\nvar G__39618 \x3d cljs.core.first(seq39615__$2);\nvar seq39615__$3 \x3d cljs.core.next(seq39615__$2);\nvar G__39619 \x3d cljs.core.first(seq39615__$3);\nvar seq39615__$4 \x3d cljs.core.next(seq39615__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39616,G__39617,G__39618,G__39619,seq39615__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__39624_39658 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39625_39659 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39625_39659);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39624_39658);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__39626_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__39626_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39660 \x3d arguments.length;\nvar i__5750__auto___39661 \x3d (0);\nwhile(true){\nif((i__5750__auto___39661 \x3c len__5749__auto___39660)){\nargs__5755__auto__.push((arguments[i__5750__auto___39661]));\n\nvar G__39662 \x3d (i__5750__auto___39661 + (1));\ni__5750__auto___39661 \x3d G__39662;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39628){\nvar map__39629 \x3d p__39628;\nvar map__39629__$1 \x3d cljs.core.__destructure_map(map__39629);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39629__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq39627){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq39627));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__39631 \x3d arguments.length;\nswitch (G__39631) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__39632){\nvar map__39633 \x3d p__39632;\nvar map__39633__$1 \x3d cljs.core.__destructure_map(map__39633);\nvar engine \x3d map__39633__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39633__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39633__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__39634,grace_period_secs){\nvar map__39635 \x3d p__39634;\nvar map__39635__$1 \x3d cljs.core.__destructure_map(map__39635);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39635__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39635__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); -SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22malli.impl.util.js\x22);\nSHADOW_ENV.setLoaded(\x22malli.impl.regex.js\x22);\nSHADOW_ENV.setLoaded(\x22malli.registry.js\x22);\nSHADOW_ENV.setLoaded(\x22borkdude.dynaload.js\x22);\nSHADOW_ENV.setLoaded(\x22malli.sci.js\x22);\nSHADOW_ENV.setLoaded(\x22malli.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.workflow.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file +SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file diff --git a/src/intemporal/core.cljc b/src/intemporal/core.cljc index 862e844..d56638c 100644 --- a/src/intemporal/core.cljc +++ b/src/intemporal/core.cljc @@ -9,7 +9,8 @@ [intemporal.protocol :as p] [intemporal.store :as store] [intemporal.observer :as obs] - [intemporal.utils :as utils]) + [intemporal.utils :as utils] + [intemporal.internal.macros :as im]) #?(:clj (:require [net.cgrand.macrovich :as macros]) :cljs (:require-macros [net.cgrand.macrovich :as macros] [intemporal.internal.logging :as log]))) @@ -432,6 +433,12 @@ (when completed (:result completed)))) +(defmacro stub-protocol + "Stub a protocol definition by looking up its methods and wrapping them in activities. + Requires that the protocol implementation was passed to start-workflow via :protocols." + [proto & opts] + `(im/stub-protocol ~proto ~@opts)) + ;; ============================================================================ ;; Convenience Functions ;; ============================================================================ diff --git a/src/intemporal/internal/activity.cljc b/src/intemporal/internal/activity.cljc index 4c7c6b8..c6930fc 100644 --- a/src/intemporal/internal/activity.cljc +++ b/src/intemporal/internal/activity.cljc @@ -47,6 +47,28 @@ :retry-policy retry-policy}) activity-name)) +(defn register-protocol-activities! + "Register all methods of a protocol as activities, using the provided implementation." + [registry protocol implementation] + #?(:clj + (let [proto-map (if (var? protocol) @protocol protocol) + pvar (:var proto-map) + ;; #'ns/Name -> ns + pns (namespace (symbol (subs (str pvar) 2))) + sigs (:sigs proto-map)] + (doseq [[msym _] sigs] + (let [mname (name msym) + fullname (str pns "/" mname) + ;; Resolve the actual protocol method function + mfn (requiring-resolve (symbol fullname))] + (register-activity! registry + (fn [& args] + (apply mfn implementation args)) + :name fullname)))) + :cljs + ;; protocol-based registration in CLJS requires more metadata than available at runtime usually + (throw (ex-info "register-protocol-activities! not implemented for CLJS" {})))) + (defn get-activity-info [registry activity-name] (get @registry activity-name)) diff --git a/src/intemporal/internal/fns/start_workflow.clj b/src/intemporal/internal/fns/start_workflow.clj index e188437..29b2b48 100644 --- a/src/intemporal/internal/fns/start_workflow.clj +++ b/src/intemporal/internal/fns/start_workflow.clj @@ -1,6 +1,7 @@ (ns intemporal.internal.fns.start-workflow (:require [intemporal.internal.execution :as exec] [intemporal.internal.logging :as log] + [intemporal.internal.activity :as a] [intemporal.protocol :as p] [intemporal.utils :as utils])) @@ -19,10 +20,13 @@ Options: - :workflow-id - Custom workflow ID (default: random UUID) - :observer - IWorkflowObserver for monitoring - - :max-iterations - Maximum replay iterations (default: 1000)" + - :max-iterations - Maximum replay iterations (default: 1000) + - :protocols - Map of {Protocol Implementation} to register activities" [{:keys [store executor scheduler registry] :as engine} workflow-fn args - & {:keys [workflow-id observer max-iterations] + & {:keys [workflow-id observer max-iterations protocols] :or {max-iterations 1000}}] + (doseq [[proto impl] protocols] + (a/register-protocol-activities! registry proto impl)) (let [wf-id (or workflow-id (str (random-uuid))) resume-promise-atom (atom nil) observer (or observer (get engine :observer)) diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index 31df2c1..132ae3f 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -74,14 +74,8 @@ args (rest (first arglist))]] ;; implement ~sname `(~sname [this# ~@args] - (let [aid# '~qname - act-opts# ~(first opts) - sym# (symbol aid#) - ;aid# ;; >> doesn't work! - ;; protos are not reified like in clj https://clojurescript.org/about/differences#_protocols - ;; we create a "fake" fvar that can be invokeable just like the real thing - f# (fn [& impl+args#] (apply ~qname impl+args#)) - args# [~@args]])))))) + (let [f# (intemporal.core/stub (var ~qname))] + (f# ~@args))))))) :clj #_{:clj-kondo/ignore [:unresolved-symbol]} @@ -103,8 +97,5 @@ args (rest (first arglist))]] ;; implement ~sname `(~sname [this# ~@args] - (let [aid# '~qname - act-opts# ~(first opts) - sym# (symbol aid#) - f# (var-get (requiring-resolve aid#)) - args# [~@args]]))))))) + (let [f# (intemporal.core/stub (var ~qname))] + (f# ~@args)))))))) diff --git a/test/intemporal/tests/async_test.cljs b/test/intemporal/tests/async_test.cljs index 1c1d3b0..242222b 100644 --- a/test/intemporal/tests/async_test.cljs +++ b/test/intemporal/tests/async_test.cljs @@ -1,7 +1,7 @@ (ns intemporal.tests.async-test - (:require [intemporal.core :as intemporal] - [cljs.test :as t :refer [deftest is testing]] + (:require [cljs.test :as t :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] + [intemporal.core :as intemporal] [intemporal.tests.utils :as tu]) (:require-macros [intemporal.tests.utils :refer [with-result]])) diff --git a/test/intemporal/tests/protocol_test.clj b/test/intemporal/tests/protocol_test.clj new file mode 100644 index 0000000..020ce4c --- /dev/null +++ b/test/intemporal/tests/protocol_test.clj @@ -0,0 +1,33 @@ +(ns intemporal.tests.protocol-test + (:require [intemporal.core :as intemporal] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]])) + +(defprotocol MyActivities + (foo [this a])) + +(defrecord MyActivitiesImpl [] + MyActivities + (foo [this a] (println "record was called:" ) [a :child])) + + +;; Parallel workflow +(defn my-proto-flow [id] + (println "Workflow start with id:" id) + (let [res (intemporal/stub-protocol MyActivities)] + (println "After async calls - all scheduled") + {:args id + :results (foo res 1) + :id id})) + + +(deftest test-stub-protocol-workflow + (testing "Async workflow" + (intemporal/with-workflow-engine [engine {:threads 4 :enable-logging true}] + ;; Activities are automatically registered via stub call + (let [result (intemporal/start-workflow engine my-proto-flow [999] + :protocols {MyActivities (->MyActivitiesImpl)})] + (is (match? {:status :completed + :result {:args 999, :results [1 :child], :id 999}} + result)))))) + diff --git a/test/intemporal/tests/stub_protocol_test.clj b/test/intemporal/tests/stub_protocol_test.clj new file mode 100644 index 0000000..f0c99d3 --- /dev/null +++ b/test/intemporal/tests/stub_protocol_test.clj @@ -0,0 +1,27 @@ +(ns intemporal.tests.stub-protocol-test + (:require [intemporal.core :as intemporal] + [clojure.test :refer [deftest is testing]] + [matcher-combinators.test :refer [match?]])) + +(defprotocol MyProto + (my-method [this x])) + +(defrecord MyProtoImpl [] + MyProto + (my-method [this x] + (println "Executing MyProtoImpl/my-method with" x) + (* x 2))) + +(defn my-workflow [id] + (let [proto-stub (intemporal/stub-protocol MyProto) + res (my-method proto-stub id)] + {:result res})) + +(deftest test-stub-protocol + (testing "Protocol stubbing via :protocols map" + (intemporal/with-workflow-engine [engine {:enable-logging true}] + (let [result (intemporal/start-workflow engine my-workflow [21] + :protocols {MyProto (->MyProtoImpl)})] + (is (match? {:status :completed + :result {:result 42}} + result)))))) diff --git a/test/logback.xml b/test/logback.xml index 52b68a5..6073df6 100644 --- a/test/logback.xml +++ b/test/logback.xml @@ -1,11 +1,11 @@ - %d{HH:mm:ss.SSS} [%10.10thread-5] [WF:%10.10X{workflow-id}] [%X{activity}@%X{seqnum}] %-5level %logger{36} - %msg%n + %d{HH:mm:ss.SSS} [%10.10thread-5] [WF:%3.3X{workflow-id}] [%X{activity}@%X{seqnum}] %-5level %logger{36} - %msg%n - + From c9adb654888846e0646e0bda1c2b361ada10d5f3 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 14 Feb 2026 17:31:23 +0000 Subject: [PATCH 65/81] fdb/pg --- bin/run-coverage | 2 +- deps.edn | 3 +- docker/fdb.cluster | 2 +- test/intemporal/tests/store/fdb_test.clj | 20 +++++++ test/intemporal/tests/store/jdbc_test.clj | 34 +++++++++++ test/intemporal/tests/store/memory_test.clj | 9 +++ test/intemporal/tests/store/test_suite.clj | 64 +++++++++++++++++++++ 7 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 test/intemporal/tests/store/fdb_test.clj create mode 100644 test/intemporal/tests/store/jdbc_test.clj create mode 100644 test/intemporal/tests/store/memory_test.clj create mode 100644 test/intemporal/tests/store/test_suite.clj diff --git a/bin/run-coverage b/bin/run-coverage index 0b0bc69..fde5908 100755 --- a/bin/run-coverage +++ b/bin/run-coverage @@ -17,7 +17,7 @@ CLOVERAGE_OUTPUT=target/coverage-cljs bin/kaocha test-cljs --reporter documentat printf "${BLUE}combining coverage reports...${NC}\n" lcov --add-tracefile target/coverage-clj/lcov.info --add-tracefile target/coverage-cljs/lcov.info -o coverage/lcov.info -genhtml coverage/lcov.info -o coverage +genhtml --ignore-errors unmapped coverage/lcov.info -o coverage printf "${BLUE}done! opening report${NC}\n" xdg-open coverage/index.html || open coverage/index.html || true diff --git a/deps.edn b/deps.edn index 8eb0496..7d265aa 100644 --- a/deps.edn +++ b/deps.edn @@ -8,7 +8,8 @@ ;; cljs (TODO test only?) funcool/promesa {:mvn/version "11.0.678"} ;;stuff - net.cgrand/macrovich {:mvn/version "0.2.2"}} + net.cgrand/macrovich {:mvn/version "0.2.2"} + cheshire/cheshire {:mvn/version "5.13.0"}} :aliases {:dev {:extra-paths ["dev" "test"] :_jvm-opts ["-Djdk.attach.allowAttachSelf" diff --git a/docker/fdb.cluster b/docker/fdb.cluster index b6745ee..1e658b5 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.19.0.3:4500 +docker:docker@172.19.0.2:4500 diff --git a/test/intemporal/tests/store/fdb_test.clj b/test/intemporal/tests/store/fdb_test.clj new file mode 100644 index 0000000..655866c --- /dev/null +++ b/test/intemporal/tests/store/fdb_test.clj @@ -0,0 +1,20 @@ +(ns ^:integration intemporal.tests.store.fdb-test + (:require [clojure.test :refer [deftest testing is]] + [intemporal.store.fdb :as fdb-store] + [intemporal.tests.store.test-suite :as suite] + [me.vedang.clj-fdb.FDB :as cfdb] + [me.vedang.clj-fdb.core :as fdb])) + +(deftest ^:integration fdb-store-test + (testing "FoundationDB Store Implementation" + (try + (let [db (cfdb/select-api-version 730) + db (cfdb/open db)] + + ;; Run shared suite + (let [store (fdb-store/make-fdb-store db "intemporal-tests")] + (suite/run-store-tests store))) + (catch Exception e + (if (re-find #"FoundationDB" (.getMessage e)) + (println "Skipping FoundationDB Store tests: FDB not available") + (throw e)))))) diff --git a/test/intemporal/tests/store/jdbc_test.clj b/test/intemporal/tests/store/jdbc_test.clj new file mode 100644 index 0000000..89e8e4d --- /dev/null +++ b/test/intemporal/tests/store/jdbc_test.clj @@ -0,0 +1,34 @@ +(ns ^:integration intemporal.tests.store.jdbc-test + (:require [clojure.test :refer [deftest testing is]] + [intemporal.store.jdbc :as jdbc-store] + [intemporal.tests.store.test-suite :as suite] + [next.jdbc :as jdbc])) + +;; Default to a local postgres if not specified +(def db-spec (or (System/getenv "DATABASE_URL") + "jdbc:postgresql://localhost:5432/intemporal_test?user=root&password=root")) + +(def admin-spec "jdbc:postgresql://localhost:5432/postgres?user=root&password=root") + +(defn ensure-database! [] + (let [ds (jdbc/get-datasource admin-spec)] + (when-not (seq (jdbc/execute! ds ["SELECT 1 FROM pg_database WHERE datname = 'intemporal_test'"])) + (with-open [conn (.getConnection ds)] + (.execute (.createStatement conn) "CREATE DATABASE intemporal_test"))))) + +(deftest jdbc-store-test + (testing "JDBC Store Implementation" + (try + (ensure-database!) + (let [ds (jdbc/get-datasource db-spec)] + ;; Initialize schema + (jdbc-store/create-schema! ds) + + ;; Run shared suite + (let [store (jdbc-store/make-jdbc-store ds)] + (suite/run-store-tests store))) + (catch Exception e + (if (and (instance? java.sql.SQLException e) + (re-find #"Connection refused" (.getMessage e))) + (println "Skipping JDBC Store tests: PostgreSQL not available at" db-spec) + (throw e)))))) diff --git a/test/intemporal/tests/store/memory_test.clj b/test/intemporal/tests/store/memory_test.clj new file mode 100644 index 0000000..bd4902d --- /dev/null +++ b/test/intemporal/tests/store/memory_test.clj @@ -0,0 +1,9 @@ +(ns intemporal.tests.store.memory-test + (:require [clojure.test :refer [deftest testing]] + [intemporal.store :as store] + [intemporal.tests.store.test-suite :as suite])) + +(deftest memory-store-test + (testing "In-Memory Store Implementation" + (let [store (store/->InMemoryStore (atom {}))] + (suite/run-store-tests store)))) diff --git a/test/intemporal/tests/store/test_suite.clj b/test/intemporal/tests/store/test_suite.clj new file mode 100644 index 0000000..27f9d5f --- /dev/null +++ b/test/intemporal/tests/store/test_suite.clj @@ -0,0 +1,64 @@ +(ns intemporal.tests.store.test-suite + (:require [intemporal.core :as intemporal] + [intemporal.protocol :as p] + [clojure.test :refer [is testing]] + [matcher-combinators.test :refer [match?]])) + +(defn test-activity [x] + (* x 10)) + +(defn comprehensive-workflow [initial-value] + (let [activity-stub (intemporal/stub #'test-activity) + activity-result (activity-stub initial-value)] + (let [async-handle (intemporal/async #(activity-stub (inc initial-value))) + async-result (intemporal/join async-handle)] + (intemporal/sleep 50) + (let [signal-data (intemporal/wait-for-signal "approval")] + {:activity-result activity-result + :async-result async-result + :signal-data signal-data + :initial-value initial-value})))) + +(defn run-store-tests [store] + (testing "Basic store operations" + (let [wf-id (str "test-" (random-uuid)) + event {:event-type :workflow-started :workflow-id wf-id :args [1] :timestamp (System/currentTimeMillis)}] + + (testing "save-event and load-history" + (p/save-event store wf-id event) + (let [history (p/load-history store wf-id)] + (is (= 1 (count history))) + (is (= :workflow-started (keyword (:event-type (first history))))))) + + (testing "mark-cancelled and is-cancelled?" + (is (not (p/is-cancelled? store wf-id))) + (p/mark-cancelled store wf-id) + (is (p/is-cancelled? store wf-id))) + + (testing "signals" + (let [sig-data {:foo "bar"}] + (p/add-signal store wf-id "test-sig" sig-data) + (let [pending (p/get-pending-signals store wf-id)] + (is (contains? pending "test-sig")) + (is (= [sig-data] (get pending "test-sig")))) + (is (= sig-data (p/consume-signal store wf-id "test-sig"))) + (is (nil? (p/consume-signal store wf-id "test-sig"))))))) + + (testing "Workflow execution with store" + (intemporal/with-workflow-engine [engine {:store store :threads 2}] + (let [wf-id (str "exec-test-" (random-uuid)) + initial-value 5 + result-future (future + (intemporal/start-workflow engine + comprehensive-workflow [initial-value] + :workflow-id wf-id))] + + (Thread/sleep 200) + (intemporal/send-signal store wf-id "approval" {:approved true}) + + (let [result @result-future] + (is (match? {:status :completed + :result {:activity-result 50 + :async-result 60 + :signal-data {:approved true}}} + result))))))) From 0b93a73df3de67a86b4b77315b811fc2cdad7afa Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 14 Feb 2026 18:39:06 +0000 Subject: [PATCH 66/81] cleanup lint, implement jdbc --- .clj-kondo/config.edn | 2 +- .gitignore | 3 + cljs-todo.md | 48 --- cljs.md | 291 ------------------ docker/fdb.cluster | 2 +- src/intemporal/core.cljc | 3 +- src/intemporal/internal/error.cljc | 2 +- src/intemporal/internal/execution.clj | 4 +- src/intemporal/internal/execution.cljs | 6 - src/intemporal/internal/macros.cljc | 6 +- src/intemporal/store/jdbc.clj | 175 +++++++++++ test/intemporal/tests/cljs/repl/node_repl.js | 114 ------- .../tests/crash/future_cancel_test.clj | 15 +- .../tests/crash/signal_wait_crash_test.clj | 12 +- test/intemporal/tests/deleteme_test.cljs | 3 +- test/intemporal/tests/store/fdb_test.clj | 35 +-- test/intemporal/tests/store/jdbc_test.clj | 2 +- test/intemporal/tests/store/store_test.clj | 1 - test/intemporal/tests/store/test_suite.clj | 18 +- test/intemporal/tests/utils.cljc | 6 +- 20 files changed, 233 insertions(+), 515 deletions(-) delete mode 100644 cljs-todo.md delete mode 100644 cljs.md create mode 100644 src/intemporal/store/jdbc.clj delete mode 100644 test/intemporal/tests/cljs/repl/node_repl.js diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 471e58a..a0af381 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -4,7 +4,7 @@ intemporal.macros/env-let clojure.core/let intemporal.macros/with-failure clojure.core/let intemporal.store.foundationdb/with-tx clojure.core/with-open - intemporal.test-utils/with-result clojure.core/let + intemporal.tests.utils/with-result clojure.core/let intemporal.core/with-workflow-engine clojure.core/let diff --git a/.gitignore b/.gitignore index de8d52a..3a729be 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ coverage/ .venv/ memory-bank/ .claude + +src2/ +test2/ \ No newline at end of file diff --git a/cljs-todo.md b/cljs-todo.md deleted file mode 100644 index 957f6e5..0000000 --- a/cljs-todo.md +++ /dev/null @@ -1,48 +0,0 @@ -# CLJS Async Execution TODO - -## Problem - -Both async tests in `test/intemporal/tests/async_test.cljs` fail with: - -``` -Error: [object Promise] is not ISeqable -``` - -## Root Cause - -`execution.cljc:164` (`process-pending-asyncs-parallel`) calls: - -```clojure -(let [results (p/execute-activities-parallel executor pending-asyncs) - ... - completion-events (mapcat ... pending-asyncs results)] -``` - -On JVM, `execute-activities-parallel` is **synchronous** and returns a vector. -In CLJS (`runtime.cljs:179`), `execute-activities-parallel` returns a **`js/Promise`** -(via `js/Promise.allSettled`). The code tries to `mapcat` over the Promise object → -throws `[object Promise] is not ISeqable`. - -## Affected Files - -- `src/intemporal/internal/execution.cljc:154-203` — `process-pending-asyncs-parallel` - assumes synchronous result from `execute-activities-parallel` -- `src/intemporal/internal/execution.cljc:501-584` — `run-workflow-internal` loop is - fully synchronous, incompatible with CLJS async execution -- `src/intemporal/internal/runtime.cljs:157-191` — `execute-activities-parallel` correctly - returns a Promise, but caller doesn't handle it - -## Fix Required - -`process-pending-asyncs-parallel` and `run-workflow-internal` need to be Promise-aware -in CLJS. Options: - -1. **Add a CLJS-specific `execution.cljs`** that re-implements `run-workflow-internal` - and `process-pending-asyncs-parallel` using Promise chaining (`.then`). - -2. **Make `process-pending-asyncs-parallel` return a Promise in CLJS** and thread that - through the `run-workflow-internal` loop (requires the loop itself to become async in - CLJS — likely needs `reader conditionals` or a separate file). - -`start-workflow.cljs` already has the right shape (`run-step` callback + `js/Promise` -wrapper), but the inner synchronous loop breaks when it hits parallel activities. diff --git a/cljs.md b/cljs.md deleted file mode 100644 index e06920c..0000000 --- a/cljs.md +++ /dev/null @@ -1,291 +0,0 @@ -# ClojureScript Port Analysis for Intemporal - -## Context - -The user wants to understand which parts of the intemporal library need to be rewritten to support ClojureScript. Intemporal is a workflow orchestration library inspired by Temporal.io that relies heavily on JVM concurrency primitives for activity execution, scheduling, and persistence. - -## Current State - -### Already ClojureScript-Ready (1 file) -- **src/intemporal/internal/macros.cljc** - Already a .cljc file with platform-specific code using macrovich - -### Pure Clojure (Platform-Agnostic) - 6 files -These files contain no Java interop and could be converted to .cljc with minimal changes: - -1. **src/intemporal/protocol.clj** - Pure protocol definitions (IStore, IActivityExecutor, IScheduler, IWorkflowObserver) -2. **src/intemporal/internal/context.clj** - Dynamic context management using atoms -3. **src/intemporal/internal/activity.clj** - Activity registry and metadata (atoms only) -4. **src/intemporal/observer.clj** - Observer protocol implementations -5. **src/intemporal/core.clj** (mostly) - Core workflow API (stub, async, join, sleep, signals) -6. **src/intemporal/store.clj** (InMemoryStore) - Uses atoms, one `future` call for signal callbacks - -### Heavy JVM Dependencies - 3 Critical Files - -These files are the **main rewrite targets** and contain extensive Java interop: - -#### 1. **src/intemporal/internal/runtime.clj** - COMPLETE REWRITE NEEDED -**Java Dependencies:** -```clojure -(:import (java.util.concurrent - ArrayBlockingQueue ExecutorService Executors Future - ScheduledExecutorService ScheduledFuture ThreadPoolExecutor - ThreadPoolExecutor$CallerRunsPolicy TimeUnit TimeoutException)) -``` - -**What needs rewriting:** - -- **DefaultScheduler** (lines 13-48) - - Uses `ScheduledExecutorService` for timer scheduling - - `.schedule()` method with TimeUnit/MILLISECONDS - - `.cancel()`, `.shutdown()`, `.awaitTermination()` methods - - **ClojureScript alternative**: `js/setTimeout`, `js/clearTimeout`, core.async channels - -- **ParallelActivityExecutor** (lines 61-156) - - Uses `ExecutorService` and thread pools for parallel activity execution - - `.submit()` and `.get()` with timeout for futures - - Virtual threads via `Thread/ofVirtual` - - Bounded executor with `ThreadPoolExecutor` and `ArrayBlockingQueue` - - **ClojureScript alternative**: core.async go blocks, promises, or web workers (browser) / worker threads (Node.js) - -- **Activity retry logic with Thread/sleep** (line 114) - - **ClojureScript alternative**: `js/setTimeout` with promises - -#### 2. **src/intemporal/internal/execution.clj** - MODERATE REWRITE -**Java Dependencies:** -```clojure -(:import (java.util.concurrent RejectedExecutionException)) -``` - -**What needs rewriting:** -- Exception handling for `RejectedExecutionException` (lines 59, 91) - - **ClojureScript alternative**: Custom error types or ex-info with specific markers -- Activity execution and retry logic intertwined with executor calls -- `System/currentTimeMillis` calls (lines 48, 53, etc.) - - **ClojureScript alternative**: `(.now js/Date)` or `(js/Date.now)` - -#### 3. **src/intemporal/internal/logging.clj** - MODERATE REWRITE -**Java Dependencies:** -```clojure -(:import (org.slf4j MDC)) -``` - -**What needs rewriting:** -- SLF4J MDC (Mapped Diagnostic Context) for structured logging - - **ClojureScript alternative**: Thread-local storage doesn't exist in JS; use dynamic binding or atom-based context -- Depends on logback (JVM-only) - - **ClojureScript alternative**: Browser console API or Node.js logging libraries - -### Minor Java Interop in Core Files - -**src/intemporal/core.clj:** -- `System/currentTimeMillis` (lines 66, 227, 270, 288, 293, etc.) - - Easy replacement with `.now js/Date` - -**src/intemporal/store.clj:** -- One `(future (callback))` call (line 40) for async signal callbacks - - **ClojureScript alternative**: Use promises or core.async - -**src/intemporal/internal/error.clj:** -- Uses `proxy [Error IExceptionInfo]` (line 14) - - **ClojureScript alternative**: `js/Error` or custom error types -- `.getStackTrace()` and `.getCause()` methods (lines 88, 89) - - **ClojureScript alternative**: `.-stack` property, custom cause tracking - -## Parts That Need Complete Rewriting - -### 1. Activity Execution Layer (HIGHEST PRIORITY) -**File**: `src/intemporal/internal/runtime.clj` - **ParallelActivityExecutor** - -**Current JVM approach:** -- Thread pool executor with configurable concurrency -- Blocking `.get()` with timeout on futures -- Virtual threads (Java 21+) - -**ClojureScript alternatives:** - -**Option A: core.async (Recommended for Node.js)** -```clojure -(require '[cljs.core.async :as async]) - -(defn execute-activity-async [activity-fn args timeout-ms] - (let [result-ch (async/promise-chan) - timeout-ch (async/timeout timeout-ms)] - (async/go - (try - (let [result (apply activity-fn args)] - (async/put! result-ch {:status :success :result result})) - (catch js/Error e - (async/put! result-ch {:status :error :error e})))) - ;; Race between result and timeout - (async/go - (async/alt! - result-ch ([v] v) - timeout-ch ([_] {:status :timeout}))))) -``` - -**Option B: Promises (Browser/Node.js)** -```clojure -(defn execute-activity-async [activity-fn args timeout-ms] - (js/Promise.race - #js [(js/Promise. (fn [resolve reject] - (try - (resolve (apply activity-fn args)) - (catch js/Error e (reject e))))) - (js/Promise. (fn [resolve _] - (js/setTimeout - #(resolve {:timeout true}) - timeout-ms)))])) -``` - -**Option C: Web Workers (Browser only) for true parallelism** -- Activities run in separate worker threads -- More complex but provides real parallelism - -### 2. Timer/Scheduler Layer (HIGH PRIORITY) -**File**: `src/intemporal/internal/runtime.clj` - **DefaultScheduler** - -**Current JVM approach:** -- ScheduledExecutorService with precise scheduling -- Cancellable scheduled tasks - -**ClojureScript alternative:** -```clojure -(defrecord DefaultScheduler [pending-timers] - p/IScheduler - (schedule-timer [_ workflow-id seq-num fire-at callback] - (let [delay-ms (max 0 (- fire-at (.now js/Date))) - timer-key [workflow-id seq-num] - timer-id (js/setTimeout callback delay-ms)] - (swap! pending-timers assoc timer-key timer-id) - timer-key)) - - (cancel-timer [_ workflow-id seq-num] - (let [timer-key [workflow-id seq-num]] - (when-let [timer-id (get @pending-timers timer-key)] - (js/clearTimeout timer-id) - (swap! pending-timers dissoc timer-key)))) - - (shutdown-scheduler [_ grace-period-secs] - (doseq [[_ timer-id] @pending-timers] - (js/clearTimeout timer-id)) - (reset! pending-timers {})) - - (shutdown-scheduler? [_] - (empty? @pending-timers))) -``` - -### 3. Logging Layer (MEDIUM PRIORITY) -**File**: `src/intemporal/internal/logging.clj` - -**Current JVM approach:** -- SLF4J with MDC for contextual logging -- Logback integration - -**ClojureScript alternatives:** - -**Option A: Console logging with context atom** -```clojure -(def ^:dynamic *log-context* {}) - -(defmacro with-mdc [m & body] - `(binding [*log-context* (merge *log-context* ~m)] - ~@body)) - -(defn log [level & args] - (let [context-str (when (seq *log-context*) - (str " " (pr-str *log-context*)))] - (.apply (aget js/console level) - js/console - (to-array (cons (str (first args) context-str) - (rest args)))))) - -(defmacro info [& args] - `(log "info" ~@args)) -``` - -**Option A: Use existing ClojureScript logging library** -- `lambdaisland/glogi` (Google Closure logging) -- Custom wrapper around console API - -### 4. Error Handling (LOW PRIORITY) -**File**: `src/intemporal/internal/error.clj` - -**Changes needed:** -- Replace `proxy [Error IExceptionInfo]` with `js/Error` extension -- Replace `.getStackTrace()` with `.-stack` -- Replace `.getCause()` with custom cause tracking in ex-data - -```clojure -#?(:clj (proxy [Error IExceptionInfo] ...) - :cljs (let [err (js/Error. message)] - (set! (.-data err) data) - err)) -``` - -## Implementation Strategy - -### Phase 1: Create Platform-Agnostic Core (.cljc) -Convert these files to .cljc with minimal changes: -1. protocol.clj → protocol.cljc -2. context.clj → context.cljc -3. activity.clj → activity.cljc -4. observer.clj → observer.cljc -5. error.clj → error.cljc (with reader conditionals) -6. core.clj → core.cljc (replace System/currentTimeMillis) -7. store.clj → store.cljc (replace future with platform-specific async) - -### Phase 2: Implement Platform-Specific Runtime -Create separate implementations: -- **runtime.clj** - Keep existing JVM implementation -- **runtime.cljs** - New ClojureScript implementation using: - - js/setTimeout for scheduling - - Promises or core.async for activity execution - - No thread pools (single-threaded event loop) - -### Phase 3: Platform-Specific Logging -- **logging.clj** - Keep SLF4J/logback -- **logging.cljs** - Console API with context tracking - -### Phase 4: Execution Layer Updates -Update execution.clj → execution.cljc with reader conditionals for: -- RejectedExecutionException handling -- Time measurement - -### Phase 5: Testing -- Add ClojureScript tests (shadow-cljs :node target already configured) -- Test in both Node.js and browser environments - -## Key Architectural Differences - -### JVM (Multi-threaded) -- Real parallelism via thread pools -- Blocking operations with timeouts -- Virtual threads for scalability - -### ClojureScript (Single-threaded Event Loop) -- **No true parallelism** (except Web Workers) -- All operations are async/non-blocking -- Promises or core.async for concurrency -- Activity "parallelism" means concurrent promises, not parallel threads - -### Implications -- **Performance**: ClojureScript won't have true parallel activity execution unless using Web Workers -- **Compatibility**: Workflow definitions should work identically, but execution will be async -- **APIs**: Main API should remain the same, but return promises instead of blocking -- **Testing**: Need both JVM and ClojureScript test suites - -## Complexity Assessment - -**Lines of Code to Rewrite:** -- runtime.clj: ~180 lines → Complete rewrite -- execution.clj: ~300 lines → 20% modification (exception handling, time) -- logging.clj: ~50 lines → Complete rewrite (simpler in ClojureScript) -- error.clj: ~94 lines → 15% modification (reader conditionals) -- Other files: ~10 replacements of System/currentTimeMillis - -**Estimated Effort:** -- **High complexity**: Runtime layer (activity executor, scheduler) -- **Medium complexity**: Execution layer updates, logging -- **Low complexity**: Converting .clj to .cljc, time replacements - -**Total**: ~600-800 lines of new/modified code diff --git a/docker/fdb.cluster b/docker/fdb.cluster index 1e658b5..fc3b14b 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@172.19.0.2:4500 +docker:docker@192.168.107.2:4500 diff --git a/src/intemporal/core.cljc b/src/intemporal/core.cljc index d56638c..a0502ed 100644 --- a/src/intemporal/core.cljc +++ b/src/intemporal/core.cljc @@ -187,8 +187,7 @@ failed (p/find-event store workflow-id :async-failed handle-seq)] (cond completed - (do - (:result completed)) + (:result completed) failed (throw (error/async-failed-exception handle-seq (:error failed))) diff --git a/src/intemporal/internal/error.cljc b/src/intemporal/internal/error.cljc index cf70c0c..f1539eb 100644 --- a/src/intemporal/internal/error.cljc +++ b/src/intemporal/internal/error.cljc @@ -1,5 +1,5 @@ (ns intemporal.internal.error - (:require [clojure.string :as str]) + #?(:cljs (:require [clojure.string :as str])) #?(:clj (:import (clojure.lang IExceptionInfo)))) diff --git a/src/intemporal/internal/execution.clj b/src/intemporal/internal/execution.clj index 0389d71..8b7fe8a 100644 --- a/src/intemporal/internal/execution.clj +++ b/src/intemporal/internal/execution.clj @@ -115,8 +115,8 @@ (if (a/should-retry? retry-policy (:exception exec-result) attempt) (let [backoff (a/calculate-backoff retry-policy attempt)] (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) - (do (Thread/sleep (long backoff)) - (recur (inc attempt)))) + (Thread/sleep (long backoff)) + (recur (inc attempt))) ;; else {:status :failed :error (:error exec-result) diff --git a/src/intemporal/internal/execution.cljs b/src/intemporal/internal/execution.cljs index ebceec5..6cae2e5 100644 --- a/src/intemporal/internal/execution.cljs +++ b/src/intemporal/internal/execution.cljs @@ -13,12 +13,6 @@ ;; Workflow Execution Engine ;; ============================================================================ -(defmacro ^:private -notify - "Utility macro to dispatch events to an observer" - [proto-fn observer & args] - `(when ~observer - (~proto-fn ~observer ~@args))) - (defn execute-workflow-fn [workflow-fn args] (try {:status :completed diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index 132ae3f..eaf5804 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -1,9 +1,7 @@ (ns intemporal.internal.macros - (:require [cljs.analyzer.api :as api] - [promesa.core :as p]) + (:require [cljs.analyzer.api :as api]) ;[md5.core :as md5]) - #?(:clj (:require [intemporal.internal.context :as ctx] - [net.cgrand.macrovich :as macros]) + #?(:clj (:require [net.cgrand.macrovich :as macros]) ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) :cljs (:require-macros [net.cgrand.macrovich :as macros]))) ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj new file mode 100644 index 0000000..f6ee7e2 --- /dev/null +++ b/src/intemporal/store/jdbc.clj @@ -0,0 +1,175 @@ +(ns intemporal.store.jdbc + (:require [intemporal.protocol :as p] + [next.jdbc :as jdbc] + [next.jdbc.prepare :as prepare] + [next.jdbc.result-set :as rs] + [cheshire.core :as json]) + (:import (org.postgresql.util PGobject) + (java.sql PreparedStatement))) + +;; ============================================================================ +;; JSONB Handling for next.jdbc +;; ============================================================================ + +(defn- ->pgobject [x] + (let [pgobj (PGobject.)] + (.setType pgobj "jsonb") + (.setValue pgobj (json/generate-string x)) + pgobj)) + +(extend-protocol prepare/SettableParameter + clojure.lang.IPersistentMap + (set-parameter [m ^PreparedStatement s i] + (.setObject s i (->pgobject m))) + clojure.lang.IPersistentVector + (set-parameter [v ^PreparedStatement s i] + (.setObject s i (->pgobject v)))) + +(extend-protocol rs/ReadableColumn + PGobject + (read-column-by-label [^PGobject v _] + (if (= "jsonb" (.getType v)) + (json/parse-string (.getValue v) true) + (.getValue v))) + (read-column-by-index [^PGobject v _ _] + (if (= "jsonb" (.getType v)) + (json/parse-string (.getValue v) true) + (.getValue v)))) + +;; ============================================================================ +;; Schema +;; ============================================================================ + +(defn create-schema! [ds] + (jdbc/execute! ds [" +CREATE TABLE IF NOT EXISTS intemporal_workflows ( + id TEXT PRIMARY KEY, + cancelled BOOLEAN DEFAULT FALSE, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +);"]) + (jdbc/execute! ds [" +CREATE TABLE IF NOT EXISTS intemporal_history ( + id SERIAL PRIMARY KEY, + workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, + seq INTEGER, + event_type TEXT, + data JSONB, + UNIQUE (workflow_id, seq) +);"]) + (jdbc/execute! ds [" +CREATE TABLE IF NOT EXISTS intemporal_signals ( + id SERIAL PRIMARY KEY, + workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, + signal_name TEXT, + payload JSONB, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +);"])) + +;; ============================================================================ +;; Postgres Store Implementation +;; ============================================================================ + +(defrecord JdbcStore [datasource callbacks] + p/IStore + (load-history [_ workflow-id] + (let [rows (jdbc/execute! datasource + ["SELECT event_type, data FROM intemporal_history WHERE workflow_id = ? ORDER BY id ASC" + workflow-id])] + (mapv (fn [{:intemporal_history/keys [event_type data]}] + (assoc data :event-type (keyword event_type))) + rows))) + + (save-event [this workflow-id event] + (p/save-events this workflow-id [event]) + event) + + (save-events [_ workflow-id events] + (when (seq events) + (jdbc/with-transaction [tx datasource] + ;; Ensure workflow exists + (jdbc/execute! tx ["INSERT INTO intemporal_workflows (id) VALUES (?) ON CONFLICT (id) DO NOTHING" + workflow-id]) + ;; Insert events + (doseq [event events] + (let [seq-num (:seq event) + event-type (name (:event-type event)) + data (dissoc event :event-type)] + (jdbc/execute! tx ["INSERT INTO intemporal_history (workflow_id, seq, event_type, data) + VALUES (?, ?, ?, ?) + ON CONFLICT (workflow_id, seq) DO UPDATE SET event_type = EXCLUDED.event_type, data = EXCLUDED.data" + workflow-id seq-num event-type data]))))) + events) + + (find-event [_ workflow-id event-type seq-num] + (let [row (jdbc/execute-one! datasource + ["SELECT data FROM intemporal_history WHERE workflow_id = ? AND event_type = ? AND seq = ?" + workflow-id (name event-type) seq-num])] + (when row + (assoc (:intemporal_history/data row) :event-type event-type)))) + + (get-pending-signals [_ workflow-id] + (let [rows (jdbc/execute! datasource + ["SELECT signal_name, payload FROM intemporal_signals WHERE workflow_id = ? ORDER BY id ASC" + workflow-id])] + (reduce (fn [acc {:intemporal_signals/keys [signal_name payload]}] + (update acc signal_name (fnil conj []) payload)) + {} + rows))) + + (add-signal [this workflow-id signal-name signal-data] + (jdbc/with-transaction [tx datasource] + (jdbc/execute! tx ["INSERT INTO intemporal_workflows (id) VALUES (?) ON CONFLICT (id) DO NOTHING" + workflow-id]) + (jdbc/execute! tx ["INSERT INTO intemporal_signals (workflow_id, signal_name, payload) VALUES (?, ?, ?)" + workflow-id signal-name signal-data])) + + ;; Trigger callback if registered + (when-let [callback (get-in @callbacks [workflow-id signal-name])] + (future (callback))) + signal-data) + + (consume-signal [_ workflow-id signal-name] + (jdbc/with-transaction [tx datasource] + (let [row (jdbc/execute-one! tx + ["SELECT id, payload FROM intemporal_signals WHERE workflow_id = ? AND signal_name = ? ORDER BY id ASC FOR UPDATE SKIP LOCKED" + workflow-id signal-name])] + (when row + (jdbc/execute! tx ["DELETE FROM intemporal_signals WHERE id = ?" (:intemporal_signals/id row)]) + (:intemporal_signals/payload row))))) + + (register-signal-callback [_ workflow-id signal-name callback] + (swap! callbacks assoc-in [workflow-id signal-name] callback)) + + (unregister-signal-callback [_ workflow-id signal-name] + (swap! callbacks update workflow-id dissoc signal-name)) + + (is-cancelled? [_ workflow-id] + (let [row (jdbc/execute-one! datasource + ["SELECT cancelled FROM intemporal_workflows WHERE id = ?" + workflow-id])] + (boolean (:intemporal_workflows/cancelled row)))) + + (mark-cancelled [_ workflow-id] + (jdbc/execute! datasource + ["INSERT INTO intemporal_workflows (id, cancelled) VALUES (?, true) + ON CONFLICT (id) DO UPDATE SET cancelled = true" + workflow-id])) + + (get-workflow-status [this workflow-id] + (let [wf-row (jdbc/execute-one! datasource + ["SELECT cancelled FROM intemporal_workflows WHERE id = ?" + workflow-id])] + (cond + (nil? wf-row) :not-found + (:intemporal_workflows/cancelled wf-row) :cancelled + :else (let [history (p/load-history this workflow-id)] + (if (empty? history) + :not-found + (let [last-event (last history)] + (case (:event-type last-event) + :workflow-completed :completed + :workflow-failed :failed + :running)))))))) + +(defn make-jdbc-store [datasource] + (->JdbcStore datasource (atom {}))) diff --git a/test/intemporal/tests/cljs/repl/node_repl.js b/test/intemporal/tests/cljs/repl/node_repl.js deleted file mode 100644 index 8a8c6ef..0000000 --- a/test/intemporal/tests/cljs/repl/node_repl.js +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (c) Rich Hickey. All rights reserved. - * The use and distribution terms for this software are covered by the - * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) - * which can be found in the file epl-v10.html at the root of this distribution. - * By using this software in any fashion, you are agreeing to be bound by - * the terms of this license. - * You must not remove this notice, or any other, from this software. - */ - -process.env.NODE_DISABLE_COLORS = true; -var net = require("net"); -var vm = require("vm"); -var dom = require("domain").create(); -var PORT = 5001; -var repl = null; - -try { - require("source-map-support").install(); -} catch(err) { -} - -var server = net.createServer(function (socket) { - var buffer = "", - ret = null, - err = null; - - socket.write("ready"); - socket.write("\0"); - - socket.setEncoding("utf8"); - - process.stdout.write = function(chunk, encoding, fd) { - var args = Array.prototype.slice.call(arguments, 0); - args[0] = JSON.stringify({type: "out", repl: repl, value: chunk}); - socket.write.apply(socket, args); - socket.write("\0"); - }; - - process.stderr.write = (function(write) { - return function(chunk, encoding, fd) { - var args = Array.prototype.slice.call(arguments, 0); - args[0] = JSON.stringify({type: "err", repl: repl, value: chunk}); - socket.write.apply(socket, args); - socket.write("\0"); - }; - })(process.stderr.write); - - - dom.on("error", function(ue) { - console.error(ue.stack); - }); - - socket.on("data", function(data) { - if(data[data.length-1] != "\0") { - buffer += data; - } else { - if(buffer.length > 0) { - data = buffer + data; - buffer = ""; - } - - if(data) { - // not sure how \0's are getting through - David - data = data.replace(/\0/g, ""); - - if(":cljs/quit" == data) { - server.close(); - socket.unref(); - return; - } else { - try { - dom.run(function () { - var obj = JSON.parse(data); - repl = obj.repl; - ret = vm.runInThisContext(obj.form, "repl"); - }); - } catch (e) { - err = e; - } - } - } - - if(err) { - socket.write(JSON.stringify({ - type: "result", - repl: repl, - status: "exception", - value: cljs.repl.error__GT_str(err) - })); - } else if(ret !== undefined && ret !== null) { - socket.write(JSON.stringify({ - type: "result", - repl: repl, - status: "success", - value: ret.toString() - })); - } else { - socket.write(JSON.stringify({ - type: "result", - repl: repl, - status: "success", - value: null - })); - } - - ret = null; - err = null; - - socket.write("\0"); - } - }); - -}).listen(PORT); diff --git a/test/intemporal/tests/crash/future_cancel_test.clj b/test/intemporal/tests/crash/future_cancel_test.clj index 87d74c8..bb9eeb5 100644 --- a/test/intemporal/tests/crash/future_cancel_test.clj +++ b/test/intemporal/tests/crash/future_cancel_test.clj @@ -5,6 +5,7 @@ (:require [intemporal.core :as intemporal] [intemporal.store :as store] [intemporal.protocol :as p] + [clojure.pprint :as pprint] [clojure.test :refer [deftest is testing]])) ;; ============================================================================ @@ -13,14 +14,16 @@ (def execution-counter (atom 0)) -(defn tracked-activity [x] +(defn tracked-activity "Activity that increments counter to track actual executions (not replays)" + [x] (swap! execution-counter inc) (Thread/sleep 100) ;; Longer sleep to ensure we can interrupt (* x 2)) -(defn future-crash-workflow [id num-activities] +(defn future-crash-workflow "Simple workflow that executes activities sequentially" + [id num-activities] (let [stub (intemporal/stub #'tracked-activity)] (loop [i 0 results []] @@ -28,15 +31,17 @@ (recur (inc i) (conj results (stub i))) {:id id :results results})))) -(defn verify-history [store workflow-id] +(defn verify-history "Count completed activities in event history" + [store workflow-id] (let [history (p/load-history store workflow-id) completed (filter #(= :activity-completed (:event-type %)) history)] - (clojure.pprint/print-table history) + (pprint/print-table history) (count completed))) -(defn count-interrupted-or-rejected [store workflow-id] +(defn count-interrupted-or-rejected "Count activities that were interrupted or rejected (due to shutdown)" + [store workflow-id] (let [history (p/load-history store workflow-id) failed (filter #(= :activity-failed (:event-type %)) history)] (count diff --git a/test/intemporal/tests/crash/signal_wait_crash_test.clj b/test/intemporal/tests/crash/signal_wait_crash_test.clj index c43e32b..7494b74 100644 --- a/test/intemporal/tests/crash/signal_wait_crash_test.clj +++ b/test/intemporal/tests/crash/signal_wait_crash_test.clj @@ -5,6 +5,7 @@ (:require [intemporal.core :as intemporal] [intemporal.store :as store] [intemporal.protocol :as p] + [clojure.pprint :as pprint] [clojure.test :refer [deftest is testing]])) ;; ============================================================================ @@ -13,14 +14,16 @@ (def execution-counter (atom 0)) -(defn tracked-activity [x] +(defn tracked-activity "Simple activity that increments counter to track executions" + [x] (swap! execution-counter inc) (Thread/sleep 50) ;; Simulate work (* x 2)) -(defn simple-workflow [id num-activities crash-point] +(defn simple-workflow "Workflow that suspends at crash-point for testing" + [id num-activities crash-point] (let [stub (intemporal/stub #'tracked-activity)] (loop [i 0 results []] @@ -32,11 +35,12 @@ (recur (inc i) (conj results (stub i)))) {:id id :results results})))) -(defn verify-history [store workflow-id] +(defn verify-history "Count completed activities in event history" + [store workflow-id] (let [history (p/load-history store workflow-id) completed (filter #(= :activity-completed (:event-type %)) history)] - (clojure.pprint/print-table history) + (pprint/print-table history) (count completed))) ;; ============================================================================ diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs index 7867d3d..e43080b 100644 --- a/test/intemporal/tests/deleteme_test.cljs +++ b/test/intemporal/tests/deleteme_test.cljs @@ -1,7 +1,6 @@ (ns intemporal.tests.deleteme-test - (:require [cljs.test :as t :refer [deftest is testing async]] + (:require [cljs.test :as t :refer [deftest is testing]] [intemporal.core :as intemporal] - [intemporal.internal.logging :as log] [intemporal.tests.utils :refer [with-trace-logging]]) (:require-macros [intemporal.tests.utils :refer [with-result]])) diff --git a/test/intemporal/tests/store/fdb_test.clj b/test/intemporal/tests/store/fdb_test.clj index 655866c..33c31a0 100644 --- a/test/intemporal/tests/store/fdb_test.clj +++ b/test/intemporal/tests/store/fdb_test.clj @@ -1,20 +1,19 @@ -(ns ^:integration intemporal.tests.store.fdb-test - (:require [clojure.test :refer [deftest testing is]] - [intemporal.store.fdb :as fdb-store] - [intemporal.tests.store.test-suite :as suite] - [me.vedang.clj-fdb.FDB :as cfdb] - [me.vedang.clj-fdb.core :as fdb])) +;; (ns ^:integration intemporal.tests.store.fdb-test +;; (:require [clojure.test :refer [deftest testing is]] +;; [intemporal.store.fdb :as fdb-store] +;; [intemporal.tests.store.test-suite :as suite] +;; [me.vedang.clj-fdb.FDB :as cfdb])) -(deftest ^:integration fdb-store-test - (testing "FoundationDB Store Implementation" - (try - (let [db (cfdb/select-api-version 730) - db (cfdb/open db)] +;; (deftest fdb-store-test +;; (testing "FoundationDB Store Implementation" +;; (try +;; (let [db (cfdb/select-api-version 730) +;; db (cfdb/open db)] - ;; Run shared suite - (let [store (fdb-store/make-fdb-store db "intemporal-tests")] - (suite/run-store-tests store))) - (catch Exception e - (if (re-find #"FoundationDB" (.getMessage e)) - (println "Skipping FoundationDB Store tests: FDB not available") - (throw e)))))) +;; ;; Run shared suite +;; (let [store (fdb-store/make-fdb-store db "intemporal-tests")] +;; (suite/run-store-tests store))) +;; (catch Exception e +;; (if (re-find #"FoundationDB" (.getMessage e)) +;; (println "Skipping FoundationDB Store tests: FDB not available") +;; (throw e)))))) diff --git a/test/intemporal/tests/store/jdbc_test.clj b/test/intemporal/tests/store/jdbc_test.clj index 89e8e4d..6d8636a 100644 --- a/test/intemporal/tests/store/jdbc_test.clj +++ b/test/intemporal/tests/store/jdbc_test.clj @@ -1,5 +1,5 @@ (ns ^:integration intemporal.tests.store.jdbc-test - (:require [clojure.test :refer [deftest testing is]] + (:require [clojure.test :refer [deftest testing]] [intemporal.store.jdbc :as jdbc-store] [intemporal.tests.store.test-suite :as suite] [next.jdbc :as jdbc])) diff --git a/test/intemporal/tests/store/store_test.clj b/test/intemporal/tests/store/store_test.clj index 715b4a9..38342b1 100644 --- a/test/intemporal/tests/store/store_test.clj +++ b/test/intemporal/tests/store/store_test.clj @@ -1,6 +1,5 @@ (ns intemporal.tests.store.store-test (:require [intemporal.core :as intemporal] - [intemporal.protocol :as p] [clojure.test :refer [deftest is testing]] [matcher-combinators.test :refer [match?]])) diff --git a/test/intemporal/tests/store/test_suite.clj b/test/intemporal/tests/store/test_suite.clj index 27f9d5f..b297366 100644 --- a/test/intemporal/tests/store/test_suite.clj +++ b/test/intemporal/tests/store/test_suite.clj @@ -9,15 +9,15 @@ (defn comprehensive-workflow [initial-value] (let [activity-stub (intemporal/stub #'test-activity) - activity-result (activity-stub initial-value)] - (let [async-handle (intemporal/async #(activity-stub (inc initial-value))) - async-result (intemporal/join async-handle)] - (intemporal/sleep 50) - (let [signal-data (intemporal/wait-for-signal "approval")] - {:activity-result activity-result - :async-result async-result - :signal-data signal-data - :initial-value initial-value})))) + activity-result (activity-stub initial-value) + async-handle (intemporal/async #(activity-stub (inc initial-value))) + async-result (intemporal/join async-handle)] + (intemporal/sleep 50) + (let [signal-data (intemporal/wait-for-signal "approval")] + {:activity-result activity-result + :async-result async-result + :signal-data signal-data + :initial-value initial-value}))) (defn run-store-tests [store] (testing "Basic store operations" diff --git a/test/intemporal/tests/utils.cljc b/test/intemporal/tests/utils.cljc index 9558a2c..ff2b8b8 100644 --- a/test/intemporal/tests/utils.cljc +++ b/test/intemporal/tests/utils.cljc @@ -1,13 +1,9 @@ (ns intemporal.tests.utils - #?(:cljs (:require [intemporal.store :as store] - [promesa.core :as p] - [cljs.test :as t] - [cljs.pprint :as pprint] + #?(:cljs (:require [promesa.core :as p] [taoensso.telemere :as telemere] [taoensso.telemere.utils :as tutils])) #?(:clj (:require [promesa.core :as p] [net.cgrand.macrovich :as macros] - [clojure.pprint :as pprint] [taoensso.telemere :as telemere] [taoensso.telemere.utils :as tutils])) #?(:cljs (:require-macros [net.cgrand.macrovich :as macros] From de58ce4c13e3d29c9dcefc0a3bc930cec95eabb2 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sat, 14 Feb 2026 20:00:54 +0000 Subject: [PATCH 67/81] fix failing test --- .env | 2 +- src/intemporal/store/fdb.clj | 138 +++++++++++++++++++++++ test/intemporal/tests/store/fdb_test.clj | 36 +++--- 3 files changed, 157 insertions(+), 19 deletions(-) create mode 100644 src/intemporal/store/fdb.clj diff --git a/.env b/.env index b187499..749daf2 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -JAVA_OTS="$JAVA_OPTS -Dio.netty.tryUnsafe=false" \ No newline at end of file +JAVA_OTS="$JAVA_OPTS -Dio.netty.tryUnsafe=false --enable-native-access=ALL-UNNAMED " \ No newline at end of file diff --git a/src/intemporal/store/fdb.clj b/src/intemporal/store/fdb.clj new file mode 100644 index 0000000..d6d2bde --- /dev/null +++ b/src/intemporal/store/fdb.clj @@ -0,0 +1,138 @@ +(ns intemporal.store.fdb + (:require [intemporal.protocol :as p] + [me.vedang.clj-fdb.FDB :as cfdb] + [me.vedang.clj-fdb.core :as fdb-core] + [me.vedang.clj-fdb.transaction :as ftr] + [me.vedang.clj-fdb.subspace.subspace :as fsub] + [taoensso.telemere :as t] + [cheshire.core :as json]) + (:import [com.apple.foundationdb FDB FDBTransaction KeyValue] + [com.apple.foundationdb.tuple Tuple])) + +;; ============================================================================ +;; Serialization Helpers +;; ============================================================================ + +(defn ->bytes [x] + (.getBytes (json/generate-string x) "UTF-8")) + +(defn <-bytes [^bytes b] + (when b + (json/parse-string (String. b "UTF-8") true))) + +(defn ->tuple [v] + (Tuple/from (into-array Object (map #(if (keyword? %) (name %) %) v)))) + +;; ============================================================================ +;; FDB Store Implementation +;; ============================================================================ + +(defrecord FDBStore [db root-subspace callbacks] + p/IStore + (load-history [_ workflow-id] + (let [history-sub (fsub/get root-subspace (->tuple ["history" workflow-id]))] + (ftr/run db + (fn [tx] + (let [r (fdb-core/get-range tx (fsub/range history-sub))] + (->> r + (map (fn [[key value]] + (let [event (<-bytes value) + seq-num (nth key (- (count key) 2))] + (assoc (update event :event-type keyword) + :seq seq-num)))) + (sort-by :seq) + vec)))))) + + (save-event [_ workflow-id event] + (let [history-sub (fsub/get root-subspace (->tuple ["history" workflow-id])) + seq-num (:seq event (System/currentTimeMillis)) + key (->tuple [seq-num (str (java.util.UUID/randomUUID))])] + (ftr/run db + (fn [tx] + (fdb-core/set tx history-sub key (->bytes event)))) + event)) + + (save-events [_ workflow-id events] + (when (seq events) + (let [history-sub (fsub/get root-subspace (->tuple ["history" workflow-id]))] + (ftr/run db + (fn [tx] + (doseq [event events] + (let [seq-num (:seq event (System/currentTimeMillis)) + key (->tuple [seq-num (str (java.util.UUID/randomUUID))])] + (fdb-core/set tx history-sub key (->bytes event)))))))) + events) + + (find-event [this workflow-id event-type seq-num] + (let [history (p/load-history this workflow-id)] + (->> history + (filter #(and (= (:event-type %) event-type) + (= (:seq %) seq-num))) + first))) + + (get-pending-signals [_ workflow-id] + (let [signals-sub (fsub/get root-subspace (->tuple ["signals" workflow-id]))] + (ftr/run db + (fn [tx] + (let [r (fdb-core/get-range tx (fsub/range signals-sub))] + (reduce (fn [acc [key value]] + (let [signal-name (nth key (- (count key) 3))] + (update acc signal-name (fnil conj []) (<-bytes value)))) + {} + r)))))) + + (add-signal [this workflow-id signal-name signal-data] + (let [signals-sub (fsub/get root-subspace (->tuple ["signals" workflow-id signal-name])) + key (->tuple [(System/currentTimeMillis) (str (java.util.UUID/randomUUID))])] + (ftr/run db + (fn [tx] + (fdb-core/set tx signals-sub key (->bytes signal-data)))) + + ;; Invoke callback asynchronously + (when-let [callback (get-in @callbacks [workflow-id signal-name])] + (future (callback))) + + signal-data)) + + (consume-signal [_ workflow-id signal-name] + (let [signals-sub (fsub/get root-subspace (->tuple ["signals" workflow-id signal-name]))] + (ftr/run db + (fn [tx] + (let [r (fdb-core/get-range tx (fsub/range signals-sub) {:limit 1})] + (when (seq r) + (let [[key value] (first r) + relative-key (vec (drop 4 key))] ;; root(1) + "signals"(1) + workflow-id(1) + signal-name(1) = 4 + (fdb-core/clear tx signals-sub relative-key) + (<-bytes value)))))))) + + (register-signal-callback [_ workflow-id signal-name callback] + (swap! callbacks assoc-in [workflow-id signal-name] callback)) + + (unregister-signal-callback [_ workflow-id signal-name] + (swap! callbacks update workflow-id dissoc signal-name)) + + (is-cancelled? [_ workflow-id] + (ftr/run db + (fn [tx] + (boolean (<-bytes (fdb-core/get tx root-subspace (->tuple ["state" workflow-id "cancelled"]))))))) + + (mark-cancelled [_ workflow-id] + (ftr/run db + (fn [tx] + (fdb-core/set tx root-subspace (->tuple ["state" workflow-id "cancelled"]) (->bytes true))))) + + (get-workflow-status [this workflow-id] + (if (p/is-cancelled? this workflow-id) + :cancelled + (let [history (p/load-history this workflow-id)] + (if (empty? history) + :not-found + (let [last-event (last history)] + (case (:event-type last-event) + :workflow-completed :completed + :workflow-failed :failed + :running))))))) + +(defn make-fdb-store [db subspace-name] + (let [root (fsub/create (->tuple [subspace-name]))] + (->FDBStore db root (atom {})))) diff --git a/test/intemporal/tests/store/fdb_test.clj b/test/intemporal/tests/store/fdb_test.clj index 33c31a0..640fe55 100644 --- a/test/intemporal/tests/store/fdb_test.clj +++ b/test/intemporal/tests/store/fdb_test.clj @@ -1,19 +1,19 @@ -;; (ns ^:integration intemporal.tests.store.fdb-test -;; (:require [clojure.test :refer [deftest testing is]] -;; [intemporal.store.fdb :as fdb-store] -;; [intemporal.tests.store.test-suite :as suite] -;; [me.vedang.clj-fdb.FDB :as cfdb])) +(ns ^:integration intemporal.tests.store.fdb-test + (:require [clojure.test :refer [deftest testing is]] + [intemporal.store.fdb :as fdb-store] + [intemporal.tests.store.test-suite :as suite] + [me.vedang.clj-fdb.FDB :as cfdb])) -;; (deftest fdb-store-test -;; (testing "FoundationDB Store Implementation" -;; (try -;; (let [db (cfdb/select-api-version 730) -;; db (cfdb/open db)] - -;; ;; Run shared suite -;; (let [store (fdb-store/make-fdb-store db "intemporal-tests")] -;; (suite/run-store-tests store))) -;; (catch Exception e -;; (if (re-find #"FoundationDB" (.getMessage e)) -;; (println "Skipping FoundationDB Store tests: FDB not available") -;; (throw e)))))) +(deftest fdb-store-test + (testing "FoundationDB Store Implementation" + (try + (let [db (cfdb/select-api-version 730) + db (cfdb/open db)] + + ;; Run shared suite + (let [store (fdb-store/make-fdb-store db "intemporal-tests")] + (suite/run-store-tests store))) + (catch Exception e + (if (re-find #"FoundationDB" (.getMessage e)) + (println "Skipping FoundationDB Store tests: FDB not available") + (throw e)))))) From 011cbccd558bd94868fbd590e6501b6cae5d0f19 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 15:21:28 +0000 Subject: [PATCH 68/81] fix tests --- doc/intemporal/doc.cljs | 19 ++++++----- src/intemporal/internal/activity.cljc | 5 +-- src/intemporal/internal/execution.cljs | 22 +++++++------ .../internal/fns/start_workflow.cljs | 12 ++++--- src/intemporal/internal/macros.cljc | 33 +++++++++++++------ ...tocol_test.clj => stub_protocol_test.cljc} | 13 +++++--- 6 files changed, 64 insertions(+), 40 deletions(-) rename test/intemporal/tests/{stub_protocol_test.clj => stub_protocol_test.cljc} (53%) diff --git a/doc/intemporal/doc.cljs b/doc/intemporal/doc.cljs index 785310c..68a7e33 100644 --- a/doc/intemporal/doc.cljs +++ b/doc/intemporal/doc.cljs @@ -2,7 +2,8 @@ (:require [intemporal.core :as intemporal] [promesa.core :as p] [hiccups.runtime :as hiccupsrt]) - (:require-macros [hiccups.core :as hiccups :refer [html]])) + (:require-macros [hiccups.core :as hiccups :refer [html]] + [intemporal.core :refer [stub-protocol]])) ;;;; ;; main code @@ -10,8 +11,9 @@ [a :nested]) (defn activity-fn [a] + 1 #_(let [f (intemporal/stub nested-fn)] - (f :sub))) + (f :sub))) (defprotocol MyActivities (foo [this a])) @@ -22,15 +24,13 @@ (defn my-workflow [i] (let [sf (intemporal/stub activity-fn) - pr (stub-protocol MyActivities {}) + pr (intemporal/stub-protocol MyActivities) sres (sf [1]) pres (foo pr :X)] - (p/let [v1 sres - v2 pres] - (conj [:root] - v1 - v2)))) + (conj [:root] + sres + pres))) ;;;; ;; workflow registration @@ -72,7 +72,8 @@ ;; bootstrap (defn init [] (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true) - res (intemporal/start-workflow engine my-workflow [1] :workflow-id "my-wflow")] + res (intemporal/start-workflow engine my-workflow [1] :workflow-id "my-wflow" + :protocols {MyActivities (->MyActivitiesImpl)})] ;; set-results! (-> res diff --git a/src/intemporal/internal/activity.cljc b/src/intemporal/internal/activity.cljc index c6930fc..7d42a73 100644 --- a/src/intemporal/internal/activity.cljc +++ b/src/intemporal/internal/activity.cljc @@ -66,8 +66,9 @@ (apply mfn implementation args)) :name fullname)))) :cljs - ;; protocol-based registration in CLJS requires more metadata than available at runtime usually - (throw (ex-info "register-protocol-activities! not implemented for CLJS" {})))) + ;; In CLJS, protocol registration is handled by the stub-protocol macro + ;; which has access to protocol metadata at compile time. + (throw (ex-info "register-protocol-activities! not needed in CLJS. Use stub-protocol macro." {})))) (defn get-activity-info [registry activity-name] (get @registry activity-name)) diff --git a/src/intemporal/internal/execution.cljs b/src/intemporal/internal/execution.cljs index 6cae2e5..be300bc 100644 --- a/src/intemporal/internal/execution.cljs +++ b/src/intemporal/internal/execution.cljs @@ -308,15 +308,16 @@ (defn make-workflow-context "Create workflow execution context from history." - [workflow-id history store registry observer] - {:history (atom history) - :workflow-id workflow-id - :seq-counter (atom 0) - :pending-events (atom []) - :pending-asyncs (atom []) - :store store - :registry registry - :observer observer}) + [workflow-id history store registry observer & {:keys [protocols]}] + (cond-> {:history (atom history) + :workflow-id workflow-id + :seq-counter (atom 0) + :pending-events (atom []) + :pending-asyncs (atom []) + :store store + :registry registry + :observer observer} + protocols (assoc :protocols protocols))) (defn finalize-completed "Save completion events and return result. Returns a promise." @@ -520,7 +521,8 @@ :error error-map}) ;; else (let [history (p/load-history store workflow-id) - ctx (make-workflow-context workflow-id history store registry observer) + ctx (make-workflow-context workflow-id history store registry observer + :protocols (:protocols engine)) exec-result (binding [ctx/*workflow-context* ctx] (log/debugf "Executing workflow function %s..." workflow-fn) (execute-workflow-fn workflow-fn args))] diff --git a/src/intemporal/internal/fns/start_workflow.cljs b/src/intemporal/internal/fns/start_workflow.cljs index 488060f..cab83d7 100644 --- a/src/intemporal/internal/fns/start_workflow.cljs +++ b/src/intemporal/internal/fns/start_workflow.cljs @@ -27,9 +27,11 @@ - :observer - IWorkflowObserver for monitoring - :max-iterations - Maximum replay iterations (default: 1000)" [{:keys [store] :as engine} workflow-fn args - & {:keys [workflow-id observer max-iterations] + & {:keys [workflow-id observer max-iterations protocols] :or {max-iterations 1000}}] - (let [wf-id (or workflow-id (str (random-uuid))) + (let [engine (cond-> engine + protocols (assoc :protocols protocols)) + wf-id (or workflow-id (str (random-uuid))) observer (or observer (get engine :observer))] (p/save-event store wf-id {:event-type :workflow-started :workflow-id wf-id @@ -75,9 +77,11 @@ Returns the initial execution result (may be :waiting-* if suspended)." [{:keys [store] :as engine} workflow-fn args - & {:keys [workflow-id observer max-iterations on-complete] + & {:keys [workflow-id observer max-iterations on-complete protocols] :or {max-iterations 1000}}] - (let [wf-id (or workflow-id (str (random-uuid))) + (let [engine (cond-> engine + protocols (assoc :protocols protocols)) + wf-id (or workflow-id (str (random-uuid))) observer (or observer (get engine :observer)) wake-fn (fn wake-fn-impl [] (log/with-mdc {:workflow-id wf-id} diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index eaf5804..013d97f 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -1,5 +1,7 @@ (ns intemporal.internal.macros - (:require [cljs.analyzer.api :as api]) + (:require [cljs.analyzer.api :as api] + [intemporal.internal.context :as ctx] + [intemporal.internal.activity :as act]) ;[md5.core :as md5]) #?(:clj (:require [net.cgrand.macrovich :as macros]) ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) @@ -65,15 +67,26 @@ (str (namespace proto) "/" (name sig)))]] [(name sig) arglist (symbol invname) (symbol qname) (str (:name resolved))]) (doall))] - ;; TODO we can use &form to determine eg checksum of proto def - `(reify ~proto - ~@(for [[mname arglist invname qname pname] sig+args - :let [sname (symbol mname) - args (rest (first arglist))]] - ;; implement ~sname - `(~sname [this# ~@args] - (let [f# (intemporal.core/stub (var ~qname))] - (f# ~@args))))))) + (let [protocols-sym (gensym "protocols") + registry-sym (gensym "registry") + impl-sym (gensym "impl")] + `(let [~protocols-sym (:protocols (ctx/current-context)) + ~registry-sym (:registry (ctx/current-context))] + ;; Register protocol methods with impl wrapper before stub can register raw dispatch fns + ~@(for [[mname arglist invname qname pname] sig+args] + `(when-let [~impl-sym (get ~protocols-sym ~proto)] + (act/register-activity! + ~registry-sym + (fn [& args#] (apply ~invname ~impl-sym args#)) + :name ~(str qname)))) + (reify ~proto + ~@(for [[mname arglist invname qname pname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [f# (intemporal.core/stub (var ~qname))] + (f# ~@args))))))))) :clj #_{:clj-kondo/ignore [:unresolved-symbol]} diff --git a/test/intemporal/tests/stub_protocol_test.clj b/test/intemporal/tests/stub_protocol_test.cljc similarity index 53% rename from test/intemporal/tests/stub_protocol_test.clj rename to test/intemporal/tests/stub_protocol_test.cljc index f0c99d3..7e86c9b 100644 --- a/test/intemporal/tests/stub_protocol_test.clj +++ b/test/intemporal/tests/stub_protocol_test.cljc @@ -1,7 +1,10 @@ (ns intemporal.tests.stub-protocol-test (:require [intemporal.core :as intemporal] [clojure.test :refer [deftest is testing]] - [matcher-combinators.test :refer [match?]])) + [matcher-combinators.test :refer [match?]] + [intemporal.tests.utils :refer [with-result]]) + #?(:cljs (:require-macros [intemporal.core :as intemporal] + [intemporal.tests.utils :refer [with-result]]))) (defprotocol MyProto (my-method [this x])) @@ -14,14 +17,14 @@ (defn my-workflow [id] (let [proto-stub (intemporal/stub-protocol MyProto) - res (my-method proto-stub id)] + res (my-method proto-stub id)] {:result res})) (deftest test-stub-protocol (testing "Protocol stubbing via :protocols map" - (intemporal/with-workflow-engine [engine {:enable-logging true}] - (let [result (intemporal/start-workflow engine my-workflow [21] - :protocols {MyProto (->MyProtoImpl)})] + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine my-workflow [21] + :protocols {MyProto (->MyProtoImpl)})] (is (match? {:status :completed :result {:result 42}} result)))))) From 7ab5acba1a3df9ddcc55461465d6d228369f77ca Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 16:03:08 +0000 Subject: [PATCH 69/81] context prop --- .clj-kondo/config.edn | 4 + doc/intemporal/automata.cljs | 7 +- doc/intemporal/doc.cljs | 13 +- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 302 +++++++++++------- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/main.js | 2 +- public/js/manifest.edn | 2 +- public/js/shared.js | 27 +- src/intemporal/internal/context.cljc | 46 ++- src/intemporal/internal/execution.cljs | 192 ++++++----- .../internal/fns/start_workflow.cljs | 9 +- src/intemporal/internal/macros.cljc | 51 +-- src/intemporal/store/fdb.clj | 5 +- test/intemporal/tests/cancellation_test.cljs | 5 +- test/intemporal/tests/deleteme_test.cljs | 21 +- test/intemporal/tests/macros_test.cljs | 42 +++ test/intemporal/tests/signal_test.cljs | 5 +- test/intemporal/tests/timer_test.cljs | 5 +- 19 files changed, 496 insertions(+), 246 deletions(-) create mode 100644 test/intemporal/tests/macros_test.cljs diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index a0af381..f7d73b0 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -6,6 +6,10 @@ intemporal.store.foundationdb/with-tx clojure.core/with-open intemporal.tests.utils/with-result clojure.core/let + intemporal.internal.context/blet clojure.core/let + intemporal.tests.utils/bthen promesa.core/then + intemporal.tests.utils/finally promesa.core/finally + intemporal.core/with-workflow-engine clojure.core/let promesa.core/let clojure.core/let diff --git a/doc/intemporal/automata.cljs b/doc/intemporal/automata.cljs index b2d0d83..ce3257a 100644 --- a/doc/intemporal/automata.cljs +++ b/doc/intemporal/automata.cljs @@ -3,7 +3,8 @@ [intemporal.core :as intemporal] [intemporal.fsm :as fsm] [hiccups.runtime :as hiccupsrt]) - (:require-macros [hiccups.core :as hiccups :refer [html]])) + (:require-macros [hiccups.core :as hiccups :refer [html]] + [intemporal.internal.context :refer [blet bthen]])) ;;;; ;; main code @@ -91,13 +92,13 @@ ;;;; ;; bootstrap (defn init [] - (p/let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true) + (blet [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true) res (intemporal/start-workflow engine run-fsm-workflow [resource-rules :state/init :event/create] :workflow-id "my-wflow")] ;; set-results! (-> (:result res) - (p/then (fn [r] + (bthen (fn [r] (js/console.log "res" (clj->js r)) ;(set-results! (prn-str r)) ;(render-tables! engine "my-wflow") diff --git a/doc/intemporal/doc.cljs b/doc/intemporal/doc.cljs index 68a7e33..144f734 100644 --- a/doc/intemporal/doc.cljs +++ b/doc/intemporal/doc.cljs @@ -3,7 +3,8 @@ [promesa.core :as p] [hiccups.runtime :as hiccupsrt]) (:require-macros [hiccups.core :as hiccups :refer [html]] - [intemporal.core :refer [stub-protocol]])) + [intemporal.core :refer [stub-protocol]] + [intemporal.internal.context :refer [blet bthen]])) ;;;; ;; main code @@ -28,9 +29,11 @@ sres (sf [1]) pres (foo pr :X)] - (conj [:root] - sres - pres))) + (blet [v1 sres + v2 pres] + (conj [:root] + v1 + v2)))) ;;;; ;; workflow registration @@ -77,7 +80,7 @@ ;; set-results! (-> res - (p/then (fn [r] + (bthen (fn [r] (js/console.log "res" (clj->js r)) (set-results! (prn-str r)) (render-tables! engine "my-wflow"))) diff --git a/public/js/automata.js b/public/js/automata.js index bcae50e..efc1c20 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__40866 \x3d cljs.core._EQ_;\nvar expr__40867 \x3d event;\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__40866.cljs$core$IFn$_invoke$arity$2 ? pred__40866.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__40867) : pred__40866.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__40867)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_40873,reject_fn_40872){\nvar loop_fn_40869 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_40869(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_40870,err_40871){\nif((!((err_40871 \x3d\x3d null)))){\nreturn (reject_fn_40872.cljs$core$IFn$_invoke$arity$1 ? reject_fn_40872.cljs$core$IFn$_invoke$arity$1(err_40871) : reject_fn_40872.call(null,err_40871));\n} else {\nif(promesa.core.recur_QMARK_(res_40870)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_40869,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_40870));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_40873.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_40873.cljs$core$IFn$_invoke$arity$1(res_40870) : resolve_fn_40873.call(null,res_40870));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_40869(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.set_results_BANG_ \x3d (function intemporal$automata$set_results_BANG_(html){\nreturn intemporal.automata.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__40874(s__40875){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40875__$1 \x3d s__40875;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__40875__$1);\nif(temp__5825__auto__){\nvar s__40875__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__40875__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40875__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40877 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40876 \x3d (0);\nwhile(true){\nif((i__40876 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__40876);\ncljs.core.chunk_append(b__40877,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__40890 \x3d (i__40876 + (1));\ni__40876 \x3d G__40890;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40877),intemporal$automata$render_table_BANG__$_iter__40874(cljs.core.chunk_rest(s__40875__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40877),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40875__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__40874(cljs.core.rest(s__40875__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__40878(s__40879){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40879__$1 \x3d s__40879;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__40879__$1);\nif(temp__5825__auto__){\nvar s__40879__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__40879__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40879__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40881 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40880 \x3d (0);\nwhile(true){\nif((i__40880 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__40880);\ncljs.core.chunk_append(b__40881,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(s__40883){\nreturn (new cljs.core.LazySeq(null,((function (i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__40883__$1 \x3d s__40883;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__40883__$1);\nif(temp__5825__auto____$1){\nvar s__40883__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__40883__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__40883__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__40885 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__40884 \x3d (0);\nwhile(true){\nif((i__40884 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__40884);\ncljs.core.chunk_append(b__40885,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__40891 \x3d (i__40884 + (1));\ni__40884 \x3d G__40891;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40885),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(cljs.core.chunk_rest(s__40883__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40885),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40883__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40882(cljs.core.rest(s__40883__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__40880,r,c__5501__auto__,size__5502__auto__,b__40881,s__40879__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__40892 \x3d (i__40880 + (1));\ni__40880 \x3d G__40892;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40881),intemporal$automata$render_table_BANG__$_iter__40878(cljs.core.chunk_rest(s__40879__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40881),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__40879__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__40879__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(s__40887){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__40887__$1 \x3d s__40887;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__40887__$1);\nif(temp__5825__auto____$1){\nvar s__40887__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__40887__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__40887__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__40889 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__40888 \x3d (0);\nwhile(true){\nif((i__40888 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__40888);\ncljs.core.chunk_append(b__40889,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__40893 \x3d (i__40888 + (1));\ni__40888 \x3d G__40893;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40889),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(cljs.core.chunk_rest(s__40887__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__40889),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__40887__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__40878_$_iter__40886(cljs.core.rest(s__40887__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__40879__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__40878(cljs.core.rest(s__40879__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0))),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0))),(function (res){\nreturn promesa.protocols._promise(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})),(function (r){\nreturn console.error(\x22error\x22,r);\n})));\n}));\n}));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39292 \x3d cljs.core._EQ_;\nvar expr__39293 \x3d event;\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39302,reject_fn_39301){\nvar loop_fn_39298 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39298(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39299,err_39300){\nif((!((err_39300 \x3d\x3d null)))){\nreturn (reject_fn_39301.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39301.cljs$core$IFn$_invoke$arity$1(err_39300) : reject_fn_39301.call(null,err_39300));\n} else {\nif(promesa.core.recur_QMARK_(res_39299)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39298,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39299));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39302.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39302.cljs$core$IFn$_invoke$arity$1(res_39299) : resolve_fn_39302.call(null,res_39299));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39298(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.set_results_BANG_ \x3d (function intemporal$automata$set_results_BANG_(html){\nreturn intemporal.automata.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39313(s__39314){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39314__$1 \x3d s__39314;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39314__$1);\nif(temp__5825__auto__){\nvar s__39314__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39314__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39314__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39317 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39316 \x3d (0);\nwhile(true){\nif((i__39316 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39316);\ncljs.core.chunk_append(b__39317,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39349 \x3d (i__39316 + (1));\ni__39316 \x3d G__39349;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39317),intemporal$automata$render_table_BANG__$_iter__39313(cljs.core.chunk_rest(s__39314__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39317),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39314__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39313(cljs.core.rest(s__39314__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39319(s__39320){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39320__$1 \x3d s__39320;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39320__$1);\nif(temp__5825__auto__){\nvar s__39320__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39320__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39320__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39322 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39321 \x3d (0);\nwhile(true){\nif((i__39321 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39321);\ncljs.core.chunk_append(b__39322,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(s__39328){\nreturn (new cljs.core.LazySeq(null,((function (i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39328__$1 \x3d s__39328;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39328__$1);\nif(temp__5825__auto____$1){\nvar s__39328__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39328__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39328__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39330 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39329 \x3d (0);\nwhile(true){\nif((i__39329 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39329);\ncljs.core.chunk_append(b__39330,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39354 \x3d (i__39329 + (1));\ni__39329 \x3d G__39354;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39330),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(cljs.core.chunk_rest(s__39328__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39330),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39328__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(cljs.core.rest(s__39328__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39355 \x3d (i__39321 + (1));\ni__39321 \x3d G__39355;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39322),intemporal$automata$render_table_BANG__$_iter__39319(cljs.core.chunk_rest(s__39320__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39322),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39320__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(s__39332){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39332__$1 \x3d s__39332;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39332__$1);\nif(temp__5825__auto____$1){\nvar s__39332__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39332__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39332__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39334 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39333 \x3d (0);\nwhile(true){\nif((i__39333 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39333);\ncljs.core.chunk_append(b__39334,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39356 \x3d (i__39333 + (1));\ni__39333 \x3d G__39356;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39334),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(cljs.core.chunk_rest(s__39332__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39334),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39332__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(cljs.core.rest(s__39332__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39320__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39319(cljs.core.rest(s__39320__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0))),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0))),(function (res){\nreturn promesa.protocols._promise(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})),(function (r){\nreturn console.error(\x22error\x22,r);\n})));\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index 6ab7151..d3e35e7 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -3,7 +3,7 @@ intemporal.doc.nested_fn = (function intemporal$doc$nested_fn(a){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,"nested","nested",18943849)], null); }); intemporal.doc.activity_fn = (function intemporal$doc$activity_fn(a){ -return null; +return (1); }); /** @@ -11,7 +11,7 @@ return null; */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_41034 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_51204 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -29,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_41034(this$,a); +return intemporal$doc$MyActivities$foo$dyn_51204(this$,a); } }); @@ -66,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k41003,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k51169,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__41007 = k41003; -switch (G__41007) { +var G__51173 = k51169; +switch (G__51173) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k41003,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k51169,else__5326__auto__); } })); @@ -80,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k41003,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__41008){ -var vec__41009 = p__41008; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__51174){ +var vec__51175 = p__51174; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -97,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__41002){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__51168){ var self__ = this; -var G__41002__$1 = this; -return (new cljs.core.RecordIter((0),G__41002__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__51168__$1 = this; +return (new cljs.core.RecordIter((0),G__51168__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -137,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this41004,other41005){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this51170,other51171){ var self__ = this; -var this41004__$1 = this; -return (((!((other41005 == null)))) && ((((this41004__$1.constructor === other41005.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this41004__$1.__extmap,other41005.__extmap))))); +var this51170__$1 = this; +return (((!((other51171 == null)))) && ((((this51170__$1.constructor === other51171.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this51170__$1.__extmap,other51171.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -153,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k41003){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k51169){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k41003); +return cljs.core.contains_QMARK_(self__.__extmap,k51169); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__41002){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__51168){ var self__ = this; var this__5331__auto____$1 = this; -var pred__41012 = cljs.core.keyword_identical_QMARK_; -var expr__41013 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__41002),null)); +var pred__51178 = cljs.core.keyword_identical_QMARK_; +var expr__51179 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__51168),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -173,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__41002){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__51168){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__41002,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__51168,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -223,26 +223,110 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__41006){ -var extmap__5365__auto__ = (function (){var G__41015 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__41006); -if(cljs.core.record_QMARK_(G__41006)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__41015); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__51172){ +var extmap__5365__auto__ = (function (){var G__51181 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__51172); +if(cljs.core.record_QMARK_(G__51172)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__51181); } else { -return G__41015; +return G__51181; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); }); + +/** +* @constructor + * @implements {intemporal.doc.MyActivities} + * @implements {cljs.core.IMeta} + * @implements {cljs.core.IWithMeta} +*/ +intemporal.doc.t_intemporal$doc51185 = (function (i,sf,protocols51182,registry51183,meta51186){ +this.i = i; +this.sf = sf; +this.protocols51182 = protocols51182; +this.registry51183 = registry51183; +this.meta51186 = meta51186; +this.cljs$lang$protocol_mask$partition0$ = 393216; +this.cljs$lang$protocol_mask$partition1$ = 0; +}); +(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_51187,meta51186__$1){ +var self__ = this; +var _51187__$1 = this; +return (new intemporal.doc.t_intemporal$doc51185(self__.i,self__.sf,self__.protocols51182,self__.registry51183,meta51186__$1)); +})); + +(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_51187){ +var self__ = this; +var _51187__$1 = this; +return self__.meta51186; +})); + +(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); + +(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__50906__auto__,a){ +var self__ = this; +var this__50906__auto____$1 = this; +var f__50907__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,18,19,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); +return f__50907__auto__(a); +})); + +(intemporal.doc.t_intemporal$doc51185.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols51182","protocols51182",-434579569,null),new cljs.core.Symbol(null,"registry51183","registry51183",-2083177811,null),new cljs.core.Symbol(null,"meta51186","meta51186",2123713693,null)], null); +})); + +(intemporal.doc.t_intemporal$doc51185.cljs$lang$type = true); + +(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc51185"); + +(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ +return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc51185"); +})); + +/** + * Positional factory function for intemporal.doc/t_intemporal$doc51185. + */ +intemporal.doc.__GT_t_intemporal$doc51185 = (function intemporal$doc$__GT_t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186){ +return (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186)); +}); + + intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ var sf = intemporal.core.stub(intemporal.doc.activity_fn); -var pr = (function (){var G__41016 = intemporal.doc.MyActivities; -var G__41017 = cljs.core.PersistentArrayMap.EMPTY; -return (intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2 ? intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2(G__41016,G__41017) : intemporal.doc.stub_protocol.call(null,G__41016,G__41017)); +var pr = (function (){var protocols51182 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var registry51183 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var temp__5825__auto___51206 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols51182,intemporal.doc.MyActivities); +if(cljs.core.truth_(temp__5825__auto___51206)){ +var impl51184_51207 = temp__5825__auto___51206; +intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry51183,(function() { +var G__51208__delegate = function (args__50905__auto__){ +return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl51184_51207,args__50905__auto__); +}; +var G__51208 = function (var_args){ +var args__50905__auto__ = null; +if (arguments.length > 0) { +var G__51209__i = 0, G__51209__a = new Array(arguments.length - 0); +while (G__51209__i < G__51209__a.length) {G__51209__a[G__51209__i] = arguments[G__51209__i + 0]; ++G__51209__i;} + args__50905__auto__ = new cljs.core.IndexedSeq(G__51209__a,0,null); +} +return G__51208__delegate.call(this,args__50905__auto__);}; +G__51208.cljs$lang$maxFixedArity = 0; +G__51208.cljs$lang$applyTo = (function (arglist__51210){ +var args__50905__auto__ = cljs.core.seq(arglist__51210); +return G__51208__delegate(args__50905__auto__); +}); +G__51208.cljs$core$IFn$_invoke$arity$variadic = G__51208__delegate; +return G__51208; +})() +,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),"intemporal.doc/foo"], 0)); +} else { +} + +return (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,null)); })(); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); -var pres = intemporal.doc.foo(pr,new cljs.core.Keyword(null,"X","X",1705996313)); -return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){ +var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); +return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){ return promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){ return promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){ return promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0))); @@ -258,25 +342,25 @@ return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ var header = cljs.core.keys(cljs.core.first(rows)); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__41018(s__41019){ +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__51188(s__51189){ return (new cljs.core.LazySeq(null,(function (){ -var s__41019__$1 = s__41019; +var s__51189__$1 = s__51189; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__41019__$1); +var temp__5825__auto__ = cljs.core.seq(s__51189__$1); if(temp__5825__auto__){ -var s__41019__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__41019__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__41019__$2); +var s__51189__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__51189__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__51189__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__41021 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__41020 = (0); +var b__51191 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__51190 = (0); while(true){ -if((i__41020 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__41020); -cljs.core.chunk_append(b__41021,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__51190 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__51190); +cljs.core.chunk_append(b__51191,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__41036 = (i__41020 + (1)); -i__41020 = G__41036; +var G__51211 = (i__51190 + (1)); +i__51190 = G__51211; continue; } else { return true; @@ -284,13 +368,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__41021),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.chunk_rest(s__41019__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__51191),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.chunk_rest(s__51189__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__41021),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__51191),null); } } else { -var h = cljs.core.first(s__41019__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.rest(s__41019__$2))); +var h = cljs.core.first(s__51189__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.rest(s__51189__$2))); } } else { return null; @@ -301,42 +385,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__41022(s__41023){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__51192(s__51193){ return (new cljs.core.LazySeq(null,(function (){ -var s__41023__$1 = s__41023; +var s__51193__$1 = s__51193; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__41023__$1); +var temp__5825__auto__ = cljs.core.seq(s__51193__$1); if(temp__5825__auto__){ -var s__41023__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__41023__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__41023__$2); +var s__51193__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__51193__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__51193__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__41025 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__41024 = (0); +var b__51195 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__51194 = (0); while(true){ -if((i__41024 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__41024); -cljs.core.chunk_append(b__41025,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(s__41027){ -return (new cljs.core.LazySeq(null,((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){ +if((i__51194 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__51194); +cljs.core.chunk_append(b__51195,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(s__51197){ +return (new cljs.core.LazySeq(null,((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__41027__$1 = s__41027; +var s__51197__$1 = s__51197; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__41027__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__51197__$1); if(temp__5825__auto____$1){ -var s__41027__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__41027__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__41027__$2); +var s__51197__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__51197__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__51197__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__41029 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__41028 = (0); +var b__51199 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__51198 = (0); while(true){ -if((i__41028 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__41028); -cljs.core.chunk_append(b__41029,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__51198 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__51198); +cljs.core.chunk_append(b__51199,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__41037 = (i__41028 + (1)); -i__41028 = G__41037; +var G__51212 = (i__51198 + (1)); +i__51198 = G__51212; continue; } else { return true; @@ -344,28 +428,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__41029),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.chunk_rest(s__41027__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__51199),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.chunk_rest(s__51197__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__41029),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__51199),null); } } else { -var h = cljs.core.first(s__41027__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.rest(s__41027__$2))); +var h = cljs.core.first(s__51197__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.rest(s__51197__$2))); } } else { return null; } break; } -});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead)) +});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead)) +});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__41038 = (i__41024 + (1)); -i__41024 = G__41038; +var G__51213 = (i__51194 + (1)); +i__51194 = G__51213; continue; } else { return true; @@ -373,32 +457,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__41025),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.chunk_rest(s__41023__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__51195),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.chunk_rest(s__51193__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__41025),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__51195),null); } } else { -var r = cljs.core.first(s__41023__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (r,s__41023__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(s__41031){ +var r = cljs.core.first(s__51193__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (r,s__51193__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(s__51201){ return (new cljs.core.LazySeq(null,(function (){ -var s__41031__$1 = s__41031; +var s__51201__$1 = s__51201; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__41031__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__51201__$1); if(temp__5825__auto____$1){ -var s__41031__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__41031__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__41031__$2); +var s__51201__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__51201__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__51201__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__41033 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__41032 = (0); +var b__51203 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__51202 = (0); while(true){ -if((i__41032 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__41032); -cljs.core.chunk_append(b__41033,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__51202 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__51202); +cljs.core.chunk_append(b__51203,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__41039 = (i__41032 + (1)); -i__41032 = G__41039; +var G__51214 = (i__51202 + (1)); +i__51202 = G__51214; continue; } else { return true; @@ -406,13 +490,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__41033),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.chunk_rest(s__41031__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__51203),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.chunk_rest(s__51201__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__41033),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__51203),null); } } else { -var h = cljs.core.first(s__41031__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.rest(s__41031__$2))); +var h = cljs.core.first(s__51201__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.rest(s__51201__$2))); } } else { return null; @@ -420,10 +504,10 @@ return null; break; } }),null,null)); -});})(r,s__41023__$2,temp__5825__auto__,header,thead)) +});})(r,s__51193__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.rest(s__41023__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.rest(s__51193__$2))); } } else { return null; @@ -443,7 +527,7 @@ return null; }); intemporal.doc.init = (function intemporal$doc$init(){ var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); -var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow"], 0)); +var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow",new cljs.core.Keyword(null,"protocols","protocols",-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0)); return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){ console.log("res",cljs.core.clj__GT_js(r)); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index db55e02..7f74e58 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAQA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAIA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN,AAIA,6BAAA,7BAAMY,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,WAAepF;IAAfqF,WAAA;AAAA,AAAA,gIAAAD,SAAAC,mDAAAD,SAAAC,7LAACC,6DAAAA,gFAAAA;;IAEJC,OAAK,GAAA,mFAAA,tFAACN;IACNO,OAAK,sBAAA,tBAAC5F,mBAAIuF;AAJhB,AAKE,OAAAM,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,iCAAA,WAAQE,jBAAGL;AAAX,AAAA,OAAAE,wBAAA,AAAAC,iCAAA,WACQG,jBAAGL;AADX,AAAA,OAAAE,2BAEE,oDAAA,mFAAA,vIAACI,oMACKF,qDACAC;;;;;AAKZ,gCAAA,hCAAME,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,IAAMC,SAAO,AAACC,eAAK,AAACC,gBAAMH;YAA1B,mFAAA,uDAAA,mFAAA,rOACMI,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAE,qBAAA,AAAAlD,cAAAgD;AAAA,AAAA,GAAAE;AAAA,AAAA,IAAAF,eAAAE;AAAA,AAAA,GAAA,AAAAC,6BAAAH;AAAA,IAAAI,kBAm6EmC,AAAA8C,sBAAAlD;IAn6EnCK,qBAAA,AAAA5E,gBAAA2E;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAAhD,eAAA+C,gBAAAI,nCAAMQ;AAAN,AAAA,AAAA,AAAAP,uBAAAH,SAAA,mFAAA,iDAAqBU;;AAArB,eAAA,CAAAR,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAb;;AAAA,OAAAU,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAT,gBAAAG,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAF,gDAAA,AAAAG,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQJ;;YAHtB,mFAAA,3FAIMsB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAhB,qBAAA,AAAAlD,cAAAkE;AAAA,AAAA,GAAAhB;AAAA,AAAA,IAAAgB,eAAAhB;AAAA,AAAA,GAAA,AAAAC,6BAAAe;AAAA,IAAAd,kBAi6EoC,AAAA8C,sBAAAhC;IAj6EpCb,qBAAA,AAAA5E,gBAAA2E;IAAAe,WAAA,AAAAZ,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAe,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAf;AAAA,QAAA,AAAAhD,eAAA+C,gBAAAgB,nCAAME;AAAN,AAAA,AAAA,AAAAb,uBAAAU,SAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACI,eAAK,8CAAA,9CAAC1H,4CAAIyH,iEACvB,iBAAAvB,qBAAA;+EAAAyB;AAAA,AAAA,YAAAvB,kBAAA,KAAA;;AAAA,AAAA,IAAAuB,eAAAA;;AAAA,AAAA,IAAAtB,yBAAA,AAAAlD,cAAAwE;AAAA,AAAA,GAAAtB;AAAA,AAAA,IAAAsB,eAAAtB;AAAA,AAAA,GAAA,AAAAC,6BAAAqB;AAAA,IAAApB,sBA+5EiC,AAAA8C,sBAAA1B;IA/5EjCnB,yBAAA,AAAA5E,gBAAA2E;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAAhD,eAAA+C,oBAAAsB,vCAAMV;AAAN,AAAA,AAAA,AAAAP,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAACnI,4CAAIyH,EAAEN;;AADtB,eAAA,CAAAU,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAA5B,gBAAA2B,pBAAMR;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAa,8DAAA,AAAAZ,eAAAS,pPACO,AAACQ,wGAAO,AAACnI,4CAAIyH,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;;;AAFX,eAAA,CAAAyB,WAAA;;;;AAAA;;;;;AAAA,OAAAV,qBAAA,AAAAC,gBAAAQ,UAAA,AAAAE,gDAAA,AAAAR,qBAAAK;;AAAA,OAAAR,qBAAA,AAAAC,gBAAAQ,UAAA;;;AAAA,QAAA,AAAAtB,gBAAAqB,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACS,eAAK,8CAAA,9CAAC1H,4CAAIyH,iEACvB,iBAAAvB,qBAAA;+EAAA6B;AAAA,AAAA,YAAA3B,kBAAA,KAAA;AAAA,AAAA,IAAA2B,eAAAA;;AAAA,AAAA,IAAA1B,yBAAA,AAAAlD,cAAA4E;AAAA,AAAA,GAAA1B;AAAA,AAAA,IAAA0B,eAAA1B;AAAA,AAAA,GAAA,AAAAC,6BAAAyB;AAAA,IAAAxB,kBA+5EiC,AAAA8C,sBAAAtB;IA/5EjCvB,qBAAA,AAAA5E,gBAAA2E;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAAhD,eAAA+C,gBAAA0B,nCAAMd;AAAN,AAAA,AAAA,AAAAP,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAACnI,4CAAIyH,EAAEN;;AADtB,eAAA,CAAAc,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAhC,gBAAA+B,pBAAMZ;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAiB,8DAAA,AAAAhB,eAAAa,pPACO,AAACI,wGAAO,AAACnI,4CAAIyH,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQJ;aAFX,AAAA0B,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQL;;IAIfuC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGpC,gFACAmB;AAZf,AAaE,OAAC7B,8BAAUC,GAAG4C;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AAAA;;AASF,sBAAA,tBAAMG;AAAN,AACE,IAAMJ,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACK;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,1TAACC,oEAA0BP,OAAOhE;AAD/C,yGAIMsE,hDACA,AAACE,oDAAO,WAAKtB,xHAKb,OAAC0B;AALO,AACE,YAAA,ZAACH,kBAAqB,AAACC,qBAAQxB;;AAC/B,AAAC9B,iCAAa,AAACuD,yGAAQzB;;AACvB,iDAAA,1CAACa,mCAAeC;IAEjB,WAAKd;AAAL,AACE,cAAA,dAAC2B,sBAAyB3B;;AAC1B,OAAC9B,iCAAa,AAACuD,yGAAQzB;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k41003","else__5326__auto__","G__41007","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__41008","vec__41009","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__41002","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this41004","other41005","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__41012","cljs.core/keyword-identical?","expr__41013","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__41006","extmap__5365__auto__","G__41015","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","G__41016","G__41017","intemporal.doc/stub-protocol","sres","pres","promesa.protocols/-mcat","promesa.protocols/-promise","___30499__auto__","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","cljs.core/keys","cljs.core/first","thead","iter__5503__auto__","s__41019","cljs.core/LazySeq","temp__5825__auto__","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__41021","cljs.core/chunk-buffer","i__41020","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__41018","cljs.core/chunk-rest","cljs.core/cons","cljs.core/rest","h","tbody","s__41023","b__41025","i__41024","iter__41022","r","cljs.core/name","s__41027","b__41029","i__41028","iter__41026","s__41031","b__41033","i__41032","iter__41030","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","promesa.core.then","js/console.log","cljs.core/clj->js","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (stub-protocol MyActivities {})\n\n sres (sf [1])\n pres (foo pr :X)]\n (p/let [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header (keys (first rows))\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr {:class (name (get r :type))}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n #_#_#_#_\n (render-table! \"tasks\" tasks)\n (render-table! \"events\" events)\n (js/console.table (clj->js tasks))\n (js/console.table (clj->js events))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\")]\n\n ;; set-results!\n (-> res\n (p/then (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AASA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,OAAAY,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,iCAAA,WAAQE,jBAAGL;AAAX,AAAA,OAAAE,wBAAA,AAAAC,iCAAA,WACQG,jBAAGL;AADX,AAAA,OAAAE,2BAEE,oDAAA,mFAAA,vIAACI,oMACKF,qDACAC;;;;;AAKZ,gCAAA,hCAAME,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,IAAMC,SAAO,AAACC,eAAK,AAACC,gBAAMH;YAA1B,mFAAA,uDAAA,mFAAA,rOACMI,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAA1B,qBAAA,AAAA5B,cAAAsD;AAAA,AAAA,GAAA1B;AAAA,AAAA,IAAA0B,eAAA1B;AAAA,AAAA,GAAA,AAAA4B,6BAAAF;AAAA,IAAAG,kBAi6EmC,AAAA8C,sBAAAjD;IAj6EnCI,qBAAA,AAAAjF,gBAAAgF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAArD,eAAAoD,gBAAAI,nCAAMQ;AAAN,AAAA,AAAA,AAAAP,uBAAAH,SAAA,mFAAA,iDAAqBU;;AAArB,eAAA,CAAAR,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAR,gBAAAG,pBAAMe;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAF,gDAAA,AAAAG,eAAAd,zEAAqBe;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAhB,mBAAQJ;;YAHtB,mFAAA,3FAIMqB,iJACO,iBAAAjB,qBAAA,0DAAAkB;AAAA,AAAA,YAAAhB,kBAAA,KAAA;AAAA,AAAA,IAAAgB,eAAAA;;AAAA,AAAA,IAAA3C,qBAAA,AAAA5B,cAAAuE;AAAA,AAAA,GAAA3C;AAAA,AAAA,IAAA2C,eAAA3C;AAAA,AAAA,GAAA,AAAA4B,6BAAAe;AAAA,IAAAd,kBA+5EoC,AAAA8C,sBAAAhC;IA/5EpCb,qBAAA,AAAAjF,gBAAAgF;IAAAe,WAAA,AAAAZ,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAe,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAf;AAAA,QAAA,AAAArD,eAAAoD,gBAAAgB,nCAAME;AAAN,AAAA,AAAA,AAAAb,uBAAAU,SAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACI,eAAK,8CAAA,9CAAC/H,4CAAI8H,iEACvB,iBAAAtB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAjD,yBAAA,AAAA5B,cAAA6E;AAAA,AAAA,GAAAjD;AAAA,AAAA,IAAAiD,eAAAjD;AAAA,AAAA,GAAA,AAAA4B,6BAAAqB;AAAA,IAAApB,sBA65EiC,AAAA8C,sBAAA1B;IA75EjCnB,yBAAA,AAAAjF,gBAAAgF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAArD,eAAAoD,oBAAAsB,vCAAMV;AAAN,AAAA,AAAA,AAAAP,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAACxI,4CAAI8H,EAAEN;;AADtB,eAAA,CAAAU,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAA3B,gBAAA0B,pBAAMR;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAa,8DAAA,AAAAZ,eAAAS,pPACO,AAACQ,wGAAO,AAACxI,4CAAI8H,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAhB,mBAAQJ;;;AAFX,eAAA,CAAAwB,WAAA;;;;AAAA;;;;;AAAA,OAAAV,qBAAA,AAAAC,gBAAAQ,UAAA,AAAAE,gDAAA,AAAAR,qBAAAK;;AAAA,OAAAR,qBAAA,AAAAC,gBAAAQ,UAAA;;;AAAA,QAAA,AAAArB,gBAAAoB,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACS,eAAK,8CAAA,9CAAC/H,4CAAI8H,iEACvB,iBAAAtB,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAArD,yBAAA,AAAA5B,cAAAiF;AAAA,AAAA,GAAArD;AAAA,AAAA,IAAAqD,eAAArD;AAAA,AAAA,GAAA,AAAA4B,6BAAAyB;AAAA,IAAAxB,kBA65EiC,AAAA8C,sBAAAtB;IA75EjCvB,qBAAA,AAAAjF,gBAAAgF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAArD,eAAAoD,gBAAA0B,nCAAMd;AAAN,AAAA,AAAA,AAAAP,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAACxI,4CAAI8H,EAAEN;;AADtB,eAAA,CAAAc,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAA/B,gBAAA8B,pBAAMZ;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAiB,8DAAA,AAAAhB,eAAAa,pPACO,AAACI,wGAAO,AAACxI,4CAAI8H,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAhB,mBAAQJ;aAFX,AAAAyB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAlB,mBAAQL;;IAIfsC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAkB;AAZf,AAaE,OAAC5B,8BAAUC,GAAG2C;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AAAA;;AASF,sBAAA,tBAAMG;AAAN,AACE,IAAMJ,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACK;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BP,OAAOrE,uWACK/E,4BAAa,AAAC4E;AAFlE,yGAKM8E,hDACA,AAACE,oDAAO,WAAKtB,xHAKb,OAAC0B;AALO,AACE,YAAA,ZAACH,kBAAqB,AAACC,qBAAQxB;;AAC/B,AAAC7B,iCAAa,AAACsD,yGAAQzB;;AACvB,iDAAA,1CAACa,mCAAeC;IAEjB,WAAKd;AAAL,AACE,cAAA,dAAC2B,sBAAyB3B;;AAC1B,OAAC7B,iCAAa,AAACsD,yGAAQzB;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k51169","else__5326__auto__","G__51173","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__51174","vec__51175","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__51168","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this51170","other51171","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__51178","cljs.core/keyword-identical?","expr__51179","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__51172","extmap__5365__auto__","G__51181","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols51182","intemporal.internal.context/current-context","registry51183","temp__5825__auto__","impl51184","intemporal.internal.activity.register_activity_BANG_","args__50905__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc51185","sres","pres","promesa.protocols/-mcat","promesa.protocols/-promise","___30394__auto__","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","cljs.core/keys","cljs.core/first","thead","iter__5503__auto__","s__51189","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__51191","cljs.core/chunk-buffer","i__51190","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__51188","cljs.core/chunk-rest","cljs.core/cons","cljs.core/rest","h","tbody","s__51193","b__51195","i__51194","iter__51192","r","cljs.core/name","s__51197","b__51199","i__51198","iter__51196","s__51201","b__51203","i__51202","iter__51200","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","promesa.core.then","js/console.log","cljs.core/clj->js","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (p/let [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header (keys (first rows))\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr {:class (name (get r :type))}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n #_#_#_#_\n (render-table! \"tasks\" tasks)\n (render-table! \"events\" events)\n (js/console.table (clj->js tasks))\n (js/console.table (clj->js events))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (p/then (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 7b355b1..21ab185 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn null;\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_41034 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_41034(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k41003,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__41007 \x3d k41003;\nswitch (G__41007) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k41003,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__41008){\nvar vec__41009 \x3d p__41008;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41009,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__41002){\nvar self__ \x3d this;\nvar G__41002__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__41002__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this41004,other41005){\nvar self__ \x3d this;\nvar this41004__$1 \x3d this;\nreturn (((!((other41005 \x3d\x3d null)))) \x26\x26 ((((this41004__$1.constructor \x3d\x3d\x3d other41005.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this41004__$1.__extmap,other41005.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k41003){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k41003);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__41002){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__41012 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__41013 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__41002),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__41002){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__41002,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__41006){\nvar extmap__5365__auto__ \x3d (function (){var G__41015 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__41006);\nif(cljs.core.record_QMARK_(G__41006)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__41015);\n} else {\nreturn G__41015;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var G__41016 \x3d intemporal.doc.MyActivities;\nvar G__41017 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2 ? intemporal.doc.stub_protocol.cljs$core$IFn$_invoke$arity$2(G__41016,G__41017) : intemporal.doc.stub_protocol.call(null,G__41016,G__41017));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d intemporal.doc.foo(pr,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){\nreturn promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)));\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__41018(s__41019){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41019__$1 \x3d s__41019;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__41019__$1);\nif(temp__5825__auto__){\nvar s__41019__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__41019__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41019__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41021 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41020 \x3d (0);\nwhile(true){\nif((i__41020 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__41020);\ncljs.core.chunk_append(b__41021,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__41036 \x3d (i__41020 + (1));\ni__41020 \x3d G__41036;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41021),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.chunk_rest(s__41019__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41021),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41019__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__41018(cljs.core.rest(s__41019__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__41022(s__41023){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41023__$1 \x3d s__41023;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__41023__$1);\nif(temp__5825__auto__){\nvar s__41023__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__41023__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41023__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41025 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41024 \x3d (0);\nwhile(true){\nif((i__41024 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__41024);\ncljs.core.chunk_append(b__41025,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(s__41027){\nreturn (new cljs.core.LazySeq(null,((function (i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__41027__$1 \x3d s__41027;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__41027__$1);\nif(temp__5825__auto____$1){\nvar s__41027__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__41027__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__41027__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__41029 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__41028 \x3d (0);\nwhile(true){\nif((i__41028 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__41028);\ncljs.core.chunk_append(b__41029,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__41037 \x3d (i__41028 + (1));\ni__41028 \x3d G__41037;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41029),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.chunk_rest(s__41027__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41029),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41027__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41026(cljs.core.rest(s__41027__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__41024,r,c__5501__auto__,size__5502__auto__,b__41025,s__41023__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__41038 \x3d (i__41024 + (1));\ni__41024 \x3d G__41038;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41025),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.chunk_rest(s__41023__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41025),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__41023__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__41023__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(s__41031){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__41031__$1 \x3d s__41031;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__41031__$1);\nif(temp__5825__auto____$1){\nvar s__41031__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__41031__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__41031__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__41033 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__41032 \x3d (0);\nwhile(true){\nif((i__41032 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__41032);\ncljs.core.chunk_append(b__41033,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__41039 \x3d (i__41032 + (1));\ni__41032 \x3d G__41039;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41033),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.chunk_rest(s__41031__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__41033),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__41031__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__41022_$_iter__41030(cljs.core.rest(s__41031__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__41023__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__41022(cljs.core.rest(s__41023__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_51204 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_51204(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k51169,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__51173 \x3d k51169;\nswitch (G__51173) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k51169,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__51174){\nvar vec__51175 \x3d p__51174;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__51168){\nvar self__ \x3d this;\nvar G__51168__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__51168__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this51170,other51171){\nvar self__ \x3d this;\nvar this51170__$1 \x3d this;\nreturn (((!((other51171 \x3d\x3d null)))) \x26\x26 ((((this51170__$1.constructor \x3d\x3d\x3d other51171.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this51170__$1.__extmap,other51171.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k51169){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k51169);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__51168){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__51178 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__51179 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__51168),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__51168){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__51168,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__51172){\nvar extmap__5365__auto__ \x3d (function (){var G__51181 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__51172);\nif(cljs.core.record_QMARK_(G__51172)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__51181);\n} else {\nreturn G__51181;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc51185 \x3d (function (i,sf,protocols51182,registry51183,meta51186){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols51182 \x3d protocols51182;\nthis.registry51183 \x3d registry51183;\nthis.meta51186 \x3d meta51186;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_51187,meta51186__$1){\nvar self__ \x3d this;\nvar _51187__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc51185(self__.i,self__.sf,self__.protocols51182,self__.registry51183,meta51186__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_51187){\nvar self__ \x3d this;\nvar _51187__$1 \x3d this;\nreturn self__.meta51186;\n}));\n\n(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__50906__auto__,a){\nvar self__ \x3d this;\nvar this__50906__auto____$1 \x3d this;\nvar f__50907__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,18,19,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__50907__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc51185.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols51182\x22,\x22protocols51182\x22,-434579569,null),new cljs.core.Symbol(null,\x22registry51183\x22,\x22registry51183\x22,-2083177811,null),new cljs.core.Symbol(null,\x22meta51186\x22,\x22meta51186\x22,2123713693,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc51185\x22);\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc51185\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc51185.\n */\nintemporal.doc.__GT_t_intemporal$doc51185 \x3d (function intemporal$doc$__GT_t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186){\nreturn (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols51182 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry51183 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___51206 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols51182,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___51206)){\nvar impl51184_51207 \x3d temp__5825__auto___51206;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry51183,(function() { \nvar G__51208__delegate \x3d function (args__50905__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl51184_51207,args__50905__auto__);\n};\nvar G__51208 \x3d function (var_args){\nvar args__50905__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51209__i \x3d 0, G__51209__a \x3d new Array(arguments.length - 0);\nwhile (G__51209__i \x3c G__51209__a.length) {G__51209__a[G__51209__i] \x3d arguments[G__51209__i + 0]; ++G__51209__i;}\n args__50905__auto__ \x3d new cljs.core.IndexedSeq(G__51209__a,0,null);\n} \nreturn G__51208__delegate.call(this,args__50905__auto__);};\nG__51208.cljs$lang$maxFixedArity \x3d 0;\nG__51208.cljs$lang$applyTo \x3d (function (arglist__51210){\nvar args__50905__auto__ \x3d cljs.core.seq(arglist__51210);\nreturn G__51208__delegate(args__50905__auto__);\n});\nG__51208.cljs$core$IFn$_invoke$arity$variadic \x3d G__51208__delegate;\nreturn G__51208;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){\nreturn promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)));\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__51188(s__51189){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51189__$1 \x3d s__51189;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__51189__$1);\nif(temp__5825__auto__){\nvar s__51189__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__51189__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51189__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51191 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51190 \x3d (0);\nwhile(true){\nif((i__51190 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__51190);\ncljs.core.chunk_append(b__51191,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__51211 \x3d (i__51190 + (1));\ni__51190 \x3d G__51211;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51191),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.chunk_rest(s__51189__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51191),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51189__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.rest(s__51189__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__51192(s__51193){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51193__$1 \x3d s__51193;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__51193__$1);\nif(temp__5825__auto__){\nvar s__51193__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__51193__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51193__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51195 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51194 \x3d (0);\nwhile(true){\nif((i__51194 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__51194);\ncljs.core.chunk_append(b__51195,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(s__51197){\nreturn (new cljs.core.LazySeq(null,((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__51197__$1 \x3d s__51197;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__51197__$1);\nif(temp__5825__auto____$1){\nvar s__51197__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__51197__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__51197__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__51199 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__51198 \x3d (0);\nwhile(true){\nif((i__51198 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__51198);\ncljs.core.chunk_append(b__51199,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__51212 \x3d (i__51198 + (1));\ni__51198 \x3d G__51212;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51199),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.chunk_rest(s__51197__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51199),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51197__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.rest(s__51197__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__51213 \x3d (i__51194 + (1));\ni__51194 \x3d G__51213;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51195),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.chunk_rest(s__51193__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51195),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__51193__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(s__51201){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51201__$1 \x3d s__51201;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__51201__$1);\nif(temp__5825__auto____$1){\nvar s__51201__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__51201__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51201__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51203 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51202 \x3d (0);\nwhile(true){\nif((i__51202 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__51202);\ncljs.core.chunk_append(b__51203,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__51214 \x3d (i__51202 + (1));\ni__51202 \x3d G__51214;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51203),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.chunk_rest(s__51201__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51203),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51201__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.rest(s__51201__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__51193__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.rest(s__51193__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/manifest.edn b/public/js/manifest.edn index 2471cc6..82f674e 100644 --- a/public/js/manifest.edn +++ b/public/js/manifest.edn @@ -1 +1 @@ -[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "intemporal/internal/error.cljc" "intemporal/protocol.cljc" "intemporal/internal/context.cljc" "intemporal/internal/activity.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/internal/logging.cljc" "intemporal/utils.cljc" "intemporal/internal/runtime.cljs" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "intemporal/internal/execution.cljs" "intemporal/internal/fns/start_workflow.cljs" "intemporal/store.cljc" "intemporal/observer.cljc" "intemporal/core.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file +[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "intemporal/internal/error.cljc" "intemporal/protocol.cljc" "intemporal/internal/context.cljc" "intemporal/internal/activity.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/internal/logging.cljc" "intemporal/utils.cljc" "intemporal/internal/runtime.cljs" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "intemporal/internal/execution.cljs" "intemporal/internal/fns/start_workflow.cljs" "intemporal/store.cljc" "intemporal/observer.cljc" "cljs/analyzer/impl.cljc" "cljs/analyzer/impl/namespaces.cljc" "cljs/analyzer/passes.cljc" "cljs/analyzer/passes/and_or.cljc" "cljs/env.cljc" "cljs/tagged_literals.cljc" "cljs/analyzer.cljc" "cljs/analyzer/api.cljc" "intemporal/internal/macros.cljc" "intemporal/core.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index e48a97d..e4a582f 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1,7 +1,7 @@ var shadow$provide = {}; var CLOSURE_NO_DEPS = true; var CLOSURE_BASE_PATH = '/js/cljs-runtime/'; -var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"70dcb574-f2fa-4957-900d-46780b2340be","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"3563441f-7854-4ff2-87a8-23fca905f33a","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; +var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"ca52f27a-340e-4cce-81e2-b59dc48d44ba","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"e179fad4-9a46-4363-80dc-bc50e6bc22ca","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; var COMPILED = false; var goog = goog || {}; goog.global = this || self; @@ -1535,10 +1535,10 @@ SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.shared.js", true, "goog.provide SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.hud.js", true, "goog.provide(\x27shadow.cljs.devtools.client.hud\x27);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_progress \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_progress\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_warnings \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_warnings\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_errors \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_errors\x22,true);\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud.dom_available_QMARK_ !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.hud.dom_available_QMARK_ \x3d (!((goog.global.document \x3d\x3d null)));\n}\nshadow.cljs.devtools.client.hud.open_file \x3d (function shadow$cljs$devtools$client$hud$open_file(file,line,column){\nconsole.log(\x22opening file\x22,file,line,column);\n\nreturn fetch([shadow.cljs.devtools.client.env.get_url_base(),\x22/api/open-file\x22].join(\x27\x27),({\x22method\x22: \x22POST\x22, \x22cache\x22: \x22no-cache\x22, \x22mode\x22: \x22cors\x22, \x22body\x22: shadow.cljs.devtools.client.shared.transit_str(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null))})).then((function (p1__43001_SHARP_){\nreturn p1__43001_SHARP_.text();\n})).then((function (result_text){\nvar data \x3d shadow.cljs.devtools.client.shared.transit_read(cljs.core.PersistentArrayMap.EMPTY,result_text);\nreturn console.log(\x22open file result\x22,data);\n}));\n});\nshadow.cljs.devtools.client.hud.dom_insert \x3d (function shadow$cljs$devtools$client$hud$dom_insert(var_args){\nvar G__43006 \x3d arguments.length;\nswitch (G__43006) {\ncase 1:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1 \x3d (function (node){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2(document.body,node);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2 \x3d (function (where,node){\nvar el \x3d shadow.dom.dom_node(node);\nvar id \x3d el.id;\nif(cljs.core.seq(id)){\n} else {\nthrow (new Error(\x22Assert failed: (seq id)\x22));\n}\n\nvar temp__5829__auto___43134 \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(id);\nif((temp__5829__auto___43134 \x3d\x3d null)){\n} else {\nvar x_43135 \x3d temp__5829__auto___43134;\nshadow.dom.remove(x_43135);\n}\n\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$2(where,el);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.hud_id \x3d \x22shadow-hud-container\x22;\nshadow.cljs.devtools.client.hud.load_id \x3d \x22shadow-hud-loading-container\x22;\nshadow.cljs.devtools.client.hud.logo_svg \x3d (new cljs.core.Delay((function (){\nvar s_path \x3d \x22M247.183941,141.416413 C247.183941,74.7839971 148.383423,78.9723529 148.383423,141.416413 C148.383423,203.860473 265.090698,171.864644 265.090698,248.900057 C265.090698,325.93547 135,325.851749 135,251.708304\x22;\nreturn shadow.dom.svg.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),\x22shadow-cljs-logo\x22,new cljs.core.Keyword(null,\x22version\x22,\x22version\x22,425292698),\x221.1\x22,new cljs.core.Keyword(null,\x22viewBox\x22,\x22viewBox\x22,-469489477),\x220 0 400 400\x22,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),\x22block\x22], null),new cljs.core.Keyword(null,\x22height\x22,\x22height\x22,1025178622),\x2260px\x22,new cljs.core.Keyword(null,\x22width\x22,\x22width\x22,-384071477),\x2260px\x22], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22title\x22,\x22title\x22,636505583),\x22shadow-cljs\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22mask#shadow-cljs-logo-mask\x22,\x22mask#shadow-cljs-logo-mask\x22,1690487509),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#fff\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle\x22,\x22circle\x22,1903212362),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22], null)], null)], null)], null),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fill-rule\x22,\x22fill-rule\x22,-1824841598),\x22evenodd\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22none\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x220\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22none\x22,new cljs.core.Keyword(null,\x22mask\x22,\x22mask\x22,-585748447),\x22url(#shadow-cljs-logo-mask)\x22], null),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g.circles\x22,\x22g.circles\x22,374463200),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.blue\x22,\x22circle.blue\x22,1902916291),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#4F80DF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-blue\x22,\x22circle.light-blue\x22,438137342),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x2271.5\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22370\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#89B4FF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.dark-green\x22,\x22circle.dark-green\x22,608465767),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22180\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22360\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x2260\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#40B400\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-green\x22,\x22circle.light-green\x22,-1663041285),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22129\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22320\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22280\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#76E013\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22animateTransform\x22,\x22animateTransform\x22,759329815),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22attributeType\x22,\x22attributeType\x22,1055561918),\x22xml\x22,new cljs.core.Keyword(null,\x22attributeName\x22,\x22attributeName\x22,-400177890),\x22transform\x22,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22rotate\x22,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),\x220 200 200\x22,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),\x22360 200 200\x22,new cljs.core.Keyword(null,\x22dur\x22,\x22dur\x22,1464522452),\x223s\x22,new cljs.core.Keyword(null,\x22repeatCount\x22,\x22repeatCount\x22,1447663848),\x22indefinite\x22], null)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),\x22translate(10,10)\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#aaa\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#FFFFFF\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null)], 0));\n}),null));\nshadow.cljs.devtools.client.hud.load_start \x3d (function shadow$cljs$devtools$client$hud$load_start(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.load_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),\x2240px\x22,new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),\x2240px\x22,new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),\x222px 2px 10px #aaa\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22], null)], null),cljs.core.deref(shadow.cljs.devtools.client.hud.logo_svg)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end_success \x3d (function shadow$cljs$devtools$client$hud$load_end_success(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar container_el \x3d temp__5829__auto__;\nvar el \x3d container_el.firstChild;\nshadow.animate.start((500),cljs.core.PersistentArrayMap.createAsIfByAssoc([el,shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,\x22#40B400\x22,\x22ease-out\x22)]));\n\nvar c__31339__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__31340__auto__ \x3d (function (){var switch__30106__auto__ \x3d (function (state_43050){\nvar state_val_43051 \x3d (state_43050[(1)]);\nif((state_val_43051 \x3d\x3d\x3d (1))){\nvar inst_43036 \x3d cljs.core.async.timeout((250));\nvar state_43050__$1 \x3d state_43050;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_43050__$1,(2),inst_43036);\n} else {\nif((state_val_43051 \x3d\x3d\x3d (2))){\nvar inst_43038 \x3d (state_43050[(2)]);\nvar inst_43039 \x3d [el];\nvar inst_43041 \x3d shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22opacity\x22,\x22opacity\x22,397153780),\x221\x22,\x220\x22,\x22ease-in\x22);\nvar inst_43042 \x3d [inst_43041];\nvar inst_43043 \x3d cljs.core.PersistentHashMap.fromArrays(inst_43039,inst_43042);\nvar inst_43045 \x3d shadow.animate.start((250),inst_43043);\nvar state_43050__$1 \x3d (function (){var statearr_43053 \x3d state_43050;\n(statearr_43053[(7)] \x3d inst_43038);\n\nreturn statearr_43053;\n})();\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_43050__$1,(3),inst_43045);\n} else {\nif((state_val_43051 \x3d\x3d\x3d (3))){\nvar inst_43047 \x3d (state_43050[(2)]);\nvar inst_43048 \x3d shadow.dom.remove(container_el);\nvar state_43050__$1 \x3d (function (){var statearr_43056 \x3d state_43050;\n(statearr_43056[(8)] \x3d inst_43047);\n\nreturn statearr_43056;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_43050__$1,inst_43048);\n} else {\nreturn null;\n}\n}\n}\n});\nreturn (function() {\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__ \x3d null;\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0 \x3d (function (){\nvar statearr_43059 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_43059[(0)] \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__);\n\n(statearr_43059[(1)] \x3d (1));\n\nreturn statearr_43059;\n});\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1 \x3d (function (state_43050){\nwhile(true){\nvar ret_value__30108__auto__ \x3d (function (){try{while(true){\nvar result__30109__auto__ \x3d switch__30106__auto__(state_43050);\nif(cljs.core.keyword_identical_QMARK_(result__30109__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__30109__auto__;\n}\nbreak;\n}\n}catch (e43060){var ex__30110__auto__ \x3d e43060;\nvar statearr_43061_43141 \x3d state_43050;\n(statearr_43061_43141[(2)] \x3d ex__30110__auto__);\n\n\nif(cljs.core.seq((state_43050[(4)]))){\nvar statearr_43062_43142 \x3d state_43050;\n(statearr_43062_43142[(1)] \x3d cljs.core.first((state_43050[(4)])));\n\n} else {\nthrow ex__30110__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__30108__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__43144 \x3d state_43050;\nstate_43050 \x3d G__43144;\ncontinue;\n} else {\nreturn ret_value__30108__auto__;\n}\nbreak;\n}\n});\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__ \x3d function(state_43050){\nswitch(arguments.length){\ncase 0:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0.call(this);\ncase 1:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1.call(this,state_43050);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__.cljs$core$IFn$_invoke$arity$0 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____0;\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__.cljs$core$IFn$_invoke$arity$1 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto____1;\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__30107__auto__;\n})()\n})();\nvar state__31341__auto__ \x3d (function (){var statearr_43063 \x3d f__31340__auto__();\n(statearr_43063[(6)] \x3d c__31339__auto__);\n\nreturn statearr_43063;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__31341__auto__);\n}));\n\nreturn c__31339__auto__;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end \x3d (function shadow$cljs$devtools$client$hud$load_end(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar el \x3d temp__5829__auto__;\nreturn shadow.dom.remove(el);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_hide \x3d (function shadow$cljs$devtools$client$hud$hud_hide(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.hud_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar d \x3d temp__5829__auto__;\nreturn shadow.dom.remove(d);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.source_line_styles \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x220\x22,new cljs.core.Keyword(null,\x22margin\x22,\x22margin\x22,-995903681),\x220\x22], null);\nshadow.cljs.devtools.client.hud.source_highlight_styles \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.hud.source_line_styles,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22);\nshadow.cljs.devtools.client.hud.source_line_html \x3d (function shadow$cljs$devtools$client$hud$source_line_html(start_idx,lines,styles){\nvar iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(s__43070){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43070__$1 \x3d s__43070;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43070__$1);\nif(temp__5825__auto__){\nvar s__43070__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__43070__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43070__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43072 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43071 \x3d (0);\nwhile(true){\nif((i__43071 \x3c size__5502__auto__)){\nvar vec__43073 \x3d cljs.core._nth(c__5501__auto__,i__43071);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43073,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43073,(1),null);\ncljs.core.chunk_append(b__43072,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null));\n\nvar G__43153 \x3d (i__43071 + (1));\ni__43071 \x3d G__43153;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43072),shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(cljs.core.chunk_rest(s__43070__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43072),null);\n}\n} else {\nvar vec__43077 \x3d cljs.core.first(s__43070__$2);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43077,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__43077,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null),shadow$cljs$devtools$client$hud$source_line_html_$_iter__43069(cljs.core.rest(s__43070__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,lines));\n});\nshadow.cljs.devtools.client.hud.sep_length \x3d (80);\nshadow.cljs.devtools.client.hud.sep_line \x3d (function shadow$cljs$devtools$client$hud$sep_line(var_args){\nvar G__43085 \x3d arguments.length;\nswitch (G__43085) {\ncase 0:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22\x22,(0));\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2 \x3d (function (label,offset){\nvar sep_len \x3d Math.max(shadow.cljs.devtools.client.hud.sep_length,offset);\nvar len \x3d cljs.core.count(label);\nvar sep \x3d (function (c){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x22,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,\x22-\x22));\n});\nreturn [sep(offset),cljs.core.str.cljs$core$IFn$_invoke$arity$1(label),sep((sep_len - (offset + len)))].join(\x27\x27);\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.file_link \x3d (function shadow$cljs$devtools$client$hud$file_link(p__43089){\nvar map__43090 \x3d p__43089;\nvar map__43090__$1 \x3d cljs.core.__destructure_map(map__43090);\nvar warning \x3d map__43090__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43090__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nif(cljs.core.not(file)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),resource_name], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22text-decoration\x22,\x22text-decoration\x22,1836813207),\x22underline\x22,new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),\x22blue\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),(function (e){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n\nreturn shadow.cljs.devtools.client.hud.open_file(file,line,column);\n})], null)], null),resource_name], null);\n}\n});\nshadow.cljs.devtools.client.hud.html_for_warning \x3d (function shadow$cljs$devtools$client$hud$html_for_warning(p__43096){\nvar map__43097 \x3d p__43096;\nvar map__43097__$1 \x3d cljs.core.__destructure_map(map__43097);\nvar warning \x3d map__43097__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar source_excerpt \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43097__$1,new cljs.core.Keyword(null,\x22source-excerpt\x22,\x22source-excerpt\x22,5665576));\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x2210px\x22], null)], null),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22line-height\x22,\x22line-height\x22,1870784992),\x2216px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fadb64\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),\x22WARNING in \x22], null),shadow.cljs.devtools.client.hud.file_link(warning)], null),(cljs.core.truth_(source_excerpt)?(function (){var map__43098 \x3d source_excerpt;\nvar map__43098__$1 \x3d cljs.core.__destructure_map(map__43098);\nvar start_idx \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22start-idx\x22,\x22start-idx\x22,-1600773745));\nvar before \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22before\x22,\x22before\x22,-1633692388));\nvar line__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar after \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43098__$1,new cljs.core.Keyword(null,\x22after\x22,\x22after\x22,594996914));\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22], null)], null),shadow.cljs.devtools.client.hud.source_line_html(start_idx,before,shadow.cljs.devtools.client.hud.source_line_styles),shadow.cljs.devtools.client.hud.source_line_html((start_idx + cljs.core.count(before)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line__$1], null),shadow.cljs.devtools.client.hud.source_highlight_styles),(function (){var arrow_idx \x3d ((6) + (function (){var or__5025__auto__ \x3d column;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (1);\n}\n})());\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22^\x22,arrow_idx)], null);\n})(),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 0\x22], null)], null),msg], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0()], null),shadow.cljs.devtools.client.hud.source_line_html(((start_idx + cljs.core.count(before)) + (1)),after,shadow.cljs.devtools.client.hud.source_line_styles)], null);\n})():null)], null);\n});\nshadow.cljs.devtools.client.hud.hud_warnings \x3d (function shadow$cljs$devtools$client$hud$hud_warnings(p__43101){\nvar map__43102 \x3d p__43101;\nvar map__43102__$1 \x3d cljs.core.__destructure_map(map__43102);\nvar msg \x3d map__43102__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43102__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43102__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar map__43103 \x3d info;\nvar map__43103__$1 \x3d cljs.core.__destructure_map(map__43103);\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43103__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar sources_with_warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__43100_SHARP_){\nreturn cljs.core.seq(new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651).cljs$core$IFn$_invoke$arity$1(p1__43100_SHARP_));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827),sources)));\nif(cljs.core.seq(sources_with_warnings)){\nshadow.cljs.devtools.client.hud.load_end();\n\nif(shadow.cljs.devtools.client.hud.show_warnings){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22flex-direction\x22,\x22flex-direction\x22,364609438),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x2210000\x22,\x220px\x22,\x22flex\x22,\x22fixed\x22,\x22monospace\x22,\x22column\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22align-self\x22,\x22align-self\x22,1475936794),\x22flex-end\x22,new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22border-bottom\x22,\x22border-bottom\x22,2110948415),\x220px\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x226px\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x22-2px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),shadow.cljs.devtools.client.hud.hud_hide], null)], null),\x22Close\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22flex\x22,\x22flex\x22,-1425124628),\x221\x22,new cljs.core.Keyword(null,\x22max-height\x22,\x22max-height\x22,-612563804),\x22300px\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px 0\x22,new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),\x22auto\x22], null)], null),(function (){var iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105(s__43106){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43106__$1 \x3d s__43106;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43106__$1);\nif(temp__5825__auto__){\nvar xs__6385__auto__ \x3d temp__5825__auto__;\nvar map__43115 \x3d cljs.core.first(xs__6385__auto__);\nvar map__43115__$1 \x3d cljs.core.__destructure_map(map__43115);\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43115__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nvar iterys__5499__auto__ \x3d ((function (s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info){\nreturn (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(s__43108){\nreturn (new cljs.core.LazySeq(null,((function (s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info){\nreturn (function (){\nvar s__43108__$1 \x3d s__43108;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__43108__$1);\nif(temp__5825__auto____$1){\nvar s__43108__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__43108__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43108__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43110 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43109 \x3d (0);\nwhile(true){\nif((i__43109 \x3c size__5502__auto__)){\nvar warning \x3d cljs.core._nth(c__5501__auto__,i__43109);\ncljs.core.chunk_append(b__43110,shadow.cljs.devtools.client.hud.html_for_warning(warning));\n\nvar G__43168 \x3d (i__43109 + (1));\ni__43109 \x3d G__43168;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43110),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(cljs.core.chunk_rest(s__43108__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43110),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__43108__$2);\nreturn cljs.core.cons(shadow.cljs.devtools.client.hud.html_for_warning(warning),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105_$_iter__43107(cljs.core.rest(s__43108__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info))\n,null,null));\n});})(s__43106__$1,map__43115,map__43115__$1,warnings,xs__6385__auto__,temp__5825__auto__,map__43103,map__43103__$1,sources,sources_with_warnings,map__43102,map__43102__$1,msg,type,info))\n;\nvar fs__5500__auto__ \x3d cljs.core.seq(iterys__5499__auto__(warnings));\nif(fs__5500__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5500__auto__,shadow$cljs$devtools$client$hud$hud_warnings_$_iter__43105(cljs.core.rest(s__43106__$1)));\n} else {\nvar G__43169 \x3d cljs.core.rest(s__43106__$1);\ns__43106__$1 \x3d G__43169;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(sources_with_warnings);\n})()], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_error \x3d (function shadow$cljs$devtools$client$hud$hud_error(p__43119){\nvar map__43120 \x3d p__43119;\nvar map__43120__$1 \x3d cljs.core.__destructure_map(map__43120);\nvar msg \x3d map__43120__$1;\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43120__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22top\x22,\x22top\x22,-1856271961),new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x220px\x22,\x22auto\x22,\x22#fff\x22,\x2210000\x22,\x2220px\x22,\x220px\x22,\x22fixed\x22,\x225px solid red\x22,\x22monospace\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),\x22color: red; margin-bottom: 10px; font-size: 2em;\x22], null),\x22Compilation failed!\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),report], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error_id \x3d \x22shadow-connection-error\x22;\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_ \x3d (function shadow$cljs$devtools$client$hud$connection_error_clear_BANG_(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5829__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.connection_error_id);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar x \x3d temp__5829__auto__;\nreturn shadow.dom.remove(x);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error \x3d (function shadow$cljs$devtools$client$hud$connection_error(msg){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.connection_error_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874)],[\x222px 2px 10px #aaa\x22,\x22#fff\x22,\x2214px\x22,\x22bold\x22,\x2240px\x22,\x22#c00\x22,\x2210px\x22,\x2240px\x22,\x22monospace\x22])], null),[\x22shadow-cljs - \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_failure \x3d (function shadow$cljs$devtools$client$hud$load_failure(error,task,remaining){\nshadow.cljs.devtools.client.hud.load_end();\n\nconsole.error(\x22reload-failed\x22,error);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22[reload failed] \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error.message)].join(\x27\x27));\n});\n"); SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.websocket.js", true, "goog.provide(\x27shadow.cljs.devtools.client.websocket\x27);\nshadow.cljs.devtools.client.websocket.start \x3d (function shadow$cljs$devtools$client$websocket$start(var_args){\nvar G__42995 \x3d arguments.length;\nswitch (G__42995) {\ncase 1:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1 \x3d (function (runtime){\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2(WebSocket,runtime);\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2 \x3d (function (ws_impl,runtime){\nvar ws_url \x3d shadow.cljs.devtools.client.env.get_ws_relay_url();\nvar socket \x3d (new ws_impl(ws_url));\n(socket.onmessage \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_msg(runtime,e.data);\n}));\n\n(socket.onopen \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_open(runtime,e);\n}));\n\n(socket.onclose \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_close(runtime,e,ws_url);\n}));\n\n(socket.onerror \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_error(runtime,e);\n}));\n\nreturn socket;\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.websocket.send \x3d (function shadow$cljs$devtools$client$websocket$send(socket,msg){\nreturn socket.send(msg);\n});\nshadow.cljs.devtools.client.websocket.stop \x3d (function shadow$cljs$devtools$client$websocket$stop(socket){\n(socket.onopen \x3d null);\n\n(socket.onclose \x3d null);\n\n(socket.onmessage \x3d null);\n\n(socket.onerror \x3d null);\n\nreturn socket.close();\n});\n"); SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.browser.js", true, "goog.provide(\x27shadow.cljs.devtools.client.browser\x27);\nshadow.cljs.devtools.client.browser.devtools_msg \x3d (function shadow$cljs$devtools$client$browser$devtools_msg(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___44171 \x3d arguments.length;\nvar i__5750__auto___44172 \x3d (0);\nwhile(true){\nif((i__5750__auto___44172 \x3c len__5749__auto___44171)){\nargs__5755__auto__.push((arguments[i__5750__auto___44172]));\n\nvar G__44173 \x3d (i__5750__auto___44172 + (1));\ni__5750__auto___44172 \x3d G__44173;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic \x3d (function (msg,args){\nif(shadow.cljs.devtools.client.env.log){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.log_style)){\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22%cshadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27),shadow.cljs.devtools.client.env.log_style], null),args)));\n} else {\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22shadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null),args)));\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$applyTo \x3d (function (seq43292){\nvar G__43293 \x3d cljs.core.first(seq43292);\nvar seq43292__$1 \x3d cljs.core.next(seq43292);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__43293,seq43292__$1);\n}));\n\nshadow.cljs.devtools.client.browser.script_eval \x3d (function shadow$cljs$devtools$client$browser$script_eval(code){\nreturn goog.globalEval(code);\n});\nshadow.cljs.devtools.client.browser.do_js_load \x3d (function shadow$cljs$devtools$client$browser$do_js_load(sources){\nvar seq__43305 \x3d cljs.core.seq(sources);\nvar chunk__43306 \x3d null;\nvar count__43307 \x3d (0);\nvar i__43308 \x3d (0);\nwhile(true){\nif((i__43308 \x3c count__43307)){\nvar map__43318 \x3d chunk__43306.cljs$core$IIndexed$_nth$arity$2(null,i__43308);\nvar map__43318__$1 \x3d cljs.core.__destructure_map(map__43318);\nvar src \x3d map__43318__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43320){var e_44176 \x3d e43320;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44176);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44176.message)].join(\x27\x27)));\n}\n\nvar G__44179 \x3d seq__43305;\nvar G__44180 \x3d chunk__43306;\nvar G__44181 \x3d count__43307;\nvar G__44182 \x3d (i__43308 + (1));\nseq__43305 \x3d G__44179;\nchunk__43306 \x3d G__44180;\ncount__43307 \x3d G__44181;\ni__43308 \x3d G__44182;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43305);\nif(temp__5825__auto__){\nvar seq__43305__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43305__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43305__$1);\nvar G__44183 \x3d cljs.core.chunk_rest(seq__43305__$1);\nvar G__44184 \x3d c__5548__auto__;\nvar G__44185 \x3d cljs.core.count(c__5548__auto__);\nvar G__44186 \x3d (0);\nseq__43305 \x3d G__44183;\nchunk__43306 \x3d G__44184;\ncount__43307 \x3d G__44185;\ni__43308 \x3d G__44186;\ncontinue;\n} else {\nvar map__43324 \x3d cljs.core.first(seq__43305__$1);\nvar map__43324__$1 \x3d cljs.core.__destructure_map(map__43324);\nvar src \x3d map__43324__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43325){var e_44188 \x3d e43325;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44188);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44188.message)].join(\x27\x27)));\n}\n\nvar G__44190 \x3d cljs.core.next(seq__43305__$1);\nvar G__44191 \x3d null;\nvar G__44192 \x3d (0);\nvar G__44193 \x3d (0);\nseq__43305 \x3d G__44190;\nchunk__43306 \x3d G__44191;\ncount__43307 \x3d G__44192;\ni__43308 \x3d G__44193;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.do_js_reload \x3d (function shadow$cljs$devtools$client$browser$do_js_reload(msg,sources,complete_fn,failure_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(msg,new cljs.core.Keyword(null,\x22log-missing-fn\x22,\x22log-missing-fn\x22,732676765),(function (fn_sym){\nreturn null;\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22log-call-async\x22,\x22log-call-async\x22,183826192),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call async \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22log-call\x22,\x22log-call\x22,412404391),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n})], 0)),(function (next){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n}),complete_fn,failure_fn);\n});\n/**\n * when (require \x27[\x22some-str\x22 :as x]) is done at the REPL we need to manually call the shadow.js.require for it\n * since the file only adds the shadow$provide. only need to do this for shadow-js.\n */\nshadow.cljs.devtools.client.browser.do_js_requires \x3d (function shadow$cljs$devtools$client$browser$do_js_requires(js_requires){\nvar seq__43333 \x3d cljs.core.seq(js_requires);\nvar chunk__43334 \x3d null;\nvar count__43335 \x3d (0);\nvar i__43336 \x3d (0);\nwhile(true){\nif((i__43336 \x3c count__43335)){\nvar js_ns \x3d chunk__43334.cljs$core$IIndexed$_nth$arity$2(null,i__43336);\nvar require_str_44197 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44197);\n\n\nvar G__44201 \x3d seq__43333;\nvar G__44202 \x3d chunk__43334;\nvar G__44203 \x3d count__43335;\nvar G__44204 \x3d (i__43336 + (1));\nseq__43333 \x3d G__44201;\nchunk__43334 \x3d G__44202;\ncount__43335 \x3d G__44203;\ni__43336 \x3d G__44204;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43333);\nif(temp__5825__auto__){\nvar seq__43333__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43333__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43333__$1);\nvar G__44206 \x3d cljs.core.chunk_rest(seq__43333__$1);\nvar G__44207 \x3d c__5548__auto__;\nvar G__44208 \x3d cljs.core.count(c__5548__auto__);\nvar G__44209 \x3d (0);\nseq__43333 \x3d G__44206;\nchunk__43334 \x3d G__44207;\ncount__43335 \x3d G__44208;\ni__43336 \x3d G__44209;\ncontinue;\n} else {\nvar js_ns \x3d cljs.core.first(seq__43333__$1);\nvar require_str_44210 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44210);\n\n\nvar G__44211 \x3d cljs.core.next(seq__43333__$1);\nvar G__44212 \x3d null;\nvar G__44213 \x3d (0);\nvar G__44214 \x3d (0);\nseq__43333 \x3d G__44211;\nchunk__43334 \x3d G__44212;\ncount__43335 \x3d G__44213;\ni__43336 \x3d G__44214;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.handle_build_complete \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete(runtime,p__43350){\nvar map__43351 \x3d p__43350;\nvar map__43351__$1 \x3d cljs.core.__destructure_map(map__43351);\nvar msg \x3d map__43351__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(s__43354){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43354__$1 \x3d s__43354;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43354__$1);\nif(temp__5825__auto__){\nvar xs__6385__auto__ \x3d temp__5825__auto__;\nvar map__43363 \x3d cljs.core.first(xs__6385__auto__);\nvar map__43363__$1 \x3d cljs.core.__destructure_map(map__43363);\nvar src \x3d map__43363__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__5499__auto__ \x3d ((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(s__43356){\nreturn (new cljs.core.LazySeq(null,((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function (){\nvar s__43356__$1 \x3d s__43356;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__43356__$1);\nif(temp__5825__auto____$1){\nvar s__43356__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__43356__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43356__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43358 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43357 \x3d (0);\nwhile(true){\nif((i__43357 \x3c size__5502__auto__)){\nvar warning \x3d cljs.core._nth(c__5501__auto__,i__43357);\ncljs.core.chunk_append(b__43358,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name));\n\nvar G__44220 \x3d (i__43357 + (1));\ni__43357 \x3d G__44220;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.chunk_rest(s__43356__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__43356__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.rest(s__43356__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n,null,null));\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n;\nvar fs__5500__auto__ \x3d cljs.core.seq(iterys__5499__auto__(warnings));\nif(fs__5500__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5500__auto__,shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(cljs.core.rest(s__43354__$1)));\n} else {\nvar G__44221 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44221;\ncontinue;\n}\n} else {\nvar G__44222 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44222;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nif(shadow.cljs.devtools.client.env.log){\nvar seq__43368_44223 \x3d cljs.core.seq(warnings);\nvar chunk__43369_44224 \x3d null;\nvar count__43370_44225 \x3d (0);\nvar i__43371_44226 \x3d (0);\nwhile(true){\nif((i__43371_44226 \x3c count__43370_44225)){\nvar map__43400_44229 \x3d chunk__43369_44224.cljs$core$IIndexed$_nth$arity$2(null,i__43371_44226);\nvar map__43400_44230__$1 \x3d cljs.core.__destructure_map(map__43400_44229);\nvar w_44231 \x3d map__43400_44230__$1;\nvar msg_44232__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44233 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44234 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44235 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44235),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44233),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44234),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44232__$1)].join(\x27\x27));\n\n\nvar G__44238 \x3d seq__43368_44223;\nvar G__44239 \x3d chunk__43369_44224;\nvar G__44240 \x3d count__43370_44225;\nvar G__44241 \x3d (i__43371_44226 + (1));\nseq__43368_44223 \x3d G__44238;\nchunk__43369_44224 \x3d G__44239;\ncount__43370_44225 \x3d G__44240;\ni__43371_44226 \x3d G__44241;\ncontinue;\n} else {\nvar temp__5825__auto___44242 \x3d cljs.core.seq(seq__43368_44223);\nif(temp__5825__auto___44242){\nvar seq__43368_44243__$1 \x3d temp__5825__auto___44242;\nif(cljs.core.chunked_seq_QMARK_(seq__43368_44243__$1)){\nvar c__5548__auto___44245 \x3d cljs.core.chunk_first(seq__43368_44243__$1);\nvar G__44246 \x3d cljs.core.chunk_rest(seq__43368_44243__$1);\nvar G__44247 \x3d c__5548__auto___44245;\nvar G__44248 \x3d cljs.core.count(c__5548__auto___44245);\nvar G__44249 \x3d (0);\nseq__43368_44223 \x3d G__44246;\nchunk__43369_44224 \x3d G__44247;\ncount__43370_44225 \x3d G__44248;\ni__43371_44226 \x3d G__44249;\ncontinue;\n} else {\nvar map__43414_44250 \x3d cljs.core.first(seq__43368_44243__$1);\nvar map__43414_44251__$1 \x3d cljs.core.__destructure_map(map__43414_44250);\nvar w_44252 \x3d map__43414_44251__$1;\nvar msg_44253__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44254 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44255 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44256 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44256),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44254),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44255),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44253__$1)].join(\x27\x27));\n\n\nvar G__44258 \x3d cljs.core.next(seq__43368_44243__$1);\nvar G__44259 \x3d null;\nvar G__44260 \x3d (0);\nvar G__44261 \x3d (0);\nseq__43368_44223 \x3d G__44258;\nchunk__43369_44224 \x3d G__44259;\ncount__43370_44225 \x3d G__44260;\ni__43371_44226 \x3d G__44261;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nif((!(shadow.cljs.devtools.client.env.autoload))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(((cljs.core.empty_QMARK_(warnings)) || (shadow.cljs.devtools.client.env.ignore_warnings))){\nvar sources_to_get \x3d shadow.cljs.devtools.client.env.filter_reload_sources(info,reload_info);\nif(cljs.core.not(cljs.core.seq(sources_to_get))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22after-load\x22,\x22after-load\x22,-1278503285)], null)))){\n} else {\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22reloading code but no :after-load hooks are configured!\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22https://shadow-cljs.github.io/docs/UsersGuide.html#_lifecycle_hooks\x22], 0));\n}\n\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime,sources_to_get,(function (p1__43348_SHARP_){\nreturn shadow.cljs.devtools.client.browser.do_js_reload(msg,p1__43348_SHARP_,shadow.cljs.devtools.client.hud.load_end_success,shadow.cljs.devtools.client.hud.load_failure);\n}));\n}\n} else {\nreturn null;\n}\n}\n});\nshadow.cljs.devtools.client.browser.page_load_uri \x3d (cljs.core.truth_(goog.global.document)?goog.Uri.parse(document.location.href):null);\nshadow.cljs.devtools.client.browser.match_paths \x3d (function shadow$cljs$devtools$client$browser$match_paths(old,new$){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22file\x22,shadow.cljs.devtools.client.browser.page_load_uri.getScheme())){\nvar rel_new \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(new$,(1));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,rel_new)) || (clojure.string.starts_with_QMARK_(old,[rel_new,\x22?\x22].join(\x27\x27))))){\nreturn rel_new;\n} else {\nreturn null;\n}\n} else {\nvar node_uri \x3d goog.Uri.parse(old);\nvar node_uri_resolved \x3d shadow.cljs.devtools.client.browser.page_load_uri.resolve(node_uri);\nvar node_abs \x3d node_uri_resolved.getPath();\nvar and__5023__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.browser.page_load_uri.hasSameDomainAs(node_uri))) || (cljs.core.not(node_uri.hasDomain())));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node_abs,new$);\nif(and__5023__auto____$1){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__43435 \x3d node_uri;\nG__43435.setQuery(null);\n\nG__43435.setPath(new$);\n\nreturn G__43435;\n})());\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n});\nshadow.cljs.devtools.client.browser.handle_asset_update \x3d (function shadow$cljs$devtools$client$browser$handle_asset_update(p__43443){\nvar map__43444 \x3d p__43443;\nvar map__43444__$1 \x3d cljs.core.__destructure_map(map__43444);\nvar msg \x3d map__43444__$1;\nvar updates \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22updates\x22,\x22updates\x22,2013983452));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar seq__43446 \x3d cljs.core.seq(updates);\nvar chunk__43448 \x3d null;\nvar count__43449 \x3d (0);\nvar i__43450 \x3d (0);\nwhile(true){\nif((i__43450 \x3c count__43449)){\nvar path \x3d chunk__43448.cljs$core$IIndexed$_nth$arity$2(null,i__43450);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43728_44266 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43732_44267 \x3d null;\nvar count__43733_44268 \x3d (0);\nvar i__43734_44269 \x3d (0);\nwhile(true){\nif((i__43734_44269 \x3c count__43733_44268)){\nvar node_44270 \x3d chunk__43732_44267.cljs$core$IIndexed$_nth$arity$2(null,i__43734_44269);\nif(cljs.core.not(node_44270.shadow$old)){\nvar path_match_44271 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44270.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44271)){\nvar new_link_44272 \x3d (function (){var G__43814 \x3d node_44270.cloneNode(true);\nG__43814.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44271),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43814;\n})();\n(node_44270.shadow$old \x3d true);\n\n(new_link_44272.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43816_44273 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43818_44274 \x3d null;\nvar count__43819_44275 \x3d (0);\nvar i__43820_44276 \x3d (0);\nwhile(true){\nif((i__43820_44276 \x3c count__43819_44275)){\nvar map__43828_44279 \x3d chunk__43818_44274.cljs$core$IIndexed$_nth$arity$2(null,i__43820_44276);\nvar map__43828_44280__$1 \x3d cljs.core.__destructure_map(map__43828_44279);\nvar task_44281 \x3d map__43828_44280__$1;\nvar fn_str_44282 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44283 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44284 \x3d goog.getObjectByName(fn_str_44282,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44283)].join(\x27\x27));\n\n(fn_obj_44284.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44284.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44284.call(null,path,new_link_44272));\n\n\nvar G__44287 \x3d seq__43816_44273;\nvar G__44288 \x3d chunk__43818_44274;\nvar G__44289 \x3d count__43819_44275;\nvar G__44290 \x3d (i__43820_44276 + (1));\nseq__43816_44273 \x3d G__44287;\nchunk__43818_44274 \x3d G__44288;\ncount__43819_44275 \x3d G__44289;\ni__43820_44276 \x3d G__44290;\ncontinue;\n} else {\nvar temp__5825__auto___44291 \x3d cljs.core.seq(seq__43816_44273);\nif(temp__5825__auto___44291){\nvar seq__43816_44292__$1 \x3d temp__5825__auto___44291;\nif(cljs.core.chunked_seq_QMARK_(seq__43816_44292__$1)){\nvar c__5548__auto___44293 \x3d cljs.core.chunk_first(seq__43816_44292__$1);\nvar G__44294 \x3d cljs.core.chunk_rest(seq__43816_44292__$1);\nvar G__44295 \x3d c__5548__auto___44293;\nvar G__44296 \x3d cljs.core.count(c__5548__auto___44293);\nvar G__44297 \x3d (0);\nseq__43816_44273 \x3d G__44294;\nchunk__43818_44274 \x3d G__44295;\ncount__43819_44275 \x3d G__44296;\ni__43820_44276 \x3d G__44297;\ncontinue;\n} else {\nvar map__43833_44299 \x3d cljs.core.first(seq__43816_44292__$1);\nvar map__43833_44300__$1 \x3d cljs.core.__destructure_map(map__43833_44299);\nvar task_44301 \x3d map__43833_44300__$1;\nvar fn_str_44302 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44303 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44304 \x3d goog.getObjectByName(fn_str_44302,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44303)].join(\x27\x27));\n\n(fn_obj_44304.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44304.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44304.call(null,path,new_link_44272));\n\n\nvar G__44305 \x3d cljs.core.next(seq__43816_44292__$1);\nvar G__44306 \x3d null;\nvar G__44307 \x3d (0);\nvar G__44308 \x3d (0);\nseq__43816_44273 \x3d G__44305;\nchunk__43818_44274 \x3d G__44306;\ncount__43819_44275 \x3d G__44307;\ni__43820_44276 \x3d G__44308;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44270);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44271], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44272,node_44270);\n\n\nvar G__44309 \x3d seq__43728_44266;\nvar G__44310 \x3d chunk__43732_44267;\nvar G__44311 \x3d count__43733_44268;\nvar G__44312 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44309;\nchunk__43732_44267 \x3d G__44310;\ncount__43733_44268 \x3d G__44311;\ni__43734_44269 \x3d G__44312;\ncontinue;\n} else {\nvar G__44313 \x3d seq__43728_44266;\nvar G__44314 \x3d chunk__43732_44267;\nvar G__44315 \x3d count__43733_44268;\nvar G__44316 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44313;\nchunk__43732_44267 \x3d G__44314;\ncount__43733_44268 \x3d G__44315;\ni__43734_44269 \x3d G__44316;\ncontinue;\n}\n} else {\nvar G__44317 \x3d seq__43728_44266;\nvar G__44318 \x3d chunk__43732_44267;\nvar G__44319 \x3d count__43733_44268;\nvar G__44320 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44317;\nchunk__43732_44267 \x3d G__44318;\ncount__43733_44268 \x3d G__44319;\ni__43734_44269 \x3d G__44320;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44321 \x3d cljs.core.seq(seq__43728_44266);\nif(temp__5825__auto___44321){\nvar seq__43728_44322__$1 \x3d temp__5825__auto___44321;\nif(cljs.core.chunked_seq_QMARK_(seq__43728_44322__$1)){\nvar c__5548__auto___44323 \x3d cljs.core.chunk_first(seq__43728_44322__$1);\nvar G__44324 \x3d cljs.core.chunk_rest(seq__43728_44322__$1);\nvar G__44325 \x3d c__5548__auto___44323;\nvar G__44326 \x3d cljs.core.count(c__5548__auto___44323);\nvar G__44327 \x3d (0);\nseq__43728_44266 \x3d G__44324;\nchunk__43732_44267 \x3d G__44325;\ncount__43733_44268 \x3d G__44326;\ni__43734_44269 \x3d G__44327;\ncontinue;\n} else {\nvar node_44328 \x3d cljs.core.first(seq__43728_44322__$1);\nif(cljs.core.not(node_44328.shadow$old)){\nvar path_match_44329 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44328.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44329)){\nvar new_link_44331 \x3d (function (){var G__43844 \x3d node_44328.cloneNode(true);\nG__43844.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44329),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43844;\n})();\n(node_44328.shadow$old \x3d true);\n\n(new_link_44331.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43849_44332 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43851_44333 \x3d null;\nvar count__43852_44334 \x3d (0);\nvar i__43853_44335 \x3d (0);\nwhile(true){\nif((i__43853_44335 \x3c count__43852_44334)){\nvar map__43869_44336 \x3d chunk__43851_44333.cljs$core$IIndexed$_nth$arity$2(null,i__43853_44335);\nvar map__43869_44337__$1 \x3d cljs.core.__destructure_map(map__43869_44336);\nvar task_44338 \x3d map__43869_44337__$1;\nvar fn_str_44339 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44340 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44341 \x3d goog.getObjectByName(fn_str_44339,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44340)].join(\x27\x27));\n\n(fn_obj_44341.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44341.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44341.call(null,path,new_link_44331));\n\n\nvar G__44344 \x3d seq__43849_44332;\nvar G__44345 \x3d chunk__43851_44333;\nvar G__44346 \x3d count__43852_44334;\nvar G__44347 \x3d (i__43853_44335 + (1));\nseq__43849_44332 \x3d G__44344;\nchunk__43851_44333 \x3d G__44345;\ncount__43852_44334 \x3d G__44346;\ni__43853_44335 \x3d G__44347;\ncontinue;\n} else {\nvar temp__5825__auto___44348__$1 \x3d cljs.core.seq(seq__43849_44332);\nif(temp__5825__auto___44348__$1){\nvar seq__43849_44349__$1 \x3d temp__5825__auto___44348__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43849_44349__$1)){\nvar c__5548__auto___44352 \x3d cljs.core.chunk_first(seq__43849_44349__$1);\nvar G__44353 \x3d cljs.core.chunk_rest(seq__43849_44349__$1);\nvar G__44354 \x3d c__5548__auto___44352;\nvar G__44355 \x3d cljs.core.count(c__5548__auto___44352);\nvar G__44356 \x3d (0);\nseq__43849_44332 \x3d G__44353;\nchunk__43851_44333 \x3d G__44354;\ncount__43852_44334 \x3d G__44355;\ni__43853_44335 \x3d G__44356;\ncontinue;\n} else {\nvar map__43872_44357 \x3d cljs.core.first(seq__43849_44349__$1);\nvar map__43872_44358__$1 \x3d cljs.core.__destructure_map(map__43872_44357);\nvar task_44359 \x3d map__43872_44358__$1;\nvar fn_str_44360 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44361 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44362 \x3d goog.getObjectByName(fn_str_44360,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44361)].join(\x27\x27));\n\n(fn_obj_44362.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44362.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44362.call(null,path,new_link_44331));\n\n\nvar G__44363 \x3d cljs.core.next(seq__43849_44349__$1);\nvar G__44364 \x3d null;\nvar G__44365 \x3d (0);\nvar G__44366 \x3d (0);\nseq__43849_44332 \x3d G__44363;\nchunk__43851_44333 \x3d G__44364;\ncount__43852_44334 \x3d G__44365;\ni__43853_44335 \x3d G__44366;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44328);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44329], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44331,node_44328);\n\n\nvar G__44367 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44368 \x3d null;\nvar G__44369 \x3d (0);\nvar G__44370 \x3d (0);\nseq__43728_44266 \x3d G__44367;\nchunk__43732_44267 \x3d G__44368;\ncount__43733_44268 \x3d G__44369;\ni__43734_44269 \x3d G__44370;\ncontinue;\n} else {\nvar G__44371 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44372 \x3d null;\nvar G__44373 \x3d (0);\nvar G__44374 \x3d (0);\nseq__43728_44266 \x3d G__44371;\nchunk__43732_44267 \x3d G__44372;\ncount__43733_44268 \x3d G__44373;\ni__43734_44269 \x3d G__44374;\ncontinue;\n}\n} else {\nvar G__44375 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44376 \x3d null;\nvar G__44377 \x3d (0);\nvar G__44378 \x3d (0);\nseq__43728_44266 \x3d G__44375;\nchunk__43732_44267 \x3d G__44376;\ncount__43733_44268 \x3d G__44377;\ni__43734_44269 \x3d G__44378;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44379 \x3d seq__43446;\nvar G__44380 \x3d chunk__43448;\nvar G__44381 \x3d count__43449;\nvar G__44382 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44379;\nchunk__43448 \x3d G__44380;\ncount__43449 \x3d G__44381;\ni__43450 \x3d G__44382;\ncontinue;\n} else {\nvar G__44383 \x3d seq__43446;\nvar G__44384 \x3d chunk__43448;\nvar G__44385 \x3d count__43449;\nvar G__44386 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44383;\nchunk__43448 \x3d G__44384;\ncount__43449 \x3d G__44385;\ni__43450 \x3d G__44386;\ncontinue;\n}\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43446);\nif(temp__5825__auto__){\nvar seq__43446__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43446__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43446__$1);\nvar G__44387 \x3d cljs.core.chunk_rest(seq__43446__$1);\nvar G__44388 \x3d c__5548__auto__;\nvar G__44389 \x3d cljs.core.count(c__5548__auto__);\nvar G__44390 \x3d (0);\nseq__43446 \x3d G__44387;\nchunk__43448 \x3d G__44388;\ncount__43449 \x3d G__44389;\ni__43450 \x3d G__44390;\ncontinue;\n} else {\nvar path \x3d cljs.core.first(seq__43446__$1);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43880_44393 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43884_44394 \x3d null;\nvar count__43885_44395 \x3d (0);\nvar i__43886_44396 \x3d (0);\nwhile(true){\nif((i__43886_44396 \x3c count__43885_44395)){\nvar node_44397 \x3d chunk__43884_44394.cljs$core$IIndexed$_nth$arity$2(null,i__43886_44396);\nif(cljs.core.not(node_44397.shadow$old)){\nvar path_match_44398 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44397.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44398)){\nvar new_link_44399 \x3d (function (){var G__43984 \x3d node_44397.cloneNode(true);\nG__43984.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44398),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43984;\n})();\n(node_44397.shadow$old \x3d true);\n\n(new_link_44399.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43987_44401 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43989_44402 \x3d null;\nvar count__43990_44403 \x3d (0);\nvar i__43991_44404 \x3d (0);\nwhile(true){\nif((i__43991_44404 \x3c count__43990_44403)){\nvar map__44007_44406 \x3d chunk__43989_44402.cljs$core$IIndexed$_nth$arity$2(null,i__43991_44404);\nvar map__44007_44407__$1 \x3d cljs.core.__destructure_map(map__44007_44406);\nvar task_44408 \x3d map__44007_44407__$1;\nvar fn_str_44409 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44410 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44411 \x3d goog.getObjectByName(fn_str_44409,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44410)].join(\x27\x27));\n\n(fn_obj_44411.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44411.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44411.call(null,path,new_link_44399));\n\n\nvar G__44413 \x3d seq__43987_44401;\nvar G__44414 \x3d chunk__43989_44402;\nvar G__44415 \x3d count__43990_44403;\nvar G__44416 \x3d (i__43991_44404 + (1));\nseq__43987_44401 \x3d G__44413;\nchunk__43989_44402 \x3d G__44414;\ncount__43990_44403 \x3d G__44415;\ni__43991_44404 \x3d G__44416;\ncontinue;\n} else {\nvar temp__5825__auto___44417__$1 \x3d cljs.core.seq(seq__43987_44401);\nif(temp__5825__auto___44417__$1){\nvar seq__43987_44418__$1 \x3d temp__5825__auto___44417__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43987_44418__$1)){\nvar c__5548__auto___44419 \x3d cljs.core.chunk_first(seq__43987_44418__$1);\nvar G__44420 \x3d cljs.core.chunk_rest(seq__43987_44418__$1);\nvar G__44421 \x3d c__5548__auto___44419;\nvar G__44422 \x3d cljs.core.count(c__5548__auto___44419);\nvar G__44423 \x3d (0);\nseq__43987_44401 \x3d G__44420;\nchunk__43989_44402 \x3d G__44421;\ncount__43990_44403 \x3d G__44422;\ni__43991_44404 \x3d G__44423;\ncontinue;\n} else {\nvar map__44014_44424 \x3d cljs.core.first(seq__43987_44418__$1);\nvar map__44014_44425__$1 \x3d cljs.core.__destructure_map(map__44014_44424);\nvar task_44426 \x3d map__44014_44425__$1;\nvar fn_str_44427 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44428 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44430 \x3d goog.getObjectByName(fn_str_44427,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44428)].join(\x27\x27));\n\n(fn_obj_44430.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44430.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44430.call(null,path,new_link_44399));\n\n\nvar G__44431 \x3d cljs.core.next(seq__43987_44418__$1);\nvar G__44432 \x3d null;\nvar G__44433 \x3d (0);\nvar G__44434 \x3d (0);\nseq__43987_44401 \x3d G__44431;\nchunk__43989_44402 \x3d G__44432;\ncount__43990_44403 \x3d G__44433;\ni__43991_44404 \x3d G__44434;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44397);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44398], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44399,node_44397);\n\n\nvar G__44436 \x3d seq__43880_44393;\nvar G__44437 \x3d chunk__43884_44394;\nvar G__44438 \x3d count__43885_44395;\nvar G__44439 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44436;\nchunk__43884_44394 \x3d G__44437;\ncount__43885_44395 \x3d G__44438;\ni__43886_44396 \x3d G__44439;\ncontinue;\n} else {\nvar G__44440 \x3d seq__43880_44393;\nvar G__44441 \x3d chunk__43884_44394;\nvar G__44442 \x3d count__43885_44395;\nvar G__44443 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44440;\nchunk__43884_44394 \x3d G__44441;\ncount__43885_44395 \x3d G__44442;\ni__43886_44396 \x3d G__44443;\ncontinue;\n}\n} else {\nvar G__44444 \x3d seq__43880_44393;\nvar G__44445 \x3d chunk__43884_44394;\nvar G__44446 \x3d count__43885_44395;\nvar G__44447 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44444;\nchunk__43884_44394 \x3d G__44445;\ncount__43885_44395 \x3d G__44446;\ni__43886_44396 \x3d G__44447;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44448__$1 \x3d cljs.core.seq(seq__43880_44393);\nif(temp__5825__auto___44448__$1){\nvar seq__43880_44449__$1 \x3d temp__5825__auto___44448__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43880_44449__$1)){\nvar c__5548__auto___44450 \x3d cljs.core.chunk_first(seq__43880_44449__$1);\nvar G__44451 \x3d cljs.core.chunk_rest(seq__43880_44449__$1);\nvar G__44452 \x3d c__5548__auto___44450;\nvar G__44453 \x3d cljs.core.count(c__5548__auto___44450);\nvar G__44454 \x3d (0);\nseq__43880_44393 \x3d G__44451;\nchunk__43884_44394 \x3d G__44452;\ncount__43885_44395 \x3d G__44453;\ni__43886_44396 \x3d G__44454;\ncontinue;\n} else {\nvar node_44456 \x3d cljs.core.first(seq__43880_44449__$1);\nif(cljs.core.not(node_44456.shadow$old)){\nvar path_match_44457 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44456.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44457)){\nvar new_link_44458 \x3d (function (){var G__44034 \x3d node_44456.cloneNode(true);\nG__44034.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44457),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__44034;\n})();\n(node_44456.shadow$old \x3d true);\n\n(new_link_44458.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__44038_44460 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__44040_44461 \x3d null;\nvar count__44041_44462 \x3d (0);\nvar i__44042_44463 \x3d (0);\nwhile(true){\nif((i__44042_44463 \x3c count__44041_44462)){\nvar map__44059_44464 \x3d chunk__44040_44461.cljs$core$IIndexed$_nth$arity$2(null,i__44042_44463);\nvar map__44059_44465__$1 \x3d cljs.core.__destructure_map(map__44059_44464);\nvar task_44466 \x3d map__44059_44465__$1;\nvar fn_str_44467 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44468 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44470 \x3d goog.getObjectByName(fn_str_44467,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44468)].join(\x27\x27));\n\n(fn_obj_44470.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44470.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44470.call(null,path,new_link_44458));\n\n\nvar G__44471 \x3d seq__44038_44460;\nvar G__44472 \x3d chunk__44040_44461;\nvar G__44473 \x3d count__44041_44462;\nvar G__44474 \x3d (i__44042_44463 + (1));\nseq__44038_44460 \x3d G__44471;\nchunk__44040_44461 \x3d G__44472;\ncount__44041_44462 \x3d G__44473;\ni__44042_44463 \x3d G__44474;\ncontinue;\n} else {\nvar temp__5825__auto___44475__$2 \x3d cljs.core.seq(seq__44038_44460);\nif(temp__5825__auto___44475__$2){\nvar seq__44038_44477__$1 \x3d temp__5825__auto___44475__$2;\nif(cljs.core.chunked_seq_QMARK_(seq__44038_44477__$1)){\nvar c__5548__auto___44478 \x3d cljs.core.chunk_first(seq__44038_44477__$1);\nvar G__44479 \x3d cljs.core.chunk_rest(seq__44038_44477__$1);\nvar G__44480 \x3d c__5548__auto___44478;\nvar G__44481 \x3d cljs.core.count(c__5548__auto___44478);\nvar G__44482 \x3d (0);\nseq__44038_44460 \x3d G__44479;\nchunk__44040_44461 \x3d G__44480;\ncount__44041_44462 \x3d G__44481;\ni__44042_44463 \x3d G__44482;\ncontinue;\n} else {\nvar map__44066_44483 \x3d cljs.core.first(seq__44038_44477__$1);\nvar map__44066_44484__$1 \x3d cljs.core.__destructure_map(map__44066_44483);\nvar task_44485 \x3d map__44066_44484__$1;\nvar fn_str_44486 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44487 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44488 \x3d goog.getObjectByName(fn_str_44486,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44487)].join(\x27\x27));\n\n(fn_obj_44488.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44488.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44488.call(null,path,new_link_44458));\n\n\nvar G__44489 \x3d cljs.core.next(seq__44038_44477__$1);\nvar G__44490 \x3d null;\nvar G__44491 \x3d (0);\nvar G__44492 \x3d (0);\nseq__44038_44460 \x3d G__44489;\nchunk__44040_44461 \x3d G__44490;\ncount__44041_44462 \x3d G__44491;\ni__44042_44463 \x3d G__44492;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44456);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44457], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44458,node_44456);\n\n\nvar G__44494 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44495 \x3d null;\nvar G__44496 \x3d (0);\nvar G__44497 \x3d (0);\nseq__43880_44393 \x3d G__44494;\nchunk__43884_44394 \x3d G__44495;\ncount__43885_44395 \x3d G__44496;\ni__43886_44396 \x3d G__44497;\ncontinue;\n} else {\nvar G__44498 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44499 \x3d null;\nvar G__44500 \x3d (0);\nvar G__44501 \x3d (0);\nseq__43880_44393 \x3d G__44498;\nchunk__43884_44394 \x3d G__44499;\ncount__43885_44395 \x3d G__44500;\ni__43886_44396 \x3d G__44501;\ncontinue;\n}\n} else {\nvar G__44502 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44503 \x3d null;\nvar G__44504 \x3d (0);\nvar G__44505 \x3d (0);\nseq__43880_44393 \x3d G__44502;\nchunk__43884_44394 \x3d G__44503;\ncount__43885_44395 \x3d G__44504;\ni__43886_44396 \x3d G__44505;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44506 \x3d cljs.core.next(seq__43446__$1);\nvar G__44507 \x3d null;\nvar G__44508 \x3d (0);\nvar G__44509 \x3d (0);\nseq__43446 \x3d G__44506;\nchunk__43448 \x3d G__44507;\ncount__43449 \x3d G__44508;\ni__43450 \x3d G__44509;\ncontinue;\n} else {\nvar G__44510 \x3d cljs.core.next(seq__43446__$1);\nvar G__44511 \x3d null;\nvar G__44512 \x3d (0);\nvar G__44513 \x3d (0);\nseq__43446 \x3d G__44510;\nchunk__43448 \x3d G__44511;\ncount__43449 \x3d G__44512;\ni__43450 \x3d G__44513;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.global_eval \x3d (function shadow$cljs$devtools$client$browser$global_eval(js){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(\x22undefined\x22,typeof(module))){\nreturn eval(js);\n} else {\nreturn (0,eval)(js);;\n}\n});\nshadow.cljs.devtools.client.browser.runtime_info \x3d (((typeof SHADOW_CONFIG !\x3d\x3d \x27undefined\x27))?shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1(SHADOW_CONFIG):null);\nshadow.cljs.devtools.client.browser.client_info \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.cljs.devtools.client.browser.runtime_info,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),(cljs.core.truth_(goog.global.document)?new cljs.core.Keyword(null,\x22browser\x22,\x22browser\x22,828191719):new cljs.core.Keyword(null,\x22browser-worker\x22,\x22browser-worker\x22,1638998282)),new cljs.core.Keyword(null,\x22user-agent\x22,\x22user-agent\x22,1220426212),[(cljs.core.truth_(goog.userAgent.OPERA)?\x22Opera\x22:(cljs.core.truth_(goog.userAgent.product.CHROME)?\x22Chrome\x22:(cljs.core.truth_(goog.userAgent.IE)?\x22MSIE\x22:(cljs.core.truth_(goog.userAgent.EDGE)?\x22Edge\x22:(cljs.core.truth_(goog.userAgent.GECKO)?\x22Firefox\x22:(cljs.core.truth_(goog.userAgent.SAFARI)?\x22Safari\x22:(cljs.core.truth_(goog.userAgent.WEBKIT)?\x22Webkit\x22:null))))))),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.VERSION),\x22 [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.PLATFORM),\x22]\x22].join(\x27\x27),new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922),(!((goog.global.document \x3d\x3d null)))], null)], 0));\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser.ws_was_welcome_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.browser.ws_was_welcome_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\n}\nif(((shadow.cljs.devtools.client.env.enabled) \x26\x26 ((shadow.cljs.devtools.client.env.worker_client_id \x3e (0))))){\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$4 \x3d (function (this$,code,success,fail){\nvar this$__$1 \x3d this;\ntry{var G__44103 \x3d shadow.cljs.devtools.client.browser.global_eval(code);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44103) : success.call(null,G__44103));\n}catch (e44100){var e \x3d e44100;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$5 \x3d (function (this$,ns,p__44106,success,fail){\nvar map__44109 \x3d p__44106;\nvar map__44109__$1 \x3d cljs.core.__destructure_map(map__44109);\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44109__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\nvar this$__$1 \x3d this;\ntry{var G__44112 \x3d shadow.cljs.devtools.client.browser.global_eval(js);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44112) : success.call(null,G__44112));\n}catch (e44111){var e \x3d e44111;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4 \x3d (function (runtime,p__44113,done,error){\nvar map__44115 \x3d p__44113;\nvar map__44115__$1 \x3d cljs.core.__destructure_map(map__44115);\nvar repl_sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44115__$1,new cljs.core.Keyword(null,\x22repl-sources\x22,\x22repl-sources\x22,723867535));\nvar runtime__$1 \x3d this;\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime__$1,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_,repl_sources)),(function (sources){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (done.cljs$core$IFn$_invoke$arity$0 ? done.cljs$core$IFn$_invoke$arity$0() : done.call(null));\n}));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4 \x3d (function (runtime,p__44121,done,error){\nvar map__44122 \x3d p__44121;\nvar map__44122__$1 \x3d cljs.core.__destructure_map(map__44122);\nvar msg \x3d map__44122__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar reload_namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22reload-namespaces\x22,\x22reload-namespaces\x22,250210134));\nvar js_requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22js-requires\x22,\x22js-requires\x22,-1311472051));\nvar runtime__$1 \x3d this;\nvar sources_to_load \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__44123){\nvar map__44124 \x3d p__44123;\nvar map__44124__$1 \x3d cljs.core.__destructure_map(map__44124);\nvar src \x3d map__44124__$1;\nvar provides \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44124__$1,new cljs.core.Keyword(null,\x22provides\x22,\x22provides\x22,-1634397992));\nvar and__5023__auto__ \x3d shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.core.some(reload_namespaces,provides));\n} else {\nreturn and__5023__auto__;\n}\n}),sources));\nif(cljs.core.not(cljs.core.seq(sources_to_load))){\nvar G__44126 \x3d cljs.core.PersistentVector.EMPTY;\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(G__44126) : done.call(null,G__44126));\n} else {\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-load-sources\x22,\x22cljs-load-sources\x22,-1458295962),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582)),sources_to_load)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cljs-sources\x22,\x22cljs-sources\x22,31121610),(function (p__44130){\nvar map__44131 \x3d p__44130;\nvar map__44131__$1 \x3d cljs.core.__destructure_map(map__44131);\nvar msg__$1 \x3d map__44131__$1;\nvar sources__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44131__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\ntry{shadow.cljs.devtools.client.browser.do_js_load(sources__$1);\n\nif(cljs.core.seq(js_requires)){\nshadow.cljs.devtools.client.browser.do_js_requires(js_requires);\n} else {\n}\n\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(sources_to_load) : done.call(null,sources_to_load));\n}catch (e44132){var ex \x3d e44132;\nreturn (error.cljs$core$IFn$_invoke$arity$1 ? error.cljs$core$IFn$_invoke$arity$1(ex) : error.call(null,ex));\n}})], null));\n}\n}));\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),cljs.core.PersistentHashSet.EMPTY,(function (p__44134){\nvar map__44136 \x3d p__44134;\nvar map__44136__$1 \x3d cljs.core.__destructure_map(map__44136);\nvar env \x3d map__44136__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44136__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125),(function (){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,true);\n\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.env.patch_goog_BANG_();\n\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime)))),\x22 ready!\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22on-disconnect\x22,\x22on-disconnect\x22,-809021814),(function (e){\nif(cljs.core.truth_(cljs.core.deref(shadow.cljs.devtools.client.browser.ws_was_welcome_ref))){\nshadow.cljs.devtools.client.hud.connection_error(\x22The Websocket connection was closed!\x22);\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n} else {\nreturn null;\n}\n}),new cljs.core.Keyword(null,\x22on-reconnect\x22,\x22on-reconnect\x22,1239988702),(function (e){\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22Reconnecting ...\x22);\n}),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22access-denied\x22,\x22access-denied\x22,959449406),(function (msg){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22Stale Output! Your loaded JS was not produced by the running shadow-cljs instance.\x22,\x22 Is the watch for this build running?\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22cljs-asset-update\x22,\x22cljs-asset-update\x22,1224093028),(function (msg){\nreturn shadow.cljs.devtools.client.browser.handle_asset_update(msg);\n}),new cljs.core.Keyword(null,\x22cljs-build-configure\x22,\x22cljs-build-configure\x22,-2089891268),(function (msg){\nreturn null;\n}),new cljs.core.Keyword(null,\x22cljs-build-start\x22,\x22cljs-build-start\x22,-725781241),(function (msg){\nshadow.cljs.devtools.client.hud.hud_hide();\n\nshadow.cljs.devtools.client.hud.load_start();\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-start\x22,\x22build-start\x22,-959649480)));\n}),new cljs.core.Keyword(null,\x22cljs-build-complete\x22,\x22cljs-build-complete\x22,273626153),(function (msg){\nvar msg__$1 \x3d shadow.cljs.devtools.client.env.add_warnings_to_info(msg);\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.hud.hud_warnings(msg__$1);\n\nshadow.cljs.devtools.client.browser.handle_build_complete(runtime,msg__$1);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-complete\x22,\x22build-complete\x22,-501868472)));\n}),new cljs.core.Keyword(null,\x22cljs-build-failure\x22,\x22cljs-build-failure\x22,1718154990),(function (msg){\nshadow.cljs.devtools.client.hud.load_end();\n\nshadow.cljs.devtools.client.hud.hud_error(msg);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-failure\x22,\x22build-failure\x22,-2107487466)));\n}),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.env\x22,\x22worker-notify\x22,\x22shadow.cljs.devtools.client.env/worker-notify\x22,-1456820670),(function (p__44146){\nvar map__44147 \x3d p__44146;\nvar map__44147__$1 \x3d cljs.core.__destructure_map(map__44147);\nvar event_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22event-op\x22,\x22event-op\x22,200358057));\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-disconnect\x22,\x22client-disconnect\x22,640227957),event_op)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(client_id,shadow.cljs.devtools.client.env.worker_client_id)))){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was stopped!\x22);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-connect\x22,\x22client-connect\x22,-1113973888),event_op)){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was restarted. Reload required!\x22);\n} else {\nreturn null;\n}\n}\n})], null)], null));\n\nreturn svc;\n}),(function (p__44149){\nvar map__44150 \x3d p__44149;\nvar map__44150__$1 \x3d cljs.core.__destructure_map(map__44150);\nvar svc \x3d map__44150__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44150__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282));\n}));\n\nshadow.cljs.devtools.client.shared.init_runtime_BANG_(shadow.cljs.devtools.client.browser.client_info,shadow.cljs.devtools.client.websocket.start,shadow.cljs.devtools.client.websocket.send,shadow.cljs.devtools.client.websocket.stop);\n} else {\n}\n"); -SHADOW_ENV.evalLoad("intemporal.internal.error.js", true, "goog.provide(\x27intemporal.internal.error\x27);\n/**\n * Internal exception constructor, subclasses error to prevent userland code to caught this\n * exception in `(try ... (catch Exception e))` blocks\n */\nintemporal.internal.error.internal_error \x3d (function intemporal$internal$error$internal_error(var_args){\nvar G__28274 \x3d arguments.length;\nswitch (G__28274) {\ncase 2:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (message,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3(message,data,null);\n}));\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (message,data,cause){\nvar err \x3d (new Error(message));\n(err.data \x3d data);\n\n(err.cause \x3d cause);\n\nreturn err;\n}));\n\n(intemporal.internal.error.internal_error.cljs$lang$maxFixedArity \x3d 3);\n\nintemporal.internal.error.make_suspension \x3d (function intemporal$internal$error$make_suspension(type,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow suspended\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data,new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802),true], null));\n});\nintemporal.internal.error.suspension_QMARK_ \x3d (function intemporal$internal$error$suspension_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.interruption_QMARK_ \x3d (function intemporal$internal$error$interruption_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.rejection_QMARK_ \x3d (function intemporal$internal$error$rejection_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.suspension_type \x3d (function intemporal$internal$error$suspension_type(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.suspension_data \x3d (function intemporal$internal$error$suspension_data(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.workflow_cancelled_exception \x3d (function intemporal$internal$error$workflow_cancelled_exception(){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow cancelled\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358),true], null));\n});\nintemporal.internal.error.cancelled_exception_QMARK_ \x3d (function intemporal$internal$error$cancelled_exception_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.activity_rejected_exception \x3d (function intemporal$internal$error$activity_rejected_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Execution rejected\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_timeout_exception \x3d (function intemporal$internal$error$activity_timeout_exception(activity_name,timeout_ms){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity timed out\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-timeout\x22,\x22intemporal.internal.error/activity-timeout\x22,937937544),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms], null));\n});\nintemporal.internal.error.activity_interrupted_exception \x3d (function intemporal$internal$error$activity_interrupted_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity interrupted\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_failed_exception \x3d (function intemporal$internal$error$activity_failed_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(\x22Activity failed\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-failed\x22,\x22intemporal.internal.error/activity-failed\x22,1878780601),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null),cause);\n});\nintemporal.internal.error.async_failed_exception \x3d (function intemporal$internal$error$async_failed_exception(handle_seq,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Async operation failed\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22async-failed\x22,\x22intemporal.internal.error/async-failed\x22,-1692942380),true,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause], null));\n});\nintemporal.internal.error.throwable__GT_map \x3d (function intemporal$internal$error$throwable__GT_map(t){\nif(cljs.core.truth_(t)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(t)),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),t.message,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),(function (){var or__5025__auto__ \x3d t.data;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.ex_data(t);\n}\n})(),new cljs.core.Keyword(null,\x22stack-trace\x22,\x22stack-trace\x22,-1998072032),(cljs.core.truth_(t.stack)?clojure.string.split_lines(t.stack):null),new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),(cljs.core.truth_(t.cause)?(function (){var G__28443 \x3d t.cause;\nreturn (intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1 ? intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1(G__28443) : intemporal.internal.error.throwable__GT_map.call(null,G__28443));\n})():null)], null);\n} else {\nreturn null;\n}\n});\nintemporal.internal.error.map__GT_exception \x3d (function intemporal$internal$error$map__GT_exception(m){\nif(cljs.core.truth_(m)){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22Restored exception\x22;\n}\n})(),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22restored\x22,\x22restored\x22,1134950922),true], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(m)], 0)));\n} else {\nreturn null;\n}\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.error.js", true, "goog.provide(\x27intemporal.internal.error\x27);\n/**\n * Internal exception constructor, subclasses error to prevent userland code to caught this\n * exception in `(try ... (catch Exception e))` blocks\n */\nintemporal.internal.error.internal_error \x3d (function intemporal$internal$error$internal_error(var_args){\nvar G__28572 \x3d arguments.length;\nswitch (G__28572) {\ncase 2:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (message,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3(message,data,null);\n}));\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (message,data,cause){\nvar err \x3d (new Error(message));\n(err.data \x3d data);\n\n(err.cause \x3d cause);\n\nreturn err;\n}));\n\n(intemporal.internal.error.internal_error.cljs$lang$maxFixedArity \x3d 3);\n\nintemporal.internal.error.make_suspension \x3d (function intemporal$internal$error$make_suspension(type,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow suspended\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data,new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802),true], null));\n});\nintemporal.internal.error.suspension_QMARK_ \x3d (function intemporal$internal$error$suspension_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.interruption_QMARK_ \x3d (function intemporal$internal$error$interruption_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.rejection_QMARK_ \x3d (function intemporal$internal$error$rejection_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.suspension_type \x3d (function intemporal$internal$error$suspension_type(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.suspension_data \x3d (function intemporal$internal$error$suspension_data(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.workflow_cancelled_exception \x3d (function intemporal$internal$error$workflow_cancelled_exception(){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow cancelled\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358),true], null));\n});\nintemporal.internal.error.cancelled_exception_QMARK_ \x3d (function intemporal$internal$error$cancelled_exception_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.activity_rejected_exception \x3d (function intemporal$internal$error$activity_rejected_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Execution rejected\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_timeout_exception \x3d (function intemporal$internal$error$activity_timeout_exception(activity_name,timeout_ms){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity timed out\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-timeout\x22,\x22intemporal.internal.error/activity-timeout\x22,937937544),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms], null));\n});\nintemporal.internal.error.activity_interrupted_exception \x3d (function intemporal$internal$error$activity_interrupted_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity interrupted\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_failed_exception \x3d (function intemporal$internal$error$activity_failed_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(\x22Activity failed\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-failed\x22,\x22intemporal.internal.error/activity-failed\x22,1878780601),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null),cause);\n});\nintemporal.internal.error.async_failed_exception \x3d (function intemporal$internal$error$async_failed_exception(handle_seq,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Async operation failed\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22async-failed\x22,\x22intemporal.internal.error/async-failed\x22,-1692942380),true,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause], null));\n});\nintemporal.internal.error.throwable__GT_map \x3d (function intemporal$internal$error$throwable__GT_map(t){\nif(cljs.core.truth_(t)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(t)),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),t.message,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),(function (){var or__5025__auto__ \x3d t.data;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.ex_data(t);\n}\n})(),new cljs.core.Keyword(null,\x22stack-trace\x22,\x22stack-trace\x22,-1998072032),(cljs.core.truth_(t.stack)?clojure.string.split_lines(t.stack):null),new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),(cljs.core.truth_(t.cause)?(function (){var G__28691 \x3d t.cause;\nreturn (intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1 ? intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1(G__28691) : intemporal.internal.error.throwable__GT_map.call(null,G__28691));\n})():null)], null);\n} else {\nreturn null;\n}\n});\nintemporal.internal.error.map__GT_exception \x3d (function intemporal$internal$error$map__GT_exception(m){\nif(cljs.core.truth_(m)){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22Restored exception\x22;\n}\n})(),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22restored\x22,\x22restored\x22,1134950922),true], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(m)], 0)));\n} else {\nreturn null;\n}\n});\n"); SHADOW_ENV.evalLoad("intemporal.protocol.js", true, "goog.provide(\x27intemporal.protocol\x27);\n\n/**\n * Protocol for workflow persistence\n * @interface\n */\nintemporal.protocol.IStore \x3d function(){};\n\nvar intemporal$protocol$IStore$load_history$dyn_28683 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.load_history[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.load_history[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.load-history\x22,store);\n}\n}\n});\n/**\n * Load history for a workflow\n */\nintemporal.protocol.load_history \x3d (function intemporal$protocol$load_history(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$load_history$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$load_history$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$load_history$dyn_28683(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$save_event$dyn_28684 \x3d (function (store,workflow_id,event){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5374__auto__.call(null,store,workflow_id,event));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5372__auto__.call(null,store,workflow_id,event));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-event\x22,store);\n}\n}\n});\n/**\n * Append an event to workflow history\n */\nintemporal.protocol.save_event \x3d (function intemporal$protocol$save_event(store,workflow_id,event){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_event$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_event$arity$3(store,workflow_id,event);\n} else {\nreturn intemporal$protocol$IStore$save_event$dyn_28684(store,workflow_id,event);\n}\n});\n\nvar intemporal$protocol$IStore$save_events$dyn_28690 \x3d (function (store,workflow_id,events){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5374__auto__.call(null,store,workflow_id,events));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5372__auto__.call(null,store,workflow_id,events));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-events\x22,store);\n}\n}\n});\n/**\n * Append multiple events atomically\n */\nintemporal.protocol.save_events \x3d (function intemporal$protocol$save_events(store,workflow_id,events){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_events$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_events$arity$3(store,workflow_id,events);\n} else {\nreturn intemporal$protocol$IStore$save_events$dyn_28690(store,workflow_id,events);\n}\n});\n\nvar intemporal$protocol$IStore$find_event$dyn_28694 \x3d (function (store,workflow_id,event_type,seq_num){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.find_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5374__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.find_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5372__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.find-event\x22,store);\n}\n}\n});\n/**\n * Finds the given event type by its sequence number\n */\nintemporal.protocol.find_event \x3d (function intemporal$protocol$find_event(store,workflow_id,event_type,seq_num){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$find_event$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$find_event$arity$4(store,workflow_id,event_type,seq_num);\n} else {\nreturn intemporal$protocol$IStore$find_event$dyn_28694(store,workflow_id,event_type,seq_num);\n}\n});\n\nvar intemporal$protocol$IStore$get_pending_signals$dyn_28700 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_pending_signals[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_pending_signals[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-pending-signals\x22,store);\n}\n}\n});\n/**\n * Get pending signals for workflow\n */\nintemporal.protocol.get_pending_signals \x3d (function intemporal$protocol$get_pending_signals(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_pending_signals$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_pending_signals$dyn_28700(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$add_signal$dyn_28707 \x3d (function (store,workflow_id,signal_name,signal_data){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.add_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5374__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.add_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5372__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.add-signal\x22,store);\n}\n}\n});\n/**\n * Add a signal to workflow\n */\nintemporal.protocol.add_signal \x3d (function intemporal$protocol$add_signal(store,workflow_id,signal_name,signal_data){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$add_signal$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$add_signal$arity$4(store,workflow_id,signal_name,signal_data);\n} else {\nreturn intemporal$protocol$IStore$add_signal$dyn_28707(store,workflow_id,signal_name,signal_data);\n}\n});\n\nvar intemporal$protocol$IStore$consume_signal$dyn_28709 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.consume_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.consume_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.consume-signal\x22,store);\n}\n}\n});\n/**\n * Consume and remove a signal\n */\nintemporal.protocol.consume_signal \x3d (function intemporal$protocol$consume_signal(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$consume_signal$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$consume_signal$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$consume_signal$dyn_28709(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$register_signal_callback$dyn_28714 \x3d (function (store,workflow_id,signal_name,callback){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.register_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5374__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.register_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5372__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.register-signal-callback\x22,store);\n}\n}\n});\n/**\n * Register callback to be invoked when signal arrives\n */\nintemporal.protocol.register_signal_callback \x3d (function intemporal$protocol$register_signal_callback(store,workflow_id,signal_name,callback){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$register_signal_callback$arity$4(store,workflow_id,signal_name,callback);\n} else {\nreturn intemporal$protocol$IStore$register_signal_callback$dyn_28714(store,workflow_id,signal_name,callback);\n}\n});\n\nvar intemporal$protocol$IStore$unregister_signal_callback$dyn_28716 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.unregister_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.unregister_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.unregister-signal-callback\x22,store);\n}\n}\n});\n/**\n * Unregister signal callback\n */\nintemporal.protocol.unregister_signal_callback \x3d (function intemporal$protocol$unregister_signal_callback(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$unregister_signal_callback$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$unregister_signal_callback$dyn_28716(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.is-cancelled?\x22,store);\n}\n}\n});\n/**\n * Check if workflow is cancelled\n */\nintemporal.protocol.is_cancelled_QMARK_ \x3d (function intemporal$protocol$is_cancelled_QMARK_(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$mark_cancelled$dyn_28718 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.mark_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.mark_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.mark-cancelled\x22,store);\n}\n}\n});\n/**\n * Mark workflow as cancelled\n */\nintemporal.protocol.mark_cancelled \x3d (function intemporal$protocol$mark_cancelled(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$mark_cancelled$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$mark_cancelled$dyn_28718(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$get_workflow_status$dyn_28720 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_workflow_status[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_workflow_status[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-workflow-status\x22,store);\n}\n}\n});\n/**\n * Get current workflow status\n */\nintemporal.protocol.get_workflow_status \x3d (function intemporal$protocol$get_workflow_status(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_workflow_status$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_workflow_status$dyn_28720(store,workflow_id);\n}\n});\n\n\n/**\n * Protocol for executing activities\n * @interface\n */\nintemporal.protocol.IActivityExecutor \x3d function(){};\n\nvar intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721 \x3d (function (executor,activity_name,args,timeout_ms){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activity[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5374__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activity[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5372__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activity\x22,executor);\n}\n}\n});\n/**\n * Execute an activity with given args and timeout\n */\nintemporal.protocol.execute_activity \x3d (function intemporal$protocol$execute_activity(executor,activity_name,args,timeout_ms){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4(executor,activity_name,args,timeout_ms);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721(executor,activity_name,args,timeout_ms);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729 \x3d (function (executor,activities){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activities_parallel[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5374__auto__.call(null,executor,activities));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activities_parallel[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5372__auto__.call(null,executor,activities));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activities-parallel\x22,executor);\n}\n}\n});\n/**\n * Execute multiple activities in parallel, returns seq of results in same order\n */\nintemporal.protocol.execute_activities_parallel \x3d (function intemporal$protocol$execute_activities_parallel(executor,activities){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2(executor,activities);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729(executor,activities);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732 \x3d (function (executor,grace_period_secs){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_executor[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5374__auto__.call(null,executor,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_executor[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5372__auto__.call(null,executor,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown-executor\x22,executor);\n}\n}\n});\n/**\n * Shutdown the executor and release resources\n */\nintemporal.protocol.shutdown_executor \x3d (function intemporal$protocol$shutdown_executor(executor,grace_period_secs){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2(executor,grace_period_secs);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732(executor,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_QMARK_ \x3d (function intemporal$protocol$shutdown_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734(executor);\n}\n});\n\n\n/**\n * Protocol for scheduling timers\n * @interface\n */\nintemporal.protocol.IScheduler \x3d function(){};\n\nvar intemporal$protocol$IScheduler$schedule_timer$dyn_28736 \x3d (function (scheduler,workflow_id,seq_num,fire_at,callback){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.schedule_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.schedule_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.schedule-timer\x22,scheduler);\n}\n}\n});\n/**\n * Schedule a timer to fire at given time, calls callback when ready\n */\nintemporal.protocol.schedule_timer \x3d (function intemporal$protocol$schedule_timer(scheduler,workflow_id,seq_num,fire_at,callback){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5(scheduler,workflow_id,seq_num,fire_at,callback);\n} else {\nreturn intemporal$protocol$IScheduler$schedule_timer$dyn_28736(scheduler,workflow_id,seq_num,fire_at,callback);\n}\n});\n\nvar intemporal$protocol$IScheduler$cancel_timer$dyn_28741 \x3d (function (scheduler,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.cancel_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.cancel_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.cancel-timer\x22,scheduler);\n}\n}\n});\n/**\n * Cancel a scheduled timer\n */\nintemporal.protocol.cancel_timer \x3d (function intemporal$protocol$cancel_timer(scheduler,workflow_id,seq_num){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3(scheduler,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IScheduler$cancel_timer$dyn_28741(scheduler,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755 \x3d (function (scheduler,grace_period_secs){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5374__auto__.call(null,scheduler,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5372__auto__.call(null,scheduler,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler\x22,scheduler);\n}\n}\n});\n/**\n * Shutdown the scheduler\n */\nintemporal.protocol.shutdown_scheduler \x3d (function intemporal$protocol$shutdown_scheduler(scheduler,grace_period_secs){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2(scheduler,grace_period_secs);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755(scheduler,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_scheduler_QMARK_ \x3d (function intemporal$protocol$shutdown_scheduler_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766(executor);\n}\n});\n\n\n/**\n * Protocol for observing workflow execution\n * @interface\n */\nintemporal.protocol.IWorkflowObserver \x3d function(){};\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769 \x3d (function (observer,workflow_id,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5374__auto__.call(null,observer,workflow_id,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5372__auto__.call(null,observer,workflow_id,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_started \x3d (function intemporal$protocol$on_workflow_started(observer,workflow_id,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3(observer,workflow_id,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769(observer,workflow_id,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772 \x3d (function (observer,workflow_id,suspension_type){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_suspended[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5374__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_suspended[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5372__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-suspended\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_suspended \x3d (function intemporal$protocol$on_workflow_suspended(observer,workflow_id,suspension_type){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3(observer,workflow_id,suspension_type);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772(observer,workflow_id,suspension_type);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_resumed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_resumed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-resumed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_resumed \x3d (function intemporal$protocol$on_workflow_resumed(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774(observer,workflow_id);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779 \x3d (function (observer,workflow_id,seq_num,activity_name,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_scheduled \x3d (function intemporal$protocol$on_activity_scheduled(observer,workflow_id,seq_num,activity_name,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5(observer,workflow_id,seq_num,activity_name,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779(observer,workflow_id,seq_num,activity_name,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783 \x3d (function (observer,workflow_id,seq_num,activity_name){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_started \x3d (function intemporal$protocol$on_activity_started(observer,workflow_id,seq_num,activity_name){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4(observer,workflow_id,seq_num,activity_name);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783(observer,workflow_id,seq_num,activity_name);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788 \x3d (function (observer,workflow_id,seq_num,activity_name,result,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_completed \x3d (function intemporal$protocol$on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796 \x3d (function (observer,workflow_id,seq_num,activity_name,error,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_failed \x3d (function intemporal$protocol$on_activity_failed(observer,workflow_id,seq_num,activity_name,error,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_started \x3d (function intemporal$protocol$on_async_started(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805 \x3d (function (observer,workflow_id,seq_num,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5374__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5372__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_completed \x3d (function intemporal$protocol$on_async_completed(observer,workflow_id,seq_num,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4(observer,workflow_id,seq_num,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805(observer,workflow_id,seq_num,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812 \x3d (function (observer,workflow_id,seq_num,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5374__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5372__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_failed \x3d (function intemporal$protocol$on_async_failed(observer,workflow_id,seq_num,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4(observer,workflow_id,seq_num,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812(observer,workflow_id,seq_num,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816 \x3d (function (observer,workflow_id,seq_num,fire_at){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5374__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5372__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_scheduled \x3d (function intemporal$protocol$on_timer_scheduled(observer,workflow_id,seq_num,fire_at){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4(observer,workflow_id,seq_num,fire_at);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816(observer,workflow_id,seq_num,fire_at);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_fired[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_fired[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-fired\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_fired \x3d (function intemporal$protocol$on_timer_fired(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827 \x3d (function (observer,workflow_id,signal_name,payload){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_signal_received[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5374__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_signal_received[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5372__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-signal-received\x22,observer);\n}\n}\n});\nintemporal.protocol.on_signal_received \x3d (function intemporal$protocol$on_signal_received(observer,workflow_id,signal_name,payload){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4(observer,workflow_id,signal_name,payload);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827(observer,workflow_id,signal_name,payload);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829 \x3d (function (observer,workflow_id,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5374__auto__.call(null,observer,workflow_id,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5372__auto__.call(null,observer,workflow_id,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_completed \x3d (function intemporal$protocol$on_workflow_completed(observer,workflow_id,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3(observer,workflow_id,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829(observer,workflow_id,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832 \x3d (function (observer,workflow_id,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5374__auto__.call(null,observer,workflow_id,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5372__auto__.call(null,observer,workflow_id,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_failed \x3d (function intemporal$protocol$on_workflow_failed(observer,workflow_id,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3(observer,workflow_id,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832(observer,workflow_id,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-cancelled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_cancelled \x3d (function intemporal$protocol$on_workflow_cancelled(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838(observer,workflow_id);\n}\n});\n\n"); -SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__28806 \x3d (_ + (1));\n_ \x3d G__28806;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28731_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28731_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28731_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28818 \x3d arguments.length;\nvar i__5750__auto___28819 \x3d (0);\nwhile(true){\nif((i__5750__auto___28819 \x3c len__5749__auto___28818)){\nargs__5755__auto__.push((arguments[i__5750__auto___28819]));\n\nvar G__28820 \x3d (i__5750__auto___28819 + (1));\ni__5750__auto___28819 \x3d G__28820;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e28780){if((e28780 instanceof Error)){\nvar e \x3d e28780;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e28780;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq28764){\nvar G__28765 \x3d cljs.core.first(seq28764);\nvar seq28764__$1 \x3d cljs.core.next(seq28764);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28765,seq28764__$1);\n}));\n\n"); -SHADOW_ENV.evalLoad("intemporal.internal.activity.js", true, "goog.provide(\x27intemporal.internal.activity\x27);\n/**\n * Get a stable, qualified name string from a function.\n * On JVM: uses var metadata when available, otherwise class name.\n * On CLJS: demangles the JS function .name property (e.g. ns$fn_name -\x3e ns/fn-name).\n */\nintemporal.internal.activity.fn_name \x3d (function intemporal$internal$activity$fn_name(f){\nvar raw \x3d f.name;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d raw;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(clojure.string.blank_QMARK_(raw)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(raw,/\\$/);\nif((cljs.core.count(parts) \x3e (1))){\nvar ns_parts \x3d cljs.core.butlast(parts);\nvar fn_part \x3d cljs.core.last(parts);\nvar ns_str \x3d clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__28265_SHARP_){\nreturn clojure.string.replace(p1__28265_SHARP_,\x22_\x22,\x22-\x22);\n}),ns_parts));\nvar fn_str \x3d clojure.string.replace(fn_part,\x22_\x22,\x22-\x22);\nreturn [ns_str,\x22/\x22,fn_str].join(\x27\x27);\n} else {\nreturn clojure.string.replace(raw,\x22_\x22,\x22-\x22);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22activity-\x22));\n}\n});\n/**\n * Create a new activity registry\n */\nintemporal.internal.activity.make_registry \x3d (function intemporal$internal$activity$make_registry(){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\n/**\n * Register an activity function in a registry\n */\nintemporal.internal.activity.register_activity_BANG_ \x3d (function intemporal$internal$activity$register_activity_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28624 \x3d arguments.length;\nvar i__5750__auto___28625 \x3d (0);\nwhile(true){\nif((i__5750__auto___28625 \x3c len__5749__auto___28624)){\nargs__5755__auto__.push((arguments[i__5750__auto___28625]));\n\nvar G__28626 \x3d (i__5750__auto___28625 + (1));\ni__5750__auto___28625 \x3d G__28626;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (registry,f,p__28346){\nvar map__28347 \x3d p__28346;\nvar map__28347__$1 \x3d cljs.core.__destructure_map(map__28347);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28347__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar activity_name \x3d (function (){var or__5025__auto__ \x3d name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.var_QMARK_(f)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f));\n} else {\nreturn intemporal.internal.activity.fn_name(f);\n}\n}\n})();\nvar resolved_fn \x3d ((cljs.core.var_QMARK_(f))?cljs.core.deref(f):f);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(registry,cljs.core.assoc,activity_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),resolved_fn,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),retry_policy], null));\n\nreturn activity_name;\n}));\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$applyTo \x3d (function (seq28319){\nvar G__28329 \x3d cljs.core.first(seq28319);\nvar seq28319__$1 \x3d cljs.core.next(seq28319);\nvar G__28330 \x3d cljs.core.first(seq28319__$1);\nvar seq28319__$2 \x3d cljs.core.next(seq28319__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28329,G__28330,seq28319__$2);\n}));\n\nintemporal.internal.activity.get_activity_info \x3d (function intemporal$internal$activity$get_activity_info(registry,activity_name){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(registry),activity_name);\n});\nintemporal.internal.activity.get_activity_fn \x3d (function intemporal$internal$activity$get_activity_fn(registry,activity_name){\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(intemporal.internal.activity.get_activity_info(registry,activity_name));\n});\nintemporal.internal.activity.ensure_registered_BANG_ \x3d (function intemporal$internal$activity$ensure_registered_BANG_(registry,f){\nvar activity_name \x3d ((cljs.core.var_QMARK_(f))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f)):intemporal.internal.activity.fn_name(f));\nif(cljs.core.contains_QMARK_(cljs.core.deref(registry),activity_name)){\n} else {\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),activity_name], 0));\n}\n\nreturn activity_name;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.activity.RetryPolicy \x3d (function (max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,__meta,__extmap,__hash){\nthis.max_attempts \x3d max_attempts;\nthis.backoff_ms \x3d backoff_ms;\nthis.max_backoff_ms \x3d max_backoff_ms;\nthis.backoff_multiplier \x3d backoff_multiplier;\nthis.retryable_fn \x3d retryable_fn;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28407,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28458 \x3d k28407;\nvar G__28458__$1 \x3d (((G__28458 instanceof cljs.core.Keyword))?G__28458.fqn:null);\nswitch (G__28458__$1) {\ncase \x22max-attempts\x22:\nreturn self__.max_attempts;\n\nbreak;\ncase \x22backoff-ms\x22:\nreturn self__.backoff_ms;\n\nbreak;\ncase \x22max-backoff-ms\x22:\nreturn self__.max_backoff_ms;\n\nbreak;\ncase \x22backoff-multiplier\x22:\nreturn self__.backoff_multiplier;\n\nbreak;\ncase \x22retryable-fn\x22:\nreturn self__.retryable_fn;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28407,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28464){\nvar vec__28465 \x3d p__28464;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28465,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28465,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.activity.RetryPolicy{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28406){\nvar self__ \x3d this;\nvar G__28406__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28406__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (434457415 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28408,other28409){\nvar self__ \x3d this;\nvar this28408__$1 \x3d this;\nreturn (((!((other28409 \x3d\x3d null)))) \x26\x26 ((((this28408__$1.constructor \x3d\x3d\x3d other28409.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.max_attempts,other28409.max_attempts)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.backoff_ms,other28409.backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.max_backoff_ms,other28409.max_backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.backoff_multiplier,other28409.backoff_multiplier)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.retryable_fn,other28409.retryable_fn)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28408__$1.__extmap,other28409.__extmap)))))))))))))));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28407){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28539 \x3d k28407;\nvar G__28539__$1 \x3d (((G__28539 instanceof cljs.core.Keyword))?G__28539.fqn:null);\nswitch (G__28539__$1) {\ncase \x22max-attempts\x22:\ncase \x22backoff-ms\x22:\ncase \x22max-backoff-ms\x22:\ncase \x22backoff-multiplier\x22:\ncase \x22retryable-fn\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28407);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28406){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28541 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28542 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(G__28406,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,G__28406,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,G__28406,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,G__28406,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28541.cljs$core$IFn$_invoke$arity$2 ? pred__28541.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__28542) : pred__28541.call(null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__28542)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,G__28406,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28406),null));\n}\n}\n}\n}\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28406){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,G__28406,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22max-attempts\x22,\x22max-attempts\x22,-967871472,null),new cljs.core.Symbol(null,\x22backoff-ms\x22,\x22backoff-ms\x22,-975154262,null),new cljs.core.Symbol(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,-570662135,null),new cljs.core.Symbol(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-200564171,null),new cljs.core.Symbol(null,\x22retryable-fn\x22,\x22retryable-fn\x22,-2084944186,null)], null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$type \x3d true);\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.activity/RetryPolicy\x22,null,(1),null));\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.activity/RetryPolicy\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.activity/RetryPolicy.\n */\nintemporal.internal.activity.__GT_RetryPolicy \x3d (function intemporal$internal$activity$__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn){\nreturn (new intemporal.internal.activity.RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.activity/RetryPolicy, taking a map of keywords to field values.\n */\nintemporal.internal.activity.map__GT_RetryPolicy \x3d (function intemporal$internal$activity$map__GT_RetryPolicy(G__28436){\nvar extmap__5365__auto__ \x3d (function (){var G__28574 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28436,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], 0));\nif(cljs.core.record_QMARK_(G__28436)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28574);\n} else {\nreturn G__28574;\n}\n})();\nreturn (new intemporal.internal.activity.RetryPolicy(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(G__28436),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(G__28436),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a retry policy\n */\nintemporal.internal.activity.make_retry_policy \x3d (function intemporal$internal$activity$make_retry_policy(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28673 \x3d arguments.length;\nvar i__5750__auto___28676 \x3d (0);\nwhile(true){\nif((i__5750__auto___28676 \x3c len__5749__auto___28673)){\nargs__5755__auto__.push((arguments[i__5750__auto___28676]));\n\nvar G__28677 \x3d (i__5750__auto___28676 + (1));\ni__5750__auto___28676 \x3d G__28677;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__28609){\nvar map__28612 \x3d p__28609;\nvar map__28612__$1 \x3d cljs.core.__destructure_map(map__28612);\nvar max_attempts \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),(3));\nvar backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),(1000));\nvar max_backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),(60000));\nvar backoff_multiplier \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),2.0);\nvar retryable_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28612__$1,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),cljs.core.constantly(true));\nreturn intemporal.internal.activity.__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn);\n}));\n\n(intemporal.internal.activity.make_retry_policy.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.activity.make_retry_policy.cljs$lang$applyTo \x3d (function (seq28606){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq28606));\n}));\n\nintemporal.internal.activity.calculate_backoff \x3d (function intemporal$internal$activity$calculate_backoff(policy,attempt){\nvar base \x3d new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(policy);\nvar multiplier \x3d new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(policy);\nvar max_backoff \x3d new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(policy);\nvar backoff \x3d (base * Math.pow(multiplier,(attempt - (1))));\nreturn cljs.core.long$((function (){var x__5113__auto__ \x3d backoff;\nvar y__5114__auto__ \x3d max_backoff;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\n});\nintemporal.internal.activity.should_retry_QMARK_ \x3d (function intemporal$internal$activity$should_retry_QMARK_(policy,error,attempt){\nvar and__5023__auto__ \x3d (attempt \x3c new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(policy));\nif(and__5023__auto__){\nvar fexpr__28623 \x3d new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(policy);\nreturn (fexpr__28623.cljs$core$IFn$_invoke$arity$1 ? fexpr__28623.cljs$core$IFn$_invoke$arity$1(error) : fexpr__28623.call(null,error));\n} else {\nreturn and__5023__auto__;\n}\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__28873 \x3d (_ + (1));\n_ \x3d G__28873;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28837_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28837_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28837_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28896 \x3d arguments.length;\nvar i__5750__auto___28897 \x3d (0);\nwhile(true){\nif((i__5750__auto___28897 \x3c len__5749__auto___28896)){\nargs__5755__auto__.push((arguments[i__5750__auto___28897]));\n\nvar G__28898 \x3d (i__5750__auto___28897 + (1));\ni__5750__auto___28897 \x3d G__28898;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e28866){if((e28866 instanceof Error)){\nvar e \x3d e28866;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e28866;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq28853){\nvar G__28854 \x3d cljs.core.first(seq28853);\nvar seq28853__$1 \x3d cljs.core.next(seq28853);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28854,seq28853__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.activity.js", true, "goog.provide(\x27intemporal.internal.activity\x27);\n/**\n * Get a stable, qualified name string from a function.\n * On JVM: uses var metadata when available, otherwise class name.\n * On CLJS: demangles the JS function .name property (e.g. ns$fn_name -\x3e ns/fn-name).\n */\nintemporal.internal.activity.fn_name \x3d (function intemporal$internal$activity$fn_name(f){\nvar raw \x3d f.name;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d raw;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(clojure.string.blank_QMARK_(raw)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(raw,/\\$/);\nif((cljs.core.count(parts) \x3e (1))){\nvar ns_parts \x3d cljs.core.butlast(parts);\nvar fn_part \x3d cljs.core.last(parts);\nvar ns_str \x3d clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__50103_SHARP_){\nreturn clojure.string.replace(p1__50103_SHARP_,\x22_\x22,\x22-\x22);\n}),ns_parts));\nvar fn_str \x3d clojure.string.replace(fn_part,\x22_\x22,\x22-\x22);\nreturn [ns_str,\x22/\x22,fn_str].join(\x27\x27);\n} else {\nreturn clojure.string.replace(raw,\x22_\x22,\x22-\x22);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22activity-\x22));\n}\n});\n/**\n * Create a new activity registry\n */\nintemporal.internal.activity.make_registry \x3d (function intemporal$internal$activity$make_registry(){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\n/**\n * Register an activity function in a registry\n */\nintemporal.internal.activity.register_activity_BANG_ \x3d (function intemporal$internal$activity$register_activity_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50128 \x3d arguments.length;\nvar i__5750__auto___50129 \x3d (0);\nwhile(true){\nif((i__5750__auto___50129 \x3c len__5749__auto___50128)){\nargs__5755__auto__.push((arguments[i__5750__auto___50129]));\n\nvar G__50130 \x3d (i__5750__auto___50129 + (1));\ni__5750__auto___50129 \x3d G__50130;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (registry,f,p__50107){\nvar map__50108 \x3d p__50107;\nvar map__50108__$1 \x3d cljs.core.__destructure_map(map__50108);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar activity_name \x3d (function (){var or__5025__auto__ \x3d name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.var_QMARK_(f)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f));\n} else {\nreturn intemporal.internal.activity.fn_name(f);\n}\n}\n})();\nvar resolved_fn \x3d ((cljs.core.var_QMARK_(f))?cljs.core.deref(f):f);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(registry,cljs.core.assoc,activity_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),resolved_fn,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),retry_policy], null));\n\nreturn activity_name;\n}));\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$applyTo \x3d (function (seq50104){\nvar G__50105 \x3d cljs.core.first(seq50104);\nvar seq50104__$1 \x3d cljs.core.next(seq50104);\nvar G__50106 \x3d cljs.core.first(seq50104__$1);\nvar seq50104__$2 \x3d cljs.core.next(seq50104__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50105,G__50106,seq50104__$2);\n}));\n\n/**\n * Register all methods of a protocol as activities, using the provided implementation.\n */\nintemporal.internal.activity.register_protocol_activities_BANG_ \x3d (function intemporal$internal$activity$register_protocol_activities_BANG_(registry,protocol,implementation){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22register-protocol-activities! not needed in CLJS. Use stub-protocol macro.\x22,cljs.core.PersistentArrayMap.EMPTY);\n});\nintemporal.internal.activity.get_activity_info \x3d (function intemporal$internal$activity$get_activity_info(registry,activity_name){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(registry),activity_name);\n});\nintemporal.internal.activity.get_activity_fn \x3d (function intemporal$internal$activity$get_activity_fn(registry,activity_name){\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(intemporal.internal.activity.get_activity_info(registry,activity_name));\n});\nintemporal.internal.activity.ensure_registered_BANG_ \x3d (function intemporal$internal$activity$ensure_registered_BANG_(registry,f){\nvar activity_name \x3d ((cljs.core.var_QMARK_(f))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f)):intemporal.internal.activity.fn_name(f));\nif(cljs.core.contains_QMARK_(cljs.core.deref(registry),activity_name)){\n} else {\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),activity_name], 0));\n}\n\nreturn activity_name;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.activity.RetryPolicy \x3d (function (max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,__meta,__extmap,__hash){\nthis.max_attempts \x3d max_attempts;\nthis.backoff_ms \x3d backoff_ms;\nthis.max_backoff_ms \x3d max_backoff_ms;\nthis.backoff_multiplier \x3d backoff_multiplier;\nthis.retryable_fn \x3d retryable_fn;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50110,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50114 \x3d k50110;\nvar G__50114__$1 \x3d (((G__50114 instanceof cljs.core.Keyword))?G__50114.fqn:null);\nswitch (G__50114__$1) {\ncase \x22max-attempts\x22:\nreturn self__.max_attempts;\n\nbreak;\ncase \x22backoff-ms\x22:\nreturn self__.backoff_ms;\n\nbreak;\ncase \x22max-backoff-ms\x22:\nreturn self__.max_backoff_ms;\n\nbreak;\ncase \x22backoff-multiplier\x22:\nreturn self__.backoff_multiplier;\n\nbreak;\ncase \x22retryable-fn\x22:\nreturn self__.retryable_fn;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50110,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50115){\nvar vec__50116 \x3d p__50115;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.activity.RetryPolicy{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50109){\nvar self__ \x3d this;\nvar G__50109__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50109__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (434457415 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50111,other50112){\nvar self__ \x3d this;\nvar this50111__$1 \x3d this;\nreturn (((!((other50112 \x3d\x3d null)))) \x26\x26 ((((this50111__$1.constructor \x3d\x3d\x3d other50112.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_attempts,other50112.max_attempts)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_ms,other50112.backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_backoff_ms,other50112.max_backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_multiplier,other50112.backoff_multiplier)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.retryable_fn,other50112.retryable_fn)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.__extmap,other50112.__extmap)))))))))))))));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50110){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50119 \x3d k50110;\nvar G__50119__$1 \x3d (((G__50119 instanceof cljs.core.Keyword))?G__50119.fqn:null);\nswitch (G__50119__$1) {\ncase \x22max-attempts\x22:\ncase \x22backoff-ms\x22:\ncase \x22max-backoff-ms\x22:\ncase \x22backoff-multiplier\x22:\ncase \x22retryable-fn\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50110);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50120 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50121 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(G__50109,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,G__50109,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,G__50109,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,G__50109,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,G__50109,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50109),null));\n}\n}\n}\n}\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,G__50109,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22max-attempts\x22,\x22max-attempts\x22,-967871472,null),new cljs.core.Symbol(null,\x22backoff-ms\x22,\x22backoff-ms\x22,-975154262,null),new cljs.core.Symbol(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,-570662135,null),new cljs.core.Symbol(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-200564171,null),new cljs.core.Symbol(null,\x22retryable-fn\x22,\x22retryable-fn\x22,-2084944186,null)], null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$type \x3d true);\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.activity/RetryPolicy\x22,null,(1),null));\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.activity/RetryPolicy\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.activity/RetryPolicy.\n */\nintemporal.internal.activity.__GT_RetryPolicy \x3d (function intemporal$internal$activity$__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn){\nreturn (new intemporal.internal.activity.RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.activity/RetryPolicy, taking a map of keywords to field values.\n */\nintemporal.internal.activity.map__GT_RetryPolicy \x3d (function intemporal$internal$activity$map__GT_RetryPolicy(G__50113){\nvar extmap__5365__auto__ \x3d (function (){var G__50123 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50113,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], 0));\nif(cljs.core.record_QMARK_(G__50113)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50123);\n} else {\nreturn G__50123;\n}\n})();\nreturn (new intemporal.internal.activity.RetryPolicy(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(G__50113),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a retry policy\n */\nintemporal.internal.activity.make_retry_policy \x3d (function intemporal$internal$activity$make_retry_policy(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50133 \x3d arguments.length;\nvar i__5750__auto___50134 \x3d (0);\nwhile(true){\nif((i__5750__auto___50134 \x3c len__5749__auto___50133)){\nargs__5755__auto__.push((arguments[i__5750__auto___50134]));\n\nvar G__50135 \x3d (i__5750__auto___50134 + (1));\ni__5750__auto___50134 \x3d G__50135;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50125){\nvar map__50126 \x3d p__50125;\nvar map__50126__$1 \x3d cljs.core.__destructure_map(map__50126);\nvar max_attempts \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),(3));\nvar backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),(1000));\nvar max_backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),(60000));\nvar backoff_multiplier \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),2.0);\nvar retryable_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),cljs.core.constantly(true));\nreturn intemporal.internal.activity.__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn);\n}));\n\n(intemporal.internal.activity.make_retry_policy.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.activity.make_retry_policy.cljs$lang$applyTo \x3d (function (seq50124){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50124));\n}));\n\nintemporal.internal.activity.calculate_backoff \x3d (function intemporal$internal$activity$calculate_backoff(policy,attempt){\nvar base \x3d new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(policy);\nvar multiplier \x3d new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(policy);\nvar max_backoff \x3d new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(policy);\nvar backoff \x3d (base * Math.pow(multiplier,(attempt - (1))));\nreturn cljs.core.long$((function (){var x__5113__auto__ \x3d backoff;\nvar y__5114__auto__ \x3d max_backoff;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\n});\nintemporal.internal.activity.should_retry_QMARK_ \x3d (function intemporal$internal$activity$should_retry_QMARK_(policy,error,attempt){\nvar and__5023__auto__ \x3d (attempt \x3c new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(policy));\nif(and__5023__auto__){\nvar fexpr__50127 \x3d new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(policy);\nreturn (fexpr__50127.cljs$core$IFn$_invoke$arity$1 ? fexpr__50127.cljs$core$IFn$_invoke$arity$1(error) : fexpr__50127.call(null,error));\n} else {\nreturn and__5023__auto__;\n}\n});\n"); SHADOW_ENV.evalLoad("taoensso.truss.impl.js", true, "goog.provide(\x27taoensso.truss.impl\x27);\ntaoensso.truss.impl.re_pattern_QMARK_ \x3d (function taoensso$truss$impl$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\ntaoensso.truss.impl.str_contains_QMARK_ \x3d (function taoensso$truss$impl$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.truss.impl.revery_QMARK_ \x3d (function taoensso$truss$impl$revery_QMARK_(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,coll);\n});\ntaoensso.truss.impl.revery \x3d (function taoensso$truss$impl$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\ntaoensso.truss.impl.rsome \x3d (function taoensso$truss$impl$rsome(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nvar temp__5825__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar p \x3d temp__5825__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n}),null,coll);\n});\ntaoensso.truss.impl.assoc_some \x3d (function taoensso$truss$impl$assoc_some(var_args){\nvar G__28598 \x3d arguments.length;\nswitch (G__28598) {\ncase 3:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.truss.impl.assoc_some,m,m_kvs);\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.truss.impl.ensure_set \x3d (function taoensso$truss$impl$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\ntaoensso.truss.impl.ks_nnil_QMARK_ \x3d (function taoensso$truss$impl$ks_nnil_QMARK_(ks,m){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28613_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__28613_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.truss.impl.ks_EQ_ \x3d (function taoensso$truss$impl$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28617_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28617_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_GT__EQ_ \x3d (function taoensso$truss$impl$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28622_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28622_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_LT__EQ_ \x3d (function taoensso$truss$impl$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.truss.impl.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.truss.impl.FailedAssertionInfo \x3d (function (ns,coords,pred,arg_form,arg_val,data,error,__meta,__extmap,__hash){\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.pred \x3d pred;\nthis.arg_form \x3d arg_form;\nthis.arg_val \x3d arg_val;\nthis.data \x3d data;\nthis.error \x3d error;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28631,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28648 \x3d k28631;\nvar G__28648__$1 \x3d (((G__28648 instanceof cljs.core.Keyword))?G__28648.fqn:null);\nswitch (G__28648__$1) {\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22pred\x22:\nreturn self__.pred;\n\nbreak;\ncase \x22arg-form\x22:\nreturn self__.arg_form;\n\nbreak;\ncase \x22arg-val\x22:\nreturn self__.arg_val;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28631,else__5326__auto__);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28656){\nvar vec__28657 \x3d p__28656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.truss.impl.FailedAssertionInfo{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28630){\nvar self__ \x3d this;\nvar G__28630__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28630__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (7 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-352893736 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28632,other28633){\nvar self__ \x3d this;\nvar this28632__$1 \x3d this;\nreturn (((!((other28633 \x3d\x3d null)))) \x26\x26 ((((this28632__$1.constructor \x3d\x3d\x3d other28633.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.ns,other28633.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.coords,other28633.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.pred,other28633.pred)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_form,other28633.arg_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_val,other28633.arg_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.data,other28633.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.error,other28633.error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.__extmap,other28633.__extmap)))))))))))))))))));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28631){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28678 \x3d k28631;\nvar G__28678__$1 \x3d (((G__28678 instanceof cljs.core.Keyword))?G__28678.fqn:null);\nswitch (G__28678__$1) {\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22pred\x22:\ncase \x22arg-form\x22:\ncase \x22arg-val\x22:\ncase \x22data\x22:\ncase \x22error\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28631);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28679 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28680 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(G__28630,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__28630,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__28630,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__28630,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__28630,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__28630,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__28630,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28630),null));\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__28630,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22arg-form\x22,\x22arg-form\x22,-1253871756,null),new cljs.core.Symbol(null,\x22arg-val\x22,\x22arg-val\x22,-852016489,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null)], null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.truss.impl/FailedAssertionInfo\x22,null,(1),null));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.truss.impl/FailedAssertionInfo\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/FailedAssertionInfo.\n */\ntaoensso.truss.impl.__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$__GT_FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error,null,null,null));\n});\n\n/**\n * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values.\n */\ntaoensso.truss.impl.map__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__28640){\nvar extmap__5365__auto__ \x3d (function (){var G__28682 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28640,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], 0));\nif(cljs.core.record_QMARK_(G__28640)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28682);\n} else {\nreturn G__28682;\n}\n})();\nreturn (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__28640),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.truss.impl.ArgEvalError \x3d (function (ex){\nthis.ex \x3d ex;\n});\n\n(taoensso.truss.impl.ArgEvalError.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ex\x22,\x22ex\x22,226760186,null)], null);\n}));\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorStr \x3d \x22taoensso.truss.impl/ArgEvalError\x22);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.truss.impl/ArgEvalError\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/ArgEvalError.\n */\ntaoensso.truss.impl.__GT_ArgEvalError \x3d (function taoensso$truss$impl$__GT_ArgEvalError(ex){\nreturn (new taoensso.truss.impl.ArgEvalError(ex));\n});\n\ntaoensso.truss.impl.FalsePredError \x3d ({});\n"); SHADOW_ENV.evalLoad("taoensso.truss.js", true, "goog.provide(\x27taoensso.truss\x27);\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.truss.submap_QMARK_ \x3d (function taoensso$truss$submap_QMARK_(super_map,sub_map){\nreturn cljs.core.reduce_kv((function (_,sub_key,sub_val){\nif(cljs.core.map_QMARK_(sub_val)){\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(super_map,sub_key);\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.map_QMARK_(super_val);\nif(and__5023__auto__){\nreturn (taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(super_val,sub_val) : taoensso.truss.submap_QMARK_.call(null,super_val,sub_val));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n} else {\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(super_map,sub_key,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\nvar temp__5823__auto__ \x3d (function (){var temp__5823__auto__ \x3d ((cljs.core.fn_QMARK_(sub_val))?sub_val:null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pred_fn \x3d temp__5823__auto__;\nreturn (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val));\n} else {\nvar G__28967 \x3d sub_val;\nvar G__28967__$1 \x3d (((G__28967 instanceof cljs.core.Keyword))?G__28967.fqn:null);\nswitch (G__28967__$1) {\ncase \x22submap/nx\x22:\nreturn cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\n\nbreak;\ncase \x22submap/ex\x22:\nreturn (!(cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303))));\n\nbreak;\ncase \x22submap/some\x22:\nreturn (!((super_val \x3d\x3d null)));\n\nbreak;\ndefault:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sub_val,super_val);\n\n}\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}\n}),true,sub_map);\n});\n/**\n * Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when\n * using futures, agents, etc.\n */\ntaoensso.truss._STAR_ctx_STAR_ \x3d null;\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.ex_info_STAR_ \x3d (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){\nvar data_map__$1 \x3d (((ns \x3d\x3d null))?data_map:(cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null),data_map)\n));\nvar data_map__$2 \x3d (function (){var temp__5823__auto__ \x3d taoensso.truss._STAR_ctx_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ctx \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data_map__$1,new cljs.core.Keyword(\x22truss\x22,\x22ctx\x22,\x22truss/ctx\x22,-336831129),ctx);\n} else {\nreturn data_map__$1;\n}\n})();\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data_map__$2,cause);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.unexpected_arg_BANG__STAR_ \x3d (function taoensso$truss$unexpected_arg_BANG__STAR_(ns,coords,arg,kvs){\nthrow taoensso.truss.ex_info_STAR_(ns,coords,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [\x22Unexpected argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((arg \x3d\x3d null))?\x22\x3cnil\x3e\x22:arg))].join(\x27\x27);\n}\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444)),new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg)], null)),null);\n});\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.truss.set_ctx_BANG_ \x3d (function taoensso$truss$set_ctx_BANG_(root_ctx_val){\nreturn (taoensso.truss._STAR_ctx_STAR_ \x3d root_ctx_val);\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.truss.update_ctx \x3d (function taoensso$truss$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d old_ctx;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [195,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22update-ctx\x22,\x22taoensso.truss/update-ctx\x22,2138642429,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.truss.error_QMARK_ \x3d (function taoensso$truss$error_QMARK_(x){\nreturn (x instanceof Error);\n});\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.truss.ex_root \x3d (function taoensso$truss$ex_root(x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29702 \x3d cause;\nerror \x3d G__29702;\ncontinue;\n} else {\nreturn error;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.truss.ex_type \x3d (function taoensso$truss$ex_type(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null);\n} else {\nif((x instanceof Error)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,x.name);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.truss.ex_map_STAR_ \x3d (function taoensso$truss$ex_map_STAR_(x){\nvar temp__5825__auto__ \x3d cljs.core.ex_message(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar msg \x3d temp__5825__auto__;\nvar temp__5823__auto__ \x3d cljs.core.not_empty(cljs.core.ex_data(x));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar data \x3d temp__5823__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.truss.ex_chain \x3d (function taoensso$truss$ex_chain(var_args){\nvar G__29025 \x3d arguments.length;\nswitch (G__29025) {\ncase 1:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (as_maps_QMARK_,x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar xf \x3d (cljs.core.truth_(as_maps_QMARK_)?taoensso.truss.ex_map_STAR_:cljs.core.identity);\nvar acc \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(x) : xf.call(null,x))], null);\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29732 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause)));\nvar G__29733 \x3d cause;\nacc \x3d G__29732;\nerror \x3d G__29733;\ncontinue;\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.ex_chain.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.truss.ex_map \x3d (function taoensso$truss$ex_map(x){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar chain \x3d temp__5825__auto__;\nvar maps \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.truss.ex_map_STAR_,chain);\nvar root \x3d cljs.core.peek(chain);\nvar root_map \x3d cljs.core.peek(maps);\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(root_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029),maps,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(function (){var temp__5825__auto____$1 \x3d root.stack;\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar st \x3d temp__5825__auto____$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(st,\x22\x22)){\nreturn null;\n} else {\nreturn st;\n}\n} else {\nreturn null;\n}\n})()], null));\n} else {\nreturn null;\n}\n});\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.truss.matching_error \x3d (function taoensso$truss$matching_error(var_args){\nvar G__29188 \x3d arguments.length;\nswitch (G__29188) {\ncase 1:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1 \x3d (function (error){\nreturn error;\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,error){\nvar temp__5825__auto__ \x3d (((kind instanceof cljs.core.Keyword))?(function (){var G__29198 \x3d kind;\nvar G__29198__$1 \x3d (((G__29198 instanceof cljs.core.Keyword))?G__29198.fqn:null);\nswitch (G__29198__$1) {\ncase \x22default\x22:\ncase \x22all-but-critical\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ncase \x22common\x22:\nreturn (error instanceof Error);\n\nbreak;\ncase \x22ex-info\x22:\nreturn (error instanceof cljs.core.ExceptionInfo);\n\nbreak;\ncase \x22all\x22:\ncase \x22any\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ndefault:\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [406,21], null),\x22Unexpected Truss `matching-error` `kind` keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),kind,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.Keyword(null,\x22all\x22,\x22all\x22,892129742),\x22null\x22,new cljs.core.Keyword(null,\x22common\x22,\x22common\x22,-1822281391),\x22null\x22,new cljs.core.Keyword(null,\x22ex-info\x22,\x22ex-info\x22,2114560529),\x22null\x22], null), null)], null),null);\n\n}\n})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__29172_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__29172_SHARP_,error);\n}),kind):(error instanceof kind)\n))));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar match_QMARK_ \x3d temp__5825__auto__;\nreturn error;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,pattern,error){\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(kind,error);\nif(cljs.core.truth_(and__5023__auto__)){\nif((pattern \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.set_QMARK_(pattern)){\nreturn taoensso.truss.impl.rsome((function (p1__29175_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__29175_SHARP_,error);\n}),pattern);\n} else {\nif(typeof pattern \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.truss.impl.str_contains_QMARK_(cljs.core.ex_message(error),pattern);\n} else {\nif(taoensso.truss.impl.re_pattern_QMARK_(pattern)){\nreturn cljs.core.re_find(pattern,cljs.core.ex_message(error));\n} else {\nif(cljs.core.map_QMARK_(pattern)){\nvar temp__5825__auto__ \x3d cljs.core.ex_data(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar data \x3d temp__5825__auto__;\nreturn taoensso.truss.submap_QMARK_(data,pattern);\n} else {\nreturn null;\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [428,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pattern\x22,\x22pattern\x22,1882666950,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22matching-error\x22,\x22taoensso.truss/matching-error\x22,557680092,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22re-pattern\x22,\x22re-pattern\x22,1047705161,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn error;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar cause \x3d temp__5825__auto__;\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,pattern,cause);\n} else {\nreturn null;\n}\n}\n}));\n\n(taoensso.truss.matching_error.cljs$lang$maxFixedArity \x3d 3);\n\nvar get_default_error_fn_29781 \x3d (function (base_data){\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468),\x22Error thrown during reduction\x22);\nvar base_data__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468));\nreturn (function taoensso$truss$default_error_fn(data,cause){\nthrow taoensso.truss.ex_info_STAR_(null,null,msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause);\n});\n});\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.truss.catching_rf \x3d (function taoensso$truss$catching_rf(var_args){\nvar G__29301 \x3d arguments.length;\nswitch (G__29301) {\ncase 1:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_29781(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf], null)),rf);\n}));\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,rf){\nvar error_fn__$1 \x3d ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_29781(error_fn):error_fn);\nreturn (function() {\nvar taoensso$truss$catching_rf \x3d null;\nvar taoensso$truss$catching_rf__0 \x3d (function (){\ntry{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n}catch (e29328){var t \x3d e29328;\nvar G__29332 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null))], null);\nvar G__29333 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29332,G__29333) : error_fn__$1.call(null,G__29332,G__29333));\n}});\nvar taoensso$truss$catching_rf__1 \x3d (function (acc){\ntry{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n}catch (e29345){var t \x3d e29345;\nvar G__29349 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null)], null)], null);\nvar G__29350 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29349,G__29350) : error_fn__$1.call(null,G__29349,G__29350));\n}});\nvar taoensso$truss$catching_rf__2 \x3d (function (acc,in$){\ntry{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}catch (e29364){var t \x3d e29364;\nvar G__29368 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),in$,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(in$)], null)], null)], null);\nvar G__29369 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29368,G__29369) : error_fn__$1.call(null,G__29368,G__29369));\n}});\nvar taoensso$truss$catching_rf__3 \x3d (function (acc,k,v){\ntry{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n}catch (e29374){var t \x3d e29374;\nvar G__29375 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),k,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,\x22v\x22,\x22v\x22,21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),v,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(v)], null)], null)], null);\nvar G__29376 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29375,G__29376) : error_fn__$1.call(null,G__29375,G__29376));\n}});\ntaoensso$truss$catching_rf \x3d function(acc,k,v){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$truss$catching_rf__0.call(this);\ncase 1:\nreturn taoensso$truss$catching_rf__1.call(this,acc);\ncase 2:\nreturn taoensso$truss$catching_rf__2.call(this,acc,k);\ncase 3:\nreturn taoensso$truss$catching_rf__3.call(this,acc,k,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$truss$catching_rf__0;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$truss$catching_rf__1;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$truss$catching_rf__2;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$truss$catching_rf__3;\nreturn taoensso$truss$catching_rf;\n})()\n}));\n\n(taoensso.truss.catching_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.truss.catching_xform \x3d (function taoensso$truss$catching_xform(var_args){\nvar G__29395 \x3d arguments.length;\nswitch (G__29395) {\ncase 2:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(error_fn,rf);\n}),xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.truss.sys_newline \x3d \x22\\n\x22;\nvar legacy_ex_data_QMARK__29853 \x3d false;\n/**\n * Returns an appropriate `truss/ex-info` for given failed assertion info map.\n */\ntaoensso.truss.failed_assertion_ex_info \x3d (function taoensso$truss$failed_assertion_ex_info(var_args){\nvar G__29442 \x3d arguments.length;\nswitch (G__29442) {\ncase 1:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (failed_assertion_info){\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__29853,failed_assertion_info);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (legacy_ex_data_QMARK___$1,failed_assertion_info){\nvar map__29454 \x3d failed_assertion_info;\nvar map__29454__$1 \x3d cljs.core.__destructure_map(map__29454);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar undefined_arg_QMARK_ \x3d cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181));\nvar coords_str \x3d (function (){var temp__5825__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__29471 \x3d temp__5825__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(1),null);\nif(cljs.core.truth_(column)){\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn null;\n}\n})();\nvar msg \x3d [\x22Truss assertion failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),coords_str,\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nvar msg__$1 \x3d (cljs.core.truth_(error)?(function (){var error_msg \x3d cljs.core.ex_message(error);\nif(undefined_arg_QMARK_){\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n})():msg);\nreturn taoensso.truss.ex_info_STAR_(null,null,msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),(function (){var vec__29490 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null);\n})(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),(new Date()),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null))),error);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unary handler fn to call with failed assertion info map when a Truss\n * assertion (`have`, `have?`, `have!`, `have!?`) fails.\n * \n * Will by default throw an appropriate `truss/ex-info`.\n * This is a decent place to inject logging for assertion failures, etc.\n * \n * Arg given to handler is a map with keys:\n * \n * `:ns` ----------- ?str namespace of assertion callsite\n * `:coords` ------- ?[line column] of assertion callsite\n * \n * `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n * `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n * `:arg-val` ------ Runtime value of argument given to predicate\n * \n * `:data` --------- Optional arbitrary data map provided to assertion macro\n * `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\n */\ntaoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d (function taoensso$truss$_STAR_failed_assertion_handler_STAR_(failed_assertion_info){\nthrow taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1(failed_assertion_info);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.failed_assertion_BANG_ \x3d (function taoensso$truss$failed_assertion_BANG_(ns,line,column,pred,arg_form,arg_val,data_fn,error){\nvar temp__5823__auto__ \x3d taoensso.truss._STAR_failed_assertion_handler_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar handler \x3d temp__5823__auto__;\nvar G__29554 \x3d (function (){var undefined_arg_QMARK_ \x3d (arg_val instanceof taoensso.truss.impl.ArgEvalError);\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):arg_val),(function (){var temp__5825__auto__ \x3d data_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar df \x3d temp__5825__auto__;\ntry{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null));\n}catch (e29557){var _ \x3d e29557;\nreturn new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181);\n}} else {\nreturn null;\n}\n})(),(((error \x3d\x3d\x3d taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error\n)),null,null,null));\n})();\nreturn (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__29554) : handler.call(null,G__29554));\n} else {\nreturn arg_val;\n}\n});\n/**\n * Private, don\x27t use. Wraps given Truss v1 `error-fn` to convert\n * Truss v2 `*failed-assertion-handler*` arg.\n */\ntaoensso.truss.legacy_error_fn \x3d (function taoensso$truss$legacy_error_fn(f){\nif(cljs.core.truth_(f)){\nreturn (function (failed_assertion_info){\nvar G__29581 \x3d (new cljs.core.Delay((function (){\nvar map__29588 \x3d failed_assertion_info;\nvar map__29588__$1 \x3d cljs.core.__destructure_map(map__29588);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar vec__29589 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(1),null);\nvar msg_ \x3d (new cljs.core.Delay((function (){\nvar msg \x3d [\x22Invariant failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?[\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):null),\x22]\x22].join(\x27\x27):null),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nif(cljs.core.truth_(error)){\nvar error_msg \x3d cljs.core.ex_message(error);\nif(cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181))){\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n} else {\nreturn msg;\n}\n}),null));\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),msg_,new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data], null)),new cljs.core.Keyword(null,\x22err\x22,\x22err\x22,-2089457205),error], null));\n}),null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__29581) : f.call(null,G__29581));\n});\n} else {\nreturn null;\n}\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_dynamic_assertion_data \x3d (function taoensso$truss$get_dynamic_assertion_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_data \x3d (function taoensso$truss$get_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*failed-assertion-handler*` (note breaking changes to argument).\n */\ntaoensso.truss.set_error_fn_BANG_ \x3d (function taoensso$truss$set_error_fn_BANG_(f){\nreturn (taoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d taoensso.truss.legacy_error_fn(f));\n});\n"); SHADOW_ENV.evalLoad("cljs.tools.reader.impl.utils.js", true, "goog.provide(\x27cljs.tools.reader.impl.utils\x27);\ncljs.tools.reader.impl.utils.char$ \x3d (function cljs$tools$reader$impl$utils$char(x){\nif((x \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.char$(x);\n}\n});\ncljs.tools.reader.impl.utils.ex_info_QMARK_ \x3d (function cljs$tools$reader$impl$utils$ex_info_QMARK_(ex){\nreturn (ex instanceof cljs.core.ExceptionInfo);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.tools.reader.impl.utils.ReaderConditional \x3d (function (splicing_QMARK_,form,__meta,__extmap,__hash){\nthis.splicing_QMARK_ \x3d splicing_QMARK_;\nthis.form \x3d form;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k33250,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__33274 \x3d k33250;\nvar G__33274__$1 \x3d (((G__33274 instanceof cljs.core.Keyword))?G__33274.fqn:null);\nswitch (G__33274__$1) {\ncase \x22splicing?\x22:\nreturn self__.splicing_QMARK_;\n\nbreak;\ncase \x22form\x22:\nreturn self__.form;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k33250,else__5326__auto__);\n\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__33285){\nvar vec__33287 \x3d p__33285;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33287,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33287,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#cljs.tools.reader.impl.utils.ReaderConditional{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),self__.splicing_QMARK_],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),self__.form],null))], null),self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__33249){\nvar self__ \x3d this;\nvar G__33249__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__33249__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-209062840 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this33251,other33252){\nvar self__ \x3d this;\nvar this33251__$1 \x3d this;\nreturn (((!((other33252 \x3d\x3d null)))) \x26\x26 ((((this33251__$1.constructor \x3d\x3d\x3d other33252.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.splicing_QMARK_,other33252.splicing_QMARK_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.form,other33252.form)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this33251__$1.__extmap,other33252.__extmap)))))))));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),null,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k33250){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__33351 \x3d k33250;\nvar G__33351__$1 \x3d (((G__33351 instanceof cljs.core.Keyword))?G__33351.fqn:null);\nswitch (G__33351__$1) {\ncase \x22splicing?\x22:\ncase \x22form\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k33250);\n\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__33249){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__33359 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__33360 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__33359.cljs$core$IFn$_invoke$arity$2 ? pred__33359.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),expr__33360) : pred__33359.call(null,new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),expr__33360)))){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(G__33249,self__.form,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__33359.cljs$core$IFn$_invoke$arity$2 ? pred__33359.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),expr__33360) : pred__33359.call(null,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),expr__33360)))){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,G__33249,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__33249),null));\n}\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),self__.splicing_QMARK_,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),self__.form,null))], null),self__.__extmap));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__33249){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(self__.splicing_QMARK_,self__.form,G__33249,self__.__extmap,self__.__hash));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22splicing?\x22,\x22splicing?\x22,1211935161,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null)], null);\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$type \x3d true);\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22cljs.tools.reader.impl.utils/ReaderConditional\x22,null,(1),null));\n}));\n\n(cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22cljs.tools.reader.impl.utils/ReaderConditional\x22);\n}));\n\n/**\n * Positional factory function for cljs.tools.reader.impl.utils/ReaderConditional.\n */\ncljs.tools.reader.impl.utils.__GT_ReaderConditional \x3d (function cljs$tools$reader$impl$utils$__GT_ReaderConditional(splicing_QMARK_,form){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(splicing_QMARK_,form,null,null,null));\n});\n\n/**\n * Factory function for cljs.tools.reader.impl.utils/ReaderConditional, taking a map of keywords to field values.\n */\ncljs.tools.reader.impl.utils.map__GT_ReaderConditional \x3d (function cljs$tools$reader$impl$utils$map__GT_ReaderConditional(G__33265){\nvar extmap__5365__auto__ \x3d (function (){var G__33401 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__33265,new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471)], 0));\nif(cljs.core.record_QMARK_(G__33265)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__33401);\n} else {\nreturn G__33401;\n}\n})();\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(new cljs.core.Keyword(null,\x22splicing?\x22,\x22splicing?\x22,-428596366).cljs$core$IFn$_invoke$arity$1(G__33265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(G__33265),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Return true if the value is the data representation of a reader conditional\n */\ncljs.tools.reader.impl.utils.reader_conditional_QMARK_ \x3d (function cljs$tools$reader$impl$utils$reader_conditional_QMARK_(value){\nreturn (value instanceof cljs.tools.reader.impl.utils.ReaderConditional);\n});\n/**\n * Construct a data representation of a reader conditional.\n * If true, splicing? indicates read-cond-splicing.\n */\ncljs.tools.reader.impl.utils.reader_conditional \x3d (function cljs$tools$reader$impl$utils$reader_conditional(form,splicing_QMARK_){\nreturn (new cljs.tools.reader.impl.utils.ReaderConditional(splicing_QMARK_,form,null,null,null));\n});\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\ncljs.core._write(writer,[\x22#?\x22,(cljs.core.truth_(coll__$1.splicing_QMARK_)?\x22@\x22:null)].join(\x27\x27));\n\nreturn cljs.core.pr_writer(coll__$1.form,writer,opts);\n}));\ncljs.tools.reader.impl.utils.ws_rx \x3d /[\\s]/;\n/**\n * Checks whether a given character is whitespace\n */\ncljs.tools.reader.impl.utils.whitespace_QMARK_ \x3d (function cljs$tools$reader$impl$utils$whitespace_QMARK_(ch){\nif((ch \x3d\x3d null)){\nreturn null;\n} else {\nif((ch \x3d\x3d\x3d \x22,\x22)){\nreturn true;\n} else {\nreturn cljs.tools.reader.impl.utils.ws_rx.test(ch);\n}\n}\n});\n/**\n * Checks whether a given character is numeric\n */\ncljs.tools.reader.impl.utils.numeric_QMARK_ \x3d (function cljs$tools$reader$impl$utils$numeric_QMARK_(ch){\nif((ch \x3d\x3d null)){\nreturn null;\n} else {\nreturn goog.string.isNumeric(ch);\n}\n});\n/**\n * Checks whether the character is a newline\n */\ncljs.tools.reader.impl.utils.newline_QMARK_ \x3d (function cljs$tools$reader$impl$utils$newline_QMARK_(c){\nreturn (((\x22\\n\x22 \x3d\x3d\x3d c)) || ((((\x22\\n\x22 \x3d\x3d\x3d c)) || ((c \x3d\x3d null)))));\n});\n/**\n * Resolves syntactical sugar in metadata\n */\ncljs.tools.reader.impl.utils.desugar_meta \x3d (function cljs$tools$reader$impl$utils$desugar_meta(f){\nif((f instanceof cljs.core.Keyword)){\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([f,true]);\n} else {\nif((f instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),f], null);\n} else {\nif(typeof f \x3d\x3d\x3d \x27string\x27){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),f], null);\n} else {\nif(cljs.core.vector_QMARK_(f)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22param-tags\x22,\x22param-tags\x22,250134169),f], null);\n} else {\nreturn f;\n\n}\n}\n}\n}\n});\ncljs.tools.reader.impl.utils.last_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\ncljs.tools.reader.impl.utils.next_id \x3d (function cljs$tools$reader$impl$utils$next_id(){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.impl.utils.last_id,cljs.core.inc);\n});\ncljs.tools.reader.impl.utils.namespace_keys \x3d (function cljs$tools$reader$impl$utils$namespace_keys(ns,keys){\nvar iter__5503__auto__ \x3d (function cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(s__33433){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__33433__$1 \x3d s__33433;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__33433__$1);\nif(temp__5825__auto__){\nvar s__33433__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__33433__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__33433__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__33435 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__33434 \x3d (0);\nwhile(true){\nif((i__33434 \x3c size__5502__auto__)){\nvar key \x3d cljs.core._nth(c__5501__auto__,i__33434);\ncljs.core.chunk_append(b__33435,(((((key instanceof cljs.core.Symbol)) || ((key instanceof cljs.core.Keyword))))?(function (){var vec__33441 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,cljs.core.name)(key);\nvar key_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33441,(0),null);\nvar key_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33441,(1),null);\nvar __GT_key \x3d (((key instanceof cljs.core.Symbol))?cljs.core.symbol:cljs.core.keyword);\nif((key_ns \x3d\x3d null)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$2 ? __GT_key.cljs$core$IFn$_invoke$arity$2(ns,key_name) : __GT_key.call(null,ns,key_name));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22_\x22,key_ns)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(key_name) : __GT_key.call(null,key_name));\n} else {\nreturn key;\n\n}\n}\n})():key));\n\nvar G__33546 \x3d (i__33434 + (1));\ni__33434 \x3d G__33546;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__33435),cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(cljs.core.chunk_rest(s__33433__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__33435),null);\n}\n} else {\nvar key \x3d cljs.core.first(s__33433__$2);\nreturn cljs.core.cons((((((key instanceof cljs.core.Symbol)) || ((key instanceof cljs.core.Keyword))))?(function (){var vec__33450 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,cljs.core.name)(key);\nvar key_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33450,(0),null);\nvar key_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33450,(1),null);\nvar __GT_key \x3d (((key instanceof cljs.core.Symbol))?cljs.core.symbol:cljs.core.keyword);\nif((key_ns \x3d\x3d null)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$2 ? __GT_key.cljs$core$IFn$_invoke$arity$2(ns,key_name) : __GT_key.call(null,ns,key_name));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22_\x22,key_ns)){\nreturn (__GT_key.cljs$core$IFn$_invoke$arity$1 ? __GT_key.cljs$core$IFn$_invoke$arity$1(key_name) : __GT_key.call(null,key_name));\n} else {\nreturn key;\n\n}\n}\n})():key),cljs$tools$reader$impl$utils$namespace_keys_$_iter__33432(cljs.core.rest(s__33433__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(keys);\n});\ncljs.tools.reader.impl.utils.second_SINGLEQUOTE_ \x3d (function cljs$tools$reader$impl$utils$second_SINGLEQUOTE_(p__33461){\nvar vec__33463 \x3d p__33461;\nvar a \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33463,(0),null);\nvar b \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__33463,(1),null);\nif(cljs.core.truth_(a)){\nreturn null;\n} else {\nreturn b;\n}\n});\ncljs.tools.reader.impl.utils.char_code \x3d (function cljs$tools$reader$impl$utils$char_code(ch,base){\nvar code \x3d parseInt(ch,base);\nif(cljs.core.truth_(isNaN(code))){\nreturn (-1);\n} else {\nreturn code;\n}\n});\n"); @@ -1603,17 +1603,26 @@ SHADOW_ENV.evalLoad("taoensso.telemere.consoles.js", true, "goog.provide(\x27tao SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.telemere\x27);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * See `help:handler-dispatch-opts` for details.\n */\ntaoensso.telemere.default_handler_dispatch_opts \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.default_handler_dispatch_opts,new cljs.core.Keyword(null,\x22convey-bindings?\x22,\x22convey-bindings?\x22,1403560206));\ntaoensso.telemere.level_aliases \x3d taoensso.encore.signals.level_aliases;\n\n/**\n * A signal will be provided to a handler iff ALL of the following are true:\n * \n * 1. Call filters pass:\n * a. Compile-time: sample rate, kind, ns, id, level, when form, rate limit\n * b. Runtime: sample rate, kind, ns, id, level, when form, rate limit\n * \n * 2. Handler filters pass:\n * a. Compile-time: not applicable\n * b. Runtime: sample rate, kind, ns, id, level, when fn, rate limit\n * \n * 3. Call transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * 4. Handler transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * \n * Transform fns provides a flexible way to modify and/or filter signals by\n * arbitrary signal data/content conditions (return nil to skip handling).\n * \n * Call and handler filters are ADDITIVE, so handlers can be MORE but not LESS\n * restrictive than call filters allow. This makes sense: call filters decide\n * if a signal can be created. Handler filters decide if a particular handler\n * is allowed to handle a created signal.\n * \n * Config:\n * \n * To set call filters (1a, 1b):\n * \n * Use:\n * `set-kind-filter!`, `with-kind-filter`\n * `set-ns-filter!`, `with-ns-filter`\n * `set-id-filter!`, `with-id-filter`\n * `set-min-level!`, `with-min-level`\n * \n * or see `help:environmental-config`.\n * \n * To set handler filters (2b) or transform (4):\n * \n * Provide relevant opts when calling `add-handler!` or `with-handler/+`.\n * See `help:handler-dispatch-options` for details.\n * \n * Note: call filters (1a, 1b) should generally be AT LEAST as permissive\n * as handler filters (2b) since they\x27re always applied first.\n * \n * To set call transform (3): use `set-xfn!`, `with-xfn`.\n * \n * Compile-time vs runtime filtering:\n * \n * Compile-time filters are an advanced feature that can be tricky to set\n * and use correctly. Most folks will want ONLY runtime filters.\n * \n * Compile-time filters works by eliding (completely removing the code for)\n * disallowed calls. This means zero performance cost for these calls, but\n * also means that compile-time filters are PERMANENT once applied.\n * \n * So if you set `:info` as the compile-time minimum level, that\x27ll REMOVE\n * CODE for every signal call below `:info` level. To decrease that minimum\n * level, you\x27ll need to rebuild.\n * \n * Compile-time filters can be set ONLY with environmental config\n * (see `help:environmental-config` for details).\n * \n * Signal and handler sampling is multiplicative:\n * \n * Both calls and handlers can have independent sample rates, and these\n * MULTIPLY! If a signal is created with 20% sampling and a handler\n * handles 50% of received signals, then 10% of possible signals will be\n * handled (50% of 20%).\n * \n * When sampling is active, the final (combined multiplicative) rate is\n * helpfully reflected in each signal\x27s `:sample` rate value \u2208\u211d[0,1].\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_filters \x3d \x22See docstring\x22;\n\n/**\n * Signal handlers process created signals to do something with them (analyse them,\n * write them to console/file/queue/db, etc.).\n * \n * Manage handlers with:\n * \n * `get-handlers` - Returns info on registered handlers (dispatch options, etc.)\n * `get-handlers-stats` - Returns stats for registered handlers (handling times, etc.)\n * \n * `add-handler!` - Registers given handler\n * `remove-handler!` - Unregisters given handler\n * \n * `with-handler` - Executes form with ONLY the given handler registered\n * `with-handler+` - Executes form with the given handler (also) registered\n * \n * `stop-handlers!` - Stops registered handlers\n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See the relevant docstrings for details.\n * See `help:handler-dispatch-options` for handler filters, etc.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handlers \x3d \x22See docstring\x22;\n\n/**\n * Dispatch options can be provided for each signal handler when calling\n * `add-handler!` or `with-handler/+`. These options will be merged over the\n * defaults specified by `default-handler-dispatch-opts`.\n * \n * All handlers support the same dispatch options, including:\n * \n * `:async` (Clj only) - may be `nil` (\x3d\x3e synchronous) or map with options:\n * \n * `:buffer-size` (default 1024)\n * Size of request buffer, and the max number of pending requests before\n * configured back-pressure behaviour is triggered (see `:mode`).\n * \n * `:mode` (default `:blocking`)\n * Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n * Controls what happens when a new request is made while request buffer is full:\n * `:blocking` \x3d\x3e Blocks caller until buffer space is available\n * `:dropping` \x3d\x3e Drops the newest request (noop)\n * `:sliding` \x3d\x3e Drops the oldest request\n * \n * `:n-threads` (default 1)\n * Number of threads to use for executing fns (servicing request buffer).\n * NB handling order guaranteed to be be sequential iff n\x3d1.\n * \n * `:drain-msecs` (default 6000 msecs)\n * Maximum time (in milliseconds) to try allow pending execution requests to\n * complete when stopping handler. nil \x3d\x3e no maximum.\n * \n * `:priority` (default 100)\n * Optional handler priority \u2208\u2124.\n * Handlers will be called in descending priority order (larger ints first).\n * \n * `:track-stats?` (default true)\n * Should handler track statistics (e.g. handling times) for\n * reporting by `get-handlers-stats`?\n * \n * `:sample` (default nil \x3d\x3e no sampling)\n * Optional sample rate \u2208\u211d[0,1], or (fn dyamic-sample-rate []) \x3d\x3e \u211d[0,1].\n * When present, handle only this (random) proportion of signals:\n * 1.0 \x3d\x3e handle 100% of signals (same as nil rate, default)\n * 0.0 \x3d\x3e hanel 0% of signals (noop all)\n * 0.5 \x3d\x3e handle 50% of signals (random)\n * \n * `:kind-filter` - Kind filter as in `set-kind-filter!` (when relevant)\n * `:ns-filter` - Namespace filter as in `set-ns-filter!`\n * `:id-filter` - Id filter as in `set-id-filter!` (when relevant)\n * `:min-level` - Minimum level as in `set-min-level!`\n * \n * ^^ Recall that all handler filters are ADDITIVE: handlers can be MORE\n * (but not LESS) restrictive than call filters allow!\n * \n * `:when-fn` (default nil \x3d\x3e always allow)\n * Optional NULLARY (fn allow? []) that must return truthy for handler to be\n * called. When present, called *after* sampling and other filters, but before\n * rate limiting. Useful for filtering based on external state/context.\n * See `:xfn` for an alternative that takes a signal argument!\n * \n * `:limit` (default nil \x3d\x3e no rate limit)\n * Optional rate limit spec as provided to `taoensso.encore/rate-limiter`,\n * {\x3climit-id\x3e [\x3cn-max-calls\x3e \x3cmsecs-window\x3e]}.\n * \n * Examples:\n * {\x221/sec\x22 [1 1000]} \x3d\x3e Max 1 call per 1000 msecs\n * {\x221/sec\x22 [1 1000]\n * \x2210/min\x22 [10 60000]} \x3d\x3e Max 1 call per 1000 msecs,\n * and 10 calls per 60 secs\n * \n * `:xfn` (default nil \x3d\x3e no transform)\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply before\n * handling signal. When transform returns nil, skips handler.\n * \n * Compose multiple transform fns together with `comp-xfn`.\n * \n * `:error-fn` - (fn [{:keys [handler-id signal error]}]) to call on handler error.\n * `:backp-fn` - (fn [{:keys [handler-id ]}]) to call on handler back-pressure.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handler_dispatch_options \x3d \x22See docstring\x22;\n\n/**\n * Returns current ?{:keys [compile-time runtime]} filter config.\n */\ntaoensso.telemere.get_filters \x3d (function taoensso$telemere$get_filters(){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)], null));\n});\n\n/**\n * Returns current ?{:keys [compile-time runtime]} minimum call levels\n * for given/current namespace.\n */\ntaoensso.telemere.get_min_levels \x3d (function taoensso$telemere$get_min_levels(var_args){\nvar G__38127 \x3d arguments.length;\nswitch (G__38127) {\ncase 0:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1 \x3d (function (kind){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,ns){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns)),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns))], null));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Returns ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn handler-stats_]}}\n * for all registered signal handlers.\n */\ntaoensso.telemere.get_handlers \x3d (function taoensso$telemere$get_handlers(){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Alpha, subject to change.\n * Returns ?{\x3chandler-id\x3e {:keys [handling-nsecs counts]}} for all registered\n * signal handlers that have the `:track-stats?` dispatch option enabled\n * (it is by default).\n * \n * Stats include:\n * \n * `:handling-nsecs` - Summary stats of nanosecond handling times, keys:\n * `:min` - Minimum handling time\n * `:max` - Maximum handling time\n * `:mean` - Arithmetic mean handling time\n * `:mad` - Mean absolute deviation of handling time (measure of dispersion)\n * `:var` - Variance of handling time (measure of dispersion)\n * `:p50` - 50th percentile of handling time (50% of times \x3c\x3d this)\n * `:p90` - 90th percentile of handling time (90% of times \x3c\x3d this)\n * `:p99` - 99th percentile of handling time\n * `:last` - Most recent handling time\n * ...\n * \n * `:counts` - Integer counts for handler outcomes, keys (chronologically):\n * \n * `:dropped` - Noop handler calls due to stopped handler\n * `:back-pressure` - Handler calls that experienced (async) back-pressure\n * (possible noop, depending on back-pressure mode)\n * \n * `:sampled` - Noop handler calls due to sample rate\n * `:filtered` - Noop handler calls due to kind/ns/id/level/when filtering\n * `:rate-limited` - Noop handler calls due to rate limit\n * `:disallowed` - Noop handler calls due to sampling/filtering/rate-limiting\n * `:allowed` - Other handler calls (no sampling/filtering/rate-limiting)\n * \n * `:suppressed` - Noop handler calls due to nil transform (xfn) result\n * `:handled` - Handler calls that completed successfully\n * `:errors` - Handler calls that threw an error\n * \n * Note that for performance reasons returned counts are not mutually atomic,\n * e.g. `:sampled` count may be incremented before `:disallowed` count is.\n * \n * Useful for understanding/debugging how your handlers behave in practice,\n * especially when they\x27re under stress (high-volumes, etc.).\n * \n * Handler stats are tracked from the time each handler is last registered\n * (e.g. with an `add-handler!` call).\n */\ntaoensso.telemere.get_handlers_stats \x3d (function taoensso$telemere$get_handlers_stats(){\nreturn taoensso.encore.signals.get_handlers_stats(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n\n/**\n * Sets call kind filter based on given `kind-filter` spec.\n * `kind-filter` may be:\n * \n * - A regex pattern of kind/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_kind_filter_BANG_ \x3d (function taoensso$telemere$set_kind_filter_BANG_(kind_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35641__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35641__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),kind_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call namespace filter based on given `ns-filter` spec.\n * `ns-filter` may be:\n * \n * - A namespace.\n * - A regex pattern of namespaces/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_ns_filter_BANG_ \x3d (function taoensso$telemere$set_ns_filter_BANG_(ns_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35653__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35653__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),ns_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call id filter based on given `id-filter` spec.\n * `id-filter` may be:\n * \n * - A regex pattern of id/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_id_filter_BANG_ \x3d (function taoensso$telemere$set_id_filter_BANG_(id_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35659__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35659__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),id_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets minimum call level based on given `min-level` spec.\n * `min-level` may be:\n * \n * - nil (\x3d\x3e no minimum level).\n * - A level keyword (see `level-aliases` value for details).\n * - An integer (see `level-aliases` value for details).\n * - (Advanced) [[nf-filter min-level] ...] vector.\n * \n * If non-nil `kind` is provided, then the given minimum level will\n * apply only for that call kind.\n * \n * If `ns-filter` is provided, then the given minimum level will\n * apply only for the namespace/s that match (see `set-ns-filter!`).\n * Order matters if \x3e1 configured ns filter can match an ns! First\n * match wins, see `get-filters` or `get-min-levels` to view/debug\n * (left-\x3eright) match order.\n * \n * Examples:\n * (set-min-level! nil) ; Disable minimum level\n * (set-min-level! :info) ; Set `:info` as minimum level\n * (set-min-level! 100) ; Set 100 as minimum level\n * \n * (set-min-level! nil *ns* :info) ; Set for this ns only\n * (set-min-level! nil [[\x22my.ns\x22 :debug] [\x22* :info]]) ; Advanced\n */\ntaoensso.telemere.set_min_level_BANG_ \x3d (function taoensso$telemere$set_min_level_BANG_(var_args){\nvar G__38129 \x3d arguments.length;\nswitch (G__38129) {\ncase 1:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(null,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(kind,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,ns_filter,min_level){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old_sf__35681__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old_sf__35681__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803),(function (old_ml__35682__auto__){\nreturn taoensso.encore.signals.update_min_level(old_ml__35682__auto__,kind,ns_filter,min_level);\n})], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n\n\n/**\n * Registers given signal handler and returns\n * {\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * now registered. If an old handler already existed under the same id, stop it.\n * \n * `handler-fn` should be a fn of exactly 2 arities:\n * \n * [signal] ; Single argument\n * Called asynchronously or synchronously (depending on dispatch options)\n * to do something useful with the given signal.\n * \n * Example actions:\n * Save data to disk or db, `tap\x3e`, log, `put!` to an appropriate\n * `core.async` channel, filter, aggregate, use for a realtime analytics\n * dashboard, examine for outliers or unexpected data, etc.\n * \n * [] ; No arguments\n * Called exactly once when stopping handler to provide an opportunity\n * for handler to flush buffers, close files, etc. May just noop.\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See `help:handler-dispatch-options` for handler filters, etc.\n */\ntaoensso.telemere.add_handler_BANG_ \x3d (function taoensso$telemere$add_handler_BANG_(var_args){\nvar G__38131 \x3d arguments.length;\nswitch (G__38131) {\ncase 2:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (handler_id,handler_fn){\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(handler_id,handler_fn,null);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (handler_id,handler_fn,dispatch_opts){\nvar removed_handler__35698__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35699__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35700__auto__){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5(m__35700__auto__,handler_id,handler_fn,taoensso.telemere.default_handler_dispatch_opts,dispatch_opts);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35698__auto__)){\n(removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35698__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35699__auto__);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Stops and deregisters signal handler with given id, and returns\n * ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * still registered.\n */\ntaoensso.telemere.remove_handler_BANG_ \x3d (function taoensso$telemere$remove_handler_BANG_(handler_id){\nvar removed_handler__35702__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35703__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35704__auto__){\nreturn taoensso.encore.signals.remove_handler(m__35704__auto__,handler_id);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35702__auto__)){\n(removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35702__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35703__auto__);\n});\n\n/**\n * Stops registered signal handlers in parallel by calling each\n * handler-fn with no arguments. This gives each handler the opportunity\n * to flush buffers, close files, etc.\n * \n * Each handler will immediately stop accepting new signals, nooping if called.\n * \n * Blocks to return ?{\x3chandler-id\x3e {:keys [okay error]}}, honouring each\n * handler\x27s `:drain-msecs` value (see `help:handler-dispatch-options`).\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n */\ntaoensso.telemere.stop_handlers_BANG_ \x3d (function taoensso$telemere$stop_handlers_BANG_(){\nreturn taoensso.encore.signals.stop_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Optional context (state) attached to all signals.\n * Value may be any type, but is usually nil or a map. Default (root) value is nil.\n * \n * Useful for dynamically attaching arbitrary app-level state to signals.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Tips:\n * - Value may be (or may contain) an atom if you want mutable semantics.\n * - Value may be of form {\x3cscope-id\x3e \x3cdata\x3e} for custom scoping, etc.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_ctx_STAR_ \x3d null;\n\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.telemere.set_ctx_BANG_ \x3d (function taoensso$telemere$set_ctx_BANG_(root_ctx){\nreturn (taoensso.telemere._STAR_ctx_STAR_ \x3d root_ctx);\n});\n\nvar ret__5804__auto___38153 \x3d (function (){\n/**\n * Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx \x3d (function taoensso$telemere$with_ctx(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38154 \x3d arguments.length;\nvar i__5750__auto___38155 \x3d (0);\nwhile(true){\nif((i__5750__auto___38155 \x3c len__5749__auto___38154)){\nargs__5755__auto__.push((arguments[i__5750__auto___38155]));\n\nvar G__38156 \x3d (i__5750__auto___38155 + (1));\ni__5750__auto___38155 \x3d G__38156;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,ctx,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,ctx,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx.cljs$lang$applyTo \x3d (function (seq38132){\nvar G__38133 \x3d cljs.core.first(seq38132);\nvar seq38132__$1 \x3d cljs.core.next(seq38132);\nvar G__38134 \x3d cljs.core.first(seq38132__$1);\nvar seq38132__$2 \x3d cljs.core.next(seq38132__$1);\nvar G__38135 \x3d cljs.core.first(seq38132__$2);\nvar seq38132__$3 \x3d cljs.core.next(seq38132__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38133,G__38134,G__38135,seq38132__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38157 \x3d (function (){\n/**\n * Evaluates given body with updated `*ctx*` value.\n * \n * `update-map-or-fn` may be:\n * - A map to merge with current `*ctx*` value, or\n * - A unary fn to apply to current `*ctx*` value\n * \n * See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx_PLUS_ \x3d (function taoensso$telemere$with_ctx_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38158 \x3d arguments.length;\nvar i__5750__auto___38159 \x3d (0);\nwhile(true){\nif((i__5750__auto___38159 \x3c len__5749__auto___38158)){\nargs__5755__auto__.push((arguments[i__5750__auto___38159]));\n\nvar G__38160 \x3d (i__5750__auto___38159 + (1));\ni__5750__auto___38159 \x3d G__38160;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,update_map_or_fn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,update_map_or_fn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$applyTo \x3d (function (seq38136){\nvar G__38137 \x3d cljs.core.first(seq38136);\nvar seq38136__$1 \x3d cljs.core.next(seq38136);\nvar G__38138 \x3d cljs.core.first(seq38136__$1);\nvar seq38136__$2 \x3d cljs.core.next(seq38136__$1);\nvar G__38139 \x3d cljs.core.first(seq38136__$2);\nvar seq38136__$3 \x3d cljs.core.next(seq38136__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38137,G__38138,G__38139,seq38136__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$macro \x3d true);\n\n\n/**\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply to all signals.\n * When transform returns nil, skips all handlers. Default (root) value is nil.\n * \n * Useful for dynamically filtering and/or modifying signals by signal data/content/etc.\n * \n * Re/bind dynamic value using `with-xfn`, `with-xfn+`, `binding`.\n * Modify root (default) value using `set-xfn!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Examples:\n * \n * ;; Filter all signals by returning nil:\n * (t/set-xfn! (fn [signal] (when-not (:skip-me? signal) signal)))\n * \n * ;; Remove key/s from all signals:\n * (t/set-xfn! (fn [signal] (dissoc signal :unwanted-key1 ...)))\n * \n * ;; Remove key/s from signals to specific handler:\n * (t/add-handler! ::my-handler my-handler\n * {:xfn (fn [signal] (dissoc signal :unwanted-key1 ...))})\n * \n * ;; Dynamic transform for specific signal/s:\n * (binding [*xfn* (fn [signal] ...)]\n * (...))\n * \n * Tips:\n * - Compose multiple transform fns together with `comp-xfn`.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_xfn_STAR_ \x3d null;\n\n/**\n * Set `*xfn*` var\x27s default (root) value. See `*xfn*` for details.\n */\ntaoensso.telemere.set_xfn_BANG_ \x3d (function taoensso$telemere$set_xfn_BANG_(_QMARK_root_xfn){\nreturn (taoensso.telemere._STAR_xfn_STAR_ \x3d _QMARK_root_xfn);\n});\n\nvar ret__5804__auto___38161 \x3d (function (){\n/**\n * Evaluates given body with given `*xfn*` value, see `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn \x3d (function taoensso$telemere$with_xfn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38162 \x3d arguments.length;\nvar i__5750__auto___38163 \x3d (0);\nwhile(true){\nif((i__5750__auto___38163 \x3c len__5749__auto___38162)){\nargs__5755__auto__.push((arguments[i__5750__auto___38163]));\n\nvar G__38164 \x3d (i__5750__auto___38163 + (1));\ni__5750__auto___38163 \x3d G__38164;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,_QMARK_xfn,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn.cljs$lang$applyTo \x3d (function (seq38140){\nvar G__38141 \x3d cljs.core.first(seq38140);\nvar seq38140__$1 \x3d cljs.core.next(seq38140);\nvar G__38142 \x3d cljs.core.first(seq38140__$1);\nvar seq38140__$2 \x3d cljs.core.next(seq38140__$1);\nvar G__38143 \x3d cljs.core.first(seq38140__$2);\nvar seq38140__$3 \x3d cljs.core.next(seq38140__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38141,G__38142,G__38143,seq38140__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38165 \x3d (function (){\n/**\n * Evaluates given body with composed `*xfn*` value.\n * Same as (with-xfn (comp-xfn *xfn* ?xfn) ...).\n * See `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn_PLUS_ \x3d (function taoensso$telemere$with_xfn_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38166 \x3d arguments.length;\nvar i__5750__auto___38167 \x3d (0);\nwhile(true){\nif((i__5750__auto___38167 \x3c len__5749__auto___38166)){\nargs__5755__auto__.push((arguments[i__5750__auto___38167]));\n\nvar G__38168 \x3d (i__5750__auto___38167 + (1));\ni__5750__auto___38167 \x3d G__38168;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22comp-xfn\x22,\x22taoensso.encore.signals/comp-xfn\x22,-1050364423,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,_QMARK_xfn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$applyTo \x3d (function (seq38144){\nvar G__38145 \x3d cljs.core.first(seq38144);\nvar seq38144__$1 \x3d cljs.core.next(seq38144);\nvar G__38146 \x3d cljs.core.first(seq38144__$1);\nvar seq38144__$2 \x3d cljs.core.next(seq38144__$1);\nvar G__38147 \x3d cljs.core.first(seq38144__$2);\nvar seq38144__$3 \x3d cljs.core.next(seq38144__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38145,G__38146,G__38147,seq38144__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$macro \x3d true);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.telemere.chance \x3d taoensso.encore.chance;\n\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.telemere.rate_limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Single system newline\n */\ntaoensso.telemere.newline \x3d \x22\\n\x22;\n\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.telemere.comp_xfn \x3d taoensso.encore.signals.comp_xfn;\n\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.msg_splice \x3d taoensso.telemere.impl.msg_splice;\n\ntaoensso.telemere.msg_skip \x3d taoensso.telemere.impl.msg_skip;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.clean_signal_fn \x3d taoensso.telemere.utils.clean_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.format_signal_fn \x3d taoensso.telemere.utils.format_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.pr_signal_fn \x3d taoensso.telemere.utils.pr_signal_fn;\n\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.error_signal_QMARK_ \x3d taoensso.telemere.utils.error_signal_QMARK_;\n/**\n * Call a Telemere signal creator to conditionally create a signal at that callsite.\n * \n * When filtering conditions are met [4], the call creates a Telemere signal [3]\n * and dispatches it to registered handlers for processing (e.g. writing to\n * console/file/queue/db, etc.).\n * \n * Telemere doesn\x27t make a hard distinction between different kinds of signals\n * (log, event, error, etc.) - they\x27re all just plain Clojure/Script maps with\n * various keys:\n * \n * - All signal creators offer the same options [2], and\n * - All signal kinds can contain the same content [3]\n * \n * Creators vary only in in their default `:kind` value and call APIs (expected\n * args and return values), making them more/less convenient for certain use cases:\n * \n * `log!` ------------- ?level + msg \x3d\x3e nil\n * `event!` ----------- id + ?level \x3d\x3e nil\n * `trace!` ----------- ?id + run \x3d\x3e run result (value or throw)\n * `spy!` ------------- ?level + run \x3d\x3e run result (value or throw)\n * `error!` ----------- ?id + error \x3d\x3e given error\n * `catch-\x3eerror!` ---- ?id + run \x3d\x3e run value or ?catch-val\n * `uncaught-\x3eerror!` - ?id \x3d\x3e nil\n * `signal!` ---------- opts \x3d\x3e allowed? / run result (value or throw)\n * \n * - `log!` and `event!` are both good default/general-purpose signal creators.\n * - `log!` emphasizes messages, while `event!` emphasizes ids.\n * - `signal!` is the generic creator, and is used by all the others.\n * \n * ----------------------------------------------------------------------\n * [2] See `help:signal-options` - {:keys [kind level id data ...]}\n * [3] See `help:signal-content` - {:keys [kind level id data ...]}\n * [4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)\n */\ntaoensso.telemere.help_COLON_signal_creators \x3d \x22See docstring\x22;\n\n/**\n * Signal options are provided as a map with COMPILE-TIME keys.\n * All options are available for all signal creator calls:\n * \n * `:inst` -------- Platform instant [1] when signal was created, \u2208 #{nil :auto \x3c[1]\x3e}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy \x3capp-val\x3e ...}\n * `:id` ---------- ?id of signal (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- ?id of signal instance (unique to each signal created at callsite, contrast with `:id`)\n * Defaults to `:auto` for tracing signals, and nil otherwise\n * \n * `:msg` --------- Arb app-level ?message to incl. in signal: str or vec of strs to join (with `\\space`), may be a delay\n * `:data` -------- Arb app-level ?data to incl. in signal: usu. a map, LAZY! [3]\n * `:error` ------- Arb app-level ?error to incl. in signal: platform error [2]\n * \n * `:run` --------- ?form to execute UNCONDITIONALLY; will incl. `:run-val` in signal\n * `:do` ---------- ?form to execute conditionally (iff signal allowed) and LAZILY [3], before establishing `:let` ?binding\n * `:let` --------- ?bindings to establish conditionally (iff signal allowed) and LAZILY [3], BEFORE evaluating `:data` and `:msg` (useful!)\n * \n * `:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info\n * `:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root signal tracing info\n * `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal, as per `with-ctx`\n * `:ctx+` -------- Custom ?val to update auto (dynamic `*ctx*`) in signal, as per `with-ctx+`\n * \n * `:ns` ---------- Custom ?str namespace to override auto signal callsite info\n * `:coords` ------ Custom ?[line column] to override auto signal callsite info\n * \n * `:elidable?` --- Should signal be subject to compile-time elision? (default true)\n * `:allow?` ------ Custom override for usual runtime filtering (true \x3d\x3e ALWAYS create signal)\n * `:trace?` ------ Should tracing be enabled for `:run` form?\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for random signal sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * `:when` -------- Arb ?form; when present, form must return truthy to allow signal\n * `:limit` ------- Rate limit ?spec given to `taoensso.telemere/rate-limiter`, see its docstring for details\n * `:limit-by` ---- When present, rate limits will be enforced independently for each value (any Clojure value!)\n * `:xfn` --------- Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn`\n * `:xfn+` -------- Optional extra transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn+`\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs to incl. in signal. Typically NOT included in\n * handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers. LAZY! [3]\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n * [3] Most Telemere signal content is evaluated CONDITIONALLY (iff signal allowed),\n * LAZILY (when signal is created), and on the HANDLING THREAD (not logging thread).\n * This allows efficient filtering, better control+monitoring of back pressure,\n * conditional effects, etc. Ref. \x3chttps://www.taoensso.com/telemere/flow\x3e for visual!\n */\ntaoensso.telemere.help_COLON_signal_options \x3d \x22See docstring\x22;\n\n/**\n * Telemere signals are maps with {:keys [inst id ns level data msg_ ...]},\n * though they can be modified by call and/or handler transform (xfns).\n * \n * Default signal keys:\n * \n * `:schema` ------ Int version of signal schema (current: 1)\n * `:inst` -------- Platform instant [1] when signal was created, monotonicity depends on system clock\n * `:ns` ---------- ?str namespace of signal callsite\n * `:coords` ------ ?[line column] of signal callsite\n * \n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy :slf4j :tools-logging \x3capp-val\x3e ...}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:id` ---------- Signal callsite ?id (usu. keyword) (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- Signal instance ?id (usu. string) (unique to each signal created at callsite when tracing, contrast with `:id`)\n * \n * `:msg_` -------- Arb app-level message ?str given to signal creator - may be a delay, always use `force` to unwrap!\n * `:data` -------- Arb app-level data ?val (usu. a map) given to signal creator\n * `:error` ------- Arb app-level platform ?error [2] given to signal creator\n * \n * `:run-form` ---- Unevaluated ?form given to signal creator as `:run`\n * `:run-val` ----- Successful return ?val of `:run` ?form\n * `:run-nsecs` --- ?int nanosecs runtime of `:run` ?form\n * `:end-inst` ---- Platform ?instant [1] when `:run` ?form completed\n * \n * `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing\n * `:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing\n * `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created\n * \n * `:host` -------- (Clj only) {:keys [name ip]} info for network host\n * `:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for combined call AND handler sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included\n * in handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n */\ntaoensso.telemere.help_COLON_signal_content \x3d \x22See docstring\x22;\n\n/**\n * Telemere supports extensive environmental config via JVM properties,\n * environment variables, or classpath resources.\n * \n * Environmental filter config includes:\n * \n * 1. Minimum level (see signal `:level`):\n * a. JVM property: `taoensso.telemere.rt-min-level`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_MIN_LEVEL`\n * c. Classpath resource: `taoensso.telemere.rt-min-level`\n * \n * 2. Namespace filter (see signal `:ns`):\n * a. JVM property: `taoensso.telemere.rt-ns-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_NS_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-ns-filter`\n * \n * 3. Id filter (see signal `:id`):\n * a. JVM property: `taoensso.telemere.rt-id-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_ID_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-id-filter`\n * \n * 4. Kind filter (signal `:kind`):\n * a. JVM property: `taoensso.telemere.rt-kind-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_KIND_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-kind-filter`\n * \n * Config values are parsed as edn, examples:\n * \n * `taoensso.telemere.rt-min-level` \x3d\x3e \x22:info\x22\n * `TAOENSSO_TELEMERE_RT_NS_FILTER` \x3d\x3e \x22{:disallow \\\x22taoensso.*\\\x22}\x22\n * `taoensso.telemere.rt-id-filter.cljs` \x3d\x3e \x22#{:my-id1 :my-id2}\x22\n * `TAOENSSO_TELEMERE_RT_KIND_FILTER_CLJ` \x3d\x3e \x22nil\x22\n * \n * Runtime vs compile-time filters\n * \n * The above filters (1..4) all apply at RUNTIME (\x22rt\x22).\n * This is typically what you want, since it allows you to freely adjust filtering\n * (making it less OR MORE permissive) through later API calls like `set-min-level!`.\n * \n * As an advanced option, you can instead/additionally ELIDE (entirely omit) filtered\n * callsites at COMPILE-TIME (\x22ct\x22) by replacing \x22rt\x22-\x3e\x22ct\x22 / \x22RT\x22-\x3e\x22CT\x22 in the config\n * ids above. Compile-time filters CANNOT be made MORE permissive at runtime.\n * \n * Tips:\n * \n * - The above config ids will affect both Clj AND Cljs.\n * For platform-specific filters, use\n * \x22.clj\x22 / \x22_CLJ\x22 or\n * \x22.cljs\x22 / \x22_CLJS\x22 suffixes instead.\n * e.g. \x22taoensso.telemere.rt-min-level.cljs\x22.\n * \n * - To get the right edn syntax, first set your runtime filters using the\n * standard utils (`set-min-level!`, etc.). Then call `get-filters` and\n * serialize the relevant parts to edn with `pr-str`.\n * \n * - All environmental config uses `get-env` underneath.\n * See the `get-env` docstring for more/advanced details.\n * \n * - Classpath resources are files accessible on your project\x27s\n * classpath. This usually includes files in your project\x27s\n * `resources/` dir.\n */\ntaoensso.telemere.help_COLON_environmental_config \x3d \x22See docstring\x22;\n/**\n * Experimental, subject to change. Feedback welcome!\n * (fn [root?]) used to generate signal `:uid` values (unique instance ids)\n * when tracing.\n * \n * Relevant only when `otel-tracing?` is false.\n * If `otel-tracing?` is true, uids are instead generated by `*otel-tracer*`.\n * \n * `root?` argument is true iff signal is a top-level trace (i.e. form being\n * traced is unnested \x3d has no parent form). Root-level uids typically need\n * more entropy and so are usually longer (e.g. 32 vs 16 hex chars).\n * \n * Override default by setting one of the following:\n * 1. JVM property: `taoensso.telemere.uid-kind`\n * 2. Env variable: `TAOENSSO_TELEMERE_UID_KIND`\n * 3. Classpath resource: `taoensso.telemere.uid-kind`\n * \n * Possible (compile-time) values include:\n * `:uuid` - UUID string (Cljs) or `java.util.UUID` (Clj)\n * `:uuid-str` - UUID string (36/36 chars)\n * `:nano/secure` - nano-style string (21/10 chars) w/ strong RNG\n * `:nano/insecure` - nano-style string (21/10 chars) w/ fast RNG (default)\n * `:hex/insecure` - hex-style string (32/16 chars) w/ strong RNG\n * `:hex/secure` - hex-style string (32/16 chars) w/ fast RNG\n */\ntaoensso.telemere._STAR_uid_fn_STAR_ \x3d taoensso.telemere.utils.parse_uid_fn(taoensso.telemere.impl.uid_kind);\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n * Normally called automatically (internally) by signal creators, this util\n * is provided publicly since it\x27s also handy for manually re/dispatching\n * custom/modified signals, etc.:\n * \n * (let [original-signal (with-signal :trap (event! ::my-id1))\n * modified-signal (assoc original-signal :id ::my-id2)]\n * (dispatch-signal! modified-signal))\n */\ntaoensso.telemere.dispatch_signal_BANG_ \x3d (function taoensso$telemere$dispatch_signal_BANG_(signal){\nvar temp__5825__auto__ \x3d taoensso.telemere.impl.wrap_signal(signal);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar wrapped_signal \x3d temp__5825__auto__;\nreturn taoensso.telemere.impl.dispatch_signal_BANG_(wrapped_signal);\n} else {\nreturn null;\n}\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.handler_COLON_console \x3d taoensso.telemere.consoles.handler_COLON_console;\n\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.handler_COLON_console_raw \x3d taoensso.telemere.consoles.handler_COLON_console_raw;\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.__on_init !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.telemere.__on_init \x3d (function (){\n(taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d (function (p__38148){\nvar map__38149 \x3d p__38148;\nvar map__38149__$1 \x3d cljs.core.__destructure_map(map__38149);\nvar m \x3d map__38149__$1;\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38149__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-error\x22,\x22taoensso.encore.signals/handler-error\x22,1772750988);\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)),null,\x22Error executing wrapped handler fn\x22,error,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\n(taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d (function (data){\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-back-pressure\x22,\x22taoensso.encore.signals/handler-back-pressure\x22,699164801);\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,data,null,\x22Back pressure on wrapped handler fn\x22,null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\ntaoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(\x22default\x22,\x22console\x22,\x22default/console\x22,-1389954628),(taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.handler_COLON_console.call(null)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601),null], null));\n\nreturn null;\n})()\n\n;\n}\n"); SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmt \x3d (function intemporal$internal$logging$fmt(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\nintemporal.internal.logging.trace \x3d (function intemporal$internal$logging$trace(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38181 \x3d arguments.length;\nvar i__5750__auto___38182 \x3d (0);\nwhile(true){\nif((i__5750__auto___38182 \x3c len__5749__auto___38181)){\nargs__5755__auto__.push((arguments[i__5750__auto___38182]));\n\nvar G__38183 \x3d (i__5750__auto___38182 + (1));\ni__5750__auto___38182 \x3d G__38183;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [17,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.trace.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.trace.cljs$lang$applyTo \x3d (function (seq38169){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38169));\n}));\n\nintemporal.internal.logging.debug \x3d (function intemporal$internal$logging$debug(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38184 \x3d arguments.length;\nvar i__5750__auto___38185 \x3d (0);\nwhile(true){\nif((i__5750__auto___38185 \x3c len__5749__auto___38184)){\nargs__5755__auto__.push((arguments[i__5750__auto___38185]));\n\nvar G__38186 \x3d (i__5750__auto___38185 + (1));\ni__5750__auto___38185 \x3d G__38186;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [18,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.debug.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debug.cljs$lang$applyTo \x3d (function (seq38170){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38170));\n}));\n\nintemporal.internal.logging.info \x3d (function intemporal$internal$logging$info(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38187 \x3d arguments.length;\nvar i__5750__auto___38188 \x3d (0);\nwhile(true){\nif((i__5750__auto___38188 \x3c len__5749__auto___38187)){\nargs__5755__auto__.push((arguments[i__5750__auto___38188]));\n\nvar G__38189 \x3d (i__5750__auto___38188 + (1));\ni__5750__auto___38188 \x3d G__38189;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [19,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.info.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.info.cljs$lang$applyTo \x3d (function (seq38171){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38171));\n}));\n\nintemporal.internal.logging.warn \x3d (function intemporal$internal$logging$warn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38195 \x3d arguments.length;\nvar i__5750__auto___38196 \x3d (0);\nwhile(true){\nif((i__5750__auto___38196 \x3c len__5749__auto___38195)){\nargs__5755__auto__.push((arguments[i__5750__auto___38196]));\n\nvar G__38198 \x3d (i__5750__auto___38196 + (1));\ni__5750__auto___38196 \x3d G__38198;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [20,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.warn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warn.cljs$lang$applyTo \x3d (function (seq38172){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38172));\n}));\n\nintemporal.internal.logging.error \x3d (function intemporal$internal$logging$error(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38203 \x3d arguments.length;\nvar i__5750__auto___38204 \x3d (0);\nwhile(true){\nif((i__5750__auto___38204 \x3c len__5749__auto___38203)){\nargs__5755__auto__.push((arguments[i__5750__auto___38204]));\n\nvar G__38205 \x3d (i__5750__auto___38204 + (1));\ni__5750__auto___38204 \x3d G__38205;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [21,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.error.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.error.cljs$lang$applyTo \x3d (function (seq38173){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38173));\n}));\n\nintemporal.internal.logging.fatal \x3d (function intemporal$internal$logging$fatal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38211 \x3d arguments.length;\nvar i__5750__auto___38212 \x3d (0);\nwhile(true){\nif((i__5750__auto___38212 \x3c len__5749__auto___38211)){\nargs__5755__auto__.push((arguments[i__5750__auto___38212]));\n\nvar G__38213 \x3d (i__5750__auto___38212 + (1));\ni__5750__auto___38212 \x3d G__38213;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [22,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.fatal.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatal.cljs$lang$applyTo \x3d (function (seq38174){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38174));\n}));\n\nintemporal.internal.logging.tracef \x3d (function intemporal$internal$logging$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38216 \x3d arguments.length;\nvar i__5750__auto___38218 \x3d (0);\nwhile(true){\nif((i__5750__auto___38218 \x3c len__5749__auto___38216)){\nargs__5755__auto__.push((arguments[i__5750__auto___38218]));\n\nvar G__38219 \x3d (i__5750__auto___38218 + (1));\ni__5750__auto___38218 \x3d G__38219;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [27,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [28,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.tracef.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.tracef.cljs$lang$applyTo \x3d (function (seq38175){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38175));\n}));\n\nintemporal.internal.logging.debugf \x3d (function intemporal$internal$logging$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38237 \x3d arguments.length;\nvar i__5750__auto___38238 \x3d (0);\nwhile(true){\nif((i__5750__auto___38238 \x3c len__5749__auto___38237)){\nargs__5755__auto__.push((arguments[i__5750__auto___38238]));\n\nvar G__38243 \x3d (i__5750__auto___38238 + (1));\ni__5750__auto___38238 \x3d G__38243;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [32,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [33,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.debugf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debugf.cljs$lang$applyTo \x3d (function (seq38176){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38176));\n}));\n\nintemporal.internal.logging.infof \x3d (function intemporal$internal$logging$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38257 \x3d arguments.length;\nvar i__5750__auto___38258 \x3d (0);\nwhile(true){\nif((i__5750__auto___38258 \x3c len__5749__auto___38257)){\nargs__5755__auto__.push((arguments[i__5750__auto___38258]));\n\nvar G__38259 \x3d (i__5750__auto___38258 + (1));\ni__5750__auto___38258 \x3d G__38259;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [37,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [38,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.infof.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.infof.cljs$lang$applyTo \x3d (function (seq38177){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38177));\n}));\n\nintemporal.internal.logging.warnf \x3d (function intemporal$internal$logging$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38271 \x3d arguments.length;\nvar i__5750__auto___38272 \x3d (0);\nwhile(true){\nif((i__5750__auto___38272 \x3c len__5749__auto___38271)){\nargs__5755__auto__.push((arguments[i__5750__auto___38272]));\n\nvar G__38274 \x3d (i__5750__auto___38272 + (1));\ni__5750__auto___38272 \x3d G__38274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [42,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [43,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.warnf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warnf.cljs$lang$applyTo \x3d (function (seq38178){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38178));\n}));\n\nintemporal.internal.logging.errorf \x3d (function intemporal$internal$logging$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38282 \x3d arguments.length;\nvar i__5750__auto___38283 \x3d (0);\nwhile(true){\nif((i__5750__auto___38283 \x3c len__5749__auto___38282)){\nargs__5755__auto__.push((arguments[i__5750__auto___38283]));\n\nvar G__38285 \x3d (i__5750__auto___38283 + (1));\ni__5750__auto___38283 \x3d G__38285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [47,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [48,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.errorf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.errorf.cljs$lang$applyTo \x3d (function (seq38179){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38179));\n}));\n\nintemporal.internal.logging.fatalf \x3d (function intemporal$internal$logging$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38302 \x3d arguments.length;\nvar i__5750__auto___38303 \x3d (0);\nwhile(true){\nif((i__5750__auto___38303 \x3c len__5749__auto___38302)){\nargs__5755__auto__.push((arguments[i__5750__auto___38303]));\n\nvar G__38304 \x3d (i__5750__auto___38303 + (1));\ni__5750__auto___38303 \x3d G__38304;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [52,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [53,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.fatalf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatalf.cljs$lang$applyTo \x3d (function (seq38180){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38180));\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.utils.js", true, "goog.provide(\x27intemporal.utils\x27);\nintemporal.utils.current_time_ms \x3d (function intemporal$utils$current_time_ms(){\nreturn Date.now();\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__38447 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__38447) : resolve.call(null,G__38447));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___38817 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___38817)){\nvar id_38820 \x3d temp__5825__auto___38817;\nclearTimeout(id_38820);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___38825 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___38825)){\nvar id_38826 \x3d temp__5825__auto___38825;\nclearTimeout(id_38826);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k38457,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__38470 \x3d k38457;\nvar G__38470__$1 \x3d (((G__38470 instanceof cljs.core.Keyword))?G__38470.fqn:null);\nswitch (G__38470__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38457,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38473){\nvar vec__38474 \x3d p__38473;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38474,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38474,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__38456){\nvar self__ \x3d this;\nvar G__38456__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__38456__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this38459,other38460){\nvar self__ \x3d this;\nvar this38459__$1 \x3d this;\nreturn (((!((other38460 \x3d\x3d null)))) \x26\x26 ((((this38459__$1.constructor \x3d\x3d\x3d other38460.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38459__$1.pending_timers,other38460.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38459__$1.__extmap,other38460.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k38457){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__38488 \x3d k38457;\nvar G__38488__$1 \x3d (((G__38488 instanceof cljs.core.Keyword))?G__38488.fqn:null);\nswitch (G__38488__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k38457);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__38456){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__38494 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__38495 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__38494.cljs$core$IFn$_invoke$arity$2 ? pred__38494.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__38495) : pred__38494.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__38495)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__38456,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38456),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__38456){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__38456,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__38515_38851 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__38516_38852 \x3d null;\nvar count__38517_38853 \x3d (0);\nvar i__38518_38854 \x3d (0);\nwhile(true){\nif((i__38518_38854 \x3c count__38517_38853)){\nvar vec__38530_38855 \x3d chunk__38516_38852.cljs$core$IIndexed$_nth$arity$2(null,i__38518_38854);\nvar __38856__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38530_38855,(0),null);\nvar timer_id_38857 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38530_38855,(1),null);\nclearTimeout(timer_id_38857);\n\n\nvar G__38860 \x3d seq__38515_38851;\nvar G__38861 \x3d chunk__38516_38852;\nvar G__38862 \x3d count__38517_38853;\nvar G__38863 \x3d (i__38518_38854 + (1));\nseq__38515_38851 \x3d G__38860;\nchunk__38516_38852 \x3d G__38861;\ncount__38517_38853 \x3d G__38862;\ni__38518_38854 \x3d G__38863;\ncontinue;\n} else {\nvar temp__5825__auto___38864 \x3d cljs.core.seq(seq__38515_38851);\nif(temp__5825__auto___38864){\nvar seq__38515_38865__$1 \x3d temp__5825__auto___38864;\nif(cljs.core.chunked_seq_QMARK_(seq__38515_38865__$1)){\nvar c__5548__auto___38866 \x3d cljs.core.chunk_first(seq__38515_38865__$1);\nvar G__38867 \x3d cljs.core.chunk_rest(seq__38515_38865__$1);\nvar G__38868 \x3d c__5548__auto___38866;\nvar G__38869 \x3d cljs.core.count(c__5548__auto___38866);\nvar G__38870 \x3d (0);\nseq__38515_38851 \x3d G__38867;\nchunk__38516_38852 \x3d G__38868;\ncount__38517_38853 \x3d G__38869;\ni__38518_38854 \x3d G__38870;\ncontinue;\n} else {\nvar vec__38533_38872 \x3d cljs.core.first(seq__38515_38865__$1);\nvar __38873__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38533_38872,(0),null);\nvar timer_id_38874 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38533_38872,(1),null);\nclearTimeout(timer_id_38874);\n\n\nvar G__38876 \x3d cljs.core.next(seq__38515_38865__$1);\nvar G__38877 \x3d null;\nvar G__38878 \x3d (0);\nvar G__38879 \x3d (0);\nseq__38515_38851 \x3d G__38876;\nchunk__38516_38852 \x3d G__38877;\ncount__38517_38853 \x3d G__38878;\ni__38518_38854 \x3d G__38879;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__38464){\nvar extmap__5365__auto__ \x3d (function (){var G__38540 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__38464,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__38464)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38540);\n} else {\nreturn G__38540;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__38464),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38885 \x3d arguments.length;\nvar i__5750__auto___38887 \x3d (0);\nwhile(true){\nif((i__5750__auto___38887 \x3c len__5749__auto___38885)){\nargs__5755__auto__.push((arguments[i__5750__auto___38887]));\n\nvar G__38889 \x3d (i__5750__auto___38887 + (1));\ni__5750__auto___38887 \x3d G__38889;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__38547){\nvar map__38548 \x3d p__38547;\nvar map__38548__$1 \x3d cljs.core.__destructure_map(map__38548);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38548__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq38546){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38546));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e38560){if((e38560 instanceof Error)){\nvar e \x3d e38560;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e38560;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], 0));\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k38568,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__38578 \x3d k38568;\nvar G__38578__$1 \x3d (((G__38578 instanceof cljs.core.Keyword))?G__38578.fqn:null);\nswitch (G__38578__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k38568,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__38581){\nvar vec__38582 \x3d p__38581;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38582,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38582,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e38588){if((e38588 instanceof Error)){\nvar e \x3d e38588;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e38588;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__38594){\nvar map__38595 \x3d p__38594;\nvar map__38595__$1 \x3d cljs.core.__destructure_map(map__38595);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38595__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__38567){\nvar self__ \x3d this;\nvar G__38567__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__38567__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this38569,other38570){\nvar self__ \x3d this;\nvar this38569__$1 \x3d this;\nreturn (((!((other38570 \x3d\x3d null)))) \x26\x26 ((((this38569__$1.constructor \x3d\x3d\x3d other38570.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.registry_atom,other38570.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.default_timeout_ms,other38570.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this38569__$1.__extmap,other38570.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k38568){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__38643 \x3d k38568;\nvar G__38643__$1 \x3d (((G__38643 instanceof cljs.core.Keyword))?G__38643.fqn:null);\nswitch (G__38643__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k38568);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__38567){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__38645 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__38646 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__38645.cljs$core$IFn$_invoke$arity$2 ? pred__38645.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__38646) : pred__38645.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__38646)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__38567,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__38645.cljs$core$IFn$_invoke$arity$2 ? pred__38645.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__38646) : pred__38645.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__38646)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__38567,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__38567),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__38567){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__38567,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__38572){\nvar extmap__5365__auto__ \x3d (function (){var G__38704 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__38572,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__38572)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__38704);\n} else {\nreturn G__38704;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__38572),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__38572),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38958 \x3d arguments.length;\nvar i__5750__auto___38959 \x3d (0);\nwhile(true){\nif((i__5750__auto___38959 \x3c len__5749__auto___38958)){\nargs__5755__auto__.push((arguments[i__5750__auto___38959]));\n\nvar G__38962 \x3d (i__5750__auto___38959 + (1));\ni__5750__auto___38959 \x3d G__38962;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__38754){\nvar map__38755 \x3d p__38754;\nvar map__38755__$1 \x3d cljs.core.__destructure_map(map__38755);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38755__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38755__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nintemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], 0));\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq38725){\nvar G__38726 \x3d cljs.core.first(seq38725);\nvar seq38725__$1 \x3d cljs.core.next(seq38725);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38726,seq38725__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__50137 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__50137) : resolve.call(null,G__50137));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___50232 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50232)){\nvar id_50233 \x3d temp__5825__auto___50232;\nclearTimeout(id_50233);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___50234 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50234)){\nvar id_50235 \x3d temp__5825__auto___50234;\nclearTimeout(id_50235);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50139,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50143 \x3d k50139;\nvar G__50143__$1 \x3d (((G__50143 instanceof cljs.core.Keyword))?G__50143.fqn:null);\nswitch (G__50143__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50139,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50144){\nvar vec__50145 \x3d p__50144;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50138){\nvar self__ \x3d this;\nvar G__50138__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50138__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50140,other50141){\nvar self__ \x3d this;\nvar this50140__$1 \x3d this;\nreturn (((!((other50141 \x3d\x3d null)))) \x26\x26 ((((this50140__$1.constructor \x3d\x3d\x3d other50141.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.pending_timers,other50141.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.__extmap,other50141.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50139){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50148 \x3d k50139;\nvar G__50148__$1 \x3d (((G__50148 instanceof cljs.core.Keyword))?G__50148.fqn:null);\nswitch (G__50148__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50139);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50150 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50151 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50150.cljs$core$IFn$_invoke$arity$2 ? pred__50150.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151) : pred__50150.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__50138,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50138),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__50138,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__50162_50247 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__50163_50248 \x3d null;\nvar count__50164_50249 \x3d (0);\nvar i__50165_50250 \x3d (0);\nwhile(true){\nif((i__50165_50250 \x3c count__50164_50249)){\nvar vec__50174_50251 \x3d chunk__50163_50248.cljs$core$IIndexed$_nth$arity$2(null,i__50165_50250);\nvar __50252__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(0),null);\nvar timer_id_50253 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(1),null);\nclearTimeout(timer_id_50253);\n\n\nvar G__50254 \x3d seq__50162_50247;\nvar G__50255 \x3d chunk__50163_50248;\nvar G__50256 \x3d count__50164_50249;\nvar G__50257 \x3d (i__50165_50250 + (1));\nseq__50162_50247 \x3d G__50254;\nchunk__50163_50248 \x3d G__50255;\ncount__50164_50249 \x3d G__50256;\ni__50165_50250 \x3d G__50257;\ncontinue;\n} else {\nvar temp__5825__auto___50258 \x3d cljs.core.seq(seq__50162_50247);\nif(temp__5825__auto___50258){\nvar seq__50162_50259__$1 \x3d temp__5825__auto___50258;\nif(cljs.core.chunked_seq_QMARK_(seq__50162_50259__$1)){\nvar c__5548__auto___50260 \x3d cljs.core.chunk_first(seq__50162_50259__$1);\nvar G__50261 \x3d cljs.core.chunk_rest(seq__50162_50259__$1);\nvar G__50262 \x3d c__5548__auto___50260;\nvar G__50263 \x3d cljs.core.count(c__5548__auto___50260);\nvar G__50264 \x3d (0);\nseq__50162_50247 \x3d G__50261;\nchunk__50163_50248 \x3d G__50262;\ncount__50164_50249 \x3d G__50263;\ni__50165_50250 \x3d G__50264;\ncontinue;\n} else {\nvar vec__50179_50265 \x3d cljs.core.first(seq__50162_50259__$1);\nvar __50266__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(0),null);\nvar timer_id_50267 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(1),null);\nclearTimeout(timer_id_50267);\n\n\nvar G__50268 \x3d cljs.core.next(seq__50162_50259__$1);\nvar G__50269 \x3d null;\nvar G__50270 \x3d (0);\nvar G__50271 \x3d (0);\nseq__50162_50247 \x3d G__50268;\nchunk__50163_50248 \x3d G__50269;\ncount__50164_50249 \x3d G__50270;\ni__50165_50250 \x3d G__50271;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__50142){\nvar extmap__5365__auto__ \x3d (function (){var G__50183 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50142,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__50142)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50183);\n} else {\nreturn G__50183;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__50142),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50272 \x3d arguments.length;\nvar i__5750__auto___50273 \x3d (0);\nwhile(true){\nif((i__5750__auto___50273 \x3c len__5749__auto___50272)){\nargs__5755__auto__.push((arguments[i__5750__auto___50273]));\n\nvar G__50274 \x3d (i__5750__auto___50273 + (1));\ni__5750__auto___50273 \x3d G__50274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50185){\nvar map__50186 \x3d p__50185;\nvar map__50186__$1 \x3d cljs.core.__destructure_map(map__50186);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50186__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq50184){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50184));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50192){if((e50192 instanceof Error)){\nvar e \x3d e50192;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50192;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], 0));\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50195,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50200 \x3d k50195;\nvar G__50200__$1 \x3d (((G__50200 instanceof cljs.core.Keyword))?G__50200.fqn:null);\nswitch (G__50200__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50195,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50201){\nvar vec__50202 \x3d p__50201;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50205){if((e50205 instanceof Error)){\nvar e \x3d e50205;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50205;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__50207){\nvar map__50208 \x3d p__50207;\nvar map__50208__$1 \x3d cljs.core.__destructure_map(map__50208);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50194){\nvar self__ \x3d this;\nvar G__50194__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50194__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50196,other50197){\nvar self__ \x3d this;\nvar this50196__$1 \x3d this;\nreturn (((!((other50197 \x3d\x3d null)))) \x26\x26 ((((this50196__$1.constructor \x3d\x3d\x3d other50197.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.registry_atom,other50197.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.default_timeout_ms,other50197.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.__extmap,other50197.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50195){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50220 \x3d k50195;\nvar G__50220__$1 \x3d (((G__50220 instanceof cljs.core.Keyword))?G__50220.fqn:null);\nswitch (G__50220__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50195);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50221 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50222 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__50194,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__50194,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50194),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__50194,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__50198){\nvar extmap__5365__auto__ \x3d (function (){var G__50224 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50198,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__50198)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50224);\n} else {\nreturn G__50224;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__50198),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__50198),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50283 \x3d arguments.length;\nvar i__5750__auto___50284 \x3d (0);\nwhile(true){\nif((i__5750__auto___50284 \x3c len__5749__auto___50283)){\nargs__5755__auto__.push((arguments[i__5750__auto___50284]));\n\nvar G__50285 \x3d (i__5750__auto___50284 + (1));\ni__5750__auto___50284 \x3d G__50285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__50228){\nvar map__50229 \x3d p__50228;\nvar map__50229__$1 \x3d cljs.core.__destructure_map(map__50229);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50229__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50229__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nintemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], 0));\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq50225){\nvar G__50226 \x3d cljs.core.first(seq50225);\nvar seq50225__$1 \x3d cljs.core.next(seq50225);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50226,seq50225__$1);\n}));\n\n"); SHADOW_ENV.evalLoad("promesa.protocols.js", true, "goog.provide(\x27promesa.protocols\x27);\n\n/**\n * @interface\n */\npromesa.protocols.IPromise \x3d function(){};\n\nvar promesa$protocols$IPromise$_fmap$dyn_38687 \x3d (function() {\nvar G__38688 \x3d null;\nvar G__38688__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nvar G__38688__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nG__38688 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38688__2.call(this,it,f);\ncase 3:\nreturn G__38688__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38688.cljs$core$IFn$_invoke$arity$2 \x3d G__38688__2;\nG__38688.cljs$core$IFn$_invoke$arity$3 \x3d G__38688__3;\nreturn G__38688;\n})()\n;\n/**\n * Apply function to a computation\n */\npromesa.protocols._fmap \x3d (function promesa$protocols$_fmap(var_args){\nvar G__37892 \x3d arguments.length;\nswitch (G__37892) {\ncase 2:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f);\n}\n}));\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f,executor);\n}\n}));\n\n(promesa.protocols._fmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_merr$dyn_38703 \x3d (function() {\nvar G__38705 \x3d null;\nvar G__38705__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nvar G__38705__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nG__38705 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38705__2.call(this,it,f);\ncase 3:\nreturn G__38705__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38705.cljs$core$IFn$_invoke$arity$2 \x3d G__38705__2;\nG__38705.cljs$core$IFn$_invoke$arity$3 \x3d G__38705__3;\nreturn G__38705;\n})()\n;\n/**\n * Apply function to a failed computation and flatten 1 level\n */\npromesa.protocols._merr \x3d (function promesa$protocols$_merr(var_args){\nvar G__37920 \x3d arguments.length;\nswitch (G__37920) {\ncase 2:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f);\n}\n}));\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f,executor);\n}\n}));\n\n(promesa.protocols._merr.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_mcat$dyn_38711 \x3d (function() {\nvar G__38712 \x3d null;\nvar G__38712__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nvar G__38712__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nG__38712 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38712__2.call(this,it,f);\ncase 3:\nreturn G__38712__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38712.cljs$core$IFn$_invoke$arity$2 \x3d G__38712__2;\nG__38712.cljs$core$IFn$_invoke$arity$3 \x3d G__38712__3;\nreturn G__38712;\n})()\n;\n/**\n * Apply function to a computation and flatten 1 level\n */\npromesa.protocols._mcat \x3d (function promesa$protocols$_mcat(var_args){\nvar G__37931 \x3d arguments.length;\nswitch (G__37931) {\ncase 2:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f);\n}\n}));\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f,executor);\n}\n}));\n\n(promesa.protocols._mcat.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_hmap$dyn_38718 \x3d (function() {\nvar G__38719 \x3d null;\nvar G__38719__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nvar G__38719__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nG__38719 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38719__2.call(this,it,f);\ncase 3:\nreturn G__38719__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38719.cljs$core$IFn$_invoke$arity$2 \x3d G__38719__2;\nG__38719.cljs$core$IFn$_invoke$arity$3 \x3d G__38719__3;\nreturn G__38719;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful.\n */\npromesa.protocols._hmap \x3d (function promesa$protocols$_hmap(var_args){\nvar G__37945 \x3d arguments.length;\nswitch (G__37945) {\ncase 2:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f);\n}\n}));\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f,executor);\n}\n}));\n\n(promesa.protocols._hmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_fnly$dyn_38721 \x3d (function() {\nvar G__38722 \x3d null;\nvar G__38722__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nvar G__38722__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nG__38722 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38722__2.call(this,it,f);\ncase 3:\nreturn G__38722__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38722.cljs$core$IFn$_invoke$arity$2 \x3d G__38722__2;\nG__38722.cljs$core$IFn$_invoke$arity$3 \x3d G__38722__3;\nreturn G__38722;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful; the return value is ignored.\n */\npromesa.protocols._fnly \x3d (function promesa$protocols$_fnly(var_args){\nvar G__37964 \x3d arguments.length;\nswitch (G__37964) {\ncase 2:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f);\n}\n}));\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f,executor);\n}\n}));\n\n(promesa.protocols._fnly.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_then$dyn_38732 \x3d (function() {\nvar G__38733 \x3d null;\nvar G__38733__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nvar G__38733__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nG__38733 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38733__2.call(this,it,f);\ncase 3:\nreturn G__38733__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38733.cljs$core$IFn$_invoke$arity$2 \x3d G__38733__2;\nG__38733.cljs$core$IFn$_invoke$arity$3 \x3d G__38733__3;\nreturn G__38733;\n})()\n;\n/**\n * Apply function to a computation and flatten multiple levels\n */\npromesa.protocols._then \x3d (function promesa$protocols$_then(var_args){\nvar G__37976 \x3d arguments.length;\nswitch (G__37976) {\ncase 2:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f);\n}\n}));\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f,executor);\n}\n}));\n\n(promesa.protocols._then.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Additional state/introspection abstraction.\n * @interface\n */\npromesa.protocols.IState \x3d function(){};\n\nvar promesa$protocols$IState$_extract$dyn_38742 \x3d (function() {\nvar G__38743 \x3d null;\nvar G__38743__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nvar G__38743__2 \x3d (function (it,default$){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5374__auto__.call(null,it,default$));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5372__auto__.call(null,it,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nG__38743 \x3d function(it,default$){\nswitch(arguments.length){\ncase 1:\nreturn G__38743__1.call(this,it);\ncase 2:\nreturn G__38743__2.call(this,it,default$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38743.cljs$core$IFn$_invoke$arity$1 \x3d G__38743__1;\nG__38743.cljs$core$IFn$_invoke$arity$2 \x3d G__38743__2;\nreturn G__38743;\n})()\n;\n/**\n * Extract the current value.\n */\npromesa.protocols._extract \x3d (function promesa$protocols$_extract(var_args){\nvar G__37998 \x3d arguments.length;\nswitch (G__37998) {\ncase 1:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it);\n}\n}));\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,default$){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$2(it,default$);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it,default$);\n}\n}));\n\n(promesa.protocols._extract.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$IState$_resolved_QMARK_$dyn_38750 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolved_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolved_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-resolved?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is resolved.\n */\npromesa.protocols._resolved_QMARK_ \x3d (function promesa$protocols$_resolved_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_resolved_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_resolved_QMARK_$dyn_38750(it);\n}\n});\n\nvar promesa$protocols$IState$_rejected_QMARK_$dyn_38751 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._rejected_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._rejected_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-rejected?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is rejected.\n */\npromesa.protocols._rejected_QMARK_ \x3d (function promesa$protocols$_rejected_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_rejected_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_rejected_QMARK_$dyn_38751(it);\n}\n});\n\nvar promesa$protocols$IState$_pending_QMARK_$dyn_38757 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-pending?\x22,it);\n}\n}\n});\n/**\n * Retutns true if a promise is pending.\n */\npromesa.protocols._pending_QMARK_ \x3d (function promesa$protocols$_pending_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_pending_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_pending_QMARK_$dyn_38757(it);\n}\n});\n\n\n/**\n * A promise constructor abstraction.\n * @interface\n */\npromesa.protocols.IPromiseFactory \x3d function(){};\n\nvar promesa$protocols$IPromiseFactory$_promise$dyn_38758 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._promise[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._promise[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromiseFactory.-promise\x22,it);\n}\n}\n});\n/**\n * Create a promise instance from other types\n */\npromesa.protocols._promise \x3d (function promesa$protocols$_promise(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromiseFactory$_promise$arity$1(it);\n} else {\nreturn promesa$protocols$IPromiseFactory$_promise$dyn_38758(it);\n}\n});\n\n\n/**\n * A cancellation abstraction.\n * @interface\n */\npromesa.protocols.ICancellable \x3d function(){};\n\nvar promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancel!\x22,it);\n}\n}\n});\npromesa.protocols._cancel_BANG_ \x3d (function promesa$protocols$_cancel_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760(it);\n}\n});\n\nvar promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancelled?\x22,it);\n}\n}\n});\npromesa.protocols._cancelled_QMARK_ \x3d (function promesa$protocols$_cancelled_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICompletable \x3d function(){};\n\nvar promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768 \x3d (function (it,v){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolve_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5374__auto__.call(null,it,v));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolve_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5372__auto__.call(null,it,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-resolve!\x22,it);\n}\n}\n});\n/**\n * Deliver a value to empty promise.\n */\npromesa.protocols._resolve_BANG_ \x3d (function promesa$protocols$_resolve_BANG_(it,v){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2(it,v);\n} else {\nreturn promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768(it,v);\n}\n});\n\nvar promesa$protocols$ICompletable$_reject_BANG_$dyn_38774 \x3d (function (it,e){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._reject_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5374__auto__.call(null,it,e));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._reject_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5372__auto__.call(null,it,e));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-reject!\x22,it);\n}\n}\n});\n/**\n * Deliver an error to empty promise.\n */\npromesa.protocols._reject_BANG_ \x3d (function promesa$protocols$_reject_BANG_(it,e){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_reject_BANG_$arity$2(it,e);\n} else {\nreturn promesa$protocols$ICompletable$_reject_BANG_$dyn_38774(it,e);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IExecutor \x3d function(){};\n\nvar promesa$protocols$IExecutor$_exec_BANG_$dyn_38780 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._exec_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._exec_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-exec!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return nil\n */\npromesa.protocols._exec_BANG_ \x3d (function promesa$protocols$_exec_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_exec_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_exec_BANG_$dyn_38780(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_run_BANG_$dyn_38784 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._run_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._run_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-run!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._run_BANG_ \x3d (function promesa$protocols$_run_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_run_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_run_BANG_$dyn_38784(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_submit_BANG_$dyn_38785 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._submit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._submit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-submit!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._submit_BANG_ \x3d (function promesa$protocols$_submit_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_submit_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_submit_BANG_$dyn_38785(it,task);\n}\n});\n\n\n/**\n * A generic abstraction for scheduler facilities.\n * @interface\n */\npromesa.protocols.IScheduler \x3d function(){};\n\nvar promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792 \x3d (function (it,ms,func){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._schedule_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5374__auto__.call(null,it,ms,func));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._schedule_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5372__auto__.call(null,it,ms,func));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.-schedule!\x22,it);\n}\n}\n});\n/**\n * Schedule a function to be executed in future.\n */\npromesa.protocols._schedule_BANG_ \x3d (function promesa$protocols$_schedule_BANG_(it,ms,func){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3(it,ms,func);\n} else {\nreturn promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792(it,ms,func);\n}\n});\n\n\n/**\n * An experimental semaphore protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ISemaphore \x3d function(){};\n\nvar promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798 \x3d (function() {\nvar G__38799 \x3d null;\nvar G__38799__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__3 \x3d (function (it,n,t){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5374__auto__.call(null,it,n,t));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5372__auto__.call(null,it,n,t));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nG__38799 \x3d function(it,n,t){\nswitch(arguments.length){\ncase 1:\nreturn G__38799__1.call(this,it);\ncase 2:\nreturn G__38799__2.call(this,it,n);\ncase 3:\nreturn G__38799__3.call(this,it,n,t);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38799.cljs$core$IFn$_invoke$arity$1 \x3d G__38799__1;\nG__38799.cljs$core$IFn$_invoke$arity$2 \x3d G__38799__2;\nG__38799.cljs$core$IFn$_invoke$arity$3 \x3d G__38799__3;\nreturn G__38799;\n})()\n;\n/**\n * Try acquire n or n permits, non-blocking or optional timeout\n */\npromesa.protocols._try_acquire_BANG_ \x3d (function promesa$protocols$_try_acquire_BANG_(var_args){\nvar G__38458 \x3d arguments.length;\nswitch (G__38458) {\ncase 1:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,n,t){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3(it,n,t);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n,t);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810 \x3d (function() {\nvar G__38811 \x3d null;\nvar G__38811__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nvar G__38811__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nG__38811 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38811__1.call(this,it);\ncase 2:\nreturn G__38811__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38811.cljs$core$IFn$_invoke$arity$1 \x3d G__38811__1;\nG__38811.cljs$core$IFn$_invoke$arity$2 \x3d G__38811__2;\nreturn G__38811;\n})()\n;\n/**\n * Acquire 1 or N permits\n */\npromesa.protocols._acquire_BANG_ \x3d (function promesa$protocols$_acquire_BANG_(var_args){\nvar G__38505 \x3d arguments.length;\nswitch (G__38505) {\ncase 1:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it,n);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$ISemaphore$_release_BANG_$dyn_38816 \x3d (function() {\nvar G__38817 \x3d null;\nvar G__38817__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nvar G__38817__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nG__38817 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38817__1.call(this,it);\ncase 2:\nreturn G__38817__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38817.cljs$core$IFn$_invoke$arity$1 \x3d G__38817__1;\nG__38817.cljs$core$IFn$_invoke$arity$2 \x3d G__38817__2;\nreturn G__38817;\n})()\n;\n/**\n * Release 1 or N permits\n */\npromesa.protocols._release_BANG_ \x3d (function promesa$protocols$_release_BANG_(var_args){\nvar G__38547 \x3d arguments.length;\nswitch (G__38547) {\ncase 1:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it,n);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * An experimental lock protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ILock \x3d function(){};\n\nvar promesa$protocols$ILock$_lock_BANG_$dyn_38826 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._lock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._lock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-lock!\x22,it);\n}\n}\n});\npromesa.protocols._lock_BANG_ \x3d (function promesa$protocols$_lock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_lock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_lock_BANG_$dyn_38826(it);\n}\n});\n\nvar promesa$protocols$ILock$_unlock_BANG_$dyn_38831 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._unlock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._unlock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-unlock!\x22,it);\n}\n}\n});\npromesa.protocols._unlock_BANG_ \x3d (function promesa$protocols$_unlock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_unlock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_unlock_BANG_$dyn_38831(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IReadChannel \x3d function(){};\n\nvar promesa$protocols$IReadChannel$_take_BANG_$dyn_38836 \x3d (function (it,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._take_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5374__auto__.call(null,it,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._take_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5372__auto__.call(null,it,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IReadChannel.-take!\x22,it);\n}\n}\n});\npromesa.protocols._take_BANG_ \x3d (function promesa$protocols$_take_BANG_(it,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IReadChannel$_take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IReadChannel$_take_BANG_$arity$2(it,handler);\n} else {\nreturn promesa$protocols$IReadChannel$_take_BANG_$dyn_38836(it,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IWriteChannel \x3d function(){};\n\nvar promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838 \x3d (function (it,val,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._put_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5374__auto__.call(null,it,val,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._put_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5372__auto__.call(null,it,val,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriteChannel.-put!\x22,it);\n}\n}\n});\npromesa.protocols._put_BANG_ \x3d (function promesa$protocols$_put_BANG_(it,val,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3(it,val,handler);\n} else {\nreturn promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838(it,val,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelInternal \x3d function(){};\n\nvar promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cleanup_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cleanup_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelInternal.-cleanup!\x22,it);\n}\n}\n});\npromesa.protocols._cleanup_BANG_ \x3d (function promesa$protocols$_cleanup_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelMultiplexer \x3d function(){};\n\nvar promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840 \x3d (function (it,ch,close_QMARK_){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._tap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5374__auto__.call(null,it,ch,close_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._tap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5372__auto__.call(null,it,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-tap!\x22,it);\n}\n}\n});\npromesa.protocols._tap_BANG_ \x3d (function promesa$protocols$_tap_BANG_(it,ch,close_QMARK_){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3(it,ch,close_QMARK_);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840(it,ch,close_QMARK_);\n}\n});\n\nvar promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842 \x3d (function (it,ch){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._untap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5374__auto__.call(null,it,ch));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._untap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5372__auto__.call(null,it,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-untap!\x22,it);\n}\n}\n});\npromesa.protocols._untap_BANG_ \x3d (function promesa$protocols$_untap_BANG_(it,ch){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2(it,ch);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842(it,ch);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICloseable \x3d function(){};\n\nvar promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._closed_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._closed_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-closed?\x22,it);\n}\n}\n});\npromesa.protocols._closed_QMARK_ \x3d (function promesa$protocols$_closed_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843(it);\n}\n});\n\nvar promesa$protocols$ICloseable$_close_BANG_$dyn_38845 \x3d (function() {\nvar G__38846 \x3d null;\nvar G__38846__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nvar G__38846__2 \x3d (function (it,reason){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5374__auto__.call(null,it,reason));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5372__auto__.call(null,it,reason));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nG__38846 \x3d function(it,reason){\nswitch(arguments.length){\ncase 1:\nreturn G__38846__1.call(this,it);\ncase 2:\nreturn G__38846__2.call(this,it,reason);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38846.cljs$core$IFn$_invoke$arity$1 \x3d G__38846__1;\nG__38846.cljs$core$IFn$_invoke$arity$2 \x3d G__38846__2;\nreturn G__38846;\n})()\n;\npromesa.protocols._close_BANG_ \x3d (function promesa$protocols$_close_BANG_(var_args){\nvar G__38634 \x3d arguments.length;\nswitch (G__38634) {\ncase 1:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,reason){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$2(it,reason);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it,reason);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * @interface\n */\npromesa.protocols.IBuffer \x3d function(){};\n\nvar promesa$protocols$IBuffer$_full_QMARK_$dyn_38852 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._full_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._full_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-full?\x22,it);\n}\n}\n});\npromesa.protocols._full_QMARK_ \x3d (function promesa$protocols$_full_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_full_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_full_QMARK_$dyn_38852(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_poll_BANG_$dyn_38854 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._poll_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._poll_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-poll!\x22,it);\n}\n}\n});\npromesa.protocols._poll_BANG_ \x3d (function promesa$protocols$_poll_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_poll_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_poll_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_poll_BANG_$dyn_38854(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_offer_BANG_$dyn_38857 \x3d (function (it,val){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._offer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5374__auto__.call(null,it,val));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._offer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5372__auto__.call(null,it,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-offer!\x22,it);\n}\n}\n});\npromesa.protocols._offer_BANG_ \x3d (function promesa$protocols$_offer_BANG_(it,val){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_offer_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_offer_BANG_$arity$2(it,val);\n} else {\nreturn promesa$protocols$IBuffer$_offer_BANG_$dyn_38857(it,val);\n}\n});\n\nvar promesa$protocols$IBuffer$_size$dyn_38864 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._size[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._size[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-size\x22,it);\n}\n}\n});\npromesa.protocols._size \x3d (function promesa$protocols$_size(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_size$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_size$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_size$dyn_38864(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IHandler \x3d function(){};\n\nvar promesa$protocols$IHandler$_active_QMARK_$dyn_38866 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._active_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._active_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-active?\x22,it);\n}\n}\n});\npromesa.protocols._active_QMARK_ \x3d (function promesa$protocols$_active_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_active_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_active_QMARK_$dyn_38866(it);\n}\n});\n\nvar promesa$protocols$IHandler$_commit_BANG_$dyn_38871 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._commit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._commit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-commit!\x22,it);\n}\n}\n});\npromesa.protocols._commit_BANG_ \x3d (function promesa$protocols$_commit_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_commit_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_commit_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_commit_BANG_$dyn_38871(it);\n}\n});\n\nvar promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._blockable_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._blockable_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-blockable?\x22,it);\n}\n}\n});\npromesa.protocols._blockable_QMARK_ \x3d (function promesa$protocols$_blockable_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874(it);\n}\n});\n\n"); SHADOW_ENV.evalLoad("promesa.util.js", true, "goog.provide(\x27promesa.util\x27);\n/**\n * Create a handler, mainly for combine two separate functions\n * into a single callbale.\n */\npromesa.util.handler \x3d (function promesa$util$handler(fv,fc){\nreturn (function (v,c){\nif(cljs.core.truth_(c)){\nreturn (fc.cljs$core$IFn$_invoke$arity$1 ? fc.cljs$core$IFn$_invoke$arity$1(c) : fc.call(null,c));\n} else {\nreturn (fv.cljs$core$IFn$_invoke$arity$1 ? fv.cljs$core$IFn$_invoke$arity$1(v) : fv.call(null,v));\n}\n});\n});\npromesa.util.has_method_QMARK_ \x3d (function promesa$util$has_method_QMARK_(klass,name){\nvar methods$ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (method){\nreturn method.getName();\n})),klass.getDeclaredMethods());\nreturn cljs.core.contains_QMARK_(methods$,name);\n});\npromesa.util.maybe_deref \x3d (function promesa$util$maybe_deref(o){\nif(cljs.core.delay_QMARK_(o)){\nreturn cljs.core.deref(o);\n} else {\nreturn o;\n}\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.ILock}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.util.t_promesa$util43295 \x3d (function (meta43296){\nthis.meta43296 \x3d meta43296;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43297,meta43296__$1){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn (new promesa.util.t_promesa$util43295(meta43296__$1));\n}));\n\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43297){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn self__.meta43296;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43296\x22,\x22meta43296\x22,331692302,null)], null);\n}));\n\n(promesa.util.t_promesa$util43295.cljs$lang$type \x3d true);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorStr \x3d \x22promesa.util/t_promesa$util43295\x22);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.util/t_promesa$util43295\x22);\n}));\n\n/**\n * Positional factory function for promesa.util/t_promesa$util43295.\n */\npromesa.util.__GT_t_promesa$util43295 \x3d (function promesa$util$__GT_t_promesa$util43295(meta43296){\nreturn (new promesa.util.t_promesa$util43295(meta43296));\n});\n\n\npromesa.util.mutex \x3d (function promesa$util$mutex(){\nreturn (new promesa.util.t_promesa$util43295(cljs.core.PersistentArrayMap.EMPTY));\n});\npromesa.util.try_STAR_ \x3d (function promesa$util$try_STAR_(f,on_error){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43314){var e \x3d e43314;\nreturn (on_error.cljs$core$IFn$_invoke$arity$1 ? on_error.cljs$core$IFn$_invoke$arity$1(e) : on_error.call(null,e));\n}});\n"); SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.impl.promise\x22);\ngoog.provide(\x22promesa.impl.promise.PromiseImpl\x22);\ngoog.provide(\x22promesa.impl.promise.CancellationError\x22);\ngoog.scope(function() {\n const self \x3d promesa.impl.promise;\n const root \x3d goog.global;\n const PENDING \x3d Symbol(\x22state/pending\x22);\n const RESOLVED \x3d Symbol(\x22state/resolved\x22);\n const REJECTED \x3d Symbol(\x22state/rejected\x22);\n const QUEUE \x3d Symbol(\x22queue\x22);\n const STATE \x3d Symbol(\x22state\x22);\n const VALUE \x3d Symbol(\x22value\x22);\n const RESOLVE_TYPE_FLATTEN \x3d Symbol(\x22resolve-type/flatten\x22);\n const RESOLVE_TYPE_BIND \x3d Symbol(\x22resolve-type/bind\x22);\n const RESOLVE_TYPE_MAP \x3d Symbol(\x22resolve-type/map\x22);\n const defaultResolveMapHandler \x3d v \x3d\x3e v;\n const defaultResolveBindHandler \x3d v \x3d\x3e self.resolved(v);\n const defaultRejectHandler \x3d c \x3d\x3e {\n throw c;\n };\n class CancellationError extends Error {\n }\n class PromiseImpl {\n constructor(val) {\n this[QUEUE] \x3d [];\n this[STATE] \x3d PENDING;\n this[VALUE] \x3d undefined;\n if (val !\x3d\x3d undefined) {\n transition(this, RESOLVED, val);\n }\n }\n get state() {\n return this[STATE];\n }\n get value() {\n return this[VALUE];\n }\n then(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n catch(reject) {\n return this.then(null, reject);\n }\n finally(f) {\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:value \x3d\x3e f(), reject:cause \x3d\x3e f(), complete:(value, cause) \x3d\x3e null});\n return this;\n }\n fmap(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_MAP, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n fbind(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_BIND, resolve:resolve ?? defaultResolveBindHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n handle(fn, resolveType) {\n resolveType \x3d resolveType ?? RESOLVE_TYPE_MAP;\n this[QUEUE].push({type:resolveType, resolve:defaultResolveMapHandler, reject:defaultRejectHandler, complete:fn});\n process(this);\n }\n resolve(value) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, RESOLVED, value);\n }\n return null;\n }\n reject(cause) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, REJECTED, cause);\n }\n return null;\n }\n isPending() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d PENDING;\n }\n isResolved() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d RESOLVED;\n }\n isRejected() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d REJECTED;\n }\n isCancelled() {\n const state \x3d this[STATE];\n const value \x3d this[VALUE];\n return state \x3d\x3d\x3d REJECTED \x26\x26 isCancellationError(value);\n }\n cancel() {\n this.reject(new CancellationError(\x22promise cancelled\x22));\n }\n }\n const nextTick \x3d (() \x3d\x3e {\n if (typeof root.Promise \x3d\x3d\x3d \x22function\x22) {\n const resolved \x3d Promise.resolve(null);\n return function queueMicrotaskWithPromise(f, p) {\n resolved.then(() \x3d\x3e f(p));\n };\n } else if (typeof root.setImmediate \x3d\x3d\x3d \x22function\x22) {\n return root.setImmediate;\n } else if (typeof root.setTimeout \x3d\x3d\x3d \x22function\x22) {\n return (f, p) \x3d\x3e root.setTimeout(f, 0, p);\n } else {\n return (f, p) \x3d\x3e f.call(this, p);\n }\n })();\n function isCancellationError(v) {\n return v instanceof CancellationError;\n }\n function fmtValue(o) {\n if (isThenable(o)) {\n return `\x3cPROMISE:${goog.getUid(o)}\x3e`;\n } else if (o instanceof Error) {\n return `\x3cEXCEPTION:\x27${o.message}\x27\x3e`;\n } else if (o \x3d\x3d\x3d null || o \x3d\x3d\x3d undefined) {\n return `${o}`;\n } else if (typeof o \x3d\x3d\x3d \x22function\x22) {\n return `\x3cFN:${goog.getUid(o)}\x3e`;\n } else {\n return `${o.toString()}`;\n }\n }\n function isSome(o) {\n return o !\x3d\x3d null \x26\x26 o !\x3d\x3d undefined;\n }\n function isFunction(o) {\n return typeof o \x3d\x3d\x3d \x22function\x22;\n }\n function isThenable(o) {\n if (goog.isObject(o)) {\n const thenFn \x3d o.then;\n return isFunction(thenFn);\n } else {\n return false;\n }\n }\n function constantly(v) {\n return () \x3d\x3e v;\n }\n function identity(v) {\n return v;\n }\n function isPromiseImpl(v) {\n return v instanceof PromiseImpl;\n }\n function completeDeferredFn(deferred) {\n return (value, cause) \x3d\x3e {\n if (cause) {\n deferred.reject(cause);\n } else {\n deferred.resolve(value);\n }\n };\n }\n function process(p) {\n if (p[STATE] \x3d\x3d\x3d PENDING) {\n return;\n }\n nextTick(processNextTick, p);\n return p;\n }\n function processNextTick(p) {\n if (p[QUEUE].length \x3d\x3d\x3d 0) {\n return;\n }\n const state \x3d p[STATE];\n const value \x3d p[VALUE];\n let task, rvalue, rcause;\n while (p[QUEUE].length) {\n task \x3d p[QUEUE].shift();\n try {\n if (state \x3d\x3d\x3d RESOLVED) {\n rvalue \x3d task.resolve(value);\n } else if (state \x3d\x3d\x3d REJECTED) {\n rvalue \x3d task.reject(value);\n } else {\n rcause \x3d new TypeError(\x22invalid state\x22);\n }\n } catch (e) {\n rcause \x3d e;\n }\n resolveTask(task, rvalue, rcause);\n }\n }\n function resolveTask(task, value, cause) {\n if (task.complete \x3d\x3d\x3d undefined) {\n return;\n }\n if (cause) {\n task.complete(null, cause);\n } else {\n if (task.type \x3d\x3d\x3d RESOLVE_TYPE_MAP) {\n task.complete(value, null);\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_FLATTEN) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n resolveTask(task, v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n resolveTask(task, v, null);\n }, c \x3d\x3e {\n resolveTask(task, null, c);\n });\n } else {\n task.complete(value, null);\n }\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_BIND) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n task.complete(v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n task.complete(v, null);\n }, c \x3d\x3e {\n task.complete(null, c);\n });\n } else {\n task.complete(null, new TypeError(\x22expected thenable\x22));\n }\n } else {\n task.complete(null, new TypeError(\x22internal: invalid resolve type\x22));\n }\n }\n }\n function transition(p, state, value) {\n if (p[STATE] \x3d\x3d\x3d state || p[STATE] !\x3d\x3d PENDING) {\n return;\n }\n p[STATE] \x3d state;\n p[VALUE] \x3d value;\n return processNextTick(p);\n }\n self.PromiseImpl \x3d PromiseImpl;\n self.CancellationError \x3d CancellationError;\n self.isCancellationError \x3d isCancellationError;\n self.deferred \x3d () \x3d\x3e {\n return new PromiseImpl();\n };\n const NULL_PROMISE \x3d new PromiseImpl(null);\n self.resolved \x3d function resolved(value) {\n if (value \x3d\x3d\x3d null) {\n return NULL_PROMISE;\n } else {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d RESOLVED;\n p[VALUE] \x3d value;\n return p;\n }\n };\n self.rejected \x3d function rejected(reason) {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d REJECTED;\n p[VALUE] \x3d reason;\n return p;\n };\n self.all \x3d function all(promises) {\n return promises.reduce((acc, p) \x3d\x3e {\n return acc.then(results \x3d\x3e {\n return self.coerce(p).fmap(v \x3d\x3e {\n results.push(v);\n return results;\n });\n });\n }, self.resolved([]));\n };\n self.coerce \x3d function coerce(promise) {\n if (promise instanceof PromiseImpl) {\n return promise;\n } else if (isThenable(promise)) {\n const deferred \x3d self.deferred();\n promise.then(v \x3d\x3e {\n deferred.resolve(v);\n }, c \x3d\x3e {\n deferred.reject(c);\n });\n return deferred;\n } else if (promise instanceof Error) {\n return self.rejected(promise);\n } else {\n return self.resolved(promise);\n }\n };\n self.race \x3d function race(promises) {\n const deferred \x3d self.deferred();\n promises.forEach(p \x3d\x3e {\n self.coerce(p).handle((v, c) \x3d\x3e {\n if (c) {\n deferred.reject(c);\n } else {\n deferred.resolve(v);\n }\n });\n });\n return deferred;\n };\n self.nextTick \x3d nextTick;\n self.PENDING \x3d PENDING;\n self.RESOLVED \x3d RESOLVED;\n self.REJECTED \x3d REJECTED;\n});\n"); SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\ntry{return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n}catch (e39435){if((e39435 instanceof Error)){\nvar e \x3d e39435;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()))], null);\n\n}\n}\n} else {\nthrow e39435;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (exec_result){\nvar G__39436 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__39436__$1 \x3d (((G__39436 instanceof cljs.core.Keyword))?G__39436.fqn:null);\nswitch (G__39436__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (_){\nvar G__39437 \x3d executor;\nvar G__39438 \x3d activity_name;\nvar G__39439 \x3d args;\nvar G__39440 \x3d timeout_ms;\nvar G__39441 \x3d retry_policy;\nvar G__39442 \x3d observer;\nvar G__39443 \x3d workflow_id;\nvar G__39444 \x3d seq_num;\nvar G__39445 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__39437,G__39438,G__39439,G__39440,G__39441,G__39442,G__39443,G__39444,G__39445) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__39437,G__39438,G__39439,G__39440,G__39441,G__39442,G__39443,G__39444,G__39445));\n}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39436__$1)].join(\x27\x27)));\n\n}\n}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__39446,pending_events,observer){\nvar map__39447 \x3d p__39446;\nvar map__39447__$1 \x3d cljs.core.__destructure_map(map__39447);\nvar suspension_data \x3d map__39447__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39447__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__39448 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39449 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39449);\n\ntry{return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq)),(function (exec_result){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_events(store,workflow_id,pending_events)),(function (___30467__auto__){\nreturn promesa.protocols._promise((function (){var success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__39450 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__39450__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39450,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__39450);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39450__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__39450__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39448);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activities_parallel(executor,pending_asyncs)),(function (results){\nreturn promesa.protocols._promise((function (){var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__39451,result){\nvar map__39452 \x3d p__39451;\nvar map__39452__$1 \x3d cljs.core.__destructure_map(map__39452);\nvar async_info \x3d map__39452__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39452__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39452__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__39453 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39454 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39454);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39453);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39455 \x3d suspension_data;\nvar map__39455__$1 \x3d cljs.core.__destructure_map(map__39455);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39455__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39455__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39456 \x3d suspension_data;\nvar map__39456__$1 \x3d cljs.core.__destructure_map(map__39456);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39456__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39456__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___39485 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___39485)){\nvar signal_data_39486 \x3d temp__5825__auto___39485;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_39486),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_39486),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_39486));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__39457 \x3d suspension_data;\nvar map__39457__$1 \x3d cljs.core.__destructure_map(map__39457);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39457__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__39491 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__39458 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__39491 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__39491 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__39458,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__39491));\n} else {\nreturn G__39458;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__39459 \x3d suspension_data;\nvar map__39459__$1 \x3d cljs.core.__destructure_map(map__39459);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39459__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(workflow_id,history,store,registry,observer){\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\n});\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer):(function (){\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n})()\n)),(function (_){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null))),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_workflow_completed(observer,workflow_id,result):null)),(function (___30467__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null));\n}));\n}));\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__39460 \x3d action;\nvar G__39460__$1 \x3d (((G__39460 instanceof cljs.core.Keyword))?G__39460.fqn:null);\nswitch (G__39460__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__39461 \x3d engine;\nvar map__39461__$1 \x3d cljs.core.__destructure_map(map__39461);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39461__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__39462 \x3d suspension_type;\nvar G__39462__$1 \x3d (((G__39462 instanceof cljs.core.Keyword))?G__39462.fqn:null);\nswitch (G__39462__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs_list))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer):null)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39462__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__39463,workflow_id,workflow_fn,args,p__39464){\nvar map__39465 \x3d p__39463;\nvar map__39465__$1 \x3d cljs.core.__destructure_map(map__39465);\nvar engine \x3d map__39465__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39465__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39466 \x3d p__39464;\nvar map__39466__$1 \x3d cljs.core.__destructure_map(map__39466);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39466__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39466__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39466__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39471,reject_fn_39470){\nvar loop_fn_39467 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_39467(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39468,err_39469){\nif((!((err_39469 \x3d\x3d null)))){\nreturn (reject_fn_39470.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39470.cljs$core$IFn$_invoke$arity$1(err_39469) : reject_fn_39470.call(null,err_39469));\n} else {\nif(promesa.core.recur_QMARK_(res_39468)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_39467,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39468));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39471.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39471.cljs$core$IFn$_invoke$arity$1(res_39468) : resolve_fn_39471.call(null,res_39468));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30467__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30467__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context(workflow_id,history__$1,store,registry,observer);\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__39472 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39473 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39473);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39472);\n}})();\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result)], 0));\n\nvar G__39474 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__39474__$1 \x3d (((G__39474 instanceof cljs.core.Keyword))?G__39474.fqn:null);\nswitch (G__39474__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ncase \x22suspended\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30499__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),wake_fn,observer)),(function (action){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())?intemporal.protocol.on_workflow_resumed(observer,workflow_id):null)),(function (___30467__auto____$2){\nreturn promesa.protocols._promise(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553)))?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null)):intemporal.internal.execution.action__GT_result(action,workflow_id)));\n}));\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__39474__$1)].join(\x27\x27)));\n\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39467((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__39475,workflow_id,suspension_data,pending_events,observer){\nvar map__39476 \x3d p__39475;\nvar map__39476__$1 \x3d cljs.core.__destructure_map(map__39476);\nvar engine \x3d map__39476__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39476__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39477 \x3d suspension_data;\nvar map__39477__$1 \x3d cljs.core.__destructure_map(map__39477);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39477__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__39480 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__39479 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__39479.cljs$core$IFn$_invoke$arity$1 ? fexpr__39479.cljs$core$IFn$_invoke$arity$1(G__39480) : fexpr__39479.call(null,G__39480));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39508 \x3d arguments.length;\nvar i__5750__auto___39509 \x3d (0);\nwhile(true){\nif((i__5750__auto___39509 \x3c len__5749__auto___39508)){\nargs__5755__auto__.push((arguments[i__5750__auto___39509]));\n\nvar G__39510 \x3d (i__5750__auto___39509 + (1));\ni__5750__auto___39509 \x3d G__39510;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39487,workflow_fn,args,p__39488){\nvar map__39489 \x3d p__39487;\nvar map__39489__$1 \x3d cljs.core.__destructure_map(map__39489);\nvar engine \x3d map__39489__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39489__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__39490 \x3d p__39488;\nvar map__39490__$1 \x3d cljs.core.__destructure_map(map__39490);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39490__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39490__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39490__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq39481){\nvar G__39482 \x3d cljs.core.first(seq39481);\nvar seq39481__$1 \x3d cljs.core.next(seq39481);\nvar G__39483 \x3d cljs.core.first(seq39481__$1);\nvar seq39481__$2 \x3d cljs.core.next(seq39481__$1);\nvar G__39484 \x3d cljs.core.first(seq39481__$2);\nvar seq39481__$3 \x3d cljs.core.next(seq39481__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39482,G__39483,G__39484,seq39481__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39511 \x3d arguments.length;\nvar i__5750__auto___39512 \x3d (0);\nwhile(true){\nif((i__5750__auto___39512 \x3c len__5749__auto___39511)){\nargs__5755__auto__.push((arguments[i__5750__auto___39512]));\n\nvar G__39513 \x3d (i__5750__auto___39512 + (1));\ni__5750__auto___39512 \x3d G__39513;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39499,workflow_fn,args,p__39500){\nvar map__39501 \x3d p__39499;\nvar map__39501__$1 \x3d cljs.core.__destructure_map(map__39501);\nvar engine \x3d map__39501__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39501__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__39502 \x3d p__39500;\nvar map__39502__$1 \x3d cljs.core.__destructure_map(map__39502);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39502__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39502__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__39503 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39504 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39504);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__39505 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__39505) : on_complete.call(null,G__39505));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39503);\n}});\nvar _STAR_ctx_STAR__orig_val__39506 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39507 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39507);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39506);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq39494){\nvar G__39495 \x3d cljs.core.first(seq39494);\nvar seq39494__$1 \x3d cljs.core.next(seq39494);\nvar G__39496 \x3d cljs.core.first(seq39494__$1);\nvar seq39494__$2 \x3d cljs.core.next(seq39494__$1);\nvar G__39497 \x3d cljs.core.first(seq39494__$2);\nvar seq39494__$3 \x3d cljs.core.next(seq39494__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39495,G__39496,G__39497,seq39494__$3);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__75509 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75510 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75510);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75509);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,wrap_ctx((function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}))),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e75511){if((e75511 instanceof Error)){\nvar e \x3d e75511;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e75511;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (exec_result){\nvar G__75512 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__75512__$1 \x3d (((G__75512 instanceof cljs.core.Keyword))?G__75512.fqn:null);\nswitch (G__75512__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (_){\nvar G__75513 \x3d executor;\nvar G__75514 \x3d activity_name;\nvar G__75515 \x3d args;\nvar G__75516 \x3d timeout_ms;\nvar G__75517 \x3d retry_policy;\nvar G__75518 \x3d observer;\nvar G__75519 \x3d workflow_id;\nvar G__75520 \x3d seq_num;\nvar G__75521 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__75513,G__75514,G__75515,G__75516,G__75517,G__75518,G__75519,G__75520,G__75521) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__75513,G__75514,G__75515,G__75516,G__75517,G__75518,G__75519,G__75520,G__75521));\n}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75512__$1)].join(\x27\x27)));\n\n}\n}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__75522,pending_events,observer){\nvar map__75523 \x3d p__75522;\nvar map__75523__$1 \x3d cljs.core.__destructure_map(map__75523);\nvar suspension_data \x3d map__75523__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__75524 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75525 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75525);\n\ntry{return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq)),(function (exec_result){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_events(store,workflow_id,pending_events)),(function (___30362__auto__){\nreturn promesa.protocols._promise((function (){var success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__75526 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__75526__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75526,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__75526);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75526__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__75526__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75524);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activities_parallel(executor,pending_asyncs)),(function (results){\nreturn promesa.protocols._promise((function (){var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__75527,result){\nvar map__75528 \x3d p__75527;\nvar map__75528__$1 \x3d cljs.core.__destructure_map(map__75528);\nvar async_info \x3d map__75528__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75528__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75528__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__75529 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75530 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75530);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75529);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75531 \x3d suspension_data;\nvar map__75531__$1 \x3d cljs.core.__destructure_map(map__75531);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75531__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75531__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75532 \x3d suspension_data;\nvar map__75532__$1 \x3d cljs.core.__destructure_map(map__75532);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75532__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75532__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___75575 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___75575)){\nvar signal_data_75576 \x3d temp__5825__auto___75575;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_75576),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_75576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_75576));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75533 \x3d suspension_data;\nvar map__75533__$1 \x3d cljs.core.__destructure_map(map__75533);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__75577 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__75534 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__75577 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__75577 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75534,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__75577));\n} else {\nreturn G__75534;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__75535 \x3d suspension_data;\nvar map__75535__$1 \x3d cljs.core.__destructure_map(map__75535);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75535__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75578 \x3d arguments.length;\nvar i__5750__auto___75579 \x3d (0);\nwhile(true){\nif((i__5750__auto___75579 \x3c len__5749__auto___75578)){\nargs__5755__auto__.push((arguments[i__5750__auto___75579]));\n\nvar G__75580 \x3d (i__5750__auto___75579 + (1));\ni__5750__auto___75579 \x3d G__75580;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__75542){\nvar map__75543 \x3d p__75542;\nvar map__75543__$1 \x3d cljs.core.__destructure_map(map__75543);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75543__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__75544 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75544,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75544;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq75536){\nvar G__75537 \x3d cljs.core.first(seq75536);\nvar seq75536__$1 \x3d cljs.core.next(seq75536);\nvar G__75538 \x3d cljs.core.first(seq75536__$1);\nvar seq75536__$2 \x3d cljs.core.next(seq75536__$1);\nvar G__75539 \x3d cljs.core.first(seq75536__$2);\nvar seq75536__$3 \x3d cljs.core.next(seq75536__$2);\nvar G__75540 \x3d cljs.core.first(seq75536__$3);\nvar seq75536__$4 \x3d cljs.core.next(seq75536__$3);\nvar G__75541 \x3d cljs.core.first(seq75536__$4);\nvar seq75536__$5 \x3d cljs.core.next(seq75536__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75537,G__75538,G__75539,G__75540,G__75541,seq75536__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer):(function (){\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n})()\n)),(function (_){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null))),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_workflow_completed(observer,workflow_id,result):null)),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null));\n}));\n}));\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__75545 \x3d action;\nvar G__75545__$1 \x3d (((G__75545 instanceof cljs.core.Keyword))?G__75545.fqn:null);\nswitch (G__75545__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__75546 \x3d engine;\nvar map__75546__$1 \x3d cljs.core.__destructure_map(map__75546);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__75547 \x3d suspension_type;\nvar G__75547__$1 \x3d (((G__75547 instanceof cljs.core.Keyword))?G__75547.fqn:null);\nswitch (G__75547__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs_list))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer):null)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75547__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__75548,workflow_id,workflow_fn,args,p__75549){\nvar map__75550 \x3d p__75548;\nvar map__75550__$1 \x3d cljs.core.__destructure_map(map__75550);\nvar engine \x3d map__75550__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__75551 \x3d p__75549;\nvar map__75551__$1 \x3d cljs.core.__destructure_map(map__75551);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75551__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75551__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75551__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_75556,reject_fn_75555){\nvar loop_fn_75552 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_75552(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_75553,err_75554){\nif((!((err_75554 \x3d\x3d null)))){\nreturn (reject_fn_75555.cljs$core$IFn$_invoke$arity$1 ? reject_fn_75555.cljs$core$IFn$_invoke$arity$1(err_75554) : reject_fn_75555.call(null,err_75554));\n} else {\nif(promesa.core.recur_QMARK_(res_75553)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_75552,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_75553));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_75556.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_75556.cljs$core$IFn$_invoke$arity$1(res_75553) : resolve_fn_75556.call(null,res_75553));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__75557 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75558 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75558);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75557);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], 0));\n\nvar G__75559 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__75559__$1 \x3d (((G__75559 instanceof cljs.core.Keyword))?G__75559.fqn:null);\nswitch (G__75559__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer)),(function (action){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())?intemporal.protocol.on_workflow_resumed(observer,workflow_id):null)),(function (___30362__auto____$2){\nreturn promesa.protocols._promise(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553)))?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null)):intemporal.internal.execution.action__GT_result(action,workflow_id)));\n}));\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75559__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,dispatch);\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_75552((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__75560,workflow_id,suspension_data,pending_events,observer){\nvar map__75561 \x3d p__75560;\nvar map__75561__$1 \x3d cljs.core.__destructure_map(map__75561);\nvar engine \x3d map__75561__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__75562 \x3d suspension_data;\nvar map__75562__$1 \x3d cljs.core.__destructure_map(map__75562);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__75565 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__75564 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__75564.cljs$core$IFn$_invoke$arity$1 ? fexpr__75564.cljs$core$IFn$_invoke$arity$1(G__75565) : fexpr__75564.call(null,G__75565));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75598 \x3d arguments.length;\nvar i__5750__auto___75599 \x3d (0);\nwhile(true){\nif((i__5750__auto___75599 \x3c len__5749__auto___75598)){\nargs__5755__auto__.push((arguments[i__5750__auto___75599]));\n\nvar G__75600 \x3d (i__5750__auto___75599 + (1));\ni__5750__auto___75599 \x3d G__75600;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__75570,workflow_fn,args,p__75571){\nvar map__75572 \x3d p__75570;\nvar map__75572__$1 \x3d cljs.core.__destructure_map(map__75572);\nvar engine \x3d map__75572__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75572__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__75573 \x3d p__75571;\nvar map__75573__$1 \x3d cljs.core.__destructure_map(map__75573);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75573__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__75574 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75574,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75574;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq75566){\nvar G__75567 \x3d cljs.core.first(seq75566);\nvar seq75566__$1 \x3d cljs.core.next(seq75566);\nvar G__75568 \x3d cljs.core.first(seq75566__$1);\nvar seq75566__$2 \x3d cljs.core.next(seq75566__$1);\nvar G__75569 \x3d cljs.core.first(seq75566__$2);\nvar seq75566__$3 \x3d cljs.core.next(seq75566__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75567,G__75568,G__75569,seq75566__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75601 \x3d arguments.length;\nvar i__5750__auto___75602 \x3d (0);\nwhile(true){\nif((i__5750__auto___75602 \x3c len__5749__auto___75601)){\nargs__5755__auto__.push((arguments[i__5750__auto___75602]));\n\nvar G__75603 \x3d (i__5750__auto___75602 + (1));\ni__5750__auto___75602 \x3d G__75603;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__75585,workflow_fn,args,p__75586){\nvar map__75587 \x3d p__75585;\nvar map__75587__$1 \x3d cljs.core.__destructure_map(map__75587);\nvar engine \x3d map__75587__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75587__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__75588 \x3d p__75586;\nvar map__75588__$1 \x3d cljs.core.__destructure_map(map__75588);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75588__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__75589 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75589,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75589;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__75591 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75592 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75592);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__75594 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__75594) : on_complete.call(null,G__75594));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75591);\n}});\nvar _STAR_ctx_STAR__orig_val__75595 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75596 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75596);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75595);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq75581){\nvar G__75582 \x3d cljs.core.first(seq75581);\nvar seq75581__$1 \x3d cljs.core.next(seq75581);\nvar G__75583 \x3d cljs.core.first(seq75581__$1);\nvar seq75581__$2 \x3d cljs.core.next(seq75581__$1);\nvar G__75584 \x3d cljs.core.first(seq75581__$2);\nvar seq75581__$3 \x3d cljs.core.next(seq75581__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75582,G__75583,G__75584,seq75581__$3);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IStore}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.store.InMemoryStore \x3d (function (state,__meta,__extmap,__hash){\nthis.state \x3d state;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28969,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28978 \x3d k28969;\nvar G__28978__$1 \x3d (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null);\nswitch (G__28978__$1) {\ncase \x22state\x22:\nreturn self__.state;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){\nvar vec__28983 \x3d p__28980;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.PersistentVector.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),false);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar result \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){\nvar signals \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null));\nif(cljs.core.seq(signals)){\ncljs.core.reset_BANG_(result,cljs.core.first(signals));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest));\n} else {\nreturn s;\n}\n}));\n\nreturn cljs.core.deref(result);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 \x3d (function (this$,worfklow_id,event_type,seq_num){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar history__$1 \x3d this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id);\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num)));\n}),history__$1));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d (function (_,workflow_id,signal_name,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null),callback);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021)], null),cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 \x3d (function (_,workflow_id,events){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.seq(events)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0));\n} else {\n}\n\nreturn events;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 \x3d (function (this$,workflow_id,signal_name,signal_data){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0));\n\nvar temp__5825__auto___29275 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null));\nif(cljs.core.truth_(temp__5825__auto___29275)){\nvar callback_29278 \x3d temp__5825__auto___29275;\nsetTimeout(callback_29278,(0));\n} else {\n}\n\nreturn signal_data;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),true);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar wf \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id], null));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224);\n} else {\nif(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22not-found\x22,\x22not-found\x22,-629079980);\n} else {\nvar last_event \x3d cljs.core.last(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf));\nvar G__29001 \x3d new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(last_event);\nvar G__29001__$1 \x3d (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null);\nswitch (G__29001__$1) {\ncase \x22workflow-completed\x22:\nreturn new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503);\n\nbreak;\ncase \x22workflow-failed\x22:\nreturn new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762);\n\nbreak;\ndefault:\nreturn new cljs.core.Keyword(null,\x22running\x22,\x22running\x22,1554969103);\n\n}\n\n}\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 \x3d (function (_,workflow_id,event){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0));\n\nreturn event;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.store.InMemoryStore{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state],null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28968){\nvar self__ \x3d this;\nvar G__28968__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28970,other28971){\nvar self__ \x3d this;\nvar this28970__$1 \x3d this;\nreturn (((!((other28971 \x3d\x3d null)))) \x26\x26 ((((this28970__$1.constructor \x3d\x3d\x3d other28971.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap)))))));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28969){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29104 \x3d k28969;\nvar G__29104__$1 \x3d (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null);\nswitch (G__29104__$1) {\ncase \x22state\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28969);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29126 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29127 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127)))){\nreturn (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state,null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.store.InMemoryStore.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null)], null);\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$type \x3d true);\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.store/InMemoryStore\x22,null,(1),null));\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.store/InMemoryStore\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/InMemoryStore.\n */\nintemporal.store.__GT_InMemoryStore \x3d (function intemporal$store$__GT_InMemoryStore(state){\nreturn (new intemporal.store.InMemoryStore(state,null,null,null));\n});\n\n/**\n * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values.\n */\nintemporal.store.map__GT_InMemoryStore \x3d (function intemporal$store$map__GT_InMemoryStore(G__28972){\nvar extmap__5365__auto__ \x3d (function (){var G__29201 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(cljs.core.record_QMARK_(G__28972)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201);\n} else {\nreturn G__29201;\n}\n})();\nreturn (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n"); SHADOW_ENV.evalLoad("intemporal.observer.js", true, "goog.provide(\x27intemporal.observer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.observer.LoggingObserver \x3d (function (log_atom,__meta,__extmap,__hash){\nthis.log_atom \x3d log_atom;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28974,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28979 \x3d k28974;\nvar G__28979__$1 \x3d (((G__28979 instanceof cljs.core.Keyword))?G__28979.fqn:null);\nswitch (G__28979__$1) {\ncase \x22log-atom\x22:\nreturn self__.log_atom;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28974,else__5326__auto__);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28981){\nvar vec__28982 \x3d p__28981;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.observer.LoggingObserver{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom],null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28973){\nvar self__ \x3d this;\nvar G__28973__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28973__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1356941522 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28975,other28976){\nvar self__ \x3d this;\nvar this28975__$1 \x3d this;\nreturn (((!((other28976 \x3d\x3d null)))) \x26\x26 ((((this28975__$1.constructor \x3d\x3d\x3d other28976.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.log_atom,other28976.log_atom)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.__extmap,other28976.__extmap)))))));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,workflow_id,seq_num,activity_name,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,workflow_id,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,result,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-resumed\x22,\x22workflow-resumed\x22,-1165962528),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,workflow_id,seq_num,fire_at){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,error,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,workflow_id,seq_num,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,workflow_id,seq_num,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,workflow_id,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,workflow_id,signal_name,payload){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,workflow_id,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-cancelled\x22,\x22workflow-cancelled\x22,696539230),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,workflow_id,seq_num,activity_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-started\x22,\x22activity-started\x22,-1116606589),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,workflow_id,suspension_type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-suspended\x22,\x22workflow-suspended\x22,1316626574),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),suspension_type,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28974){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29063 \x3d k28974;\nvar G__29063__$1 \x3d (((G__29063 instanceof cljs.core.Keyword))?G__29063.fqn:null);\nswitch (G__29063__$1) {\ncase \x22log-atom\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28974);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29081 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29080.cljs$core$IFn$_invoke$arity$2 ? pred__29080.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081) : pred__29080.call(null,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081)))){\nreturn (new intemporal.observer.LoggingObserver(G__28973,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28973),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom,null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,G__28973,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.observer.LoggingObserver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22log-atom\x22,\x22log-atom\x22,-1250409612,null)], null);\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$type \x3d true);\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.observer/LoggingObserver\x22,null,(1),null));\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.observer/LoggingObserver\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/LoggingObserver.\n */\nintemporal.observer.__GT_LoggingObserver \x3d (function intemporal$observer$__GT_LoggingObserver(log_atom){\nreturn (new intemporal.observer.LoggingObserver(log_atom,null,null,null));\n});\n\n/**\n * Factory function for intemporal.observer/LoggingObserver, taking a map of keywords to field values.\n */\nintemporal.observer.map__GT_LoggingObserver \x3d (function intemporal$observer$map__GT_LoggingObserver(G__28977){\nvar extmap__5365__auto__ \x3d (function (){var G__29148 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28977,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157));\nif(cljs.core.record_QMARK_(G__28977)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29148);\n} else {\nreturn G__29148;\n}\n})();\nreturn (new intemporal.observer.LoggingObserver(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157).cljs$core$IFn$_invoke$arity$1(G__28977),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an observer that logs all events to an atom\n */\nintemporal.observer.make_logging_observer \x3d (function intemporal$observer$make_logging_observer(var_args){\nvar G__29166 \x3d arguments.length;\nswitch (G__29166) {\ncase 0:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY));\n}));\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1 \x3d (function (log_atom){\nreturn intemporal.observer.__GT_LoggingObserver(log_atom);\n}));\n\n(intemporal.observer.make_logging_observer.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.observer.t_intemporal$observer29169 \x3d (function (meta29170){\nthis.meta29170 \x3d meta29170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_29171,meta29170__$1){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170__$1));\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_29171){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn self__.meta29170;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta29170\x22,\x22meta29170\x22,-945651366,null)], null);\n}));\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$type \x3d true);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorStr \x3d \x22intemporal.observer/t_intemporal$observer29169\x22);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.observer/t_intemporal$observer29169\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/t_intemporal$observer29169.\n */\nintemporal.observer.__GT_t_intemporal$observer29169 \x3d (function intemporal$observer$__GT_t_intemporal$observer29169(meta29170){\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170));\n});\n\n\n/**\n * Create an observer that does nothing\n */\nintemporal.observer.noop_observer \x3d (function intemporal$observer$noop_observer(){\nreturn (new intemporal.observer.t_intemporal$observer29169(cljs.core.PersistentArrayMap.EMPTY));\n});\n"); -SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39636 \x3d arguments.length;\nvar i__5750__auto___39637 \x3d (0);\nwhile(true){\nif((i__5750__auto___39637 \x3c len__5749__auto___39636)){\nargs__5755__auto__.push((arguments[i__5750__auto___39637]));\n\nvar G__39638 \x3d (i__5750__auto___39637 + (1));\ni__5750__auto___39637 \x3d G__39638;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__39570){\nvar map__39571 \x3d p__39570;\nvar map__39571__$1 \x3d cljs.core.__destructure_map(map__39571);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39571__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39571__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__39639__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__39572 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39573 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39573);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__39574 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39574 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39574);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39575 \x3d err;\nif((G__39575 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39575);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__39576 \x3d err;\nif((G__39576 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__39576);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39572);\n}};\nvar G__39639 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39640__i \x3d 0, G__39640__a \x3d new Array(arguments.length - 0);\nwhile (G__39640__i \x3c G__39640__a.length) {G__39640__a[G__39640__i] \x3d arguments[G__39640__i + 0]; ++G__39640__i;}\n args \x3d new cljs.core.IndexedSeq(G__39640__a,0,null);\n} \nreturn G__39639__delegate.call(this,args);};\nG__39639.cljs$lang$maxFixedArity \x3d 0;\nG__39639.cljs$lang$applyTo \x3d (function (arglist__39641){\nvar args \x3d cljs.core.seq(arglist__39641);\nreturn G__39639__delegate(args);\n});\nG__39639.cljs$core$IFn$_invoke$arity$variadic \x3d G__39639__delegate;\nreturn G__39639;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq39568){\nvar G__39569 \x3d cljs.core.first(seq39568);\nvar seq39568__$1 \x3d cljs.core.next(seq39568);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39569,seq39568__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39578,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39582 \x3d k39578;\nvar G__39582__$1 \x3d (((G__39582 instanceof cljs.core.Keyword))?G__39582.fqn:null);\nswitch (G__39582__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39578,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39583){\nvar vec__39584 \x3d p__39583;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39584,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39584,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39577){\nvar self__ \x3d this;\nvar G__39577__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39577__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39579,other39580){\nvar self__ \x3d this;\nvar this39579__$1 \x3d this;\nreturn (((!((other39580 \x3d\x3d null)))) \x26\x26 ((((this39579__$1.constructor \x3d\x3d\x3d other39580.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39579__$1.seq_num,other39580.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39579__$1.__extmap,other39580.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39578){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__39587 \x3d k39578;\nvar G__39587__$1 \x3d (((G__39587 instanceof cljs.core.Keyword))?G__39587.fqn:null);\nswitch (G__39587__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39578);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39577){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39588 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39589 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__39588.cljs$core$IFn$_invoke$arity$2 ? pred__39588.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39589) : pred__39588.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39589)))){\nreturn (new intemporal.core.AsyncHandle(G__39577,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39577),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39577){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__39577,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__39581){\nvar extmap__5365__auto__ \x3d (function (){var G__39591 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__39581,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__39581)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39591);\n} else {\nreturn G__39591;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__39581),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__39592 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39592 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39592);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39593 \x3d err;\nif((G__39593 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39593);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e39594){if((e39594 instanceof Error)){\nvar e \x3d e39594;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e39594;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39644 \x3d arguments.length;\nvar i__5750__auto___39645 \x3d (0);\nwhile(true){\nif((i__5750__auto___39645 \x3c len__5749__auto___39644)){\nargs__5755__auto__.push((arguments[i__5750__auto___39645]));\n\nvar G__39646 \x3d (i__5750__auto___39645 + (1));\ni__5750__auto___39645 \x3d G__39646;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__39598){\nvar map__39599 \x3d p__39598;\nvar map__39599__$1 \x3d cljs.core.__destructure_map(map__39599);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39599__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__39600 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39600 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39600);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39601 \x3d err;\nif((G__39601 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39601);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq39595){\nvar G__39596 \x3d cljs.core.first(seq39595);\nvar seq39595__$1 \x3d cljs.core.next(seq39595);\nvar G__39597 \x3d cljs.core.first(seq39595__$1);\nvar seq39595__$2 \x3d cljs.core.next(seq39595__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39596,G__39597,seq39595__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39647 \x3d arguments.length;\nvar i__5750__auto___39648 \x3d (0);\nwhile(true){\nif((i__5750__auto___39648 \x3c len__5749__auto___39647)){\nargs__5755__auto__.push((arguments[i__5750__auto___39648]));\n\nvar G__39649 \x3d (i__5750__auto___39648 + (1));\ni__5750__auto___39648 \x3d G__39649;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq39602){\nvar G__39603 \x3d cljs.core.first(seq39602);\nvar seq39602__$1 \x3d cljs.core.next(seq39602);\nvar G__39604 \x3d cljs.core.first(seq39602__$1);\nvar seq39602__$2 \x3d cljs.core.next(seq39602__$1);\nvar G__39605 \x3d cljs.core.first(seq39602__$2);\nvar seq39602__$3 \x3d cljs.core.next(seq39602__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39603,G__39604,G__39605,seq39602__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39650 \x3d arguments.length;\nvar i__5750__auto___39651 \x3d (0);\nwhile(true){\nif((i__5750__auto___39651 \x3c len__5749__auto___39650)){\nargs__5755__auto__.push((arguments[i__5750__auto___39651]));\n\nvar G__39652 \x3d (i__5750__auto___39651 + (1));\ni__5750__auto___39651 \x3d G__39652;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39611,workflow_id,workflow_fn,args,p__39612){\nvar map__39613 \x3d p__39611;\nvar map__39613__$1 \x3d cljs.core.__destructure_map(map__39613);\nvar engine \x3d map__39613__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39613__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39614 \x3d p__39612;\nvar map__39614__$1 \x3d cljs.core.__destructure_map(map__39614);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39614__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39614__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq39606){\nvar G__39607 \x3d cljs.core.first(seq39606);\nvar seq39606__$1 \x3d cljs.core.next(seq39606);\nvar G__39608 \x3d cljs.core.first(seq39606__$1);\nvar seq39606__$2 \x3d cljs.core.next(seq39606__$1);\nvar G__39609 \x3d cljs.core.first(seq39606__$2);\nvar seq39606__$3 \x3d cljs.core.next(seq39606__$2);\nvar G__39610 \x3d cljs.core.first(seq39606__$3);\nvar seq39606__$4 \x3d cljs.core.next(seq39606__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39607,G__39608,G__39609,G__39610,seq39606__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39653 \x3d arguments.length;\nvar i__5750__auto___39654 \x3d (0);\nwhile(true){\nif((i__5750__auto___39654 \x3c len__5749__auto___39653)){\nargs__5755__auto__.push((arguments[i__5750__auto___39654]));\n\nvar G__39655 \x3d (i__5750__auto___39654 + (1));\ni__5750__auto___39654 \x3d G__39655;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__39620){\nvar map__39621 \x3d p__39620;\nvar map__39621__$1 \x3d cljs.core.__destructure_map(map__39621);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39621__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__39622_39656 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39623_39657 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39623_39657);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39622_39656);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq39615){\nvar G__39616 \x3d cljs.core.first(seq39615);\nvar seq39615__$1 \x3d cljs.core.next(seq39615);\nvar G__39617 \x3d cljs.core.first(seq39615__$1);\nvar seq39615__$2 \x3d cljs.core.next(seq39615__$1);\nvar G__39618 \x3d cljs.core.first(seq39615__$2);\nvar seq39615__$3 \x3d cljs.core.next(seq39615__$2);\nvar G__39619 \x3d cljs.core.first(seq39615__$3);\nvar seq39615__$4 \x3d cljs.core.next(seq39615__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39616,G__39617,G__39618,G__39619,seq39615__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__39624_39658 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39625_39659 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39625_39659);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39624_39658);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__39626_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__39626_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39660 \x3d arguments.length;\nvar i__5750__auto___39661 \x3d (0);\nwhile(true){\nif((i__5750__auto___39661 \x3c len__5749__auto___39660)){\nargs__5755__auto__.push((arguments[i__5750__auto___39661]));\n\nvar G__39662 \x3d (i__5750__auto___39661 + (1));\ni__5750__auto___39661 \x3d G__39662;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39628){\nvar map__39629 \x3d p__39628;\nvar map__39629__$1 \x3d cljs.core.__destructure_map(map__39629);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39629__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39629__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq39627){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq39627));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__39631 \x3d arguments.length;\nswitch (G__39631) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__39632){\nvar map__39633 \x3d p__39632;\nvar map__39633__$1 \x3d cljs.core.__destructure_map(map__39633);\nvar engine \x3d map__39633__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39633__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39633__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__39634,grace_period_secs){\nvar map__39635 \x3d p__39634;\nvar map__39635__$1 \x3d cljs.core.__destructure_map(map__39635);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39635__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39635__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.impl.js", true, "goog.provide(\x27cljs.analyzer.impl\x27);\ncljs.analyzer.impl.ANY_SYM \x3d new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\ncljs.analyzer.impl.BOOLEAN_OR_SEQ \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),\x22null\x22,new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22], null), null);\ncljs.analyzer.impl.BOOLEAN_SYM \x3d new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null);\ncljs.analyzer.impl.CLJ_NIL_SYM \x3d new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null);\ncljs.analyzer.impl.CLJS_CORE_MACROS_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null);\ncljs.analyzer.impl.CLJS_CORE_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\ncljs.analyzer.impl.DOT_SYM \x3d new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null);\ncljs.analyzer.impl.IGNORE_SYM \x3d new cljs.core.Symbol(null,\x22ignore\x22,\x22ignore\x22,8989494,null);\ncljs.analyzer.impl.JS_STAR_SYM \x3d new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null);\ncljs.analyzer.impl.NEW_SYM \x3d new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null);\ncljs.analyzer.impl.NOT_NATIVE \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null),\x22null\x22,new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null),\x22null\x22], null), null);\ncljs.analyzer.impl.NUMBER_SYM \x3d new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\ncljs.analyzer.impl.STRING_SYM \x3d new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null);\ncljs.analyzer.impl.cljs_map_QMARK_ \x3d (function cljs$analyzer$impl$cljs_map_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_seq_QMARK_ \x3d (function cljs$analyzer$impl$cljs_seq_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISeq$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_vector_QMARK_ \x3d (function cljs$analyzer$impl$cljs_vector_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IVector$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_set_QMARK_ \x3d (function cljs$analyzer$impl$cljs_set_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.impl.namespaces.js", true, "goog.provide(\x27cljs.analyzer.impl.namespaces\x27);\n/**\n * Given a libspec return a map of :as-alias alias, if was present. Return the\n * libspec with :as-alias elided. If the libspec was *only* :as-alias do not\n * return it.\n */\ncljs.analyzer.impl.namespaces.check_and_remove_as_alias \x3d (function cljs$analyzer$impl$namespaces$check_and_remove_as_alias(libspec){\nif((((libspec instanceof cljs.core.Symbol)) || ((libspec instanceof cljs.core.Keyword)))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22libspec\x22,\x22libspec\x22,1228503756),libspec], null);\n} else {\nvar vec__28903 \x3d libspec;\nvar seq__28904 \x3d cljs.core.seq(vec__28903);\nvar first__28905 \x3d cljs.core.first(seq__28904);\nvar seq__28904__$1 \x3d cljs.core.next(seq__28904);\nvar lib \x3d first__28905;\nvar spec \x3d seq__28904__$1;\nvar libspec__$1 \x3d vec__28903;\nvar vec__28906 \x3d cljs.core.split_with(cljs.core.complement(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22as-alias\x22,\x22as-alias\x22,82482467),null], null), null)),spec);\nvar pre_spec \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28906,(0),null);\nvar vec__28909 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28906,(1),null);\nvar seq__28910 \x3d cljs.core.seq(vec__28909);\nvar first__28911 \x3d cljs.core.first(seq__28910);\nvar seq__28910__$1 \x3d cljs.core.next(seq__28910);\nvar _ \x3d first__28911;\nvar first__28911__$1 \x3d cljs.core.first(seq__28910__$1);\nvar seq__28910__$2 \x3d cljs.core.next(seq__28910__$1);\nvar alias \x3d first__28911__$1;\nvar post_spec \x3d seq__28910__$2;\nvar post \x3d vec__28909;\nif(cljs.core.seq(post)){\nvar libspec_SINGLEQUOTE_ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(pre_spec,post_spec));\nif((alias instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22:as-alias must be followed by a symbol, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias)].join(\x27\x27),\x22\\n\x22,\x22(symbol? alias)\x22].join(\x27\x27)));\n}\n\nvar G__28919 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22as-alias\x22,\x22as-alias\x22,82482467),cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib])], null);\nif((cljs.core.count(libspec_SINGLEQUOTE_) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__28919,new cljs.core.Keyword(null,\x22libspec\x22,\x22libspec\x22,1228503756),libspec_SINGLEQUOTE_);\n} else {\nreturn G__28919;\n}\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22libspec\x22,\x22libspec\x22,1228503756),libspec__$1], null);\n}\n}\n});\ncljs.analyzer.impl.namespaces.check_as_alias_duplicates \x3d (function cljs$analyzer$impl$namespaces$check_as_alias_duplicates(as_aliases,new_as_aliases){\nvar seq__28924 \x3d cljs.core.seq(new_as_aliases);\nvar chunk__28925 \x3d null;\nvar count__28926 \x3d (0);\nvar i__28927 \x3d (0);\nwhile(true){\nif((i__28927 \x3c count__28926)){\nvar vec__28960 \x3d chunk__28925.cljs$core$IIndexed$_nth$arity$2(null,i__28927);\nvar alias \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28960,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28960,(1),null);\nif((!(cljs.core.contains_QMARK_(as_aliases,alias)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Duplicate :as-alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias),\x22, already in use for lib \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,alias))].join(\x27\x27),\x22\\n\x22,\x22(not (contains? as-aliases alias))\x22].join(\x27\x27)));\n}\n\n\nvar G__29250 \x3d seq__28924;\nvar G__29251 \x3d chunk__28925;\nvar G__29252 \x3d count__28926;\nvar G__29253 \x3d (i__28927 + (1));\nseq__28924 \x3d G__29250;\nchunk__28925 \x3d G__29251;\ncount__28926 \x3d G__29252;\ni__28927 \x3d G__29253;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__28924);\nif(temp__5825__auto__){\nvar seq__28924__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__28924__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__28924__$1);\nvar G__29259 \x3d cljs.core.chunk_rest(seq__28924__$1);\nvar G__29260 \x3d c__5548__auto__;\nvar G__29261 \x3d cljs.core.count(c__5548__auto__);\nvar G__29262 \x3d (0);\nseq__28924 \x3d G__29259;\nchunk__28925 \x3d G__29260;\ncount__28926 \x3d G__29261;\ni__28927 \x3d G__29262;\ncontinue;\n} else {\nvar vec__29081 \x3d cljs.core.first(seq__28924__$1);\nvar alias \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29081,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29081,(1),null);\nif((!(cljs.core.contains_QMARK_(as_aliases,alias)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Duplicate :as-alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias),\x22, already in use for lib \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,alias))].join(\x27\x27),\x22\\n\x22,\x22(not (contains? as-aliases alias))\x22].join(\x27\x27)));\n}\n\n\nvar G__29265 \x3d cljs.core.next(seq__28924__$1);\nvar G__29266 \x3d null;\nvar G__29267 \x3d (0);\nvar G__29268 \x3d (0);\nseq__28924 \x3d G__29265;\nchunk__28925 \x3d G__29266;\ncount__28926 \x3d G__29267;\ni__28927 \x3d G__29268;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given libspecs, elide all :as-alias. Return a map of :libspecs (filtered)\n * and :as-aliases.\n */\ncljs.analyzer.impl.namespaces.elide_aliases_from_libspecs \x3d (function cljs$analyzer$impl$namespaces$elide_aliases_from_libspecs(var_args){\nvar G__29114 \x3d arguments.length;\nswitch (G__29114) {\ncase 1:\nreturn cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$1 \x3d (function (libspecs){\nreturn cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$2(libspecs,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$2 \x3d (function (libspecs,as_aliases){\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798),as_aliases,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195),cljs.core.PersistentVector.EMPTY], null);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__$1,libspec){\nvar map__29148 \x3d cljs.analyzer.impl.namespaces.check_and_remove_as_alias(libspec);\nvar map__29148__$1 \x3d cljs.core.__destructure_map(map__29148);\nvar as_alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29148__$1,new cljs.core.Keyword(null,\x22as-alias\x22,\x22as-alias\x22,82482467));\nvar libspec__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29148__$1,new cljs.core.Keyword(null,\x22libspec\x22,\x22libspec\x22,1228503756));\ncljs.analyzer.impl.namespaces.check_as_alias_duplicates(new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798).cljs$core$IFn$_invoke$arity$1(ret__$1),as_alias);\n\nvar G__29172 \x3d ret__$1;\nvar G__29172__$1 \x3d (cljs.core.truth_(libspec__$1)?cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__29172,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195),cljs.core.conj,libspec__$1):G__29172);\nif(cljs.core.truth_(as_alias)){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__29172__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798),cljs.core.merge,as_alias);\n} else {\nreturn G__29172__$1;\n}\n}),ret,libspecs);\n}));\n\n(cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs \x3d (function cljs$analyzer$impl$namespaces$elide_aliases_from_ns_specs(ns_specs){\n\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195),cljs.core.PersistentVector.EMPTY], null);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__29188,p__29189){\nvar map__29193 \x3d p__29188;\nvar map__29193__$1 \x3d cljs.core.__destructure_map(map__29193);\nvar ret__$1 \x3d map__29193__$1;\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29193__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar vec__29194 \x3d p__29189;\nvar seq__29195 \x3d cljs.core.seq(vec__29194);\nvar first__29196 \x3d cljs.core.first(seq__29195);\nvar seq__29195__$1 \x3d cljs.core.next(seq__29195);\nvar spec_key \x3d first__29196;\nvar libspecs \x3d seq__29195__$1;\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440),spec_key)))){\nvar map__29205 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_libspecs.cljs$core$IFn$_invoke$arity$2(libspecs,as_aliases);\nvar map__29205__$1 \x3d cljs.core.__destructure_map(map__29205);\nvar as_aliases__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29205__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar libspecs__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29205__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar G__29208 \x3d ret__$1;\nvar G__29208__$1 \x3d (((!(cljs.core.empty_QMARK_(as_aliases__$1))))?cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__29208,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798),cljs.core.merge,as_aliases__$1):G__29208);\nif((!(cljs.core.empty_QMARK_(libspecs__$1)))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__29208__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195),cljs.core.conj,cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(spec_key,libspecs__$1));\n} else {\nreturn G__29208__$1;\n}\n} else {\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(ret__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195),cljs.core.conj,cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(spec_key,libspecs));\n}\n}),ret,ns_specs);\n});\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.passes.js", true, "goog.provide(\x27cljs.analyzer.passes\x27);\ncljs.analyzer.passes.apply_passes \x3d (function cljs$analyzer$passes$apply_passes(var_args){\nvar G__33681 \x3d arguments.length;\nswitch (G__33681) {\ncase 2:\nreturn cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$2 \x3d (function (ast,passes){\nreturn cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3(ast,passes,null);\n}));\n\n(cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3 \x3d (function (ast,passes,opts){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nvar G__33685 \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(ast__$1);\nvar G__33686 \x3d ast__$1;\nvar G__33687 \x3d opts;\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(G__33685,G__33686,G__33687) : pass.call(null,G__33685,G__33686,G__33687));\n}),ast,passes);\n}));\n\n(cljs.analyzer.passes.apply_passes.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.passes.walk \x3d (function cljs$analyzer$passes$walk(var_args){\nvar G__33690 \x3d arguments.length;\nswitch (G__33690) {\ncase 2:\nreturn cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2 \x3d (function (ast,passes){\nreturn cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(ast,passes,null);\n}));\n\n(cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3 \x3d (function (ast,passes,opts){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,child_k){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast__$1,child_k,(function (){var child \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast__$1,child_k);\nif(cljs.core.vector_QMARK_(child)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__33688_SHARP_){\nreturn cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(p1__33688_SHARP_,passes,opts);\n})),child);\n} else {\nreturn cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$3(child,passes,opts);\n}\n})());\n}),(function (){var G__33694 \x3d ast;\nif((G__33694 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.analyzer.passes.apply_passes.cljs$core$IFn$_invoke$arity$3(G__33694,passes,opts);\n}\n})(),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast));\n}));\n\n(cljs.analyzer.passes.walk.cljs$lang$maxFixedArity \x3d 3);\n\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.passes.and_or.js", true, "goog.provide(\x27cljs.analyzer.passes.and_or\x27);\ncljs.analyzer.passes.and_or.simple_ops \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 9, [new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),null,new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),null,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null,new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\ncljs.analyzer.passes.and_or.__GT_expr_env \x3d (function cljs$analyzer$passes$and_or$__GT_expr_env(ast){\nreturn cljs.core.assoc_in(ast,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n});\ncljs.analyzer.passes.and_or.simple_op_QMARK_ \x3d (function cljs$analyzer$passes$and_or$simple_op_QMARK_(ast){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.passes.and_or.simple_ops,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.passes.and_or.simple_test_expr_QMARK_ \x3d (function cljs$analyzer$passes$and_or$simple_test_expr_QMARK_(p__33699){\nvar map__33700 \x3d p__33699;\nvar map__33700__$1 \x3d cljs.core.__destructure_map(map__33700);\nvar ast \x3d map__33700__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__33700__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d cljs.analyzer.passes.and_or.simple_op_QMARK_(ast);\nif(and__5023__auto__){\nvar G__33702 \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_((function (){var fexpr__33703 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__33703.cljs$core$IFn$_invoke$arity$1 ? fexpr__33703.cljs$core$IFn$_invoke$arity$1(op) : fexpr__33703.call(null,op));\n})())){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nreturn null;\n}\n}\n})();\nvar fexpr__33701 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),\x22null\x22,new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22], null), null);\nreturn (fexpr__33701.cljs$core$IFn$_invoke$arity$1 ? fexpr__33701.cljs$core$IFn$_invoke$arity$1(G__33702) : fexpr__33701.call(null,G__33702));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.passes.and_or.single_binding_let_QMARK_ \x3d (function cljs$analyzer$passes$and_or$single_binding_let_QMARK_(ast){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(ast)))));\n});\ncljs.analyzer.passes.and_or.no_statements_QMARK_ \x3d (function cljs$analyzer$passes$and_or$no_statements_QMARK_(let_ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(let_ast)));\n});\ncljs.analyzer.passes.and_or.returns_if_QMARK_ \x3d (function cljs$analyzer$passes$and_or$returns_if_QMARK_(let_ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(let_ast))));\n});\ncljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_ \x3d (function cljs$analyzer$passes$and_or$simple_test_binding_let_QMARK_(ast){\nreturn ((cljs.analyzer.passes.and_or.single_binding_let_QMARK_(ast)) \x26\x26 (((cljs.analyzer.passes.and_or.no_statements_QMARK_(ast)) \x26\x26 (((cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(cljs.core.first(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(ast))))) \x26\x26 (cljs.analyzer.passes.and_or.returns_if_QMARK_(ast)))))));\n});\ncljs.analyzer.passes.and_or.test_EQ_then_QMARK_ \x3d (function cljs$analyzer$passes$and_or$test_EQ_then_QMARK_(if_ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235)),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235)));\n});\ncljs.analyzer.passes.and_or.test_EQ_else_QMARK_ \x3d (function cljs$analyzer$passes$and_or$test_EQ_else_QMARK_(if_ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235)),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(if_ast),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235)));\n});\ncljs.analyzer.passes.and_or.simple_and_QMARK_ \x3d (function cljs$analyzer$passes$and_or$simple_and_QMARK_(ast){\nreturn ((cljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_(ast)) \x26\x26 (cljs.analyzer.passes.and_or.test_EQ_else_QMARK_(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))));\n});\ncljs.analyzer.passes.and_or.simple_or_QMARK_ \x3d (function cljs$analyzer$passes$and_or$simple_or_QMARK_(ast){\nreturn ((cljs.analyzer.passes.and_or.simple_test_binding_let_QMARK_(ast)) \x26\x26 (cljs.analyzer.passes.and_or.test_EQ_then_QMARK_(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))));\n});\ncljs.analyzer.passes.and_or.optimizable_and_QMARK_ \x3d (function cljs$analyzer$passes$and_or$optimizable_and_QMARK_(ast){\nreturn ((cljs.analyzer.passes.and_or.simple_and_QMARK_(ast)) \x26\x26 (cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast))))));\n});\ncljs.analyzer.passes.and_or.optimizable_or_QMARK_ \x3d (function cljs$analyzer$passes$and_or$optimizable_or_QMARK_(ast){\nreturn ((cljs.analyzer.passes.and_or.simple_or_QMARK_(ast)) \x26\x26 (cljs.analyzer.passes.and_or.simple_test_expr_QMARK_(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast))))));\n});\ncljs.analyzer.passes.and_or.remove_loop_let \x3d (function cljs$analyzer$passes$and_or$remove_loop_let(fn_ast,local){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(fn_ast,new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),(function (loop_lets){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (m){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(function (xs){\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__33739_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(local,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(p1__33739_SHARP_));\n}),xs);\n}));\n}),loop_lets);\n}));\n});\ncljs.analyzer.passes.and_or.remove_local_pass \x3d (function cljs$analyzer$passes$and_or$remove_local_pass(local){\nreturn (function (env,ast,opts){\nvar G__33747 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ast,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)], null),cljs.core.dissoc,local);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.analyzer.passes.and_or.remove_loop_let(G__33747,local);\n} else {\nreturn G__33747;\n}\n});\n});\ncljs.analyzer.passes.and_or.optimize_and \x3d (function cljs$analyzer$passes$and_or$optimize_and(ast){\nvar map__33752 \x3d cljs.core.first(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__33752__$1 \x3d cljs.core.__destructure_map(map__33752);\nvar init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__33752__$1,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434));\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__33752__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22((\x22,\x22) \x26\x26 (\x22,\x22))\x22], null),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [init,cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.passes.and_or.__GT_expr_env(new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.passes.and_or.remove_local_pass(name)], null))], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n});\ncljs.analyzer.passes.and_or.optimize_or \x3d (function cljs$analyzer$passes$and_or$optimize_or(ast){\nvar map__33756 \x3d cljs.core.first(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__33756__$1 \x3d cljs.core.__destructure_map(map__33756);\nvar init \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__33756__$1,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434));\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__33756__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22((\x22,\x22) || (\x22,\x22))\x22], null),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [init,cljs.analyzer.passes.walk.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.passes.and_or.__GT_expr_env(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast)))),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.passes.and_or.remove_local_pass(name)], null))], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n});\ncljs.analyzer.passes.and_or.optimize \x3d (function cljs$analyzer$passes$and_or$optimize(env,ast,_){\nif(cljs.analyzer.passes.and_or.optimizable_and_QMARK_(ast)){\nreturn cljs.analyzer.passes.and_or.optimize_and(ast);\n} else {\nif(cljs.analyzer.passes.and_or.optimizable_or_QMARK_(ast)){\nreturn cljs.analyzer.passes.and_or.optimize_or(ast);\n} else {\nreturn ast;\n\n}\n}\n});\n"); +SHADOW_ENV.evalLoad("cljs.env.js", true, "goog.provide(\x27cljs.env\x27);\ncljs.env._STAR_compiler_STAR_ \x3d null;\ncljs.env.default_compiler_env_STAR_ \x3d (function cljs$env$default_compiler_env_STAR_(options){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22data-readers\x22,\x22cljs.analyzer/data-readers\x22,1778544933),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239),null,new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489),options], null)], 0));\n});\ncljs.env.default_compiler_env \x3d (function cljs$env$default_compiler_env(var_args){\nvar G__33684 \x3d arguments.length;\nswitch (G__33684) {\ncase 0:\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1 \x3d (function (options){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.env.default_compiler_env_STAR_(options));\n}));\n\n(cljs.env.default_compiler_env.cljs$lang$maxFixedArity \x3d 1);\n\n"); +SHADOW_ENV.evalLoad("cljs.tagged_literals.js", true, "goog.provide(\x27cljs.tagged_literals\x27);\ncljs.tagged_literals.read_queue \x3d (function cljs$tagged_literals$read_queue(form){\nif(cljs.core.vector_QMARK_(form)){\n} else {\nthrow (new Error(\x22Queue literal expects a vector for its elements.\x22));\n}\n\nreturn (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22into\x22,\x22cljs.core/into\x22,1879938733,null),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22cljs.core.PersistentQueue.EMPTY\x22,\x22cljs.core.PersistentQueue.EMPTY\x22,399917828,null),(new cljs.core.List(null,form,null,(1),null)),(2),null)),(3),null));\n});\ncljs.tagged_literals.read_uuid \x3d (function cljs$tagged_literals$read_uuid(form){\nif(typeof form \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow (new Error(\x22UUID literal expects a string as its representation.\x22));\n}\n\ntry{return cljs.core.uuid(form);\n}catch (e33682){var e \x3d e33682;\nthrow (new Error(e.message));\n}});\ncljs.tagged_literals.read_inst \x3d (function cljs$tagged_literals$read_inst(form){\nif(typeof form \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow (new Error(\x22Instance literal expects a string for its timestamp.\x22));\n}\n\ntry{var fexpr__33696 \x3d new cljs.core.Var(function(){return cljs.reader.read_date;},new cljs.core.Symbol(\x22cljs.reader\x22,\x22read-date\x22,\x22cljs.reader/read-date\x22,1663417238,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[true,new cljs.core.Symbol(null,\x22cljs.reader\x22,\x22cljs.reader\x22,1327473948,null),new cljs.core.Symbol(null,\x22read-date\x22,\x22read-date\x22,1874308181,null),\x22cljs/reader.cljs\x22,(26),(1),(92),(92),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null)], null)),null,(cljs.core.truth_(cljs.reader.read_date)?cljs.reader.read_date.cljs$lang$test:null)]));\nreturn (fexpr__33696.cljs$core$IFn$_invoke$arity$1 ? fexpr__33696.cljs$core$IFn$_invoke$arity$1(form) : fexpr__33696.call(null,form));\n}catch (e33691){var e \x3d e33691;\nthrow (new Error(e.message));\n}});\ncljs.tagged_literals.valid_js_literal_key_QMARK_ \x3d (function cljs$tagged_literals$valid_js_literal_key_QMARK_(k){\nreturn ((typeof k \x3d\x3d\x3d \x27string\x27) || ((((k instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(k) \x3d\x3d null)))));\n});\n\n/**\n* @constructor\n*/\ncljs.tagged_literals.JSValue \x3d (function (val){\nthis.val \x3d val;\n});\n\n(cljs.tagged_literals.JSValue.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null)], null);\n}));\n\n(cljs.tagged_literals.JSValue.cljs$lang$type \x3d true);\n\n(cljs.tagged_literals.JSValue.cljs$lang$ctorStr \x3d \x22cljs.tagged-literals/JSValue\x22);\n\n(cljs.tagged_literals.JSValue.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.tagged-literals/JSValue\x22);\n}));\n\n/**\n * Positional factory function for cljs.tagged-literals/JSValue.\n */\ncljs.tagged_literals.__GT_JSValue \x3d (function cljs$tagged_literals$__GT_JSValue(val){\nreturn (new cljs.tagged_literals.JSValue(val));\n});\n\ncljs.tagged_literals.read_js \x3d (function cljs$tagged_literals$read_js(form){\nif(((cljs.core.vector_QMARK_(form)) || (cljs.core.map_QMARK_(form)))){\n} else {\nthrow (new Error(\x22JavaScript literal must use map or vector notation\x22));\n}\n\nif((((!(cljs.core.map_QMARK_(form)))) || (cljs.core.every_QMARK_(cljs.tagged_literals.valid_js_literal_key_QMARK_,cljs.core.keys(form))))){\n} else {\nthrow (new Error(\x22JavaScript literal keys must be strings or unqualified keywords\x22));\n}\n\nreturn (new cljs.tagged_literals.JSValue(form));\n});\ncljs.tagged_literals._STAR_cljs_data_readers_STAR_ \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22queue\x22,\x22queue\x22,-1198599890,null),cljs.tagged_literals.read_queue,new cljs.core.Symbol(null,\x22uuid\x22,\x22uuid\x22,-504564192,null),cljs.tagged_literals.read_uuid,new cljs.core.Symbol(null,\x22inst\x22,\x22inst\x22,-2008473268,null),cljs.tagged_literals.read_inst,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),cljs.tagged_literals.read_js], null)], 0));\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.js", true, "goog.provide(\x27cljs.analyzer\x27);\ncljs.analyzer._STAR_cljs_ns_STAR_ \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\ncljs.analyzer._STAR_cljs_file_STAR_ \x3d null;\ncljs.analyzer._STAR_checked_arrays_STAR_ \x3d false;\ncljs.analyzer._STAR_check_alias_dupes_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_static_fns_STAR_ \x3d false;\ncljs.analyzer._STAR_fn_invoke_direct_STAR_ \x3d false;\ncljs.analyzer._STAR_cljs_macros_path_STAR_ \x3d \x22/cljs/core\x22;\ncljs.analyzer._STAR_cljs_macros_is_classpath_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d cljs.core.with_meta(cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558),cljs.core.PersistentVector.EMPTY], null));\ncljs.analyzer._STAR_analyze_deps_STAR_ \x3d true;\ncljs.analyzer._STAR_load_tests_STAR_ \x3d true;\ncljs.analyzer._STAR_load_macros_STAR_ \x3d true;\ncljs.analyzer._STAR_reload_macros_STAR_ \x3d false;\ncljs.analyzer._STAR_macro_infer_STAR_ \x3d true;\ncljs.analyzer._STAR_passes_STAR_ \x3d null;\ncljs.analyzer._STAR_file_defs_STAR_ \x3d null;\ncljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d false;\n/**\n * The namespace of the constants table as a symbol.\n */\ncljs.analyzer.constants_ns_sym \x3d new cljs.core.Symbol(null,\x22cljs.core.constants\x22,\x22cljs.core.constants\x22,2057417066,null);\ncljs.analyzer._STAR_verbose_STAR_ \x3d false;\ncljs.analyzer._cljs_macros_loaded \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\ncljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217)],[true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);\ncljs.analyzer.unchecked_arrays_QMARK_ \x3d (function cljs$analyzer$unchecked_arrays_QMARK_(){\nreturn cljs.core._STAR_unchecked_arrays_STAR_;\n});\ncljs.analyzer.compiler_options \x3d (function cljs$analyzer$compiler_options(){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n});\ncljs.analyzer.get_externs \x3d (function cljs$analyzer$get_externs(){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n});\n/**\n * Returns false-y, :warn, or :error based on configuration and the\n * current value of *unchecked-arrays*.\n */\ncljs.analyzer.checked_arrays \x3d (function cljs$analyzer$checked_arrays(){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22advanced\x22,\x22advanced\x22,-451287892),new cljs.core.Keyword(null,\x22optimizations\x22,\x22optimizations\x22,-2047476854).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options()))) \x26\x26 ((!(cljs.core._STAR_unchecked_arrays_STAR_))))){\nreturn cljs.analyzer._STAR_checked_arrays_STAR_;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.js_reserved \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 63, [\x22typeof\x22,null,\x22float\x22,null,\x22implements\x22,null,\x22else\x22,null,\x22boolean\x22,null,\x22abstract\x22,null,\x22int\x22,null,\x22static\x22,null,\x22package\x22,null,\x22this\x22,null,\x22await\x22,null,\x22yield\x22,null,\x22interface\x22,null,\x22void\x22,null,\x22delete\x22,null,\x22class\x22,null,\x22export\x22,null,\x22var\x22,null,\x22try\x22,null,\x22long\x22,null,\x22null\x22,null,\x22return\x22,null,\x22methods\x22,null,\x22native\x22,null,\x22private\x22,null,\x22new\x22,null,\x22for\x22,null,\x22catch\x22,null,\x22extends\x22,null,\x22short\x22,null,\x22protected\x22,null,\x22throws\x22,null,\x22synchronized\x22,null,\x22transient\x22,null,\x22super\x22,null,\x22if\x22,null,\x22let\x22,null,\x22import\x22,null,\x22char\x22,null,\x22switch\x22,null,\x22const\x22,null,\x22case\x22,null,\x22break\x22,null,\x22volatile\x22,null,\x22function\x22,null,\x22continue\x22,null,\x22final\x22,null,\x22do\x22,null,\x22double\x22,null,\x22while\x22,null,\x22public\x22,null,\x22arguments\x22,null,\x22debugger\x22,null,\x22with\x22,null,\x22instanceof\x22,null,\x22default\x22,null,\x22throw\x22,null,\x22goto\x22,null,\x22finally\x22,null,\x22byte\x22,null,\x22constructor\x22,null,\x22in\x22,null,\x22enum\x22,null], null), null);\ncljs.analyzer.es5_allowed \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [\x22default\x22,null], null), null);\ncljs.analyzer.SENTINEL \x3d ({});\ncljs.analyzer.gets \x3d (function cljs$analyzer$gets(var_args){\nvar G__34418 \x3d arguments.length;\nswitch (G__34418) {\ncase 3:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k0,k1){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,k1);\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k0,k1,k2){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$2,k2);\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k0,k1,k2,k3){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$2,k2,cljs.analyzer.SENTINEL);\nif((m__$3 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$3,k3);\n}\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.analyzer.munge_path \x3d (function cljs$analyzer$munge_path(ss){\nreturn cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ss));\n});\n/**\n * Given a namespace as a symbol return the relative path. May optionally\n * provide the file extension, defaults to :cljs.\n */\ncljs.analyzer.ns__GT_relpath \x3d (function cljs$analyzer$ns__GT_relpath(var_args){\nvar G__34433 \x3d arguments.length;\nswitch (G__34433) {\ncase 1:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629));\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,ext){\nreturn [clojure.string.replace(cljs.analyzer.munge_path(ns),\x22.\x22,\x22/\x22),\x22.\x22,cljs.core.name(ext)].join(\x27\x27);\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.topo_sort \x3d (function cljs$analyzer$topo_sort(var_args){\nvar G__34450 \x3d arguments.length;\nswitch (G__34450) {\ncase 2:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,get_deps){\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(x,(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.sorted_map()),cljs.core.memoize(get_deps));\n}));\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,depth,state,memo_get_deps){\nvar deps \x3d (memo_get_deps.cljs$core$IFn$_invoke$arity$1 ? memo_get_deps.cljs$core$IFn$_invoke$arity$1(x) : memo_get_deps.call(null,x));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [depth], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\nvar seq__34465_38549 \x3d cljs.core.seq(deps);\nvar chunk__34466_38550 \x3d null;\nvar count__34467_38551 \x3d (0);\nvar i__34468_38552 \x3d (0);\nwhile(true){\nif((i__34468_38552 \x3c count__34467_38551)){\nvar dep_38553 \x3d chunk__34466_38550.cljs$core$IIndexed$_nth$arity$2(null,i__34468_38552);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38553,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38555 \x3d seq__34465_38549;\nvar G__38556 \x3d chunk__34466_38550;\nvar G__38557 \x3d count__34467_38551;\nvar G__38558 \x3d (i__34468_38552 + (1));\nseq__34465_38549 \x3d G__38555;\nchunk__34466_38550 \x3d G__38556;\ncount__34467_38551 \x3d G__38557;\ni__34468_38552 \x3d G__38558;\ncontinue;\n} else {\nvar temp__5825__auto___38559 \x3d cljs.core.seq(seq__34465_38549);\nif(temp__5825__auto___38559){\nvar seq__34465_38560__$1 \x3d temp__5825__auto___38559;\nif(cljs.core.chunked_seq_QMARK_(seq__34465_38560__$1)){\nvar c__5548__auto___38561 \x3d cljs.core.chunk_first(seq__34465_38560__$1);\nvar G__38562 \x3d cljs.core.chunk_rest(seq__34465_38560__$1);\nvar G__38563 \x3d c__5548__auto___38561;\nvar G__38564 \x3d cljs.core.count(c__5548__auto___38561);\nvar G__38565 \x3d (0);\nseq__34465_38549 \x3d G__38562;\nchunk__34466_38550 \x3d G__38563;\ncount__34467_38551 \x3d G__38564;\ni__34468_38552 \x3d G__38565;\ncontinue;\n} else {\nvar dep_38566 \x3d cljs.core.first(seq__34465_38560__$1);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38566,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38568 \x3d cljs.core.next(seq__34465_38560__$1);\nvar G__38569 \x3d null;\nvar G__38570 \x3d (0);\nvar G__38571 \x3d (0);\nseq__34465_38549 \x3d G__38568;\nchunk__34466_38550 \x3d G__38569;\ncount__34467_38551 \x3d G__38570;\ni__34468_38552 \x3d G__38571;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__34477_38572 \x3d cljs.core.seq(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(state),cljs.core._LT_,depth));\nvar chunk__34478_38573 \x3d null;\nvar count__34479_38574 \x3d (0);\nvar i__34480_38575 \x3d (0);\nwhile(true){\nif((i__34480_38575 \x3c count__34479_38574)){\nvar vec__34492_38576 \x3d chunk__34478_38573.cljs$core$IIndexed$_nth$arity$2(null,i__34480_38575);\nvar _LT_depth_38577 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(0),null);\nvar __38578 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38577], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38579 \x3d seq__34477_38572;\nvar G__38580 \x3d chunk__34478_38573;\nvar G__38581 \x3d count__34479_38574;\nvar G__38582 \x3d (i__34480_38575 + (1));\nseq__34477_38572 \x3d G__38579;\nchunk__34478_38573 \x3d G__38580;\ncount__34479_38574 \x3d G__38581;\ni__34480_38575 \x3d G__38582;\ncontinue;\n} else {\nvar temp__5825__auto___38583 \x3d cljs.core.seq(seq__34477_38572);\nif(temp__5825__auto___38583){\nvar seq__34477_38584__$1 \x3d temp__5825__auto___38583;\nif(cljs.core.chunked_seq_QMARK_(seq__34477_38584__$1)){\nvar c__5548__auto___38585 \x3d cljs.core.chunk_first(seq__34477_38584__$1);\nvar G__38586 \x3d cljs.core.chunk_rest(seq__34477_38584__$1);\nvar G__38587 \x3d c__5548__auto___38585;\nvar G__38588 \x3d cljs.core.count(c__5548__auto___38585);\nvar G__38589 \x3d (0);\nseq__34477_38572 \x3d G__38586;\nchunk__34478_38573 \x3d G__38587;\ncount__34479_38574 \x3d G__38588;\ni__34480_38575 \x3d G__38589;\ncontinue;\n} else {\nvar vec__34497_38590 \x3d cljs.core.first(seq__34477_38584__$1);\nvar _LT_depth_38591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(0),null);\nvar __38592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38591], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38593 \x3d cljs.core.next(seq__34477_38584__$1);\nvar G__38594 \x3d null;\nvar G__38595 \x3d (0);\nvar G__38596 \x3d (0);\nseq__34477_38572 \x3d G__38593;\nchunk__34478_38573 \x3d G__38594;\ncount__34479_38574 \x3d G__38595;\ni__34480_38575 \x3d G__38596;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(depth,(0))){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(state))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.topo_sort.cljs$lang$maxFixedArity \x3d 4);\n\n\ncljs.analyzer.ast_QMARK_ \x3d (function cljs$analyzer$ast_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 (cljs.core.contains_QMARK_(x,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955))));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.error_message !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.error_message \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__34508 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__34508.cljs$core$IFn$_invoke$arity$0 ? fexpr__34508.cljs$core$IFn$_invoke$arity$0() : fexpr__34508.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22error-message\x22),(function() { \nvar G__38597__delegate \x3d function (warning_type,_){\nreturn warning_type;\n};\nvar G__38597 \x3d function (warning_type,var_args){\nvar _ \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38598__i \x3d 0, G__38598__a \x3d new Array(arguments.length - 1);\nwhile (G__38598__i \x3c G__38598__a.length) {G__38598__a[G__38598__i] \x3d arguments[G__38598__i + 1]; ++G__38598__i;}\n _ \x3d new cljs.core.IndexedSeq(G__38598__a,0,null);\n} \nreturn G__38597__delegate.call(this,warning_type,_);};\nG__38597.cljs$lang$maxFixedArity \x3d 1;\nG__38597.cljs$lang$applyTo \x3d (function (arglist__38599){\nvar warning_type \x3d cljs.core.first(arglist__38599);\nvar _ \x3d cljs.core.rest(arglist__38599);\nreturn G__38597__delegate(warning_type,_);\n});\nG__38597.cljs$core$IFn$_invoke$arity$variadic \x3d G__38597__delegate;\nreturn G__38597;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),(function (warning_type,info){\nreturn [\x22Preamble resource file not found: \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22missing\x22,\x22missing\x22,362507769).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),(function (warning_type,info){\nreturn [\x22Required namespace not provided for \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),(function (warning_type,info){\nreturn [(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205).cljs$core$IFn$_invoke$arity$1(info))?\x22Can\x27t take value of macro \x22:\x22Use of undeclared Var \x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),(function (warning_type,info){\nreturn [\x22var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not public\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),(function (warning_type,p__34523){\nvar map__34525 \x3d p__34523;\nvar map__34525__$1 \x3d cljs.core.__destructure_map(map__34525);\nvar info \x3d map__34525__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629)),\x22, \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583)),\x22, or JavaScript source providing \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_provide),\x22\\\x22\x22,((clojure.string.includes_QMARK_(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22_\x22))?\x22 (Please check that namespaces with dashes use underscores in the ClojureScript file name)\x22:null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-macros-ns\x22,\x22undeclared-macros-ns\x22,-438029430),(function (warning_type,p__34547){\nvar map__34550 \x3d p__34547;\nvar map__34550__$1 \x3d cljs.core.__destructure_map(map__34550);\nvar info \x3d map__34550__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such macros namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428)),\x22 or \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 not declared ^:dynamic\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 already refers to: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 being replaced by: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info))))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(info)),\x22 is being replaced\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 no longer fn, references are stale\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),(function (warning_type,info){\nreturn [\x22Wrong number of args (\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519).cljs$core$IFn$_invoke$arity$1(info)),\x22) passed to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info);\n}\n})())].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 declared arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(info)),\x22 mismatch defined arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),(function (warning_type,info){\nreturn [\x22Invalid :refer, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not exist\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),(function (warning_type,info){\nreturn [\x22Can\x27t resolve protocol symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),(function (warning_type,info){\nreturn [\x22Symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not a protocol\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),(function (warning_type,info){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22no-such-method\x22,\x22no-such-method\x22,1087422840).cljs$core$IFn$_invoke$arity$1(info))){\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare method called \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n} else {\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare arity \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22invalid-arity\x22,\x22invalid-arity\x22,1335461949).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),(function (warning_type,info){\nreturn [\x22Duplicated methods in protocol implementation \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implemented multiple times\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 declares method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),(function (warning_type,info){\nvar overwritten_protocol \x3d new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22existing\x22,\x22existing\x22,-340796094).cljs$core$IFn$_invoke$arity$1(info));\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is overwriting \x22,(cljs.core.truth_(overwritten_protocol)?\x22method\x22:\x22function\x22),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),(cljs.core.truth_(overwritten_protocol)?[\x22 of protocol \x22,cljs.core.name(overwritten_protocol)].join(\x27\x27):null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implements method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),(function (warning_type,info){\nreturn [\x22Ignoring target object \\\x22\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(info)], 0)),\x22\\\x22 passed in recur to protocol method head\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have more than 1 variadic overload\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have fixed arity function with more params than variadic function\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have 2 overloads with same arity\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),(function (warning_type,info){\nreturn [\x22Extending an existing JavaScript type - use a different symbol name \x22,\x22instead of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22current-symbol\x22,\x22current-symbol\x22,-932381075).cljs$core$IFn$_invoke$arity$1(info)),\x22 e.g \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suggested-symbol\x22,\x22suggested-symbol\x22,-1329631875).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(info)),\x22, all arguments must be numbers, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639).cljs$core$IFn$_invoke$arity$1(info)),\x22 instead\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),(function (warning_type,p__34616){\nvar map__34617 \x3d p__34616;\nvar map__34617__$1 \x3d cljs.core.__destructure_map(map__34617);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar types \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639));\nvar G__34618 \x3d name;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34618)].join(\x27\x27)));\n\n}\n}\n}\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),(function (warning_type,info){\nreturn [\x22Cannot invoke type constructor \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 as function \x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 is a single segment namespace\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),(function (warning_type,p__34651){\nvar map__34652 \x3d p__34651;\nvar map__34652__$1 \x3d cljs.core.__destructure_map(map__34652);\nvar info \x3d map__34652__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34652__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar munged \x3d cljs.core.munge(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34650_SHARP_){\nif(cljs.core.truth_((cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_) : cljs.analyzer.js_reserved.call(null,p1__34650_SHARP_)))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_),\x22$\x22].join(\x27\x27);\n} else {\nreturn p1__34650_SHARP_;\n}\n}),clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name),/\\./))));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 contains a reserved JavaScript keyword,\x22,\x22 the corresponding Google Closure namespace will be munged to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),(function (warning_type,p__34662){\nvar map__34663 \x3d p__34662;\nvar map__34663__$1 \x3d cljs.core.__destructure_map(map__34663);\nvar info \x3d map__34663__$1;\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34663__$1,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401));\nreturn [\x22In \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0)),\x22, the alias name js is reserved for JavaScript interop\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),(function (warning_type,p__34669){\nvar map__34670 \x3d p__34669;\nvar map__34670__$1 \x3d cljs.core.__destructure_map(map__34670);\nvar info \x3d map__34670__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22 clashes with var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),(function (warning_type,p__34677){\nvar map__34678 \x3d p__34677;\nvar map__34678__$1 \x3d cljs.core.__destructure_map(map__34678);\nvar info \x3d map__34678__$1;\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34678__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 not declared dynamic and thus is not dynamically rebindable, but its name \x22,\x22suggests otherwise. Please either indicate ^:dynamic \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 or change the name\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),(function (warning_type,p__34684){\nvar map__34686 \x3d p__34684;\nvar map__34686__$1 \x3d cljs.core.__destructure_map(map__34686);\nvar info \x3d map__34686__$1;\nvar protocol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nreturn [\x22Bad extend-type method shape for protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(protocol),\x22 method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(method),\x22, method arities must be grouped together\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),(function (warning_type,p__34692){\nvar map__34693 \x3d p__34692;\nvar map__34693__$1 \x3d cljs.core.__destructure_map(map__34693);\nvar info \x3d map__34693__$1;\nvar module_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22module-type\x22,\x22module-type\x22,1392760304));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported JavaScript module type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(module_type),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),(function (warning_type,p__34698){\nvar map__34699 \x3d p__34698;\nvar map__34699__$1 \x3d cljs.core.__destructure_map(map__34699);\nvar preprocess \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22preprocess\x22,\x22preprocess\x22,1208285012));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported preprocess value \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(preprocess),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),(function (warning_type,p__34702){\nvar map__34703 \x3d p__34702;\nvar map__34703__$1 \x3d cljs.core.__destructure_map(map__34703);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34703__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 is shadowed by a local\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),(function (warning_type,p__34704){\nvar map__34705 \x3d p__34704;\nvar map__34705__$1 \x3d cljs.core.__destructure_map(map__34705);\nvar warn_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar property \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232));\nvar G__34707 \x3d warn_type;\nvar G__34707__$1 \x3d (((G__34707 instanceof cljs.core.Keyword))?G__34707.fqn:null);\nswitch (G__34707__$1) {\ncase \x22target\x22:\nreturn [\x22Cannot infer target type in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22\x22].join(\x27\x27);\n\nbreak;\ncase \x22property\x22:\nreturn [\x22Cannot resolve property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 for inferred type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),\x22 in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ncase \x22object\x22:\nreturn [\x22Adding extern to Object for property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 due to \x22,\x22ambiguous expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34707__$1)].join(\x27\x27)));\n\n}\n}));\ncljs.analyzer.default_warning_handler \x3d (function cljs$analyzer$default_warning_handler(warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nvar temp__5825__auto__ \x3d cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warning_type,extra);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nvar _STAR_print_fn_STAR__orig_val__34716 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_fn_STAR__temp_val__34717 \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__34717);\n\ntry{return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__34719 \x3d env;\nvar G__34720 \x3d [\x22WARNING: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27);\nreturn (cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2(G__34719,G__34720) : cljs.analyzer.message.call(null,G__34719,G__34720));\n})()], 0));\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__34716);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.default_warning_handler], null);\ncljs.analyzer.repeat_char \x3d (function cljs$analyzer$repeat_char(c,n){\nvar ret \x3d c;\nvar n__$1 \x3d n;\nwhile(true){\nif((n__$1 \x3e (0))){\nvar G__38610 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ret),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\nvar G__38611 \x3d (n__$1 - (1));\nret \x3d G__38610;\nn__$1 \x3d G__38611;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\ncljs.analyzer.hex_format \x3d (function cljs$analyzer$hex_format(s,pad){\nvar hex \x3d s.charCodeAt((0)).toString((16));\nvar len \x3d hex.length;\nvar hex__$1 \x3d (((len \x3c pad))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.repeat_char(\x220\x22,(pad - len))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex)].join(\x27\x27):hex);\nreturn [\x22_u\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex__$1),\x22_\x22].join(\x27\x27);\n});\ncljs.analyzer.gen_constant_id \x3d (function cljs$analyzer$gen_constant_id(value){\nvar prefix \x3d (((value instanceof cljs.core.Keyword))?\x22cst$kw$\x22:(((value instanceof cljs.core.Symbol))?\x22cst$sym$\x22:(function(){throw (new Error([\x22constant type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(value)),\x22 not supported\x22].join(\x27\x27)))})()\n));\nvar name \x3d (((value instanceof cljs.core.Keyword))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),(1)):cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\nvar name__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22.\x22,name))?\x22_DOT_\x22:clojure.string.replace(clojure.string.replace(cljs.core.munge(clojure.string.replace(clojure.string.replace(clojure.string.replace(name,\x22_\x22,\x22__\x22),\x22$\x22,\x22$$\x22),\x22-\x22,\x22_DASH_\x22)),\x22.\x22,\x22$\x22),/[^a-z0-9$_]/i,(function (p1__34743_SHARP_){\nreturn cljs.analyzer.hex_format(p1__34743_SHARP_,(4));\n})));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([prefix,name__$1].join(\x27\x27));\n});\ncljs.analyzer.register_constant_BANG_ \x3d (function cljs$analyzer$register_constant_BANG_(var_args){\nvar G__34747 \x3d arguments.length;\nswitch (G__34747) {\ncase 1:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (val){\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(null,val);\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (cenv){\nvar G__34766 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889)], null),(function (table){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(table,val))){\nreturn table;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(table,val,cljs.analyzer.gen_constant_id(val));\n}\n}));\nif(cljs.core.truth_(env)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__34766,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constants\x22,\x22cljs.analyzer/constants\x22,1697083770)], null),(function (p__34767){\nvar map__34768 \x3d p__34767;\nvar map__34768__$1 \x3d cljs.core.__destructure_map(map__34768);\nvar constants \x3d map__34768__$1;\nvar seen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.PersistentHashSet.EMPTY);\nvar order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.PersistentVector.EMPTY);\nvar G__34769 \x3d constants;\nif((!(cljs.core.contains_QMARK_(seen,val)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(G__34769,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,val),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(order,val)], 0));\n} else {\nreturn G__34769;\n}\n}));\n} else {\nreturn G__34766;\n}\n}));\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.default_namespaces \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.analyzer.t_cljs$analyzer34770 \x3d (function (meta34771){\nthis.meta34771 \x3d meta34771;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_34772,meta34771__$1){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771__$1));\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_34772){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn self__.meta34771;\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n} else {\nreturn cljs.analyzer.default_namespaces;\n}\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta34771\x22,\x22meta34771\x22,-699077853,null)], null);\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$type \x3d true);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorStr \x3d \x22cljs.analyzer/t_cljs$analyzer34770\x22);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.analyzer/t_cljs$analyzer34770\x22);\n}));\n\n/**\n * Positional factory function for cljs.analyzer/t_cljs$analyzer34770.\n */\ncljs.analyzer.__GT_t_cljs$analyzer34770 \x3d (function cljs$analyzer$__GT_t_cljs$analyzer34770(meta34771){\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771));\n});\n\n\ncljs.analyzer.namespaces \x3d (new cljs.analyzer.t_cljs$analyzer34770(cljs.core.PersistentArrayMap.EMPTY));\ncljs.analyzer.get_namespace \x3d (function cljs$analyzer$get_namespace(var_args){\nvar G__34797 \x3d arguments.length;\nswitch (G__34797) {\ncase 1:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,key);\n}));\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2 \x3d (function (cenv,key){\nvar temp__5827__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cenv),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),key], null));\nif((temp__5827__auto__ \x3d\x3d null)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),key)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null);\n} else {\nreturn null;\n}\n} else {\nvar ns \x3d temp__5827__auto__;\nreturn ns;\n}\n}));\n\n(cljs.analyzer.get_namespace.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.get_line \x3d (function cljs$analyzer$get_line(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\ncljs.analyzer.get_col \x3d (function cljs$analyzer$get_col(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\n/**\n * Given a Clojure namespace intern all macros into the ambient ClojureScript\n * analysis environment.\n */\ncljs.analyzer.intern_macros \x3d (function cljs$analyzer$intern_macros(var_args){\nvar G__34799 \x3d arguments.length;\nswitch (G__34799) {\ncase 1:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2(ns,false);\n}));\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,reload){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)) \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn reload;\n}\n})())){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)], null),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__34800){\nvar vec__34801 \x3d p__34800;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(function (){var vm \x3d cljs.core.meta(v);\nvar ns__$1 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(vm).getName();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(vm,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)),new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404),true], 0));\n})()], null);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__34804){\nvar vec__34805 \x3d p__34804;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(1),null);\nreturn v.isMacro();\n}),cljs.core.ns_interns_STAR_(ns)))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.intern_macros.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Construct an empty analysis environment. Required to analyze forms.\n */\ncljs.analyzer.empty_env \x3d (function cljs$analyzer$empty_env(){\nvar val__9407__auto__ \x3d cljs.env._STAR_compiler_STAR_;\nif((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0());\n} else {\n}\n\ntry{return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22js-globals\x22,\x22js-globals\x22,1670394727),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34808_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__34808_SHARP_,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),p1__34808_SHARP_,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)],null));\n}),cljs.core.list(new cljs.core.Symbol(null,\x22alert\x22,\x22alert\x22,1068580947,null),new cljs.core.Symbol(null,\x22window\x22,\x22window\x22,-1929916235,null),new cljs.core.Symbol(null,\x22document\x22,\x22document\x22,311342840,null),new cljs.core.Symbol(null,\x22console\x22,\x22console\x22,-1426363712,null),new cljs.core.Symbol(null,\x22escape\x22,\x22escape\x22,648929575,null),new cljs.core.Symbol(null,\x22unescape\x22,\x22unescape\x22,-2037730561,null),new cljs.core.Symbol(null,\x22screen\x22,\x22screen\x22,-664376021,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22navigator\x22,\x22navigator\x22,-604431588,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22global\x22,\x22global\x22,1734126574,null),new cljs.core.Symbol(null,\x22process\x22,\x22process\x22,-1011242831,null),new cljs.core.Symbol(null,\x22require\x22,\x22require\x22,1172530194,null),new cljs.core.Symbol(null,\x22module\x22,\x22module\x22,-1229817578,null),new cljs.core.Symbol(null,\x22exports\x22,\x22exports\x22,895523255,null))))], null);\n}finally {if((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d null);\n} else {\n}\n}});\ncljs.analyzer.source_info__GT_error_data \x3d (function cljs$analyzer$source_info__GT_error_data(p__34809){\nvar map__34810 \x3d p__34809;\nvar map__34810__$1 \x3d cljs.core.__destructure_map(map__34810);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553),column], null);\n});\ncljs.analyzer.source_info \x3d (function cljs$analyzer$source_info(var_args){\nvar G__34812 \x3d arguments.length;\nswitch (G__34812) {\ncase 1:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (env){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(null,env);\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (name,env){\nvar G__34813 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)))?\x22cljs/core.cljs\x22:cljs.analyzer._STAR_cljs_file_STAR_),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(name,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(name,env)], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__34813,cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912)], null))], 0));\n} else {\nreturn G__34813;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.message \x3d (function cljs$analyzer$message(env,s){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))?[\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):(cljs.core.truth_(cljs.analyzer._STAR_cljs_file_STAR_)?[\x22 in file \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):null))].join(\x27\x27);\n});\ncljs.analyzer.warning \x3d (function cljs$analyzer$warning(warning_type,env,extra){\nvar seq__34814 \x3d cljs.core.seq(cljs.analyzer._STAR_cljs_warning_handlers_STAR_);\nvar chunk__34815 \x3d null;\nvar count__34816 \x3d (0);\nvar i__34817 \x3d (0);\nwhile(true){\nif((i__34817 \x3c count__34816)){\nvar handler \x3d chunk__34815.cljs$core$IIndexed$_nth$arity$2(null,i__34817);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38626 \x3d seq__34814;\nvar G__38627 \x3d chunk__34815;\nvar G__38628 \x3d count__34816;\nvar G__38629 \x3d (i__34817 + (1));\nseq__34814 \x3d G__38626;\nchunk__34815 \x3d G__38627;\ncount__34816 \x3d G__38628;\ni__34817 \x3d G__38629;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__34814);\nif(temp__5825__auto__){\nvar seq__34814__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__34814__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__34814__$1);\nvar G__38630 \x3d cljs.core.chunk_rest(seq__34814__$1);\nvar G__38631 \x3d c__5548__auto__;\nvar G__38632 \x3d cljs.core.count(c__5548__auto__);\nvar G__38633 \x3d (0);\nseq__34814 \x3d G__38630;\nchunk__34815 \x3d G__38631;\ncount__34816 \x3d G__38632;\ni__34817 \x3d G__38633;\ncontinue;\n} else {\nvar handler \x3d cljs.core.first(seq__34814__$1);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38634 \x3d cljs.core.next(seq__34814__$1);\nvar G__38635 \x3d null;\nvar G__38636 \x3d (0);\nvar G__38637 \x3d (0);\nseq__34814 \x3d G__38634;\nchunk__34815 \x3d G__38635;\ncount__34816 \x3d G__38636;\ni__34817 \x3d G__38637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.accumulating_warning_handler \x3d (function cljs$analyzer$accumulating_warning_handler(warn_acc){\nreturn (function (warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(warn_acc,cljs.core.conj,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [warning_type,env,extra], null));\n} else {\nreturn null;\n}\n});\n});\ncljs.analyzer.replay_accumulated_warnings \x3d (function cljs$analyzer$replay_accumulated_warnings(warn_acc){\nreturn cljs.core.run_BANG_((function (p1__34834_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.warning,p1__34834_SHARP_);\n}),cljs.core.deref(warn_acc));\n});\ncljs.analyzer.error_data \x3d (function cljs$analyzer$error_data(var_args){\nvar G__34840 \x3d arguments.length;\nswitch (G__34840) {\ncase 2:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,phase){\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,phase,null);\n}));\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,phase,symbol){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.source_info__GT_error_data(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase], null),(cljs.core.truth_(symbol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),symbol], null):null)], 0));\n}));\n\n(cljs.analyzer.error_data.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.compile_syntax_error \x3d (function cljs$analyzer$compile_syntax_error(env,msg,symbol){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22compile-syntax-check\x22,\x22compile-syntax-check\x22,-1865080468),symbol),(new Error(msg)));\n});\ncljs.analyzer.error \x3d (function cljs$analyzer$error(var_args){\nvar G__34868 \x3d arguments.length;\nswitch (G__34868) {\ncase 2:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,msg){\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,msg,null);\n}));\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,msg,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.message(env,msg),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349)),cause);\n}));\n\n(cljs.analyzer.error.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.analysis_error_QMARK_ \x3d (function cljs$analyzer$analysis_error_QMARK_(ex){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)));\n});\ncljs.analyzer.has_error_data_QMARK_ \x3d (function cljs$analyzer$has_error_data_QMARK_(ex){\nreturn cljs.core.contains_QMARK_(cljs.core.ex_data(ex),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\n});\ncljs.analyzer.implicit_nses \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.string\x22,\x22goog.string\x22,-2055533048,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog\x22,\x22goog\x22,-70603925,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.object\x22,\x22goog.object\x22,678593132,null),\x22null\x22,new cljs.core.Symbol(null,\x22Math\x22,\x22Math\x22,2033287572,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.array\x22,\x22goog.array\x22,-671977860,null),\x22null\x22], null), null);\ncljs.analyzer.implicit_import_QMARK_ \x3d (function cljs$analyzer$implicit_import_QMARK_(env,prefix,suffix){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.implicit_nses,prefix);\n});\ncljs.analyzer.confirm_var_exist_warning \x3d (function cljs$analyzer$confirm_var_exist_warning(env,prefix,suffix){\nreturn (function (env__$1,prefix__$1,suffix__$1){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),env__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),prefix__$1,new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),suffix__$1,new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205),(!(((function (){var G__34919 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1));\nvar G__34920 \x3d env__$1;\nreturn (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(G__34919,G__34920) : cljs.analyzer.get_expander.call(null,G__34919,G__34920));\n})() \x3d\x3d null)))], null));\n});\n});\n/**\n * If a library name has the form foo$bar, return a vector of the library and\n * the sublibrary property.\n */\ncljs.analyzer.lib_AMPERSAND_sublib \x3d (function cljs$analyzer$lib_AMPERSAND_sublib(lib){\nvar temp__5823__auto__ \x3d cljs.core.re_matches(/(.*)\\$(.*)/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xs \x3d temp__5823__auto__;\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),xs);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n}\n});\n/**\n * Check if a JavaScript namespace has been loaded. JavaScript vars are\n * not currently checked.\n */\ncljs.analyzer.loaded_js_ns_QMARK_ \x3d (function cljs$analyzer$loaded_js_ns_QMARK_(env,prefix){\nif(cljs.core.truth_(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix))){\nreturn null;\n} else {\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nreturn (((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))) || ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))));\n}\n});\ncljs.analyzer.internal_js_module_exists_QMARK_ \x3d (function cljs$analyzer$internal_js_module_exists_QMARK_(js_module_index,module){\nreturn cljs.core.contains_QMARK_(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((function (p__34963){\nvar vec__34964 \x3d p__34963;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(v)], null);\n})),js_module_index),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\n});\ncljs.analyzer.js_module_exists_QMARK__STAR_ \x3d cljs.core.memoize(cljs.analyzer.internal_js_module_exists_QMARK_);\ncljs.analyzer.js_module_exists_QMARK_ \x3d (function cljs$analyzer$js_module_exists_QMARK_(module){\nreturn cljs.analyzer.js_module_exists_QMARK__STAR_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931)], null)),module);\n});\ncljs.analyzer.node_module_dep_QMARK_ \x3d (function cljs$analyzer$node_module_dep_QMARK_(module){\ntry{return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22)) \x26\x26 (cljs.core.boolean$((function (){var or__5025__auto__ \x3d require.resolve(cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn require.resolve(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(module)));\n}\n})())));\n}catch (e34976){var _ \x3d e34976;\nreturn false;\n}});\ncljs.analyzer.dep_has_global_exports_QMARK_ \x3d (function cljs$analyzer$dep_has_global_exports_QMARK_(module){\nvar vec__35000 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(1),null);\nvar global_exports \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1),new cljs.core.Keyword(null,\x22global-exports\x22,\x22global-exports\x22,-1644865592)], null));\nreturn ((cljs.core.contains_QMARK_(global_exports,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(module__$1))) || (cljs.core.contains_QMARK_(global_exports,cljs.core.name(module__$1))));\n});\ncljs.analyzer.goog_module_dep_QMARK_ \x3d (function cljs$analyzer$goog_module_dep_QMARK_(module){\nvar vec__35013 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(1),null);\nvar module_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1);\nvar options \x3d cljs.analyzer.compiler_options();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22global-goog-object\x26array\x22,\x22global-goog-object\x26array\x22,907046210).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(and__5023__auto__)){\nvar fexpr__35025 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22goog.array\x22,null,\x22goog.object\x22,null], null), null);\nreturn (fexpr__35025.cljs$core$IFn$_invoke$arity$1 ? fexpr__35025.cljs$core$IFn$_invoke$arity$1(module_str) : fexpr__35025.call(null,module_str));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn false;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),module_str,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191)], null)));\n}\n});\ncljs.analyzer.confirm_var_exists \x3d (function cljs$analyzer$confirm_var_exists(var_args){\nvar G__35052 \x3d arguments.length;\nswitch (G__35052) {\ncase 3:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,prefix,suffix){\nvar warn \x3d cljs.analyzer.confirm_var_exist_warning(env,prefix,suffix);\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,warn);\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,prefix,suffix,missing_fn){\nvar sufstr \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix);\nvar suffix_str \x3d (((((!((\x22..\x22 \x3d\x3d\x3d sufstr)))) \x26\x26 (/\\./.test(sufstr))))?cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(sufstr,/\\./)):suffix);\nvar suffix__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(suffix_str);\nif((((!(cljs.analyzer.implicit_import_QMARK_(env,prefix,suffix__$1)))) \x26\x26 ((((!(cljs.analyzer.loaded_js_ns_QMARK_(env,prefix)))) \x26\x26 ((((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),prefix)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22unquote\x22,\x22unquote\x22,-1004694737,null),suffix__$1)))))) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),suffix__$1) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(prefix))))))))))){\nreturn (missing_fn.cljs$core$IFn$_invoke$arity$3 ? missing_fn.cljs$core$IFn$_invoke$arity$3(env,prefix,suffix__$1) : missing_fn.call(null,env,prefix,suffix__$1));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.confirm_var_exists_throw \x3d (function cljs$analyzer$confirm_var_exists_throw(){\nreturn (function (env,prefix,suffix){\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,(function (env__$1,prefix__$1,suffix__$1){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,[\x22Unable to resolve var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1),\x22 in this context\x22].join(\x27\x27));\n}));\n});\n});\ncljs.analyzer.resolve_ns_alias \x3d (function cljs$analyzer$resolve_ns_alias(var_args){\nvar G__35093 \x3d arguments.length;\nswitch (G__35093) {\ncase 2:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nvar map__35105 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nvar map__35105__$1 \x3d cljs.core.__destructure_map(map__35105);\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(requires,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,sym);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.resolve_macro_ns_alias \x3d (function cljs$analyzer$resolve_macro_ns_alias(var_args){\nvar G__35113 \x3d arguments.length;\nswitch (G__35113) {\ncase 2:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym,not_found);\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given env, an analysis environment, and ns-sym, a symbol identifying a\n * namespace, confirm that the namespace exists. Warn if not found.\n */\ncljs.analyzer.confirm_ns \x3d (function cljs$analyzer$confirm_ns(env,ns_sym){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns_sym)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.implicit_nses,ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_sym) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(ns_sym))))))))))){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),ns_sym,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),ns_sym], null));\n} else {\nreturn null;\n}\n});\n/**\n * Is sym visible from core in the current compilation namespace?\n */\ncljs.analyzer.core_name_QMARK_ \x3d (function cljs$analyzer$core_name_QMARK_(env,sym){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar temp__5827__auto__ \x3d (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(sym,env) : cljs.analyzer.get_expander.call(null,sym,env));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar mac \x3d temp__5827__auto__;\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(mac));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns.getName(),new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null));\n}\n}\n})();\nif(and__5023__auto__){\nreturn (!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Is sym public?\n */\ncljs.analyzer.public_name_QMARK_ \x3d (function cljs$analyzer$public_name_QMARK_(ns,sym){\nvar var_ast \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.name(ns),\x22$macros\x22].join(\x27\x27)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\n}\n})();\nreturn (((!((var_ast \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(var_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22anonymous\x22,\x22anonymous\x22,447897231).cljs$core$IFn$_invoke$arity$1(var_ast);\n}\n})())));\n});\ncljs.analyzer.js_tag_QMARK_ \x3d (function cljs$analyzer$js_tag_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.namespace(x))))));\n});\ncljs.analyzer.normalize_js_tag \x3d (function cljs$analyzer$normalize_js_tag(x){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)))){\nreturn cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),/\\./))),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null))], null));\n} else {\nreturn x;\n}\n});\n/**\n * Ensures that a type tag is a set.\n */\ncljs.analyzer.__GT_type_set \x3d (function cljs$analyzer$__GT_type_set(t){\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn t;\n} else {\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc([t]);\n}\n});\ncljs.analyzer.canonicalize_type \x3d (function cljs$analyzer$canonicalize_type(t){\n\nif((t instanceof cljs.core.Symbol)){\nreturn t;\n} else {\nif(cljs.core.empty_QMARK_(t)){\nreturn null;\n} else {\nif(((1) \x3d\x3d\x3d cljs.core.count(t))){\nreturn cljs.core.first(t);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null))){\nvar res \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null));\nif(((1) \x3d\x3d\x3d cljs.core.count(res))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nreturn res;\n}\n} else {\nreturn t;\n\n}\n}\n}\n}\n}\n});\n/**\n * Produces a union of types.\n */\ncljs.analyzer.add_types \x3d (function cljs$analyzer$add_types(var_args){\nvar G__35198 \x3d arguments.length;\nswitch (G__35198) {\ncase 0:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38656 \x3d arguments.length;\nvar i__5750__auto___38657 \x3d (0);\nwhile(true){\nif((i__5750__auto___38657 \x3c len__5749__auto___38656)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38657]));\n\nvar G__38659 \x3d (i__5750__auto___38657 + (1));\ni__5750__auto___38657 \x3d G__38659;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1 \x3d (function (t1){\nreturn t1;\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2 \x3d (function (t1,t2){\nif((((t1 \x3d\x3d null)) || ((t2 \x3d\x3d null)))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.canonicalize_type(clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.__GT_type_set(t1),cljs.analyzer.__GT_type_set(t2)));\n}\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic \x3d (function (t1,t2,ts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.add_types,cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(t1,t2),ts);\n}));\n\n/** @this {Function} */\n(cljs.analyzer.add_types.cljs$lang$applyTo \x3d (function (seq35193){\nvar G__35194 \x3d cljs.core.first(seq35193);\nvar seq35193__$1 \x3d cljs.core.next(seq35193);\nvar G__35196 \x3d cljs.core.first(seq35193__$1);\nvar seq35193__$2 \x3d cljs.core.next(seq35193__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35194,G__35196,seq35193__$2);\n}));\n\n(cljs.analyzer.add_types.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.analyzer.alias__GT_type \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22Array\x22,\x22Array\x22,-423496279,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22Boolean\x22,\x22Boolean\x22,1661141587,null),new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),new cljs.core.Symbol(null,\x22Symbol\x22,\x22Symbol\x22,716452869,null)], null);\ncljs.analyzer.has_extern_QMARK__STAR_ \x3d (function cljs$analyzer$has_extern_QMARK__STAR_(var_args){\nvar G__35222 \x3d arguments.length;\nswitch (G__35222) {\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar pre__$1 \x3d (function (){var temp__5827__auto__ \x3d cljs.core.find(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null)),cljs.core.first(pre));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn pre;\n} else {\nvar me \x3d temp__5827__auto__;\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.core.first(me)));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn pre;\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre));\n}\n}\n})();\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(pre__$1,externs,externs);\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,externs,top){\nwhile(true){\nif(cljs.core.empty_QMARK_(pre)){\nreturn true;\n} else {\nvar x \x3d cljs.core.first(pre);\nvar me \x3d cljs.core.find(externs,x);\nif(cljs.core.not(me)){\nreturn false;\n} else {\nvar vec__35245 \x3d me;\nvar x_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(1),null);\nvar xmeta \x3d cljs.core.meta(x_SINGLEQUOTE_);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(xmeta));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(xmeta);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.next(pre),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22super\x22,\x22super\x22,840752938).cljs$core$IFn$_invoke$arity$1(xmeta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar super$ \x3d temp__5825__auto__;\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [super$], null),cljs.core.next(pre)),externs,top);\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38669 \x3d cljs.core.next(pre);\nvar G__38670 \x3d externs_SINGLEQUOTE_;\nvar G__38671 \x3d top;\npre \x3d G__38669;\nexterns \x3d G__38670;\ntop \x3d G__38671;\ncontinue;\n}\n\n}\n\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.has_extern_QMARK_ \x3d (function cljs$analyzer$has_extern_QMARK_(var_args){\nvar G__35283 \x3d arguments.length;\nswitch (G__35283) {\ncase 1:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2(pre,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2(pre,externs);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pre)))?(function (){var x \x3d cljs.core.first(pre);\nvar or__5025__auto____$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),x));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null)], null),x));\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(pre)),\x22cljs$\x22);\n}\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.js_tag \x3d (function cljs$analyzer$js_tag(var_args){\nvar G__35322 \x3d arguments.length;\nswitch (G__35322) {\ncase 1:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,tag_type){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3(pre,tag_type,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,tag_type,externs){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(pre,tag_type,externs,externs);\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4 \x3d (function (pre,tag_type,externs,top){\nvar temp__5825__auto__ \x3d cljs.core.find(externs,cljs.core.first(pre));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__35336 \x3d temp__5825__auto__;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(1),null);\nvar me \x3d vec__35336;\nvar tag \x3d (function (){var G__35341 \x3d cljs.core.meta(p);\nreturn (tag_type.cljs$core$IFn$_invoke$arity$1 ? tag_type.cljs$core$IFn$_invoke$arity$1(G__35341) : tag_type.call(null,G__35341));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),(1))){\nif(cljs.core.truth_(tag)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2(tag,tag) : cljs.analyzer.alias__GT_type.call(null,tag,tag))));\n} else {\nreturn null;\n}\n} else {\nvar or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.next(pre),tag_type,externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),tag_type,cljs.core.get.cljs$core$IFn$_invoke$arity$2(top,tag),top);\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.js_tag.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.dotted_symbol_QMARK_ \x3d (function cljs$analyzer$dotted_symbol_QMARK_(sym){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nreturn ((goog.string.contains(s,\x22.\x22)) \x26\x26 ((!(goog.string.contains(s,\x22..\x22)))));\n});\ncljs.analyzer.munge_node_lib \x3d (function cljs$analyzer$munge_node_lib(name){\nreturn [\x22node$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\ncljs.analyzer.munge_goog_module_lib \x3d (function cljs$analyzer$munge_goog_module_lib(var_args){\nvar G__35368 \x3d arguments.length;\nswitch (G__35368) {\ncase 1:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nreturn [\x22goog$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(ns)),\x22.\x22,cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.munge_global_export \x3d (function cljs$analyzer$munge_global_export(name){\nreturn [\x22global$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\n/**\n * Takes a namespace and an unqualified symbol and potentially returns a new\n * symbol to be used in lieu of the original.\n */\ncljs.analyzer.resolve_alias \x3d (function cljs$analyzer$resolve_alias(ns,sym){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (function (){var fexpr__35421 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),\x22null\x22,new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),\x22null\x22], null), null);\nreturn (fexpr__35421.cljs$core$IFn$_invoke$arity$1 ? fexpr__35421.cljs$core$IFn$_invoke$arity$1(sym) : fexpr__35421.call(null,sym));\n})();\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.analyzer.checked_arrays();\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x22,\x22checked-aget\x22,950823006,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x22,\x22checked-aset\x22,1556136760,null)], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x27\x22,\x22checked-aget\x27\x22,212330530,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x27\x22,\x22checked-aset\x27\x22,-510930777,null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.checked_arrays(),sym], null));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.ns__GT_module_type \x3d (function cljs$analyzer$ns__GT_module_type(ns){\nif(cljs.analyzer.goog_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656);\n} else {\nif(cljs.core.truth_(cljs.analyzer.js_module_exists_QMARK_(ns))){\nreturn new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579);\n} else {\nif(cljs.analyzer.node_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198);\n} else {\nif(cljs.analyzer.dep_has_global_exports_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047);\n} else {\nreturn null;\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.resolve_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.resolve_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35446 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35446.cljs$core$IFn$_invoke$arity$0 ? fexpr__35446.cljs$core$IFn$_invoke$arity$0() : fexpr__35446.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22resolve*\x22),(function (env,sym,full_ns,current_ns){\nreturn cljs.analyzer.ns__GT_module_type(full_ns);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null);\n}));\ncljs.analyzer.extern_pre \x3d (function cljs$analyzer$extern_pre(sym,current_ns){\nvar pre \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./))));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n\nreturn pre;\n});\ncljs.analyzer.node_like_QMARK_ \x3d (function cljs$analyzer$node_like_QMARK_(var_args){\nvar G__35484 \x3d arguments.length;\nswitch (G__35484) {\ncase 0:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options());\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nodejs\x22,\x22nodejs\x22,321212524),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721).cljs$core$IFn$_invoke$arity$1(opts))) \x26\x26 (new cljs.core.Keyword(null,\x22nodejs-rt\x22,\x22nodejs-rt\x22,-512437071).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d false));\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$lang$maxFixedArity \x3d 1);\n\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),(function (env,sym,full_ns,current_ns){\nif(cljs.core.truth_(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0())){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null);\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047),(function (env,sym,full_ns,current_ns){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_global_export(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}));\n/**\n * Specially-treated symbols for which we don\x27t trigger :private-var-access warnings.\n */\ncljs.analyzer.private_var_access_exceptions \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),\x22null\x22], null), null);\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (env,sym,full_ns,current_ns){\nvar sym_ast \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),full_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\nvar sym_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(sym_ast);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ((cljs.core.not(cljs.analyzer._STAR_private_var_access_nowarn_STAR_)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.private_var_access_exceptions,sym_name)))));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_name], null));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym_ast,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym_name,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null)], 0));\n}));\ncljs.analyzer.required_QMARK_ \x3d (function cljs$analyzer$required_QMARK_(ns,env){\nreturn ((cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)))),ns)) || (cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)))),ns)));\n});\n/**\n * Returns true if ns is a required namespace and a JavaScript module that\n * might be invokeable as a function.\n */\ncljs.analyzer.invokeable_ns_QMARK_ \x3d (function cljs$analyzer$invokeable_ns_QMARK_(ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar and__5023__auto__ \x3d cljs.analyzer.required_QMARK_(ns__$1,env);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn ((cljs.analyzer.node_module_dep_QMARK_(ns__$1)) || (cljs.analyzer.dep_has_global_exports_QMARK_(ns__$1)));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.resolve_invokeable_ns \x3d (function cljs$analyzer$resolve_invokeable_ns(ns,current_ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar module_type \x3d cljs.analyzer.ns__GT_module_type(ns__$1);\nvar G__35560 \x3d module_type;\nvar G__35560__$1 \x3d (((G__35560 instanceof cljs.core.Keyword))?G__35560.fqn:null);\nswitch (G__35560__$1) {\ncase \x22js\x22:\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1);\n}\n})()),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22node\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_node_lib(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22global\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_global_export(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__35560__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * goog.modules are deterministically assigned to a property of the namespace,\n * we cannot expect the reference will be globally available, so we resolve to\n * namespace local reference.\n */\ncljs.analyzer.resolve_import \x3d (function cljs$analyzer$resolve_import(env,import$){\nif(cljs.analyzer.goog_module_dep_QMARK_(import$)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),import$));\n} else {\nreturn import$;\n}\n});\ncljs.analyzer.handle_symbol_local \x3d (function cljs$analyzer$handle_symbol_local(sym,lb){\nif((lb instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null);\n} else {\nreturn lb;\n}\n});\n/**\n * Resolve a var. Accepts a side-effecting confirm fn for producing\n * warnings about unresolved vars.\n */\ncljs.analyzer.resolve_var \x3d (function cljs$analyzer$resolve_var(var_args){\nvar G__35604 \x3d arguments.length;\nswitch (G__35604) {\ncase 2:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,sym){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,null);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,sym,confirm){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,sym,confirm,true);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,sym,confirm,default_QMARK_){\nwhile(true){\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nif((\x22js\x22 \x3d\x3d\x3d cljs.core.namespace(sym))){\nvar symn \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar shadowed_by_local \x3d cljs.analyzer.handle_symbol_local(symn,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,symn));\nif((!((shadowed_by_local \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadowed_by_local,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nvar pre \x3d cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./)));\nif(((cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta((function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1(pre);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null))], null),(function (){var temp__5825__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ret_tag \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358),true,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag], null);\n} else {\nreturn null;\n}\n})()], 0));\n\n}\n} else {\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nvar lb \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,sym));\nvar current_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nif((!((lb \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lb,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns \x3d cljs.core.namespace(sym);\nvar ns__$1 \x3d (((\x22clojure.core\x22 \x3d\x3d\x3d ns))?\x22cljs.core\x22:ns);\nvar full_ns \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,ns__$1,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns__$1);\n}\n})());\nif((!((confirm \x3d\x3d null)))){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns)){\ncljs.analyzer.confirm_ns(env,full_ns);\n} else {\n}\n\nvar G__35668_38723 \x3d env;\nvar G__35669_38724 \x3d full_ns;\nvar G__35670_38725 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35668_38723,G__35669_38724,G__35670_38725) : confirm.call(null,G__35668_38723,G__35669_38724,G__35670_38725));\n} else {\n}\n\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif(cljs.analyzer.dotted_symbol_QMARK_(sym)){\nvar idx \x3d s.indexOf(\x22.\x22);\nvar prefix \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx));\nvar suffix \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1)));\nvar temp__5823__auto__ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,prefix,null,false);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar resolved \x3d temp__5823__auto__;\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(resolved,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),((function (env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals){\nreturn (function (p1__35593_SHARP_){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__35593_SHARP_),\x22.\x22,suffix].join(\x27\x27));\n});})(env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals))\n);\n} else {\nvar s__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__35684 \x3d s;\nif(cljs.analyzer.goog_module_dep_QMARK_(sym)){\nreturn cljs.analyzer.resolve_import(env,G__35684);\n} else {\nreturn G__35684;\n}\n})());\nvar idx__$1 \x3d s__$1.lastIndexOf(\x22.\x22);\nvar pre \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$1,(0),idx__$1);\nvar suf \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(idx__$1 + (1)));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(pre,suf),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(pre)], null);\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym) \x3d\x3d null)))){\nvar full_ns \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym);\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym);\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym__$1,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym) \x3d\x3d null)))){\nvar G__38729 \x3d env;\nvar G__38730 \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym);\nvar G__38731 \x3d confirm;\nvar G__38732 \x3d default_QMARK_;\nenv \x3d G__38729;\nsym \x3d G__38730;\nconfirm \x3d G__38731;\ndefault_QMARK_ \x3d G__38732;\ncontinue;\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)))){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nif(cljs.analyzer.core_name_QMARK_(env,sym)){\nvar sym__$1 \x3d cljs.analyzer.resolve_alias(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),sym);\nif((!((confirm \x3d\x3d null)))){\nvar G__35721_38733 \x3d env;\nvar G__35722_38734 \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\nvar G__35723_38735 \x3d sym__$1;\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35721_38733,G__35722_38734,G__35723_38735) : confirm.call(null,G__35721_38733,G__35722_38734,G__35723_38735));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null)], 0));\n} else {\nif(cljs.core.truth_(cljs.analyzer.invokeable_ns_QMARK_(s,env))){\nreturn cljs.analyzer.resolve_invokeable_ns(s,current_ns,env);\n} else {\nif(cljs.core.truth_(default_QMARK_)){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nreturn null;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.resolve_var.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve an existing var.\n * Emits a warning if no such var exists.\n */\ncljs.analyzer.resolve_existing_var \x3d (function cljs$analyzer$resolve_existing_var(env,sym){\nif(cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists);\n} else {\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,sym);\n}\n});\n/**\n * Given env, an analysis environment env, and names, a list of symbols, confirm\n * that all correspond to declared dynamic vars.\n */\ncljs.analyzer.confirm_bindings \x3d (function cljs$analyzer$confirm_bindings(env,names){\nvar seq__35752 \x3d cljs.core.seq(names);\nvar chunk__35753 \x3d null;\nvar count__35754 \x3d (0);\nvar i__35755 \x3d (0);\nwhile(true){\nif((i__35755 \x3c count__35754)){\nvar name \x3d chunk__35753.cljs$core$IIndexed$_nth$arity$2(null,i__35755);\nvar env_38737__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38738 \x3d cljs.analyzer.resolve_existing_var(env_38737__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38738;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38738));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38737__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38738,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38738)], null));\n} else {\n}\n\n\nvar G__38740 \x3d seq__35752;\nvar G__38741 \x3d chunk__35753;\nvar G__38742 \x3d count__35754;\nvar G__38743 \x3d (i__35755 + (1));\nseq__35752 \x3d G__38740;\nchunk__35753 \x3d G__38741;\ncount__35754 \x3d G__38742;\ni__35755 \x3d G__38743;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__35752);\nif(temp__5825__auto__){\nvar seq__35752__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__35752__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__35752__$1);\nvar G__38746 \x3d cljs.core.chunk_rest(seq__35752__$1);\nvar G__38747 \x3d c__5548__auto__;\nvar G__38748 \x3d cljs.core.count(c__5548__auto__);\nvar G__38749 \x3d (0);\nseq__35752 \x3d G__38746;\nchunk__35753 \x3d G__38747;\ncount__35754 \x3d G__38748;\ni__35755 \x3d G__38749;\ncontinue;\n} else {\nvar name \x3d cljs.core.first(seq__35752__$1);\nvar env_38750__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38751 \x3d cljs.analyzer.resolve_existing_var(env_38750__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38751;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38751));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38750__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38751,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38751)], null));\n} else {\n}\n\n\nvar G__38753 \x3d cljs.core.next(seq__35752__$1);\nvar G__38754 \x3d null;\nvar G__38755 \x3d (0);\nvar G__38756 \x3d (0);\nseq__35752 \x3d G__38753;\nchunk__35753 \x3d G__38754;\ncount__35754 \x3d G__38755;\ni__35755 \x3d G__38756;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve a macro.\n */\ncljs.analyzer.resolve_macro_var \x3d (function cljs$analyzer$resolve_macro_var(env,sym){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927));\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns__$1 \x3d cljs.core.namespace(sym);\nvar ns__$2 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure.core\x22,ns__$1))?\x22cljs.core\x22:ns__$1);\nvar full_ns \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$2);\nvar full_ns__$1 \x3d (((!(clojure.string.ends_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22].join(\x27\x27)):full_ns);\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null)) \x3d\x3d null)))){\nvar full_ns \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null)) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null));\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym__$1], null));\n} else {\nvar ns__$1 \x3d (((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null)) \x3d\x3d null))))?ns:((cljs.analyzer.core_name_QMARK_(env,sym))?cljs.analyzer.impl.CLJS_CORE_MACROS_SYM:null));\nif((!((ns__$1 \x3d\x3d null)))){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\n\n\ncljs.analyzer.specials \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 22, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null);\ncljs.analyzer._STAR_recur_frames_STAR_ \x3d null;\ncljs.analyzer._STAR_loop_lets_STAR_ \x3d cljs.core.List.EMPTY;\ncljs.analyzer._STAR_allow_redef_STAR_ \x3d false;\ncljs.analyzer._STAR_allow_ns_STAR_ \x3d true;\ncljs.analyzer.analyze_keyword \x3d (function cljs$analyzer$analyze_keyword(env,sym){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null)], null);\n});\ncljs.analyzer.get_tag \x3d (function cljs$analyzer$get_tag(ast){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast)));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.find_matching_method \x3d (function cljs$analyzer$find_matching_method(fn_ast,params){\nvar methods$ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fn_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n}\n})();\nvar c \x3d cljs.core.count(params);\nreturn cljs.core.some((function (m){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869).cljs$core$IFn$_invoke$arity$1(m) \x3d\x3d\x3d c);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(m);\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn m;\n} else {\nreturn and__5023__auto__;\n}\n}),methods$);\n});\ncljs.analyzer.type_QMARK_ \x3d (function cljs$analyzer$type_QMARK_(env,t){\nif((((!((t \x3d\x3d null)))) \x26\x26 ((t instanceof cljs.core.Symbol)))){\nvar var$ \x3d (function (){var _STAR_private_var_access_nowarn_STAR__orig_val__35815 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__35816 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__35816);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,t);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__35815);\n}})();\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(var$));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar temp__5827__auto____$2 \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto____$2 \x3d\x3d null)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22PersistentHashMap\x22,\x22cljs.core/PersistentHashMap\x22,-454120575,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22List\x22,\x22cljs.core/List\x22,1708954352,null),\x22null\x22], null), null),t);\n} else {\nvar proto \x3d temp__5827__auto____$2;\nreturn proto;\n}\n} else {\nvar type \x3d temp__5827__auto____$1;\nreturn type;\n}\n} else {\nvar type \x3d temp__5827__auto__;\nreturn type;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.unwrap_quote \x3d (function cljs$analyzer$unwrap_quote(p__35830){\nvar map__35833 \x3d p__35830;\nvar map__35833__$1 \x3d cljs.core.__destructure_map(map__35833);\nvar ast \x3d map__35833__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35833__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif(cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245))){\nreturn new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.infer_if \x3d (function cljs$analyzer$infer_if(env,ast){\nvar map__35844 \x3d cljs.analyzer.unwrap_quote(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__35844__$1 \x3d cljs.core.__destructure_map(map__35844);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar then_tag \x3d (function (){var G__35849 \x3d env;\nvar G__35850 \x3d new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35849,G__35850) : cljs.analyzer.infer_tag.call(null,G__35849,G__35850));\n})();\nif(((cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842))) \x26\x26 ((((!((form \x3d\x3d null)))) \x26\x26 ((!(form \x3d\x3d\x3d false))))))){\nreturn then_tag;\n} else {\nvar else_tag \x3d (function (){var G__35857 \x3d env;\nvar G__35858 \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35857,G__35858) : cljs.analyzer.infer_tag.call(null,G__35857,G__35858));\n})();\nif(((cljs.core.symbol_identical_QMARK_(then_tag,else_tag)) || (cljs.core.symbol_identical_QMARK_(else_tag,cljs.analyzer.impl.IGNORE_SYM)))){\nreturn then_tag;\n} else {\nif(cljs.core.symbol_identical_QMARK_(then_tag,cljs.analyzer.impl.IGNORE_SYM)){\nreturn else_tag;\n} else {\nif((((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,then_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,then_tag)))) \x26\x26 ((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,else_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,else_tag)))))){\nreturn new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null);\n} else {\nif((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,then_tag) \x3d\x3d null)))) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,else_tag) \x3d\x3d null)))))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nvar then_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(then_tag))?then_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([then_tag]));\nvar else_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(else_tag))?else_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([else_tag]));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(then_tag__$1,else_tag__$1);\n}\n\n}\n}\n}\n}\n});\ncljs.analyzer.js_var_QMARK_ \x3d (function cljs$analyzer$js_var_QMARK_(ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.js_var_fn_QMARK_ \x3d (function cljs$analyzer$js_var_fn_QMARK_(fn_ast){\nreturn cljs.analyzer.js_var_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n});\ncljs.analyzer.fn_ast__GT_tag \x3d (function cljs$analyzer$fn_ast__GT_tag(p__35891){\nvar map__35893 \x3d p__35891;\nvar map__35893__$1 \x3d cljs.core.__destructure_map(map__35893);\nvar fn_ast \x3d map__35893__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35893__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.analyzer.js_var_fn_QMARK_(fn_ast)){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.analyzer.infer_invoke \x3d (function cljs$analyzer$infer_invoke(env,p__35918){\nvar map__35919 \x3d p__35918;\nvar map__35919__$1 \x3d cljs.core.__destructure_map(map__35919);\nvar ast \x3d map__35919__$1;\nvar fn_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar me \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.find_matching_method(fn_ast,args),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839));\nvar temp__5827__auto__ \x3d (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,me) : cljs.analyzer.infer_tag.call(null,env,me));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d cljs.analyzer.fn_ast__GT_tag(fn_ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn cljs.analyzer.impl.ANY_SYM;\n} else {\nvar ret_tag \x3d temp__5827__auto____$1;\nreturn ret_tag;\n}\n} else {\nvar ret_tag \x3d temp__5827__auto__;\nreturn ret_tag;\n}\n});\n/**\n * Given env, an analysis environment, and e, an AST node, return the inferred\n * type of the node\n */\ncljs.analyzer.infer_tag \x3d (function cljs$analyzer$infer_tag(env,ast){\nvar temp__5827__auto__ \x3d cljs.analyzer.get_tag(ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar G__35920 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__35920__$1 \x3d (((G__35920 instanceof cljs.core.Keyword))?G__35920.fqn:null);\nswitch (G__35920__$1) {\ncase \x22recur\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22throw\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22let\x22:\nvar G__35924 \x3d env;\nvar G__35925 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35924,G__35925) : cljs.analyzer.infer_tag.call(null,G__35924,G__35925));\n\nbreak;\ncase \x22loop\x22:\nvar G__35928 \x3d env;\nvar G__35929 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35928,G__35929) : cljs.analyzer.infer_tag.call(null,G__35928,G__35929));\n\nbreak;\ncase \x22do\x22:\nvar G__35932 \x3d env;\nvar G__35933 \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35932,G__35933) : cljs.analyzer.infer_tag.call(null,G__35932,G__35933));\n\nbreak;\ncase \x22fn-method\x22:\nvar G__35935 \x3d env;\nvar G__35936 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35935,G__35936) : cljs.analyzer.infer_tag.call(null,G__35935,G__35936));\n\nbreak;\ncase \x22def\x22:\nvar G__35937 \x3d env;\nvar G__35938 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35937,G__35938) : cljs.analyzer.infer_tag.call(null,G__35937,G__35938));\n\nbreak;\ncase \x22invoke\x22:\nreturn cljs.analyzer.infer_invoke(env,ast);\n\nbreak;\ncase \x22if\x22:\nreturn cljs.analyzer.infer_if(env,ast);\n\nbreak;\ncase \x22const\x22:\nvar G__35939 \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(false,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nreturn cljs.analyzer.impl.ANY_SYM;\n\n}\n}\n\nbreak;\ncase \x22quote\x22:\nvar G__35940 \x3d env;\nvar G__35941 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35940,G__35941) : cljs.analyzer.infer_tag.call(null,G__35940,G__35941));\n\nbreak;\ncase \x22var\x22:\ncase \x22local\x22:\ncase \x22js-var\x22:\ncase \x22binding\x22:\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar G__35942 \x3d env;\nvar G__35943 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35942,G__35943) : cljs.analyzer.infer_tag.call(null,G__35942,G__35943));\n} else {\nvar init \x3d temp__5827__auto____$1;\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.infer_tag.call(null,env,init));\n}\n\nbreak;\ncase \x22host-field\x22:\ncase \x22host-call\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ncase \x22js\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.parse !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.parse \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35952 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35952.cljs$core$IFn$_invoke$arity$0 ? fexpr__35952.cljs$core$IFn$_invoke$arity$0() : fexpr__35952.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22parse\x22),(function() { \nvar G__38759__delegate \x3d function (op,rest){\nreturn op;\n};\nvar G__38759 \x3d function (op,var_args){\nvar rest \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38760__i \x3d 0, G__38760__a \x3d new Array(arguments.length - 1);\nwhile (G__38760__i \x3c G__38760__a.length) {G__38760__a[G__38760__i] \x3d arguments[G__38760__i + 1]; ++G__38760__i;}\n rest \x3d new cljs.core.IndexedSeq(G__38760__a,0,null);\n} \nreturn G__38759__delegate.call(this,op,rest);};\nG__38759.cljs$lang$maxFixedArity \x3d 1;\nG__38759.cljs$lang$applyTo \x3d (function (arglist__38761){\nvar op \x3d cljs.core.first(arglist__38761);\nvar rest \x3d cljs.core.rest(arglist__38761);\nreturn G__38759__delegate(op,rest);\n});\nG__38759.cljs$core$IFn$_invoke$arity$variadic \x3d G__38759__delegate;\nreturn G__38759;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.var_meta \x3d (function cljs$analyzer$var_meta(var_args){\nvar G__35964 \x3d arguments.length;\nswitch (G__35964) {\ncase 1:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1 \x3d (function (var$){\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,null);\n}));\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (var$,expr_env){\nvar sym \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$);\nvar ks \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095)], null);\nvar m \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var user_meta \x3d new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964).cljs$core$IFn$_invoke$arity$1(var$);\nvar uks \x3d cljs.core.keys(user_meta);\nreturn cljs.core.zipmap(uks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35957_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(user_meta,p1__35957_SHARP_),null,(1),null)),(2),null));\n}),uks));\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.zipmap(ks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35959_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(var$,p1__35959_SHARP_),null,(1),null)),(2),null));\n}),ks)),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null))))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),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(\x22cljs.core\x22,\x22when\x22,\x22cljs.core/when\x22,120293186,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(null,\x22.-cljs$lang$test\x22,\x22.-cljs$lang$test\x22,718963148,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),(function (){var arglists \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(var$);\nvar arglists_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists)))?cljs.core.second(arglists):arglists);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.with_meta,arglists_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)),(2),null));\n})()], 0))], 0));\nif(cljs.core.truth_(expr_env)){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,m) : cljs.analyzer.analyze.call(null,expr_env,m));\n} else {\nreturn m;\n}\n}));\n\n(cljs.analyzer.var_meta.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.var_ast \x3d (function cljs$analyzer$var_ast(env,sym){\nvar _STAR_private_var_access_nowarn_STAR__orig_val__36029 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__36030 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__36030);\n\ntry{var env__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar var$ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env__$1,sym,cljs.analyzer.confirm_var_exists_throw());\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar var_ns \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym)),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),(function (){var G__36055 \x3d expr_env;\nvar G__36056 \x3d 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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.name(var_ns),cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36055,G__36056) : cljs.analyzer.analyze.call(null,G__36055,G__36056));\n})(),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,expr_env)], null);\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__36029);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),(function (op,env,p__36064,_,___$1){\nvar vec__36066 \x3d p__36064;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(1),null);\nvar form \x3d vec__36066;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to var\x22);\n} else {\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Argument to var must be symbol\x22);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22the-var\x22,\x22the-var\x22,1428415613),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),cljs.analyzer.var_ast(env,sym)], 0));\n}));\ncljs.analyzer.predicate__GT_tag \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(\x22cljs.core\x22,\x22array?\x22,\x22cljs.core/array?\x22,-1655912448,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22boolean?\x22,\x22cljs.core/boolean?\x22,1400713761,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22char?\x22,\x22cljs.core/char?\x22,416405281,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22keyword?\x22,\x22cljs.core/keyword?\x22,713156450,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-symbol?\x22,\x22cljs.core/simple-symbol?\x22,-1951205629,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-symbol?\x22,\x22cljs.core/qualified-symbol?\x22,1570873476,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22var?\x22,\x22cljs.core/var?\x22,1711182854,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22map-entry?\x22,\x22cljs.core/map-entry?\x22,465406728,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22double?\x22,\x22cljs.core/double?\x22,1757455529,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-ident?\x22,\x22cljs.core/qualified-ident?\x22,-1863492566,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22inst?\x22,\x22cljs.core/inst?\x22,1216133710,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22float?\x22,\x22cljs.core/float?\x22,-941017745,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22true?\x22,\x22cljs.core/true?\x22,-77973136,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22number?\x22,\x22cljs.core/number?\x22,-811857295,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22volatile?\x22,\x22cljs.core/volatile?\x22,-1122186415,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22integer?\x22,\x22cljs.core/integer?\x22,1710697810,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22infinite?\x22,\x22cljs.core/infinite?\x22,-1069503726,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22undefined?\x22,\x22cljs.core/undefined?\x22,-1206515693,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22uuid?\x22,\x22cljs.core/uuid?\x22,-15131116,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22record?\x22,\x22cljs.core/record?\x22,1307655860,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22reduced?\x22,\x22cljs.core/reduced?\x22,-1192491371,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22tagged-literal?\x22,\x22cljs.core/tagged-literal?\x22,-1159666987,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22zero?\x22,\x22cljs.core/zero?\x22,-341242858,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22false?\x22,\x22cljs.core/false?\x22,-1660815306,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-ident?\x22,\x22cljs.core/simple-ident?\x22,1674885558,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-keyword?\x22,\x22cljs.core/simple-keyword?\x22,39474330,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seqable?\x22,\x22cljs.core/seqable?\x22,-745394886,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22symbol?\x22,\x22cljs.core/symbol?\x22,1422196122,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seq?\x22,\x22cljs.core/seq?\x22,-1302056292,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22delay?\x22,\x22cljs.core/delay?\x22,2099859324,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22regexp?\x22,\x22cljs.core/regexp?\x22,-348418979,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ident?\x22,\x22cljs.core/ident?\x22,1567441535,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22chunked-seq?\x22,\x22cljs.core/chunked-seq?\x22,-712922369,null)],[new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISequential\x22,\x22cljs.core/ISequential\x22,-950981796,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Var\x22,\x22cljs.core/Var\x22,2071014443,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMapEntry\x22,\x22cljs.core/IMapEntry\x22,535941300,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Inst\x22,\x22cljs.core/Inst\x22,959205835,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Volatile\x22,\x22cljs.core/Volatile\x22,-1098692185,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IUUID\x22,\x22cljs.core/IUUID\x22,-1606521379,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IRecord\x22,\x22cljs.core/IRecord\x22,635852000,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Reduced\x22,\x22cljs.core/Reduced\x22,971663396,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ITaggedLiteral\x22,\x22cljs.core/ITaggedLiteral\x22,-1236965094,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(\x22cljs.core\x22,\x22ISeqable\x22,\x22cljs.core/ISeqable\x22,137437203,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Delay\x22,\x22cljs.core/Delay\x22,-21574999,null),new cljs.core.Symbol(\x22js\x22,\x22RegExp\x22,\x22js/RegExp\x22,1778210562,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IChunkedSeq\x22,\x22cljs.core/IChunkedSeq\x22,-892943716,null)]);\n/**\n * Look for a predicate-induced tag when the test expression is a simple\n * application of a predicate to a local, as in (string? x).\n */\ncljs.analyzer.simple_predicate_induced_tag \x3d (function cljs$analyzer$simple_predicate_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((2) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36084 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36085 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36085);\n\ntry{var G__36086 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36087 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36086,G__36087) : cljs.analyzer.analyze.call(null,G__36086,G__36087));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36084);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nvar temp__5825__auto__ \x3d (function (){var G__36095 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nreturn (cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1(G__36095) : cljs.analyzer.predicate__GT_tag.call(null,G__36095));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto__){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Look for a type-check-induced tag when the test expression is the use of\n * instance? on a local, as in (instance? UUID x) or implements? on a local, as\n * in (implements? ICounted x).\n */\ncljs.analyzer.type_check_induced_tag \x3d (function cljs$analyzer$type_check_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((3) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.specials,cljs.core.first(test))))))))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36112 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36113 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36113);\n\ntry{var G__36115 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36116 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36115,G__36116) : cljs.analyzer.analyze.call(null,G__36115,G__36116));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36112);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nif(cljs.core.truth_((function (){var G__36118 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nvar fexpr__36117 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22implements?\x22,\x22cljs.core/implements?\x22,-251485149,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),\x22null\x22], null), null);\nreturn (fexpr__36117.cljs$core$IFn$_invoke$arity$1 ? fexpr__36117.cljs$core$IFn$_invoke$arity$1(G__36118) : fexpr__36117.call(null,G__36118));\n})())){\nvar analyzed_type \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36125 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36126 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36126);\n\ntry{var G__36130 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36131 \x3d cljs.core.second(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36130,G__36131) : cljs.analyzer.analyze.call(null,G__36130,G__36131));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36125);\n}})();\nvar tag \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_type);\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_type));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Refine a tag to exclude clj-nil if the test is a local.\n */\ncljs.analyzer.truth_induced_tag \x3d (function cljs$analyzer$truth_induced_tag(env,test){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (test instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(test) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),test], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar analyzed_symbol \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36144 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36145 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36145);\n\ntry{var G__36148 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36149 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36148,G__36149) : cljs.analyzer.analyze.call(null,G__36148,G__36149));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36144);\n}})();\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(analyzed_symbol);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nif(((cljs.core.set_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [test,cljs.analyzer.canonicalize_type(cljs.core.disj.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null)))], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Looks at the test and sets any tags which are induced by virtue\n * of the test being truthy. For example in (if (string? x) x :bar)\n * the local x in the then branch must be of string type.\n */\ncljs.analyzer.set_test_induced_tags \x3d (function cljs$analyzer$set_test_induced_tags(env,test){\nvar vec__36164 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.simple_predicate_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.type_check_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.truth_induced_tag(env,test);\n}\n}\n})();\nvar local \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(0),null);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(1),null);\nvar G__36172 \x3d env;\nif(cljs.core.truth_(local)){\nreturn cljs.core.assoc_in(G__36172,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),local,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null),tag);\n} else {\nreturn G__36172;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),(function (op,env,p__36181,name,_){\nvar vec__36183 \x3d p__36181;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(0),null);\nvar test \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(1),null);\nvar then \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(2),null);\nvar else$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(3),null);\nvar form \x3d vec__36183;\nif((cljs.core.count(form) \x3c (3))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too few arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too many arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nvar test_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36190 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36191 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36191);\n\ntry{var G__36192 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36193 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36192,G__36193) : cljs.analyzer.analyze.call(null,G__36192,G__36193));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36190);\n}})();\nvar then_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36194 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36195 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36195);\n\ntry{var G__36196 \x3d cljs.analyzer.set_test_induced_tags(env,test);\nvar G__36197 \x3d then;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36196,G__36197) : cljs.analyzer.analyze.call(null,G__36196,G__36197));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36194);\n}})();\nvar else_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36198 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36199 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36199);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,else$) : cljs.analyzer.analyze.call(null,env,else$));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36198);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test_expr,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then_expr,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),else_expr,new cljs.core.Keyword(null,\x22unchecked\x22,\x22unchecked\x22,924418378),cljs.core._STAR_unchecked_if_STAR_,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),(function (op,env,p__36215,name,_){\nvar vec__36220 \x3d p__36215;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(1),null);\nvar tests \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(2),null);\nvar thens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(3),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(4),null);\nvar form \x3d vec__36220;\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* must switch on symbol\x22,\x22\\n\x22,\x22(symbol? sym)\x22].join(\x27\x27)));\n}\n\nif(cljs.core.every_QMARK_(cljs.core.vector_QMARK_,tests)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be grouped in vectors\x22,\x22\\n\x22,\x22(every? vector? tests)\x22].join(\x27\x27)));\n}\n\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar v \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36239 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36240 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36240);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36239);\n}})();\nvar tests__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36208_SHARP_){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (t){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,t) : cljs.analyzer.analyze.call(null,expr_env,t));\n}),p1__36208_SHARP_);\n}),tests);\nvar thens__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36209_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,p1__36209_SHARP_) : cljs.analyzer.analyze.call(null,env,p1__36209_SHARP_));\n}),thens);\nvar nodes \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tests__$2,then){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-node\x22,\x22case-node\x22,1016946320),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (test){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-test\x22,\x22case-test\x22,-213512472),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(test),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),expr_env,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)], null)], null);\n}),tests__$2),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-then\x22,\x22case-then\x22,2107591745),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(then),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null);\n}),tests__$1,thens__$1);\nvar default$__$1 \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,default$) : cljs.analyzer.analyze.call(null,env,default$));\nif(cljs.core.every_QMARK_((function (t){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(t));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(t));\nif(and__5023__auto__){\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.char_QMARK_)(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(t));\n} else {\nreturn and__5023__auto__;\n}\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,tests__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be numbers, strings, or constants\x22,\x22\\n\x22,\x22(every? (fn [t] (or (-\x3e t :info :const) (and (\x3d :const (:op t)) ((some-fn number? string? char?) (:form t))))) (apply concat tests))\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case\x22,\x22case\x22,1143702196),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),v,new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),nodes,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),(function (op,env,p__36284,name,_){\nvar vec__36287 \x3d p__36284;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(0),null);\nvar throw_form \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(1),null);\nvar form \x3d vec__36287;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too few arguments to throw, throw expects a single Error instance\x22);\n} else {\nif(((2) \x3c cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to throw, throw expects a single Error instance\x22);\n} else {\n}\n}\n\nvar throw_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36297 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36298 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36298);\n\ntry{var G__36300 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36301 \x3d throw_form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36300,G__36301) : cljs.analyzer.analyze.call(null,G__36300,G__36301));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36297);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22throw\x22,\x22throw\x22,-1044625833),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),throw_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),(function (op,env,p__36324,name,_){\nvar vec__36327 \x3d p__36324;\nvar seq__36328 \x3d cljs.core.seq(vec__36327);\nvar first__36329 \x3d cljs.core.first(seq__36328);\nvar seq__36328__$1 \x3d cljs.core.next(seq__36328);\nvar ___$1 \x3d first__36329;\nvar body \x3d seq__36328__$1;\nvar form \x3d vec__36327;\nvar catchenv \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),(function (p1__36307_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),p1__36307_SHARP_)){\nreturn new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105);\n} else {\nreturn p1__36307_SHARP_;\n}\n}));\nvar catch_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36309_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36309_SHARP_),new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null));\n}));\nvar default_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(catch_QMARK_,(function (p1__36312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(p1__36312_SHARP_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\nvar finally_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36313_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36313_SHARP_),new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null));\n}));\nvar map__36334 \x3d (function (){var parser \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),body,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),null,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),null], null);\nwhile(true){\nif(cljs.core.seq_QMARK_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser))){\nvar vec__36377 \x3d new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser);\nvar seq__36378 \x3d cljs.core.seq(vec__36377);\nvar first__36379 \x3d cljs.core.first(seq__36378);\nvar seq__36378__$1 \x3d cljs.core.next(seq__36378);\nvar form__$1 \x3d first__36379;\nvar forms_STAR_ \x3d seq__36378__$1;\nvar parser_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms_STAR_);\nvar G__36383 \x3d new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__36383__$1 \x3d (((G__36383 instanceof cljs.core.Keyword))?G__36383.fqn:null);\nswitch (G__36383__$1) {\ncase \x22start\x22:\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38773 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22catches\x22,\x22catches\x22,-1478797617));\nparser \x3d G__38773;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38774 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38774;\ncontinue;\n} else {\nvar G__38775 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),cljs.core.conj,form__$1);\nparser \x3d G__38775;\ncontinue;\n\n}\n}\n\nbreak;\ncase \x22catches\x22:\nif(cljs.core.truth_(default_QMARK_(form__$1))){\nvar G__38776 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], 0));\nparser \x3d G__38776;\ncontinue;\n} else {\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38777 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138)], null),cljs.core.conj,form__$1);\nparser \x3d G__38777;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38780;\ncontinue;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid try form\x22);\n\n}\n}\n}\n\nbreak;\ncase \x22finally\x22:\nvar G__38783 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188)], 0));\nparser \x3d G__38783;\ncontinue;\n\nbreak;\ncase \x22done\x22:\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Unexpected form after finally\x22);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36383__$1)].join(\x27\x27)));\n\n}\n} else {\nreturn parser;\n}\nbreak;\n}\n})();\nvar map__36334__$1 \x3d cljs.core.__destructure_map(map__36334);\nvar body__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar cblocks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138));\nvar dblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381));\nvar fblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426));\nvar finally$ \x3d ((cljs.core.seq(fblock))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var _STAR_recur_frames_STAR__orig_val__36397 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36398 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36398);\n\ntry{var G__36399 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36400 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),cljs.core.rest(fblock))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36399,G__36400) : cljs.analyzer.analyze.call(null,G__36399,G__36400));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36397);\n}})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true):null);\nvar e \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.seq(cblocks);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn dblock;\n}\n})())?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22e\x22):null);\nvar default$ \x3d (function (){var temp__5823__auto__ \x3d dblock;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36401 \x3d temp__5823__auto__;\nvar seq__36402 \x3d cljs.core.seq(vec__36401);\nvar first__36403 \x3d cljs.core.first(seq__36402);\nvar seq__36402__$1 \x3d cljs.core.next(seq__36402);\nvar ___$2 \x3d first__36403;\nvar first__36403__$1 \x3d cljs.core.first(seq__36402__$1);\nvar seq__36402__$2 \x3d cljs.core.next(seq__36402__$1);\nvar ___$3 \x3d first__36403__$1;\nvar first__36403__$2 \x3d cljs.core.first(seq__36402__$2);\nvar seq__36402__$3 \x3d cljs.core.next(seq__36402__$2);\nvar name__$1 \x3d first__36403__$2;\nvar cb \x3d seq__36402__$3;\nreturn 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0))));\n} else {\nreturn 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,\x22throw\x22,\x22throw\x22,595905694,null),null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))));\n}\n})();\nvar cblock \x3d ((cljs.core.seq(cblocks))?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(\x22cljs.core\x22,\x22cond\x22,\x22cljs.core/cond\x22,2005388338,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__36412){\nvar vec__36413 \x3d p__36412;\nvar seq__36414 \x3d cljs.core.seq(vec__36413);\nvar first__36415 \x3d cljs.core.first(seq__36414);\nvar seq__36414__$1 \x3d cljs.core.next(seq__36414);\nvar ___$2 \x3d first__36415;\nvar first__36415__$1 \x3d cljs.core.first(seq__36414__$1);\nvar seq__36414__$2 \x3d cljs.core.next(seq__36414__$1);\nvar type \x3d first__36415__$1;\nvar first__36415__$2 \x3d cljs.core.first(seq__36414__$2);\nvar seq__36414__$3 \x3d cljs.core.next(seq__36414__$2);\nvar name__$1 \x3d first__36415__$2;\nvar cb \x3d seq__36414__$3;\nif(cljs.core.truth_(name__$1)){\nif(cljs.core.not(cljs.core.namespace(name__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t qualify symbol in catch\x22,\x22\\n\x22,\x22(not (namespace name))\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn 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,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(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),null,(1),null)),(new cljs.core.List(null,type,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,e,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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0)))),null,(1),null))))));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cblocks], 0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,(1),null)),(new cljs.core.List(null,default$,null,(1),null))], 0)))):default$);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(catchenv);\nvar locals__$1 \x3d (cljs.core.truth_(e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(e,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(e,env),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null)):locals);\nvar catch$ \x3d (cljs.core.truth_(cblock)?(function (){var _STAR_recur_frames_STAR__orig_val__36423 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36424 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36424);\n\ntry{var G__36428 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(catchenv,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1);\nvar G__36429 \x3d cblock;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36428,G__36429) : cljs.analyzer.analyze.call(null,G__36428,G__36429));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36423);\n}})():null);\nvar try$ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36432 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36433 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36433);\n\ntry{var G__36436 \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d e;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn finally$;\n}\n})())?catchenv:env);\nvar G__36437 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body__$1)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36436,G__36437) : cljs.analyzer.analyze.call(null,G__36436,G__36437));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36432);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22try\x22,\x22try\x22,1380742522),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(try$,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705),finally$,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524),catch$,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),(cljs.core.truth_(catch$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null):null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(finally$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], null):null)], 0)))], null);\n}));\ncljs.analyzer.valid_proto \x3d (function cljs$analyzer$valid_proto(x){\nif((x instanceof cljs.core.Symbol)){\nreturn x;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.elide_env \x3d (function cljs$analyzer$elide_env(env,ast,opts){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235));\n});\ncljs.analyzer.replace_env_pass \x3d (function cljs$analyzer$replace_env_pass(new_env){\nreturn (function (env,ast,opts){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new_env);\n});\n});\ncljs.analyzer.ast_children \x3d (function cljs$analyzer$ast_children(ast){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (c){\nvar g \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast,c);\nif(cljs.core.vector_QMARK_(g)){\nreturn g;\n} else {\nif(cljs.core.truth_(g)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null);\n} else {\nreturn null;\n}\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)], 0));\n});\ncljs.analyzer.constant_value_QMARK_ \x3d (function cljs$analyzer$constant_value_QMARK_(p__36477){\nvar map__36480 \x3d p__36477;\nvar map__36480__$1 \x3d cljs.core.__destructure_map(map__36480);\nvar ast \x3d map__36480__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36480__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar or__5025__auto__ \x3d (function (){var fexpr__36483 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null], null), null);\nreturn (fexpr__36483.cljs$core$IFn$_invoke$arity$1 ? fexpr__36483.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36483.call(null,op));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d (function (){var fexpr__36487 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),null], null), null);\nreturn (fexpr__36487.cljs$core$IFn$_invoke$arity$1 ? fexpr__36487.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36487.call(null,op));\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.every_QMARK_(cljs.analyzer.constant_value_QMARK_,cljs.analyzer.ast_children(ast));\n} else {\nreturn and__5023__auto__;\n}\n}\n});\ncljs.analyzer.const_expr__GT_constant_value \x3d (function cljs$analyzer$const_expr__GT_constant_value(p__36496){\nvar map__36497 \x3d p__36496;\nvar map__36497__$1 \x3d cljs.core.__destructure_map(map__36497);\nvar e \x3d map__36497__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36497__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__36500 \x3d op;\nvar G__36500__$1 \x3d (((G__36500 instanceof cljs.core.Keyword))?G__36500.fqn:null);\nswitch (G__36500__$1) {\ncase \x22quote\x22:\nvar G__36506 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(e);\nreturn (cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1(G__36506) : cljs.analyzer.const_expr__GT_constant_value.call(null,G__36506));\n\nbreak;\ncase \x22const\x22:\nreturn new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612).cljs$core$IFn$_invoke$arity$1(e);\n\nbreak;\ncase \x22map\x22:\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(e)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22set\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22vector\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36500__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.earmuffed_QMARK_ \x3d (function cljs$analyzer$earmuffed_QMARK_(sym){\nvar s \x3d cljs.core.name(sym);\nreturn (((((s).length) \x3e (2))) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22*\x22)) \x26\x26 (clojure.string.ends_with_QMARK_(s,\x22*\x22)))));\n});\ncljs.analyzer.core_ns_QMARK_ \x3d (function cljs$analyzer$core_ns_QMARK_(ns_sym){\nvar s \x3d cljs.core.name(ns_sym);\nreturn ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),ns_sym)) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22cljs.\x22)) || (clojure.string.starts_with_QMARK_(s,\x22clojure.\x22)))));\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),(function (op,env,form,_,___$1){\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n} else {\n}\n\nvar pfn \x3d (function() {\nvar G__38791 \x3d null;\nvar G__38791__2 \x3d (function (___$2,sym){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\n});\nvar G__38791__3 \x3d (function (___$2,sym,init){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nvar G__38791__4 \x3d (function (___$2,sym,doc,init){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nG__38791 \x3d function(___$2,sym,doc,init){\nswitch(arguments.length){\ncase 2:\nreturn G__38791__2.call(this,___$2,sym);\ncase 3:\nreturn G__38791__3.call(this,___$2,sym,doc);\ncase 4:\nreturn G__38791__4.call(this,___$2,sym,doc,init);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38791.cljs$core$IFn$_invoke$arity$2 \x3d G__38791__2;\nG__38791.cljs$core$IFn$_invoke$arity$3 \x3d G__38791__3;\nG__38791.cljs$core$IFn$_invoke$arity$4 \x3d G__38791__4;\nreturn G__38791;\n})()\n;\nvar args \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(pfn,form);\nvar sym \x3d new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(args);\nvar const_QMARK_ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar sym_meta \x3d cljs.core.meta(sym);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar protocol \x3d cljs.analyzer.valid_proto(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)));\nvar dynamic \x3d new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar clash_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27));\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(cljs.core.symbol_identical_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns),ns_name)));\n} else {\nreturn and__5023__auto__;\n}\n})())?(function(){throw cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t def ns-qualified name in namespace \x22,sym_ns].join(\x27\x27))})():(((!((sym_ns \x3d\x3d null))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)):sym\n));\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns], null)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)].join(\x27\x27)),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),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(sym__$1))], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t redefine a constant\x22);\n} else {\n}\n\nvar temp__5829__auto___38792 \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif((temp__5829__auto___38792 \x3d\x3d null)){\n} else {\nvar doc_38793 \x3d temp__5829__auto___38792;\nif(typeof doc_38793 \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n}\n}\n\nif(((cljs.core.not(dynamic)) \x26\x26 (((cljs.analyzer.earmuffed_QMARK_(sym__$1)) \x26\x26 ((!(cljs.analyzer.core_ns_QMARK_(ns_name)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)], null));\n} else {\n}\n\nvar temp__5829__auto___38794 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38794 \x3d\x3d null)){\n} else {\nvar v_38795 \x3d temp__5829__auto___38794;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.analyzer._STAR_allow_redef_STAR_);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta));\nif(and__5023__auto____$2){\nvar and__5023__auto____$3 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.analyzer._STAR_file_defs_STAR_),sym__$1);\n} else {\nreturn and__5023__auto____$3;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(v_38795)], null));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795)),new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null));\n} else {\n}\n}\n\nvar env__$1 \x3d ((((((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))) \x26\x26 (cljs.analyzer.core_name_QMARK_(env,sym__$1)))) || ((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym__$1], null)) \x3d\x3d null))))))?(function (){var ev \x3d cljs.analyzer.resolve_existing_var(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),cljs.core.with_meta(sym__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nvar conj_to_set \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);\nif(cljs.analyzer.public_name_QMARK_(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),sym__$1)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name], null));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym__$1], 0));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,sym__$1);\n})():env);\nvar var_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1));\nvar init_expr \x3d ((cljs.core.contains_QMARK_(args,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)))?(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),sym_meta,((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1)], 0)));\n\nvar _STAR_recur_frames_STAR__orig_val__36583 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36584 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36584);\n\ntry{var _STAR_allow_ns_STAR__orig_val__36585 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36586 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36586);\n\ntry{var G__36587 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36588 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nvar G__36589 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(G__36587,G__36588,G__36589) : cljs.analyzer.analyze.call(null,G__36587,G__36588,G__36589));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36585);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36583);\n}})()\n:null);\nvar fn_var_QMARK_ \x3d (((!((init_expr \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204))));\nvar tag__$1 \x3d ((fn_var_QMARK_)?(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(init_expr);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d tag;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347).cljs$core$IFn$_invoke$arity$1(init_expr);\n}\n}\n})():(cljs.core.truth_(tag)?tag:(cljs.core.truth_(dynamic)?cljs.analyzer.impl.ANY_SYM:new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr)\n)));\nvar export_as \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar export_val \x3d temp__5825__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,export_val)){\nreturn var_name;\n} else {\nreturn export_val;\n}\n} else {\nreturn null;\n}\n})();\nvar doc \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\n}\n})();\nvar temp__5829__auto___38800 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38800 \x3d\x3d null)){\n} else {\nvar v_38801 \x3d temp__5829__auto___38800;\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1)))) \x26\x26 (((new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(v_38801) \x3d\x3d\x3d true) \x26\x26 ((!(fn_var_QMARK_))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),env__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1], null));\n} else {\n}\n}\n\nif((((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null)) \x3d\x3d null)) || (cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta))))){\nif(cljs.core.truth_(cljs.analyzer._STAR_file_defs_STAR_)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_file_defs_STAR_,cljs.core.conj,sym__$1);\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),(function (){var G__36605 \x3d sym_meta;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36605,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),true);\n} else {\nreturn G__36605;\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(sym_meta,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878)], null),(function (f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$1)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))){\nreturn \x22cljs/core.cljs\x22;\n} else {\nreturn f;\n}\n}))], null),(cljs.core.truth_(doc)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc], null):null),(cljs.core.truth_(const_QMARK_)?(function (){var const_expr \x3d (function (){var _STAR_passes_STAR__orig_val__36606 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__36607 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__36607);\n\ntry{var G__36610 \x3d env__$1;\nvar G__36611 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36610,G__36611) : cljs.analyzer.analyze.call(null,G__36610,G__36611));\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__36606);\n}})();\nif(cljs.core.truth_(cljs.analyzer.constant_value_QMARK_(const_expr))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})():null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1),(cljs.core.truth_(protocol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),protocol], null):null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar protocol_symbol \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198),protocol_symbol,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22protocol-info\x22,\x22protocol-info\x22,1471745843).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(protocol_symbol)),new cljs.core.Keyword(null,\x22impls\x22,\x22impls\x22,-1314014853),cljs.core.PersistentHashSet.EMPTY], null);\n} else {\nreturn null;\n}\n})(),((fn_var_QMARK_)?(function (){var params \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36545_SHARP_){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(p1__36545_SHARP_)));\n}),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),cljs.core.not(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(sym_meta)),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556).cljs$core$IFn$_invoke$arity$1(init_expr)], null),(function (){var temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),params,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta),new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838),cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta)))], null);\n} else {\nvar top_fn_meta \x3d temp__5827__auto__;\nreturn top_fn_meta;\n}\n})()], 0));\n})():null),(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta);\n} else {\nreturn and__5023__auto__;\n}\n})())?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),true,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null):null),((((fn_var_QMARK_) \x26\x26 ((!((tag__$1 \x3d\x3d null))))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):(cljs.core.truth_(tag__$1)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null):null))], 0)));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns_name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36631 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)),new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377),true);\nvar G__36633 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36631,G__36633) : cljs.analyzer.analyze.call(null,G__36631,G__36633));\n})(),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516).cljs$core$IFn$_invoke$arity$1(sym_meta)], null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar goog_type \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441),goog_type], null);\n} else {\nreturn null;\n}\n})(),((new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env__$1) \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var-ast\x22,\x22var-ast\x22,1200379319),cljs.analyzer.var_ast(env__$1,sym__$1)], null):null),(function (){var temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar test \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),(function (){var G__36638 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36639 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36638,G__36639) : cljs.analyzer.analyze.call(null,G__36638,G__36639));\n})()], null);\n}\n})(),(((!((tag__$1 \x3d\x3d null))))?((fn_var_QMARK_)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null)):null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),(((!((export_as \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590),export_as], null):null),(((!((init_expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null)], null))], 0));\n}));\ncljs.analyzer.analyze_fn_method_param \x3d (function cljs$analyzer$analyze_fn_method_param(env){\nreturn (function (p__36646,p__36647){\nvar vec__36648 \x3d p__36646;\nvar locals \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(1),null);\nvar vec__36651 \x3d p__36647;\nvar arg_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(1),null);\nif(cljs.core.truth_(cljs.core.namespace(name))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t use qualified name as parameter: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar column \x3d cljs.analyzer.get_col(name,env);\nvar nmeta \x3d cljs.core.meta(name);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(nmeta);\nvar shadow__$1 \x3d (((!((locals \x3d\x3d null))))?cljs.analyzer.handle_symbol_local(name,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(name) : locals.call(null,name))):null);\nvar env__$1 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], 0));\nvar param \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,column,line,arg_id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,tag,shadow__$1,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837)]);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name,param),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(params,param)], null);\n});\n});\ncljs.analyzer.analyze_fn_method_body \x3d (function cljs$analyzer$analyze_fn_method_body(env,form,recur_frames){\nvar _STAR_recur_frames_STAR__orig_val__36674 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36675 \x3d recur_frames;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36675);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze.call(null,env,form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36674);\n}});\ncljs.analyzer.analyze_fn_method \x3d (function cljs$analyzer$analyze_fn_method(env,locals,form,type,analyze_body_QMARK_){\nvar param_names \x3d cljs.core.first(form);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar param_names__$1 \x3d cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar body \x3d cljs.core.next(form);\nvar step \x3d cljs.analyzer.analyze_fn_method_param(env);\nvar step_init \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [locals,cljs.core.PersistentVector.EMPTY], null);\nvar vec__36681 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,step_init,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,param_names__$1));\nvar locals__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(1),null);\nvar params_SINGLEQUOTE_ \x3d ((variadic \x3d\x3d\x3d true)?cljs.core.butlast(params):params);\nvar fixed_arity \x3d cljs.core.count(params_SINGLEQUOTE_);\nvar recur_frame \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY)], null);\nvar recur_frames \x3d cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_);\nvar body_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1], 0));\nvar body_form \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body)));\nvar expr \x3d (cljs.core.truth_(analyze_body_QMARK_)?cljs.analyzer.analyze_fn_method_body(body_env,body_form,recur_frames):null);\nvar recurs \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(recur_frame));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),variadic,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),fixed_arity,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22recurs\x22,\x22recurs\x22,-1959309309),recurs], null),(((!((expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235)], null)], null))], 0));\n});\ncljs.analyzer.fn_name_var \x3d (function cljs$analyzer$fn_name_var(env,locals,name){\nif((!((name \x3d\x3d null)))){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar fn_scope \x3d new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22fn-self-name\x22,\x22fn-self-name\x22,1461143531),true,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),fn_scope,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null)], null);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nvar ret_tag \x3d (((!((tag \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag], null):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([name_var,ret_tag], 0));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_fn_methods_pass2_STAR_ \x3d (function cljs$analyzer$analyze_fn_methods_pass2_STAR_(menv,locals,type,meths){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36696_SHARP_){\nreturn cljs.analyzer.analyze_fn_method(menv,locals,p1__36696_SHARP_,type,true);\n}),meths);\n});\ncljs.analyzer.analyze_fn_methods_pass2 \x3d (function cljs$analyzer$analyze_fn_methods_pass2(menv,locals,type,meths){\nreturn cljs.analyzer.analyze_fn_methods_pass2_STAR_(menv,locals,type,meths);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(function (op,env,p__36698,name,_){\nvar vec__36699 \x3d p__36698;\nvar seq__36700 \x3d cljs.core.seq(vec__36699);\nvar first__36701 \x3d cljs.core.first(seq__36700);\nvar seq__36700__$1 \x3d cljs.core.next(seq__36700);\nvar ___$1 \x3d first__36701;\nvar args \x3d seq__36700__$1;\nvar form \x3d vec__36699;\nvar named_fn_QMARK_ \x3d (cljs.core.first(args) instanceof cljs.core.Symbol);\nvar vec__36702 \x3d ((named_fn_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,cljs.core.seq(args)], null));\nvar name__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(0),null);\nvar meths \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(1),null);\nvar meths__$1 \x3d ((cljs.core.vector_QMARK_(cljs.core.first(meths)))?(new cljs.core.List(null,meths,null,(1),null)):meths);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d cljs.analyzer.fn_name_var(env,locals,name__$1);\nvar env__$1 \x3d (((!((name__$1 \x3d\x3d null))))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859)], null),cljs.core.conj,name_var):env);\nvar locals__$1 \x3d (((((!((locals \x3d\x3d null)))) \x26\x26 (named_fn_QMARK_)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name__$1,name_var):locals);\nvar form_meta \x3d cljs.core.meta(form);\nvar type \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_impl \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_inline \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar menv \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((function (){var G__36705 \x3d env__$1;\nif((cljs.core.count(meths__$1) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36705,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n} else {\nreturn G__36705;\n}\n})(),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),proto_impl,new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),proto_inline], null)], 0));\nvar methods$ \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36697_SHARP_){\nvar _STAR_allow_ns_STAR__orig_val__36706 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36707 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36707);\n\ntry{return cljs.analyzer.analyze_fn_method(menv,locals__$1,p1__36697_SHARP_,type,(name__$1 \x3d\x3d null));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36706);\n}}),meths__$1);\nvar mfa \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869)),cljs.core.max,(0),methods$);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),methods$));\nvar locals__$2 \x3d ((named_fn_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(locals__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name__$1], null),cljs.core.assoc,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([variadic,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),mfa,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),methods$)], 0)):locals__$1);\nvar methods$__$1 \x3d (((!((name__$1 \x3d\x3d null))))?(function (){var _STAR_allow_ns_STAR__orig_val__36708 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36709 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36709);\n\ntry{return cljs.analyzer.analyze_fn_methods_pass2(menv,locals__$2,type,meths__$1);\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36708);\n}})():cljs.core.vec(methods$));\nvar form__$1 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(form,cljs.core.dissoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742));\nvar js_doc \x3d ((variadic \x3d\x3d\x3d true)?\x22@param {...*} var_args\x22:null);\nvar children \x3d (((!((name_var \x3d\x3d null))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null));\nvar inferred_ret_tag \x3d (function (){var inferred_tags \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.infer_tag,env__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),methods$__$1));\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,inferred_tags))){\nreturn cljs.core.first(inferred_tags);\n} else {\nreturn null;\n}\n})();\nvar ast \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),new cljs.core.Keyword(null,\x22recur-frames\x22,\x22recur-frames\x22,-307205196),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516)],[children,proto_inline,name_var,cljs.analyzer._STAR_loop_lets_STAR_,inferred_ret_tag,proto_impl,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),env__$1,variadic,methods$__$1,cljs.analyzer._STAR_recur_frames_STAR_,mfa,form__$1,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246).cljs$core$IFn$_invoke$arity$1(env__$1),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_doc], null)]),(((!((name_var \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),name_var], null):null)], 0));\nvar variadic_methods_38806 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))),methods$__$1);\nvar variadic_params_38807 \x3d (((cljs.core.count(variadic_methods_38806) \x3e (0)))?cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(variadic_methods_38806,(0)))):(0));\nvar param_counts_38808 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.count,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235))),methods$__$1);\nif(((1) \x3c cljs.core.count(variadic_methods_38806))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif((!((((variadic_params_38807 \x3d\x3d\x3d (0))) || ((variadic_params_38807 \x3d\x3d\x3d ((1) + mfa))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(param_counts_38808),param_counts_38808)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(ast) : cljs.analyzer.analyze_wrap_meta.call(null,ast));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),(function (op,env,p__36710,name,_){\nvar vec__36711 \x3d p__36710;\nvar seq__36712 \x3d cljs.core.seq(vec__36711);\nvar first__36713 \x3d cljs.core.first(seq__36712);\nvar seq__36712__$1 \x3d cljs.core.next(seq__36712);\nvar ___$1 \x3d first__36713;\nvar first__36713__$1 \x3d cljs.core.first(seq__36712__$1);\nvar seq__36712__$2 \x3d cljs.core.next(seq__36712__$1);\nvar bindings \x3d first__36713__$1;\nvar exprs \x3d seq__36712__$2;\nvar form \x3d vec__36711;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar n__GT_fexpr \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.second),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings)));\nvar names \x3d cljs.core.keys(n__GT_fexpr);\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar vec__36714 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36720,n){\nvar vec__36721 \x3d p__36720;\nvar map__36724 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(0),null);\nvar map__36724__$1 \x3d cljs.core.__destructure_map(map__36724);\nvar env__$1 \x3d map__36724__$1;\nvar locals \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36724__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(1),null);\nvar ret_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(n));\nvar fexpr \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36725 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36726 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36726);\n\ntry{var G__36727 \x3d env__$1;\nvar G__36728 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(n) : n__GT_fexpr.call(null,n));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36727,G__36728) : cljs.analyzer.analyze.call(null,G__36727,G__36728));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36725);\n}})();\nvar be \x3d (function (){var G__36729 \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[n,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,cljs.analyzer.get_col(n,env__$1),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),cljs.analyzer.get_line(n,env__$1),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),n,true,cljs.analyzer.handle_symbol_local(n,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(n) : locals.call(null,n))),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354)]);\nif(cljs.core.truth_(ret_tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36729,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag);\n} else {\nreturn G__36729;\n}\n})();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),n], null),be),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [env,cljs.core.PersistentVector.EMPTY], null),names);\nvar meth_env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(0),null);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(1),null);\nvar meth_env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar vec__36717 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36730,p__36731){\nvar vec__36732 \x3d p__36730;\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(1),null);\nvar map__36735 \x3d p__36731;\nvar map__36735__$1 \x3d cljs.core.__destructure_map(map__36735);\nvar be \x3d map__36735__$1;\nvar name__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar shadow__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803));\nvar env__$1 \x3d cljs.core.assoc_in(meth_env__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),shadow__$1);\nvar fexpr \x3d (function (){var G__36737 \x3d env__$1;\nvar G__36738 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(name__$1) : n__GT_fexpr.call(null,name__$1));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36737,G__36738) : cljs.analyzer.analyze.call(null,G__36737,G__36738));\n})();\nvar be_SINGLEQUOTE_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(be,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),fexpr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], 0));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),be_SINGLEQUOTE_),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes__$1,be_SINGLEQUOTE_)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [meth_env__$1,cljs.core.PersistentVector.EMPTY], null),bes);\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(1),null);\nvar expr \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36743 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env__$2,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36744 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36743,G__36744) : cljs.analyzer.analyze.call(null,G__36743,G__36744));\n})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354),new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),expr,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null);\n}));\ncljs.analyzer.analyze_do_statements_STAR_ \x3d (function cljs$analyzer$analyze_do_statements_STAR_(env,exprs){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36747_SHARP_){\nvar G__36751 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36752 \x3d p1__36747_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36751,G__36752) : cljs.analyzer.analyze.call(null,G__36751,G__36752));\n}),cljs.core.butlast(exprs));\n});\ncljs.analyzer.analyze_do_statements \x3d (function cljs$analyzer$analyze_do_statements(env,exprs){\nvar _STAR_recur_frames_STAR__orig_val__36758 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36759 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36759);\n\ntry{return cljs.analyzer.analyze_do_statements_STAR_(env,exprs);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36758);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),(function (op,env,p__36763,_,___$1){\nvar vec__36765 \x3d p__36763;\nvar seq__36766 \x3d cljs.core.seq(vec__36765);\nvar first__36767 \x3d cljs.core.first(seq__36766);\nvar seq__36766__$1 \x3d cljs.core.next(seq__36766);\nvar ___$2 \x3d first__36767;\nvar exprs \x3d seq__36766__$1;\nvar form \x3d vec__36765;\nvar statements \x3d cljs.analyzer.analyze_do_statements(env,exprs);\nif((cljs.core.count(exprs) \x3c\x3d (1))){\nvar ret \x3d (function (){var G__36777 \x3d env;\nvar G__36778 \x3d cljs.core.first(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36777,G__36778) : cljs.analyzer.analyze.call(null,G__36777,G__36778));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n} else {\nvar ret_env \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105)));\nvar ret \x3d (function (){var G__36781 \x3d ret_env;\nvar G__36782 \x3d cljs.core.last(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36781,G__36782) : cljs.analyzer.analyze.call(null,G__36781,G__36782));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\n}));\ncljs.analyzer.analyze_let_binding_init \x3d (function cljs$analyzer$analyze_let_binding_init(env,init,loop_lets){\nvar _STAR_loop_lets_STAR__orig_val__36793 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_loop_lets_STAR__temp_val__36794 \x3d loop_lets;\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36794);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.analyze.call(null,env,init));\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36793);\n}});\ncljs.analyzer.get_let_tag \x3d (function cljs$analyzer$get_let_tag(name,init_expr){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(init_expr));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.analyze_let_bindings_STAR_ \x3d (function cljs$analyzer$analyze_let_bindings_STAR_(encl_env,bindings,op){\nvar bes \x3d cljs.core.PersistentVector.EMPTY;\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(encl_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar bindings__$1 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings));\nwhile(true){\nvar temp__5827__auto__ \x3d cljs.core.first(bindings__$1);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [bes,env], null);\n} else {\nvar vec__36847 \x3d temp__5827__auto__;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(1),null);\nif((((!((cljs.core.namespace(name) \x3d\x3d null)))) || (goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22.\x22)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,[\x22Invalid local name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar init_expr \x3d cljs.analyzer.analyze_let_binding_init(env,init,cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_));\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar col \x3d cljs.analyzer.get_col(name,env);\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,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,\x22locals\x22,\x22locals\x22,535295783),name], null)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar be \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null),init_expr,name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col], null),col,line,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,cljs.analyzer.get_let_tag(name,init_expr),shadow__$1,op]);\nvar be__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([be,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(((function (bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__){\nreturn (function (p1__36808_SHARP_){\nreturn cljs.core.select_keys(p1__36808_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null));\n});})(bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__))\n,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))], null)], 0)):be);\nvar G__38812 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be__$1);\nvar G__38813 \x3d cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name], null),be__$1);\nvar G__38814 \x3d cljs.core.next(bindings__$1);\nbes \x3d G__38812;\nenv \x3d G__38813;\nbindings__$1 \x3d G__38814;\ncontinue;\n}\nbreak;\n}\n});\ncljs.analyzer.analyze_let_bindings \x3d (function cljs$analyzer$analyze_let_bindings(encl_env,bindings,op){\nvar _STAR_recur_frames_STAR__orig_val__36873 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36874 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36874);\n\ntry{return cljs.analyzer.analyze_let_bindings_STAR_(encl_env,bindings,op);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36873);\n}});\ncljs.analyzer.analyze_let_body_STAR_ \x3d (function cljs$analyzer$analyze_let_body_STAR_(env,context,exprs){\nvar G__36876 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36877 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36876,G__36877) : cljs.analyzer.analyze.call(null,G__36876,G__36877));\n});\ncljs.analyzer.analyze_let_body \x3d (function cljs$analyzer$analyze_let_body(env,context,exprs,recur_frames,loop_lets){\nvar _STAR_recur_frames_STAR__orig_val__36888 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_loop_lets_STAR__orig_val__36889 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36890 \x3d recur_frames;\nvar _STAR_loop_lets_STAR__temp_val__36891 \x3d loop_lets;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36890);\n\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36891);\n\ntry{return cljs.analyzer.analyze_let_body_STAR_(env,context,exprs);\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36889);\n\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36888);\n}});\ncljs.analyzer.analyze_let \x3d (function cljs$analyzer$analyze_let(encl_env,p__36903,is_loop,widened_tags){\nwhile(true){\nvar vec__36905 \x3d p__36903;\nvar seq__36906 \x3d cljs.core.seq(vec__36905);\nvar first__36907 \x3d cljs.core.first(seq__36906);\nvar seq__36906__$1 \x3d cljs.core.next(seq__36906);\nvar _ \x3d first__36907;\nvar first__36907__$1 \x3d cljs.core.first(seq__36906__$1);\nvar seq__36906__$2 \x3d cljs.core.next(seq__36906__$1);\nvar bindings \x3d first__36907__$1;\nvar exprs \x3d seq__36906__$2;\nvar form \x3d vec__36905;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(encl_env);\nvar op \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849):new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701));\nvar bindings__$1 \x3d (cljs.core.truth_(widened_tags)?cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form){\nreturn (function (p__36918,widened_tag){\nvar vec__36919 \x3d p__36918;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),widened_tag),init], null);\n});})(encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form))\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings),widened_tags], 0))):bindings);\nvar vec__36909 \x3d cljs.analyzer.analyze_let_bindings((function (){var G__36927 \x3d encl_env;\nif(is_loop \x3d\x3d\x3d true){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36927,new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),true);\n} else {\nreturn G__36927;\n}\n})(),bindings__$1,op);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(0),null);\nvar env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(1),null);\nvar recur_frame \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),bes))], null):null);\nvar recur_frames \x3d (cljs.core.truth_(recur_frame)?cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_):cljs.analyzer._STAR_recur_frames_STAR_);\nvar loop_lets \x3d ((is_loop \x3d\x3d\x3d true)?cljs.analyzer._STAR_loop_lets_STAR_:(((!((cljs.analyzer._STAR_loop_lets_STAR_ \x3d\x3d null))))?cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_):null));\nvar warn_acc \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(widened_tags);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nvar expr \x3d (cljs.core.truth_(warn_acc)?(function (){var _STAR_cljs_warning_handlers_STAR__orig_val__36940 \x3d cljs.analyzer._STAR_cljs_warning_handlers_STAR_;\nvar _STAR_cljs_warning_handlers_STAR__temp_val__36941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.accumulating_warning_handler(warn_acc)], null);\n(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__temp_val__36941);\n\ntry{return cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets);\n}finally {(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__orig_val__36940);\n}})():cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets));\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null);\nvar nil__GT_any \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.not(widened_tags)) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(nil__GT_any,cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame))),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(nil__GT_any,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),bes))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__38819 \x3d encl_env;\nvar G__38820 \x3d form;\nvar G__38821 \x3d is_loop;\nvar G__38822 \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame));\nencl_env \x3d G__38819;\np__36903 \x3d G__38820;\nis_loop \x3d G__38821;\nwidened_tags \x3d G__38822;\ncontinue;\n} else {\nif(cljs.core.truth_(warn_acc)){\ncljs.analyzer.replay_accumulated_warnings(warn_acc);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),encl_env,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\nbreak;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,false,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,true,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),(function (op,env,p__36968,_,___$1){\nvar vec__36973 \x3d p__36968;\nvar seq__36974 \x3d cljs.core.seq(vec__36973);\nvar first__36975 \x3d cljs.core.first(seq__36974);\nvar seq__36974__$1 \x3d cljs.core.next(seq__36974);\nvar ___$2 \x3d first__36975;\nvar exprs \x3d seq__36974__$1;\nvar form \x3d vec__36973;\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar frame \x3d cljs.core.first(cljs.analyzer._STAR_recur_frames_STAR_);\nvar add_implicit_target_object_QMARK_ \x3d (function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs),(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)) - (1)));\n} else {\nreturn and__5023__auto__;\n}\n})();\nvar exprs__$1 \x3d (function (){var G__36983 \x3d exprs;\nif(cljs.core.truth_(add_implicit_target_object_QMARK_)){\nreturn cljs.core.cons(null,G__36983);\n} else {\nreturn G__36983;\n}\n})();\nvar exprs__$2 \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36991 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36992 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36992);\n\ntry{return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36965_SHARP_){\nvar G__36995 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36996 \x3d p1__36965_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36995,G__36996) : cljs.analyzer.analyze.call(null,G__36995,G__36996));\n}),exprs__$1));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36991);\n}})();\nif(cljs.core.truth_(frame)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t recur here\x22);\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs__$2),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22recur argument count mismatch, expected: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame))),\x22 args, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(exprs__$2))].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(add_implicit_target_object_QMARK_);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(cljs.core.first(exprs__$2))], null));\n} else {\n}\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(frame),true);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(frame),(function (tags){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tag,expr){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724).cljs$core$IFn$_invoke$arity$1(expr))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr));\n}\n}),tags,exprs__$2);\n}));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),new cljs.core.Keyword(null,\x22frame\x22,\x22frame\x22,-1711082588),frame,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094),exprs__$2,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094)], null)], 0));\n}));\ncljs.analyzer.analyze_const \x3d (function cljs$analyzer$analyze_const(env,form){\nvar map__37020 \x3d (function (){var G__37021 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621),true);\nvar G__37022 \x3d form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__37021,G__37022) : cljs.analyzer.analyze.call(null,G__37021,G__37022));\n})();\nvar map__37020__$1 \x3d cljs.core.__destructure_map(map__37020);\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37020__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(function (_,env,p__37023,___$1,___$2){\nvar vec__37024 \x3d p__37023;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(1),null);\nvar form \x3d vec__37024;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to quote\x22);\n} else {\n}\n\nvar expr \x3d cljs.analyzer.analyze_const(env,x);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n}));\ncljs.analyzer.js_prim_ctor__GT_tag \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(\x22js\x22,\x22Object\x22,\x22js/Object\x22,61215323,null),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(\x22js\x22,\x22String\x22,\x22js/String\x22,-2070054036,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22js\x22,\x22Array\x22,\x22js/Array\x22,-423508366,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(\x22js\x22,\x22Number\x22,\x22js/Number\x22,-508133572,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22js\x22,\x22Function\x22,\x22js/Function\x22,-749892063,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(\x22js\x22,\x22Boolean\x22,\x22js/Boolean\x22,1661145260,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n/**\n * Test whether a tag is a constructor for a JS primitive\n */\ncljs.analyzer.prim_ctor_QMARK_ \x3d (function cljs$analyzer$prim_ctor_QMARK_(t){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.js_prim_ctor__GT_tag,t);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),(function (_,env,p__37035,___$1,___$2){\nvar vec__37036 \x3d p__37035;\nvar seq__37037 \x3d cljs.core.seq(vec__37036);\nvar first__37038 \x3d cljs.core.first(seq__37037);\nvar seq__37037__$1 \x3d cljs.core.next(seq__37037);\nvar ___$3 \x3d first__37038;\nvar first__37038__$1 \x3d cljs.core.first(seq__37037__$1);\nvar seq__37037__$2 \x3d cljs.core.next(seq__37037__$1);\nvar ctor \x3d first__37038__$1;\nvar args \x3d seq__37037__$2;\nvar form \x3d vec__37036;\nvar _STAR_recur_frames_STAR__orig_val__37039 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37040 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37040);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ctorexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,ctor) : cljs.analyzer.analyze.call(null,enve,ctor));\nvar ctor_var \x3d (cljs.core.truth_((function (){var G__37042 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ctorexpr);\nvar fexpr__37041 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__37041.cljs$core$IFn$_invoke$arity$1 ? fexpr__37041.cljs$core$IFn$_invoke$arity$1(G__37042) : fexpr__37041.call(null,G__37042));\n})())?cljs.analyzer.resolve_existing_var(env,ctor):null);\nvar record_args \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((3),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,null) : cljs.analyzer.analyze.call(null,enve,null))):null);\nvar argexprs \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37034_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__37034_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__37034_SHARP_));\n}),args)),record_args);\nvar known_num_fields \x3d new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024).cljs$core$IFn$_invoke$arity$1(ctor_var);\nvar argc \x3d cljs.core.count(args);\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)))) \x26\x26 ((((!((known_num_fields \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(known_num_fields,argc);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$2 \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) + known_num_fields),argc);\n} else {\nreturn and__5023__auto____$2;\n}\n}\n})())))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802),ctor], null));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),ctorexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),(function (){var tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nif(((cljs.analyzer.js_tag_QMARK_(tag)) \x26\x26 ((!(cljs.analyzer.prim_ctor_QMARK_(tag)))))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nvar or__5025__auto__ \x3d (cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1(name) : cljs.analyzer.js_prim_ctor__GT_tag.call(null,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn name;\n}\n}\n})()], null);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37039);\n}}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),(function (_,env,p__37063,___$1,___$2){\nvar vec__37066 \x3d p__37063;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(0),null);\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(1),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(2),null);\nvar alt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(3),null);\nvar form \x3d vec__37066;\nvar vec__37070 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((4),cljs.core.count(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [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,\x22.\x22,\x22.\x22,1975675962,null),null,(1),null)),(new cljs.core.List(null,target,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,val,null,(1),null))], 0)))),alt], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,val], null));\nvar target__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(0),null);\nvar val__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(1),null);\nvar _STAR_recur_frames_STAR__orig_val__37081 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37082 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37082);\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__37088 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__37089 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__37089);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar texpr \x3d (((target__$1 instanceof cljs.core.Symbol))?(function (){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),val__$1));\n} else {\n}\n}\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),target__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! a constant\x22);\n} else {\n}\n\nvar local_38832 \x3d cljs.analyzer.handle_symbol_local(target__$1,(function (){var G__37100 \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nreturn (target__$1.cljs$core$IFn$_invoke$arity$1 ? target__$1.cljs$core$IFn$_invoke$arity$1(G__37100) : target__$1.call(null,G__37100));\n})());\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (local_38832 \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(local_38832);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! local var or non-mutable field\x22);\n}\n\nreturn (cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze_symbol.call(null,enve,target__$1));\n})()\n:((cljs.core.seq_QMARK_(target__$1))?(function (){var texpr \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22extend-type\x22,\x22extend-type\x22,-517175606).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(target__$1)))?(function (){var _STAR_cljs_warnings_STAR__orig_val__37103 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__37104 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),false);\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__37104);\n\ntry{return (cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__37103);\n}})():(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(texpr))){\nreturn texpr;\n} else {\nreturn null;\n}\n})():null)\n);\nvar vexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,val__$1) : cljs.analyzer.analyze.call(null,enve,val__$1));\nif(cljs.core.seq_QMARK_(target__$1)){\nvar sym_38833 \x3d (function (){var G__37106 \x3d target__$1;\nif((G__37106 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.second(G__37106);\n}\n})();\nvar meta_38834 \x3d cljs.core.meta(sym_38833);\nvar temp__5825__auto___38835 \x3d (function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(vexpr));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(meta_38834);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___38835)){\nvar info_38836 \x3d temp__5825__auto___38835;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym_38833,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(info_38836,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null)),cljs.core.select_keys(cljs.core.first(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(vexpr)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0))], 0));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(texpr)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22set! target must be a field or a symbol naming a var\x22);\n}\n\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env))) \x26\x26 ((!(((function (){var fexpr__37110 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null),\x22null\x22], null), null);\nreturn (fexpr__37110.cljs$core$IFn$_invoke$arity$1 ? fexpr__37110.cljs$core$IFn$_invoke$arity$1(target__$1) : fexpr__37110.call(null,target__$1));\n})() \x3d\x3d null)))))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22no-op\x22,\x22no-op\x22,-93046065)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set!\x22,\x22set!\x22,-1389817006),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),texpr,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),vexpr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612)], null)], null);\n\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__37088);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37081);\n}}));\ncljs.analyzer.foreign_dep_QMARK_ \x3d (function cljs$analyzer$foreign_dep_QMARK_(dep){\nvar js_index \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\nvar temp__5827__auto__ \x3d cljs.core.find(js_index,cljs.core.name(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep))));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar vec__37121 \x3d temp__5827__auto__;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(0),null);\nvar map__37124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(1),null);\nvar map__37124__$1 \x3d cljs.core.__destructure_map(map__37124);\nvar foreign \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37124__$1,new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149));\nreturn foreign;\n}\n});\n/**\n * Given a lib, a namespace, deps, its dependencies, env, an analysis environment\n * and opts, compiler options - analyze all of the dependencies. Required to\n * correctly analyze usage of other namespaces.\n */\ncljs.analyzer.analyze_deps \x3d (function cljs$analyzer$analyze_deps(var_args){\nvar G__37143 \x3d arguments.length;\nswitch (G__37143) {\ncase 3:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3 \x3d (function (lib,deps,env){\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(lib,deps,env,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4 \x3d (function (lib,deps,env,opts){\nvar compiler \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar _STAR_cljs_dep_set_STAR__orig_val__37156 \x3d cljs.analyzer._STAR_cljs_dep_set_STAR_;\nvar _STAR_cljs_dep_set_STAR__temp_val__37157 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_cljs_dep_set_STAR_,lib),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558)], null),cljs.core.conj,lib);\n(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__temp_val__37157);\n\ntry{if(cljs.core.every_QMARK_((function (p1__37130_SHARP_){\nreturn (!(cljs.core.contains_QMARK_(cljs.analyzer._STAR_cljs_dep_set_STAR_,p1__37130_SHARP_)));\n}),deps)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Circular dependency detected, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 -\x3e \x22,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some(cljs.analyzer._STAR_cljs_dep_set_STAR_,deps)))))].join(\x27\x27),\x22\\n\x22,\x22(every? (fn* [p1__37130#] (not (contains? *cljs-dep-set* p1__37130#))) deps)\x22].join(\x27\x27)));\n}\n\nvar seq__37168 \x3d cljs.core.seq(deps);\nvar chunk__37169 \x3d null;\nvar count__37170 \x3d (0);\nvar i__37171 \x3d (0);\nwhile(true){\nif((i__37171 \x3c count__37170)){\nvar dep \x3d chunk__37169.cljs$core$IIndexed$_nth$arity$2(null,i__37171);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38842 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38843__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38842,cljs.core.name(dep_38843__$1))){\nvar dep_name_38844 \x3d cljs.core.name(dep_38843__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38844,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38843__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38843__$1)], null)));\n}\n}\n\n\nvar G__38850 \x3d seq__37168;\nvar G__38851 \x3d chunk__37169;\nvar G__38852 \x3d count__37170;\nvar G__38853 \x3d (i__37171 + (1));\nseq__37168 \x3d G__38850;\nchunk__37169 \x3d G__38851;\ncount__37170 \x3d G__38852;\ni__37171 \x3d G__38853;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37168);\nif(temp__5825__auto__){\nvar seq__37168__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37168__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37168__$1);\nvar G__38854 \x3d cljs.core.chunk_rest(seq__37168__$1);\nvar G__38855 \x3d c__5548__auto__;\nvar G__38856 \x3d cljs.core.count(c__5548__auto__);\nvar G__38857 \x3d (0);\nseq__37168 \x3d G__38854;\nchunk__37169 \x3d G__38855;\ncount__37170 \x3d G__38856;\ni__37171 \x3d G__38857;\ncontinue;\n} else {\nvar dep \x3d cljs.core.first(seq__37168__$1);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38858 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38859__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38858,cljs.core.name(dep_38859__$1))){\nvar dep_name_38860 \x3d cljs.core.name(dep_38859__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38860,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38859__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38859__$1)], null)));\n}\n}\n\n\nvar G__38861 \x3d cljs.core.next(seq__37168__$1);\nvar G__38862 \x3d null;\nvar G__38863 \x3d (0);\nvar G__38864 \x3d (0);\nseq__37168 \x3d G__38861;\nchunk__37169 \x3d G__38862;\ncount__37170 \x3d G__38863;\ni__37171 \x3d G__38864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}finally {(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__orig_val__37156);\n}}));\n\n(cljs.analyzer.analyze_deps.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.missing_use_QMARK_ \x3d (function cljs$analyzer$missing_use_QMARK_(lib,sym,cenv){\nvar js_lib \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cenv,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.name(lib)], null));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),lib,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150))) \x26\x26 ((((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22group\x22,\x22group\x22,582596132)),new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452))))) \x26\x26 (((cljs.core.not(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22closure-lib\x22,\x22closure-lib\x22,2105917916)))) \x26\x26 ((((!(cljs.analyzer.node_module_dep_QMARK_(lib)))) \x26\x26 ((!(cljs.analyzer.dep_has_global_exports_QMARK_(lib)))))))))));\n});\ncljs.analyzer.missing_rename_QMARK_ \x3d (function cljs$analyzer$missing_rename_QMARK_(sym,cenv){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym__$1,cenv);\n});\ncljs.analyzer.missing_use_macro_QMARK_ \x3d (function cljs$analyzer$missing_use_macro_QMARK_(lib,sym){\nif((lib instanceof cljs.core.Symbol)){\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym) \x3d\x3d null)));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.missing_rename_macro_QMARK_ \x3d (function cljs$analyzer$missing_rename_macro_QMARK_(sym){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym__$1) \x3d\x3d null)));\n});\ncljs.analyzer.missing_uses \x3d (function cljs$analyzer$missing_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37220){\nvar vec__37221 \x3d p__37220;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(1),null);\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym,cenv);\n}),uses));\n});\ncljs.analyzer.missing_renames \x3d (function cljs$analyzer$missing_renames(renames,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37231){\nvar vec__37232 \x3d p__37231;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(1),null);\nreturn cljs.analyzer.missing_rename_QMARK_(qualified_sym,cenv);\n}),renames));\n});\ncljs.analyzer.missing_use_macros \x3d (function cljs$analyzer$missing_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37239){\nvar vec__37240 \x3d p__37239;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(1),null);\nreturn cljs.analyzer.missing_use_macro_QMARK_(lib,sym);\n}),use_macros));\n});\ncljs.analyzer.inferred_use_macros \x3d (function cljs$analyzer$inferred_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37246){\nvar vec__37248 \x3d p__37246;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(1),null);\nreturn cljs.core.not(cljs.analyzer.missing_use_macro_QMARK_(lib,sym));\n}),use_macros));\n});\ncljs.analyzer.inferred_rename_macros \x3d (function cljs$analyzer$inferred_rename_macros(rename_macros,env){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37260){\nvar vec__37261 \x3d p__37260;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(1),null);\nreturn (!(cljs.analyzer.missing_rename_macro_QMARK_(qualified_sym)));\n}),rename_macros));\n});\ncljs.analyzer.check_uses \x3d (function cljs$analyzer$check_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37268 \x3d cljs.core.seq(uses);\nvar chunk__37270 \x3d null;\nvar count__37271 \x3d (0);\nvar i__37272 \x3d (0);\nwhile(true){\nif((i__37272 \x3c count__37271)){\nvar vec__37312 \x3d chunk__37270.cljs$core$IIndexed$_nth$arity$2(null,i__37272);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38869 \x3d seq__37268;\nvar G__38870 \x3d chunk__37270;\nvar G__38871 \x3d count__37271;\nvar G__38872 \x3d (i__37272 + (1));\nseq__37268 \x3d G__38869;\nchunk__37270 \x3d G__38870;\ncount__37271 \x3d G__38871;\ni__37272 \x3d G__38872;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37268);\nif(temp__5825__auto__){\nvar seq__37268__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37268__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37268__$1);\nvar G__38873 \x3d cljs.core.chunk_rest(seq__37268__$1);\nvar G__38874 \x3d c__5548__auto__;\nvar G__38875 \x3d cljs.core.count(c__5548__auto__);\nvar G__38876 \x3d (0);\nseq__37268 \x3d G__38873;\nchunk__37270 \x3d G__38874;\ncount__37271 \x3d G__38875;\ni__37272 \x3d G__38876;\ncontinue;\n} else {\nvar vec__37333 \x3d cljs.core.first(seq__37268__$1);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38877 \x3d cljs.core.next(seq__37268__$1);\nvar G__38878 \x3d null;\nvar G__38879 \x3d (0);\nvar G__38880 \x3d (0);\nseq__37268 \x3d G__38877;\nchunk__37270 \x3d G__38878;\ncount__37271 \x3d G__38879;\ni__37272 \x3d G__38880;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.check_use_macros \x3d (function cljs$analyzer$check_use_macros(var_args){\nvar G__37366 \x3d arguments.length;\nswitch (G__37366) {\ncase 2:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (use_macros,env){\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,null,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3 \x3d (function (use_macros,missing_uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37390_38882 \x3d cljs.core.seq(use_macros);\nvar chunk__37392_38883 \x3d null;\nvar count__37393_38884 \x3d (0);\nvar i__37394_38885 \x3d (0);\nwhile(true){\nif((i__37394_38885 \x3c count__37393_38884)){\nvar vec__37477_38886 \x3d chunk__37392_38883.cljs$core$IIndexed$_nth$arity$2(null,i__37394_38885);\nvar sym_38887 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(0),null);\nvar lib_38888 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38888,sym_38887))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38888,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38887], null)));\n} else {\n}\n\n\nvar G__38891 \x3d seq__37390_38882;\nvar G__38892 \x3d chunk__37392_38883;\nvar G__38893 \x3d count__37393_38884;\nvar G__38894 \x3d (i__37394_38885 + (1));\nseq__37390_38882 \x3d G__38891;\nchunk__37392_38883 \x3d G__38892;\ncount__37393_38884 \x3d G__38893;\ni__37394_38885 \x3d G__38894;\ncontinue;\n} else {\nvar temp__5825__auto___38895 \x3d cljs.core.seq(seq__37390_38882);\nif(temp__5825__auto___38895){\nvar seq__37390_38896__$1 \x3d temp__5825__auto___38895;\nif(cljs.core.chunked_seq_QMARK_(seq__37390_38896__$1)){\nvar c__5548__auto___38897 \x3d cljs.core.chunk_first(seq__37390_38896__$1);\nvar G__38898 \x3d cljs.core.chunk_rest(seq__37390_38896__$1);\nvar G__38899 \x3d c__5548__auto___38897;\nvar G__38900 \x3d cljs.core.count(c__5548__auto___38897);\nvar G__38901 \x3d (0);\nseq__37390_38882 \x3d G__38898;\nchunk__37392_38883 \x3d G__38899;\ncount__37393_38884 \x3d G__38900;\ni__37394_38885 \x3d G__38901;\ncontinue;\n} else {\nvar vec__37514_38902 \x3d cljs.core.first(seq__37390_38896__$1);\nvar sym_38903 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(0),null);\nvar lib_38904 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38904,sym_38903))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38904,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38903], null)));\n} else {\n}\n\n\nvar G__38905 \x3d cljs.core.next(seq__37390_38896__$1);\nvar G__38906 \x3d null;\nvar G__38907 \x3d (0);\nvar G__38908 \x3d (0);\nseq__37390_38882 \x3d G__38905;\nchunk__37392_38883 \x3d G__38906;\ncount__37393_38884 \x3d G__38907;\ni__37394_38885 \x3d G__38908;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.analyzer.check_uses(cljs.analyzer.missing_use_macros(missing_uses,env),env);\n\nreturn cljs.analyzer.inferred_use_macros(missing_uses,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.check_use_macros_inferring_missing \x3d (function cljs$analyzer$check_use_macros_inferring_missing(p__37523,env){\nvar map__37525 \x3d p__37523;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar ast \x3d map__37525__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar missing_uses \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(uses);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_uses(uses,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,uses,cljs.core.keys(missing_uses));\nvar remove_missing_uses \x3d (function (p1__37518_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37518_SHARP_,cljs.core.keys(missing_uses));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),(function (p1__37519_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37519_SHARP_,cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,missing_uses,env)], 0)),cljs.analyzer.inferred_use_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37520_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37520_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.check_rename_macros_inferring_missing \x3d (function cljs$analyzer$check_rename_macros_inferring_missing(p__37562,env){\nvar map__37570 \x3d p__37562;\nvar map__37570__$1 \x3d cljs.core.__destructure_map(map__37570);\nvar ast \x3d map__37570__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar missing_renames \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(renames);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_renames(renames,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,renames,cljs.core.keys(missing_renames));\nvar missing_rename_macros \x3d cljs.analyzer.inferred_rename_macros(missing_renames,env);\nvar remove_missing_renames \x3d (function (p1__37550_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37550_SHARP_,cljs.core.keys(missing_renames));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),(function (p1__37552_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37552_SHARP_,missing_rename_macros], 0)),cljs.analyzer.inferred_rename_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37554_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37554_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.parse_ns_error_msg \x3d (function cljs$analyzer$parse_ns_error_msg(spec,msg){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22; offending spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0))].join(\x27\x27);\n});\ncljs.analyzer.basic_validate_ns_spec \x3d (function cljs$analyzer$basic_validate_ns_spec(env,macros_QMARK_,spec){\nif((((spec instanceof cljs.core.Symbol)) || (((typeof spec \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(spec)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns \x26 options] and lib.ns specs supported in :require / :require-macros\x22));\n}\n\nif(cljs.core.sequential_QMARK_(spec)){\nif((((cljs.core.first(spec) instanceof cljs.core.Symbol)) || (typeof cljs.core.first(spec) \x3d\x3d\x3d \x27string\x27))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Library name must be specified as a symbol in :require / :require-macros\x22));\n}\n\nif(cljs.core.odd_QMARK_(cljs.core.count(spec))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as alias, :refer (names) and :rename {from to} options supported in :require\x22));\n}\n\nif(cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as, :refer and :rename options supported in :require / :require-macros\x22));\n}\n\nif((function (){var fs \x3d cljs.core.frequencies(cljs.core.next(spec));\nreturn ((((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0))) \x3c\x3d (1))) \x26\x26 (((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0))) \x3c\x3d (1))));\n})()){\nreturn null;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :as and :refer options may only be specified once in :require / :require-macros\x22));\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.parse_ns_excludes_impl \x3d (function cljs$analyzer$parse_ns_excludes_impl(env,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__37694){\nvar vec__37695 \x3d p__37694;\nvar seq__37696 \x3d cljs.core.seq(vec__37695);\nvar first__37697 \x3d cljs.core.first(seq__37696);\nvar seq__37696__$1 \x3d cljs.core.next(seq__37696);\nvar k \x3d first__37697;\nvar filters \x3d seq__37696__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440))){\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(s))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only one :refer-clojure form is allowed per namespace definition\x22);\n} else {\n}\n\nvar valid_kws \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null);\nvar xs \x3d (function (){var fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null);\nvar err \x3d (!(cljs.core.even_QMARK_(cljs.core.count(filters))));\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported\x22);\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nif(cljs.core.truth_((valid_kws.cljs$core$IFn$_invoke$arity$1 ? valid_kws.cljs$core$IFn$_invoke$arity$1(kw) : valid_kws.call(null,kw)))){\nvar refs \x3d cljs.core.second(fs);\nif((!(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters){\nreturn (function (p1__37682_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37682_SHARP_);\n});})(fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters))\n,refs)))))))))){\nvar G__38911 \x3d fs;\nvar G__38912 \x3d ret;\nvar G__38913 \x3d true;\nfs \x3d G__38911;\nret \x3d G__38912;\nerr \x3d G__38913;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))){\nvar G__38914 \x3d cljs.core.nnext(fs);\nvar G__38915 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),cljs.core.into,refs);\nvar G__38916 \x3d false;\nfs \x3d G__38914;\nret \x3d G__38915;\nerr \x3d G__38916;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))){\nvar G__38917 \x3d cljs.core.nnext(fs);\nvar G__38918 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),cljs.core.merge,refs);\nvar G__38919 \x3d false;\nfs \x3d G__38917;\nret \x3d G__38918;\nerr \x3d G__38919;\ncontinue;\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38920 \x3d fs;\nvar G__38921 \x3d ret;\nvar G__38922 \x3d true;\nfs \x3d G__38920;\nret \x3d G__38921;\nerr \x3d G__38922;\ncontinue;\n}\n} else {\nreturn ret;\n\n}\n}\nbreak;\n}\n})();\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.into,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s,xs], 0));\n} else {\nreturn s;\n}\n}),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null),args);\n});\ncljs.analyzer.parse_ns_excludes \x3d (function cljs$analyzer$parse_ns_excludes(env,args){\nvar s \x3d cljs.analyzer.parse_ns_excludes_impl(env,args);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.into,cljs.core.keys(new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368).cljs$core$IFn$_invoke$arity$1(s)));\n});\ncljs.analyzer.use__GT_require \x3d (function cljs$analyzer$use__GT_require(env,p__37970){\nvar vec__37974 \x3d p__37970;\nvar seq__37975 \x3d cljs.core.seq(vec__37974);\nvar first__37976 \x3d cljs.core.first(seq__37975);\nvar seq__37975__$1 \x3d cljs.core.next(seq__37975);\nvar lib \x3d first__37976;\nvar filters \x3d seq__37975__$1;\nvar spec \x3d vec__37974;\nif((((lib instanceof cljs.core.Symbol)) \x26\x26 (cljs.core.odd_QMARK_(cljs.core.count(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n}\n\nvar fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null);\nvar err \x3d false;\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nvar only_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22only\x22,\x22only\x22,1907811652));\nif(((only_QMARK_) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))))){\nif((!((cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw)]),ret) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :only and :rename options may only be specified once in :use / :use-macros\x22));\n} else {\nvar refs \x3d cljs.core.second(fs);\nif((!(((((only_QMARK_) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec){\nreturn (function (p1__37952_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37952_SHARP_);\n});})(fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec))\n,refs)))))))))){\nvar G__38925 \x3d fs;\nvar G__38926 \x3d ret;\nvar G__38927 \x3d true;\nfs \x3d G__38925;\nret \x3d G__38926;\nerr \x3d G__38927;\ncontinue;\n} else {\nvar G__38928 \x3d cljs.core.nnext(fs);\nvar G__38929 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw),refs], null));\nvar G__38930 \x3d false;\nfs \x3d G__38928;\nret \x3d G__38929;\nerr \x3d G__38930;\ncontinue;\n}\n}\n} else {\nvar G__38931 \x3d fs;\nvar G__38932 \x3d ret;\nvar G__38933 \x3d true;\nfs \x3d G__38931;\nret \x3d G__38932;\nerr \x3d G__38933;\ncontinue;\n}\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),ret) \x3d\x3d null)))){\nreturn ret;\n} else {\nvar G__38934 \x3d fs;\nvar G__38935 \x3d ret;\nvar G__38936 \x3d true;\nfs \x3d G__38934;\nret \x3d G__38935;\nerr \x3d G__38936;\ncontinue;\n}\n\n}\n}\nbreak;\n}\n});\ncljs.analyzer.parse_require_spec \x3d (function cljs$analyzer$parse_require_spec(env,macros_QMARK_,deps,aliases,spec){\nwhile(true){\nif((((spec instanceof cljs.core.Symbol)) || (typeof spec \x3d\x3d\x3d \x27string\x27))){\nvar G__38937 \x3d env;\nvar G__38938 \x3d macros_QMARK_;\nvar G__38939 \x3d deps;\nvar G__38940 \x3d aliases;\nvar G__38941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\nenv \x3d G__38937;\nmacros_QMARK_ \x3d G__38938;\ndeps \x3d G__38939;\naliases \x3d G__38940;\nspec \x3d G__38941;\ncontinue;\n} else {\ncljs.analyzer.basic_validate_ns_spec(env,macros_QMARK_,spec);\n\nvar vec__38066 \x3d spec;\nvar seq__38067 \x3d cljs.core.seq(vec__38066);\nvar first__38068 \x3d cljs.core.first(seq__38067);\nvar seq__38067__$1 \x3d cljs.core.next(seq__38067);\nvar lib \x3d first__38068;\nvar opts \x3d seq__38067__$1;\nvar vec__38069 \x3d (function (){var temp__5827__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n} else {\nvar js_module_name \x3d temp__5827__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(js_module_name),lib], null);\n}\n})();\nvar lib__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(0),null);\nvar js_module_provides \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(1),null);\nvar map__38072 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,opts);\nvar map__38072__$1 \x3d cljs.core.__destructure_map(map__38072);\nvar alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38072__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),((typeof lib__$1 \x3d\x3d\x3d \x27string\x27)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(lib__$1)):lib__$1));\nvar referred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553));\nvar renamed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar referred_without_renamed \x3d cljs.core.seq(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(renamed)),referred));\nvar vec__38073 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613)], null));\nvar rk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(0),null);\nvar uk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(1),null);\nvar renk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(2),null);\nif((((alias instanceof cljs.core.Symbol)) || ((alias \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as must be followed by a symbol in :require / :require-macros\x22));\n}\n\nif((!((alias \x3d\x3d null)))){\nvar alias_type_38942 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431):new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786));\nvar lib_SINGLEQUOTE__38943 \x3d (function (){var fexpr__38085 \x3d alias_type_38942.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(aliases));\nreturn (fexpr__38085.cljs$core$IFn$_invoke$arity$1 ? fexpr__38085.cljs$core$IFn$_invoke$arity$1(alias) : fexpr__38085.call(null,alias));\n})();\nif((((!((lib_SINGLEQUOTE__38943 \x3d\x3d null)))) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,lib_SINGLEQUOTE__38943)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as alias must be unique\x22));\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(alias,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(aliases),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786):new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)))){\n} else {\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n}\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(aliases,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias_type_38942], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias,lib__$1], null),(cljs.core.truth_(js_module_provides)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_module_provides,lib__$1], null):null)], 0));\n} else {\n}\n\nif(((((cljs.core.sequential_QMARK_(referred)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,referred)))) || ((referred \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:refer must be followed by a sequence of symbols in :require / :require-macros\x22));\n}\n\nif(cljs.core.truth_(macros_QMARK_)){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,lib__$1);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((!((alias \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([rk,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib__$1]),cljs.core.PersistentArrayMap.createAsIfByAssoc([lib__$1,lib__$1]),(cljs.core.truth_(js_module_provides)?cljs.core.PersistentArrayMap.createAsIfByAssoc([js_module_provides,lib__$1]):null)], 0))]):null),(((!((referred_without_renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([uk,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(referred_without_renamed,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(lib__$1)))]):null),(((!((renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([renk,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk){\nreturn (function (m,p__38101){\nvar vec__38102 \x3d p__38101;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(0),null);\nvar renamed__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(1),null);\nif(cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([original]),referred))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Renamed symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original),\x22 not referred\x22].join(\x27\x27));\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed__$1,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n});})(env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk))\n,cljs.core.PersistentArrayMap.EMPTY,renamed)]):null)], 0));\n}\nbreak;\n}\n});\ncljs.analyzer.parse_import_spec \x3d (function cljs$analyzer$parse_import_spec(env,deps,spec){\nif(((((cljs.core.sequential_QMARK_(spec)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,spec)))) || ((((spec instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(spec) \x3d\x3d null)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import\x22));\n}\n\nvar import_map \x3d ((cljs.core.sequential_QMARK_(spec))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38105_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__38105_SHARP_,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(spec)),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__38105_SHARP_)].join(\x27\x27))],null));\n}),cljs.core.rest(spec))):(((!(((-1) \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec).indexOf(\x22.\x22)))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),/\\./))),spec]):cljs.core.PersistentArrayMap.EMPTY\n));\nvar seq__38110_38947 \x3d cljs.core.seq(import_map);\nvar chunk__38111_38948 \x3d null;\nvar count__38112_38949 \x3d (0);\nvar i__38113_38950 \x3d (0);\nwhile(true){\nif((i__38113_38950 \x3c count__38112_38949)){\nvar vec__38124_38952 \x3d chunk__38111_38948.cljs$core$IIndexed$_nth$arity$2(null,i__38113_38950);\nvar __38953 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(0),null);\nvar spec_38954__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38954__$1);\n\n\nvar G__38955 \x3d seq__38110_38947;\nvar G__38956 \x3d chunk__38111_38948;\nvar G__38957 \x3d count__38112_38949;\nvar G__38958 \x3d (i__38113_38950 + (1));\nseq__38110_38947 \x3d G__38955;\nchunk__38111_38948 \x3d G__38956;\ncount__38112_38949 \x3d G__38957;\ni__38113_38950 \x3d G__38958;\ncontinue;\n} else {\nvar temp__5825__auto___38959 \x3d cljs.core.seq(seq__38110_38947);\nif(temp__5825__auto___38959){\nvar seq__38110_38960__$1 \x3d temp__5825__auto___38959;\nif(cljs.core.chunked_seq_QMARK_(seq__38110_38960__$1)){\nvar c__5548__auto___38961 \x3d cljs.core.chunk_first(seq__38110_38960__$1);\nvar G__38962 \x3d cljs.core.chunk_rest(seq__38110_38960__$1);\nvar G__38963 \x3d c__5548__auto___38961;\nvar G__38964 \x3d cljs.core.count(c__5548__auto___38961);\nvar G__38965 \x3d (0);\nseq__38110_38947 \x3d G__38962;\nchunk__38111_38948 \x3d G__38963;\ncount__38112_38949 \x3d G__38964;\ni__38113_38950 \x3d G__38965;\ncontinue;\n} else {\nvar vec__38131_38966 \x3d cljs.core.first(seq__38110_38960__$1);\nvar __38967 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(0),null);\nvar spec_38968__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38968__$1);\n\n\nvar G__38970 \x3d cljs.core.next(seq__38110_38960__$1);\nvar G__38971 \x3d null;\nvar G__38972 \x3d (0);\nvar G__38973 \x3d (0);\nseq__38110_38947 \x3d G__38970;\nchunk__38111_38948 \x3d G__38971;\ncount__38112_38949 \x3d G__38972;\ni__38113_38950 \x3d G__38973;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),import_map,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),import_map], null);\n});\n/**\n * Given a spec form check whether the spec namespace requires a macro file\n * of the same name. If so return true.\n */\ncljs.analyzer.macro_autoload_ns_QMARK_ \x3d (function cljs$analyzer$macro_autoload_ns_QMARK_(form){\nif(cljs.core.truth_(cljs.analyzer._STAR_macro_infer_STAR_)){\nvar ns \x3d ((cljs.core.sequential_QMARK_(form))?cljs.core.first(form):form);\nvar map__38136 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null));\nvar map__38136__$1 \x3d cljs.core.__destructure_map(map__38136);\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar or__5025__auto__ \x3d cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(use_macros));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(require_macros));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a symbol that starts with clojure as the first segment return the\n * same symbol with the first segment replaced with cljs\n */\ncljs.analyzer.clj_ns__GT_cljs_ns \x3d (function cljs$analyzer$clj_ns__GT_cljs_ns(sym){\nvar segs \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure\x22,cljs.core.first(segs))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.cons(\x22cljs\x22,cljs.core.next(segs))));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.canonicalize_specs \x3d (function cljs$analyzer$canonicalize_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nvar spec \x3d cljs.core.second(quoted_spec_or_kw);\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.map_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\ncljs.analyzer.canonicalize_import_specs \x3d (function cljs$analyzer$canonicalize_import_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_import_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nreturn cljs.core.second(quoted_spec_or_kw);\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\n/**\n * Given an original set of ns specs desugar :include-macros and :refer-macros\n * usage into only primitive spec forms - :use, :require, :use-macros,\n * :require-macros. If a library includes a macro file of with the same name\n * as the namespace will also be desugared.\n */\ncljs.analyzer.desugar_ns_specs \x3d (function cljs$analyzer$desugar_ns_specs(args){\nvar map__38157 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__38158){\nvar vec__38159 \x3d p__38158;\nvar seq__38160 \x3d cljs.core.seq(vec__38159);\nvar first__38161 \x3d cljs.core.first(seq__38160);\nvar seq__38160__$1 \x3d cljs.core.next(seq__38160);\nvar k \x3d first__38161;\nvar specs \x3d seq__38160__$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,specs)], null);\n}),args));\nvar map__38157__$1 \x3d cljs.core.__destructure_map(map__38157);\nvar indexed \x3d map__38157__$1;\nvar require__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38157__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar sugar_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953),null], null), null);\nvar remove_from_spec \x3d (function (pred,spec){\nwhile(true){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(spec);\nif(and__5023__auto__){\nreturn cljs.core.some(pred,spec);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn spec;\n} else {\nvar vec__38164 \x3d cljs.core.split_with(cljs.core.complement(pred),spec);\nvar l \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(1),null);\nvar G__38975 \x3d pred;\nvar G__38976 \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),r));\npred \x3d G__38975;\nspec \x3d G__38976;\ncontinue;\n}\nbreak;\n}\n});\nvar replace_refer_macros \x3d (function (spec){\nif((!(cljs.core.sequential_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953))){\nreturn new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553);\n} else {\nreturn x;\n}\n}),spec);\n}\n});\nvar reload_spec_QMARK_ \x3d (function (p1__38155_SHARP_){\nvar fexpr__38168 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null);\nreturn (fexpr__38168.cljs$core$IFn$_invoke$arity$1 ? fexpr__38168.cljs$core$IFn$_invoke$arity$1(p1__38155_SHARP_) : fexpr__38168.call(null,p1__38155_SHARP_));\n});\nvar to_macro_specs \x3d (function (specs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nreturn replace_refer_macros(remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null], null), null),x))));\n} else {\nreturn x;\n}\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (x){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(x);\nif(and__5023__auto__){\nreturn cljs.core.some(sugar_keys,x);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d reload_spec_QMARK_(x);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.macro_autoload_ns_QMARK_(x);\n}\n}\n}),specs));\n});\nvar remove_sugar \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(remove_from_spec,sugar_keys);\nvar temp__5827__auto__ \x3d cljs.core.seq(to_macro_specs(require__$1));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn args;\n} else {\nvar require_specs \x3d temp__5827__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nvar vec__38174 \x3d x;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(1),null);\nreturn cljs.core.cons(k,cljs.core.map.cljs$core$IFn$_invoke$arity$2(remove_sugar,v));\n} else {\nreturn x;\n}\n}),cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(indexed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),require_specs));\n}\n});\ncljs.analyzer.find_def_clash \x3d (function cljs$analyzer$find_def_clash(env,ns,segments){\nvar to_check \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (xs){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.butlast(xs))),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(xs))], null);\n}),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.PersistentVector.EMPTY,segments)));\nvar seq__38181 \x3d cljs.core.seq(to_check);\nvar chunk__38182 \x3d null;\nvar count__38183 \x3d (0);\nvar i__38184 \x3d (0);\nwhile(true){\nif((i__38184 \x3c count__38183)){\nvar vec__38198 \x3d chunk__38182.cljs$core$IIndexed$_nth$arity$2(null,i__38184);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38981 \x3d seq__38181;\nvar G__38982 \x3d chunk__38182;\nvar G__38983 \x3d count__38183;\nvar G__38984 \x3d (i__38184 + (1));\nseq__38181 \x3d G__38981;\nchunk__38182 \x3d G__38982;\ncount__38183 \x3d G__38983;\ni__38184 \x3d G__38984;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38181);\nif(temp__5825__auto__){\nvar seq__38181__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38181__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38181__$1);\nvar G__38985 \x3d cljs.core.chunk_rest(seq__38181__$1);\nvar G__38986 \x3d c__5548__auto__;\nvar G__38987 \x3d cljs.core.count(c__5548__auto__);\nvar G__38988 \x3d (0);\nseq__38181 \x3d G__38985;\nchunk__38182 \x3d G__38986;\ncount__38183 \x3d G__38987;\ni__38184 \x3d G__38988;\ncontinue;\n} else {\nvar vec__38204 \x3d cljs.core.first(seq__38181__$1);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38989 \x3d cljs.core.next(seq__38181__$1);\nvar G__38990 \x3d null;\nvar G__38991 \x3d (0);\nvar G__38992 \x3d (0);\nseq__38181 \x3d G__38989;\nchunk__38182 \x3d G__38990;\ncount__38183 \x3d G__38991;\ni__38184 \x3d G__38992;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.macro_ns_name \x3d (function cljs$analyzer$macro_ns_name(name){\nvar name_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif(cljs.core.not(goog.string.endsWith(name_str,\x22$macros\x22))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([name_str,\x22$macros\x22].join(\x27\x27));\n} else {\nreturn name;\n}\n});\ncljs.analyzer.check_duplicate_aliases \x3d (function cljs$analyzer$check_duplicate_aliases(env,old,new$){\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(old);\nvar seq__38210 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null));\nvar chunk__38211 \x3d null;\nvar count__38212 \x3d (0);\nvar i__38213 \x3d (0);\nwhile(true){\nif((i__38213 \x3c count__38212)){\nvar k \x3d chunk__38211.cljs$core$IIndexed$_nth$arity$2(null,i__38213);\nvar old_aliases_38993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_38994 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___38995 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_38994)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name){\nreturn (function (p__38223){\nvar vec__38224 \x3d p__38223;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(1),null);\nvar entry \x3d vec__38224;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_38994,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name))\n,old_aliases_38993)));\nif((temp__5829__auto___38995 \x3d\x3d null)){\n} else {\nvar alias_38996 \x3d temp__5829__auto___38995;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_38996),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_38993,alias_38996))].join(\x27\x27));\n}\n\n\nvar G__38997 \x3d seq__38210;\nvar G__38998 \x3d chunk__38211;\nvar G__38999 \x3d count__38212;\nvar G__39000 \x3d (i__38213 + (1));\nseq__38210 \x3d G__38997;\nchunk__38211 \x3d G__38998;\ncount__38212 \x3d G__38999;\ni__38213 \x3d G__39000;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38210);\nif(temp__5825__auto__){\nvar seq__38210__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38210__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38210__$1);\nvar G__39001 \x3d cljs.core.chunk_rest(seq__38210__$1);\nvar G__39002 \x3d c__5548__auto__;\nvar G__39003 \x3d cljs.core.count(c__5548__auto__);\nvar G__39004 \x3d (0);\nseq__38210 \x3d G__39001;\nchunk__38211 \x3d G__39002;\ncount__38212 \x3d G__39003;\ni__38213 \x3d G__39004;\ncontinue;\n} else {\nvar k \x3d cljs.core.first(seq__38210__$1);\nvar old_aliases_39005 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_39006 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___39007 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_39006)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name){\nreturn (function (p__38227){\nvar vec__38228 \x3d p__38227;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(1),null);\nvar entry \x3d vec__38228;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_39006,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name))\n,old_aliases_39005)));\nif((temp__5829__auto___39007 \x3d\x3d null)){\n} else {\nvar alias_39010 \x3d temp__5829__auto___39007;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_39010),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_39005,alias_39010))].join(\x27\x27));\n}\n\n\nvar G__39011 \x3d cljs.core.next(seq__38210__$1);\nvar G__39012 \x3d null;\nvar G__39013 \x3d (0);\nvar G__39014 \x3d (0);\nseq__38210 \x3d G__39011;\nchunk__38211 \x3d G__39012;\ncount__38212 \x3d G__39013;\ni__38213 \x3d G__39014;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.merge_ns_info \x3d (function cljs$analyzer$merge_ns_info(old,new$,env){\nif((cljs.core.count(old) \x3e (0))){\nvar deep_merge_keys \x3d new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old,cljs.core.select_keys(new$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null)),cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(old,deep_merge_keys),cljs.core.select_keys(new$,deep_merge_keys)], 0))], 0));\n} else {\nreturn new$;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),(function (_,env,p__38243,___$1,opts){\nvar vec__38244 \x3d p__38243;\nvar seq__38245 \x3d cljs.core.seq(vec__38244);\nvar first__38246 \x3d cljs.core.first(seq__38245);\nvar seq__38245__$1 \x3d cljs.core.next(seq__38245);\nvar ___$2 \x3d first__38246;\nvar first__38246__$1 \x3d cljs.core.first(seq__38245__$1);\nvar seq__38245__$2 \x3d cljs.core.next(seq__38245__$1);\nvar name \x3d first__38246__$1;\nvar args \x3d seq__38245__$2;\nvar form \x3d vec__38244;\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespace declarations must appear at the top-level.\x22);\n}\n\nif((name instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespaces must be named by a symbol.\x22);\n}\n\nvar name__$1 \x3d (function (){var G__38249 \x3d name;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.analyzer.macro_ns_name(G__38249);\n} else {\nreturn G__38249;\n}\n})();\nvar segments_39016 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name__$1),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(segments_39016))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\nvar segment_39017 \x3d cljs.core.some(cljs.analyzer.js_reserved,segments_39016);\nif((!((segment_39017 \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\ncljs.analyzer.find_def_clash(env,name__$1,segments_39016);\n\nvar docstring \x3d ((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27)?cljs.core.first(args):null);\nvar mdocstr \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name__$1));\nvar args__$1 \x3d (((!((docstring \x3d\x3d null))))?cljs.core.next(args):args);\nvar metadata \x3d ((cljs.core.map_QMARK_(cljs.core.first(args__$1)))?cljs.core.first(args__$1):null);\nvar args__$2 \x3d cljs.analyzer.desugar_ns_specs((((!((metadata \x3d\x3d null))))?cljs.core.next(args__$1):args__$1));\nvar map__38253 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args__$2);\nvar map__38253__$1 \x3d cljs.core.__destructure_map(map__38253);\nvar args__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar name__$2 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata);\nvar map__38254 \x3d cljs.analyzer.parse_ns_excludes(env,args__$3);\nvar map__38254__$1 \x3d cljs.core.__destructure_map(map__38254);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38259){\nvar vec__38260 \x3d p__38259;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar valid_forms \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null));\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38255 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38267){\nvar vec__38268 \x3d p__38267;\nvar seq__38269 \x3d cljs.core.seq(vec__38268);\nvar first__38270 \x3d cljs.core.first(seq__38269);\nvar seq__38269__$1 \x3d cljs.core.next(seq__38269);\nvar k \x3d first__38270;\nvar libs \x3d seq__38269__$1;\nvar libspec \x3d vec__38268;\nif(cljs.core.truth_((function (){var fexpr__38272 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null);\nreturn (fexpr__38272.cljs$core$IFn$_invoke$arity$1 ? fexpr__38272.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38272.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only :refer-clojure, :require, :require-macros, :use, :use-macros, and :import libspecs supported. Got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(libspec),\x22 instead.\x22].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var fexpr__38273 \x3d cljs.core.deref(valid_forms);\nreturn (fexpr__38273.cljs$core$IFn$_invoke$arity$1 ? fexpr__38273.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38273.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only one \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 form is allowed per namespace definition\x22].join(\x27\x27));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(valid_forms,cljs.core.disj,k);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5825__auto___39019 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38241_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38241_SHARP_));\n}),libs));\nif(temp__5825__auto___39019){\nvar xs_39020 \x3d temp__5825__auto___39019;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39020),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38242_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38242_SHARP_));\n}),xs_39020)));\n} else {\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38275){\nvar vec__38276 \x3d p__38275;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38276,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$3));\nvar map__38255__$1 \x3d cljs.core.__destructure_map(map__38255);\nvar params \x3d map__38255__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\nvar vec__38256 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec_map){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2),(0),(((cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2)).length) - (7))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38280){\nvar vec__38281 \x3d p__38280;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(1),null);\nvar G__38284 \x3d m;\nif((!(cljs.core.symbol_identical_QMARK_(v,ns)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38284,k,v);\n} else {\nreturn G__38284;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,spec_map);\n} else {\nreturn spec_map;\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [require_macros,use_macros], null));\nvar require_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(0),null);\nvar use_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(1),null);\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name__$2);\n\nvar ns_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros__$1,excludes,name__$2,imports,requires,uses,require_macros__$1,(function (){var or__5025__auto__ \x3d docstring;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn mdocstr;\n}\n})(),as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name__$2], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_info], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38287 \x3d ns_info;\nvar G__38287__$1 \x3d (cljs.core.truth_((function (){var fexpr__38288 \x3d cljs.core.deref(reload);\nreturn (fexpr__38288.cljs$core$IFn$_invoke$arity$1 ? fexpr__38288.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38288.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38289 \x3d cljs.core.deref(reload);\nreturn (fexpr__38289.cljs$core$IFn$_invoke$arity$1 ? fexpr__38289.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38289.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38287);\nif(cljs.core.truth_((function (){var fexpr__38290 \x3d cljs.core.deref(reload);\nreturn (fexpr__38290.cljs$core$IFn$_invoke$arity$1 ? fexpr__38290.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38290.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38291 \x3d cljs.core.deref(reload);\nreturn (fexpr__38291.cljs$core$IFn$_invoke$arity$1 ? fexpr__38291.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38291.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38287__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),(function (_,env,p__38295,___$1,opts){\nvar vec__38296 \x3d p__38295;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(0),null);\nvar quoted_specs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(1),null);\nvar form \x3d vec__38296;\nvar temp__5825__auto___39029 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__38292_SHARP_){\nreturn ((cljs.core.seq_QMARK_(p1__38292_SHARP_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(p1__38292_SHARP_))));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,quoted_specs)));\nif(cljs.core.truth_(temp__5825__auto___39029)){\nvar not_quoted_39030 \x3d temp__5825__auto___39029;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Arguments to \x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22 must be quoted. Offending spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(not_quoted_39030)].join(\x27\x27));\n} else {\n}\n\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Calls to `\x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22` must appear at the top-level.\x22].join(\x27\x27));\n}\n\nvar specs \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.first(quoted_specs)))?cljs.analyzer.canonicalize_import_specs(quoted_specs):cljs.analyzer.canonicalize_specs(quoted_specs));\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar args \x3d cljs.analyzer.desugar_ns_specs((new cljs.core.List(null,specs,null,(1),null)));\nvar map__38300 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args);\nvar map__38300__$1 \x3d cljs.core.__destructure_map(map__38300);\nvar args__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar map__38301 \x3d cljs.analyzer.parse_ns_excludes(env,args__$1);\nvar map__38301__$1 \x3d cljs.core.__destructure_map(map__38301);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38304){\nvar vec__38306 \x3d p__38304;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38302 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38309){\nvar vec__38310 \x3d p__38309;\nvar seq__38311 \x3d cljs.core.seq(vec__38310);\nvar first__38312 \x3d cljs.core.first(seq__38311);\nvar seq__38311__$1 \x3d cljs.core.next(seq__38311);\nvar k \x3d first__38312;\nvar libs \x3d seq__38311__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5829__auto___39036 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38293_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38293_SHARP_));\n}),libs));\nif((temp__5829__auto___39036 \x3d\x3d null)){\n} else {\nvar xs_39038 \x3d temp__5829__auto___39036;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39038),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38294_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38294_SHARP_));\n}),xs_39038)));\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38317){\nvar vec__38318 \x3d p__38317;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38318,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$1));\nvar map__38302__$1 \x3d cljs.core.__destructure_map(map__38302);\nvar params \x3d map__38302__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name);\n\nvar require_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros,excludes,name,imports,requires,uses,require_macros,as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name], null),cljs.analyzer.merge_ns_info,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([require_info,env], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns*\x22,\x22ns*\x22,200417856),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38326 \x3d require_info;\nvar G__38326__$1 \x3d (cljs.core.truth_((function (){var fexpr__38327 \x3d cljs.core.deref(reload);\nreturn (fexpr__38327.cljs$core$IFn$_invoke$arity$1 ? fexpr__38327.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38327.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38328 \x3d cljs.core.deref(reload);\nreturn (fexpr__38328.cljs$core$IFn$_invoke$arity$1 ? fexpr__38328.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38328.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38326);\nif(cljs.core.truth_((function (){var fexpr__38329 \x3d cljs.core.deref(reload);\nreturn (fexpr__38329.cljs$core$IFn$_invoke$arity$1 ? fexpr__38329.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38329.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38330 \x3d cljs.core.deref(reload);\nreturn (fexpr__38330.cljs$core$IFn$_invoke$arity$1 ? fexpr__38330.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38330.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38326__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse_type \x3d (function cljs$analyzer$parse_type(op,env,p__38331){\nvar vec__38332 \x3d p__38331;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(0),null);\nvar tsym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(1),null);\nvar fields \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(2),null);\nvar pmasks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(3),null);\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(4),null);\nvar form \x3d vec__38332;\nvar t \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),tsym));\nvar locals \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,fld){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,fld,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[fld,true,cljs.analyzer.get_col(fld,env),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),cljs.analyzer.get_line(fld,env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),(m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(fld) : m.call(null,fld)),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500)]));\n}),cljs.core.PersistentArrayMap.EMPTY,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fields,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22__meta\x22,\x22__meta\x22,-946752628,null),new cljs.core.Symbol(null,\x22__extmap\x22,\x22__extmap\x22,-1435580931,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null)):fields));\nvar protocols \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tsym));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),tsym], null),(function (m){\nvar m__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),t,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),true,new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024),cljs.core.count(fields),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op)], 0));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m__$1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(tsym),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols], null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(tsym,env)], 0));\n}));\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22pmasks\x22,\x22pmasks\x22,-871416698),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22fields\x22,\x22fields\x22,-1932066230),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22t\x22,\x22t\x22,-1397832519),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),pmasks,cljs.core.disj.cljs$core$IFn$_invoke$arity$2(protocols,new cljs.core.Symbol(\x22cljs.core\x22,\x22Object\x22,\x22cljs.core/Object\x22,-345545431,null)),fields,op,env,t,form,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),(function (){var G__38338 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals);\nvar G__38339 \x3d body;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38338,G__38339) : cljs.analyzer.analyze.call(null,G__38338,G__38339));\n})()]);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22deftype\x22,\x22deftype\x22,340294561),env,form);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),env,form);\n}));\ncljs.analyzer.property_symbol_QMARK_ \x3d (function cljs$analyzer$property_symbol_QMARK_(p1__38340_SHARP_){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (p1__38340_SHARP_ instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nreturn cljs.core.re_matches(/^-.*/,cljs.core.name(p1__38340_SHARP_));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.classify_dot_form \x3d (function cljs$analyzer$classify_dot_form(p__38341){\nvar vec__38342 \x3d p__38341;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(0),null);\nvar member \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(2),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((target \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n),((cljs.analyzer.property_symbol_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886):(((member instanceof cljs.core.Symbol))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902):((cljs.core.seq_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642)\n))),(((args \x3d\x3d null))?cljs.core.List.EMPTY:new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n)], null);\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.build_dot_form !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.build_dot_form \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__38349 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__38349.cljs$core$IFn$_invoke$arity$0 ? fexpr__38349.cljs$core$IFn$_invoke$arity$0() : fexpr__38349.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22build-dot-form\x22),(function (p1__38347_SHARP_){\nreturn cljs.analyzer.classify_dot_form(p1__38347_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),cljs.core.List.EMPTY], null),(function (p__38350){\nvar vec__38351 \x3d p__38350;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(2),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22access\x22,\x22cljs.analyzer/access\x22,-1639036494),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(prop).substring((1))),cljs.core.meta(prop))], null);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923)], null),(function (p__38354){\nvar vec__38355 \x3d p__38354;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(2),null);\nthrow (new Error([\x22Cannot provide arguments \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(args),\x22 on property access \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop)].join(\x27\x27)));\n}));\n/**\n * Builds the intermediate method call map used to reason about the parsed form during\n * compilation.\n */\ncljs.analyzer.build_method_call \x3d (function cljs$analyzer$build_method_call(target,meth,args){\nif((meth instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),meth,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),cljs.core.first(meth),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n}\n});\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)], null),(function (p__38358){\nvar vec__38359 \x3d p__38358;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),cljs.core.List.EMPTY], null),(function (p__38362){\nvar vec__38363 \x3d p__38362;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923),cljs.core.List.EMPTY], null),(function (p__38366){\nvar vec__38367 \x3d p__38366;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(0),null);\nvar meth_expr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(2),null);\nreturn cljs.analyzer.build_method_call(target,cljs.core.first(meth_expr),cljs.core.rest(meth_expr));\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (dot_form){\nthrow (new Error([\x22Unknown dot form of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),dot_form)),\x22 with classification \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.classify_dot_form(dot_form))].join(\x27\x27)));\n}));\ncljs.analyzer.analyze_dot \x3d (function cljs$analyzer$analyze_dot(env,target,field,member_PLUS_,form){\nvar v \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,field,member_PLUS_], null);\nvar map__38371 \x3d cljs.analyzer.build_dot_form.cljs$core$IFn$_invoke$arity$1(v);\nvar map__38371__$1 \x3d cljs.core.__destructure_map(map__38371);\nvar dot_action \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601));\nvar target__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nvar field__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar targetexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze.call(null,enve,target__$1));\nvar form_meta \x3d cljs.core.meta(form);\nvar target_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(targetexpr);\nvar prop \x3d (function (){var or__5025__auto__ \x3d field__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn method;\n}\n})();\nvar tag \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_tag_QMARK_(target_tag);\nif(and__5023__auto__){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.analyzer.normalize_js_tag(target_tag),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null)),prop);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn null;\n}\n}\n})();\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22constructor\x22,\x22constructor\x22,-313397284,null),prop)) \x26\x26 ((((!(clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop),\x22cljs$\x22)))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22protocol-prop\x22,\x22protocol-prop\x22,-58388138).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(prop)))))))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),cljs.core.first(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),target_tag)){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (target_tag \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__38373 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22], null), null);\nreturn (fexpr__38373.cljs$core$IFn$_invoke$arity$1 ? fexpr__38373.cljs$core$IFn$_invoke$arity$1(target_tag) : fexpr__38373.call(null,target_tag));\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nvar vec__38374_39081 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.identity)(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)));\nvar pre_SINGLEQUOTE__39082 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(0),null);\nvar pre_39083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(1),null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_SINGLEQUOTE__39082);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39083));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,(function (){var G__38377 \x3d pre_SINGLEQUOTE__39082;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null),cljs.core.last(pre_SINGLEQUOTE__39082))){\nreturn cljs.core.butlast(G__38377);\n} else {\nreturn G__38377;\n}\n})())),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n} else {\n}\n} else {\n}\n\nif(cljs.analyzer.js_tag_QMARK_(tag)){\nvar pre_39089 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39089))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre_39089),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n} else {\n}\n\nvar G__38378 \x3d dot_action;\nvar G__38378__$1 \x3d (((G__38378 instanceof cljs.core.Keyword))?G__38378.fqn:null);\nswitch (G__38378__$1) {\ncase \x22cljs.analyzer/access\x22:\nvar children \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn tag;\n}\n})():tag)], null);\n\nbreak;\ncase \x22cljs.analyzer/call\x22:\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38370_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38370_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38370_SHARP_));\n}),args);\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null);\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),method,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n})():tag)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__38378__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(function (_,env,p__38379,___$1,___$2){\nvar vec__38380 \x3d p__38379;\nvar seq__38381 \x3d cljs.core.seq(vec__38380);\nvar first__38382 \x3d cljs.core.first(seq__38381);\nvar seq__38381__$1 \x3d cljs.core.next(seq__38381);\nvar ___$3 \x3d first__38382;\nvar first__38382__$1 \x3d cljs.core.first(seq__38381__$1);\nvar seq__38381__$2 \x3d cljs.core.next(seq__38381__$1);\nvar target \x3d first__38382__$1;\nvar vec__38383 \x3d seq__38381__$2;\nvar seq__38384 \x3d cljs.core.seq(vec__38383);\nvar first__38385 \x3d cljs.core.first(seq__38384);\nvar seq__38384__$1 \x3d cljs.core.next(seq__38384);\nvar field \x3d first__38385;\nvar member_PLUS_ \x3d seq__38384__$1;\nvar form \x3d vec__38380;\nvar _STAR_recur_frames_STAR__orig_val__38386 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38387 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38387);\n\ntry{return cljs.analyzer.analyze_dot(env,target,field,member_PLUS_,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38386);\n}}));\ncljs.analyzer.get_js_tag \x3d (function cljs$analyzer$get_js_tag(form){\nvar form_meta \x3d cljs.core.meta(form);\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nif(new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta) \x3d\x3d\x3d true){\nreturn new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\n} else {\nreturn null;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.js_star_interp \x3d (function cljs$analyzer$js_star_interp(env,s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nvar inner \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_existing_var(env,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,((2) + idx),end))));\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),cljs.core.cons(inner,(function (){var G__38394 \x3d env;\nvar G__38395 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2(G__38394,G__38395) : cljs.analyzer.js_star_interp.call(null,G__38394,G__38395));\n})()));\n}),null,null));\n}\n});\ncljs.analyzer.js_star_seg \x3d (function cljs$analyzer$js_star_seg(s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),(function (){var G__38398 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1(G__38398) : cljs.analyzer.js_star_seg.call(null,G__38398));\n})());\n}),null,null));\n}\n});\ncljs.analyzer.NUMERIC_SET \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null),\x22null\x22,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null),\x22null\x22,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),\x22null\x22], null), null);\ncljs.analyzer.numeric_type_QMARK_ \x3d (function cljs$analyzer$numeric_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif((((t instanceof cljs.core.Symbol)) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.NUMERIC_SET,t) \x3d\x3d null)))))){\nreturn true;\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn ((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))) || (cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))))))))));\n} else {\nreturn null;\n}\n}\n\n}\n}\n}\n});\ncljs.analyzer.array_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22,new cljs.core.Symbol(null,\x22floats\x22,\x22floats\x22,513591110,null),\x22null\x22,new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null),\x22null\x22,new cljs.core.Symbol(null,\x22objects\x22,\x22objects\x22,-554722035,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null),\x22null\x22,new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),\x22null\x22,new cljs.core.Symbol(null,\x22ints\x22,\x22ints\x22,-1761239845,null),\x22null\x22,new cljs.core.Symbol(null,\x22shorts\x22,\x22shorts\x22,107738238,null),\x22null\x22,new cljs.core.Symbol(null,\x22bytes\x22,\x22bytes\x22,-1478569089,null),\x22null\x22], null), null);\ncljs.analyzer.array_type_QMARK_ \x3d (function cljs$analyzer$array_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),t)){\nreturn true;\n} else {\nif(cljs.core.contains_QMARK_(cljs.analyzer.array_types,t)){\nreturn true;\n} else {\nreturn cljs.core.boolean$(((cljs.analyzer.impl.cljs_set_QMARK_(t))?(function (){var or__5025__auto__ \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.some(cljs.analyzer.array_types,t);\n}\n}\n})():null));\n\n}\n}\n}\n}\n}\n});\ncljs.analyzer.analyze_js_star_args \x3d (function cljs$analyzer$analyze_js_star_args(js_op,env,args){\nreturn cljs.core.first(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__38404,arg){\nvar vec__38405 \x3d p__38404;\nvar argexprs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(0),null);\nvar env__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argexprs,(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env__$1,arg) : cljs.analyzer.analyze.call(null,env__$1,arg))),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(js_op,new cljs.core.Symbol(\x22cljs.core\x22,\x22and\x22,\x22cljs.core/and\x22,-6692549,null)))?cljs.analyzer.set_test_induced_tags(env__$1,arg):env__$1)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentVector.EMPTY,env], null),args));\n});\ncljs.analyzer.analyze_js_star_STAR_ \x3d (function cljs$analyzer$analyze_js_star_STAR_(env,jsform,args,form){\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar form_meta \x3d cljs.core.meta(form);\nvar segs \x3d cljs.analyzer.js_star_seg(jsform);\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar argexprs \x3d cljs.analyzer.analyze_js_star_args(js_op,enve,args);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar validate \x3d (function (warning_type,valid_types_QMARK_){\nvar types \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38408_SHARP_){\nreturn cljs.analyzer.infer_tag(env,p1__38408_SHARP_);\n}),argexprs);\nif(cljs.core.truth_((valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1(types) : valid_types_QMARK_.call(null,types)))){\nreturn null;\n} else {\nreturn cljs.analyzer.warning(warning_type,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,types)], null));\n}\n});\nvar op_match_QMARK_ \x3d (function (sym){\nreturn cljs.core.symbol_identical_QMARK_(sym,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta));\n});\nif(numeric \x3d\x3d\x3d true){\nvalidate(new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (p1__38409_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,p1__38409_SHARP_);\n}));\n} else {\n}\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)],[argexprs,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),numeric,segs,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),env,js_op,form,tag]);\n});\ncljs.analyzer.analyze_js_star \x3d (function cljs$analyzer$analyze_js_star(env,jsform,args,form){\nvar _STAR_recur_frames_STAR__orig_val__38415 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38416 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38416);\n\ntry{return cljs.analyzer.analyze_js_star_STAR_(env,jsform,args,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38415);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),(function (op,env,p__38421,_,___$1){\nvar vec__38422 \x3d p__38421;\nvar seq__38423 \x3d cljs.core.seq(vec__38422);\nvar first__38424 \x3d cljs.core.first(seq__38423);\nvar seq__38423__$1 \x3d cljs.core.next(seq__38423);\nvar ___$2 \x3d first__38424;\nvar first__38424__$1 \x3d cljs.core.first(seq__38423__$1);\nvar seq__38423__$2 \x3d cljs.core.next(seq__38423__$1);\nvar jsform \x3d first__38424__$1;\nvar args \x3d seq__38423__$2;\nvar form \x3d vec__38422;\nif(typeof jsform \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid js* form\x22);\n}\n\nif((!((args \x3d\x3d null)))){\nreturn cljs.analyzer.analyze_js_star(env,jsform,args,form);\n} else {\nvar code \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.analyzer.js_star_interp(env,jsform));\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar form_meta \x3d cljs.core.meta(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),code,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),numeric], null);\n}\n}));\ncljs.analyzer.unsorted_map_QMARK_ \x3d (function cljs$analyzer$unsorted_map_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 ((!(cljs.core.sorted_QMARK_(x)))));\n});\n/**\n * Mark a form as being analyzed. Assumes x satisfies IMeta. Useful to suppress\n * warnings that will have been caught by a first compiler pass.\n */\ncljs.analyzer.analyzed \x3d (function cljs$analyzer$analyzed(x){\nif(cljs.analyzer.unsorted_map_QMARK_(x)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n} else {\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(x,cljs.core.assoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n\n}\n});\n/**\n * Returns boolean if the form has already been marked as analyzed.\n */\ncljs.analyzer.analyzed_QMARK_ \x3d (function cljs$analyzer$analyzed_QMARK_(x){\nreturn cljs.core.boolean$(((cljs.analyzer.unsorted_map_QMARK_(x))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(x):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x))\n));\n});\ncljs.analyzer.all_values_QMARK_ \x3d (function cljs$analyzer$all_values_QMARK_(exprs){\nreturn cljs.core.every_QMARK_((function (p1__38429_SHARP_){\nreturn (((p1__38429_SHARP_ \x3d\x3d null)) || ((((p1__38429_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27string\x27) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27number\x27) || (((p1__38429_SHARP_ \x3d\x3d\x3d true) || (p1__38429_SHARP_ \x3d\x3d\x3d false))))))))));\n}),exprs);\n});\ncljs.analyzer.valid_arity_QMARK_ \x3d (function cljs$analyzer$valid_arity_QMARK_(argc,method_params){\nreturn (((method_params \x3d\x3d null)) || (cljs.core.boolean$(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([argc]),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,method_params)))));\n});\ncljs.analyzer.record_tag_QMARK_ \x3d (function cljs$analyzer$record_tag_QMARK_(tag){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (tag instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((cljs.core.namespace(tag) \x3d\x3d null)));\nif(and__5023__auto____$1){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(tag)),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859)], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.record_basis \x3d (function cljs$analyzer$record_basis(tag){\nvar positional_factory \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22-\x3e\x22,cljs.core.name(tag)].join(\x27\x27));\nvar fields \x3d cljs.core.first(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),positional_factory,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179)], null)));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,fields);\n});\ncljs.analyzer.record_with_field_QMARK_ \x3d (function cljs$analyzer$record_with_field_QMARK_(tag,field){\nreturn ((cljs.analyzer.record_tag_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(cljs.analyzer.record_basis(tag),field)));\n});\ncljs.analyzer.invalid_arity_QMARK_ \x3d (function cljs$analyzer$invalid_arity_QMARK_(argc,method_params,variadic,max_fixed_arity){\nvar and__5023__auto__ \x3d (!(cljs.analyzer.valid_arity_QMARK_(argc,method_params)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core.not(variadic);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d variadic;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn (argc \x3c max_fixed_arity);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.parse_invoke_STAR_ \x3d (function cljs$analyzer$parse_invoke_STAR_(env,p__38437){\nvar vec__38438 \x3d p__38437;\nvar seq__38439 \x3d cljs.core.seq(vec__38438);\nvar first__38440 \x3d cljs.core.first(seq__38439);\nvar seq__38439__$1 \x3d cljs.core.next(seq__38439);\nvar f \x3d first__38440;\nvar args \x3d seq__38439__$1;\nvar form \x3d vec__38438;\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar fexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,f) : cljs.analyzer.analyze.call(null,enve,f));\nvar argc \x3d cljs.core.count(args);\nvar fn_var_QMARK_ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\n}\n})();\nvar kw_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar cur_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar HO_invoke_QMARK_ \x3d ((cljs.core.boolean$(cljs.analyzer._STAR_cljs_static_fns_STAR_)) \x26\x26 (((cljs.core.not(fn_var_QMARK_)) \x26\x26 ((((!(cljs.analyzer.js_tag_QMARK_(f)))) \x26\x26 ((((!(kw_QMARK_))) \x26\x26 ((!(cljs.analyzer.analyzed_QMARK_(f)))))))))));\nvar bind_f_expr_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!((f instanceof cljs.core.Symbol)))));\nvar bind_args_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!(cljs.analyzer.all_values_QMARK_(args)))));\nif(fn_var_QMARK_){\nvar map__38441_39147 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr);\nvar map__38441_39148__$1 \x3d cljs.core.__destructure_map(map__38441_39147);\nvar variadic_39149 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity_39150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params_39151 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar name_39152 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar ns_39153 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar macro_39154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not((function (){var and__5023__auto__ \x3d goog.string.endsWith(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cur_ns),\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.symbol_identical_QMARK_(cur_ns,ns_39153)) \x26\x26 (macro_39154 \x3d\x3d\x3d true));\n} else {\nreturn and__5023__auto__;\n}\n})());\nif(and__5023__auto__){\nreturn cljs.analyzer.invalid_arity_QMARK_(argc,method_params_39151,variadic_39149,max_fixed_arity_39150);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39152,new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n} else {\n}\n\nif(((kw_QMARK_) \x26\x26 ((!(((((1) \x3d\x3d\x3d argc)) || (((2) \x3d\x3d\x3d argc)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.first(form),new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n\nvar deprecated_QMARK__39160 \x3d new cljs.core.Keyword(null,\x22deprecated\x22,\x22deprecated\x22,1498275348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar no_warn_QMARK__39161 \x3d new cljs.core.Keyword(null,\x22deprecation-nowarn\x22,\x22deprecation-nowarn\x22,-1762828044).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nif(((cljs.core.boolean$(deprecated_QMARK__39160)) \x26\x26 ((!(cljs.core.boolean$(no_warn_QMARK__39161)))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif(((bind_args_QMARK_) || (bind_f_expr_QMARK_))){\nvar arg_syms \x3d ((bind_args_QMARK_)?cljs.core.take.cljs$core$IFn$_invoke$arity$2(argc,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym)):null);\nvar f_sym \x3d ((bind_f_expr_QMARK_)?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22fexpr__\x22):null);\nvar bindings \x3d (function (){var G__38445 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38445__$1 \x3d ((bind_args_QMARK_)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__38445,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arg_syms,args)):G__38445);\nif(bind_f_expr_QMARK_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__38445__$1,f_sym,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.analyzed(f)], 0));\n} else {\nreturn G__38445__$1;\n}\n})();\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar G__38446 \x3d env;\nvar G__38447 \x3d 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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(bindings)))),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$2((new cljs.core.List(null,cljs.analyzer.analyzed(((bind_f_expr_QMARK_)?f_sym:f)),null,(1),null)),((bind_args_QMARK_)?arg_syms:args)))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag], null)),null,(1),null))], 0))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38446,G__38447) : cljs.analyzer.analyze.call(null,G__38446,G__38447));\n} else {\nvar ana_expr \x3d (function (p1__38436_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38436_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38436_SHARP_));\n});\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(ana_expr,args);\nif((((((f instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(f) \x3d\x3d null)))) \x26\x26 (((((1) \x3d\x3d\x3d cljs.core.count(args))) \x26\x26 (cljs.analyzer.record_with_field_QMARK_(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.first(argexprs)),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(f)))))))){\nvar field_access_form \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22.-\x22,cljs.core.name(f)].join(\x27\x27)),args);\nvar _STAR_cljs_warnings_STAR__orig_val__38448 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38449 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38449);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,field_access_form) : cljs.analyzer.analyze.call(null,env,field_access_form));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38448);\n}} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null)], null);\n}\n}\n});\ncljs.analyzer.parse_invoke \x3d (function cljs$analyzer$parse_invoke(env,form){\nvar _STAR_recur_frames_STAR__orig_val__38450 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38451 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38451);\n\ntry{return cljs.analyzer.parse_invoke_STAR_(env,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38450);\n}});\ncljs.analyzer.desugar_dotted_expr \x3d (function cljs$analyzer$desugar_dotted_expr(p__38452){\nvar map__38453 \x3d p__38452;\nvar map__38453__$1 \x3d cljs.core.__destructure_map(map__38453);\nvar expr \x3d map__38453__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38453__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__38454 \x3d op;\nvar G__38454__$1 \x3d (((G__38454 instanceof cljs.core.Keyword))?G__38454.fqn:null);\nswitch (G__38454__$1) {\ncase \x22var\x22:\ncase \x22local\x22:\nif(cljs.analyzer.dotted_symbol_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr))))){\nvar s \x3d cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr));\nvar idx \x3d s.lastIndexOf(\x22.\x22);\nvar _ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((idx + (1)),((s).length)))?null:(function(){throw (new Error(\x22Assert failed: (not\x3d (inc idx) (count s))\x22))})());\nvar prefix \x3d cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx)),cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr)));\nvar field \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1))));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(expr))){\n} else {\nthrow (new Error(\x22Assert failed: (not (:const-expr expr))\x22));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(new cljs.core.List(null,prefix,(new cljs.core.List(null,field,null,(1),null)),(2),null)),(3),null)),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),(function (){var G__38455 \x3d cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(expr,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),prefix,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),prefix], 0)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)], null),prefix),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nreturn (cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1(G__38455) : cljs.analyzer.desugar_dotted_expr.call(null,G__38455));\n})(),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null)], null);\n} else {\nreturn expr;\n}\n\nbreak;\ndefault:\nreturn expr;\n\n}\n});\n/**\n * Finds the var associated with sym\n */\ncljs.analyzer.analyze_symbol \x3d (function cljs$analyzer$analyze_symbol(env,sym){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nvar G__38456 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38456) : cljs.analyzer.analyze_wrap_meta.call(null,G__38456));\n} else {\nvar map__38457 \x3d cljs.core.meta(sym);\nvar map__38457__$1 \x3d cljs.core.__destructure_map(map__38457);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar env__$1 \x3d (((!((line \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):env);\nvar env__$2 \x3d (((!((column \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column):env__$1);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$2,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym], null);\nvar lcls \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env__$2);\nvar temp__5827__auto__ \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(lcls,sym));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar sym_meta \x3d cljs.core.meta(sym);\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar cur_ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$2)));\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,\x22cljs.core\x22);\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d goog.string.endsWith(cur_ns,\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn ((cljs.core.not(goog.string.endsWith(sym_ns,\x22$macros\x22))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cur_ns,(0),(((cur_ns).length) - (7))))));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2([sym_ns,\x22$macros\x22].join(\x27\x27),cljs.core.name(sym)):sym);\nvar info \x3d (((!(cljs.core.contains_QMARK_(sym_meta,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162)))))?cljs.analyzer.resolve_existing_var(env__$2,sym__$1):cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info)),\x22\\n\x22,\x22(:op info)\x22].join(\x27\x27)));\n}\n\nreturn cljs.analyzer.desugar_dotted_expr((((!(new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377).cljs$core$IFn$_invoke$arity$1(env__$2) \x3d\x3d\x3d true)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info),cljs.core.select_keys(info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null)),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar const_expr \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})()], 0)):(function (){var info__$1 \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info__$1], 0)),cljs.core.select_keys(info__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0));\n})()));\n} else {\nvar lb \x3d temp__5827__auto__;\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),lb], 0)),((cljs.core.map_QMARK_(lb))?cljs.core.select_keys(lb,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)):null)], 0));\n}\n}\n});\ncljs.analyzer.excluded_QMARK_ \x3d (function cljs$analyzer$excluded_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.used_QMARK_ \x3d (function cljs$analyzer$used_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.get_expander_ns \x3d (function cljs$analyzer$get_expander_ns(env,nstr){\nvar res \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\n}\n})();\nvar nstr__$1 \x3d (((!((res \x3d\x3d null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(res):nstr);\nif((\x22clojure.core\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM);\n} else {\nif((\x22clojure.repl\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(new cljs.core.Symbol(null,\x22cljs.repl\x22,\x22cljs.repl\x22,1767065658,null));\n} else {\nif(cljs.core.truth_(goog.string.contains(nstr__$1,\x22.\x22))){\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n} else {\nvar or__5025__auto__ \x3d (function (){var G__38458 \x3d env;\nvar G__38458__$1 \x3d (((G__38458 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38458));\nvar G__38458__$2 \x3d (((G__38458__$1 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(G__38458__$1));\nvar G__38458__$3 \x3d (((G__38458__$2 \x3d\x3d null))?null:cljs.core.get.cljs$core$IFn$_invoke$arity$2(G__38458__$2,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1)));\nif((G__38458__$3 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.find_macros_ns(G__38458__$3);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n}\n\n}\n}\n}\n});\ncljs.analyzer.get_expander_STAR_ \x3d (function cljs$analyzer$get_expander_STAR_(sym,env){\nif((((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),sym) \x3d\x3d null)))) || (((cljs.analyzer.excluded_QMARK_(env,sym)) \x26\x26 ((!(cljs.analyzer.used_QMARK_(env,sym)))))))){\nreturn null;\n} else {\nvar nstr \x3d cljs.core.namespace(sym);\nif((!((nstr \x3d\x3d null)))){\nvar ns \x3d cljs.analyzer.get_expander_ns(env,nstr);\nif((!((ns \x3d\x3d null)))){\nreturn ns.findInternedVar(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\n} else {\nreturn null;\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym);\nvar nsym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym__$1);\n} else {\nvar nsym \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym);\nif((((!((nsym \x3d\x3d null)))) \x26\x26 ((nsym instanceof cljs.core.Symbol)))){\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym);\n} else {\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM).findInternedVar(sym);\n}\n\n}\n}\n}\n});\n/**\n * Given a sym, a symbol identifying a macro, and env, an analysis environment\n * return the corresponding Clojure macroexpander.\n */\ncljs.analyzer.get_expander \x3d (function cljs$analyzer$get_expander(sym,env){\nvar mvar \x3d cljs.analyzer.get_expander_STAR_(sym,env);\nif((((!((mvar \x3d\x3d null)))) \x26\x26 (mvar.isMacro()))){\nreturn mvar;\n} else {\nreturn null;\n}\n});\nvar cached_var_39201 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)),new cljs.core.Symbol(null,\x22macroexpand-check\x22,\x22macroexpand-check\x22,699092091,null));\n}),null));\ncljs.analyzer.get_macroexpand_check_var \x3d (function cljs$analyzer$get_macroexpand_check_var(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)) \x3d\x3d null)))){\nreturn cljs.core.deref(cached_var_39201);\n} else {\nreturn null;\n}\n});\ncljs.analyzer.var__GT_sym \x3d (function cljs$analyzer$var__GT_sym(var$){\nreturn var$.sym;\n});\ncljs.analyzer.do_macroexpand_check \x3d (function cljs$analyzer$do_macroexpand_check(env,form,mac_var){\nif(cljs.core.not(new cljs.core.Keyword(null,\x22spec-skip-macros\x22,\x22spec-skip-macros\x22,-645015958).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_))))){\nvar mchk \x3d cljs.analyzer.get_macroexpand_check_var();\nif((!((mchk \x3d\x3d null)))){\ntry{var G__38460 \x3d mac_var;\nvar G__38461 \x3d cljs.core.next(form);\nreturn (mchk.cljs$core$IFn$_invoke$arity$2 ? mchk.cljs$core$IFn$_invoke$arity$2(G__38460,G__38461) : mchk.call(null,G__38460,G__38461));\n}catch (e38459){var e \x3d e38459;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macro-syntax-check\x22,\x22macro-syntax-check\x22,2072602373),cljs.analyzer.var__GT_sym(mac_var)),e);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.check_macro_arity \x3d (function cljs$analyzer$check_macro_arity(mac_var,form){\nvar mac_sym \x3d mac_var.sym;\nvar temp__5825__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_sym)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_sym))], null));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__38463 \x3d temp__5825__auto__;\nvar map__38463__$1 \x3d cljs.core.__destructure_map(map__38463);\nvar variadic_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar argc \x3d cljs.core.count(cljs.core.rest(form));\nvar offset \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22\x26form\x22,\x22\x26form\x22,1482799337,null),cljs.core.ffirst(method_params)))?(2):(0));\nif(cljs.core.truth_(cljs.analyzer.invalid_arity_QMARK_(argc,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38462_SHARP_){\nreturn cljs.core.nthrest(p1__38462_SHARP_,offset);\n}),method_params),variadic_QMARK_,(cljs.core.truth_(max_fixed_arity)?(max_fixed_arity - offset):null)))){\nthrow (new Error(cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),mac_sym], null))));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.macroexpand_1_STAR_ \x3d (function cljs$analyzer$macroexpand_1_STAR_(env,form){\nif(cljs.core.seq_QMARK_(form)){\nvar op \x3d cljs.core.first(form);\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),op)){\ncljs.analyzer.do_macroexpand_check(env,form,cljs.analyzer.get_expander(new cljs.core.Symbol(\x22cljs.core\x22,\x22ns-special-form\x22,\x22cljs.core/ns-special-form\x22,1585185745,null),env));\n} else {\n}\n\nreturn form;\n} else {\nvar temp__5827__auto__ \x3d (((op instanceof cljs.core.Symbol))?cljs.analyzer.get_expander(op,env):null);\nif((temp__5827__auto__ \x3d\x3d null)){\nif((op instanceof cljs.core.Symbol)){\nvar opname \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(op);\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((0)))){\nvar vec__38464 \x3d cljs.core.next(form);\nvar seq__38465 \x3d cljs.core.seq(vec__38464);\nvar first__38466 \x3d cljs.core.first(seq__38465);\nvar seq__38465__$1 \x3d cljs.core.next(seq__38465);\nvar target \x3d first__38466;\nvar args \x3d seq__38465__$1;\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(cljs.analyzer.impl.DOT_SYM,target,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(opname,(1))),args),cljs.core.meta(form));\n} else {\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((opname.length - (1))))){\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.impl.NEW_SYM,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(opname,(0),(((opname).length) - (1)))),cljs.core.next(form)),cljs.core.meta(form));\n} else {\nreturn form;\n\n}\n}\n} else {\nreturn form;\n}\n} else {\nvar mac_var \x3d temp__5827__auto__;\ncljs.analyzer.do_macroexpand_check(env,form,mac_var);\n\nvar form_SINGLEQUOTE_ \x3d (function (){try{cljs.analyzer.check_macro_arity(mac_var,form);\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(mac_var),form,env,cljs.core.rest(form));\n}catch (e38467){var e \x3d e38467;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macroexpansion\x22,\x22macroexpansion\x22,706274075),cljs.analyzer.var__GT_sym(mac_var)),e);\n}})();\nif(cljs.analyzer.impl.cljs_seq_QMARK_(form_SINGLEQUOTE_)){\nvar sym_SINGLEQUOTE_ \x3d cljs.core.first(form_SINGLEQUOTE_);\nvar sym \x3d cljs.core.first(form);\nif(cljs.core.symbol_identical_QMARK_(sym_SINGLEQUOTE_,cljs.analyzer.impl.JS_STAR_SYM)){\nvar sym__$1 \x3d (((!((cljs.core.namespace(sym) \x3d\x3d null))))?sym:cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)));\nvar js_op \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),sym__$1], null);\nvar numeric \x3d (function (){var mac_var_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_var.sym));\nvar mac_var_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_var.sym));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),mac_var_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),mac_var_name,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22numeric\x22,\x22cljs.analyzer/numeric\x22,1415704188)], null));\n})();\nvar js_op__$1 \x3d ((numeric \x3d\x3d\x3d true)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),true):js_op);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(form_SINGLEQUOTE_,cljs.core.merge,js_op__$1);\n} else {\nreturn form_SINGLEQUOTE_;\n}\n} else {\nreturn form_SINGLEQUOTE_;\n}\n}\n}\n} else {\nreturn form;\n}\n});\n/**\n * Given a env, an analysis environment, and form, a ClojureScript form,\n * macroexpand the form once.\n */\ncljs.analyzer.macroexpand_1 \x3d (function cljs$analyzer$macroexpand_1(env,form){\ntry{return cljs.analyzer.macroexpand_1_STAR_(env,form);\n}catch (e38468){var err__8939__auto__ \x3d e38468;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq_STAR_ \x3d (function cljs$analyzer$analyze_seq_STAR_(op,env,form,name,opts){\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nreturn cljs.analyzer.parse.cljs$core$IFn$_invoke$arity$5(op,env,form,name,opts);\n} else {\nreturn cljs.analyzer.parse_invoke(env,form);\n}\n});\ncljs.analyzer.analyze_seq_STAR__wrap \x3d (function cljs$analyzer$analyze_seq_STAR__wrap(op,env,form,name,opts){\ntry{return cljs.analyzer.analyze_seq_STAR_(op,env,form,name,opts);\n}catch (e38469){var err__8939__auto__ \x3d e38469;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq \x3d (function cljs$analyzer$analyze_seq(var_args){\nvar G__38471 \x3d arguments.length;\nswitch (G__38471) {\ncase 3:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\nreturn (cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze_list.call(null,env,form));\n} else {\nvar line \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar line__$1 \x3d (((line \x3d\x3d null))?new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env):line);\nvar col \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar col__$1 \x3d (((col \x3d\x3d null))?new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env):col);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col__$1], 0));\nvar op \x3d cljs.core.first(form);\nif((op \x3d\x3d null)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,\x22Can\x27t call nil\x22);\n} else {\n}\n\nvar mform \x3d cljs.analyzer.macroexpand_1(env__$1,form);\nif((form \x3d\x3d\x3d mform)){\nreturn cljs.analyzer.analyze_seq_STAR__wrap(op,env__$1,form,name,opts);\n} else {\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,mform,name,opts) : cljs.analyzer.analyze.call(null,env__$1,mform,name,opts));\n}\n}\n}));\n\n(cljs.analyzer.analyze_seq.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.analyze_map \x3d (function cljs$analyzer$analyze_map(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ks \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38474 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38475 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38475);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38472_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38472_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38472_SHARP_));\n}),cljs.core.keys(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38474);\n}})();\nvar vs \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38476 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38477 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38477);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38473_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38473_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38473_SHARP_));\n}),cljs.core.vals(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38476);\n}})();\nvar G__38478 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),ks,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMap\x22,\x22cljs.core/IMap\x22,1407777598,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38478) : cljs.analyzer.analyze_wrap_meta.call(null,G__38478));\n});\ncljs.analyzer.analyze_list \x3d (function cljs$analyzer$analyze_list(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38480 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38481 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38481);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38479_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38479_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38479_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38480);\n}})();\nvar G__38482 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38482) : cljs.analyzer.analyze_wrap_meta.call(null,G__38482));\n});\ncljs.analyzer.analyze_vector \x3d (function cljs$analyzer$analyze_vector(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38484 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38485 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38485);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38483_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38483_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38483_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38484);\n}})();\nvar G__38486 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IVector\x22,\x22cljs.core/IVector\x22,1711112835,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38486) : cljs.analyzer.analyze_wrap_meta.call(null,G__38486));\n});\ncljs.analyzer.analyze_set \x3d (function cljs$analyzer$analyze_set(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38488 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38489 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38489);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38487_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38487_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38487_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38488);\n}})();\nvar G__38490 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISet\x22,\x22cljs.core/ISet\x22,2003412810,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38490) : cljs.analyzer.analyze_wrap_meta.call(null,G__38490));\n});\ncljs.analyzer.analyze_js_value \x3d (function cljs$analyzer$analyze_js_value(env,form){\nvar val \x3d form.val;\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nif(cljs.core.map_QMARK_(val)){\nvar keys \x3d cljs.core.vec(cljs.core.keys(val));\nvar vals \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38493 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38494 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38494);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38491_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38491_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38491_SHARP_));\n}),cljs.core.vals(val));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38493);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-object\x22,\x22js-object\x22,1830199158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),keys,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vals,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null)], null);\n} else {\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38495 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38496 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38496);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38492_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38492_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38492_SHARP_));\n}),val);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38495);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-array\x22,\x22js-array\x22,-1210185421),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null)], null);\n}\n});\ncljs.analyzer.record_ns_PLUS_name \x3d (function cljs$analyzer$record_ns_PLUS_name(x){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0)),/\\//));\n});\ncljs.analyzer.analyze_record \x3d (function cljs$analyzer$analyze_record(env,x){\nvar _items_ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38501 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38502 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38502);\n\ntry{var G__38503 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__38504 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38503,G__38504) : cljs.analyzer.analyze.call(null,G__38503,G__38504));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38501);\n}})();\nvar vec__38498 \x3d cljs.analyzer.record_ns_PLUS_name(x);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),x,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null);\n});\ncljs.analyzer.elide_reader_meta \x3d (function cljs$analyzer$elide_reader_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0));\n});\ncljs.analyzer.elide_analyzer_meta \x3d (function cljs$analyzer$elide_analyzer_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162));\n});\ncljs.analyzer.elide_irrelevant_meta \x3d (function cljs$analyzer$elide_irrelevant_meta(m){\nreturn cljs.analyzer.elide_analyzer_meta(cljs.analyzer.elide_reader_meta(m));\n});\ncljs.analyzer.analyze_wrap_meta \x3d (function cljs$analyzer$analyze_wrap_meta(expr){\nvar form \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr);\nvar m \x3d cljs.analyzer.elide_irrelevant_meta(cljs.core.meta(form));\nif((!((cljs.core.seq(m) \x3d\x3d null)))){\nvar env \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr);\nvar expr__$1 \x3d cljs.core.assoc_in(expr,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar meta_expr \x3d cljs.analyzer.analyze_map(new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr__$1),m);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22with-meta\x22,\x22with-meta\x22,-1566856820),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),meta_expr,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n} else {\nreturn expr;\n}\n});\ncljs.analyzer.infer_type \x3d (function cljs$analyzer$infer_type(env,p__38506,_){\nvar map__38507 \x3d p__38506;\nvar map__38507__$1 \x3d cljs.core.__destructure_map(map__38507);\nvar ast \x3d map__38507__$1;\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38507__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif((((tag \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),tag)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),(function (ms){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__38505_SHARP_){\nreturn (cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3(env,p1__38505_SHARP_,_) : cljs.analyzer.infer_type.call(null,env,p1__38505_SHARP_,_));\n})),ms);\n}));\n} else {\nvar temp__5827__auto__ \x3d cljs.analyzer.infer_tag(env,ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn ast;\n} else {\nvar tag__$1 \x3d temp__5827__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1);\n}\n}\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.repl_self_require_QMARK_ \x3d (function cljs$analyzer$repl_self_require_QMARK_(env,deps){\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22repl-env\x22,\x22repl-env\x22,-1976503928).cljs$core$IFn$_invoke$arity$1(env);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.analyzer._STAR_cljs_ns_STAR_]),deps);\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.invoke_arg_type_validators \x3d (function (){var aget_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38508_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38508_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.rest(p1__38508_SHARP_))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nvar aset_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38509_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38509_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.butlast(cljs.core.rest(p1__38509_SHARP_)))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),aset_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),aset_validator], null);\n})();\ncljs.analyzer.check_invoke_arg_types \x3d (function cljs$analyzer$check_invoke_arg_types(env,p__38510,opts){\nvar map__38511 \x3d p__38510;\nvar map__38511__$1 \x3d cljs.core.__destructure_map(map__38511);\nvar ast \x3d map__38511__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38511__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif((((!(cljs.analyzer.analyzed_QMARK_(ast)))) \x26\x26 (cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),op)))){\nvar temp__5829__auto___39264 \x3d cljs.core.find(cljs.analyzer.invoke_arg_type_validators,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(ast))));\nif((temp__5829__auto___39264 \x3d\x3d null)){\n} else {\nvar vec__38512_39271 \x3d temp__5829__auto___39264;\nvar name_39272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(0),null);\nvar map__38515_39273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(1),null);\nvar map__38515_39274__$1 \x3d cljs.core.__destructure_map(map__38515_39273);\nvar valid_QMARK__39275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379));\nvar warning_type_39276 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595));\nvar types_39277 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(ast));\nif(cljs.core.truth_((valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1(types_39277) : valid_QMARK__39275.call(null,types_39277)))){\n} else {\ncljs.analyzer.warning(warning_type_39276,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39272,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),types_39277], null));\n}\n}\n} else {\n}\n\nreturn cljs.analyzer.analyzed(ast);\n});\ncljs.analyzer.analyze_form \x3d (function cljs$analyzer$analyze_form(env,form,name,opts){\nif((form instanceof cljs.core.Symbol)){\nreturn cljs.analyzer.analyze_symbol(env,form);\n} else {\nif(((cljs.analyzer.impl.cljs_seq_QMARK_(form)) \x26\x26 ((!((cljs.core.seq(form) \x3d\x3d null)))))){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,opts);\n} else {\nif(cljs.core.record_QMARK_(form)){\nreturn cljs.analyzer.analyze_record(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_map_QMARK_(form)){\nreturn cljs.analyzer.analyze_map(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_vector_QMARK_(form)){\nreturn cljs.analyzer.analyze_vector(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(form)){\nreturn cljs.analyzer.analyze_set(env,form);\n} else {\nif((form instanceof cljs.core.Keyword)){\nreturn cljs.analyzer.analyze_keyword(env,form);\n} else {\nif((form instanceof cljs.tagged_literals.JSValue)){\nreturn cljs.analyzer.analyze_js_value(env,form);\n} else {\nvar tag \x3d (((form \x3d\x3d null))?cljs.analyzer.impl.CLJ_NIL_SYM:((typeof form \x3d\x3d\x3d \x27number\x27)?cljs.analyzer.impl.NUMBER_SYM:((typeof form \x3d\x3d\x3d \x27string\x27)?cljs.analyzer.impl.STRING_SYM:((form \x3d\x3d\x3d true)?cljs.analyzer.impl.BOOLEAN_SYM:((form \x3d\x3d\x3d false)?cljs.analyzer.impl.BOOLEAN_SYM:((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,form))?new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null):null))))));\nvar G__38516 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\nif(cljs.core.truth_(tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38516,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag);\n} else {\nreturn G__38516;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.analyzer.default_passes \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.infer_type,cljs.analyzer.passes.and_or.optimize,cljs.analyzer.check_invoke_arg_types], null);\ncljs.analyzer.analyze_STAR_ \x3d (function cljs$analyzer$analyze_STAR_(env,form,name,opts){\nvar passes \x3d cljs.analyzer._STAR_passes_STAR_;\nvar passes__$1 \x3d (((passes \x3d\x3d null))?cljs.analyzer.default_passes:passes);\nvar form__$1 \x3d (((form instanceof cljs.core.LazySeq))?((cljs.core.seq(form))?form:cljs.core.List.EMPTY):form);\nvar ast \x3d cljs.analyzer.analyze_form(env,form__$1,name,opts);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(env,ast__$1,opts) : pass.call(null,env,ast__$1,opts));\n}),ast,passes__$1);\n});\n/**\n * Given an environment, a map containing {:locals (mapping of names to bindings), :context\n * (one of :statement, :expr, :return), :ns (a symbol naming the\n * compilation ns)}, and form, returns an expression object (a map\n * containing at least :form, :op and :env keys). If expr has any (immediately)\n * nested exprs, must have a :children entry. This must be a vector of keywords naming\n * the immediately nested fields mapped to an expr or vector of exprs. This will\n * facilitate code walking without knowing the details of the op set.\n */\ncljs.analyzer.analyze \x3d (function cljs$analyzer$analyze(var_args){\nvar G__38518 \x3d arguments.length;\nswitch (G__38518) {\ncase 2:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,form){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(env,form,null);\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\ntry{if(cljs.analyzer.analyzed_QMARK_(form)){\nvar _STAR_cljs_warnings_STAR__orig_val__38520 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38521 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38521);\n\ntry{return cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38520);\n}} else {\nreturn cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}\n}catch (e38519){var err__8939__auto__ \x3d e38519;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}}));\n\n(cljs.analyzer.analyze.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a compiler state and a map from fully qualified symbols to constant\n * EDN values, update the compiler state marking these vars as const to support\n * direct substitution of these vars in source.\n */\ncljs.analyzer.add_consts \x3d (function cljs$analyzer$add_consts(compiler_state,constants_map){\nreturn cljs.core.reduce_kv((function (compiler_state__$1,sym,value){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(compiler_state__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),(function (){var _STAR_passes_STAR__orig_val__38522 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__38523 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__38523);\n\ntry{return cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.empty_env(),value);\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__38522);\n}})()], null));\n}),compiler_state,constants_map);\n});\ncljs.analyzer.resolve_symbol \x3d (function cljs$analyzer$resolve_symbol(sym){\nif(((cljs.core.not(cljs.core.namespace(sym))) \x26\x26 (cljs.analyzer.dotted_symbol_QMARK_(sym)))){\nreturn sym;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1((function (){var _STAR_private_var_access_nowarn_STAR__orig_val__38524 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38525 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38525);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_)),sym);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38524);\n}})());\n}\n});\n/**\n * Get all alias maps for a namespace.\n */\ncljs.analyzer.get_aliases \x3d (function cljs$analyzer$get_aliases(ns){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798))(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(ns)));\n});\nvar registry_ref_39290 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22registry-ref\x22,\x22registry-ref\x22,1975823941,null));\n}),null));\nvar speced_vars_39291 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22-speced-vars\x22,\x22-speced-vars\x22,1758723085,null));\n}),null));\ncljs.analyzer.get_spec_vars \x3d (function cljs$analyzer$get_spec_vars(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)) \x3d\x3d null)))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414),cljs.core.deref(registry_ref_39290),new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988),cljs.core.deref(speced_vars_39291)], null);\n} else {\nreturn null;\n}\n});\n/**\n * Dumps registered speced vars for a given namespace into the compiler\n * environment.\n */\ncljs.analyzer.dump_specs \x3d (function cljs$analyzer$dump_specs(ns){\nvar spec_vars \x3d cljs.analyzer.get_spec_vars();\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry_ref \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p__38526){\nvar vec__38527 \x3d p__38526;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(1),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(k));\n})),cljs.core.deref(cljs.core.deref(registry_ref)))], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar speced_vars \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (v){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(v))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22fdef-ns\x22,\x22fdef-ns\x22,-1602124254).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))));\n})),cljs.core.deref(cljs.core.deref(speced_vars)))], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Registers speced vars found in a namespace analysis cache.\n */\ncljs.analyzer.register_specs \x3d (function cljs$analyzer$register_specs(cached_ns){\nvar map__38530 \x3d cljs.analyzer.get_spec_vars();\nvar map__38530__$1 \x3d cljs.core.__destructure_map(map__38530);\nvar registry_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414));\nvar speced_vars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988));\nvar temp__5825__auto___39295 \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto___39295){\nvar registry_39296 \x3d temp__5825__auto___39295;\nif(cljs.core.truth_(registry_ref)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(registry_ref),cljs.core.into,registry_39296);\n} else {\n}\n} else {\n}\n\nvar temp__5825__auto__ \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto__){\nvar vars \x3d temp__5825__auto__;\nif(cljs.core.truth_(speced_vars)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(speced_vars),cljs.core.into,vars);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_form_seq \x3d (function cljs$analyzer$analyze_form_seq(var_args){\nvar G__38532 \x3d arguments.length;\nswitch (G__38532) {\ncase 1:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (forms){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2(forms,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,opts){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3(forms,opts,false);\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,opts,return_last_QMARK_){\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.empty_env(),new cljs.core.Keyword(null,\x22build-options\x22,\x22build-options\x22,1183685779),opts);\nvar _STAR_file_defs_STAR__orig_val__38533 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nvar _STAR_cljs_ns_STAR__orig_val__38534 \x3d cljs.analyzer._STAR_cljs_ns_STAR_;\nvar _STAR_cljs_file_STAR__orig_val__38535 \x3d cljs.analyzer._STAR_cljs_file_STAR_;\nvar _STAR_alias_map_STAR__orig_val__38536 \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nvar _STAR_file_defs_STAR__temp_val__38537 \x3d null;\nvar _STAR_cljs_ns_STAR__temp_val__38538 \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\nvar _STAR_cljs_file_STAR__temp_val__38539 \x3d null;\nvar _STAR_alias_map_STAR__temp_val__38540 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})();\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__temp_val__38537);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__temp_val__38538);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__temp_val__38539);\n\n(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__temp_val__38540);\n\ntry{var ns \x3d null;\nvar forms__$1 \x3d forms;\nvar last_ast \x3d null;\nwhile(true){\nif((!((forms__$1 \x3d\x3d null)))){\nvar form \x3d cljs.core.first(forms__$1);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ast \x3d cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,form,null,opts);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760))){\nvar G__39303 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__39304 \x3d cljs.core.next(forms__$1);\nvar G__39305 \x3d ast;\nns \x3d G__39303;\nforms__$1 \x3d G__39304;\nlast_ast \x3d G__39305;\ncontinue;\n} else {\nvar G__39306 \x3d ns;\nvar G__39307 \x3d cljs.core.next(forms__$1);\nvar G__39308 \x3d ast;\nns \x3d G__39306;\nforms__$1 \x3d G__39307;\nlast_ast \x3d G__39308;\ncontinue;\n}\n} else {\nif(cljs.core.truth_(return_last_QMARK_)){\nreturn last_ast;\n} else {\nreturn ns;\n}\n}\nbreak;\n}\n}finally {(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__orig_val__38536);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__orig_val__38535);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__orig_val__38534);\n\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__orig_val__38533);\n}}));\n\n(cljs.analyzer.analyze_form_seq.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Ensures that a non-nil defs map exists in the compiler state for a given\n * ns. (A non-nil defs map signifies that the namespace has been analyzed.)\n */\ncljs.analyzer.ensure_defs \x3d (function cljs$analyzer$ensure_defs(ns){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null),(function (p1__38541_SHARP_){\nvar or__5025__auto__ \x3d p1__38541_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}));\n});\n"); +SHADOW_ENV.evalLoad("cljs.analyzer.api.js", true, "goog.provide(\x27cljs.analyzer.api\x27);\n/**\n * Creates an empty compilation state Atom\x3cMap\x3e. The optional opts arg is a map\n * representing the compiler configuration. See the documentation\n * for details: https://clojurescript.org/reference/compiler-options\n */\ncljs.analyzer.api.empty_state \x3d (function cljs$analyzer$api$empty_state(var_args){\nvar G__38543 \x3d arguments.length;\nswitch (G__38543) {\ncase 0:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn cljs.env._STAR_compiler_STAR_;\n} else {\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n}\n}));\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(opts);\n}));\n\n(cljs.analyzer.api.empty_state.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the current compiler state atom.\n */\ncljs.analyzer.api.current_state \x3d (function cljs$analyzer$api$current_state(){\nreturn cljs.env._STAR_compiler_STAR_;\n});\n/**\n * Return the current file under analysis or compilation.\n */\ncljs.analyzer.api.current_file \x3d (function cljs$analyzer$api$current_file(){\nreturn cljs.analyzer._STAR_cljs_file_STAR_;\n});\n/**\n * Return the current ns under analysis or compilation.\n */\ncljs.analyzer.api.current_ns \x3d (function cljs$analyzer$api$current_ns(){\nreturn cljs.analyzer._STAR_cljs_ns_STAR_;\n});\n/**\n * Creates an empty analysis environment.\n */\ncljs.analyzer.api.empty_env \x3d (function cljs$analyzer$api$empty_env(){\nreturn cljs.analyzer.empty_env();\n});\n/**\n * Test if the given warning-type is enabled.\n */\ncljs.analyzer.api.warning_enabled_QMARK_ \x3d (function cljs$analyzer$api$warning_enabled_QMARK_(warning_type){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_.call(null,warning_type);\n});\n/**\n * The default warning handler.\n * \n * Outputs the warning messages to *err*.\n */\ncljs.analyzer.api.default_warning_handler \x3d (function cljs$analyzer$api$default_warning_handler(warning_type,env,extra){\nreturn cljs.analyzer.default_warning_handler(warning_type,env,extra);\n});\n/**\n * Helper for generating the standard analyzer messages for warnings. Should be\n * passed warn-type and warn-info. See with-warning-handlers.\n */\ncljs.analyzer.api.warning_message \x3d (function cljs$analyzer$api$warning_message(warn_type,warn_info){\nreturn cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warn_type,warn_info);\n});\n/**\n * Get the enabled warning types.\n */\ncljs.analyzer.api.enabled_warnings \x3d (function cljs$analyzer$api$enabled_warnings(){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_;\n});\n/**\n * Return the compiler options from compiler state.\n */\ncljs.analyzer.api.get_options \x3d (function cljs$analyzer$api$get_options(var_args){\nvar G__38546 \x3d arguments.length;\nswitch (G__38546) {\ncase 0:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n}));\n\n(cljs.analyzer.api.get_options.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the currently computed Google Closure js dependency index from the\n * compiler state.\n */\ncljs.analyzer.api.get_js_index \x3d (function cljs$analyzer$api$get_js_index(var_args){\nvar G__38567 \x3d arguments.length;\nswitch (G__38567) {\ncase 0:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131));\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * ClojureScript\x27s default analysis passes.\n */\ncljs.analyzer.api.default_passes \x3d cljs.analyzer.default_passes;\n/**\n * Given an analysis environment resolve a var. Analogous to\n * clojure.core/resolve\n */\ncljs.analyzer.api.resolve \x3d (function cljs$analyzer$api$resolve(env,sym){\nif(cljs.core.map_QMARK_(env)){\n} else {\nthrow (new Error(\x22Assert failed: (map? env)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__38601 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38602 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38602);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists_throw());\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38601);\n}}catch (e38600){var e \x3d e38600;\nreturn cljs.analyzer.resolve_macro_var(env,sym);\n}});\n/**\n * Return all namespaces. Analagous to clojure.core/all-ns but\n * returns symbols identifying namespaces not Namespace instances.\n */\ncljs.analyzer.api.all_ns \x3d (function cljs$analyzer$api$all_ns(var_args){\nvar G__38604 \x3d arguments.length;\nswitch (G__38604) {\ncase 0:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1(cljs.env._STAR_compiler_STAR_);\n}));\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.keys(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)));\n}));\n\n(cljs.analyzer.api.all_ns.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Given a namespace return the corresponding namespace analysis map. Analagous\n * to clojure.core/find-ns.\n */\ncljs.analyzer.api.find_ns \x3d (function cljs$analyzer$api$find_ns(var_args){\nvar G__38606 \x3d arguments.length;\nswitch (G__38606) {\ncase 1:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,sym);\n}));\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),sym], null));\n}));\n\n(cljs.analyzer.api.find_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return the corresponding namespace analysis map, throwing an\n * exception if not found. Analagous to clojure.core/the-ns.\n */\ncljs.analyzer.api.the_ns \x3d (function cljs$analyzer$api$the_ns(var_args){\nvar G__38608 \x3d arguments.length;\nswitch (G__38608) {\ncase 1:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nvar or__5025__auto__ \x3d cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(state,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22No namespace found: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),sym], null));\n}\n}));\n\n(cljs.analyzer.api.the_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the var analysis maps. Analagous to\n * clojure.core/ns-interns but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_interns \x3d (function cljs$analyzer$api$ns_interns(var_args){\nvar G__38613 \x3d arguments.length;\nswitch (G__38613) {\ncase 1:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nvar ns__$1 \x3d cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(state,ns);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431).cljs$core$IFn$_invoke$arity$1(ns__$1),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717).cljs$core$IFn$_invoke$arity$1(ns__$1)], 0));\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the public var analysis maps. Analagous to\n * clojure.core/ns-publics but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_publics \x3d (function cljs$analyzer$api$ns_publics(var_args){\nvar G__38616 \x3d arguments.length;\nswitch (G__38616) {\ncase 1:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38619){\nvar vec__38620 \x3d p__38619;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(1),null);\nreturn new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(v);\n}),cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(state,ns)));\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace and a symbol return the corresponding var analysis map.\n * Analagous to clojure.core/ns-resolve but returns var analysis map not Var.\n */\ncljs.analyzer.api.ns_resolve \x3d (function cljs$analyzer$api$ns_resolve(var_args){\nvar G__38624 \x3d arguments.length;\nswitch (G__38624) {\ncase 2:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,sym){\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3(cljs.env._STAR_compiler_STAR_,ns,sym);\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3 \x3d (function (state,ns,sym){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes the namespace named by the symbol.\n */\ncljs.analyzer.api.remove_ns \x3d (function cljs$analyzer$api$remove_ns(var_args){\nvar G__38640 \x3d arguments.length;\nswitch (G__38640) {\ncase 1:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns], 0));\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.macros.js", true, "goog.provide(\x27intemporal.internal.macros\x27);\nintemporal.internal.macros.cljs_available_QMARK_ \x3d false;\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76165 \x3d arguments.length;\nvar i__5750__auto___76166 \x3d (0);\nwhile(true){\nif((i__5750__auto___76166 \x3c len__5749__auto___76165)){\nargs__5755__auto__.push((arguments[i__5750__auto___76166]));\n\nvar G__76167 \x3d (i__5750__auto___76166 + (1));\ni__5750__auto___76166 \x3d G__76167;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__76099){\nvar map__76100 \x3d p__76099;\nvar map__76100__$1 \x3d cljs.core.__destructure_map(map__76100);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76100__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76100__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__76168__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__76101 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76102 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76102);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__76103 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76103 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76103);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76104 \x3d err;\nif((G__76104 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76104);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__76105 \x3d err;\nif((G__76105 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__76105);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76101);\n}};\nvar G__76168 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__76169__i \x3d 0, G__76169__a \x3d new Array(arguments.length - 0);\nwhile (G__76169__i \x3c G__76169__a.length) {G__76169__a[G__76169__i] \x3d arguments[G__76169__i + 0]; ++G__76169__i;}\n args \x3d new cljs.core.IndexedSeq(G__76169__a,0,null);\n} \nreturn G__76168__delegate.call(this,args);};\nG__76168.cljs$lang$maxFixedArity \x3d 0;\nG__76168.cljs$lang$applyTo \x3d (function (arglist__76170){\nvar args \x3d cljs.core.seq(arglist__76170);\nreturn G__76168__delegate(args);\n});\nG__76168.cljs$core$IFn$_invoke$arity$variadic \x3d G__76168__delegate;\nreturn G__76168;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq76097){\nvar G__76098 \x3d cljs.core.first(seq76097);\nvar seq76097__$1 \x3d cljs.core.next(seq76097);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76098,seq76097__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k76107,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__76111 \x3d k76107;\nvar G__76111__$1 \x3d (((G__76111 instanceof cljs.core.Keyword))?G__76111.fqn:null);\nswitch (G__76111__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k76107,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__76112){\nvar vec__76113 \x3d p__76112;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76113,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76113,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__76106){\nvar self__ \x3d this;\nvar G__76106__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__76106__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this76108,other76109){\nvar self__ \x3d this;\nvar this76108__$1 \x3d this;\nreturn (((!((other76109 \x3d\x3d null)))) \x26\x26 ((((this76108__$1.constructor \x3d\x3d\x3d other76109.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76108__$1.seq_num,other76109.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76108__$1.__extmap,other76109.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k76107){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__76116 \x3d k76107;\nvar G__76116__$1 \x3d (((G__76116 instanceof cljs.core.Keyword))?G__76116.fqn:null);\nswitch (G__76116__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k76107);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__76106){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__76117 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__76118 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__76117.cljs$core$IFn$_invoke$arity$2 ? pred__76117.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76118) : pred__76117.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76118)))){\nreturn (new intemporal.core.AsyncHandle(G__76106,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__76106),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__76106){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__76106,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__76110){\nvar extmap__5365__auto__ \x3d (function (){var G__76120 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__76110,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__76110)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__76120);\n} else {\nreturn G__76120;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__76110),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__76121 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76121 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76121);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76122 \x3d err;\nif((G__76122 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76122);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e76123){if((e76123 instanceof Error)){\nvar e \x3d e76123;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e76123;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76173 \x3d arguments.length;\nvar i__5750__auto___76174 \x3d (0);\nwhile(true){\nif((i__5750__auto___76174 \x3c len__5749__auto___76173)){\nargs__5755__auto__.push((arguments[i__5750__auto___76174]));\n\nvar G__76175 \x3d (i__5750__auto___76174 + (1));\ni__5750__auto___76174 \x3d G__76175;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__76127){\nvar map__76128 \x3d p__76127;\nvar map__76128__$1 \x3d cljs.core.__destructure_map(map__76128);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76128__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__76129 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76129 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76129);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76130 \x3d err;\nif((G__76130 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76130);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq76124){\nvar G__76125 \x3d cljs.core.first(seq76124);\nvar seq76124__$1 \x3d cljs.core.next(seq76124);\nvar G__76126 \x3d cljs.core.first(seq76124__$1);\nvar seq76124__$2 \x3d cljs.core.next(seq76124__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76125,G__76126,seq76124__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76176 \x3d arguments.length;\nvar i__5750__auto___76177 \x3d (0);\nwhile(true){\nif((i__5750__auto___76177 \x3c len__5749__auto___76176)){\nargs__5755__auto__.push((arguments[i__5750__auto___76177]));\n\nvar G__76178 \x3d (i__5750__auto___76177 + (1));\ni__5750__auto___76177 \x3d G__76178;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq76131){\nvar G__76132 \x3d cljs.core.first(seq76131);\nvar seq76131__$1 \x3d cljs.core.next(seq76131);\nvar G__76133 \x3d cljs.core.first(seq76131__$1);\nvar seq76131__$2 \x3d cljs.core.next(seq76131__$1);\nvar G__76134 \x3d cljs.core.first(seq76131__$2);\nvar seq76131__$3 \x3d cljs.core.next(seq76131__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76132,G__76133,G__76134,seq76131__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76179 \x3d arguments.length;\nvar i__5750__auto___76180 \x3d (0);\nwhile(true){\nif((i__5750__auto___76180 \x3c len__5749__auto___76179)){\nargs__5755__auto__.push((arguments[i__5750__auto___76180]));\n\nvar G__76181 \x3d (i__5750__auto___76180 + (1));\ni__5750__auto___76180 \x3d G__76181;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76140,workflow_id,workflow_fn,args,p__76141){\nvar map__76142 \x3d p__76140;\nvar map__76142__$1 \x3d cljs.core.__destructure_map(map__76142);\nvar engine \x3d map__76142__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__76143 \x3d p__76141;\nvar map__76143__$1 \x3d cljs.core.__destructure_map(map__76143);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76143__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76143__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq76135){\nvar G__76136 \x3d cljs.core.first(seq76135);\nvar seq76135__$1 \x3d cljs.core.next(seq76135);\nvar G__76137 \x3d cljs.core.first(seq76135__$1);\nvar seq76135__$2 \x3d cljs.core.next(seq76135__$1);\nvar G__76138 \x3d cljs.core.first(seq76135__$2);\nvar seq76135__$3 \x3d cljs.core.next(seq76135__$2);\nvar G__76139 \x3d cljs.core.first(seq76135__$3);\nvar seq76135__$4 \x3d cljs.core.next(seq76135__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76136,G__76137,G__76138,G__76139,seq76135__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76182 \x3d arguments.length;\nvar i__5750__auto___76183 \x3d (0);\nwhile(true){\nif((i__5750__auto___76183 \x3c len__5749__auto___76182)){\nargs__5755__auto__.push((arguments[i__5750__auto___76183]));\n\nvar G__76184 \x3d (i__5750__auto___76183 + (1));\ni__5750__auto___76183 \x3d G__76184;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__76149){\nvar map__76150 \x3d p__76149;\nvar map__76150__$1 \x3d cljs.core.__destructure_map(map__76150);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76150__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__76151_76185 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76152_76186 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76152_76186);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76151_76185);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq76144){\nvar G__76145 \x3d cljs.core.first(seq76144);\nvar seq76144__$1 \x3d cljs.core.next(seq76144);\nvar G__76146 \x3d cljs.core.first(seq76144__$1);\nvar seq76144__$2 \x3d cljs.core.next(seq76144__$1);\nvar G__76147 \x3d cljs.core.first(seq76144__$2);\nvar seq76144__$3 \x3d cljs.core.next(seq76144__$2);\nvar G__76148 \x3d cljs.core.first(seq76144__$3);\nvar seq76144__$4 \x3d cljs.core.next(seq76144__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76145,G__76146,G__76147,G__76148,seq76144__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__76153_76187 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76154_76188 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76154_76188);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76153_76187);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__76155_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__76155_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76189 \x3d arguments.length;\nvar i__5750__auto___76190 \x3d (0);\nwhile(true){\nif((i__5750__auto___76190 \x3c len__5749__auto___76189)){\nargs__5755__auto__.push((arguments[i__5750__auto___76190]));\n\nvar G__76191 \x3d (i__5750__auto___76190 + (1));\ni__5750__auto___76190 \x3d G__76191;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76157){\nvar map__76158 \x3d p__76157;\nvar map__76158__$1 \x3d cljs.core.__destructure_map(map__76158);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76158__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq76156){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq76156));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__76160 \x3d arguments.length;\nswitch (G__76160) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__76161){\nvar map__76162 \x3d p__76161;\nvar map__76162__$1 \x3d cljs.core.__destructure_map(map__76162);\nvar engine \x3d map__76162__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76162__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76162__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__76163,grace_period_secs){\nvar map__76164 \x3d p__76163;\nvar map__76164__$1 \x3d cljs.core.__destructure_map(map__76164);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76164__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76164__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); -SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file +SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file diff --git a/src/intemporal/internal/context.cljc b/src/intemporal/internal/context.cljc index 82d502b..fcd001b 100644 --- a/src/intemporal/internal/context.cljc +++ b/src/intemporal/internal/context.cljc @@ -1,6 +1,7 @@ (ns intemporal.internal.context (:require [intemporal.internal.error :as error] - [intemporal.protocol :as p])) + [intemporal.protocol :as p] + [promesa.core])) ;; ============================================================================ @@ -71,3 +72,46 @@ (catch #?(:clj Exception :cljs js/Error) e ;; Don't let observer errors break workflow (println "Observer error:" (ex-message e)))))) + +;; ============================================================================ +;; Context-Aware Macros, cljs only +;; ============================================================================ + +;; TODO: ensure these are cljs only + +(defmacro blet + "Like p/let, but automatically propagates *workflow-context*." + [bindings & body] + (let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] ;; 1. Capture outside + (promesa.core/let + ~(vec (interleave + (take-nth 2 bindings) + (map (fn [expr] + ;; 2. Restore inside every binding step (Right-Hand Side) + `(binding [*workflow-context* ~ctx-sym] + ~expr)) + (take-nth 2 (rest bindings))))) + ;; 3. Restore inside the final body + (binding [*workflow-context* ~ctx-sym] + ~@body))))) + +(defmacro bthen + "Like p/then, but automatically propagates *workflow-context*." + [promise f] + (let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] + (promesa.core/then ~promise + (fn [res#] + (binding [*workflow-context* ~ctx-sym] + (~f res#))))))) + +(defmacro bfinally + "Like p/finally, but automatically propagates *workflow-context*." + [promise f] + (let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] + (promesa.core/finally ~promise + (fn [& args#] + (binding [*workflow-context* ~ctx-sym] + (apply ~f args#))))))) diff --git a/src/intemporal/internal/execution.cljs b/src/intemporal/internal/execution.cljs index be300bc..5897687 100644 --- a/src/intemporal/internal/execution.cljs +++ b/src/intemporal/internal/execution.cljs @@ -7,35 +7,75 @@ [intemporal.protocol :as p] [promesa.core :as prom]) (:require-macros [intemporal.internal.logging :as log] - [intemporal.internal.execution :refer [-notify]])) + [intemporal.internal.execution :refer [-notify]] + [intemporal.internal.context :refer [blet bthen bfinally]])) ;; ============================================================================ ;; Workflow Execution Engine ;; ============================================================================ (defn execute-workflow-fn [workflow-fn args] - (try - {:status :completed - :result (apply workflow-fn args) - :pending-asyncs @(:pending-asyncs (ctx/current-context)) - :pending-events @(:pending-events (ctx/current-context))} - (catch js/Error e - (cond - (error/suspension? e) - {:status :suspended - :suspension-type (error/suspension-type e) - :suspension-data (error/suspension-data e) - :pending-asyncs @(:pending-asyncs (ctx/current-context)) - :pending-events @(:pending-events (ctx/current-context))} - - (error/cancelled-exception? e) - {:status :cancelled - :pending-events @(:pending-events (ctx/current-context))} - - :else - {:status :failed - :error e - :pending-events @(:pending-events (ctx/current-context))})))) + ;; Capture context so async callbacks (from p/let, etc.) can access it + ;; after the dynamic binding scope has exited + (let [ctx (ctx/current-context) + pending-asyncs (:pending-asyncs ctx) + pending-events (:pending-events ctx) + wrap-ctx (fn [f] + (fn [v] + (binding [ctx/*workflow-context* ctx] + (f v))))] + (try + (let [result (apply workflow-fn args)] + (if (prom/promise? result) + ;; Workflow returned a Promise (e.g. from p/let) - resolve it. + ;; Re-bind context in callbacks so that any code inside the promise + ;; chain (e.g. stub calls inside p/let) can access the workflow context. + (-> result + (bthen (fn [resolved] + {:status :completed + :result resolved + :pending-asyncs @pending-asyncs + :pending-events @pending-events})) + (prom/catch (wrap-ctx + (fn [e] + (cond + (error/suspension? e) + {:status :suspended + :suspension-type (error/suspension-type e) + :suspension-data (error/suspension-data e) + :pending-asyncs @pending-asyncs + :pending-events @pending-events} + + (error/cancelled-exception? e) + {:status :cancelled + :pending-events @pending-events} + + :else + {:status :failed + :error e + :pending-events @pending-events}))))) + ;; Synchronous result + {:status :completed + :result result + :pending-asyncs @pending-asyncs + :pending-events @pending-events})) + (catch js/Error e + (cond + (error/suspension? e) + {:status :suspended + :suspension-type (error/suspension-type e) + :suspension-data (error/suspension-data e) + :pending-asyncs @pending-asyncs + :pending-events @pending-events} + + (error/cancelled-exception? e) + {:status :cancelled + :pending-events @pending-events} + + :else + {:status :failed + :error e + :pending-events @pending-events}))))) (defn- execute-once "Execute activity once, returns a promise of result map." @@ -43,7 +83,7 @@ (let [start (utils/current-time-ms)] (log/infof "Executing activity via executor %s" executor) (-notify p/on-activity-started observer workflow-id seq-num activity-name) - (-> (prom/let [result (p/execute-activity executor activity-name args timeout-ms) + (-> (blet [result (p/execute-activity executor activity-name args timeout-ms) duration (- (utils/current-time-ms) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) (log/infof "Activity succeeded, result: %s" result) @@ -66,7 +106,7 @@ (-notify p/on-activity-started observer workflow-id seq-num activity-name) (log/infof "Executing activity (attempt %d)" attempt) (let [start (utils/current-time-ms)] - (-> (prom/let [result (p/execute-activity executor activity-name args timeout-ms) + (-> (blet [result (p/execute-activity executor activity-name args timeout-ms) duration (- (utils/current-time-ms) start)] (-notify p/on-activity-completed observer workflow-id seq-num activity-name result duration) (log/infof "Activity succeeded (attempt %d), result: %s" attempt result) @@ -84,7 +124,7 @@ :error error-map :exception e :duration duration}))) - (prom/then + (bthen (fn [exec-result] (case (:status exec-result) :success @@ -95,10 +135,10 @@ (let [backoff (a/calculate-backoff retry-policy attempt)] (log/debugf "Activity sleeping %s before retrying (attempt %d)" backoff attempt) (-> (prom/delay backoff) - (prom/then (fn [_] - (execute-with-retry-loop executor activity-name args timeout-ms - retry-policy observer workflow-id seq-num - (inc attempt)))))) + (bthen (fn [_] + (execute-with-retry-loop executor activity-name args timeout-ms + retry-policy observer workflow-id seq-num + (inc attempt)))))) {:status :failed :error (:error exec-result) :duration (:duration exec-result) @@ -116,7 +156,7 @@ {:keys [seq activity-name args timeout-ms retry-policy] :as suspension-data} pending-events observer] (log/with-mdc {:activity activity-name :seqnum seq} - (prom/let [exec-result (execute-with-retry executor activity-name args timeout-ms + (blet [exec-result (execute-with-retry executor activity-name args timeout-ms retry-policy observer workflow-id seq)] ;; Save all pending events first (p/save-events store workflow-id pending-events) @@ -144,7 +184,7 @@ (p/save-events store workflow-id pending-events) (log/infof "Executing %d activities in parallel via executor %s" (count pending-asyncs) executor) - (prom/let [results (p/execute-activities-parallel executor pending-asyncs)] + (blet [results (p/execute-activities-parallel executor pending-asyncs)] (let [now (utils/current-time-ms) completion-events (mapcat (fn [{:keys [activity-name activity-seq] :as async-info} result] @@ -286,7 +326,7 @@ (let [{:keys [handle-seq]} suspension-data] ;; First, process any pending asyncs that haven't been executed yet (if (seq pending-asyncs) - (prom/let [_ (process-pending-asyncs-parallel store executor workflow-id + (blet [_ (process-pending-asyncs-parallel store executor workflow-id pending-asyncs pending-events observer)] :continue) ;; else @@ -322,7 +362,7 @@ (defn finalize-completed "Save completion events and return result. Returns a promise." [store executor workflow-id pending-asyncs pending-events result observer] - (prom/let [_ (if (seq pending-asyncs) + (blet [_ (if (seq pending-asyncs) (process-pending-asyncs-parallel store executor workflow-id pending-asyncs pending-events observer) (do @@ -395,7 +435,7 @@ (case suspension-type :activity (if (seq pending-asyncs-list) - (prom/let [_ (process-pending-asyncs-parallel store executor workflow-id + (blet [_ (process-pending-asyncs-parallel store executor workflow-id pending-asyncs-list pending-events-list observer)] @@ -437,7 +477,7 @@ observer) :join-any-pending - (prom/let [_ (when (seq pending-asyncs-list) + (blet [_ (when (seq pending-asyncs-list) (process-pending-asyncs-parallel store executor workflow-id pending-asyncs-list pending-events-list @@ -525,43 +565,47 @@ :protocols (:protocols engine)) exec-result (binding [ctx/*workflow-context* ctx] (log/debugf "Executing workflow function %s..." workflow-fn) - (execute-workflow-fn workflow-fn args))] - - (log/debugf "Workflow function executed, got: %s" (:status exec-result)) - (case (:status exec-result) - :completed - (finalize-completed store executor workflow-id - (:pending-asyncs exec-result) - (:pending-events exec-result) - (:result exec-result) - observer) - - :cancelled - (finalize-cancelled store workflow-id - (:pending-events exec-result) - observer) - - :suspended - (prom/let [action (handle-suspension engine - workflow-id - (:suspension-type exec-result) - (:suspension-data exec-result) - (:pending-asyncs exec-result) - (:pending-events exec-result) - wake-fn - observer)] - (when (and observer (= action :continue)) - (p/on-workflow-resumed observer workflow-id)) - - (if (= action :continue) - (prom/recur (inc iteration)) - (action->result action workflow-id))) - - :failed - (finalize-failed store workflow-id - (:pending-events exec-result) - (:error exec-result) - observer))))))) + (execute-workflow-fn workflow-fn args)) + dispatch (fn [exec-result] + (log/debugf "Workflow function executed, got: %s" (:status exec-result)) + (case (:status exec-result) + :completed + (finalize-completed store executor workflow-id + (:pending-asyncs exec-result) + (:pending-events exec-result) + (:result exec-result) + observer) + + :cancelled + (finalize-cancelled store workflow-id + (:pending-events exec-result) + observer) + + :suspended + (blet [action (handle-suspension engine + workflow-id + (:suspension-type exec-result) + (:suspension-data exec-result) + (:pending-asyncs exec-result) + (:pending-events exec-result) + wake-fn + observer)] + (when (and observer (= action :continue)) + (p/on-workflow-resumed observer workflow-id)) + + (if (= action :continue) + (prom/recur (inc iteration)) + (action->result action workflow-id))) + + :failed + (finalize-failed store workflow-id + (:pending-events exec-result) + (:error exec-result) + observer)))] + ;; exec-result may be a Promise if workflow-fn returned a Promise (e.g. from p/let) + (if (prom/promise? exec-result) + (bthen exec-result dispatch) + (dispatch exec-result))))))) (defn process-child-workflow [{:keys [store executor scheduler registry] :as engine} workflow-id suspension-data pending-events observer] @@ -569,7 +613,7 @@ (p/save-events store workflow-id pending-events) (-> (run-workflow-internal engine child-workflow-id workflow-fn args {:observer observer :max-iterations 1000}) - (prom/then + (bthen (fn [result] (if (= :completed (:status result)) (do diff --git a/src/intemporal/internal/fns/start_workflow.cljs b/src/intemporal/internal/fns/start_workflow.cljs index cab83d7..e5f0d87 100644 --- a/src/intemporal/internal/fns/start_workflow.cljs +++ b/src/intemporal/internal/fns/start_workflow.cljs @@ -4,7 +4,8 @@ [intemporal.protocol :as p] [intemporal.utils :as utils] [promesa.core :as prom]) - (:require-macros [intemporal.internal.logging :as log])) + (:require-macros [intemporal.internal.logging :as log] + [intemporal.internal.context :refer [bthen]])) (defn- waiting-status? [result] (#{:waiting-timer :waiting-signal :waiting-signal-timeout :waiting-async} @@ -46,7 +47,7 @@ {:observer observer :max-iterations max-iterations :wake-fn run-step}) - (prom/then (fn [result] + (bthen (fn [result] (when-not (waiting-status? result) (prom/resolve! d result)))) (prom/catch js/Error @@ -91,7 +92,7 @@ {:observer observer :max-iterations max-iterations :wake-fn wake-fn-impl}) - (prom/then (fn [result] + (bthen (fn [result] (when (and on-complete (not (waiting-status? result))) (on-complete result)))) (prom/catch js/Error @@ -109,7 +110,7 @@ {:observer observer :max-iterations max-iterations :wake-fn wake-fn}) - (prom/then (fn [result] + (bthen (fn [result] (when (and on-complete (not (waiting-status? result))) (on-complete result)) result)) diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index 013d97f..448fa42 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -2,12 +2,8 @@ (:require [cljs.analyzer.api :as api] [intemporal.internal.context :as ctx] [intemporal.internal.activity :as act]) - ;[md5.core :as md5]) #?(:clj (:require [net.cgrand.macrovich :as macros]) - ;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]]) :cljs (:require-macros [net.cgrand.macrovich :as macros]))) -;[intemporal.workflow.internal :refer [trace! trace-async! add-event!]] -;[intemporal.macros :refer [env-let defn-workflow stub-function stub-protocol]]))) (def cljs-available? #?(:cljs @@ -66,27 +62,28 @@ (name sig) (str (namespace proto) "/" (name sig)))]] [(name sig) arglist (symbol invname) (symbol qname) (str (:name resolved))]) - (doall))] - (let [protocols-sym (gensym "protocols") - registry-sym (gensym "registry") - impl-sym (gensym "impl")] - `(let [~protocols-sym (:protocols (ctx/current-context)) - ~registry-sym (:registry (ctx/current-context))] - ;; Register protocol methods with impl wrapper before stub can register raw dispatch fns - ~@(for [[mname arglist invname qname pname] sig+args] - `(when-let [~impl-sym (get ~protocols-sym ~proto)] - (act/register-activity! - ~registry-sym - (fn [& args#] (apply ~invname ~impl-sym args#)) - :name ~(str qname)))) - (reify ~proto - ~@(for [[mname arglist invname qname pname] sig+args - :let [sname (symbol mname) - args (rest (first arglist))]] - ;; implement ~sname - `(~sname [this# ~@args] - (let [f# (intemporal.core/stub (var ~qname))] - (f# ~@args))))))))) + (doall)) + + protocols-sym (gensym "protocols") + registry-sym (gensym "registry") + impl-sym (gensym "impl")] + `(let [~protocols-sym (:protocols (ctx/current-context)) + ~registry-sym (:registry (ctx/current-context))] + ;; Register protocol methods with impl wrapper before stub can register raw dispatch fns + ~@(for [[mname arglist invname qname pname] sig+args] + `(when-let [~impl-sym (get ~protocols-sym ~proto)] + (act/register-activity! + ~registry-sym + (fn [& args#] (apply ~invname ~impl-sym args#)) + :name ~(str qname)))) + (reify ~proto + ~@(for [[mname arglist invname qname pname] sig+args + :let [sname (symbol mname) + args (rest (first arglist))]] + ;; implement ~sname + `(~sname [this# ~@args] + (let [f# (intemporal.core/stub (var ~qname))] + (f# ~@args)))))))) :clj #_{:clj-kondo/ignore [:unresolved-symbol]} @@ -110,3 +107,7 @@ `(~sname [this# ~@args] (let [f# (intemporal.core/stub (var ~qname))] (f# ~@args)))))))) + + +;;;; +;; ctx-aware macros \ No newline at end of file diff --git a/src/intemporal/store/fdb.clj b/src/intemporal/store/fdb.clj index d6d2bde..e6e0c5e 100644 --- a/src/intemporal/store/fdb.clj +++ b/src/intemporal/store/fdb.clj @@ -1,13 +1,10 @@ (ns intemporal.store.fdb (:require [intemporal.protocol :as p] - [me.vedang.clj-fdb.FDB :as cfdb] [me.vedang.clj-fdb.core :as fdb-core] [me.vedang.clj-fdb.transaction :as ftr] [me.vedang.clj-fdb.subspace.subspace :as fsub] - [taoensso.telemere :as t] [cheshire.core :as json]) - (:import [com.apple.foundationdb FDB FDBTransaction KeyValue] - [com.apple.foundationdb.tuple Tuple])) + (:import [com.apple.foundationdb.tuple Tuple])) ;; ============================================================================ ;; Serialization Helpers diff --git a/test/intemporal/tests/cancellation_test.cljs b/test/intemporal/tests/cancellation_test.cljs index e125aae..4c59467 100644 --- a/test/intemporal/tests/cancellation_test.cljs +++ b/test/intemporal/tests/cancellation_test.cljs @@ -5,10 +5,11 @@ [matcher-combinators.test :refer [match?]] [matcher-combinators.matchers :as m] [promesa.core :as p]) - (:require-macros [intemporal.tests.utils :refer [with-result]])) + (:require-macros [intemporal.tests.utils :refer [with-result]] + [intemporal.internal.context :refer [bthen]])) (defn slow-activity [x] - (p/then (p/delay 100) (fn [_] (* x 2)))) + (bthen (p/delay 100) (fn [_] (* x 2)))) ;; Long-running workflow (defn long-flow [id] diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs index e43080b..11ddbad 100644 --- a/test/intemporal/tests/deleteme_test.cljs +++ b/test/intemporal/tests/deleteme_test.cljs @@ -1,8 +1,10 @@ (ns intemporal.tests.deleteme-test (:require [cljs.test :as t :refer [deftest is testing]] [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-trace-logging]]) - (:require-macros [intemporal.tests.utils :refer [with-result]])) + [intemporal.tests.utils :refer [with-trace-logging]] + [promesa.core :as p]) + (:require-macros [intemporal.tests.utils :refer [with-result]] + [intemporal.internal.context :refer [blet]])) (t/use-fixtures :once with-trace-logging) @@ -17,3 +19,18 @@ (let [engine (intemporal/make-workflow-engine :threads 2)] (with-result [result (intemporal/start-workflow engine noop-flow [42])] (is (= :completed (:status result))))))) + +(defn plet-activity [x] (* x 10)) + +(defn plet-flow [id] + (let [act (intemporal/stub plet-activity)] + (blet [v (act id)] + {:value v}))) + +(deftest test-plet-workflow + (testing "workflow returning a promise via p/let" + (let [engine (intemporal/make-workflow-engine :threads 2)] + (with-result [result (intemporal/start-workflow engine plet-flow [5])] + (println "PLET RESULT:" (pr-str result)) + (is (= :completed (:status result))) + (is (= {:value 50} (:result result))))))) diff --git a/test/intemporal/tests/macros_test.cljs b/test/intemporal/tests/macros_test.cljs new file mode 100644 index 0000000..9ad4581 --- /dev/null +++ b/test/intemporal/tests/macros_test.cljs @@ -0,0 +1,42 @@ +(ns intemporal.tests.macros-test + (:require [intemporal.core :as intemporal] + [clojure.test :refer [deftest is testing]] + [intemporal.internal.context :as ctx] + [promesa.core :as p]) + (:require-macros [intemporal.internal.context :as ctx :refer [blet bthen bfinally]])) + +(deftest test-context-propagation-macros + (testing "bthen and bfinally propagate context" + (let [bthen-ctx (atom nil) + bfinally-ctx (atom nil) + done (p/deferred)] + (let [engine (intemporal/make-workflow-engine :threads 2) + my-wf (fn [] + (let [prom (p/resolved :val)] + (-> (bthen prom (fn [v] + (reset! bthen-ctx ctx/*workflow-context*) + v)) + (bfinally (fn [v e] + (reset! bfinally-ctx ctx/*workflow-context*) + (p/resolve! done true)))))) + result (intemporal/start-workflow engine my-wf [])] + (is (= :completed (:status result))) + ;; Wait for async handlers to complete + (is (true? @done) "Handlers should complete") + (is (some? @bthen-ctx) "Context should be present in bthen") + (is (some? @bfinally-ctx) "Context should be present in bfinally")))) + (testing "blet propagates context" + (intemporal/with-workflow-engine [engine {:threads 1}]) + (let [blet-ctx (atom nil) + done (p/deferred) + engine (intemporal/make-workflow-engine :threads 2) + my-wf (fn [] + (blet [a (p/resolved 1) + b (p/resolved 2)] + (reset! blet-ctx ctx/*workflow-context*) + (p/resolve! done true) + (+ a b))) + result (intemporal/start-workflow engine my-wf [])] + (is (= :completed (:status result))) + (is (true? @done) "Body should complete") + (is (some? @blet-ctx) "Context should be present in blet body")))) diff --git a/test/intemporal/tests/signal_test.cljs b/test/intemporal/tests/signal_test.cljs index 9d684b4..6d2e5fa 100644 --- a/test/intemporal/tests/signal_test.cljs +++ b/test/intemporal/tests/signal_test.cljs @@ -4,7 +4,8 @@ [cljs.test :as t :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] [promesa.core :as p]) - (:require-macros [intemporal.tests.utils :refer [with-result]])) + (:require-macros [intemporal.tests.utils :refer [with-result]] + [intemporal.internal.context :refer [blet]])) (defn activity-fn [arg] [:processed arg]) @@ -74,7 +75,7 @@ (intemporal/send-signal (:store engine) wf-id "approval" {:user "bob"}) ;; First workflow run consumes first signal, then second (with-result [[result1 result2] - (p/let [r1 (intemporal/start-workflow engine signal-flow [100] + (blet [r1 (intemporal/start-workflow engine signal-flow [100] :workflow-id wf-id) r2 (intemporal/resume-workflow engine wf-id signal-flow [100])] diff --git a/test/intemporal/tests/timer_test.cljs b/test/intemporal/tests/timer_test.cljs index 4c740c5..d481349 100644 --- a/test/intemporal/tests/timer_test.cljs +++ b/test/intemporal/tests/timer_test.cljs @@ -4,7 +4,8 @@ [cljs.test :as t :refer [deftest is testing]] [matcher-combinators.test :refer [match?]] [promesa.core :as p]) - (:require-macros [intemporal.tests.utils :refer [with-result]])) + (:require-macros [intemporal.tests.utils :refer [with-result]] + [intemporal.internal.context :refer [blet]])) (defn activity-fn [arg] [:processed arg]) @@ -47,7 +48,7 @@ (testing "Timer workflow is deterministic on replay" (let [engine (intemporal/make-workflow-engine :threads 2)] (with-result [[result1 result2] - (p/let [r1 (intemporal/start-workflow engine + (blet [r1 (intemporal/start-workflow engine timed-flow [100] :workflow-id "timer-replay-test") r2 (intemporal/resume-workflow engine "timer-replay-test" From efd6d0b5ff4df9c178cc71746a35bc7a7667ade6 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 18:46:35 +0000 Subject: [PATCH 70/81] macros cljs only, fix test --- src/intemporal/internal/context.cljc | 61 ++++++++++++---------- test/intemporal/tests/macros_test.cljs | 71 +++++++++++++++----------- 2 files changed, 76 insertions(+), 56 deletions(-) diff --git a/src/intemporal/internal/context.cljc b/src/intemporal/internal/context.cljc index fcd001b..a083daa 100644 --- a/src/intemporal/internal/context.cljc +++ b/src/intemporal/internal/context.cljc @@ -1,7 +1,9 @@ (ns intemporal.internal.context (:require [intemporal.internal.error :as error] [intemporal.protocol :as p] - [promesa.core])) + [promesa.core]) + #?(:clj (:require [net.cgrand.macrovich :as macros]) + :cljs (:require-macros [net.cgrand.macrovich :as macros]))) ;; ============================================================================ @@ -82,36 +84,43 @@ (defmacro blet "Like p/let, but automatically propagates *workflow-context*." [bindings & body] - (let [ctx-sym (gensym "workflow-ctx")] - `(let [~ctx-sym *workflow-context*] ;; 1. Capture outside - (promesa.core/let - ~(vec (interleave - (take-nth 2 bindings) - (map (fn [expr] - ;; 2. Restore inside every binding step (Right-Hand Side) - `(binding [*workflow-context* ~ctx-sym] - ~expr)) - (take-nth 2 (rest bindings))))) - ;; 3. Restore inside the final body - (binding [*workflow-context* ~ctx-sym] - ~@body))))) + (macros/case + :clj (throw (IllegalArgumentException. "CLJS only")) + :cljs + (let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] ;; 1. Capture outside + (promesa.core/let + ~(vec (interleave + (take-nth 2 bindings) + (map (fn [expr] + ;; 2. Restore inside every binding step (Right-Hand Side) + `(binding [*workflow-context* ~ctx-sym] + ~expr)) + (take-nth 2 (rest bindings))))) + ;; 3. Restore inside the final body + (binding [*workflow-context* ~ctx-sym] + ~@body)))))) (defmacro bthen "Like p/then, but automatically propagates *workflow-context*." [promise f] - (let [ctx-sym (gensym "workflow-ctx")] - `(let [~ctx-sym *workflow-context*] - (promesa.core/then ~promise - (fn [res#] - (binding [*workflow-context* ~ctx-sym] - (~f res#))))))) + (macros/case + :clj (throw (IllegalArgumentException. "CLJS only")) + :cljs(let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] + (promesa.core/then ~promise + (fn [res#] + (binding [*workflow-context* ~ctx-sym] + (~f res#)))))))) (defmacro bfinally "Like p/finally, but automatically propagates *workflow-context*." [promise f] - (let [ctx-sym (gensym "workflow-ctx")] - `(let [~ctx-sym *workflow-context*] - (promesa.core/finally ~promise - (fn [& args#] - (binding [*workflow-context* ~ctx-sym] - (apply ~f args#))))))) + (macros/case + :clj (throw (IllegalArgumentException. "CLJS only")) + :cljs(let [ctx-sym (gensym "workflow-ctx")] + `(let [~ctx-sym *workflow-context*] + (promesa.core/finally ~promise + (fn [& args#] + (binding [*workflow-context* ~ctx-sym] + (apply ~f args#)))))))) diff --git a/test/intemporal/tests/macros_test.cljs b/test/intemporal/tests/macros_test.cljs index 9ad4581..69d62c2 100644 --- a/test/intemporal/tests/macros_test.cljs +++ b/test/intemporal/tests/macros_test.cljs @@ -1,42 +1,53 @@ (ns intemporal.tests.macros-test (:require [intemporal.core :as intemporal] - [clojure.test :refer [deftest is testing]] + [cljs.test :refer [deftest is testing]] [intemporal.internal.context :as ctx] + [intemporal.tests.utils :refer [with-trace-logging]] [promesa.core :as p]) - (:require-macros [intemporal.internal.context :as ctx :refer [blet bthen bfinally]])) + (:require-macros [intemporal.internal.context :as ctx :refer [blet bthen bfinally]] + [intemporal.tests.utils :refer [with-result]])) -(deftest test-context-propagation-macros +(deftest test-bthen-bfinally-propagation (testing "bthen and bfinally propagate context" (let [bthen-ctx (atom nil) bfinally-ctx (atom nil) - done (p/deferred)] - (let [engine (intemporal/make-workflow-engine :threads 2) - my-wf (fn [] - (let [prom (p/resolved :val)] - (-> (bthen prom (fn [v] - (reset! bthen-ctx ctx/*workflow-context*) - v)) - (bfinally (fn [v e] - (reset! bfinally-ctx ctx/*workflow-context*) - (p/resolve! done true)))))) - result (intemporal/start-workflow engine my-wf [])] + engine (intemporal/make-workflow-engine :threads 2) + my-wf (fn [] + (let [prom (p/resolved :val)] + (-> (bthen prom (fn [v] + (reset! bthen-ctx ctx/*workflow-context*) + v)) + (bfinally (fn [v e] + (reset! bfinally-ctx ctx/*workflow-context*) + v)))))] + (with-result [result (intemporal/start-workflow engine my-wf [])] (is (= :completed (:status result))) - ;; Wait for async handlers to complete - (is (true? @done) "Handlers should complete") (is (some? @bthen-ctx) "Context should be present in bthen") - (is (some? @bfinally-ctx) "Context should be present in bfinally")))) + (is (some? @bfinally-ctx) "Context should be present in bfinally") + (intemporal/shutdown-engine engine))))) + +(deftest test-blet-propagation (testing "blet propagates context" - (intemporal/with-workflow-engine [engine {:threads 1}]) (let [blet-ctx (atom nil) - done (p/deferred) - engine (intemporal/make-workflow-engine :threads 2) - my-wf (fn [] - (blet [a (p/resolved 1) - b (p/resolved 2)] - (reset! blet-ctx ctx/*workflow-context*) - (p/resolve! done true) - (+ a b))) - result (intemporal/start-workflow engine my-wf [])] - (is (= :completed (:status result))) - (is (true? @done) "Body should complete") - (is (some? @blet-ctx) "Context should be present in blet body")))) + engine (intemporal/make-workflow-engine :threads 2) + my-wf (fn [] + (blet [a (p/resolved 1) + b (p/resolved 2)] + (reset! blet-ctx ctx/*workflow-context*) + (+ a b)))] + (with-result [result (intemporal/start-workflow engine my-wf [])] + (is (= :completed (:status result))) + (is (some? @blet-ctx) "Context should be present in blet body") + (intemporal/shutdown-engine engine))))) + +(deftest test-regular-plet + (testing "blet propagates context" + (let [engine (intemporal/make-workflow-engine :threads 2) + my-wf (fn [] + (p/let [a (p/resolved 1) + b (p/resolved 2)] + (p/promise (+ a b))))] + (with-result [result (intemporal/start-workflow engine my-wf [])] + (is (= :completed (:status result))) + (is (= 3 (:result result)) "Context should be present in blet body") + (intemporal/shutdown-engine engine))))) From ba79e41e70532327dcfa6ce36577426e33990d72 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 18:47:14 +0000 Subject: [PATCH 71/81] fix ns --- ...ros_test.cljs => context_macros_test.cljs} | 2 +- test/intemporal/tests/deleteme_test.cljs | 36 ------------------- 2 files changed, 1 insertion(+), 37 deletions(-) rename test/intemporal/tests/{macros_test.cljs => context_macros_test.cljs} (98%) delete mode 100644 test/intemporal/tests/deleteme_test.cljs diff --git a/test/intemporal/tests/macros_test.cljs b/test/intemporal/tests/context_macros_test.cljs similarity index 98% rename from test/intemporal/tests/macros_test.cljs rename to test/intemporal/tests/context_macros_test.cljs index 69d62c2..e74ed70 100644 --- a/test/intemporal/tests/macros_test.cljs +++ b/test/intemporal/tests/context_macros_test.cljs @@ -1,4 +1,4 @@ -(ns intemporal.tests.macros-test +(ns intemporal.tests.context-macros-test (:require [intemporal.core :as intemporal] [cljs.test :refer [deftest is testing]] [intemporal.internal.context :as ctx] diff --git a/test/intemporal/tests/deleteme_test.cljs b/test/intemporal/tests/deleteme_test.cljs deleted file mode 100644 index 11ddbad..0000000 --- a/test/intemporal/tests/deleteme_test.cljs +++ /dev/null @@ -1,36 +0,0 @@ -(ns intemporal.tests.deleteme-test - (:require [cljs.test :as t :refer [deftest is testing]] - [intemporal.core :as intemporal] - [intemporal.tests.utils :refer [with-trace-logging]] - [promesa.core :as p]) - (:require-macros [intemporal.tests.utils :refer [with-result]] - [intemporal.internal.context :refer [blet]])) - -(t/use-fixtures :once with-trace-logging) - -(defn noop-activity [x] x) - -(defn noop-flow [id] - (let [act (intemporal/stub noop-activity)] - (act id))) - -(deftest test-simple-workflow - (testing "simplest possible workflow" - (let [engine (intemporal/make-workflow-engine :threads 2)] - (with-result [result (intemporal/start-workflow engine noop-flow [42])] - (is (= :completed (:status result))))))) - -(defn plet-activity [x] (* x 10)) - -(defn plet-flow [id] - (let [act (intemporal/stub plet-activity)] - (blet [v (act id)] - {:value v}))) - -(deftest test-plet-workflow - (testing "workflow returning a promise via p/let" - (let [engine (intemporal/make-workflow-engine :threads 2)] - (with-result [result (intemporal/start-workflow engine plet-flow [5])] - (println "PLET RESULT:" (pr-str result)) - (is (= :completed (:status result))) - (is (= {:value 50} (:result result))))))) From 0eb6be1946c95703f373e08bba560b2e3a8110ac Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 20:02:55 +0000 Subject: [PATCH 72/81] fix example --- doc/intemporal/automata.cljs | 46 ++- doc/intemporal/doc.cljs | 11 +- public/automata.html | 16 +- public/index.html | 23 +- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 340 ++++++++++--------- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/main.js | 2 +- public/js/manifest.edn | 2 +- public/js/shared.js | 24 +- 10 files changed, 249 insertions(+), 219 deletions(-) diff --git a/doc/intemporal/automata.cljs b/doc/intemporal/automata.cljs index ce3257a..9187f7d 100644 --- a/doc/intemporal/automata.cljs +++ b/doc/intemporal/automata.cljs @@ -56,38 +56,34 @@ ;;;; ;; workflow registration + (defn set-html! [id html] (-> js/document (.getElementById id) (.-innerHTML) (set! html))) -(defn set-results! [html] - (set-html! "results" html)) - (defn render-table! [id rows] - (let [header (keys (first rows)) - thead [:thead - [:tr - (for [h header] [:td h])]] - tbody [:tbody - (for [r rows] - [:tr {:class (name (get r :type))} - (for [h header] - [:td (pr-str (get r h))])])] - tbl (html - [:table {:role "grid"} - thead - tbody])] + (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result] + thead [:thead + [:tr + (for [h header] [:td h])]] + tbody [:tbody + (for [r rows] + [:tr ;{:class (get r :type)} + (for [h header] + [:td (pr-str (get r h))])])] + tbl (html + [:table {:role "grid"} + thead + tbody])] (set-html! id tbl))) (defn render-tables! [engine wf-id] (let [history (intemporal/get-workflow-history (:store engine) wf-id)] - #_#_#_#_ - (render-table! "tasks" tasks) - (render-table! "events" events) - (js/console.table (clj->js tasks)) - (js/console.table (clj->js events)))) + (render-table! "events" history) + (js/console.table (clj->js (mapv clj->js history))))) + ;;;; ;; bootstrap @@ -99,15 +95,15 @@ ;; set-results! (-> (:result res) (bthen (fn [r] - (js/console.log "res" (clj->js r)) + (js/console.log "res" (clj->js r)))) ;(set-results! (prn-str r)) ;(render-tables! engine "my-wflow") - )) + (p/catch (fn [r] - (js/console.error "error" r) + (js/console.error "error" r)))))) ;(set-results! (prn-str r) - ))))) + (comment (require '[shadow.cljs.devtools.api :as shadow]) diff --git a/doc/intemporal/doc.cljs b/doc/intemporal/doc.cljs index 144f734..a782f83 100644 --- a/doc/intemporal/doc.cljs +++ b/doc/intemporal/doc.cljs @@ -48,13 +48,13 @@ (set-html! "results" html)) (defn render-table! [id rows] - (let [header (keys (first rows)) + (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result] thead [:thead [:tr (for [h header] [:td h])]] tbody [:tbody (for [r rows] - [:tr {:class (name (get r :type))} + [:tr ;{:class (get r :type)} (for [h header] [:td (pr-str (get r h))])])] tbl (html @@ -65,11 +65,8 @@ (defn render-tables! [engine wf-id] (let [history (intemporal/get-workflow-history (:store engine) wf-id)] - #_#_#_#_ - (render-table! "tasks" tasks) - (render-table! "events" events) - (js/console.table (clj->js tasks)) - (js/console.table (clj->js events)))) + (render-table! "events" history) + (js/console.table (clj->js (mapv clj->js history))))) ;;;; ;; bootstrap diff --git a/public/automata.html b/public/automata.html index dc0ca8f..0b27988 100644 --- a/public/automata.html +++ b/public/automata.html @@ -85,16 +85,16 @@

Implementation

Workflow definition


 
-(defn run-fsm-workflow
-  [rules init-state init-event]
-  (let [stub      (a/stub-protocol EventHandler (make-event-handler) {:idempotent true})
+(defn run-fsm-workflow [rules init-state init-event]
+  (let [stub      (intemporal/stub process-event)
         initstate {::fsm/rules rules ::fsm/state init-state}]
 
-    (loop [state initstate
-           evt   init-event]
-      (if-let [nxt (process-event stub evt)]
-        (recur (fsm/transit state evt) nxt)
-        state))))
+    (p/loop [state initstate
+             evt   init-event]
+      (if evt
+        (p/recur (fsm/transit state evt)
+                 (stub evt))
+        (::fsm/state state)))))
 
 
diff --git a/public/index.html b/public/index.html index 2dfab14..638d34f 100644 --- a/public/index.html +++ b/public/index.html @@ -85,14 +85,21 @@

Workflow definition

Execution


-;; create a store
-(def mstore (s/make-memstore))
-;; start some worker that knows how to resolve protocol implementations
-(def worker (w/start-worker! mstore {`MyActivities (->MyActivitiesImpl)}))
-
-;; finally, call your workflow
-(let [res (w/with-env {:store mstore}
-             (my-workflow 1))]
+(defn init []
+  (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)
+        res    (intemporal/start-workflow engine my-workflow [1] :workflow-id "my-wflow"
+                                          :protocols {MyActivities (->MyActivitiesImpl)})]
+
+    ;; set-results!
+    (-> res
+        (bthen (fn [r]
+                  (js/console.log "res" (clj->js r))
+                  (set-results! (prn-str r))
+                  (render-tables! engine "my-wflow")))
+
+        (p/catch (fn [r]
+                   (js/console.error "error" r)
+                   (set-results! (prn-str r)))))))
 
 

Live example

diff --git a/public/js/automata.js b/public/js/automata.js index efc1c20..cd2da50 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39292 \x3d cljs.core._EQ_;\nvar expr__39293 \x3d event;\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39292.cljs$core$IFn$_invoke$arity$2 ? pred__39292.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39293) : pred__39292.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39293)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39302,reject_fn_39301){\nvar loop_fn_39298 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39298(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39299,err_39300){\nif((!((err_39300 \x3d\x3d null)))){\nreturn (reject_fn_39301.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39301.cljs$core$IFn$_invoke$arity$1(err_39300) : reject_fn_39301.call(null,err_39300));\n} else {\nif(promesa.core.recur_QMARK_(res_39299)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39298,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39299));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39302.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39302.cljs$core$IFn$_invoke$arity$1(res_39299) : resolve_fn_39302.call(null,res_39299));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39298(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.set_results_BANG_ \x3d (function intemporal$automata$set_results_BANG_(html){\nreturn intemporal.automata.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39313(s__39314){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39314__$1 \x3d s__39314;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39314__$1);\nif(temp__5825__auto__){\nvar s__39314__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39314__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39314__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39317 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39316 \x3d (0);\nwhile(true){\nif((i__39316 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39316);\ncljs.core.chunk_append(b__39317,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39349 \x3d (i__39316 + (1));\ni__39316 \x3d G__39349;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39317),intemporal$automata$render_table_BANG__$_iter__39313(cljs.core.chunk_rest(s__39314__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39317),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39314__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39313(cljs.core.rest(s__39314__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39319(s__39320){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39320__$1 \x3d s__39320;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39320__$1);\nif(temp__5825__auto__){\nvar s__39320__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39320__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39320__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39322 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39321 \x3d (0);\nwhile(true){\nif((i__39321 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39321);\ncljs.core.chunk_append(b__39322,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(s__39328){\nreturn (new cljs.core.LazySeq(null,((function (i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39328__$1 \x3d s__39328;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39328__$1);\nif(temp__5825__auto____$1){\nvar s__39328__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39328__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39328__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39330 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39329 \x3d (0);\nwhile(true){\nif((i__39329 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39329);\ncljs.core.chunk_append(b__39330,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39354 \x3d (i__39329 + (1));\ni__39329 \x3d G__39354;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39330),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(cljs.core.chunk_rest(s__39328__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39330),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39328__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39327(cljs.core.rest(s__39328__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39321,r,c__5501__auto__,size__5502__auto__,b__39322,s__39320__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39355 \x3d (i__39321 + (1));\ni__39321 \x3d G__39355;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39322),intemporal$automata$render_table_BANG__$_iter__39319(cljs.core.chunk_rest(s__39320__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39322),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39320__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__39320__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(s__39332){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39332__$1 \x3d s__39332;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39332__$1);\nif(temp__5825__auto____$1){\nvar s__39332__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39332__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39332__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39334 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39333 \x3d (0);\nwhile(true){\nif((i__39333 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39333);\ncljs.core.chunk_append(b__39334,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39356 \x3d (i__39333 + (1));\ni__39333 \x3d G__39356;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39334),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(cljs.core.chunk_rest(s__39332__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39334),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39332__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39319_$_iter__39331(cljs.core.rest(s__39332__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39320__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39319(cljs.core.rest(s__39320__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0))),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0))),(function (res){\nreturn promesa.protocols._promise(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})),(function (r){\nreturn console.error(\x22error\x22,r);\n})));\n}));\n}));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39165 \x3d cljs.core._EQ_;\nvar expr__39166 \x3d event;\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39172,reject_fn_39171){\nvar loop_fn_39168 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39168(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39169,err_39170){\nif((!((err_39170 \x3d\x3d null)))){\nreturn (reject_fn_39171.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39171.cljs$core$IFn$_invoke$arity$1(err_39170) : reject_fn_39171.call(null,err_39170));\n} else {\nif(promesa.core.recur_QMARK_(res_39169)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39168,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39169));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39172.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39172.cljs$core$IFn$_invoke$arity$1(res_39169) : resolve_fn_39172.call(null,res_39169));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39168(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39173(s__39174){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39174__$1 \x3d s__39174;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39174__$1);\nif(temp__5825__auto__){\nvar s__39174__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39174__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39174__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39176 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39175 \x3d (0);\nwhile(true){\nif((i__39175 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39175);\ncljs.core.chunk_append(b__39176,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39199 \x3d (i__39175 + (1));\ni__39175 \x3d G__39199;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39176),intemporal$automata$render_table_BANG__$_iter__39173(cljs.core.chunk_rest(s__39174__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39176),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39174__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39173(cljs.core.rest(s__39174__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39177(s__39178){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39178__$1 \x3d s__39178;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39178__$1);\nif(temp__5825__auto__){\nvar s__39178__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39178__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39178__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39180 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39179 \x3d (0);\nwhile(true){\nif((i__39179 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39179);\ncljs.core.chunk_append(b__39180,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(s__39182){\nreturn (new cljs.core.LazySeq(null,((function (i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39182__$1 \x3d s__39182;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39182__$1);\nif(temp__5825__auto____$1){\nvar s__39182__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39182__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39182__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39184 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39183 \x3d (0);\nwhile(true){\nif((i__39183 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39183);\ncljs.core.chunk_append(b__39184,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39200 \x3d (i__39183 + (1));\ni__39183 \x3d G__39200;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39184),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(cljs.core.chunk_rest(s__39182__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39184),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39182__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(cljs.core.rest(s__39182__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39201 \x3d (i__39179 + (1));\ni__39179 \x3d G__39201;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39180),intemporal$automata$render_table_BANG__$_iter__39177(cljs.core.chunk_rest(s__39178__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39180),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39178__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(s__39186){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39186__$1 \x3d s__39186;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39186__$1);\nif(temp__5825__auto____$1){\nvar s__39186__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39186__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39186__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39188 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39187 \x3d (0);\nwhile(true){\nif((i__39187 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39187);\ncljs.core.chunk_append(b__39188,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39202 \x3d (i__39187 + (1));\ni__39187 \x3d G__39202;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39188),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(cljs.core.chunk_rest(s__39186__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39188),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39186__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(cljs.core.rest(s__39186__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39178__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39177(cljs.core.rest(s__39178__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx39189 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39190 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39191 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39191);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39190);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39192 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39193 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39193);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39192);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39194 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39195 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39195);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39196 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39197 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39198 \x3d workflow_ctx39196;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39198);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39197);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39194);\n}})());\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index d3e35e7..0360d5f 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -11,7 +11,7 @@ return (1); */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_51204 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_39116 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -29,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_51204(this$,a); +return intemporal$doc$MyActivities$foo$dyn_39116(this$,a); } }); @@ -66,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k51169,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k39071,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__51173 = k51169; -switch (G__51173) { +var G__39075 = k39071; +switch (G__39075) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k51169,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39071,else__5326__auto__); } })); @@ -80,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k51169,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__51174){ -var vec__51175 = p__51174; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39076){ +var vec__39077 = p__39076; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -97,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__51168){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__39070){ var self__ = this; -var G__51168__$1 = this; -return (new cljs.core.RecordIter((0),G__51168__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__39070__$1 = this; +return (new cljs.core.RecordIter((0),G__39070__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -137,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this51170,other51171){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this39072,other39073){ var self__ = this; -var this51170__$1 = this; -return (((!((other51171 == null)))) && ((((this51170__$1.constructor === other51171.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this51170__$1.__extmap,other51171.__extmap))))); +var this39072__$1 = this; +return (((!((other39073 == null)))) && ((((this39072__$1.constructor === other39073.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39072__$1.__extmap,other39073.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -153,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k51169){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k39071){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k51169); +return cljs.core.contains_QMARK_(self__.__extmap,k39071); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__51168){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__39070){ var self__ = this; var this__5331__auto____$1 = this; -var pred__51178 = cljs.core.keyword_identical_QMARK_; -var expr__51179 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__51168),null)); +var pred__39080 = cljs.core.keyword_identical_QMARK_; +var expr__39081 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39070),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -173,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__51168){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__39070){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__51168,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__39070,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -223,12 +223,12 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__51172){ -var extmap__5365__auto__ = (function (){var G__51181 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__51172); -if(cljs.core.record_QMARK_(G__51172)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__51181); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__39074){ +var extmap__5365__auto__ = (function (){var G__39083 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39074); +if(cljs.core.record_QMARK_(G__39074)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39083); } else { -return G__51181; +return G__39083; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); @@ -241,95 +241,114 @@ return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__536 * @implements {cljs.core.IMeta} * @implements {cljs.core.IWithMeta} */ -intemporal.doc.t_intemporal$doc51185 = (function (i,sf,protocols51182,registry51183,meta51186){ +intemporal.doc.t_intemporal$doc39087 = (function (i,sf,protocols39084,registry39085,meta39088){ this.i = i; this.sf = sf; -this.protocols51182 = protocols51182; -this.registry51183 = registry51183; -this.meta51186 = meta51186; +this.protocols39084 = protocols39084; +this.registry39085 = registry39085; +this.meta39088 = meta39088; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }); -(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_51187,meta51186__$1){ +(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_39089,meta39088__$1){ var self__ = this; -var _51187__$1 = this; -return (new intemporal.doc.t_intemporal$doc51185(self__.i,self__.sf,self__.protocols51182,self__.registry51183,meta51186__$1)); +var _39089__$1 = this; +return (new intemporal.doc.t_intemporal$doc39087(self__.i,self__.sf,self__.protocols39084,self__.registry39085,meta39088__$1)); })); -(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_51187){ +(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_39089){ var self__ = this; -var _51187__$1 = this; -return self__.meta51186; +var _39089__$1 = this; +return self__.meta39088; })); -(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); +(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); -(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__50906__auto__,a){ +(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ var self__ = this; -var this__50906__auto____$1 = this; -var f__50907__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,18,19,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); -return f__50907__auto__(a); +var this__38237__auto____$1 = this; +var f__38238__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); +return f__38238__auto__(a); })); -(intemporal.doc.t_intemporal$doc51185.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols51182","protocols51182",-434579569,null),new cljs.core.Symbol(null,"registry51183","registry51183",-2083177811,null),new cljs.core.Symbol(null,"meta51186","meta51186",2123713693,null)], null); +(intemporal.doc.t_intemporal$doc39087.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols39084","protocols39084",-2142512373,null),new cljs.core.Symbol(null,"registry39085","registry39085",-682446983,null),new cljs.core.Symbol(null,"meta39088","meta39088",1404223621,null)], null); })); -(intemporal.doc.t_intemporal$doc51185.cljs$lang$type = true); +(intemporal.doc.t_intemporal$doc39087.cljs$lang$type = true); -(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc51185"); +(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc39087"); -(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc51185"); +(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ +return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc39087"); })); /** - * Positional factory function for intemporal.doc/t_intemporal$doc51185. + * Positional factory function for intemporal.doc/t_intemporal$doc39087. */ -intemporal.doc.__GT_t_intemporal$doc51185 = (function intemporal$doc$__GT_t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186){ -return (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186)); +intemporal.doc.__GT_t_intemporal$doc39087 = (function intemporal$doc$__GT_t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088){ +return (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088)); }); intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ var sf = intemporal.core.stub(intemporal.doc.activity_fn); -var pr = (function (){var protocols51182 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var registry51183 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var temp__5825__auto___51206 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols51182,intemporal.doc.MyActivities); -if(cljs.core.truth_(temp__5825__auto___51206)){ -var impl51184_51207 = temp__5825__auto___51206; -intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry51183,(function() { -var G__51208__delegate = function (args__50905__auto__){ -return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl51184_51207,args__50905__auto__); +var pr = (function (){var protocols39084 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var registry39085 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var temp__5825__auto___39118 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39084,intemporal.doc.MyActivities); +if(cljs.core.truth_(temp__5825__auto___39118)){ +var impl39086_39119 = temp__5825__auto___39118; +intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39085,(function() { +var G__39120__delegate = function (args__38236__auto__){ +return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39086_39119,args__38236__auto__); }; -var G__51208 = function (var_args){ -var args__50905__auto__ = null; +var G__39120 = function (var_args){ +var args__38236__auto__ = null; if (arguments.length > 0) { -var G__51209__i = 0, G__51209__a = new Array(arguments.length - 0); -while (G__51209__i < G__51209__a.length) {G__51209__a[G__51209__i] = arguments[G__51209__i + 0]; ++G__51209__i;} - args__50905__auto__ = new cljs.core.IndexedSeq(G__51209__a,0,null); +var G__39121__i = 0, G__39121__a = new Array(arguments.length - 0); +while (G__39121__i < G__39121__a.length) {G__39121__a[G__39121__i] = arguments[G__39121__i + 0]; ++G__39121__i;} + args__38236__auto__ = new cljs.core.IndexedSeq(G__39121__a,0,null); } -return G__51208__delegate.call(this,args__50905__auto__);}; -G__51208.cljs$lang$maxFixedArity = 0; -G__51208.cljs$lang$applyTo = (function (arglist__51210){ -var args__50905__auto__ = cljs.core.seq(arglist__51210); -return G__51208__delegate(args__50905__auto__); +return G__39120__delegate.call(this,args__38236__auto__);}; +G__39120.cljs$lang$maxFixedArity = 0; +G__39120.cljs$lang$applyTo = (function (arglist__39122){ +var args__38236__auto__ = cljs.core.seq(arglist__39122); +return G__39120__delegate(args__38236__auto__); }); -G__51208.cljs$core$IFn$_invoke$arity$variadic = G__51208__delegate; -return G__51208; +G__39120.cljs$core$IFn$_invoke$arity$variadic = G__39120__delegate; +return G__39120; })() ,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),"intemporal.doc/foo"], 0)); } else { } -return (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,null)); +return (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,null)); })(); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); -return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){ -return promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){ -return promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){ -return promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0))); +var workflow_ctx39090 = intemporal.internal.context._STAR_workflow_context_STAR_; +return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){ +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39091 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39092 = workflow_ctx39090; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39092); + +try{return sres; +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39091); +}})()),(function (v1){ +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39093 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39094 = workflow_ctx39090; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39094); + +try{return pres; +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39093); +}})()),(function (v2){ +return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39095 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39096 = workflow_ctx39090; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39096); + +try{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39095); +}})()); })); })); })); @@ -341,26 +360,26 @@ intemporal.doc.set_results_BANG_ = (function intemporal$doc$set_results_BANG_(ht return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ -var header = cljs.core.keys(cljs.core.first(rows)); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__51188(s__51189){ +var header = new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"event-type","event-type",319722813),new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.Keyword(null,"timestamp","timestamp",579478971),new cljs.core.Keyword(null,"seq","seq",-1817803783),new cljs.core.Keyword(null,"activity-name","activity-name",-294600638),new cljs.core.Keyword(null,"result","result",1415092211)], null); +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39097(s__39098){ return (new cljs.core.LazySeq(null,(function (){ -var s__51189__$1 = s__51189; +var s__39098__$1 = s__39098; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__51189__$1); +var temp__5825__auto__ = cljs.core.seq(s__39098__$1); if(temp__5825__auto__){ -var s__51189__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__51189__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__51189__$2); +var s__39098__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__39098__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39098__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__51191 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__51190 = (0); +var b__39100 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39099 = (0); while(true){ -if((i__51190 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__51190); -cljs.core.chunk_append(b__51191,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__39099 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__39099); +cljs.core.chunk_append(b__39100,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__51211 = (i__51190 + (1)); -i__51190 = G__51211; +var G__39123 = (i__39099 + (1)); +i__39099 = G__39123; continue; } else { return true; @@ -368,13 +387,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__51191),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.chunk_rest(s__51189__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39100),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.chunk_rest(s__39098__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__51191),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39100),null); } } else { -var h = cljs.core.first(s__51189__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.rest(s__51189__$2))); +var h = cljs.core.first(s__39098__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.rest(s__39098__$2))); } } else { return null; @@ -385,42 +404,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__51192(s__51193){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39101(s__39102){ return (new cljs.core.LazySeq(null,(function (){ -var s__51193__$1 = s__51193; +var s__39102__$1 = s__39102; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__51193__$1); +var temp__5825__auto__ = cljs.core.seq(s__39102__$1); if(temp__5825__auto__){ -var s__51193__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__51193__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__51193__$2); +var s__39102__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__39102__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39102__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__51195 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__51194 = (0); +var b__39104 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39103 = (0); while(true){ -if((i__51194 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__51194); -cljs.core.chunk_append(b__51195,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(s__51197){ -return (new cljs.core.LazySeq(null,((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){ +if((i__39103 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__39103); +cljs.core.chunk_append(b__39104,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(s__39106){ +return (new cljs.core.LazySeq(null,((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__51197__$1 = s__51197; +var s__39106__$1 = s__39106; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__51197__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__39106__$1); if(temp__5825__auto____$1){ -var s__51197__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__51197__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__51197__$2); +var s__39106__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__39106__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__39106__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__51199 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__51198 = (0); +var b__39108 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__39107 = (0); while(true){ -if((i__51198 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__51198); -cljs.core.chunk_append(b__51199,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__39107 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__39107); +cljs.core.chunk_append(b__39108,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__51212 = (i__51198 + (1)); -i__51198 = G__51212; +var G__39124 = (i__39107 + (1)); +i__39107 = G__39124; continue; } else { return true; @@ -428,28 +447,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__51199),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.chunk_rest(s__51197__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39108),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.chunk_rest(s__39106__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__51199),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39108),null); } } else { -var h = cljs.core.first(s__51197__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.rest(s__51197__$2))); +var h = cljs.core.first(s__39106__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.rest(s__39106__$2))); } } else { return null; } break; } -});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead)) +});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead)) +});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__51213 = (i__51194 + (1)); -i__51194 = G__51213; +var G__39125 = (i__39103 + (1)); +i__39103 = G__39125; continue; } else { return true; @@ -457,32 +476,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__51195),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.chunk_rest(s__51193__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39104),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.chunk_rest(s__39102__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__51195),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39104),null); } } else { -var r = cljs.core.first(s__51193__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,"type","type",1174270348)))], null),(function (){var iter__5503__auto__ = ((function (r,s__51193__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(s__51201){ +var r = cljs.core.first(s__39102__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__39102__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(s__39110){ return (new cljs.core.LazySeq(null,(function (){ -var s__51201__$1 = s__51201; +var s__39110__$1 = s__39110; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__51201__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__39110__$1); if(temp__5825__auto____$1){ -var s__51201__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__51201__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__51201__$2); +var s__39110__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__39110__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39110__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__51203 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__51202 = (0); +var b__39112 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39111 = (0); while(true){ -if((i__51202 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__51202); -cljs.core.chunk_append(b__51203,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__39111 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__39111); +cljs.core.chunk_append(b__39112,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__51214 = (i__51202 + (1)); -i__51202 = G__51214; +var G__39126 = (i__39111 + (1)); +i__39111 = G__39126; continue; } else { return true; @@ -490,13 +509,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__51203),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.chunk_rest(s__51201__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39112),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.chunk_rest(s__39110__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__51203),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39112),null); } } else { -var h = cljs.core.first(s__51201__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.rest(s__51201__$2))); +var h = cljs.core.first(s__39110__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.rest(s__39110__$2))); } } else { return null; @@ -504,10 +523,10 @@ return null; break; } }),null,null)); -});})(r,s__51193__$2,temp__5825__auto__,header,thead)) +});})(r,s__39102__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.rest(s__51193__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.rest(s__39102__$2))); } } else { return null; @@ -523,18 +542,29 @@ return intemporal.doc.set_html_BANG_(id,tbl); }); intemporal.doc.render_tables_BANG_ = (function intemporal$doc$render_tables_BANG_(engine,wf_id){ var history__$1 = intemporal.core.get_workflow_history(new cljs.core.Keyword(null,"store","store",1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id); -return null; +intemporal.doc.render_table_BANG_("events",history__$1); + +return console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1))); }); intemporal.doc.init = (function intemporal$doc$init(){ var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow",new cljs.core.Keyword(null,"protocols","protocols",-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0)); -return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){ +return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39113 = intemporal.internal.context._STAR_workflow_context_STAR_; +return promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){ +var _STAR_workflow_context_STAR__orig_val__39114 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39115 = workflow_ctx39113; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39115); + +try{return (function (r){ console.log("res",cljs.core.clj__GT_js(r)); intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0))); return intemporal.doc.render_tables_BANG_(engine,"my-wflow"); -})),(function (r){ +})(res__37297__auto__); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39114); +}})); +})(),(function (r){ console.error("error",r); return intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0))); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index 7f74e58..bb493d4 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AASA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,OAAAY,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,iCAAA,WAAQE,jBAAGL;AAAX,AAAA,OAAAE,wBAAA,AAAAC,iCAAA,WACQG,jBAAGL;AADX,AAAA,OAAAE,2BAEE,oDAAA,mFAAA,vIAACI,oMACKF,qDACAC;;;;;AAKZ,gCAAA,hCAAME,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,IAAMC,SAAO,AAACC,eAAK,AAACC,gBAAMH;YAA1B,mFAAA,uDAAA,mFAAA,rOACMI,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAA1B,qBAAA,AAAA5B,cAAAsD;AAAA,AAAA,GAAA1B;AAAA,AAAA,IAAA0B,eAAA1B;AAAA,AAAA,GAAA,AAAA4B,6BAAAF;AAAA,IAAAG,kBAi6EmC,AAAA8C,sBAAAjD;IAj6EnCI,qBAAA,AAAAjF,gBAAAgF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAArD,eAAAoD,gBAAAI,nCAAMQ;AAAN,AAAA,AAAA,AAAAP,uBAAAH,SAAA,mFAAA,iDAAqBU;;AAArB,eAAA,CAAAR,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAR,gBAAAG,pBAAMe;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAF,gDAAA,AAAAG,eAAAd,zEAAqBe;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAhB,mBAAQJ;;YAHtB,mFAAA,3FAIMqB,iJACO,iBAAAjB,qBAAA,0DAAAkB;AAAA,AAAA,YAAAhB,kBAAA,KAAA;AAAA,AAAA,IAAAgB,eAAAA;;AAAA,AAAA,IAAA3C,qBAAA,AAAA5B,cAAAuE;AAAA,AAAA,GAAA3C;AAAA,AAAA,IAAA2C,eAAA3C;AAAA,AAAA,GAAA,AAAA4B,6BAAAe;AAAA,IAAAd,kBA+5EoC,AAAA8C,sBAAAhC;IA/5EpCb,qBAAA,AAAAjF,gBAAAgF;IAAAe,WAAA,AAAAZ,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAe,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAf;AAAA,QAAA,AAAArD,eAAAoD,gBAAAgB,nCAAME;AAAN,AAAA,AAAA,AAAAb,uBAAAU,SAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACI,eAAK,8CAAA,9CAAC/H,4CAAI8H,iEACvB,iBAAAtB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAjD,yBAAA,AAAA5B,cAAA6E;AAAA,AAAA,GAAAjD;AAAA,AAAA,IAAAiD,eAAAjD;AAAA,AAAA,GAAA,AAAA4B,6BAAAqB;AAAA,IAAApB,sBA65EiC,AAAA8C,sBAAA1B;IA75EjCnB,yBAAA,AAAAjF,gBAAAgF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAArD,eAAAoD,oBAAAsB,vCAAMV;AAAN,AAAA,AAAA,AAAAP,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAACxI,4CAAI8H,EAAEN;;AADtB,eAAA,CAAAU,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAA3B,gBAAA0B,pBAAMR;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAa,8DAAA,AAAAZ,eAAAS,pPACO,AAACQ,wGAAO,AAACxI,4CAAI8H,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAhB,mBAAQJ;;;AAFX,eAAA,CAAAwB,WAAA;;;;AAAA;;;;;AAAA,OAAAV,qBAAA,AAAAC,gBAAAQ,UAAA,AAAAE,gDAAA,AAAAR,qBAAAK;;AAAA,OAAAR,qBAAA,AAAAC,gBAAAQ,UAAA;;;AAAA,QAAA,AAAArB,gBAAAoB,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAAA,2CAAA,wDACe,AAACS,eAAK,8CAAA,9CAAC/H,4CAAI8H,iEACvB,iBAAAtB,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAArD,yBAAA,AAAA5B,cAAAiF;AAAA,AAAA,GAAArD;AAAA,AAAA,IAAAqD,eAAArD;AAAA,AAAA,GAAA,AAAA4B,6BAAAyB;AAAA,IAAAxB,kBA65EiC,AAAA8C,sBAAAtB;IA75EjCvB,qBAAA,AAAAjF,gBAAAgF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAArD,eAAAoD,gBAAA0B,nCAAMd;AAAN,AAAA,AAAA,AAAAP,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAACxI,4CAAI8H,EAAEN;;AADtB,eAAA,CAAAc,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAA/B,gBAAA8B,pBAAMZ;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAiB,8DAAA,AAAAhB,eAAAa,pPACO,AAACI,wGAAO,AAACxI,4CAAI8H,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAhB,mBAAQJ;aAFX,AAAAyB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAlB,mBAAQL;;IAIfsC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAkB;AAZf,AAaE,OAAC5B,8BAAUC,GAAG2C;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AAAA;;AASF,sBAAA,tBAAMG;AAAN,AACE,IAAMJ,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACK;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BP,OAAOrE,uWACK/E,4BAAa,AAAC4E;AAFlE,yGAKM8E,hDACA,AAACE,oDAAO,WAAKtB,xHAKb,OAAC0B;AALO,AACE,YAAA,ZAACH,kBAAqB,AAACC,qBAAQxB;;AAC/B,AAAC7B,iCAAa,AAACsD,yGAAQzB;;AACvB,iDAAA,1CAACa,mCAAeC;IAEjB,WAAKd;AAAL,AACE,cAAA,dAAC2B,sBAAyB3B;;AAC1B,OAAC7B,iCAAa,AAACsD,yGAAQzB;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k51169","else__5326__auto__","G__51173","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__51174","vec__51175","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__51168","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this51170","other51171","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__51178","cljs.core/keyword-identical?","expr__51179","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__51172","extmap__5365__auto__","G__51181","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols51182","intemporal.internal.context/current-context","registry51183","temp__5825__auto__","impl51184","intemporal.internal.activity.register_activity_BANG_","args__50905__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc51185","sres","pres","promesa.protocols/-mcat","promesa.protocols/-promise","___30394__auto__","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","cljs.core/keys","cljs.core/first","thead","iter__5503__auto__","s__51189","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__51191","cljs.core/chunk-buffer","i__51190","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__51188","cljs.core/chunk-rest","cljs.core/cons","cljs.core/rest","h","tbody","s__51193","b__51195","i__51194","iter__51192","r","cljs.core/name","s__51197","b__51199","i__51198","iter__51196","s__51201","b__51203","i__51202","iter__51200","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","promesa.core.then","js/console.log","cljs.core/clj->js","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (p/let [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header (keys (first rows))\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr {:class (name (get r :type))}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n #_#_#_#_\n (render-table! \"tasks\" tasks)\n (render-table! \"events\" events)\n (js/console.table (clj->js tasks))\n (js/console.table (clj->js events))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (p/then (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k39071","else__5326__auto__","G__39075","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__39076","vec__39077","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__39070","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this39072","other39073","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__39080","cljs.core/keyword-identical?","expr__39081","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__39074","extmap__5365__auto__","G__39083","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols39084","intemporal.internal.context/current-context","registry39085","temp__5825__auto__","impl39086","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc39087","sres","pres","workflow-ctx39090","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__39091","*workflow-context*-temp-val__39092","*workflow-context*-orig-val__39093","*workflow-context*-temp-val__39094","*workflow-context*-orig-val__39095","*workflow-context*-temp-val__39096","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__39098","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__39100","cljs.core/chunk-buffer","i__39099","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__39097","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__39102","b__39104","i__39103","iter__39101","r","s__39106","b__39108","i__39107","iter__39105","s__39110","b__39112","i__39111","iter__39109","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx39113","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__39114","*workflow-context*-temp-val__39115","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 21ab185..671f99a 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_51204 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_51204(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k51169,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__51173 \x3d k51169;\nswitch (G__51173) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k51169,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__51174){\nvar vec__51175 \x3d p__51174;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51175,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__51168){\nvar self__ \x3d this;\nvar G__51168__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__51168__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this51170,other51171){\nvar self__ \x3d this;\nvar this51170__$1 \x3d this;\nreturn (((!((other51171 \x3d\x3d null)))) \x26\x26 ((((this51170__$1.constructor \x3d\x3d\x3d other51171.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this51170__$1.__extmap,other51171.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k51169){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k51169);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__51168){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__51178 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__51179 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__51168),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__51168){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__51168,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__51172){\nvar extmap__5365__auto__ \x3d (function (){var G__51181 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__51172);\nif(cljs.core.record_QMARK_(G__51172)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__51181);\n} else {\nreturn G__51181;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc51185 \x3d (function (i,sf,protocols51182,registry51183,meta51186){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols51182 \x3d protocols51182;\nthis.registry51183 \x3d registry51183;\nthis.meta51186 \x3d meta51186;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_51187,meta51186__$1){\nvar self__ \x3d this;\nvar _51187__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc51185(self__.i,self__.sf,self__.protocols51182,self__.registry51183,meta51186__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc51185.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_51187){\nvar self__ \x3d this;\nvar _51187__$1 \x3d this;\nreturn self__.meta51186;\n}));\n\n(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc51185.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__50906__auto__,a){\nvar self__ \x3d this;\nvar this__50906__auto____$1 \x3d this;\nvar f__50907__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,18,19,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__50907__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc51185.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols51182\x22,\x22protocols51182\x22,-434579569,null),new cljs.core.Symbol(null,\x22registry51183\x22,\x22registry51183\x22,-2083177811,null),new cljs.core.Symbol(null,\x22meta51186\x22,\x22meta51186\x22,2123713693,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc51185\x22);\n\n(intemporal.doc.t_intemporal$doc51185.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc51185\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc51185.\n */\nintemporal.doc.__GT_t_intemporal$doc51185 \x3d (function intemporal$doc$__GT_t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186){\nreturn (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,meta51186));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols51182 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry51183 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___51206 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols51182,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___51206)){\nvar impl51184_51207 \x3d temp__5825__auto___51206;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry51183,(function() { \nvar G__51208__delegate \x3d function (args__50905__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl51184_51207,args__50905__auto__);\n};\nvar G__51208 \x3d function (var_args){\nvar args__50905__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__51209__i \x3d 0, G__51209__a \x3d new Array(arguments.length - 0);\nwhile (G__51209__i \x3c G__51209__a.length) {G__51209__a[G__51209__i] \x3d arguments[G__51209__i + 0]; ++G__51209__i;}\n args__50905__auto__ \x3d new cljs.core.IndexedSeq(G__51209__a,0,null);\n} \nreturn G__51208__delegate.call(this,args__50905__auto__);};\nG__51208.cljs$lang$maxFixedArity \x3d 0;\nG__51208.cljs$lang$applyTo \x3d (function (arglist__51210){\nvar args__50905__auto__ \x3d cljs.core.seq(arglist__51210);\nreturn G__51208__delegate(args__50905__auto__);\n});\nG__51208.cljs$core$IFn$_invoke$arity$variadic \x3d G__51208__delegate;\nreturn G__51208;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc51185(i,sf,protocols51182,registry51183,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(sres),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(pres),(function (v2){\nreturn promesa.protocols._promise(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)));\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d cljs.core.keys(cljs.core.first(rows));\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__51188(s__51189){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51189__$1 \x3d s__51189;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__51189__$1);\nif(temp__5825__auto__){\nvar s__51189__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__51189__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51189__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51191 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51190 \x3d (0);\nwhile(true){\nif((i__51190 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__51190);\ncljs.core.chunk_append(b__51191,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__51211 \x3d (i__51190 + (1));\ni__51190 \x3d G__51211;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51191),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.chunk_rest(s__51189__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51191),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51189__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__51188(cljs.core.rest(s__51189__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__51192(s__51193){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51193__$1 \x3d s__51193;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__51193__$1);\nif(temp__5825__auto__){\nvar s__51193__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__51193__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51193__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51195 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51194 \x3d (0);\nwhile(true){\nif((i__51194 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__51194);\ncljs.core.chunk_append(b__51195,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(s__51197){\nreturn (new cljs.core.LazySeq(null,((function (i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__51197__$1 \x3d s__51197;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__51197__$1);\nif(temp__5825__auto____$1){\nvar s__51197__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__51197__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__51197__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__51199 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__51198 \x3d (0);\nwhile(true){\nif((i__51198 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__51198);\ncljs.core.chunk_append(b__51199,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__51212 \x3d (i__51198 + (1));\ni__51198 \x3d G__51212;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51199),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.chunk_rest(s__51197__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51199),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51197__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51196(cljs.core.rest(s__51197__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__51194,r,c__5501__auto__,size__5502__auto__,b__51195,s__51193__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__51213 \x3d (i__51194 + (1));\ni__51194 \x3d G__51213;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51195),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.chunk_rest(s__51193__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51195),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__51193__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),cljs.core.name(cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348)))], null),(function (){var iter__5503__auto__ \x3d ((function (r,s__51193__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(s__51201){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__51201__$1 \x3d s__51201;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__51201__$1);\nif(temp__5825__auto____$1){\nvar s__51201__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__51201__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__51201__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__51203 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__51202 \x3d (0);\nwhile(true){\nif((i__51202 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__51202);\ncljs.core.chunk_append(b__51203,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__51214 \x3d (i__51202 + (1));\ni__51202 \x3d G__51214;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51203),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.chunk_rest(s__51201__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__51203),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__51201__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__51192_$_iter__51200(cljs.core.rest(s__51201__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__51193__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__51192(cljs.core.rest(s__51193__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nreturn null;\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_39116 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_39116(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39071,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39075 \x3d k39071;\nswitch (G__39075) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39071,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39076){\nvar vec__39077 \x3d p__39076;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39070){\nvar self__ \x3d this;\nvar G__39070__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39070__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39072,other39073){\nvar self__ \x3d this;\nvar this39072__$1 \x3d this;\nreturn (((!((other39073 \x3d\x3d null)))) \x26\x26 ((((this39072__$1.constructor \x3d\x3d\x3d other39073.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39072__$1.__extmap,other39073.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39071){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39071);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39070){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39081 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39070),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39070){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__39070,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__39074){\nvar extmap__5365__auto__ \x3d (function (){var G__39083 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39074);\nif(cljs.core.record_QMARK_(G__39074)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39083);\n} else {\nreturn G__39083;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc39087 \x3d (function (i,sf,protocols39084,registry39085,meta39088){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols39084 \x3d protocols39084;\nthis.registry39085 \x3d registry39085;\nthis.meta39088 \x3d meta39088;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_39089,meta39088__$1){\nvar self__ \x3d this;\nvar _39089__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc39087(self__.i,self__.sf,self__.protocols39084,self__.registry39085,meta39088__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_39089){\nvar self__ \x3d this;\nvar _39089__$1 \x3d this;\nreturn self__.meta39088;\n}));\n\n(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc39087.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols39084\x22,\x22protocols39084\x22,-2142512373,null),new cljs.core.Symbol(null,\x22registry39085\x22,\x22registry39085\x22,-682446983,null),new cljs.core.Symbol(null,\x22meta39088\x22,\x22meta39088\x22,1404223621,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc39087\x22);\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc39087\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc39087.\n */\nintemporal.doc.__GT_t_intemporal$doc39087 \x3d (function intemporal$doc$__GT_t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088){\nreturn (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols39084 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry39085 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___39118 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39084,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___39118)){\nvar impl39086_39119 \x3d temp__5825__auto___39118;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39085,(function() { \nvar G__39120__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39086_39119,args__38236__auto__);\n};\nvar G__39120 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39121__i \x3d 0, G__39121__a \x3d new Array(arguments.length - 0);\nwhile (G__39121__i \x3c G__39121__a.length) {G__39121__a[G__39121__i] \x3d arguments[G__39121__i + 0]; ++G__39121__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__39121__a,0,null);\n} \nreturn G__39120__delegate.call(this,args__38236__auto__);};\nG__39120.cljs$lang$maxFixedArity \x3d 0;\nG__39120.cljs$lang$applyTo \x3d (function (arglist__39122){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__39122);\nreturn G__39120__delegate(args__38236__auto__);\n});\nG__39120.cljs$core$IFn$_invoke$arity$variadic \x3d G__39120__delegate;\nreturn G__39120;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx39090 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39091 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39092 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39092);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39091);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39093 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39094 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39094);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39093);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39095 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39096 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39096);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39095);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39097(s__39098){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39098__$1 \x3d s__39098;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39098__$1);\nif(temp__5825__auto__){\nvar s__39098__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39098__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39098__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39100 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39099 \x3d (0);\nwhile(true){\nif((i__39099 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39099);\ncljs.core.chunk_append(b__39100,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39123 \x3d (i__39099 + (1));\ni__39099 \x3d G__39123;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39100),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.chunk_rest(s__39098__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39100),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39098__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.rest(s__39098__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39101(s__39102){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39102__$1 \x3d s__39102;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39102__$1);\nif(temp__5825__auto__){\nvar s__39102__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39102__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39102__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39104 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39103 \x3d (0);\nwhile(true){\nif((i__39103 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39103);\ncljs.core.chunk_append(b__39104,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(s__39106){\nreturn (new cljs.core.LazySeq(null,((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39106__$1 \x3d s__39106;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39106__$1);\nif(temp__5825__auto____$1){\nvar s__39106__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39106__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39106__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39108 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39107 \x3d (0);\nwhile(true){\nif((i__39107 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39107);\ncljs.core.chunk_append(b__39108,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39124 \x3d (i__39107 + (1));\ni__39107 \x3d G__39124;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39108),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.chunk_rest(s__39106__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39108),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39106__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.rest(s__39106__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39125 \x3d (i__39103 + (1));\ni__39103 \x3d G__39125;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39104),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.chunk_rest(s__39102__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39104),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39102__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(s__39110){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39110__$1 \x3d s__39110;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39110__$1);\nif(temp__5825__auto____$1){\nvar s__39110__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39110__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39110__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39112 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39111 \x3d (0);\nwhile(true){\nif((i__39111 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39111);\ncljs.core.chunk_append(b__39112,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39126 \x3d (i__39111 + (1));\ni__39111 \x3d G__39126;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39112),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.chunk_rest(s__39110__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39112),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39110__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.rest(s__39110__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39102__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.rest(s__39102__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39113 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39114 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39115 \x3d workflow_ctx39113;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39115);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39114);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/manifest.edn b/public/js/manifest.edn index 82f674e..1c6b8f9 100644 --- a/public/js/manifest.edn +++ b/public/js/manifest.edn @@ -1 +1 @@ -[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "intemporal/internal/error.cljc" "intemporal/protocol.cljc" "intemporal/internal/context.cljc" "intemporal/internal/activity.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/internal/logging.cljc" "intemporal/utils.cljc" "intemporal/internal/runtime.cljs" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "intemporal/internal/execution.cljs" "intemporal/internal/fns/start_workflow.cljs" "intemporal/store.cljc" "intemporal/observer.cljc" "cljs/analyzer/impl.cljc" "cljs/analyzer/impl/namespaces.cljc" "cljs/analyzer/passes.cljc" "cljs/analyzer/passes/and_or.cljc" "cljs/env.cljc" "cljs/tagged_literals.cljc" "cljs/analyzer.cljc" "cljs/analyzer/api.cljc" "intemporal/internal/macros.cljc" "intemporal/core.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file +[{:module-id :shared, :name :shared, :output-name "shared.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/dom/element.js" "goog/asserts/dom.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/object/object.js" "goog/html/safestylesheet.js" "goog/flags/flags.js" "goog/labs/useragent/useragent.js" "goog/labs/useragent/util.js" "goog/labs/useragent/highentropy/highentropyvalue.js" "goog/labs/useragent/chromium_rebrands.js" "goog/labs/useragent/highentropy/highentropydata.js" "goog/labs/useragent/browser.js" "goog/array/array.js" "goog/dom/tags.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/collections/maps.js" "goog/structs/structs.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/math.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/collections/iters.js" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/iter/iter.js" "goog/iter/es6.js" "goog/structs/map.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/style/style.js" "shadow/dom.cljs" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "shadow/remote/runtime/shared.cljc" "clojure/core/protocols.cljs" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/datafy.cljs" "cljs/pprint.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "shadow/remote/runtime/writer.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "intemporal/internal/error.cljc" "intemporal/protocol.cljc" "promesa/protocols.cljc" "promesa/util.cljc" "promesa/impl/promise.js" "promesa/exec.cljc" "promesa/impl.cljc" "promesa/core.cljc" "intemporal/internal/context.cljc" "intemporal/internal/activity.cljc" "taoensso/truss/impl.cljc" "taoensso/truss.cljc" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "goog/disposable/idisposable.js" "goog/disposable/dispose.js" "goog/disposable/disposeall.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/events/browserfeature.js" "goog/events/eventtypehelpers.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listenablekey.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/events/events.js" "goog/promise/thenable.js" "goog/async/freelist.js" "goog/async/workqueue.js" "goog/debug/asyncstacktag.js" "goog/async/throwexception.js" "goog/async/run.js" "goog/promise/resolver.js" "goog/promise/promise.js" "goog/events/eventtarget.js" "goog/timer/timer.js" "goog/json/json.js" "goog/json/hybrid.js" "goog/log/log.js" "goog/net/errorcode.js" "goog/net/eventtype.js" "goog/net/httpstatus.js" "goog/net/xhrlike.js" "goog/net/xmlhttpfactory.js" "goog/net/wrapperxmlhttpfactory.js" "goog/net/xmlhttp.js" "goog/net/xhrio.js" "goog/structs/queue.js" "goog/structs/collection.js" "goog/structs/set.js" "goog/structs/pool.js" "goog/structs/node.js" "goog/structs/heap.js" "goog/structs/priorityqueue.js" "goog/structs/prioritypool.js" "goog/net/xhriopool.js" "taoensso/encore.cljc" "taoensso/encore/stats.cljc" "taoensso/encore/signals.cljc" "taoensso/telemere/impl.cljc" "taoensso/telemere/utils.cljc" "taoensso/telemere/consoles.cljc" "taoensso/telemere.cljc" "intemporal/internal/logging.cljc" "intemporal/utils.cljc" "intemporal/internal/runtime.cljs" "intemporal/internal/execution.cljs" "intemporal/internal/fns/start_workflow.cljs" "intemporal/store.cljc" "intemporal/observer.cljc" "cljs/analyzer/impl.cljc" "cljs/analyzer/impl/namespaces.cljc" "cljs/analyzer/passes.cljc" "cljs/analyzer/passes/and_or.cljc" "cljs/env.cljc" "cljs/tagged_literals.cljc" "cljs/analyzer.cljc" "cljs/analyzer/api.cljc" "intemporal/internal/macros.cljc" "intemporal/core.cljc" "hiccups/runtime.cljs" "shadow/module/shared/append.js"]} {:module-id :main, :name :main, :output-name "main.js", :entries [intemporal.doc], :depends-on #{:shared}, :sources ["intemporal/doc.cljs" "shadow/module/main/append.js"]} {:module-id :automata, :name :automata, :output-name "automata.js", :entries [intemporal.automata], :depends-on #{:shared}, :sources ["intemporal/fsm.cljs" "intemporal/automata.cljs" "shadow/module/automata/append.js"]}] \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index e4a582f..b09c8b2 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1,7 +1,7 @@ var shadow$provide = {}; var CLOSURE_NO_DEPS = true; var CLOSURE_BASE_PATH = '/js/cljs-runtime/'; -var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"ca52f27a-340e-4cce-81e2-b59dc48d44ba","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"e179fad4-9a46-4363-80dc-bc50e6bc22ca","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; +var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"48ae4026-c623-4ec1-b898-fa28a272fd68","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"8efda71f-0eba-448f-b37c-bd96e5cf4f0c","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"doc","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"}; var COMPILED = false; var goog = goog || {}; goog.global = this || self; @@ -1537,7 +1537,13 @@ SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.websocket.js", true, "goog.prov SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.browser.js", true, "goog.provide(\x27shadow.cljs.devtools.client.browser\x27);\nshadow.cljs.devtools.client.browser.devtools_msg \x3d (function shadow$cljs$devtools$client$browser$devtools_msg(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___44171 \x3d arguments.length;\nvar i__5750__auto___44172 \x3d (0);\nwhile(true){\nif((i__5750__auto___44172 \x3c len__5749__auto___44171)){\nargs__5755__auto__.push((arguments[i__5750__auto___44172]));\n\nvar G__44173 \x3d (i__5750__auto___44172 + (1));\ni__5750__auto___44172 \x3d G__44173;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic \x3d (function (msg,args){\nif(shadow.cljs.devtools.client.env.log){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.log_style)){\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22%cshadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27),shadow.cljs.devtools.client.env.log_style], null),args)));\n} else {\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22shadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null),args)));\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$applyTo \x3d (function (seq43292){\nvar G__43293 \x3d cljs.core.first(seq43292);\nvar seq43292__$1 \x3d cljs.core.next(seq43292);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__43293,seq43292__$1);\n}));\n\nshadow.cljs.devtools.client.browser.script_eval \x3d (function shadow$cljs$devtools$client$browser$script_eval(code){\nreturn goog.globalEval(code);\n});\nshadow.cljs.devtools.client.browser.do_js_load \x3d (function shadow$cljs$devtools$client$browser$do_js_load(sources){\nvar seq__43305 \x3d cljs.core.seq(sources);\nvar chunk__43306 \x3d null;\nvar count__43307 \x3d (0);\nvar i__43308 \x3d (0);\nwhile(true){\nif((i__43308 \x3c count__43307)){\nvar map__43318 \x3d chunk__43306.cljs$core$IIndexed$_nth$arity$2(null,i__43308);\nvar map__43318__$1 \x3d cljs.core.__destructure_map(map__43318);\nvar src \x3d map__43318__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43318__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43320){var e_44176 \x3d e43320;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44176);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44176.message)].join(\x27\x27)));\n}\n\nvar G__44179 \x3d seq__43305;\nvar G__44180 \x3d chunk__43306;\nvar G__44181 \x3d count__43307;\nvar G__44182 \x3d (i__43308 + (1));\nseq__43305 \x3d G__44179;\nchunk__43306 \x3d G__44180;\ncount__43307 \x3d G__44181;\ni__43308 \x3d G__44182;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43305);\nif(temp__5825__auto__){\nvar seq__43305__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43305__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43305__$1);\nvar G__44183 \x3d cljs.core.chunk_rest(seq__43305__$1);\nvar G__44184 \x3d c__5548__auto__;\nvar G__44185 \x3d cljs.core.count(c__5548__auto__);\nvar G__44186 \x3d (0);\nseq__43305 \x3d G__44183;\nchunk__43306 \x3d G__44184;\ncount__43307 \x3d G__44185;\ni__43308 \x3d G__44186;\ncontinue;\n} else {\nvar map__43324 \x3d cljs.core.first(seq__43305__$1);\nvar map__43324__$1 \x3d cljs.core.__destructure_map(map__43324);\nvar src \x3d map__43324__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43324__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e43325){var e_44188 \x3d e43325;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_44188);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_44188.message)].join(\x27\x27)));\n}\n\nvar G__44190 \x3d cljs.core.next(seq__43305__$1);\nvar G__44191 \x3d null;\nvar G__44192 \x3d (0);\nvar G__44193 \x3d (0);\nseq__43305 \x3d G__44190;\nchunk__43306 \x3d G__44191;\ncount__43307 \x3d G__44192;\ni__43308 \x3d G__44193;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.do_js_reload \x3d (function shadow$cljs$devtools$client$browser$do_js_reload(msg,sources,complete_fn,failure_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(msg,new cljs.core.Keyword(null,\x22log-missing-fn\x22,\x22log-missing-fn\x22,732676765),(function (fn_sym){\nreturn null;\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22log-call-async\x22,\x22log-call-async\x22,183826192),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call async \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22log-call\x22,\x22log-call\x22,412404391),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n})], 0)),(function (next){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n}),complete_fn,failure_fn);\n});\n/**\n * when (require \x27[\x22some-str\x22 :as x]) is done at the REPL we need to manually call the shadow.js.require for it\n * since the file only adds the shadow$provide. only need to do this for shadow-js.\n */\nshadow.cljs.devtools.client.browser.do_js_requires \x3d (function shadow$cljs$devtools$client$browser$do_js_requires(js_requires){\nvar seq__43333 \x3d cljs.core.seq(js_requires);\nvar chunk__43334 \x3d null;\nvar count__43335 \x3d (0);\nvar i__43336 \x3d (0);\nwhile(true){\nif((i__43336 \x3c count__43335)){\nvar js_ns \x3d chunk__43334.cljs$core$IIndexed$_nth$arity$2(null,i__43336);\nvar require_str_44197 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44197);\n\n\nvar G__44201 \x3d seq__43333;\nvar G__44202 \x3d chunk__43334;\nvar G__44203 \x3d count__43335;\nvar G__44204 \x3d (i__43336 + (1));\nseq__43333 \x3d G__44201;\nchunk__43334 \x3d G__44202;\ncount__43335 \x3d G__44203;\ni__43336 \x3d G__44204;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43333);\nif(temp__5825__auto__){\nvar seq__43333__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43333__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43333__$1);\nvar G__44206 \x3d cljs.core.chunk_rest(seq__43333__$1);\nvar G__44207 \x3d c__5548__auto__;\nvar G__44208 \x3d cljs.core.count(c__5548__auto__);\nvar G__44209 \x3d (0);\nseq__43333 \x3d G__44206;\nchunk__43334 \x3d G__44207;\ncount__43335 \x3d G__44208;\ni__43336 \x3d G__44209;\ncontinue;\n} else {\nvar js_ns \x3d cljs.core.first(seq__43333__$1);\nvar require_str_44210 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_44210);\n\n\nvar G__44211 \x3d cljs.core.next(seq__43333__$1);\nvar G__44212 \x3d null;\nvar G__44213 \x3d (0);\nvar G__44214 \x3d (0);\nseq__43333 \x3d G__44211;\nchunk__43334 \x3d G__44212;\ncount__43335 \x3d G__44213;\ni__43336 \x3d G__44214;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.handle_build_complete \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete(runtime,p__43350){\nvar map__43351 \x3d p__43350;\nvar map__43351__$1 \x3d cljs.core.__destructure_map(map__43351);\nvar msg \x3d map__43351__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43351__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__5503__auto__ \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(s__43354){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__43354__$1 \x3d s__43354;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__43354__$1);\nif(temp__5825__auto__){\nvar xs__6385__auto__ \x3d temp__5825__auto__;\nvar map__43363 \x3d cljs.core.first(xs__6385__auto__);\nvar map__43363__$1 \x3d cljs.core.__destructure_map(map__43363);\nvar src \x3d map__43363__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43363__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__5499__auto__ \x3d ((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(s__43356){\nreturn (new cljs.core.LazySeq(null,((function (s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info){\nreturn (function (){\nvar s__43356__$1 \x3d s__43356;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__43356__$1);\nif(temp__5825__auto____$1){\nvar s__43356__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__43356__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__43356__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__43358 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__43357 \x3d (0);\nwhile(true){\nif((i__43357 \x3c size__5502__auto__)){\nvar warning \x3d cljs.core._nth(c__5501__auto__,i__43357);\ncljs.core.chunk_append(b__43358,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name));\n\nvar G__44220 \x3d (i__43357 + (1));\ni__43357 \x3d G__44220;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.chunk_rest(s__43356__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__43358),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__43356__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353_$_iter__43355(cljs.core.rest(s__43356__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n,null,null));\n});})(s__43354__$1,map__43363,map__43363__$1,src,resource_name,warnings,xs__6385__auto__,temp__5825__auto__,map__43351,map__43351__$1,msg,info,reload_info))\n;\nvar fs__5500__auto__ \x3d cljs.core.seq(iterys__5499__auto__(warnings));\nif(fs__5500__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5500__auto__,shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__43353(cljs.core.rest(s__43354__$1)));\n} else {\nvar G__44221 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44221;\ncontinue;\n}\n} else {\nvar G__44222 \x3d cljs.core.rest(s__43354__$1);\ns__43354__$1 \x3d G__44222;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nif(shadow.cljs.devtools.client.env.log){\nvar seq__43368_44223 \x3d cljs.core.seq(warnings);\nvar chunk__43369_44224 \x3d null;\nvar count__43370_44225 \x3d (0);\nvar i__43371_44226 \x3d (0);\nwhile(true){\nif((i__43371_44226 \x3c count__43370_44225)){\nvar map__43400_44229 \x3d chunk__43369_44224.cljs$core$IIndexed$_nth$arity$2(null,i__43371_44226);\nvar map__43400_44230__$1 \x3d cljs.core.__destructure_map(map__43400_44229);\nvar w_44231 \x3d map__43400_44230__$1;\nvar msg_44232__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44233 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44234 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44235 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43400_44230__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44235),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44233),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44234),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44232__$1)].join(\x27\x27));\n\n\nvar G__44238 \x3d seq__43368_44223;\nvar G__44239 \x3d chunk__43369_44224;\nvar G__44240 \x3d count__43370_44225;\nvar G__44241 \x3d (i__43371_44226 + (1));\nseq__43368_44223 \x3d G__44238;\nchunk__43369_44224 \x3d G__44239;\ncount__43370_44225 \x3d G__44240;\ni__43371_44226 \x3d G__44241;\ncontinue;\n} else {\nvar temp__5825__auto___44242 \x3d cljs.core.seq(seq__43368_44223);\nif(temp__5825__auto___44242){\nvar seq__43368_44243__$1 \x3d temp__5825__auto___44242;\nif(cljs.core.chunked_seq_QMARK_(seq__43368_44243__$1)){\nvar c__5548__auto___44245 \x3d cljs.core.chunk_first(seq__43368_44243__$1);\nvar G__44246 \x3d cljs.core.chunk_rest(seq__43368_44243__$1);\nvar G__44247 \x3d c__5548__auto___44245;\nvar G__44248 \x3d cljs.core.count(c__5548__auto___44245);\nvar G__44249 \x3d (0);\nseq__43368_44223 \x3d G__44246;\nchunk__43369_44224 \x3d G__44247;\ncount__43370_44225 \x3d G__44248;\ni__43371_44226 \x3d G__44249;\ncontinue;\n} else {\nvar map__43414_44250 \x3d cljs.core.first(seq__43368_44243__$1);\nvar map__43414_44251__$1 \x3d cljs.core.__destructure_map(map__43414_44250);\nvar w_44252 \x3d map__43414_44251__$1;\nvar msg_44253__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_44254 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_44255 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_44256 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43414_44251__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_44256),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_44254),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_44255),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_44253__$1)].join(\x27\x27));\n\n\nvar G__44258 \x3d cljs.core.next(seq__43368_44243__$1);\nvar G__44259 \x3d null;\nvar G__44260 \x3d (0);\nvar G__44261 \x3d (0);\nseq__43368_44223 \x3d G__44258;\nchunk__43369_44224 \x3d G__44259;\ncount__43370_44225 \x3d G__44260;\ni__43371_44226 \x3d G__44261;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nif((!(shadow.cljs.devtools.client.env.autoload))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(((cljs.core.empty_QMARK_(warnings)) || (shadow.cljs.devtools.client.env.ignore_warnings))){\nvar sources_to_get \x3d shadow.cljs.devtools.client.env.filter_reload_sources(info,reload_info);\nif(cljs.core.not(cljs.core.seq(sources_to_get))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22after-load\x22,\x22after-load\x22,-1278503285)], null)))){\n} else {\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22reloading code but no :after-load hooks are configured!\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22https://shadow-cljs.github.io/docs/UsersGuide.html#_lifecycle_hooks\x22], 0));\n}\n\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime,sources_to_get,(function (p1__43348_SHARP_){\nreturn shadow.cljs.devtools.client.browser.do_js_reload(msg,p1__43348_SHARP_,shadow.cljs.devtools.client.hud.load_end_success,shadow.cljs.devtools.client.hud.load_failure);\n}));\n}\n} else {\nreturn null;\n}\n}\n});\nshadow.cljs.devtools.client.browser.page_load_uri \x3d (cljs.core.truth_(goog.global.document)?goog.Uri.parse(document.location.href):null);\nshadow.cljs.devtools.client.browser.match_paths \x3d (function shadow$cljs$devtools$client$browser$match_paths(old,new$){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22file\x22,shadow.cljs.devtools.client.browser.page_load_uri.getScheme())){\nvar rel_new \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(new$,(1));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,rel_new)) || (clojure.string.starts_with_QMARK_(old,[rel_new,\x22?\x22].join(\x27\x27))))){\nreturn rel_new;\n} else {\nreturn null;\n}\n} else {\nvar node_uri \x3d goog.Uri.parse(old);\nvar node_uri_resolved \x3d shadow.cljs.devtools.client.browser.page_load_uri.resolve(node_uri);\nvar node_abs \x3d node_uri_resolved.getPath();\nvar and__5023__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.browser.page_load_uri.hasSameDomainAs(node_uri))) || (cljs.core.not(node_uri.hasDomain())));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node_abs,new$);\nif(and__5023__auto____$1){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__43435 \x3d node_uri;\nG__43435.setQuery(null);\n\nG__43435.setPath(new$);\n\nreturn G__43435;\n})());\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n});\nshadow.cljs.devtools.client.browser.handle_asset_update \x3d (function shadow$cljs$devtools$client$browser$handle_asset_update(p__43443){\nvar map__43444 \x3d p__43443;\nvar map__43444__$1 \x3d cljs.core.__destructure_map(map__43444);\nvar msg \x3d map__43444__$1;\nvar updates \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22updates\x22,\x22updates\x22,2013983452));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43444__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar seq__43446 \x3d cljs.core.seq(updates);\nvar chunk__43448 \x3d null;\nvar count__43449 \x3d (0);\nvar i__43450 \x3d (0);\nwhile(true){\nif((i__43450 \x3c count__43449)){\nvar path \x3d chunk__43448.cljs$core$IIndexed$_nth$arity$2(null,i__43450);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43728_44266 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43732_44267 \x3d null;\nvar count__43733_44268 \x3d (0);\nvar i__43734_44269 \x3d (0);\nwhile(true){\nif((i__43734_44269 \x3c count__43733_44268)){\nvar node_44270 \x3d chunk__43732_44267.cljs$core$IIndexed$_nth$arity$2(null,i__43734_44269);\nif(cljs.core.not(node_44270.shadow$old)){\nvar path_match_44271 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44270.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44271)){\nvar new_link_44272 \x3d (function (){var G__43814 \x3d node_44270.cloneNode(true);\nG__43814.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44271),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43814;\n})();\n(node_44270.shadow$old \x3d true);\n\n(new_link_44272.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43816_44273 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43818_44274 \x3d null;\nvar count__43819_44275 \x3d (0);\nvar i__43820_44276 \x3d (0);\nwhile(true){\nif((i__43820_44276 \x3c count__43819_44275)){\nvar map__43828_44279 \x3d chunk__43818_44274.cljs$core$IIndexed$_nth$arity$2(null,i__43820_44276);\nvar map__43828_44280__$1 \x3d cljs.core.__destructure_map(map__43828_44279);\nvar task_44281 \x3d map__43828_44280__$1;\nvar fn_str_44282 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44283 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43828_44280__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44284 \x3d goog.getObjectByName(fn_str_44282,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44283)].join(\x27\x27));\n\n(fn_obj_44284.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44284.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44284.call(null,path,new_link_44272));\n\n\nvar G__44287 \x3d seq__43816_44273;\nvar G__44288 \x3d chunk__43818_44274;\nvar G__44289 \x3d count__43819_44275;\nvar G__44290 \x3d (i__43820_44276 + (1));\nseq__43816_44273 \x3d G__44287;\nchunk__43818_44274 \x3d G__44288;\ncount__43819_44275 \x3d G__44289;\ni__43820_44276 \x3d G__44290;\ncontinue;\n} else {\nvar temp__5825__auto___44291 \x3d cljs.core.seq(seq__43816_44273);\nif(temp__5825__auto___44291){\nvar seq__43816_44292__$1 \x3d temp__5825__auto___44291;\nif(cljs.core.chunked_seq_QMARK_(seq__43816_44292__$1)){\nvar c__5548__auto___44293 \x3d cljs.core.chunk_first(seq__43816_44292__$1);\nvar G__44294 \x3d cljs.core.chunk_rest(seq__43816_44292__$1);\nvar G__44295 \x3d c__5548__auto___44293;\nvar G__44296 \x3d cljs.core.count(c__5548__auto___44293);\nvar G__44297 \x3d (0);\nseq__43816_44273 \x3d G__44294;\nchunk__43818_44274 \x3d G__44295;\ncount__43819_44275 \x3d G__44296;\ni__43820_44276 \x3d G__44297;\ncontinue;\n} else {\nvar map__43833_44299 \x3d cljs.core.first(seq__43816_44292__$1);\nvar map__43833_44300__$1 \x3d cljs.core.__destructure_map(map__43833_44299);\nvar task_44301 \x3d map__43833_44300__$1;\nvar fn_str_44302 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44303 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43833_44300__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44304 \x3d goog.getObjectByName(fn_str_44302,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44303)].join(\x27\x27));\n\n(fn_obj_44304.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44304.cljs$core$IFn$_invoke$arity$2(path,new_link_44272) : fn_obj_44304.call(null,path,new_link_44272));\n\n\nvar G__44305 \x3d cljs.core.next(seq__43816_44292__$1);\nvar G__44306 \x3d null;\nvar G__44307 \x3d (0);\nvar G__44308 \x3d (0);\nseq__43816_44273 \x3d G__44305;\nchunk__43818_44274 \x3d G__44306;\ncount__43819_44275 \x3d G__44307;\ni__43820_44276 \x3d G__44308;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44270);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44272,path_match_44271,node_44270,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44271], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44272,node_44270);\n\n\nvar G__44309 \x3d seq__43728_44266;\nvar G__44310 \x3d chunk__43732_44267;\nvar G__44311 \x3d count__43733_44268;\nvar G__44312 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44309;\nchunk__43732_44267 \x3d G__44310;\ncount__43733_44268 \x3d G__44311;\ni__43734_44269 \x3d G__44312;\ncontinue;\n} else {\nvar G__44313 \x3d seq__43728_44266;\nvar G__44314 \x3d chunk__43732_44267;\nvar G__44315 \x3d count__43733_44268;\nvar G__44316 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44313;\nchunk__43732_44267 \x3d G__44314;\ncount__43733_44268 \x3d G__44315;\ni__43734_44269 \x3d G__44316;\ncontinue;\n}\n} else {\nvar G__44317 \x3d seq__43728_44266;\nvar G__44318 \x3d chunk__43732_44267;\nvar G__44319 \x3d count__43733_44268;\nvar G__44320 \x3d (i__43734_44269 + (1));\nseq__43728_44266 \x3d G__44317;\nchunk__43732_44267 \x3d G__44318;\ncount__43733_44268 \x3d G__44319;\ni__43734_44269 \x3d G__44320;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44321 \x3d cljs.core.seq(seq__43728_44266);\nif(temp__5825__auto___44321){\nvar seq__43728_44322__$1 \x3d temp__5825__auto___44321;\nif(cljs.core.chunked_seq_QMARK_(seq__43728_44322__$1)){\nvar c__5548__auto___44323 \x3d cljs.core.chunk_first(seq__43728_44322__$1);\nvar G__44324 \x3d cljs.core.chunk_rest(seq__43728_44322__$1);\nvar G__44325 \x3d c__5548__auto___44323;\nvar G__44326 \x3d cljs.core.count(c__5548__auto___44323);\nvar G__44327 \x3d (0);\nseq__43728_44266 \x3d G__44324;\nchunk__43732_44267 \x3d G__44325;\ncount__43733_44268 \x3d G__44326;\ni__43734_44269 \x3d G__44327;\ncontinue;\n} else {\nvar node_44328 \x3d cljs.core.first(seq__43728_44322__$1);\nif(cljs.core.not(node_44328.shadow$old)){\nvar path_match_44329 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44328.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44329)){\nvar new_link_44331 \x3d (function (){var G__43844 \x3d node_44328.cloneNode(true);\nG__43844.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44329),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43844;\n})();\n(node_44328.shadow$old \x3d true);\n\n(new_link_44331.onload \x3d ((function (seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43849_44332 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43851_44333 \x3d null;\nvar count__43852_44334 \x3d (0);\nvar i__43853_44335 \x3d (0);\nwhile(true){\nif((i__43853_44335 \x3c count__43852_44334)){\nvar map__43869_44336 \x3d chunk__43851_44333.cljs$core$IIndexed$_nth$arity$2(null,i__43853_44335);\nvar map__43869_44337__$1 \x3d cljs.core.__destructure_map(map__43869_44336);\nvar task_44338 \x3d map__43869_44337__$1;\nvar fn_str_44339 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44340 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43869_44337__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44341 \x3d goog.getObjectByName(fn_str_44339,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44340)].join(\x27\x27));\n\n(fn_obj_44341.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44341.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44341.call(null,path,new_link_44331));\n\n\nvar G__44344 \x3d seq__43849_44332;\nvar G__44345 \x3d chunk__43851_44333;\nvar G__44346 \x3d count__43852_44334;\nvar G__44347 \x3d (i__43853_44335 + (1));\nseq__43849_44332 \x3d G__44344;\nchunk__43851_44333 \x3d G__44345;\ncount__43852_44334 \x3d G__44346;\ni__43853_44335 \x3d G__44347;\ncontinue;\n} else {\nvar temp__5825__auto___44348__$1 \x3d cljs.core.seq(seq__43849_44332);\nif(temp__5825__auto___44348__$1){\nvar seq__43849_44349__$1 \x3d temp__5825__auto___44348__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43849_44349__$1)){\nvar c__5548__auto___44352 \x3d cljs.core.chunk_first(seq__43849_44349__$1);\nvar G__44353 \x3d cljs.core.chunk_rest(seq__43849_44349__$1);\nvar G__44354 \x3d c__5548__auto___44352;\nvar G__44355 \x3d cljs.core.count(c__5548__auto___44352);\nvar G__44356 \x3d (0);\nseq__43849_44332 \x3d G__44353;\nchunk__43851_44333 \x3d G__44354;\ncount__43852_44334 \x3d G__44355;\ni__43853_44335 \x3d G__44356;\ncontinue;\n} else {\nvar map__43872_44357 \x3d cljs.core.first(seq__43849_44349__$1);\nvar map__43872_44358__$1 \x3d cljs.core.__destructure_map(map__43872_44357);\nvar task_44359 \x3d map__43872_44358__$1;\nvar fn_str_44360 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44361 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43872_44358__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44362 \x3d goog.getObjectByName(fn_str_44360,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44361)].join(\x27\x27));\n\n(fn_obj_44362.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44362.cljs$core$IFn$_invoke$arity$2(path,new_link_44331) : fn_obj_44362.call(null,path,new_link_44331));\n\n\nvar G__44363 \x3d cljs.core.next(seq__43849_44349__$1);\nvar G__44364 \x3d null;\nvar G__44365 \x3d (0);\nvar G__44366 \x3d (0);\nseq__43849_44332 \x3d G__44363;\nchunk__43851_44333 \x3d G__44364;\ncount__43852_44334 \x3d G__44365;\ni__43853_44335 \x3d G__44366;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44328);\n});})(seq__43728_44266,chunk__43732_44267,count__43733_44268,i__43734_44269,seq__43446,chunk__43448,count__43449,i__43450,new_link_44331,path_match_44329,node_44328,seq__43728_44322__$1,temp__5825__auto___44321,path,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44329], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44331,node_44328);\n\n\nvar G__44367 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44368 \x3d null;\nvar G__44369 \x3d (0);\nvar G__44370 \x3d (0);\nseq__43728_44266 \x3d G__44367;\nchunk__43732_44267 \x3d G__44368;\ncount__43733_44268 \x3d G__44369;\ni__43734_44269 \x3d G__44370;\ncontinue;\n} else {\nvar G__44371 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44372 \x3d null;\nvar G__44373 \x3d (0);\nvar G__44374 \x3d (0);\nseq__43728_44266 \x3d G__44371;\nchunk__43732_44267 \x3d G__44372;\ncount__43733_44268 \x3d G__44373;\ni__43734_44269 \x3d G__44374;\ncontinue;\n}\n} else {\nvar G__44375 \x3d cljs.core.next(seq__43728_44322__$1);\nvar G__44376 \x3d null;\nvar G__44377 \x3d (0);\nvar G__44378 \x3d (0);\nseq__43728_44266 \x3d G__44375;\nchunk__43732_44267 \x3d G__44376;\ncount__43733_44268 \x3d G__44377;\ni__43734_44269 \x3d G__44378;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44379 \x3d seq__43446;\nvar G__44380 \x3d chunk__43448;\nvar G__44381 \x3d count__43449;\nvar G__44382 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44379;\nchunk__43448 \x3d G__44380;\ncount__43449 \x3d G__44381;\ni__43450 \x3d G__44382;\ncontinue;\n} else {\nvar G__44383 \x3d seq__43446;\nvar G__44384 \x3d chunk__43448;\nvar G__44385 \x3d count__43449;\nvar G__44386 \x3d (i__43450 + (1));\nseq__43446 \x3d G__44383;\nchunk__43448 \x3d G__44384;\ncount__43449 \x3d G__44385;\ni__43450 \x3d G__44386;\ncontinue;\n}\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__43446);\nif(temp__5825__auto__){\nvar seq__43446__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__43446__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__43446__$1);\nvar G__44387 \x3d cljs.core.chunk_rest(seq__43446__$1);\nvar G__44388 \x3d c__5548__auto__;\nvar G__44389 \x3d cljs.core.count(c__5548__auto__);\nvar G__44390 \x3d (0);\nseq__43446 \x3d G__44387;\nchunk__43448 \x3d G__44388;\ncount__43449 \x3d G__44389;\ni__43450 \x3d G__44390;\ncontinue;\n} else {\nvar path \x3d cljs.core.first(seq__43446__$1);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__43880_44393 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__43884_44394 \x3d null;\nvar count__43885_44395 \x3d (0);\nvar i__43886_44396 \x3d (0);\nwhile(true){\nif((i__43886_44396 \x3c count__43885_44395)){\nvar node_44397 \x3d chunk__43884_44394.cljs$core$IIndexed$_nth$arity$2(null,i__43886_44396);\nif(cljs.core.not(node_44397.shadow$old)){\nvar path_match_44398 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44397.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44398)){\nvar new_link_44399 \x3d (function (){var G__43984 \x3d node_44397.cloneNode(true);\nG__43984.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44398),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__43984;\n})();\n(node_44397.shadow$old \x3d true);\n\n(new_link_44399.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__43987_44401 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__43989_44402 \x3d null;\nvar count__43990_44403 \x3d (0);\nvar i__43991_44404 \x3d (0);\nwhile(true){\nif((i__43991_44404 \x3c count__43990_44403)){\nvar map__44007_44406 \x3d chunk__43989_44402.cljs$core$IIndexed$_nth$arity$2(null,i__43991_44404);\nvar map__44007_44407__$1 \x3d cljs.core.__destructure_map(map__44007_44406);\nvar task_44408 \x3d map__44007_44407__$1;\nvar fn_str_44409 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44410 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44007_44407__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44411 \x3d goog.getObjectByName(fn_str_44409,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44410)].join(\x27\x27));\n\n(fn_obj_44411.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44411.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44411.call(null,path,new_link_44399));\n\n\nvar G__44413 \x3d seq__43987_44401;\nvar G__44414 \x3d chunk__43989_44402;\nvar G__44415 \x3d count__43990_44403;\nvar G__44416 \x3d (i__43991_44404 + (1));\nseq__43987_44401 \x3d G__44413;\nchunk__43989_44402 \x3d G__44414;\ncount__43990_44403 \x3d G__44415;\ni__43991_44404 \x3d G__44416;\ncontinue;\n} else {\nvar temp__5825__auto___44417__$1 \x3d cljs.core.seq(seq__43987_44401);\nif(temp__5825__auto___44417__$1){\nvar seq__43987_44418__$1 \x3d temp__5825__auto___44417__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43987_44418__$1)){\nvar c__5548__auto___44419 \x3d cljs.core.chunk_first(seq__43987_44418__$1);\nvar G__44420 \x3d cljs.core.chunk_rest(seq__43987_44418__$1);\nvar G__44421 \x3d c__5548__auto___44419;\nvar G__44422 \x3d cljs.core.count(c__5548__auto___44419);\nvar G__44423 \x3d (0);\nseq__43987_44401 \x3d G__44420;\nchunk__43989_44402 \x3d G__44421;\ncount__43990_44403 \x3d G__44422;\ni__43991_44404 \x3d G__44423;\ncontinue;\n} else {\nvar map__44014_44424 \x3d cljs.core.first(seq__43987_44418__$1);\nvar map__44014_44425__$1 \x3d cljs.core.__destructure_map(map__44014_44424);\nvar task_44426 \x3d map__44014_44425__$1;\nvar fn_str_44427 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44428 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44014_44425__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44430 \x3d goog.getObjectByName(fn_str_44427,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44428)].join(\x27\x27));\n\n(fn_obj_44430.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44430.cljs$core$IFn$_invoke$arity$2(path,new_link_44399) : fn_obj_44430.call(null,path,new_link_44399));\n\n\nvar G__44431 \x3d cljs.core.next(seq__43987_44418__$1);\nvar G__44432 \x3d null;\nvar G__44433 \x3d (0);\nvar G__44434 \x3d (0);\nseq__43987_44401 \x3d G__44431;\nchunk__43989_44402 \x3d G__44432;\ncount__43990_44403 \x3d G__44433;\ni__43991_44404 \x3d G__44434;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44397);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44399,path_match_44398,node_44397,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44398], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44399,node_44397);\n\n\nvar G__44436 \x3d seq__43880_44393;\nvar G__44437 \x3d chunk__43884_44394;\nvar G__44438 \x3d count__43885_44395;\nvar G__44439 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44436;\nchunk__43884_44394 \x3d G__44437;\ncount__43885_44395 \x3d G__44438;\ni__43886_44396 \x3d G__44439;\ncontinue;\n} else {\nvar G__44440 \x3d seq__43880_44393;\nvar G__44441 \x3d chunk__43884_44394;\nvar G__44442 \x3d count__43885_44395;\nvar G__44443 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44440;\nchunk__43884_44394 \x3d G__44441;\ncount__43885_44395 \x3d G__44442;\ni__43886_44396 \x3d G__44443;\ncontinue;\n}\n} else {\nvar G__44444 \x3d seq__43880_44393;\nvar G__44445 \x3d chunk__43884_44394;\nvar G__44446 \x3d count__43885_44395;\nvar G__44447 \x3d (i__43886_44396 + (1));\nseq__43880_44393 \x3d G__44444;\nchunk__43884_44394 \x3d G__44445;\ncount__43885_44395 \x3d G__44446;\ni__43886_44396 \x3d G__44447;\ncontinue;\n}\n} else {\nvar temp__5825__auto___44448__$1 \x3d cljs.core.seq(seq__43880_44393);\nif(temp__5825__auto___44448__$1){\nvar seq__43880_44449__$1 \x3d temp__5825__auto___44448__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__43880_44449__$1)){\nvar c__5548__auto___44450 \x3d cljs.core.chunk_first(seq__43880_44449__$1);\nvar G__44451 \x3d cljs.core.chunk_rest(seq__43880_44449__$1);\nvar G__44452 \x3d c__5548__auto___44450;\nvar G__44453 \x3d cljs.core.count(c__5548__auto___44450);\nvar G__44454 \x3d (0);\nseq__43880_44393 \x3d G__44451;\nchunk__43884_44394 \x3d G__44452;\ncount__43885_44395 \x3d G__44453;\ni__43886_44396 \x3d G__44454;\ncontinue;\n} else {\nvar node_44456 \x3d cljs.core.first(seq__43880_44449__$1);\nif(cljs.core.not(node_44456.shadow$old)){\nvar path_match_44457 \x3d shadow.cljs.devtools.client.browser.match_paths(node_44456.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_44457)){\nvar new_link_44458 \x3d (function (){var G__44034 \x3d node_44456.cloneNode(true);\nG__44034.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_44457),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__44034;\n})();\n(node_44456.shadow$old \x3d true);\n\n(new_link_44458.onload \x3d ((function (seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__44038_44460 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__44040_44461 \x3d null;\nvar count__44041_44462 \x3d (0);\nvar i__44042_44463 \x3d (0);\nwhile(true){\nif((i__44042_44463 \x3c count__44041_44462)){\nvar map__44059_44464 \x3d chunk__44040_44461.cljs$core$IIndexed$_nth$arity$2(null,i__44042_44463);\nvar map__44059_44465__$1 \x3d cljs.core.__destructure_map(map__44059_44464);\nvar task_44466 \x3d map__44059_44465__$1;\nvar fn_str_44467 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44468 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44059_44465__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44470 \x3d goog.getObjectByName(fn_str_44467,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44468)].join(\x27\x27));\n\n(fn_obj_44470.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44470.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44470.call(null,path,new_link_44458));\n\n\nvar G__44471 \x3d seq__44038_44460;\nvar G__44472 \x3d chunk__44040_44461;\nvar G__44473 \x3d count__44041_44462;\nvar G__44474 \x3d (i__44042_44463 + (1));\nseq__44038_44460 \x3d G__44471;\nchunk__44040_44461 \x3d G__44472;\ncount__44041_44462 \x3d G__44473;\ni__44042_44463 \x3d G__44474;\ncontinue;\n} else {\nvar temp__5825__auto___44475__$2 \x3d cljs.core.seq(seq__44038_44460);\nif(temp__5825__auto___44475__$2){\nvar seq__44038_44477__$1 \x3d temp__5825__auto___44475__$2;\nif(cljs.core.chunked_seq_QMARK_(seq__44038_44477__$1)){\nvar c__5548__auto___44478 \x3d cljs.core.chunk_first(seq__44038_44477__$1);\nvar G__44479 \x3d cljs.core.chunk_rest(seq__44038_44477__$1);\nvar G__44480 \x3d c__5548__auto___44478;\nvar G__44481 \x3d cljs.core.count(c__5548__auto___44478);\nvar G__44482 \x3d (0);\nseq__44038_44460 \x3d G__44479;\nchunk__44040_44461 \x3d G__44480;\ncount__44041_44462 \x3d G__44481;\ni__44042_44463 \x3d G__44482;\ncontinue;\n} else {\nvar map__44066_44483 \x3d cljs.core.first(seq__44038_44477__$1);\nvar map__44066_44484__$1 \x3d cljs.core.__destructure_map(map__44066_44483);\nvar task_44485 \x3d map__44066_44484__$1;\nvar fn_str_44486 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_44487 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44066_44484__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_44488 \x3d goog.getObjectByName(fn_str_44486,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_44487)].join(\x27\x27));\n\n(fn_obj_44488.cljs$core$IFn$_invoke$arity$2 ? fn_obj_44488.cljs$core$IFn$_invoke$arity$2(path,new_link_44458) : fn_obj_44488.call(null,path,new_link_44458));\n\n\nvar G__44489 \x3d cljs.core.next(seq__44038_44477__$1);\nvar G__44490 \x3d null;\nvar G__44491 \x3d (0);\nvar G__44492 \x3d (0);\nseq__44038_44460 \x3d G__44489;\nchunk__44040_44461 \x3d G__44490;\ncount__44041_44462 \x3d G__44491;\ni__44042_44463 \x3d G__44492;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_44456);\n});})(seq__43880_44393,chunk__43884_44394,count__43885_44395,i__43886_44396,seq__43446,chunk__43448,count__43449,i__43450,new_link_44458,path_match_44457,node_44456,seq__43880_44449__$1,temp__5825__auto___44448__$1,path,seq__43446__$1,temp__5825__auto__,map__43444,map__43444__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_44457], 0));\n\ngoog.dom.insertSiblingAfter(new_link_44458,node_44456);\n\n\nvar G__44494 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44495 \x3d null;\nvar G__44496 \x3d (0);\nvar G__44497 \x3d (0);\nseq__43880_44393 \x3d G__44494;\nchunk__43884_44394 \x3d G__44495;\ncount__43885_44395 \x3d G__44496;\ni__43886_44396 \x3d G__44497;\ncontinue;\n} else {\nvar G__44498 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44499 \x3d null;\nvar G__44500 \x3d (0);\nvar G__44501 \x3d (0);\nseq__43880_44393 \x3d G__44498;\nchunk__43884_44394 \x3d G__44499;\ncount__43885_44395 \x3d G__44500;\ni__43886_44396 \x3d G__44501;\ncontinue;\n}\n} else {\nvar G__44502 \x3d cljs.core.next(seq__43880_44449__$1);\nvar G__44503 \x3d null;\nvar G__44504 \x3d (0);\nvar G__44505 \x3d (0);\nseq__43880_44393 \x3d G__44502;\nchunk__43884_44394 \x3d G__44503;\ncount__43885_44395 \x3d G__44504;\ni__43886_44396 \x3d G__44505;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__44506 \x3d cljs.core.next(seq__43446__$1);\nvar G__44507 \x3d null;\nvar G__44508 \x3d (0);\nvar G__44509 \x3d (0);\nseq__43446 \x3d G__44506;\nchunk__43448 \x3d G__44507;\ncount__43449 \x3d G__44508;\ni__43450 \x3d G__44509;\ncontinue;\n} else {\nvar G__44510 \x3d cljs.core.next(seq__43446__$1);\nvar G__44511 \x3d null;\nvar G__44512 \x3d (0);\nvar G__44513 \x3d (0);\nseq__43446 \x3d G__44510;\nchunk__43448 \x3d G__44511;\ncount__43449 \x3d G__44512;\ni__43450 \x3d G__44513;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.global_eval \x3d (function shadow$cljs$devtools$client$browser$global_eval(js){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(\x22undefined\x22,typeof(module))){\nreturn eval(js);\n} else {\nreturn (0,eval)(js);;\n}\n});\nshadow.cljs.devtools.client.browser.runtime_info \x3d (((typeof SHADOW_CONFIG !\x3d\x3d \x27undefined\x27))?shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1(SHADOW_CONFIG):null);\nshadow.cljs.devtools.client.browser.client_info \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.cljs.devtools.client.browser.runtime_info,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),(cljs.core.truth_(goog.global.document)?new cljs.core.Keyword(null,\x22browser\x22,\x22browser\x22,828191719):new cljs.core.Keyword(null,\x22browser-worker\x22,\x22browser-worker\x22,1638998282)),new cljs.core.Keyword(null,\x22user-agent\x22,\x22user-agent\x22,1220426212),[(cljs.core.truth_(goog.userAgent.OPERA)?\x22Opera\x22:(cljs.core.truth_(goog.userAgent.product.CHROME)?\x22Chrome\x22:(cljs.core.truth_(goog.userAgent.IE)?\x22MSIE\x22:(cljs.core.truth_(goog.userAgent.EDGE)?\x22Edge\x22:(cljs.core.truth_(goog.userAgent.GECKO)?\x22Firefox\x22:(cljs.core.truth_(goog.userAgent.SAFARI)?\x22Safari\x22:(cljs.core.truth_(goog.userAgent.WEBKIT)?\x22Webkit\x22:null))))))),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.VERSION),\x22 [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.PLATFORM),\x22]\x22].join(\x27\x27),new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922),(!((goog.global.document \x3d\x3d null)))], null)], 0));\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser.ws_was_welcome_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.browser.ws_was_welcome_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\n}\nif(((shadow.cljs.devtools.client.env.enabled) \x26\x26 ((shadow.cljs.devtools.client.env.worker_client_id \x3e (0))))){\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$4 \x3d (function (this$,code,success,fail){\nvar this$__$1 \x3d this;\ntry{var G__44103 \x3d shadow.cljs.devtools.client.browser.global_eval(code);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44103) : success.call(null,G__44103));\n}catch (e44100){var e \x3d e44100;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$5 \x3d (function (this$,ns,p__44106,success,fail){\nvar map__44109 \x3d p__44106;\nvar map__44109__$1 \x3d cljs.core.__destructure_map(map__44109);\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44109__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\nvar this$__$1 \x3d this;\ntry{var G__44112 \x3d shadow.cljs.devtools.client.browser.global_eval(js);\nreturn (success.cljs$core$IFn$_invoke$arity$1 ? success.cljs$core$IFn$_invoke$arity$1(G__44112) : success.call(null,G__44112));\n}catch (e44111){var e \x3d e44111;\nreturn (fail.cljs$core$IFn$_invoke$arity$1 ? fail.cljs$core$IFn$_invoke$arity$1(e) : fail.call(null,e));\n}}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4 \x3d (function (runtime,p__44113,done,error){\nvar map__44115 \x3d p__44113;\nvar map__44115__$1 \x3d cljs.core.__destructure_map(map__44115);\nvar repl_sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44115__$1,new cljs.core.Keyword(null,\x22repl-sources\x22,\x22repl-sources\x22,723867535));\nvar runtime__$1 \x3d this;\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime__$1,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_,repl_sources)),(function (sources){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (done.cljs$core$IFn$_invoke$arity$0 ? done.cljs$core$IFn$_invoke$arity$0() : done.call(null));\n}));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4 \x3d (function (runtime,p__44121,done,error){\nvar map__44122 \x3d p__44121;\nvar map__44122__$1 \x3d cljs.core.__destructure_map(map__44122);\nvar msg \x3d map__44122__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar reload_namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22reload-namespaces\x22,\x22reload-namespaces\x22,250210134));\nvar js_requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44122__$1,new cljs.core.Keyword(null,\x22js-requires\x22,\x22js-requires\x22,-1311472051));\nvar runtime__$1 \x3d this;\nvar sources_to_load \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__44123){\nvar map__44124 \x3d p__44123;\nvar map__44124__$1 \x3d cljs.core.__destructure_map(map__44124);\nvar src \x3d map__44124__$1;\nvar provides \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44124__$1,new cljs.core.Keyword(null,\x22provides\x22,\x22provides\x22,-1634397992));\nvar and__5023__auto__ \x3d shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.core.some(reload_namespaces,provides));\n} else {\nreturn and__5023__auto__;\n}\n}),sources));\nif(cljs.core.not(cljs.core.seq(sources_to_load))){\nvar G__44126 \x3d cljs.core.PersistentVector.EMPTY;\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(G__44126) : done.call(null,G__44126));\n} else {\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-load-sources\x22,\x22cljs-load-sources\x22,-1458295962),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582)),sources_to_load)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cljs-sources\x22,\x22cljs-sources\x22,31121610),(function (p__44130){\nvar map__44131 \x3d p__44130;\nvar map__44131__$1 \x3d cljs.core.__destructure_map(map__44131);\nvar msg__$1 \x3d map__44131__$1;\nvar sources__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44131__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\ntry{shadow.cljs.devtools.client.browser.do_js_load(sources__$1);\n\nif(cljs.core.seq(js_requires)){\nshadow.cljs.devtools.client.browser.do_js_requires(js_requires);\n} else {\n}\n\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(sources_to_load) : done.call(null,sources_to_load));\n}catch (e44132){var ex \x3d e44132;\nreturn (error.cljs$core$IFn$_invoke$arity$1 ? error.cljs$core$IFn$_invoke$arity$1(ex) : error.call(null,ex));\n}})], null));\n}\n}));\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),cljs.core.PersistentHashSet.EMPTY,(function (p__44134){\nvar map__44136 \x3d p__44134;\nvar map__44136__$1 \x3d cljs.core.__destructure_map(map__44136);\nvar env \x3d map__44136__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44136__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125),(function (){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,true);\n\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.env.patch_goog_BANG_();\n\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime)))),\x22 ready!\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22on-disconnect\x22,\x22on-disconnect\x22,-809021814),(function (e){\nif(cljs.core.truth_(cljs.core.deref(shadow.cljs.devtools.client.browser.ws_was_welcome_ref))){\nshadow.cljs.devtools.client.hud.connection_error(\x22The Websocket connection was closed!\x22);\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n} else {\nreturn null;\n}\n}),new cljs.core.Keyword(null,\x22on-reconnect\x22,\x22on-reconnect\x22,1239988702),(function (e){\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22Reconnecting ...\x22);\n}),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22access-denied\x22,\x22access-denied\x22,959449406),(function (msg){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22Stale Output! Your loaded JS was not produced by the running shadow-cljs instance.\x22,\x22 Is the watch for this build running?\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22cljs-asset-update\x22,\x22cljs-asset-update\x22,1224093028),(function (msg){\nreturn shadow.cljs.devtools.client.browser.handle_asset_update(msg);\n}),new cljs.core.Keyword(null,\x22cljs-build-configure\x22,\x22cljs-build-configure\x22,-2089891268),(function (msg){\nreturn null;\n}),new cljs.core.Keyword(null,\x22cljs-build-start\x22,\x22cljs-build-start\x22,-725781241),(function (msg){\nshadow.cljs.devtools.client.hud.hud_hide();\n\nshadow.cljs.devtools.client.hud.load_start();\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-start\x22,\x22build-start\x22,-959649480)));\n}),new cljs.core.Keyword(null,\x22cljs-build-complete\x22,\x22cljs-build-complete\x22,273626153),(function (msg){\nvar msg__$1 \x3d shadow.cljs.devtools.client.env.add_warnings_to_info(msg);\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.hud.hud_warnings(msg__$1);\n\nshadow.cljs.devtools.client.browser.handle_build_complete(runtime,msg__$1);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-complete\x22,\x22build-complete\x22,-501868472)));\n}),new cljs.core.Keyword(null,\x22cljs-build-failure\x22,\x22cljs-build-failure\x22,1718154990),(function (msg){\nshadow.cljs.devtools.client.hud.load_end();\n\nshadow.cljs.devtools.client.hud.hud_error(msg);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-failure\x22,\x22build-failure\x22,-2107487466)));\n}),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.env\x22,\x22worker-notify\x22,\x22shadow.cljs.devtools.client.env/worker-notify\x22,-1456820670),(function (p__44146){\nvar map__44147 \x3d p__44146;\nvar map__44147__$1 \x3d cljs.core.__destructure_map(map__44147);\nvar event_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22event-op\x22,\x22event-op\x22,200358057));\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44147__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-disconnect\x22,\x22client-disconnect\x22,640227957),event_op)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(client_id,shadow.cljs.devtools.client.env.worker_client_id)))){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was stopped!\x22);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-connect\x22,\x22client-connect\x22,-1113973888),event_op)){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was restarted. Reload required!\x22);\n} else {\nreturn null;\n}\n}\n})], null)], null));\n\nreturn svc;\n}),(function (p__44149){\nvar map__44150 \x3d p__44149;\nvar map__44150__$1 \x3d cljs.core.__destructure_map(map__44150);\nvar svc \x3d map__44150__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44150__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282));\n}));\n\nshadow.cljs.devtools.client.shared.init_runtime_BANG_(shadow.cljs.devtools.client.browser.client_info,shadow.cljs.devtools.client.websocket.start,shadow.cljs.devtools.client.websocket.send,shadow.cljs.devtools.client.websocket.stop);\n} else {\n}\n"); SHADOW_ENV.evalLoad("intemporal.internal.error.js", true, "goog.provide(\x27intemporal.internal.error\x27);\n/**\n * Internal exception constructor, subclasses error to prevent userland code to caught this\n * exception in `(try ... (catch Exception e))` blocks\n */\nintemporal.internal.error.internal_error \x3d (function intemporal$internal$error$internal_error(var_args){\nvar G__28572 \x3d arguments.length;\nswitch (G__28572) {\ncase 2:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (message,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3(message,data,null);\n}));\n\n(intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (message,data,cause){\nvar err \x3d (new Error(message));\n(err.data \x3d data);\n\n(err.cause \x3d cause);\n\nreturn err;\n}));\n\n(intemporal.internal.error.internal_error.cljs$lang$maxFixedArity \x3d 3);\n\nintemporal.internal.error.make_suspension \x3d (function intemporal$internal$error$make_suspension(type,data){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow suspended\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data,new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802),true], null));\n});\nintemporal.internal.error.suspension_QMARK_ \x3d (function intemporal$internal$error$suspension_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22suspension\x22,\x22intemporal.internal.error/suspension\x22,-594665802).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.interruption_QMARK_ \x3d (function intemporal$internal$error$interruption_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.rejection_QMARK_ \x3d (function intemporal$internal$error$rejection_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.suspension_type \x3d (function intemporal$internal$error$suspension_type(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.suspension_data \x3d (function intemporal$internal$error$suspension_data(e){\nif(cljs.core.truth_(e.data)){\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e));\n}\n});\nintemporal.internal.error.workflow_cancelled_exception \x3d (function intemporal$internal$error$workflow_cancelled_exception(){\nreturn intemporal.internal.error.internal_error.cljs$core$IFn$_invoke$arity$2(\x22Workflow cancelled\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358),true], null));\n});\nintemporal.internal.error.cancelled_exception_QMARK_ \x3d (function intemporal$internal$error$cancelled_exception_QMARK_(e){\nvar and__5023__auto__ \x3d (e instanceof Error);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d e.data;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22cancelled\x22,\x22intemporal.internal.error/cancelled\x22,-1296145358).cljs$core$IFn$_invoke$arity$1(e.data);\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n});\nintemporal.internal.error.activity_rejected_exception \x3d (function intemporal$internal$error$activity_rejected_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Execution rejected\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22rejected\x22,\x22intemporal.internal.error/rejected\x22,598118821),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_timeout_exception \x3d (function intemporal$internal$error$activity_timeout_exception(activity_name,timeout_ms){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity timed out\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-timeout\x22,\x22intemporal.internal.error/activity-timeout\x22,937937544),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms], null));\n});\nintemporal.internal.error.activity_interrupted_exception \x3d (function intemporal$internal$error$activity_interrupted_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity interrupted\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-interrupted\x22,\x22intemporal.internal.error/activity-interrupted\x22,1504393914),true,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n});\nintemporal.internal.error.activity_failed_exception \x3d (function intemporal$internal$error$activity_failed_exception(activity_name,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(\x22Activity failed\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22activity-failed\x22,\x22intemporal.internal.error/activity-failed\x22,1878780601),true,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null),cause);\n});\nintemporal.internal.error.async_failed_exception \x3d (function intemporal$internal$error$async_failed_exception(handle_seq,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Async operation failed\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.internal.error\x22,\x22async-failed\x22,\x22intemporal.internal.error/async-failed\x22,-1692942380),true,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq,new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),cause], null));\n});\nintemporal.internal.error.throwable__GT_map \x3d (function intemporal$internal$error$throwable__GT_map(t){\nif(cljs.core.truth_(t)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(t)),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),t.message,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),(function (){var or__5025__auto__ \x3d t.data;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.ex_data(t);\n}\n})(),new cljs.core.Keyword(null,\x22stack-trace\x22,\x22stack-trace\x22,-1998072032),(cljs.core.truth_(t.stack)?clojure.string.split_lines(t.stack):null),new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),(cljs.core.truth_(t.cause)?(function (){var G__28691 \x3d t.cause;\nreturn (intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1 ? intemporal.internal.error.throwable__GT_map.cljs$core$IFn$_invoke$arity$1(G__28691) : intemporal.internal.error.throwable__GT_map.call(null,G__28691));\n})():null)], null);\n} else {\nreturn null;\n}\n});\nintemporal.internal.error.map__GT_exception \x3d (function intemporal$internal$error$map__GT_exception(m){\nif(cljs.core.truth_(m)){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn \x22Restored exception\x22;\n}\n})(),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22restored\x22,\x22restored\x22,1134950922),true], null),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(m)], 0)));\n} else {\nreturn null;\n}\n});\n"); SHADOW_ENV.evalLoad("intemporal.protocol.js", true, "goog.provide(\x27intemporal.protocol\x27);\n\n/**\n * Protocol for workflow persistence\n * @interface\n */\nintemporal.protocol.IStore \x3d function(){};\n\nvar intemporal$protocol$IStore$load_history$dyn_28683 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.load_history[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.load_history[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.load-history\x22,store);\n}\n}\n});\n/**\n * Load history for a workflow\n */\nintemporal.protocol.load_history \x3d (function intemporal$protocol$load_history(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$load_history$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$load_history$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$load_history$dyn_28683(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$save_event$dyn_28684 \x3d (function (store,workflow_id,event){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5374__auto__.call(null,store,workflow_id,event));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,event) : m__5372__auto__.call(null,store,workflow_id,event));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-event\x22,store);\n}\n}\n});\n/**\n * Append an event to workflow history\n */\nintemporal.protocol.save_event \x3d (function intemporal$protocol$save_event(store,workflow_id,event){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_event$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_event$arity$3(store,workflow_id,event);\n} else {\nreturn intemporal$protocol$IStore$save_event$dyn_28684(store,workflow_id,event);\n}\n});\n\nvar intemporal$protocol$IStore$save_events$dyn_28690 \x3d (function (store,workflow_id,events){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.save_events[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5374__auto__.call(null,store,workflow_id,events));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.save_events[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,events) : m__5372__auto__.call(null,store,workflow_id,events));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.save-events\x22,store);\n}\n}\n});\n/**\n * Append multiple events atomically\n */\nintemporal.protocol.save_events \x3d (function intemporal$protocol$save_events(store,workflow_id,events){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$save_events$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$save_events$arity$3(store,workflow_id,events);\n} else {\nreturn intemporal$protocol$IStore$save_events$dyn_28690(store,workflow_id,events);\n}\n});\n\nvar intemporal$protocol$IStore$find_event$dyn_28694 \x3d (function (store,workflow_id,event_type,seq_num){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.find_event[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5374__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.find_event[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,event_type,seq_num) : m__5372__auto__.call(null,store,workflow_id,event_type,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.find-event\x22,store);\n}\n}\n});\n/**\n * Finds the given event type by its sequence number\n */\nintemporal.protocol.find_event \x3d (function intemporal$protocol$find_event(store,workflow_id,event_type,seq_num){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$find_event$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$find_event$arity$4(store,workflow_id,event_type,seq_num);\n} else {\nreturn intemporal$protocol$IStore$find_event$dyn_28694(store,workflow_id,event_type,seq_num);\n}\n});\n\nvar intemporal$protocol$IStore$get_pending_signals$dyn_28700 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_pending_signals[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_pending_signals[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-pending-signals\x22,store);\n}\n}\n});\n/**\n * Get pending signals for workflow\n */\nintemporal.protocol.get_pending_signals \x3d (function intemporal$protocol$get_pending_signals(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_pending_signals$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_pending_signals$dyn_28700(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$add_signal$dyn_28707 \x3d (function (store,workflow_id,signal_name,signal_data){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.add_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5374__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.add_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,signal_data) : m__5372__auto__.call(null,store,workflow_id,signal_name,signal_data));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.add-signal\x22,store);\n}\n}\n});\n/**\n * Add a signal to workflow\n */\nintemporal.protocol.add_signal \x3d (function intemporal$protocol$add_signal(store,workflow_id,signal_name,signal_data){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$add_signal$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$add_signal$arity$4(store,workflow_id,signal_name,signal_data);\n} else {\nreturn intemporal$protocol$IStore$add_signal$dyn_28707(store,workflow_id,signal_name,signal_data);\n}\n});\n\nvar intemporal$protocol$IStore$consume_signal$dyn_28709 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.consume_signal[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.consume_signal[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.consume-signal\x22,store);\n}\n}\n});\n/**\n * Consume and remove a signal\n */\nintemporal.protocol.consume_signal \x3d (function intemporal$protocol$consume_signal(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$consume_signal$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$consume_signal$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$consume_signal$dyn_28709(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$register_signal_callback$dyn_28714 \x3d (function (store,workflow_id,signal_name,callback){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.register_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5374__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.register_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(store,workflow_id,signal_name,callback) : m__5372__auto__.call(null,store,workflow_id,signal_name,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.register-signal-callback\x22,store);\n}\n}\n});\n/**\n * Register callback to be invoked when signal arrives\n */\nintemporal.protocol.register_signal_callback \x3d (function intemporal$protocol$register_signal_callback(store,workflow_id,signal_name,callback){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$register_signal_callback$arity$4(store,workflow_id,signal_name,callback);\n} else {\nreturn intemporal$protocol$IStore$register_signal_callback$dyn_28714(store,workflow_id,signal_name,callback);\n}\n});\n\nvar intemporal$protocol$IStore$unregister_signal_callback$dyn_28716 \x3d (function (store,workflow_id,signal_name){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.unregister_signal_callback[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5374__auto__.call(null,store,workflow_id,signal_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.unregister_signal_callback[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(store,workflow_id,signal_name) : m__5372__auto__.call(null,store,workflow_id,signal_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.unregister-signal-callback\x22,store);\n}\n}\n});\n/**\n * Unregister signal callback\n */\nintemporal.protocol.unregister_signal_callback \x3d (function intemporal$protocol$unregister_signal_callback(store,workflow_id,signal_name){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$unregister_signal_callback$arity$3(store,workflow_id,signal_name);\n} else {\nreturn intemporal$protocol$IStore$unregister_signal_callback$dyn_28716(store,workflow_id,signal_name);\n}\n});\n\nvar intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.is_cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.is-cancelled?\x22,store);\n}\n}\n});\n/**\n * Check if workflow is cancelled\n */\nintemporal.protocol.is_cancelled_QMARK_ \x3d (function intemporal$protocol$is_cancelled_QMARK_(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$is_cancelled_QMARK_$dyn_28717(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$mark_cancelled$dyn_28718 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.mark_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.mark_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.mark-cancelled\x22,store);\n}\n}\n});\n/**\n * Mark workflow as cancelled\n */\nintemporal.protocol.mark_cancelled \x3d (function intemporal$protocol$mark_cancelled(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$mark_cancelled$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$mark_cancelled$dyn_28718(store,workflow_id);\n}\n});\n\nvar intemporal$protocol$IStore$get_workflow_status$dyn_28720 \x3d (function (store,workflow_id){\nvar x__5373__auto__ \x3d (((store \x3d\x3d null))?null:store);\nvar m__5374__auto__ \x3d (intemporal.protocol.get_workflow_status[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5374__auto__.call(null,store,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.get_workflow_status[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(store,workflow_id) : m__5372__auto__.call(null,store,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IStore.get-workflow-status\x22,store);\n}\n}\n});\n/**\n * Get current workflow status\n */\nintemporal.protocol.get_workflow_status \x3d (function intemporal$protocol$get_workflow_status(store,workflow_id){\nif((((!((store \x3d\x3d null)))) \x26\x26 ((!((store.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d\x3d null)))))){\nreturn store.intemporal$protocol$IStore$get_workflow_status$arity$2(store,workflow_id);\n} else {\nreturn intemporal$protocol$IStore$get_workflow_status$dyn_28720(store,workflow_id);\n}\n});\n\n\n/**\n * Protocol for executing activities\n * @interface\n */\nintemporal.protocol.IActivityExecutor \x3d function(){};\n\nvar intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721 \x3d (function (executor,activity_name,args,timeout_ms){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activity[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5374__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activity[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(executor,activity_name,args,timeout_ms) : m__5372__auto__.call(null,executor,activity_name,args,timeout_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activity\x22,executor);\n}\n}\n});\n/**\n * Execute an activity with given args and timeout\n */\nintemporal.protocol.execute_activity \x3d (function intemporal$protocol$execute_activity(executor,activity_name,args,timeout_ms){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activity$arity$4(executor,activity_name,args,timeout_ms);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activity$dyn_28721(executor,activity_name,args,timeout_ms);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729 \x3d (function (executor,activities){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.execute_activities_parallel[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5374__auto__.call(null,executor,activities));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.execute_activities_parallel[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,activities) : m__5372__auto__.call(null,executor,activities));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.execute-activities-parallel\x22,executor);\n}\n}\n});\n/**\n * Execute multiple activities in parallel, returns seq of results in same order\n */\nintemporal.protocol.execute_activities_parallel \x3d (function intemporal$protocol$execute_activities_parallel(executor,activities){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2(executor,activities);\n} else {\nreturn intemporal$protocol$IActivityExecutor$execute_activities_parallel$dyn_28729(executor,activities);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732 \x3d (function (executor,grace_period_secs){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_executor[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5374__auto__.call(null,executor,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_executor[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(executor,grace_period_secs) : m__5372__auto__.call(null,executor,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown-executor\x22,executor);\n}\n}\n});\n/**\n * Shutdown the executor and release resources\n */\nintemporal.protocol.shutdown_executor \x3d (function intemporal$protocol$shutdown_executor(executor,grace_period_secs){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2(executor,grace_period_secs);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_executor$dyn_28732(executor,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IActivityExecutor.shutdown?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_QMARK_ \x3d (function intemporal$protocol$shutdown_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IActivityExecutor$shutdown_QMARK_$dyn_28734(executor);\n}\n});\n\n\n/**\n * Protocol for scheduling timers\n * @interface\n */\nintemporal.protocol.IScheduler \x3d function(){};\n\nvar intemporal$protocol$IScheduler$schedule_timer$dyn_28736 \x3d (function (scheduler,workflow_id,seq_num,fire_at,callback){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.schedule_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.schedule_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(scheduler,workflow_id,seq_num,fire_at,callback) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num,fire_at,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.schedule-timer\x22,scheduler);\n}\n}\n});\n/**\n * Schedule a timer to fire at given time, calls callback when ready\n */\nintemporal.protocol.schedule_timer \x3d (function intemporal$protocol$schedule_timer(scheduler,workflow_id,seq_num,fire_at,callback){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$schedule_timer$arity$5(scheduler,workflow_id,seq_num,fire_at,callback);\n} else {\nreturn intemporal$protocol$IScheduler$schedule_timer$dyn_28736(scheduler,workflow_id,seq_num,fire_at,callback);\n}\n});\n\nvar intemporal$protocol$IScheduler$cancel_timer$dyn_28741 \x3d (function (scheduler,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.cancel_timer[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5374__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.cancel_timer[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(scheduler,workflow_id,seq_num) : m__5372__auto__.call(null,scheduler,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.cancel-timer\x22,scheduler);\n}\n}\n});\n/**\n * Cancel a scheduled timer\n */\nintemporal.protocol.cancel_timer \x3d (function intemporal$protocol$cancel_timer(scheduler,workflow_id,seq_num){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$cancel_timer$arity$3(scheduler,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IScheduler$cancel_timer$dyn_28741(scheduler,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755 \x3d (function (scheduler,grace_period_secs){\nvar x__5373__auto__ \x3d (((scheduler \x3d\x3d null))?null:scheduler);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5374__auto__.call(null,scheduler,grace_period_secs));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(scheduler,grace_period_secs) : m__5372__auto__.call(null,scheduler,grace_period_secs));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler\x22,scheduler);\n}\n}\n});\n/**\n * Shutdown the scheduler\n */\nintemporal.protocol.shutdown_scheduler \x3d (function intemporal$protocol$shutdown_scheduler(scheduler,grace_period_secs){\nif((((!((scheduler \x3d\x3d null)))) \x26\x26 ((!((scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d\x3d null)))))){\nreturn scheduler.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2(scheduler,grace_period_secs);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler$dyn_28755(scheduler,grace_period_secs);\n}\n});\n\nvar intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766 \x3d (function (executor){\nvar x__5373__auto__ \x3d (((executor \x3d\x3d null))?null:executor);\nvar m__5374__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5374__auto__.call(null,executor));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.shutdown_scheduler_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(executor) : m__5372__auto__.call(null,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.shutdown-scheduler?\x22,executor);\n}\n}\n});\n/**\n * Indicates if the executor has shut down\n */\nintemporal.protocol.shutdown_scheduler_QMARK_ \x3d (function intemporal$protocol$shutdown_scheduler_QMARK_(executor){\nif((((!((executor \x3d\x3d null)))) \x26\x26 ((!((executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn executor.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1(executor);\n} else {\nreturn intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$dyn_28766(executor);\n}\n});\n\n\n/**\n * Protocol for observing workflow execution\n * @interface\n */\nintemporal.protocol.IWorkflowObserver \x3d function(){};\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769 \x3d (function (observer,workflow_id,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5374__auto__.call(null,observer,workflow_id,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,args) : m__5372__auto__.call(null,observer,workflow_id,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_started \x3d (function intemporal$protocol$on_workflow_started(observer,workflow_id,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3(observer,workflow_id,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_started$dyn_28769(observer,workflow_id,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772 \x3d (function (observer,workflow_id,suspension_type){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_suspended[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5374__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_suspended[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,suspension_type) : m__5372__auto__.call(null,observer,workflow_id,suspension_type));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-suspended\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_suspended \x3d (function intemporal$protocol$on_workflow_suspended(observer,workflow_id,suspension_type){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3(observer,workflow_id,suspension_type);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_suspended$dyn_28772(observer,workflow_id,suspension_type);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_resumed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_resumed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-resumed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_resumed \x3d (function intemporal$protocol$on_workflow_resumed(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_resumed$dyn_28774(observer,workflow_id);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779 \x3d (function (observer,workflow_id,seq_num,activity_name,args){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$5(observer,workflow_id,seq_num,activity_name,args) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,args));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_scheduled \x3d (function intemporal$protocol$on_activity_scheduled(observer,workflow_id,seq_num,activity_name,args){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5(observer,workflow_id,seq_num,activity_name,args);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_scheduled$dyn_28779(observer,workflow_id,seq_num,activity_name,args);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783 \x3d (function (observer,workflow_id,seq_num,activity_name){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,activity_name) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_started \x3d (function intemporal$protocol$on_activity_started(observer,workflow_id,seq_num,activity_name){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4(observer,workflow_id,seq_num,activity_name);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_started$dyn_28783(observer,workflow_id,seq_num,activity_name);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788 \x3d (function (observer,workflow_id,seq_num,activity_name,result,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,result,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_completed \x3d (function intemporal$protocol$on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_completed$dyn_28788(observer,workflow_id,seq_num,activity_name,result,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796 \x3d (function (observer,workflow_id,seq_num,activity_name,error,duration_ms){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_activity_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5374__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_activity_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms) : m__5372__auto__.call(null,observer,workflow_id,seq_num,activity_name,error,duration_ms));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-activity-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_activity_failed \x3d (function intemporal$protocol$on_activity_failed(observer,workflow_id,seq_num,activity_name,error,duration_ms){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_activity_failed$dyn_28796(observer,workflow_id,seq_num,activity_name,error,duration_ms);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_started[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_started[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-started\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_started \x3d (function intemporal$protocol$on_async_started(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_started$dyn_28802(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805 \x3d (function (observer,workflow_id,seq_num,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5374__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,result) : m__5372__auto__.call(null,observer,workflow_id,seq_num,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_completed \x3d (function intemporal$protocol$on_async_completed(observer,workflow_id,seq_num,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4(observer,workflow_id,seq_num,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_completed$dyn_28805(observer,workflow_id,seq_num,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812 \x3d (function (observer,workflow_id,seq_num,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_async_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5374__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_async_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,error) : m__5372__auto__.call(null,observer,workflow_id,seq_num,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-async-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_async_failed \x3d (function intemporal$protocol$on_async_failed(observer,workflow_id,seq_num,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4(observer,workflow_id,seq_num,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_async_failed$dyn_28812(observer,workflow_id,seq_num,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816 \x3d (function (observer,workflow_id,seq_num,fire_at){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_scheduled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5374__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_scheduled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,seq_num,fire_at) : m__5372__auto__.call(null,observer,workflow_id,seq_num,fire_at));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-scheduled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_scheduled \x3d (function intemporal$protocol$on_timer_scheduled(observer,workflow_id,seq_num,fire_at){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4(observer,workflow_id,seq_num,fire_at);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_scheduled$dyn_28816(observer,workflow_id,seq_num,fire_at);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821 \x3d (function (observer,workflow_id,seq_num){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_timer_fired[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5374__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_timer_fired[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,seq_num) : m__5372__auto__.call(null,observer,workflow_id,seq_num));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-timer-fired\x22,observer);\n}\n}\n});\nintemporal.protocol.on_timer_fired \x3d (function intemporal$protocol$on_timer_fired(observer,workflow_id,seq_num){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3(observer,workflow_id,seq_num);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_timer_fired$dyn_28821(observer,workflow_id,seq_num);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827 \x3d (function (observer,workflow_id,signal_name,payload){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_signal_received[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5374__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_signal_received[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$4(observer,workflow_id,signal_name,payload) : m__5372__auto__.call(null,observer,workflow_id,signal_name,payload));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-signal-received\x22,observer);\n}\n}\n});\nintemporal.protocol.on_signal_received \x3d (function intemporal$protocol$on_signal_received(observer,workflow_id,signal_name,payload){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4(observer,workflow_id,signal_name,payload);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_signal_received$dyn_28827(observer,workflow_id,signal_name,payload);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829 \x3d (function (observer,workflow_id,result){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_completed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5374__auto__.call(null,observer,workflow_id,result));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_completed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,result) : m__5372__auto__.call(null,observer,workflow_id,result));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-completed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_completed \x3d (function intemporal$protocol$on_workflow_completed(observer,workflow_id,result){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3(observer,workflow_id,result);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_completed$dyn_28829(observer,workflow_id,result);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832 \x3d (function (observer,workflow_id,error){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_failed[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5374__auto__.call(null,observer,workflow_id,error));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_failed[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(observer,workflow_id,error) : m__5372__auto__.call(null,observer,workflow_id,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-failed\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_failed \x3d (function intemporal$protocol$on_workflow_failed(observer,workflow_id,error){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3(observer,workflow_id,error);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_failed$dyn_28832(observer,workflow_id,error);\n}\n});\n\nvar intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838 \x3d (function (observer,workflow_id){\nvar x__5373__auto__ \x3d (((observer \x3d\x3d null))?null:observer);\nvar m__5374__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5374__auto__.call(null,observer,workflow_id));\n} else {\nvar m__5372__auto__ \x3d (intemporal.protocol.on_workflow_cancelled[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(observer,workflow_id) : m__5372__auto__.call(null,observer,workflow_id));\n} else {\nthrow cljs.core.missing_protocol(\x22IWorkflowObserver.on-workflow-cancelled\x22,observer);\n}\n}\n});\nintemporal.protocol.on_workflow_cancelled \x3d (function intemporal$protocol$on_workflow_cancelled(observer,workflow_id){\nif((((!((observer \x3d\x3d null)))) \x26\x26 ((!((observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d\x3d null)))))){\nreturn observer.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2(observer,workflow_id);\n} else {\nreturn intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$dyn_28838(observer,workflow_id);\n}\n});\n\n"); -SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__28873 \x3d (_ + (1));\n_ \x3d G__28873;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28837_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28837_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28837_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___28896 \x3d arguments.length;\nvar i__5750__auto___28897 \x3d (0);\nwhile(true){\nif((i__5750__auto___28897 \x3c len__5749__auto___28896)){\nargs__5755__auto__.push((arguments[i__5750__auto___28897]));\n\nvar G__28898 \x3d (i__5750__auto___28897 + (1));\ni__5750__auto___28897 \x3d G__28898;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e28866){if((e28866 instanceof Error)){\nvar e \x3d e28866;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e28866;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq28853){\nvar G__28854 \x3d cljs.core.first(seq28853);\nvar seq28853__$1 \x3d cljs.core.next(seq28853);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__28854,seq28853__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("promesa.protocols.js", true, "goog.provide(\x27promesa.protocols\x27);\n\n/**\n * @interface\n */\npromesa.protocols.IPromise \x3d function(){};\n\nvar promesa$protocols$IPromise$_fmap$dyn_38687 \x3d (function() {\nvar G__38688 \x3d null;\nvar G__38688__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nvar G__38688__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nG__38688 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38688__2.call(this,it,f);\ncase 3:\nreturn G__38688__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38688.cljs$core$IFn$_invoke$arity$2 \x3d G__38688__2;\nG__38688.cljs$core$IFn$_invoke$arity$3 \x3d G__38688__3;\nreturn G__38688;\n})()\n;\n/**\n * Apply function to a computation\n */\npromesa.protocols._fmap \x3d (function promesa$protocols$_fmap(var_args){\nvar G__37892 \x3d arguments.length;\nswitch (G__37892) {\ncase 2:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f);\n}\n}));\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f,executor);\n}\n}));\n\n(promesa.protocols._fmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_merr$dyn_38703 \x3d (function() {\nvar G__38705 \x3d null;\nvar G__38705__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nvar G__38705__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nG__38705 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38705__2.call(this,it,f);\ncase 3:\nreturn G__38705__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38705.cljs$core$IFn$_invoke$arity$2 \x3d G__38705__2;\nG__38705.cljs$core$IFn$_invoke$arity$3 \x3d G__38705__3;\nreturn G__38705;\n})()\n;\n/**\n * Apply function to a failed computation and flatten 1 level\n */\npromesa.protocols._merr \x3d (function promesa$protocols$_merr(var_args){\nvar G__37920 \x3d arguments.length;\nswitch (G__37920) {\ncase 2:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f);\n}\n}));\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f,executor);\n}\n}));\n\n(promesa.protocols._merr.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_mcat$dyn_38711 \x3d (function() {\nvar G__38712 \x3d null;\nvar G__38712__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nvar G__38712__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nG__38712 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38712__2.call(this,it,f);\ncase 3:\nreturn G__38712__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38712.cljs$core$IFn$_invoke$arity$2 \x3d G__38712__2;\nG__38712.cljs$core$IFn$_invoke$arity$3 \x3d G__38712__3;\nreturn G__38712;\n})()\n;\n/**\n * Apply function to a computation and flatten 1 level\n */\npromesa.protocols._mcat \x3d (function promesa$protocols$_mcat(var_args){\nvar G__37931 \x3d arguments.length;\nswitch (G__37931) {\ncase 2:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f);\n}\n}));\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f,executor);\n}\n}));\n\n(promesa.protocols._mcat.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_hmap$dyn_38718 \x3d (function() {\nvar G__38719 \x3d null;\nvar G__38719__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nvar G__38719__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nG__38719 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38719__2.call(this,it,f);\ncase 3:\nreturn G__38719__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38719.cljs$core$IFn$_invoke$arity$2 \x3d G__38719__2;\nG__38719.cljs$core$IFn$_invoke$arity$3 \x3d G__38719__3;\nreturn G__38719;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful.\n */\npromesa.protocols._hmap \x3d (function promesa$protocols$_hmap(var_args){\nvar G__37945 \x3d arguments.length;\nswitch (G__37945) {\ncase 2:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f);\n}\n}));\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f,executor);\n}\n}));\n\n(promesa.protocols._hmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_fnly$dyn_38721 \x3d (function() {\nvar G__38722 \x3d null;\nvar G__38722__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nvar G__38722__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nG__38722 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38722__2.call(this,it,f);\ncase 3:\nreturn G__38722__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38722.cljs$core$IFn$_invoke$arity$2 \x3d G__38722__2;\nG__38722.cljs$core$IFn$_invoke$arity$3 \x3d G__38722__3;\nreturn G__38722;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful; the return value is ignored.\n */\npromesa.protocols._fnly \x3d (function promesa$protocols$_fnly(var_args){\nvar G__37964 \x3d arguments.length;\nswitch (G__37964) {\ncase 2:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f);\n}\n}));\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f,executor);\n}\n}));\n\n(promesa.protocols._fnly.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_then$dyn_38732 \x3d (function() {\nvar G__38733 \x3d null;\nvar G__38733__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nvar G__38733__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nG__38733 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38733__2.call(this,it,f);\ncase 3:\nreturn G__38733__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38733.cljs$core$IFn$_invoke$arity$2 \x3d G__38733__2;\nG__38733.cljs$core$IFn$_invoke$arity$3 \x3d G__38733__3;\nreturn G__38733;\n})()\n;\n/**\n * Apply function to a computation and flatten multiple levels\n */\npromesa.protocols._then \x3d (function promesa$protocols$_then(var_args){\nvar G__37976 \x3d arguments.length;\nswitch (G__37976) {\ncase 2:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f);\n}\n}));\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f,executor);\n}\n}));\n\n(promesa.protocols._then.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Additional state/introspection abstraction.\n * @interface\n */\npromesa.protocols.IState \x3d function(){};\n\nvar promesa$protocols$IState$_extract$dyn_38742 \x3d (function() {\nvar G__38743 \x3d null;\nvar G__38743__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nvar G__38743__2 \x3d (function (it,default$){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5374__auto__.call(null,it,default$));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5372__auto__.call(null,it,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nG__38743 \x3d function(it,default$){\nswitch(arguments.length){\ncase 1:\nreturn G__38743__1.call(this,it);\ncase 2:\nreturn G__38743__2.call(this,it,default$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38743.cljs$core$IFn$_invoke$arity$1 \x3d G__38743__1;\nG__38743.cljs$core$IFn$_invoke$arity$2 \x3d G__38743__2;\nreturn G__38743;\n})()\n;\n/**\n * Extract the current value.\n */\npromesa.protocols._extract \x3d (function promesa$protocols$_extract(var_args){\nvar G__37998 \x3d arguments.length;\nswitch (G__37998) {\ncase 1:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it);\n}\n}));\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,default$){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$2(it,default$);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it,default$);\n}\n}));\n\n(promesa.protocols._extract.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$IState$_resolved_QMARK_$dyn_38750 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolved_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolved_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-resolved?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is resolved.\n */\npromesa.protocols._resolved_QMARK_ \x3d (function promesa$protocols$_resolved_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_resolved_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_resolved_QMARK_$dyn_38750(it);\n}\n});\n\nvar promesa$protocols$IState$_rejected_QMARK_$dyn_38751 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._rejected_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._rejected_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-rejected?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is rejected.\n */\npromesa.protocols._rejected_QMARK_ \x3d (function promesa$protocols$_rejected_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_rejected_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_rejected_QMARK_$dyn_38751(it);\n}\n});\n\nvar promesa$protocols$IState$_pending_QMARK_$dyn_38757 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-pending?\x22,it);\n}\n}\n});\n/**\n * Retutns true if a promise is pending.\n */\npromesa.protocols._pending_QMARK_ \x3d (function promesa$protocols$_pending_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_pending_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_pending_QMARK_$dyn_38757(it);\n}\n});\n\n\n/**\n * A promise constructor abstraction.\n * @interface\n */\npromesa.protocols.IPromiseFactory \x3d function(){};\n\nvar promesa$protocols$IPromiseFactory$_promise$dyn_38758 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._promise[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._promise[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromiseFactory.-promise\x22,it);\n}\n}\n});\n/**\n * Create a promise instance from other types\n */\npromesa.protocols._promise \x3d (function promesa$protocols$_promise(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromiseFactory$_promise$arity$1(it);\n} else {\nreturn promesa$protocols$IPromiseFactory$_promise$dyn_38758(it);\n}\n});\n\n\n/**\n * A cancellation abstraction.\n * @interface\n */\npromesa.protocols.ICancellable \x3d function(){};\n\nvar promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancel!\x22,it);\n}\n}\n});\npromesa.protocols._cancel_BANG_ \x3d (function promesa$protocols$_cancel_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760(it);\n}\n});\n\nvar promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancelled?\x22,it);\n}\n}\n});\npromesa.protocols._cancelled_QMARK_ \x3d (function promesa$protocols$_cancelled_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICompletable \x3d function(){};\n\nvar promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768 \x3d (function (it,v){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolve_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5374__auto__.call(null,it,v));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolve_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5372__auto__.call(null,it,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-resolve!\x22,it);\n}\n}\n});\n/**\n * Deliver a value to empty promise.\n */\npromesa.protocols._resolve_BANG_ \x3d (function promesa$protocols$_resolve_BANG_(it,v){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2(it,v);\n} else {\nreturn promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768(it,v);\n}\n});\n\nvar promesa$protocols$ICompletable$_reject_BANG_$dyn_38774 \x3d (function (it,e){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._reject_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5374__auto__.call(null,it,e));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._reject_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5372__auto__.call(null,it,e));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-reject!\x22,it);\n}\n}\n});\n/**\n * Deliver an error to empty promise.\n */\npromesa.protocols._reject_BANG_ \x3d (function promesa$protocols$_reject_BANG_(it,e){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_reject_BANG_$arity$2(it,e);\n} else {\nreturn promesa$protocols$ICompletable$_reject_BANG_$dyn_38774(it,e);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IExecutor \x3d function(){};\n\nvar promesa$protocols$IExecutor$_exec_BANG_$dyn_38780 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._exec_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._exec_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-exec!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return nil\n */\npromesa.protocols._exec_BANG_ \x3d (function promesa$protocols$_exec_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_exec_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_exec_BANG_$dyn_38780(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_run_BANG_$dyn_38784 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._run_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._run_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-run!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._run_BANG_ \x3d (function promesa$protocols$_run_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_run_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_run_BANG_$dyn_38784(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_submit_BANG_$dyn_38785 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._submit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._submit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-submit!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._submit_BANG_ \x3d (function promesa$protocols$_submit_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_submit_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_submit_BANG_$dyn_38785(it,task);\n}\n});\n\n\n/**\n * A generic abstraction for scheduler facilities.\n * @interface\n */\npromesa.protocols.IScheduler \x3d function(){};\n\nvar promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792 \x3d (function (it,ms,func){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._schedule_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5374__auto__.call(null,it,ms,func));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._schedule_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5372__auto__.call(null,it,ms,func));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.-schedule!\x22,it);\n}\n}\n});\n/**\n * Schedule a function to be executed in future.\n */\npromesa.protocols._schedule_BANG_ \x3d (function promesa$protocols$_schedule_BANG_(it,ms,func){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3(it,ms,func);\n} else {\nreturn promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792(it,ms,func);\n}\n});\n\n\n/**\n * An experimental semaphore protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ISemaphore \x3d function(){};\n\nvar promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798 \x3d (function() {\nvar G__38799 \x3d null;\nvar G__38799__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__3 \x3d (function (it,n,t){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5374__auto__.call(null,it,n,t));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5372__auto__.call(null,it,n,t));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nG__38799 \x3d function(it,n,t){\nswitch(arguments.length){\ncase 1:\nreturn G__38799__1.call(this,it);\ncase 2:\nreturn G__38799__2.call(this,it,n);\ncase 3:\nreturn G__38799__3.call(this,it,n,t);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38799.cljs$core$IFn$_invoke$arity$1 \x3d G__38799__1;\nG__38799.cljs$core$IFn$_invoke$arity$2 \x3d G__38799__2;\nG__38799.cljs$core$IFn$_invoke$arity$3 \x3d G__38799__3;\nreturn G__38799;\n})()\n;\n/**\n * Try acquire n or n permits, non-blocking or optional timeout\n */\npromesa.protocols._try_acquire_BANG_ \x3d (function promesa$protocols$_try_acquire_BANG_(var_args){\nvar G__38458 \x3d arguments.length;\nswitch (G__38458) {\ncase 1:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,n,t){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3(it,n,t);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n,t);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810 \x3d (function() {\nvar G__38811 \x3d null;\nvar G__38811__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nvar G__38811__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nG__38811 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38811__1.call(this,it);\ncase 2:\nreturn G__38811__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38811.cljs$core$IFn$_invoke$arity$1 \x3d G__38811__1;\nG__38811.cljs$core$IFn$_invoke$arity$2 \x3d G__38811__2;\nreturn G__38811;\n})()\n;\n/**\n * Acquire 1 or N permits\n */\npromesa.protocols._acquire_BANG_ \x3d (function promesa$protocols$_acquire_BANG_(var_args){\nvar G__38505 \x3d arguments.length;\nswitch (G__38505) {\ncase 1:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it,n);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$ISemaphore$_release_BANG_$dyn_38816 \x3d (function() {\nvar G__38817 \x3d null;\nvar G__38817__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nvar G__38817__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nG__38817 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38817__1.call(this,it);\ncase 2:\nreturn G__38817__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38817.cljs$core$IFn$_invoke$arity$1 \x3d G__38817__1;\nG__38817.cljs$core$IFn$_invoke$arity$2 \x3d G__38817__2;\nreturn G__38817;\n})()\n;\n/**\n * Release 1 or N permits\n */\npromesa.protocols._release_BANG_ \x3d (function promesa$protocols$_release_BANG_(var_args){\nvar G__38547 \x3d arguments.length;\nswitch (G__38547) {\ncase 1:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it,n);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * An experimental lock protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ILock \x3d function(){};\n\nvar promesa$protocols$ILock$_lock_BANG_$dyn_38826 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._lock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._lock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-lock!\x22,it);\n}\n}\n});\npromesa.protocols._lock_BANG_ \x3d (function promesa$protocols$_lock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_lock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_lock_BANG_$dyn_38826(it);\n}\n});\n\nvar promesa$protocols$ILock$_unlock_BANG_$dyn_38831 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._unlock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._unlock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-unlock!\x22,it);\n}\n}\n});\npromesa.protocols._unlock_BANG_ \x3d (function promesa$protocols$_unlock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_unlock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_unlock_BANG_$dyn_38831(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IReadChannel \x3d function(){};\n\nvar promesa$protocols$IReadChannel$_take_BANG_$dyn_38836 \x3d (function (it,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._take_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5374__auto__.call(null,it,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._take_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5372__auto__.call(null,it,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IReadChannel.-take!\x22,it);\n}\n}\n});\npromesa.protocols._take_BANG_ \x3d (function promesa$protocols$_take_BANG_(it,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IReadChannel$_take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IReadChannel$_take_BANG_$arity$2(it,handler);\n} else {\nreturn promesa$protocols$IReadChannel$_take_BANG_$dyn_38836(it,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IWriteChannel \x3d function(){};\n\nvar promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838 \x3d (function (it,val,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._put_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5374__auto__.call(null,it,val,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._put_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5372__auto__.call(null,it,val,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriteChannel.-put!\x22,it);\n}\n}\n});\npromesa.protocols._put_BANG_ \x3d (function promesa$protocols$_put_BANG_(it,val,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3(it,val,handler);\n} else {\nreturn promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838(it,val,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelInternal \x3d function(){};\n\nvar promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cleanup_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cleanup_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelInternal.-cleanup!\x22,it);\n}\n}\n});\npromesa.protocols._cleanup_BANG_ \x3d (function promesa$protocols$_cleanup_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelMultiplexer \x3d function(){};\n\nvar promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840 \x3d (function (it,ch,close_QMARK_){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._tap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5374__auto__.call(null,it,ch,close_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._tap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5372__auto__.call(null,it,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-tap!\x22,it);\n}\n}\n});\npromesa.protocols._tap_BANG_ \x3d (function promesa$protocols$_tap_BANG_(it,ch,close_QMARK_){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3(it,ch,close_QMARK_);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840(it,ch,close_QMARK_);\n}\n});\n\nvar promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842 \x3d (function (it,ch){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._untap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5374__auto__.call(null,it,ch));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._untap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5372__auto__.call(null,it,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-untap!\x22,it);\n}\n}\n});\npromesa.protocols._untap_BANG_ \x3d (function promesa$protocols$_untap_BANG_(it,ch){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2(it,ch);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842(it,ch);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICloseable \x3d function(){};\n\nvar promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._closed_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._closed_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-closed?\x22,it);\n}\n}\n});\npromesa.protocols._closed_QMARK_ \x3d (function promesa$protocols$_closed_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843(it);\n}\n});\n\nvar promesa$protocols$ICloseable$_close_BANG_$dyn_38845 \x3d (function() {\nvar G__38846 \x3d null;\nvar G__38846__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nvar G__38846__2 \x3d (function (it,reason){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5374__auto__.call(null,it,reason));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5372__auto__.call(null,it,reason));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nG__38846 \x3d function(it,reason){\nswitch(arguments.length){\ncase 1:\nreturn G__38846__1.call(this,it);\ncase 2:\nreturn G__38846__2.call(this,it,reason);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38846.cljs$core$IFn$_invoke$arity$1 \x3d G__38846__1;\nG__38846.cljs$core$IFn$_invoke$arity$2 \x3d G__38846__2;\nreturn G__38846;\n})()\n;\npromesa.protocols._close_BANG_ \x3d (function promesa$protocols$_close_BANG_(var_args){\nvar G__38634 \x3d arguments.length;\nswitch (G__38634) {\ncase 1:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,reason){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$2(it,reason);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it,reason);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * @interface\n */\npromesa.protocols.IBuffer \x3d function(){};\n\nvar promesa$protocols$IBuffer$_full_QMARK_$dyn_38852 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._full_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._full_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-full?\x22,it);\n}\n}\n});\npromesa.protocols._full_QMARK_ \x3d (function promesa$protocols$_full_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_full_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_full_QMARK_$dyn_38852(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_poll_BANG_$dyn_38854 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._poll_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._poll_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-poll!\x22,it);\n}\n}\n});\npromesa.protocols._poll_BANG_ \x3d (function promesa$protocols$_poll_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_poll_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_poll_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_poll_BANG_$dyn_38854(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_offer_BANG_$dyn_38857 \x3d (function (it,val){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._offer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5374__auto__.call(null,it,val));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._offer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5372__auto__.call(null,it,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-offer!\x22,it);\n}\n}\n});\npromesa.protocols._offer_BANG_ \x3d (function promesa$protocols$_offer_BANG_(it,val){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_offer_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_offer_BANG_$arity$2(it,val);\n} else {\nreturn promesa$protocols$IBuffer$_offer_BANG_$dyn_38857(it,val);\n}\n});\n\nvar promesa$protocols$IBuffer$_size$dyn_38864 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._size[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._size[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-size\x22,it);\n}\n}\n});\npromesa.protocols._size \x3d (function promesa$protocols$_size(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_size$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_size$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_size$dyn_38864(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IHandler \x3d function(){};\n\nvar promesa$protocols$IHandler$_active_QMARK_$dyn_38866 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._active_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._active_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-active?\x22,it);\n}\n}\n});\npromesa.protocols._active_QMARK_ \x3d (function promesa$protocols$_active_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_active_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_active_QMARK_$dyn_38866(it);\n}\n});\n\nvar promesa$protocols$IHandler$_commit_BANG_$dyn_38871 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._commit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._commit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-commit!\x22,it);\n}\n}\n});\npromesa.protocols._commit_BANG_ \x3d (function promesa$protocols$_commit_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_commit_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_commit_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_commit_BANG_$dyn_38871(it);\n}\n});\n\nvar promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._blockable_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._blockable_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-blockable?\x22,it);\n}\n}\n});\npromesa.protocols._blockable_QMARK_ \x3d (function promesa$protocols$_blockable_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874(it);\n}\n});\n\n"); +SHADOW_ENV.evalLoad("promesa.util.js", true, "goog.provide(\x27promesa.util\x27);\n/**\n * Create a handler, mainly for combine two separate functions\n * into a single callbale.\n */\npromesa.util.handler \x3d (function promesa$util$handler(fv,fc){\nreturn (function (v,c){\nif(cljs.core.truth_(c)){\nreturn (fc.cljs$core$IFn$_invoke$arity$1 ? fc.cljs$core$IFn$_invoke$arity$1(c) : fc.call(null,c));\n} else {\nreturn (fv.cljs$core$IFn$_invoke$arity$1 ? fv.cljs$core$IFn$_invoke$arity$1(v) : fv.call(null,v));\n}\n});\n});\npromesa.util.has_method_QMARK_ \x3d (function promesa$util$has_method_QMARK_(klass,name){\nvar methods$ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (method){\nreturn method.getName();\n})),klass.getDeclaredMethods());\nreturn cljs.core.contains_QMARK_(methods$,name);\n});\npromesa.util.maybe_deref \x3d (function promesa$util$maybe_deref(o){\nif(cljs.core.delay_QMARK_(o)){\nreturn cljs.core.deref(o);\n} else {\nreturn o;\n}\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.ILock}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.util.t_promesa$util43295 \x3d (function (meta43296){\nthis.meta43296 \x3d meta43296;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43297,meta43296__$1){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn (new promesa.util.t_promesa$util43295(meta43296__$1));\n}));\n\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43297){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn self__.meta43296;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43296\x22,\x22meta43296\x22,331692302,null)], null);\n}));\n\n(promesa.util.t_promesa$util43295.cljs$lang$type \x3d true);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorStr \x3d \x22promesa.util/t_promesa$util43295\x22);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.util/t_promesa$util43295\x22);\n}));\n\n/**\n * Positional factory function for promesa.util/t_promesa$util43295.\n */\npromesa.util.__GT_t_promesa$util43295 \x3d (function promesa$util$__GT_t_promesa$util43295(meta43296){\nreturn (new promesa.util.t_promesa$util43295(meta43296));\n});\n\n\npromesa.util.mutex \x3d (function promesa$util$mutex(){\nreturn (new promesa.util.t_promesa$util43295(cljs.core.PersistentArrayMap.EMPTY));\n});\npromesa.util.try_STAR_ \x3d (function promesa$util$try_STAR_(f,on_error){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43314){var e \x3d e43314;\nreturn (on_error.cljs$core$IFn$_invoke$arity$1 ? on_error.cljs$core$IFn$_invoke$arity$1(e) : on_error.call(null,e));\n}});\n"); +SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.impl.promise\x22);\ngoog.provide(\x22promesa.impl.promise.PromiseImpl\x22);\ngoog.provide(\x22promesa.impl.promise.CancellationError\x22);\ngoog.scope(function() {\n const self \x3d promesa.impl.promise;\n const root \x3d goog.global;\n const PENDING \x3d Symbol(\x22state/pending\x22);\n const RESOLVED \x3d Symbol(\x22state/resolved\x22);\n const REJECTED \x3d Symbol(\x22state/rejected\x22);\n const QUEUE \x3d Symbol(\x22queue\x22);\n const STATE \x3d Symbol(\x22state\x22);\n const VALUE \x3d Symbol(\x22value\x22);\n const RESOLVE_TYPE_FLATTEN \x3d Symbol(\x22resolve-type/flatten\x22);\n const RESOLVE_TYPE_BIND \x3d Symbol(\x22resolve-type/bind\x22);\n const RESOLVE_TYPE_MAP \x3d Symbol(\x22resolve-type/map\x22);\n const defaultResolveMapHandler \x3d v \x3d\x3e v;\n const defaultResolveBindHandler \x3d v \x3d\x3e self.resolved(v);\n const defaultRejectHandler \x3d c \x3d\x3e {\n throw c;\n };\n class CancellationError extends Error {\n }\n class PromiseImpl {\n constructor(val) {\n this[QUEUE] \x3d [];\n this[STATE] \x3d PENDING;\n this[VALUE] \x3d undefined;\n if (val !\x3d\x3d undefined) {\n transition(this, RESOLVED, val);\n }\n }\n get state() {\n return this[STATE];\n }\n get value() {\n return this[VALUE];\n }\n then(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n catch(reject) {\n return this.then(null, reject);\n }\n finally(f) {\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:value \x3d\x3e f(), reject:cause \x3d\x3e f(), complete:(value, cause) \x3d\x3e null});\n return this;\n }\n fmap(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_MAP, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n fbind(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_BIND, resolve:resolve ?? defaultResolveBindHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n handle(fn, resolveType) {\n resolveType \x3d resolveType ?? RESOLVE_TYPE_MAP;\n this[QUEUE].push({type:resolveType, resolve:defaultResolveMapHandler, reject:defaultRejectHandler, complete:fn});\n process(this);\n }\n resolve(value) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, RESOLVED, value);\n }\n return null;\n }\n reject(cause) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, REJECTED, cause);\n }\n return null;\n }\n isPending() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d PENDING;\n }\n isResolved() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d RESOLVED;\n }\n isRejected() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d REJECTED;\n }\n isCancelled() {\n const state \x3d this[STATE];\n const value \x3d this[VALUE];\n return state \x3d\x3d\x3d REJECTED \x26\x26 isCancellationError(value);\n }\n cancel() {\n this.reject(new CancellationError(\x22promise cancelled\x22));\n }\n }\n const nextTick \x3d (() \x3d\x3e {\n if (typeof root.Promise \x3d\x3d\x3d \x22function\x22) {\n const resolved \x3d Promise.resolve(null);\n return function queueMicrotaskWithPromise(f, p) {\n resolved.then(() \x3d\x3e f(p));\n };\n } else if (typeof root.setImmediate \x3d\x3d\x3d \x22function\x22) {\n return root.setImmediate;\n } else if (typeof root.setTimeout \x3d\x3d\x3d \x22function\x22) {\n return (f, p) \x3d\x3e root.setTimeout(f, 0, p);\n } else {\n return (f, p) \x3d\x3e f.call(this, p);\n }\n })();\n function isCancellationError(v) {\n return v instanceof CancellationError;\n }\n function fmtValue(o) {\n if (isThenable(o)) {\n return `\x3cPROMISE:${goog.getUid(o)}\x3e`;\n } else if (o instanceof Error) {\n return `\x3cEXCEPTION:\x27${o.message}\x27\x3e`;\n } else if (o \x3d\x3d\x3d null || o \x3d\x3d\x3d undefined) {\n return `${o}`;\n } else if (typeof o \x3d\x3d\x3d \x22function\x22) {\n return `\x3cFN:${goog.getUid(o)}\x3e`;\n } else {\n return `${o.toString()}`;\n }\n }\n function isSome(o) {\n return o !\x3d\x3d null \x26\x26 o !\x3d\x3d undefined;\n }\n function isFunction(o) {\n return typeof o \x3d\x3d\x3d \x22function\x22;\n }\n function isThenable(o) {\n if (goog.isObject(o)) {\n const thenFn \x3d o.then;\n return isFunction(thenFn);\n } else {\n return false;\n }\n }\n function constantly(v) {\n return () \x3d\x3e v;\n }\n function identity(v) {\n return v;\n }\n function isPromiseImpl(v) {\n return v instanceof PromiseImpl;\n }\n function completeDeferredFn(deferred) {\n return (value, cause) \x3d\x3e {\n if (cause) {\n deferred.reject(cause);\n } else {\n deferred.resolve(value);\n }\n };\n }\n function process(p) {\n if (p[STATE] \x3d\x3d\x3d PENDING) {\n return;\n }\n nextTick(processNextTick, p);\n return p;\n }\n function processNextTick(p) {\n if (p[QUEUE].length \x3d\x3d\x3d 0) {\n return;\n }\n const state \x3d p[STATE];\n const value \x3d p[VALUE];\n let task, rvalue, rcause;\n while (p[QUEUE].length) {\n task \x3d p[QUEUE].shift();\n try {\n if (state \x3d\x3d\x3d RESOLVED) {\n rvalue \x3d task.resolve(value);\n } else if (state \x3d\x3d\x3d REJECTED) {\n rvalue \x3d task.reject(value);\n } else {\n rcause \x3d new TypeError(\x22invalid state\x22);\n }\n } catch (e) {\n rcause \x3d e;\n }\n resolveTask(task, rvalue, rcause);\n }\n }\n function resolveTask(task, value, cause) {\n if (task.complete \x3d\x3d\x3d undefined) {\n return;\n }\n if (cause) {\n task.complete(null, cause);\n } else {\n if (task.type \x3d\x3d\x3d RESOLVE_TYPE_MAP) {\n task.complete(value, null);\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_FLATTEN) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n resolveTask(task, v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n resolveTask(task, v, null);\n }, c \x3d\x3e {\n resolveTask(task, null, c);\n });\n } else {\n task.complete(value, null);\n }\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_BIND) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n task.complete(v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n task.complete(v, null);\n }, c \x3d\x3e {\n task.complete(null, c);\n });\n } else {\n task.complete(null, new TypeError(\x22expected thenable\x22));\n }\n } else {\n task.complete(null, new TypeError(\x22internal: invalid resolve type\x22));\n }\n }\n }\n function transition(p, state, value) {\n if (p[STATE] \x3d\x3d\x3d state || p[STATE] !\x3d\x3d PENDING) {\n return;\n }\n p[STATE] \x3d state;\n p[VALUE] \x3d value;\n return processNextTick(p);\n }\n self.PromiseImpl \x3d PromiseImpl;\n self.CancellationError \x3d CancellationError;\n self.isCancellationError \x3d isCancellationError;\n self.deferred \x3d () \x3d\x3e {\n return new PromiseImpl();\n };\n const NULL_PROMISE \x3d new PromiseImpl(null);\n self.resolved \x3d function resolved(value) {\n if (value \x3d\x3d\x3d null) {\n return NULL_PROMISE;\n } else {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d RESOLVED;\n p[VALUE] \x3d value;\n return p;\n }\n };\n self.rejected \x3d function rejected(reason) {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d REJECTED;\n p[VALUE] \x3d reason;\n return p;\n };\n self.all \x3d function all(promises) {\n return promises.reduce((acc, p) \x3d\x3e {\n return acc.then(results \x3d\x3e {\n return self.coerce(p).fmap(v \x3d\x3e {\n results.push(v);\n return results;\n });\n });\n }, self.resolved([]));\n };\n self.coerce \x3d function coerce(promise) {\n if (promise instanceof PromiseImpl) {\n return promise;\n } else if (isThenable(promise)) {\n const deferred \x3d self.deferred();\n promise.then(v \x3d\x3e {\n deferred.resolve(v);\n }, c \x3d\x3e {\n deferred.reject(c);\n });\n return deferred;\n } else if (promise instanceof Error) {\n return self.rejected(promise);\n } else {\n return self.resolved(promise);\n }\n };\n self.race \x3d function race(promises) {\n const deferred \x3d self.deferred();\n promises.forEach(p \x3d\x3e {\n self.coerce(p).handle((v, c) \x3d\x3e {\n if (c) {\n deferred.reject(c);\n } else {\n deferred.resolve(v);\n }\n });\n });\n return deferred;\n };\n self.nextTick \x3d nextTick;\n self.PENDING \x3d PENDING;\n self.RESOLVED \x3d RESOLVED;\n self.REJECTED \x3d REJECTED;\n});\n"); +SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); +SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); +SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__30608 \x3d (_ + (1));\n_ \x3d G__30608;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__30473_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__30473_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__30473_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___30627 \x3d arguments.length;\nvar i__5750__auto___30632 \x3d (0);\nwhile(true){\nif((i__5750__auto___30632 \x3c len__5749__auto___30627)){\nargs__5755__auto__.push((arguments[i__5750__auto___30632]));\n\nvar G__30637 \x3d (i__5750__auto___30632 + (1));\ni__5750__auto___30632 \x3d G__30637;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e30516){if((e30516 instanceof Error)){\nvar e \x3d e30516;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e30516;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq30481){\nvar G__30483 \x3d cljs.core.first(seq30481);\nvar seq30481__$1 \x3d cljs.core.next(seq30481);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__30483,seq30481__$1);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.activity.js", true, "goog.provide(\x27intemporal.internal.activity\x27);\n/**\n * Get a stable, qualified name string from a function.\n * On JVM: uses var metadata when available, otherwise class name.\n * On CLJS: demangles the JS function .name property (e.g. ns$fn_name -\x3e ns/fn-name).\n */\nintemporal.internal.activity.fn_name \x3d (function intemporal$internal$activity$fn_name(f){\nvar raw \x3d f.name;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d raw;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(clojure.string.blank_QMARK_(raw)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(raw,/\\$/);\nif((cljs.core.count(parts) \x3e (1))){\nvar ns_parts \x3d cljs.core.butlast(parts);\nvar fn_part \x3d cljs.core.last(parts);\nvar ns_str \x3d clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__50103_SHARP_){\nreturn clojure.string.replace(p1__50103_SHARP_,\x22_\x22,\x22-\x22);\n}),ns_parts));\nvar fn_str \x3d clojure.string.replace(fn_part,\x22_\x22,\x22-\x22);\nreturn [ns_str,\x22/\x22,fn_str].join(\x27\x27);\n} else {\nreturn clojure.string.replace(raw,\x22_\x22,\x22-\x22);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22activity-\x22));\n}\n});\n/**\n * Create a new activity registry\n */\nintemporal.internal.activity.make_registry \x3d (function intemporal$internal$activity$make_registry(){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\n/**\n * Register an activity function in a registry\n */\nintemporal.internal.activity.register_activity_BANG_ \x3d (function intemporal$internal$activity$register_activity_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50128 \x3d arguments.length;\nvar i__5750__auto___50129 \x3d (0);\nwhile(true){\nif((i__5750__auto___50129 \x3c len__5749__auto___50128)){\nargs__5755__auto__.push((arguments[i__5750__auto___50129]));\n\nvar G__50130 \x3d (i__5750__auto___50129 + (1));\ni__5750__auto___50129 \x3d G__50130;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (registry,f,p__50107){\nvar map__50108 \x3d p__50107;\nvar map__50108__$1 \x3d cljs.core.__destructure_map(map__50108);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar activity_name \x3d (function (){var or__5025__auto__ \x3d name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.var_QMARK_(f)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f));\n} else {\nreturn intemporal.internal.activity.fn_name(f);\n}\n}\n})();\nvar resolved_fn \x3d ((cljs.core.var_QMARK_(f))?cljs.core.deref(f):f);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(registry,cljs.core.assoc,activity_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),resolved_fn,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),retry_policy], null));\n\nreturn activity_name;\n}));\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$applyTo \x3d (function (seq50104){\nvar G__50105 \x3d cljs.core.first(seq50104);\nvar seq50104__$1 \x3d cljs.core.next(seq50104);\nvar G__50106 \x3d cljs.core.first(seq50104__$1);\nvar seq50104__$2 \x3d cljs.core.next(seq50104__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50105,G__50106,seq50104__$2);\n}));\n\n/**\n * Register all methods of a protocol as activities, using the provided implementation.\n */\nintemporal.internal.activity.register_protocol_activities_BANG_ \x3d (function intemporal$internal$activity$register_protocol_activities_BANG_(registry,protocol,implementation){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22register-protocol-activities! not needed in CLJS. Use stub-protocol macro.\x22,cljs.core.PersistentArrayMap.EMPTY);\n});\nintemporal.internal.activity.get_activity_info \x3d (function intemporal$internal$activity$get_activity_info(registry,activity_name){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(registry),activity_name);\n});\nintemporal.internal.activity.get_activity_fn \x3d (function intemporal$internal$activity$get_activity_fn(registry,activity_name){\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(intemporal.internal.activity.get_activity_info(registry,activity_name));\n});\nintemporal.internal.activity.ensure_registered_BANG_ \x3d (function intemporal$internal$activity$ensure_registered_BANG_(registry,f){\nvar activity_name \x3d ((cljs.core.var_QMARK_(f))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f)):intemporal.internal.activity.fn_name(f));\nif(cljs.core.contains_QMARK_(cljs.core.deref(registry),activity_name)){\n} else {\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),activity_name], 0));\n}\n\nreturn activity_name;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.activity.RetryPolicy \x3d (function (max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,__meta,__extmap,__hash){\nthis.max_attempts \x3d max_attempts;\nthis.backoff_ms \x3d backoff_ms;\nthis.max_backoff_ms \x3d max_backoff_ms;\nthis.backoff_multiplier \x3d backoff_multiplier;\nthis.retryable_fn \x3d retryable_fn;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50110,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50114 \x3d k50110;\nvar G__50114__$1 \x3d (((G__50114 instanceof cljs.core.Keyword))?G__50114.fqn:null);\nswitch (G__50114__$1) {\ncase \x22max-attempts\x22:\nreturn self__.max_attempts;\n\nbreak;\ncase \x22backoff-ms\x22:\nreturn self__.backoff_ms;\n\nbreak;\ncase \x22max-backoff-ms\x22:\nreturn self__.max_backoff_ms;\n\nbreak;\ncase \x22backoff-multiplier\x22:\nreturn self__.backoff_multiplier;\n\nbreak;\ncase \x22retryable-fn\x22:\nreturn self__.retryable_fn;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50110,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50115){\nvar vec__50116 \x3d p__50115;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.activity.RetryPolicy{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50109){\nvar self__ \x3d this;\nvar G__50109__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50109__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (434457415 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50111,other50112){\nvar self__ \x3d this;\nvar this50111__$1 \x3d this;\nreturn (((!((other50112 \x3d\x3d null)))) \x26\x26 ((((this50111__$1.constructor \x3d\x3d\x3d other50112.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_attempts,other50112.max_attempts)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_ms,other50112.backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_backoff_ms,other50112.max_backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_multiplier,other50112.backoff_multiplier)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.retryable_fn,other50112.retryable_fn)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.__extmap,other50112.__extmap)))))))))))))));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50110){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50119 \x3d k50110;\nvar G__50119__$1 \x3d (((G__50119 instanceof cljs.core.Keyword))?G__50119.fqn:null);\nswitch (G__50119__$1) {\ncase \x22max-attempts\x22:\ncase \x22backoff-ms\x22:\ncase \x22max-backoff-ms\x22:\ncase \x22backoff-multiplier\x22:\ncase \x22retryable-fn\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50110);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50120 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50121 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(G__50109,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,G__50109,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,G__50109,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,G__50109,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,G__50109,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50109),null));\n}\n}\n}\n}\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,G__50109,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22max-attempts\x22,\x22max-attempts\x22,-967871472,null),new cljs.core.Symbol(null,\x22backoff-ms\x22,\x22backoff-ms\x22,-975154262,null),new cljs.core.Symbol(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,-570662135,null),new cljs.core.Symbol(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-200564171,null),new cljs.core.Symbol(null,\x22retryable-fn\x22,\x22retryable-fn\x22,-2084944186,null)], null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$type \x3d true);\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.activity/RetryPolicy\x22,null,(1),null));\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.activity/RetryPolicy\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.activity/RetryPolicy.\n */\nintemporal.internal.activity.__GT_RetryPolicy \x3d (function intemporal$internal$activity$__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn){\nreturn (new intemporal.internal.activity.RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.activity/RetryPolicy, taking a map of keywords to field values.\n */\nintemporal.internal.activity.map__GT_RetryPolicy \x3d (function intemporal$internal$activity$map__GT_RetryPolicy(G__50113){\nvar extmap__5365__auto__ \x3d (function (){var G__50123 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50113,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], 0));\nif(cljs.core.record_QMARK_(G__50113)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50123);\n} else {\nreturn G__50123;\n}\n})();\nreturn (new intemporal.internal.activity.RetryPolicy(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(G__50113),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a retry policy\n */\nintemporal.internal.activity.make_retry_policy \x3d (function intemporal$internal$activity$make_retry_policy(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50133 \x3d arguments.length;\nvar i__5750__auto___50134 \x3d (0);\nwhile(true){\nif((i__5750__auto___50134 \x3c len__5749__auto___50133)){\nargs__5755__auto__.push((arguments[i__5750__auto___50134]));\n\nvar G__50135 \x3d (i__5750__auto___50134 + (1));\ni__5750__auto___50134 \x3d G__50135;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50125){\nvar map__50126 \x3d p__50125;\nvar map__50126__$1 \x3d cljs.core.__destructure_map(map__50126);\nvar max_attempts \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),(3));\nvar backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),(1000));\nvar max_backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),(60000));\nvar backoff_multiplier \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),2.0);\nvar retryable_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),cljs.core.constantly(true));\nreturn intemporal.internal.activity.__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn);\n}));\n\n(intemporal.internal.activity.make_retry_policy.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.activity.make_retry_policy.cljs$lang$applyTo \x3d (function (seq50124){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50124));\n}));\n\nintemporal.internal.activity.calculate_backoff \x3d (function intemporal$internal$activity$calculate_backoff(policy,attempt){\nvar base \x3d new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(policy);\nvar multiplier \x3d new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(policy);\nvar max_backoff \x3d new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(policy);\nvar backoff \x3d (base * Math.pow(multiplier,(attempt - (1))));\nreturn cljs.core.long$((function (){var x__5113__auto__ \x3d backoff;\nvar y__5114__auto__ \x3d max_backoff;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\n});\nintemporal.internal.activity.should_retry_QMARK_ \x3d (function intemporal$internal$activity$should_retry_QMARK_(policy,error,attempt){\nvar and__5023__auto__ \x3d (attempt \x3c new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(policy));\nif(and__5023__auto__){\nvar fexpr__50127 \x3d new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(policy);\nreturn (fexpr__50127.cljs$core$IFn$_invoke$arity$1 ? fexpr__50127.cljs$core$IFn$_invoke$arity$1(error) : fexpr__50127.call(null,error));\n} else {\nreturn and__5023__auto__;\n}\n});\n"); SHADOW_ENV.evalLoad("taoensso.truss.impl.js", true, "goog.provide(\x27taoensso.truss.impl\x27);\ntaoensso.truss.impl.re_pattern_QMARK_ \x3d (function taoensso$truss$impl$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\ntaoensso.truss.impl.str_contains_QMARK_ \x3d (function taoensso$truss$impl$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.truss.impl.revery_QMARK_ \x3d (function taoensso$truss$impl$revery_QMARK_(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,coll);\n});\ntaoensso.truss.impl.revery \x3d (function taoensso$truss$impl$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\ntaoensso.truss.impl.rsome \x3d (function taoensso$truss$impl$rsome(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nvar temp__5825__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar p \x3d temp__5825__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n}),null,coll);\n});\ntaoensso.truss.impl.assoc_some \x3d (function taoensso$truss$impl$assoc_some(var_args){\nvar G__28598 \x3d arguments.length;\nswitch (G__28598) {\ncase 3:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.truss.impl.assoc_some,m,m_kvs);\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.truss.impl.ensure_set \x3d (function taoensso$truss$impl$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\ntaoensso.truss.impl.ks_nnil_QMARK_ \x3d (function taoensso$truss$impl$ks_nnil_QMARK_(ks,m){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28613_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__28613_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.truss.impl.ks_EQ_ \x3d (function taoensso$truss$impl$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28617_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28617_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_GT__EQ_ \x3d (function taoensso$truss$impl$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28622_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28622_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_LT__EQ_ \x3d (function taoensso$truss$impl$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.truss.impl.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.truss.impl.FailedAssertionInfo \x3d (function (ns,coords,pred,arg_form,arg_val,data,error,__meta,__extmap,__hash){\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.pred \x3d pred;\nthis.arg_form \x3d arg_form;\nthis.arg_val \x3d arg_val;\nthis.data \x3d data;\nthis.error \x3d error;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28631,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28648 \x3d k28631;\nvar G__28648__$1 \x3d (((G__28648 instanceof cljs.core.Keyword))?G__28648.fqn:null);\nswitch (G__28648__$1) {\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22pred\x22:\nreturn self__.pred;\n\nbreak;\ncase \x22arg-form\x22:\nreturn self__.arg_form;\n\nbreak;\ncase \x22arg-val\x22:\nreturn self__.arg_val;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28631,else__5326__auto__);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28656){\nvar vec__28657 \x3d p__28656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.truss.impl.FailedAssertionInfo{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28630){\nvar self__ \x3d this;\nvar G__28630__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28630__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (7 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-352893736 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28632,other28633){\nvar self__ \x3d this;\nvar this28632__$1 \x3d this;\nreturn (((!((other28633 \x3d\x3d null)))) \x26\x26 ((((this28632__$1.constructor \x3d\x3d\x3d other28633.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.ns,other28633.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.coords,other28633.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.pred,other28633.pred)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_form,other28633.arg_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_val,other28633.arg_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.data,other28633.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.error,other28633.error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.__extmap,other28633.__extmap)))))))))))))))))));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28631){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28678 \x3d k28631;\nvar G__28678__$1 \x3d (((G__28678 instanceof cljs.core.Keyword))?G__28678.fqn:null);\nswitch (G__28678__$1) {\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22pred\x22:\ncase \x22arg-form\x22:\ncase \x22arg-val\x22:\ncase \x22data\x22:\ncase \x22error\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28631);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28679 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28680 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(G__28630,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__28630,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__28630,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__28630,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__28630,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__28630,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__28630,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28630),null));\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__28630,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22arg-form\x22,\x22arg-form\x22,-1253871756,null),new cljs.core.Symbol(null,\x22arg-val\x22,\x22arg-val\x22,-852016489,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null)], null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.truss.impl/FailedAssertionInfo\x22,null,(1),null));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.truss.impl/FailedAssertionInfo\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/FailedAssertionInfo.\n */\ntaoensso.truss.impl.__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$__GT_FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error,null,null,null));\n});\n\n/**\n * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values.\n */\ntaoensso.truss.impl.map__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__28640){\nvar extmap__5365__auto__ \x3d (function (){var G__28682 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28640,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], 0));\nif(cljs.core.record_QMARK_(G__28640)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28682);\n} else {\nreturn G__28682;\n}\n})();\nreturn (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__28640),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.truss.impl.ArgEvalError \x3d (function (ex){\nthis.ex \x3d ex;\n});\n\n(taoensso.truss.impl.ArgEvalError.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ex\x22,\x22ex\x22,226760186,null)], null);\n}));\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorStr \x3d \x22taoensso.truss.impl/ArgEvalError\x22);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.truss.impl/ArgEvalError\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/ArgEvalError.\n */\ntaoensso.truss.impl.__GT_ArgEvalError \x3d (function taoensso$truss$impl$__GT_ArgEvalError(ex){\nreturn (new taoensso.truss.impl.ArgEvalError(ex));\n});\n\ntaoensso.truss.impl.FalsePredError \x3d ({});\n"); SHADOW_ENV.evalLoad("taoensso.truss.js", true, "goog.provide(\x27taoensso.truss\x27);\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.truss.submap_QMARK_ \x3d (function taoensso$truss$submap_QMARK_(super_map,sub_map){\nreturn cljs.core.reduce_kv((function (_,sub_key,sub_val){\nif(cljs.core.map_QMARK_(sub_val)){\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(super_map,sub_key);\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.map_QMARK_(super_val);\nif(and__5023__auto__){\nreturn (taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(super_val,sub_val) : taoensso.truss.submap_QMARK_.call(null,super_val,sub_val));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n} else {\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(super_map,sub_key,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\nvar temp__5823__auto__ \x3d (function (){var temp__5823__auto__ \x3d ((cljs.core.fn_QMARK_(sub_val))?sub_val:null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pred_fn \x3d temp__5823__auto__;\nreturn (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val));\n} else {\nvar G__28967 \x3d sub_val;\nvar G__28967__$1 \x3d (((G__28967 instanceof cljs.core.Keyword))?G__28967.fqn:null);\nswitch (G__28967__$1) {\ncase \x22submap/nx\x22:\nreturn cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\n\nbreak;\ncase \x22submap/ex\x22:\nreturn (!(cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303))));\n\nbreak;\ncase \x22submap/some\x22:\nreturn (!((super_val \x3d\x3d null)));\n\nbreak;\ndefault:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sub_val,super_val);\n\n}\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}\n}),true,sub_map);\n});\n/**\n * Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when\n * using futures, agents, etc.\n */\ntaoensso.truss._STAR_ctx_STAR_ \x3d null;\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.ex_info_STAR_ \x3d (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){\nvar data_map__$1 \x3d (((ns \x3d\x3d null))?data_map:(cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null),data_map)\n));\nvar data_map__$2 \x3d (function (){var temp__5823__auto__ \x3d taoensso.truss._STAR_ctx_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ctx \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data_map__$1,new cljs.core.Keyword(\x22truss\x22,\x22ctx\x22,\x22truss/ctx\x22,-336831129),ctx);\n} else {\nreturn data_map__$1;\n}\n})();\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data_map__$2,cause);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.unexpected_arg_BANG__STAR_ \x3d (function taoensso$truss$unexpected_arg_BANG__STAR_(ns,coords,arg,kvs){\nthrow taoensso.truss.ex_info_STAR_(ns,coords,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [\x22Unexpected argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((arg \x3d\x3d null))?\x22\x3cnil\x3e\x22:arg))].join(\x27\x27);\n}\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444)),new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg)], null)),null);\n});\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.truss.set_ctx_BANG_ \x3d (function taoensso$truss$set_ctx_BANG_(root_ctx_val){\nreturn (taoensso.truss._STAR_ctx_STAR_ \x3d root_ctx_val);\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.truss.update_ctx \x3d (function taoensso$truss$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d old_ctx;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [195,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22update-ctx\x22,\x22taoensso.truss/update-ctx\x22,2138642429,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.truss.error_QMARK_ \x3d (function taoensso$truss$error_QMARK_(x){\nreturn (x instanceof Error);\n});\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.truss.ex_root \x3d (function taoensso$truss$ex_root(x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29702 \x3d cause;\nerror \x3d G__29702;\ncontinue;\n} else {\nreturn error;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.truss.ex_type \x3d (function taoensso$truss$ex_type(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null);\n} else {\nif((x instanceof Error)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,x.name);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.truss.ex_map_STAR_ \x3d (function taoensso$truss$ex_map_STAR_(x){\nvar temp__5825__auto__ \x3d cljs.core.ex_message(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar msg \x3d temp__5825__auto__;\nvar temp__5823__auto__ \x3d cljs.core.not_empty(cljs.core.ex_data(x));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar data \x3d temp__5823__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.truss.ex_chain \x3d (function taoensso$truss$ex_chain(var_args){\nvar G__29025 \x3d arguments.length;\nswitch (G__29025) {\ncase 1:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (as_maps_QMARK_,x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar xf \x3d (cljs.core.truth_(as_maps_QMARK_)?taoensso.truss.ex_map_STAR_:cljs.core.identity);\nvar acc \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(x) : xf.call(null,x))], null);\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29732 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause)));\nvar G__29733 \x3d cause;\nacc \x3d G__29732;\nerror \x3d G__29733;\ncontinue;\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.ex_chain.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.truss.ex_map \x3d (function taoensso$truss$ex_map(x){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar chain \x3d temp__5825__auto__;\nvar maps \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.truss.ex_map_STAR_,chain);\nvar root \x3d cljs.core.peek(chain);\nvar root_map \x3d cljs.core.peek(maps);\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(root_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029),maps,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(function (){var temp__5825__auto____$1 \x3d root.stack;\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar st \x3d temp__5825__auto____$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(st,\x22\x22)){\nreturn null;\n} else {\nreturn st;\n}\n} else {\nreturn null;\n}\n})()], null));\n} else {\nreturn null;\n}\n});\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.truss.matching_error \x3d (function taoensso$truss$matching_error(var_args){\nvar G__29188 \x3d arguments.length;\nswitch (G__29188) {\ncase 1:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1 \x3d (function (error){\nreturn error;\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,error){\nvar temp__5825__auto__ \x3d (((kind instanceof cljs.core.Keyword))?(function (){var G__29198 \x3d kind;\nvar G__29198__$1 \x3d (((G__29198 instanceof cljs.core.Keyword))?G__29198.fqn:null);\nswitch (G__29198__$1) {\ncase \x22default\x22:\ncase \x22all-but-critical\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ncase \x22common\x22:\nreturn (error instanceof Error);\n\nbreak;\ncase \x22ex-info\x22:\nreturn (error instanceof cljs.core.ExceptionInfo);\n\nbreak;\ncase \x22all\x22:\ncase \x22any\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ndefault:\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [406,21], null),\x22Unexpected Truss `matching-error` `kind` keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),kind,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.Keyword(null,\x22all\x22,\x22all\x22,892129742),\x22null\x22,new cljs.core.Keyword(null,\x22common\x22,\x22common\x22,-1822281391),\x22null\x22,new cljs.core.Keyword(null,\x22ex-info\x22,\x22ex-info\x22,2114560529),\x22null\x22], null), null)], null),null);\n\n}\n})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__29172_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__29172_SHARP_,error);\n}),kind):(error instanceof kind)\n))));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar match_QMARK_ \x3d temp__5825__auto__;\nreturn error;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,pattern,error){\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(kind,error);\nif(cljs.core.truth_(and__5023__auto__)){\nif((pattern \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.set_QMARK_(pattern)){\nreturn taoensso.truss.impl.rsome((function (p1__29175_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__29175_SHARP_,error);\n}),pattern);\n} else {\nif(typeof pattern \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.truss.impl.str_contains_QMARK_(cljs.core.ex_message(error),pattern);\n} else {\nif(taoensso.truss.impl.re_pattern_QMARK_(pattern)){\nreturn cljs.core.re_find(pattern,cljs.core.ex_message(error));\n} else {\nif(cljs.core.map_QMARK_(pattern)){\nvar temp__5825__auto__ \x3d cljs.core.ex_data(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar data \x3d temp__5825__auto__;\nreturn taoensso.truss.submap_QMARK_(data,pattern);\n} else {\nreturn null;\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [428,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pattern\x22,\x22pattern\x22,1882666950,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22matching-error\x22,\x22taoensso.truss/matching-error\x22,557680092,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22re-pattern\x22,\x22re-pattern\x22,1047705161,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn error;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar cause \x3d temp__5825__auto__;\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,pattern,cause);\n} else {\nreturn null;\n}\n}\n}));\n\n(taoensso.truss.matching_error.cljs$lang$maxFixedArity \x3d 3);\n\nvar get_default_error_fn_29781 \x3d (function (base_data){\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468),\x22Error thrown during reduction\x22);\nvar base_data__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468));\nreturn (function taoensso$truss$default_error_fn(data,cause){\nthrow taoensso.truss.ex_info_STAR_(null,null,msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause);\n});\n});\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.truss.catching_rf \x3d (function taoensso$truss$catching_rf(var_args){\nvar G__29301 \x3d arguments.length;\nswitch (G__29301) {\ncase 1:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_29781(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf], null)),rf);\n}));\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,rf){\nvar error_fn__$1 \x3d ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_29781(error_fn):error_fn);\nreturn (function() {\nvar taoensso$truss$catching_rf \x3d null;\nvar taoensso$truss$catching_rf__0 \x3d (function (){\ntry{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n}catch (e29328){var t \x3d e29328;\nvar G__29332 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null))], null);\nvar G__29333 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29332,G__29333) : error_fn__$1.call(null,G__29332,G__29333));\n}});\nvar taoensso$truss$catching_rf__1 \x3d (function (acc){\ntry{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n}catch (e29345){var t \x3d e29345;\nvar G__29349 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null)], null)], null);\nvar G__29350 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29349,G__29350) : error_fn__$1.call(null,G__29349,G__29350));\n}});\nvar taoensso$truss$catching_rf__2 \x3d (function (acc,in$){\ntry{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}catch (e29364){var t \x3d e29364;\nvar G__29368 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),in$,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(in$)], null)], null)], null);\nvar G__29369 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29368,G__29369) : error_fn__$1.call(null,G__29368,G__29369));\n}});\nvar taoensso$truss$catching_rf__3 \x3d (function (acc,k,v){\ntry{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n}catch (e29374){var t \x3d e29374;\nvar G__29375 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),k,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,\x22v\x22,\x22v\x22,21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),v,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(v)], null)], null)], null);\nvar G__29376 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29375,G__29376) : error_fn__$1.call(null,G__29375,G__29376));\n}});\ntaoensso$truss$catching_rf \x3d function(acc,k,v){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$truss$catching_rf__0.call(this);\ncase 1:\nreturn taoensso$truss$catching_rf__1.call(this,acc);\ncase 2:\nreturn taoensso$truss$catching_rf__2.call(this,acc,k);\ncase 3:\nreturn taoensso$truss$catching_rf__3.call(this,acc,k,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$truss$catching_rf__0;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$truss$catching_rf__1;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$truss$catching_rf__2;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$truss$catching_rf__3;\nreturn taoensso$truss$catching_rf;\n})()\n}));\n\n(taoensso.truss.catching_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.truss.catching_xform \x3d (function taoensso$truss$catching_xform(var_args){\nvar G__29395 \x3d arguments.length;\nswitch (G__29395) {\ncase 2:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(error_fn,rf);\n}),xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.truss.sys_newline \x3d \x22\\n\x22;\nvar legacy_ex_data_QMARK__29853 \x3d false;\n/**\n * Returns an appropriate `truss/ex-info` for given failed assertion info map.\n */\ntaoensso.truss.failed_assertion_ex_info \x3d (function taoensso$truss$failed_assertion_ex_info(var_args){\nvar G__29442 \x3d arguments.length;\nswitch (G__29442) {\ncase 1:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (failed_assertion_info){\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__29853,failed_assertion_info);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (legacy_ex_data_QMARK___$1,failed_assertion_info){\nvar map__29454 \x3d failed_assertion_info;\nvar map__29454__$1 \x3d cljs.core.__destructure_map(map__29454);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar undefined_arg_QMARK_ \x3d cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181));\nvar coords_str \x3d (function (){var temp__5825__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__29471 \x3d temp__5825__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(1),null);\nif(cljs.core.truth_(column)){\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn null;\n}\n})();\nvar msg \x3d [\x22Truss assertion failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),coords_str,\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nvar msg__$1 \x3d (cljs.core.truth_(error)?(function (){var error_msg \x3d cljs.core.ex_message(error);\nif(undefined_arg_QMARK_){\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n})():msg);\nreturn taoensso.truss.ex_info_STAR_(null,null,msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),(function (){var vec__29490 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null);\n})(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),(new Date()),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null))),error);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unary handler fn to call with failed assertion info map when a Truss\n * assertion (`have`, `have?`, `have!`, `have!?`) fails.\n * \n * Will by default throw an appropriate `truss/ex-info`.\n * This is a decent place to inject logging for assertion failures, etc.\n * \n * Arg given to handler is a map with keys:\n * \n * `:ns` ----------- ?str namespace of assertion callsite\n * `:coords` ------- ?[line column] of assertion callsite\n * \n * `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n * `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n * `:arg-val` ------ Runtime value of argument given to predicate\n * \n * `:data` --------- Optional arbitrary data map provided to assertion macro\n * `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\n */\ntaoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d (function taoensso$truss$_STAR_failed_assertion_handler_STAR_(failed_assertion_info){\nthrow taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1(failed_assertion_info);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.failed_assertion_BANG_ \x3d (function taoensso$truss$failed_assertion_BANG_(ns,line,column,pred,arg_form,arg_val,data_fn,error){\nvar temp__5823__auto__ \x3d taoensso.truss._STAR_failed_assertion_handler_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar handler \x3d temp__5823__auto__;\nvar G__29554 \x3d (function (){var undefined_arg_QMARK_ \x3d (arg_val instanceof taoensso.truss.impl.ArgEvalError);\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):arg_val),(function (){var temp__5825__auto__ \x3d data_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar df \x3d temp__5825__auto__;\ntry{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null));\n}catch (e29557){var _ \x3d e29557;\nreturn new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181);\n}} else {\nreturn null;\n}\n})(),(((error \x3d\x3d\x3d taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error\n)),null,null,null));\n})();\nreturn (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__29554) : handler.call(null,G__29554));\n} else {\nreturn arg_val;\n}\n});\n/**\n * Private, don\x27t use. Wraps given Truss v1 `error-fn` to convert\n * Truss v2 `*failed-assertion-handler*` arg.\n */\ntaoensso.truss.legacy_error_fn \x3d (function taoensso$truss$legacy_error_fn(f){\nif(cljs.core.truth_(f)){\nreturn (function (failed_assertion_info){\nvar G__29581 \x3d (new cljs.core.Delay((function (){\nvar map__29588 \x3d failed_assertion_info;\nvar map__29588__$1 \x3d cljs.core.__destructure_map(map__29588);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar vec__29589 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(1),null);\nvar msg_ \x3d (new cljs.core.Delay((function (){\nvar msg \x3d [\x22Invariant failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?[\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):null),\x22]\x22].join(\x27\x27):null),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nif(cljs.core.truth_(error)){\nvar error_msg \x3d cljs.core.ex_message(error);\nif(cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181))){\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n} else {\nreturn msg;\n}\n}),null));\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),msg_,new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data], null)),new cljs.core.Keyword(null,\x22err\x22,\x22err\x22,-2089457205),error], null));\n}),null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__29581) : f.call(null,G__29581));\n});\n} else {\nreturn null;\n}\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_dynamic_assertion_data \x3d (function taoensso$truss$get_dynamic_assertion_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_data \x3d (function taoensso$truss$get_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*failed-assertion-handler*` (note breaking changes to argument).\n */\ntaoensso.truss.set_error_fn_BANG_ \x3d (function taoensso$truss$set_error_fn_BANG_(f){\nreturn (taoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d taoensso.truss.legacy_error_fn(f));\n});\n"); @@ -1604,14 +1610,8 @@ SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.tel SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmt \x3d (function intemporal$internal$logging$fmt(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\nintemporal.internal.logging.trace \x3d (function intemporal$internal$logging$trace(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38181 \x3d arguments.length;\nvar i__5750__auto___38182 \x3d (0);\nwhile(true){\nif((i__5750__auto___38182 \x3c len__5749__auto___38181)){\nargs__5755__auto__.push((arguments[i__5750__auto___38182]));\n\nvar G__38183 \x3d (i__5750__auto___38182 + (1));\ni__5750__auto___38182 \x3d G__38183;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [17,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.trace.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.trace.cljs$lang$applyTo \x3d (function (seq38169){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38169));\n}));\n\nintemporal.internal.logging.debug \x3d (function intemporal$internal$logging$debug(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38184 \x3d arguments.length;\nvar i__5750__auto___38185 \x3d (0);\nwhile(true){\nif((i__5750__auto___38185 \x3c len__5749__auto___38184)){\nargs__5755__auto__.push((arguments[i__5750__auto___38185]));\n\nvar G__38186 \x3d (i__5750__auto___38185 + (1));\ni__5750__auto___38185 \x3d G__38186;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [18,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.debug.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debug.cljs$lang$applyTo \x3d (function (seq38170){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38170));\n}));\n\nintemporal.internal.logging.info \x3d (function intemporal$internal$logging$info(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38187 \x3d arguments.length;\nvar i__5750__auto___38188 \x3d (0);\nwhile(true){\nif((i__5750__auto___38188 \x3c len__5749__auto___38187)){\nargs__5755__auto__.push((arguments[i__5750__auto___38188]));\n\nvar G__38189 \x3d (i__5750__auto___38188 + (1));\ni__5750__auto___38188 \x3d G__38189;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [19,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.info.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.info.cljs$lang$applyTo \x3d (function (seq38171){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38171));\n}));\n\nintemporal.internal.logging.warn \x3d (function intemporal$internal$logging$warn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38195 \x3d arguments.length;\nvar i__5750__auto___38196 \x3d (0);\nwhile(true){\nif((i__5750__auto___38196 \x3c len__5749__auto___38195)){\nargs__5755__auto__.push((arguments[i__5750__auto___38196]));\n\nvar G__38198 \x3d (i__5750__auto___38196 + (1));\ni__5750__auto___38196 \x3d G__38198;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [20,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.warn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warn.cljs$lang$applyTo \x3d (function (seq38172){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38172));\n}));\n\nintemporal.internal.logging.error \x3d (function intemporal$internal$logging$error(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38203 \x3d arguments.length;\nvar i__5750__auto___38204 \x3d (0);\nwhile(true){\nif((i__5750__auto___38204 \x3c len__5749__auto___38203)){\nargs__5755__auto__.push((arguments[i__5750__auto___38204]));\n\nvar G__38205 \x3d (i__5750__auto___38204 + (1));\ni__5750__auto___38204 \x3d G__38205;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [21,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.error.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.error.cljs$lang$applyTo \x3d (function (seq38173){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38173));\n}));\n\nintemporal.internal.logging.fatal \x3d (function intemporal$internal$logging$fatal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38211 \x3d arguments.length;\nvar i__5750__auto___38212 \x3d (0);\nwhile(true){\nif((i__5750__auto___38212 \x3c len__5749__auto___38211)){\nargs__5755__auto__.push((arguments[i__5750__auto___38212]));\n\nvar G__38213 \x3d (i__5750__auto___38212 + (1));\ni__5750__auto___38212 \x3d G__38213;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [22,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.fatal.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatal.cljs$lang$applyTo \x3d (function (seq38174){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38174));\n}));\n\nintemporal.internal.logging.tracef \x3d (function intemporal$internal$logging$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38216 \x3d arguments.length;\nvar i__5750__auto___38218 \x3d (0);\nwhile(true){\nif((i__5750__auto___38218 \x3c len__5749__auto___38216)){\nargs__5755__auto__.push((arguments[i__5750__auto___38218]));\n\nvar G__38219 \x3d (i__5750__auto___38218 + (1));\ni__5750__auto___38218 \x3d G__38219;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [27,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [28,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.tracef.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.tracef.cljs$lang$applyTo \x3d (function (seq38175){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38175));\n}));\n\nintemporal.internal.logging.debugf \x3d (function intemporal$internal$logging$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38237 \x3d arguments.length;\nvar i__5750__auto___38238 \x3d (0);\nwhile(true){\nif((i__5750__auto___38238 \x3c len__5749__auto___38237)){\nargs__5755__auto__.push((arguments[i__5750__auto___38238]));\n\nvar G__38243 \x3d (i__5750__auto___38238 + (1));\ni__5750__auto___38238 \x3d G__38243;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [32,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [33,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.debugf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debugf.cljs$lang$applyTo \x3d (function (seq38176){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38176));\n}));\n\nintemporal.internal.logging.infof \x3d (function intemporal$internal$logging$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38257 \x3d arguments.length;\nvar i__5750__auto___38258 \x3d (0);\nwhile(true){\nif((i__5750__auto___38258 \x3c len__5749__auto___38257)){\nargs__5755__auto__.push((arguments[i__5750__auto___38258]));\n\nvar G__38259 \x3d (i__5750__auto___38258 + (1));\ni__5750__auto___38258 \x3d G__38259;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [37,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [38,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.infof.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.infof.cljs$lang$applyTo \x3d (function (seq38177){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38177));\n}));\n\nintemporal.internal.logging.warnf \x3d (function intemporal$internal$logging$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38271 \x3d arguments.length;\nvar i__5750__auto___38272 \x3d (0);\nwhile(true){\nif((i__5750__auto___38272 \x3c len__5749__auto___38271)){\nargs__5755__auto__.push((arguments[i__5750__auto___38272]));\n\nvar G__38274 \x3d (i__5750__auto___38272 + (1));\ni__5750__auto___38272 \x3d G__38274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [42,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [43,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.warnf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warnf.cljs$lang$applyTo \x3d (function (seq38178){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38178));\n}));\n\nintemporal.internal.logging.errorf \x3d (function intemporal$internal$logging$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38282 \x3d arguments.length;\nvar i__5750__auto___38283 \x3d (0);\nwhile(true){\nif((i__5750__auto___38283 \x3c len__5749__auto___38282)){\nargs__5755__auto__.push((arguments[i__5750__auto___38283]));\n\nvar G__38285 \x3d (i__5750__auto___38283 + (1));\ni__5750__auto___38283 \x3d G__38285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [47,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [48,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.errorf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.errorf.cljs$lang$applyTo \x3d (function (seq38179){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38179));\n}));\n\nintemporal.internal.logging.fatalf \x3d (function intemporal$internal$logging$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38302 \x3d arguments.length;\nvar i__5750__auto___38303 \x3d (0);\nwhile(true){\nif((i__5750__auto___38303 \x3c len__5749__auto___38302)){\nargs__5755__auto__.push((arguments[i__5750__auto___38303]));\n\nvar G__38304 \x3d (i__5750__auto___38303 + (1));\ni__5750__auto___38303 \x3d G__38304;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [52,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [53,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.fatalf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatalf.cljs$lang$applyTo \x3d (function (seq38180){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38180));\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.utils.js", true, "goog.provide(\x27intemporal.utils\x27);\nintemporal.utils.current_time_ms \x3d (function intemporal$utils$current_time_ms(){\nreturn Date.now();\n});\n"); SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__50137 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__50137) : resolve.call(null,G__50137));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___50232 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50232)){\nvar id_50233 \x3d temp__5825__auto___50232;\nclearTimeout(id_50233);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___50234 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50234)){\nvar id_50235 \x3d temp__5825__auto___50234;\nclearTimeout(id_50235);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50139,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50143 \x3d k50139;\nvar G__50143__$1 \x3d (((G__50143 instanceof cljs.core.Keyword))?G__50143.fqn:null);\nswitch (G__50143__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50139,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50144){\nvar vec__50145 \x3d p__50144;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50138){\nvar self__ \x3d this;\nvar G__50138__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50138__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50140,other50141){\nvar self__ \x3d this;\nvar this50140__$1 \x3d this;\nreturn (((!((other50141 \x3d\x3d null)))) \x26\x26 ((((this50140__$1.constructor \x3d\x3d\x3d other50141.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.pending_timers,other50141.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.__extmap,other50141.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50139){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50148 \x3d k50139;\nvar G__50148__$1 \x3d (((G__50148 instanceof cljs.core.Keyword))?G__50148.fqn:null);\nswitch (G__50148__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50139);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50150 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50151 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50150.cljs$core$IFn$_invoke$arity$2 ? pred__50150.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151) : pred__50150.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__50138,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50138),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__50138,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__50162_50247 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__50163_50248 \x3d null;\nvar count__50164_50249 \x3d (0);\nvar i__50165_50250 \x3d (0);\nwhile(true){\nif((i__50165_50250 \x3c count__50164_50249)){\nvar vec__50174_50251 \x3d chunk__50163_50248.cljs$core$IIndexed$_nth$arity$2(null,i__50165_50250);\nvar __50252__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(0),null);\nvar timer_id_50253 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(1),null);\nclearTimeout(timer_id_50253);\n\n\nvar G__50254 \x3d seq__50162_50247;\nvar G__50255 \x3d chunk__50163_50248;\nvar G__50256 \x3d count__50164_50249;\nvar G__50257 \x3d (i__50165_50250 + (1));\nseq__50162_50247 \x3d G__50254;\nchunk__50163_50248 \x3d G__50255;\ncount__50164_50249 \x3d G__50256;\ni__50165_50250 \x3d G__50257;\ncontinue;\n} else {\nvar temp__5825__auto___50258 \x3d cljs.core.seq(seq__50162_50247);\nif(temp__5825__auto___50258){\nvar seq__50162_50259__$1 \x3d temp__5825__auto___50258;\nif(cljs.core.chunked_seq_QMARK_(seq__50162_50259__$1)){\nvar c__5548__auto___50260 \x3d cljs.core.chunk_first(seq__50162_50259__$1);\nvar G__50261 \x3d cljs.core.chunk_rest(seq__50162_50259__$1);\nvar G__50262 \x3d c__5548__auto___50260;\nvar G__50263 \x3d cljs.core.count(c__5548__auto___50260);\nvar G__50264 \x3d (0);\nseq__50162_50247 \x3d G__50261;\nchunk__50163_50248 \x3d G__50262;\ncount__50164_50249 \x3d G__50263;\ni__50165_50250 \x3d G__50264;\ncontinue;\n} else {\nvar vec__50179_50265 \x3d cljs.core.first(seq__50162_50259__$1);\nvar __50266__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(0),null);\nvar timer_id_50267 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(1),null);\nclearTimeout(timer_id_50267);\n\n\nvar G__50268 \x3d cljs.core.next(seq__50162_50259__$1);\nvar G__50269 \x3d null;\nvar G__50270 \x3d (0);\nvar G__50271 \x3d (0);\nseq__50162_50247 \x3d G__50268;\nchunk__50163_50248 \x3d G__50269;\ncount__50164_50249 \x3d G__50270;\ni__50165_50250 \x3d G__50271;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__50142){\nvar extmap__5365__auto__ \x3d (function (){var G__50183 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50142,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__50142)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50183);\n} else {\nreturn G__50183;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__50142),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50272 \x3d arguments.length;\nvar i__5750__auto___50273 \x3d (0);\nwhile(true){\nif((i__5750__auto___50273 \x3c len__5749__auto___50272)){\nargs__5755__auto__.push((arguments[i__5750__auto___50273]));\n\nvar G__50274 \x3d (i__5750__auto___50273 + (1));\ni__5750__auto___50273 \x3d G__50274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50185){\nvar map__50186 \x3d p__50185;\nvar map__50186__$1 \x3d cljs.core.__destructure_map(map__50186);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50186__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq50184){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50184));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50192){if((e50192 instanceof Error)){\nvar e \x3d e50192;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50192;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], 0));\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50195,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50200 \x3d k50195;\nvar G__50200__$1 \x3d (((G__50200 instanceof cljs.core.Keyword))?G__50200.fqn:null);\nswitch (G__50200__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50195,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50201){\nvar vec__50202 \x3d p__50201;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50205){if((e50205 instanceof Error)){\nvar e \x3d e50205;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50205;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__50207){\nvar map__50208 \x3d p__50207;\nvar map__50208__$1 \x3d cljs.core.__destructure_map(map__50208);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50194){\nvar self__ \x3d this;\nvar G__50194__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50194__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50196,other50197){\nvar self__ \x3d this;\nvar this50196__$1 \x3d this;\nreturn (((!((other50197 \x3d\x3d null)))) \x26\x26 ((((this50196__$1.constructor \x3d\x3d\x3d other50197.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.registry_atom,other50197.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.default_timeout_ms,other50197.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.__extmap,other50197.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50195){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50220 \x3d k50195;\nvar G__50220__$1 \x3d (((G__50220 instanceof cljs.core.Keyword))?G__50220.fqn:null);\nswitch (G__50220__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50195);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50221 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50222 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__50194,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__50194,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50194),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__50194,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__50198){\nvar extmap__5365__auto__ \x3d (function (){var G__50224 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50198,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__50198)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50224);\n} else {\nreturn G__50224;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__50198),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__50198),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50283 \x3d arguments.length;\nvar i__5750__auto___50284 \x3d (0);\nwhile(true){\nif((i__5750__auto___50284 \x3c len__5749__auto___50283)){\nargs__5755__auto__.push((arguments[i__5750__auto___50284]));\n\nvar G__50285 \x3d (i__5750__auto___50284 + (1));\ni__5750__auto___50284 \x3d G__50285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__50228){\nvar map__50229 \x3d p__50228;\nvar map__50229__$1 \x3d cljs.core.__destructure_map(map__50229);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50229__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50229__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nintemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], 0));\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq50225){\nvar G__50226 \x3d cljs.core.first(seq50225);\nvar seq50225__$1 \x3d cljs.core.next(seq50225);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50226,seq50225__$1);\n}));\n\n"); -SHADOW_ENV.evalLoad("promesa.protocols.js", true, "goog.provide(\x27promesa.protocols\x27);\n\n/**\n * @interface\n */\npromesa.protocols.IPromise \x3d function(){};\n\nvar promesa$protocols$IPromise$_fmap$dyn_38687 \x3d (function() {\nvar G__38688 \x3d null;\nvar G__38688__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nvar G__38688__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fmap\x22,it);\n}\n}\n});\nG__38688 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38688__2.call(this,it,f);\ncase 3:\nreturn G__38688__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38688.cljs$core$IFn$_invoke$arity$2 \x3d G__38688__2;\nG__38688.cljs$core$IFn$_invoke$arity$3 \x3d G__38688__3;\nreturn G__38688;\n})()\n;\n/**\n * Apply function to a computation\n */\npromesa.protocols._fmap \x3d (function promesa$protocols$_fmap(var_args){\nvar G__37892 \x3d arguments.length;\nswitch (G__37892) {\ncase 2:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f);\n}\n}));\n\n(promesa.protocols._fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fmap$dyn_38687(it,f,executor);\n}\n}));\n\n(promesa.protocols._fmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_merr$dyn_38703 \x3d (function() {\nvar G__38705 \x3d null;\nvar G__38705__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nvar G__38705__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._merr[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._merr[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-merr\x22,it);\n}\n}\n});\nG__38705 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38705__2.call(this,it,f);\ncase 3:\nreturn G__38705__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38705.cljs$core$IFn$_invoke$arity$2 \x3d G__38705__2;\nG__38705.cljs$core$IFn$_invoke$arity$3 \x3d G__38705__3;\nreturn G__38705;\n})()\n;\n/**\n * Apply function to a failed computation and flatten 1 level\n */\npromesa.protocols._merr \x3d (function promesa$protocols$_merr(var_args){\nvar G__37920 \x3d arguments.length;\nswitch (G__37920) {\ncase 2:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f);\n}\n}));\n\n(promesa.protocols._merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_merr$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_merr$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_merr$dyn_38703(it,f,executor);\n}\n}));\n\n(promesa.protocols._merr.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_mcat$dyn_38711 \x3d (function() {\nvar G__38712 \x3d null;\nvar G__38712__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nvar G__38712__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._mcat[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._mcat[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-mcat\x22,it);\n}\n}\n});\nG__38712 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38712__2.call(this,it,f);\ncase 3:\nreturn G__38712__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38712.cljs$core$IFn$_invoke$arity$2 \x3d G__38712__2;\nG__38712.cljs$core$IFn$_invoke$arity$3 \x3d G__38712__3;\nreturn G__38712;\n})()\n;\n/**\n * Apply function to a computation and flatten 1 level\n */\npromesa.protocols._mcat \x3d (function promesa$protocols$_mcat(var_args){\nvar G__37931 \x3d arguments.length;\nswitch (G__37931) {\ncase 2:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f);\n}\n}));\n\n(promesa.protocols._mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_mcat$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_mcat$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_mcat$dyn_38711(it,f,executor);\n}\n}));\n\n(promesa.protocols._mcat.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_hmap$dyn_38718 \x3d (function() {\nvar G__38719 \x3d null;\nvar G__38719__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nvar G__38719__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._hmap[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._hmap[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-hmap\x22,it);\n}\n}\n});\nG__38719 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38719__2.call(this,it,f);\ncase 3:\nreturn G__38719__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38719.cljs$core$IFn$_invoke$arity$2 \x3d G__38719__2;\nG__38719.cljs$core$IFn$_invoke$arity$3 \x3d G__38719__3;\nreturn G__38719;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful.\n */\npromesa.protocols._hmap \x3d (function promesa$protocols$_hmap(var_args){\nvar G__37945 \x3d arguments.length;\nswitch (G__37945) {\ncase 2:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f);\n}\n}));\n\n(promesa.protocols._hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_hmap$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_hmap$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_hmap$dyn_38718(it,f,executor);\n}\n}));\n\n(promesa.protocols._hmap.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_fnly$dyn_38721 \x3d (function() {\nvar G__38722 \x3d null;\nvar G__38722__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nvar G__38722__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._fnly[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._fnly[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-fnly\x22,it);\n}\n}\n});\nG__38722 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38722__2.call(this,it,f);\ncase 3:\nreturn G__38722__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38722.cljs$core$IFn$_invoke$arity$2 \x3d G__38722__2;\nG__38722.cljs$core$IFn$_invoke$arity$3 \x3d G__38722__3;\nreturn G__38722;\n})()\n;\n/**\n * Apply function to a computation independently if is failed or\n * successful; the return value is ignored.\n */\npromesa.protocols._fnly \x3d (function promesa$protocols$_fnly(var_args){\nvar G__37964 \x3d arguments.length;\nswitch (G__37964) {\ncase 2:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f);\n}\n}));\n\n(promesa.protocols._fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_fnly$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_fnly$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_fnly$dyn_38721(it,f,executor);\n}\n}));\n\n(promesa.protocols._fnly.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$IPromise$_then$dyn_38732 \x3d (function() {\nvar G__38733 \x3d null;\nvar G__38733__2 \x3d (function (it,f){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5374__auto__.call(null,it,f));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,f) : m__5372__auto__.call(null,it,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nvar G__38733__3 \x3d (function (it,f,executor){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._then[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5374__auto__.call(null,it,f,executor));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._then[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,f,executor) : m__5372__auto__.call(null,it,f,executor));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromise.-then\x22,it);\n}\n}\n});\nG__38733 \x3d function(it,f,executor){\nswitch(arguments.length){\ncase 2:\nreturn G__38733__2.call(this,it,f);\ncase 3:\nreturn G__38733__3.call(this,it,f,executor);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38733.cljs$core$IFn$_invoke$arity$2 \x3d G__38733__2;\nG__38733.cljs$core$IFn$_invoke$arity$3 \x3d G__38733__3;\nreturn G__38733;\n})()\n;\n/**\n * Apply function to a computation and flatten multiple levels\n */\npromesa.protocols._then \x3d (function promesa$protocols$_then(var_args){\nvar G__37976 \x3d arguments.length;\nswitch (G__37976) {\ncase 2:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,f){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$2(it,f);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f);\n}\n}));\n\n(promesa.protocols._then.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,f,executor){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromise$_then$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromise$_then$arity$3(it,f,executor);\n} else {\nreturn promesa$protocols$IPromise$_then$dyn_38732(it,f,executor);\n}\n}));\n\n(promesa.protocols._then.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Additional state/introspection abstraction.\n * @interface\n */\npromesa.protocols.IState \x3d function(){};\n\nvar promesa$protocols$IState$_extract$dyn_38742 \x3d (function() {\nvar G__38743 \x3d null;\nvar G__38743__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nvar G__38743__2 \x3d (function (it,default$){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._extract[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5374__auto__.call(null,it,default$));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._extract[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,default$) : m__5372__auto__.call(null,it,default$));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-extract\x22,it);\n}\n}\n});\nG__38743 \x3d function(it,default$){\nswitch(arguments.length){\ncase 1:\nreturn G__38743__1.call(this,it);\ncase 2:\nreturn G__38743__2.call(this,it,default$);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38743.cljs$core$IFn$_invoke$arity$1 \x3d G__38743__1;\nG__38743.cljs$core$IFn$_invoke$arity$2 \x3d G__38743__2;\nreturn G__38743;\n})()\n;\n/**\n * Extract the current value.\n */\npromesa.protocols._extract \x3d (function promesa$protocols$_extract(var_args){\nvar G__37998 \x3d arguments.length;\nswitch (G__37998) {\ncase 1:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it);\n}\n}));\n\n(promesa.protocols._extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,default$){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_extract$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_extract$arity$2(it,default$);\n} else {\nreturn promesa$protocols$IState$_extract$dyn_38742(it,default$);\n}\n}));\n\n(promesa.protocols._extract.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$IState$_resolved_QMARK_$dyn_38750 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolved_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolved_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-resolved?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is resolved.\n */\npromesa.protocols._resolved_QMARK_ \x3d (function promesa$protocols$_resolved_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_resolved_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_resolved_QMARK_$dyn_38750(it);\n}\n});\n\nvar promesa$protocols$IState$_rejected_QMARK_$dyn_38751 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._rejected_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._rejected_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-rejected?\x22,it);\n}\n}\n});\n/**\n * Returns true if a promise is rejected.\n */\npromesa.protocols._rejected_QMARK_ \x3d (function promesa$protocols$_rejected_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_rejected_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_rejected_QMARK_$dyn_38751(it);\n}\n});\n\nvar promesa$protocols$IState$_pending_QMARK_$dyn_38757 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._pending_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._pending_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IState.-pending?\x22,it);\n}\n}\n});\n/**\n * Retutns true if a promise is pending.\n */\npromesa.protocols._pending_QMARK_ \x3d (function promesa$protocols$_pending_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IState$_pending_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IState$_pending_QMARK_$dyn_38757(it);\n}\n});\n\n\n/**\n * A promise constructor abstraction.\n * @interface\n */\npromesa.protocols.IPromiseFactory \x3d function(){};\n\nvar promesa$protocols$IPromiseFactory$_promise$dyn_38758 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._promise[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._promise[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IPromiseFactory.-promise\x22,it);\n}\n}\n});\n/**\n * Create a promise instance from other types\n */\npromesa.protocols._promise \x3d (function promesa$protocols$_promise(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IPromiseFactory$_promise$arity$1(it);\n} else {\nreturn promesa$protocols$IPromiseFactory$_promise$dyn_38758(it);\n}\n});\n\n\n/**\n * A cancellation abstraction.\n * @interface\n */\npromesa.protocols.ICancellable \x3d function(){};\n\nvar promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancel_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancel_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancel!\x22,it);\n}\n}\n});\npromesa.protocols._cancel_BANG_ \x3d (function promesa$protocols$_cancel_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancel_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancel_BANG_$dyn_38760(it);\n}\n});\n\nvar promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cancelled_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cancelled_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICancellable.-cancelled?\x22,it);\n}\n}\n});\npromesa.protocols._cancelled_QMARK_ \x3d (function promesa$protocols$_cancelled_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICancellable$_cancelled_QMARK_$dyn_38764(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICompletable \x3d function(){};\n\nvar promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768 \x3d (function (it,v){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._resolve_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5374__auto__.call(null,it,v));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._resolve_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,v) : m__5372__auto__.call(null,it,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-resolve!\x22,it);\n}\n}\n});\n/**\n * Deliver a value to empty promise.\n */\npromesa.protocols._resolve_BANG_ \x3d (function promesa$protocols$_resolve_BANG_(it,v){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_resolve_BANG_$arity$2(it,v);\n} else {\nreturn promesa$protocols$ICompletable$_resolve_BANG_$dyn_38768(it,v);\n}\n});\n\nvar promesa$protocols$ICompletable$_reject_BANG_$dyn_38774 \x3d (function (it,e){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._reject_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5374__auto__.call(null,it,e));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._reject_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,e) : m__5372__auto__.call(null,it,e));\n} else {\nthrow cljs.core.missing_protocol(\x22ICompletable.-reject!\x22,it);\n}\n}\n});\n/**\n * Deliver an error to empty promise.\n */\npromesa.protocols._reject_BANG_ \x3d (function promesa$protocols$_reject_BANG_(it,e){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICompletable$_reject_BANG_$arity$2(it,e);\n} else {\nreturn promesa$protocols$ICompletable$_reject_BANG_$dyn_38774(it,e);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IExecutor \x3d function(){};\n\nvar promesa$protocols$IExecutor$_exec_BANG_$dyn_38780 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._exec_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._exec_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-exec!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return nil\n */\npromesa.protocols._exec_BANG_ \x3d (function promesa$protocols$_exec_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_exec_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_exec_BANG_$dyn_38780(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_run_BANG_$dyn_38784 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._run_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._run_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-run!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._run_BANG_ \x3d (function promesa$protocols$_run_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_run_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_run_BANG_$dyn_38784(it,task);\n}\n});\n\nvar promesa$protocols$IExecutor$_submit_BANG_$dyn_38785 \x3d (function (it,task){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._submit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5374__auto__.call(null,it,task));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._submit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,task) : m__5372__auto__.call(null,it,task));\n} else {\nthrow cljs.core.missing_protocol(\x22IExecutor.-submit!\x22,it);\n}\n}\n});\n/**\n * Submit a task and return a promise.\n */\npromesa.protocols._submit_BANG_ \x3d (function promesa$protocols$_submit_BANG_(it,task){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IExecutor$_submit_BANG_$arity$2(it,task);\n} else {\nreturn promesa$protocols$IExecutor$_submit_BANG_$dyn_38785(it,task);\n}\n});\n\n\n/**\n * A generic abstraction for scheduler facilities.\n * @interface\n */\npromesa.protocols.IScheduler \x3d function(){};\n\nvar promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792 \x3d (function (it,ms,func){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._schedule_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5374__auto__.call(null,it,ms,func));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._schedule_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ms,func) : m__5372__auto__.call(null,it,ms,func));\n} else {\nthrow cljs.core.missing_protocol(\x22IScheduler.-schedule!\x22,it);\n}\n}\n});\n/**\n * Schedule a function to be executed in future.\n */\npromesa.protocols._schedule_BANG_ \x3d (function promesa$protocols$_schedule_BANG_(it,ms,func){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IScheduler$_schedule_BANG_$arity$3(it,ms,func);\n} else {\nreturn promesa$protocols$IScheduler$_schedule_BANG_$dyn_38792(it,ms,func);\n}\n});\n\n\n/**\n * An experimental semaphore protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ISemaphore \x3d function(){};\n\nvar promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798 \x3d (function() {\nvar G__38799 \x3d null;\nvar G__38799__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nvar G__38799__3 \x3d (function (it,n,t){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._try_acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5374__auto__.call(null,it,n,t));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._try_acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,n,t) : m__5372__auto__.call(null,it,n,t));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-try-acquire!\x22,it);\n}\n}\n});\nG__38799 \x3d function(it,n,t){\nswitch(arguments.length){\ncase 1:\nreturn G__38799__1.call(this,it);\ncase 2:\nreturn G__38799__2.call(this,it,n);\ncase 3:\nreturn G__38799__3.call(this,it,n,t);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38799.cljs$core$IFn$_invoke$arity$1 \x3d G__38799__1;\nG__38799.cljs$core$IFn$_invoke$arity$2 \x3d G__38799__2;\nG__38799.cljs$core$IFn$_invoke$arity$3 \x3d G__38799__3;\nreturn G__38799;\n})()\n;\n/**\n * Try acquire n or n permits, non-blocking or optional timeout\n */\npromesa.protocols._try_acquire_BANG_ \x3d (function promesa$protocols$_try_acquire_BANG_(var_args){\nvar G__38458 \x3d arguments.length;\nswitch (G__38458) {\ncase 1:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (it,n,t){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_try_acquire_BANG_$arity$3(it,n,t);\n} else {\nreturn promesa$protocols$ISemaphore$_try_acquire_BANG_$dyn_38798(it,n,t);\n}\n}));\n\n(promesa.protocols._try_acquire_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\nvar promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810 \x3d (function() {\nvar G__38811 \x3d null;\nvar G__38811__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nvar G__38811__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._acquire_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._acquire_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-acquire!\x22,it);\n}\n}\n});\nG__38811 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38811__1.call(this,it);\ncase 2:\nreturn G__38811__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38811.cljs$core$IFn$_invoke$arity$1 \x3d G__38811__1;\nG__38811.cljs$core$IFn$_invoke$arity$2 \x3d G__38811__2;\nreturn G__38811;\n})()\n;\n/**\n * Acquire 1 or N permits\n */\npromesa.protocols._acquire_BANG_ \x3d (function promesa$protocols$_acquire_BANG_(var_args){\nvar G__38505 \x3d arguments.length;\nswitch (G__38505) {\ncase 1:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_acquire_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_acquire_BANG_$dyn_38810(it,n);\n}\n}));\n\n(promesa.protocols._acquire_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\nvar promesa$protocols$ISemaphore$_release_BANG_$dyn_38816 \x3d (function() {\nvar G__38817 \x3d null;\nvar G__38817__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nvar G__38817__2 \x3d (function (it,n){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._release_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5374__auto__.call(null,it,n));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._release_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,n) : m__5372__auto__.call(null,it,n));\n} else {\nthrow cljs.core.missing_protocol(\x22ISemaphore.-release!\x22,it);\n}\n}\n});\nG__38817 \x3d function(it,n){\nswitch(arguments.length){\ncase 1:\nreturn G__38817__1.call(this,it);\ncase 2:\nreturn G__38817__2.call(this,it,n);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38817.cljs$core$IFn$_invoke$arity$1 \x3d G__38817__1;\nG__38817.cljs$core$IFn$_invoke$arity$2 \x3d G__38817__2;\nreturn G__38817;\n})()\n;\n/**\n * Release 1 or N permits\n */\npromesa.protocols._release_BANG_ \x3d (function promesa$protocols$_release_BANG_(var_args){\nvar G__38547 \x3d arguments.length;\nswitch (G__38547) {\ncase 1:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,n){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ISemaphore$_release_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ISemaphore$_release_BANG_$arity$2(it,n);\n} else {\nreturn promesa$protocols$ISemaphore$_release_BANG_$dyn_38816(it,n);\n}\n}));\n\n(promesa.protocols._release_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * An experimental lock protocol, used internally; no public api\n * @interface\n */\npromesa.protocols.ILock \x3d function(){};\n\nvar promesa$protocols$ILock$_lock_BANG_$dyn_38826 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._lock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._lock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-lock!\x22,it);\n}\n}\n});\npromesa.protocols._lock_BANG_ \x3d (function promesa$protocols$_lock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_lock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_lock_BANG_$dyn_38826(it);\n}\n});\n\nvar promesa$protocols$ILock$_unlock_BANG_$dyn_38831 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._unlock_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._unlock_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ILock.-unlock!\x22,it);\n}\n}\n});\npromesa.protocols._unlock_BANG_ \x3d (function promesa$protocols$_unlock_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ILock$_unlock_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ILock$_unlock_BANG_$dyn_38831(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IReadChannel \x3d function(){};\n\nvar promesa$protocols$IReadChannel$_take_BANG_$dyn_38836 \x3d (function (it,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._take_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5374__auto__.call(null,it,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._take_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,handler) : m__5372__auto__.call(null,it,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IReadChannel.-take!\x22,it);\n}\n}\n});\npromesa.protocols._take_BANG_ \x3d (function promesa$protocols$_take_BANG_(it,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IReadChannel$_take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IReadChannel$_take_BANG_$arity$2(it,handler);\n} else {\nreturn promesa$protocols$IReadChannel$_take_BANG_$dyn_38836(it,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IWriteChannel \x3d function(){};\n\nvar promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838 \x3d (function (it,val,handler){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._put_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5374__auto__.call(null,it,val,handler));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._put_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,val,handler) : m__5372__auto__.call(null,it,val,handler));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriteChannel.-put!\x22,it);\n}\n}\n});\npromesa.protocols._put_BANG_ \x3d (function promesa$protocols$_put_BANG_(it,val,handler){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IWriteChannel$_put_BANG_$arity$3(it,val,handler);\n} else {\nreturn promesa$protocols$IWriteChannel$_put_BANG_$dyn_38838(it,val,handler);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelInternal \x3d function(){};\n\nvar promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._cleanup_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._cleanup_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelInternal.-cleanup!\x22,it);\n}\n}\n});\npromesa.protocols._cleanup_BANG_ \x3d (function promesa$protocols$_cleanup_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelInternal$_cleanup_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IChannelInternal$_cleanup_BANG_$dyn_38839(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IChannelMultiplexer \x3d function(){};\n\nvar promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840 \x3d (function (it,ch,close_QMARK_){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._tap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5374__auto__.call(null,it,ch,close_QMARK_));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._tap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$3(it,ch,close_QMARK_) : m__5372__auto__.call(null,it,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-tap!\x22,it);\n}\n}\n});\npromesa.protocols._tap_BANG_ \x3d (function promesa$protocols$_tap_BANG_(it,ch,close_QMARK_){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_tap_BANG_$arity$3(it,ch,close_QMARK_);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_tap_BANG_$dyn_38840(it,ch,close_QMARK_);\n}\n});\n\nvar promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842 \x3d (function (it,ch){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._untap_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5374__auto__.call(null,it,ch));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._untap_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,ch) : m__5372__auto__.call(null,it,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22IChannelMultiplexer.-untap!\x22,it);\n}\n}\n});\npromesa.protocols._untap_BANG_ \x3d (function promesa$protocols$_untap_BANG_(it,ch){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IChannelMultiplexer$_untap_BANG_$arity$2(it,ch);\n} else {\nreturn promesa$protocols$IChannelMultiplexer$_untap_BANG_$dyn_38842(it,ch);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.ICloseable \x3d function(){};\n\nvar promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._closed_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._closed_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-closed?\x22,it);\n}\n}\n});\npromesa.protocols._closed_QMARK_ \x3d (function promesa$protocols$_closed_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_closed_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_closed_QMARK_$dyn_38843(it);\n}\n});\n\nvar promesa$protocols$ICloseable$_close_BANG_$dyn_38845 \x3d (function() {\nvar G__38846 \x3d null;\nvar G__38846__1 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nvar G__38846__2 \x3d (function (it,reason){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._close_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5374__auto__.call(null,it,reason));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._close_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,reason) : m__5372__auto__.call(null,it,reason));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloseable.-close!\x22,it);\n}\n}\n});\nG__38846 \x3d function(it,reason){\nswitch(arguments.length){\ncase 1:\nreturn G__38846__1.call(this,it);\ncase 2:\nreturn G__38846__2.call(this,it,reason);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38846.cljs$core$IFn$_invoke$arity$1 \x3d G__38846__1;\nG__38846.cljs$core$IFn$_invoke$arity$2 \x3d G__38846__2;\nreturn G__38846;\n})()\n;\npromesa.protocols._close_BANG_ \x3d (function promesa$protocols$_close_BANG_(var_args){\nvar G__38634 \x3d arguments.length;\nswitch (G__38634) {\ncase 1:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (it,reason){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$ICloseable$_close_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$ICloseable$_close_BANG_$arity$2(it,reason);\n} else {\nreturn promesa$protocols$ICloseable$_close_BANG_$dyn_38845(it,reason);\n}\n}));\n\n(promesa.protocols._close_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n * @interface\n */\npromesa.protocols.IBuffer \x3d function(){};\n\nvar promesa$protocols$IBuffer$_full_QMARK_$dyn_38852 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._full_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._full_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-full?\x22,it);\n}\n}\n});\npromesa.protocols._full_QMARK_ \x3d (function promesa$protocols$_full_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_full_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_full_QMARK_$dyn_38852(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_poll_BANG_$dyn_38854 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._poll_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._poll_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-poll!\x22,it);\n}\n}\n});\npromesa.protocols._poll_BANG_ \x3d (function promesa$protocols$_poll_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_poll_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_poll_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_poll_BANG_$dyn_38854(it);\n}\n});\n\nvar promesa$protocols$IBuffer$_offer_BANG_$dyn_38857 \x3d (function (it,val){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._offer_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5374__auto__.call(null,it,val));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._offer_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(it,val) : m__5372__auto__.call(null,it,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-offer!\x22,it);\n}\n}\n});\npromesa.protocols._offer_BANG_ \x3d (function promesa$protocols$_offer_BANG_(it,val){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_offer_BANG_$arity$2 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_offer_BANG_$arity$2(it,val);\n} else {\nreturn promesa$protocols$IBuffer$_offer_BANG_$dyn_38857(it,val);\n}\n});\n\nvar promesa$protocols$IBuffer$_size$dyn_38864 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._size[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._size[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IBuffer.-size\x22,it);\n}\n}\n});\npromesa.protocols._size \x3d (function promesa$protocols$_size(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IBuffer$_size$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IBuffer$_size$arity$1(it);\n} else {\nreturn promesa$protocols$IBuffer$_size$dyn_38864(it);\n}\n});\n\n\n/**\n * @interface\n */\npromesa.protocols.IHandler \x3d function(){};\n\nvar promesa$protocols$IHandler$_active_QMARK_$dyn_38866 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._active_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._active_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-active?\x22,it);\n}\n}\n});\npromesa.protocols._active_QMARK_ \x3d (function promesa$protocols$_active_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_active_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_active_QMARK_$dyn_38866(it);\n}\n});\n\nvar promesa$protocols$IHandler$_commit_BANG_$dyn_38871 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._commit_BANG_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._commit_BANG_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-commit!\x22,it);\n}\n}\n});\npromesa.protocols._commit_BANG_ \x3d (function promesa$protocols$_commit_BANG_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_commit_BANG_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_commit_BANG_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_commit_BANG_$dyn_38871(it);\n}\n});\n\nvar promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874 \x3d (function (it){\nvar x__5373__auto__ \x3d (((it \x3d\x3d null))?null:it);\nvar m__5374__auto__ \x3d (promesa.protocols._blockable_QMARK_[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5374__auto__.call(null,it));\n} else {\nvar m__5372__auto__ \x3d (promesa.protocols._blockable_QMARK_[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(it) : m__5372__auto__.call(null,it));\n} else {\nthrow cljs.core.missing_protocol(\x22IHandler.-blockable?\x22,it);\n}\n}\n});\npromesa.protocols._blockable_QMARK_ \x3d (function promesa$protocols$_blockable_QMARK_(it){\nif((((!((it \x3d\x3d null)))) \x26\x26 ((!((it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn it.promesa$protocols$IHandler$_blockable_QMARK_$arity$1(it);\n} else {\nreturn promesa$protocols$IHandler$_blockable_QMARK_$dyn_38874(it);\n}\n});\n\n"); -SHADOW_ENV.evalLoad("promesa.util.js", true, "goog.provide(\x27promesa.util\x27);\n/**\n * Create a handler, mainly for combine two separate functions\n * into a single callbale.\n */\npromesa.util.handler \x3d (function promesa$util$handler(fv,fc){\nreturn (function (v,c){\nif(cljs.core.truth_(c)){\nreturn (fc.cljs$core$IFn$_invoke$arity$1 ? fc.cljs$core$IFn$_invoke$arity$1(c) : fc.call(null,c));\n} else {\nreturn (fv.cljs$core$IFn$_invoke$arity$1 ? fv.cljs$core$IFn$_invoke$arity$1(v) : fv.call(null,v));\n}\n});\n});\npromesa.util.has_method_QMARK_ \x3d (function promesa$util$has_method_QMARK_(klass,name){\nvar methods$ \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (method){\nreturn method.getName();\n})),klass.getDeclaredMethods());\nreturn cljs.core.contains_QMARK_(methods$,name);\n});\npromesa.util.maybe_deref \x3d (function promesa$util$maybe_deref(o){\nif(cljs.core.delay_QMARK_(o)){\nreturn cljs.core.deref(o);\n} else {\nreturn o;\n}\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.ILock}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.util.t_promesa$util43295 \x3d (function (meta43296){\nthis.meta43296 \x3d meta43296;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43297,meta43296__$1){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn (new promesa.util.t_promesa$util43295(meta43296__$1));\n}));\n\n(promesa.util.t_promesa$util43295.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43297){\nvar self__ \x3d this;\nvar _43297__$1 \x3d this;\nreturn self__.meta43296;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_lock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.prototype.promesa$protocols$ILock$_unlock_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(promesa.util.t_promesa$util43295.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43296\x22,\x22meta43296\x22,331692302,null)], null);\n}));\n\n(promesa.util.t_promesa$util43295.cljs$lang$type \x3d true);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorStr \x3d \x22promesa.util/t_promesa$util43295\x22);\n\n(promesa.util.t_promesa$util43295.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.util/t_promesa$util43295\x22);\n}));\n\n/**\n * Positional factory function for promesa.util/t_promesa$util43295.\n */\npromesa.util.__GT_t_promesa$util43295 \x3d (function promesa$util$__GT_t_promesa$util43295(meta43296){\nreturn (new promesa.util.t_promesa$util43295(meta43296));\n});\n\n\npromesa.util.mutex \x3d (function promesa$util$mutex(){\nreturn (new promesa.util.t_promesa$util43295(cljs.core.PersistentArrayMap.EMPTY));\n});\npromesa.util.try_STAR_ \x3d (function promesa$util$try_STAR_(f,on_error){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43314){var e \x3d e43314;\nreturn (on_error.cljs$core$IFn$_invoke$arity$1 ? on_error.cljs$core$IFn$_invoke$arity$1(e) : on_error.call(null,e));\n}});\n"); -SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.impl.promise\x22);\ngoog.provide(\x22promesa.impl.promise.PromiseImpl\x22);\ngoog.provide(\x22promesa.impl.promise.CancellationError\x22);\ngoog.scope(function() {\n const self \x3d promesa.impl.promise;\n const root \x3d goog.global;\n const PENDING \x3d Symbol(\x22state/pending\x22);\n const RESOLVED \x3d Symbol(\x22state/resolved\x22);\n const REJECTED \x3d Symbol(\x22state/rejected\x22);\n const QUEUE \x3d Symbol(\x22queue\x22);\n const STATE \x3d Symbol(\x22state\x22);\n const VALUE \x3d Symbol(\x22value\x22);\n const RESOLVE_TYPE_FLATTEN \x3d Symbol(\x22resolve-type/flatten\x22);\n const RESOLVE_TYPE_BIND \x3d Symbol(\x22resolve-type/bind\x22);\n const RESOLVE_TYPE_MAP \x3d Symbol(\x22resolve-type/map\x22);\n const defaultResolveMapHandler \x3d v \x3d\x3e v;\n const defaultResolveBindHandler \x3d v \x3d\x3e self.resolved(v);\n const defaultRejectHandler \x3d c \x3d\x3e {\n throw c;\n };\n class CancellationError extends Error {\n }\n class PromiseImpl {\n constructor(val) {\n this[QUEUE] \x3d [];\n this[STATE] \x3d PENDING;\n this[VALUE] \x3d undefined;\n if (val !\x3d\x3d undefined) {\n transition(this, RESOLVED, val);\n }\n }\n get state() {\n return this[STATE];\n }\n get value() {\n return this[VALUE];\n }\n then(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n catch(reject) {\n return this.then(null, reject);\n }\n finally(f) {\n this[QUEUE].push({type:RESOLVE_TYPE_FLATTEN, resolve:value \x3d\x3e f(), reject:cause \x3d\x3e f(), complete:(value, cause) \x3d\x3e null});\n return this;\n }\n fmap(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_MAP, resolve:resolve ?? defaultResolveMapHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n fbind(resolve, reject) {\n const deferred \x3d new PromiseImpl();\n this[QUEUE].push({type:RESOLVE_TYPE_BIND, resolve:resolve ?? defaultResolveBindHandler, reject:reject ?? defaultRejectHandler, complete:completeDeferredFn(deferred)});\n process(this);\n return deferred;\n }\n handle(fn, resolveType) {\n resolveType \x3d resolveType ?? RESOLVE_TYPE_MAP;\n this[QUEUE].push({type:resolveType, resolve:defaultResolveMapHandler, reject:defaultRejectHandler, complete:fn});\n process(this);\n }\n resolve(value) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, RESOLVED, value);\n }\n return null;\n }\n reject(cause) {\n if (this[STATE] \x3d\x3d\x3d PENDING) {\n transition(this, REJECTED, cause);\n }\n return null;\n }\n isPending() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d PENDING;\n }\n isResolved() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d RESOLVED;\n }\n isRejected() {\n const state \x3d this[STATE];\n return state \x3d\x3d\x3d REJECTED;\n }\n isCancelled() {\n const state \x3d this[STATE];\n const value \x3d this[VALUE];\n return state \x3d\x3d\x3d REJECTED \x26\x26 isCancellationError(value);\n }\n cancel() {\n this.reject(new CancellationError(\x22promise cancelled\x22));\n }\n }\n const nextTick \x3d (() \x3d\x3e {\n if (typeof root.Promise \x3d\x3d\x3d \x22function\x22) {\n const resolved \x3d Promise.resolve(null);\n return function queueMicrotaskWithPromise(f, p) {\n resolved.then(() \x3d\x3e f(p));\n };\n } else if (typeof root.setImmediate \x3d\x3d\x3d \x22function\x22) {\n return root.setImmediate;\n } else if (typeof root.setTimeout \x3d\x3d\x3d \x22function\x22) {\n return (f, p) \x3d\x3e root.setTimeout(f, 0, p);\n } else {\n return (f, p) \x3d\x3e f.call(this, p);\n }\n })();\n function isCancellationError(v) {\n return v instanceof CancellationError;\n }\n function fmtValue(o) {\n if (isThenable(o)) {\n return `\x3cPROMISE:${goog.getUid(o)}\x3e`;\n } else if (o instanceof Error) {\n return `\x3cEXCEPTION:\x27${o.message}\x27\x3e`;\n } else if (o \x3d\x3d\x3d null || o \x3d\x3d\x3d undefined) {\n return `${o}`;\n } else if (typeof o \x3d\x3d\x3d \x22function\x22) {\n return `\x3cFN:${goog.getUid(o)}\x3e`;\n } else {\n return `${o.toString()}`;\n }\n }\n function isSome(o) {\n return o !\x3d\x3d null \x26\x26 o !\x3d\x3d undefined;\n }\n function isFunction(o) {\n return typeof o \x3d\x3d\x3d \x22function\x22;\n }\n function isThenable(o) {\n if (goog.isObject(o)) {\n const thenFn \x3d o.then;\n return isFunction(thenFn);\n } else {\n return false;\n }\n }\n function constantly(v) {\n return () \x3d\x3e v;\n }\n function identity(v) {\n return v;\n }\n function isPromiseImpl(v) {\n return v instanceof PromiseImpl;\n }\n function completeDeferredFn(deferred) {\n return (value, cause) \x3d\x3e {\n if (cause) {\n deferred.reject(cause);\n } else {\n deferred.resolve(value);\n }\n };\n }\n function process(p) {\n if (p[STATE] \x3d\x3d\x3d PENDING) {\n return;\n }\n nextTick(processNextTick, p);\n return p;\n }\n function processNextTick(p) {\n if (p[QUEUE].length \x3d\x3d\x3d 0) {\n return;\n }\n const state \x3d p[STATE];\n const value \x3d p[VALUE];\n let task, rvalue, rcause;\n while (p[QUEUE].length) {\n task \x3d p[QUEUE].shift();\n try {\n if (state \x3d\x3d\x3d RESOLVED) {\n rvalue \x3d task.resolve(value);\n } else if (state \x3d\x3d\x3d REJECTED) {\n rvalue \x3d task.reject(value);\n } else {\n rcause \x3d new TypeError(\x22invalid state\x22);\n }\n } catch (e) {\n rcause \x3d e;\n }\n resolveTask(task, rvalue, rcause);\n }\n }\n function resolveTask(task, value, cause) {\n if (task.complete \x3d\x3d\x3d undefined) {\n return;\n }\n if (cause) {\n task.complete(null, cause);\n } else {\n if (task.type \x3d\x3d\x3d RESOLVE_TYPE_MAP) {\n task.complete(value, null);\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_FLATTEN) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n resolveTask(task, v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n resolveTask(task, v, null);\n }, c \x3d\x3e {\n resolveTask(task, null, c);\n });\n } else {\n task.complete(value, null);\n }\n } else if (task.type \x3d\x3d\x3d RESOLVE_TYPE_BIND) {\n if (isPromiseImpl(value)) {\n value.handle((v, c) \x3d\x3e {\n task.complete(v, c);\n });\n } else if (isThenable(value)) {\n value.then(v \x3d\x3e {\n task.complete(v, null);\n }, c \x3d\x3e {\n task.complete(null, c);\n });\n } else {\n task.complete(null, new TypeError(\x22expected thenable\x22));\n }\n } else {\n task.complete(null, new TypeError(\x22internal: invalid resolve type\x22));\n }\n }\n }\n function transition(p, state, value) {\n if (p[STATE] \x3d\x3d\x3d state || p[STATE] !\x3d\x3d PENDING) {\n return;\n }\n p[STATE] \x3d state;\n p[VALUE] \x3d value;\n return processNextTick(p);\n }\n self.PromiseImpl \x3d PromiseImpl;\n self.CancellationError \x3d CancellationError;\n self.isCancellationError \x3d isCancellationError;\n self.deferred \x3d () \x3d\x3e {\n return new PromiseImpl();\n };\n const NULL_PROMISE \x3d new PromiseImpl(null);\n self.resolved \x3d function resolved(value) {\n if (value \x3d\x3d\x3d null) {\n return NULL_PROMISE;\n } else {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d RESOLVED;\n p[VALUE] \x3d value;\n return p;\n }\n };\n self.rejected \x3d function rejected(reason) {\n const p \x3d new PromiseImpl();\n p[STATE] \x3d REJECTED;\n p[VALUE] \x3d reason;\n return p;\n };\n self.all \x3d function all(promises) {\n return promises.reduce((acc, p) \x3d\x3e {\n return acc.then(results \x3d\x3e {\n return self.coerce(p).fmap(v \x3d\x3e {\n results.push(v);\n return results;\n });\n });\n }, self.resolved([]));\n };\n self.coerce \x3d function coerce(promise) {\n if (promise instanceof PromiseImpl) {\n return promise;\n } else if (isThenable(promise)) {\n const deferred \x3d self.deferred();\n promise.then(v \x3d\x3e {\n deferred.resolve(v);\n }, c \x3d\x3e {\n deferred.reject(c);\n });\n return deferred;\n } else if (promise instanceof Error) {\n return self.rejected(promise);\n } else {\n return self.resolved(promise);\n }\n };\n self.race \x3d function race(promises) {\n const deferred \x3d self.deferred();\n promises.forEach(p \x3d\x3e {\n self.coerce(p).handle((v, c) \x3d\x3e {\n if (c) {\n deferred.reject(c);\n } else {\n deferred.resolve(v);\n }\n });\n });\n return deferred;\n };\n self.nextTick \x3d nextTick;\n self.PENDING \x3d PENDING;\n self.RESOLVED \x3d RESOLVED;\n self.REJECTED \x3d REJECTED;\n});\n"); -SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); -SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); -SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__75509 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75510 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75510);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75509);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,wrap_ctx((function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}))),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e75511){if((e75511 instanceof Error)){\nvar e \x3d e75511;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e75511;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms)),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((intemporal.utils.current_time_ms() - start)),(function (duration){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration):null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null));\n}));\n}));\n}));\n}));\n})),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (exec_result){\nvar G__75512 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__75512__$1 \x3d (((G__75512 instanceof cljs.core.Keyword))?G__75512.fqn:null);\nswitch (G__75512__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (_){\nvar G__75513 \x3d executor;\nvar G__75514 \x3d activity_name;\nvar G__75515 \x3d args;\nvar G__75516 \x3d timeout_ms;\nvar G__75517 \x3d retry_policy;\nvar G__75518 \x3d observer;\nvar G__75519 \x3d workflow_id;\nvar G__75520 \x3d seq_num;\nvar G__75521 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__75513,G__75514,G__75515,G__75516,G__75517,G__75518,G__75519,G__75520,G__75521) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__75513,G__75514,G__75515,G__75516,G__75517,G__75518,G__75519,G__75520,G__75521));\n}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75512__$1)].join(\x27\x27)));\n\n}\n}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__75522,pending_events,observer){\nvar map__75523 \x3d p__75522;\nvar map__75523__$1 \x3d cljs.core.__destructure_map(map__75523);\nvar suspension_data \x3d map__75523__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75523__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__75524 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75525 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75525);\n\ntry{return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq)),(function (exec_result){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_events(store,workflow_id,pending_events)),(function (___30362__auto__){\nreturn promesa.protocols._promise((function (){var success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__75526 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__75526__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75526,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__75526);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75526__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__75526__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75524);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.execute_activities_parallel(executor,pending_asyncs)),(function (results){\nreturn promesa.protocols._promise((function (){var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__75527,result){\nvar map__75528 \x3d p__75527;\nvar map__75528__$1 \x3d cljs.core.__destructure_map(map__75528);\nvar async_info \x3d map__75528__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75528__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75528__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__75529 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75530 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75530);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75529);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75531 \x3d suspension_data;\nvar map__75531__$1 \x3d cljs.core.__destructure_map(map__75531);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75531__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75531__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75532 \x3d suspension_data;\nvar map__75532__$1 \x3d cljs.core.__destructure_map(map__75532);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75532__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75532__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___75575 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___75575)){\nvar signal_data_75576 \x3d temp__5825__auto___75575;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_75576),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_75576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_75576));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75533 \x3d suspension_data;\nvar map__75533__$1 \x3d cljs.core.__destructure_map(map__75533);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75533__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__75577 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__75534 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__75577 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__75577 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75534,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__75577));\n} else {\nreturn G__75534;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__75535 \x3d suspension_data;\nvar map__75535__$1 \x3d cljs.core.__destructure_map(map__75535);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75535__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75578 \x3d arguments.length;\nvar i__5750__auto___75579 \x3d (0);\nwhile(true){\nif((i__5750__auto___75579 \x3c len__5749__auto___75578)){\nargs__5755__auto__.push((arguments[i__5750__auto___75579]));\n\nvar G__75580 \x3d (i__5750__auto___75579 + (1));\ni__5750__auto___75579 \x3d G__75580;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__75542){\nvar map__75543 \x3d p__75542;\nvar map__75543__$1 \x3d cljs.core.__destructure_map(map__75543);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75543__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__75544 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75544,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75544;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq75536){\nvar G__75537 \x3d cljs.core.first(seq75536);\nvar seq75536__$1 \x3d cljs.core.next(seq75536);\nvar G__75538 \x3d cljs.core.first(seq75536__$1);\nvar seq75536__$2 \x3d cljs.core.next(seq75536__$1);\nvar G__75539 \x3d cljs.core.first(seq75536__$2);\nvar seq75536__$3 \x3d cljs.core.next(seq75536__$2);\nvar G__75540 \x3d cljs.core.first(seq75536__$3);\nvar seq75536__$4 \x3d cljs.core.next(seq75536__$3);\nvar G__75541 \x3d cljs.core.first(seq75536__$4);\nvar seq75536__$5 \x3d cljs.core.next(seq75536__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75537,G__75538,G__75539,G__75540,G__75541,seq75536__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer):(function (){\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n})()\n)),(function (_){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null))),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_(observer)?intemporal.protocol.on_workflow_completed(observer,workflow_id,result):null)),(function (___30362__auto____$1){\nreturn promesa.protocols._promise(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null));\n}));\n}));\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__75545 \x3d action;\nvar G__75545__$1 \x3d (((G__75545 instanceof cljs.core.Keyword))?G__75545.fqn:null);\nswitch (G__75545__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__75546 \x3d engine;\nvar map__75546__$1 \x3d cljs.core.__destructure_map(map__75546);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75546__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__75547 \x3d suspension_type;\nvar G__75547__$1 \x3d (((G__75547 instanceof cljs.core.Keyword))?G__75547.fqn:null);\nswitch (G__75547__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(((cljs.core.seq(pending_asyncs_list))?intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer):null)),(function (_){\nreturn promesa.protocols._promise(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75547__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__75548,workflow_id,workflow_fn,args,p__75549){\nvar map__75550 \x3d p__75548;\nvar map__75550__$1 \x3d cljs.core.__destructure_map(map__75550);\nvar engine \x3d map__75550__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75550__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__75551 \x3d p__75549;\nvar map__75551__$1 \x3d cljs.core.__destructure_map(map__75551);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75551__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75551__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75551__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_75556,reject_fn_75555){\nvar loop_fn_75552 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_75552(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_75553,err_75554){\nif((!((err_75554 \x3d\x3d null)))){\nreturn (reject_fn_75555.cljs$core$IFn$_invoke$arity$1 ? reject_fn_75555.cljs$core$IFn$_invoke$arity$1(err_75554) : reject_fn_75555.call(null,err_75554));\n} else {\nif(promesa.core.recur_QMARK_(res_75553)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_75552,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_75553));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_75556.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_75556.cljs$core$IFn$_invoke$arity$1(res_75553) : resolve_fn_75556.call(null,res_75553));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30362__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30362__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__75557 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75558 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75558);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75557);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], 0));\n\nvar G__75559 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__75559__$1 \x3d (((G__75559 instanceof cljs.core.Keyword))?G__75559.fqn:null);\nswitch (G__75559__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30394__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer)),(function (action){\nreturn promesa.protocols._mcat(promesa.protocols._promise((cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())?intemporal.protocol.on_workflow_resumed(observer,workflow_id):null)),(function (___30362__auto____$2){\nreturn promesa.protocols._promise(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553)))?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null)):intemporal.internal.execution.action__GT_result(action,workflow_id)));\n}));\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75559__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,dispatch);\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_75552((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__75560,workflow_id,suspension_data,pending_events,observer){\nvar map__75561 \x3d p__75560;\nvar map__75561__$1 \x3d cljs.core.__destructure_map(map__75561);\nvar engine \x3d map__75561__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75561__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__75562 \x3d suspension_data;\nvar map__75562__$1 \x3d cljs.core.__destructure_map(map__75562);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75562__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__75565 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__75564 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__75564.cljs$core$IFn$_invoke$arity$1 ? fexpr__75564.cljs$core$IFn$_invoke$arity$1(G__75565) : fexpr__75564.call(null,G__75565));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75598 \x3d arguments.length;\nvar i__5750__auto___75599 \x3d (0);\nwhile(true){\nif((i__5750__auto___75599 \x3c len__5749__auto___75598)){\nargs__5755__auto__.push((arguments[i__5750__auto___75599]));\n\nvar G__75600 \x3d (i__5750__auto___75599 + (1));\ni__5750__auto___75599 \x3d G__75600;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__75570,workflow_fn,args,p__75571){\nvar map__75572 \x3d p__75570;\nvar map__75572__$1 \x3d cljs.core.__destructure_map(map__75572);\nvar engine \x3d map__75572__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75572__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__75573 \x3d p__75571;\nvar map__75573__$1 \x3d cljs.core.__destructure_map(map__75573);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75573__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75573__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__75574 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75574,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75574;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq75566){\nvar G__75567 \x3d cljs.core.first(seq75566);\nvar seq75566__$1 \x3d cljs.core.next(seq75566);\nvar G__75568 \x3d cljs.core.first(seq75566__$1);\nvar seq75566__$2 \x3d cljs.core.next(seq75566__$1);\nvar G__75569 \x3d cljs.core.first(seq75566__$2);\nvar seq75566__$3 \x3d cljs.core.next(seq75566__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75567,G__75568,G__75569,seq75566__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75601 \x3d arguments.length;\nvar i__5750__auto___75602 \x3d (0);\nwhile(true){\nif((i__5750__auto___75602 \x3c len__5749__auto___75601)){\nargs__5755__auto__.push((arguments[i__5750__auto___75602]));\n\nvar G__75603 \x3d (i__5750__auto___75602 + (1));\ni__5750__auto___75602 \x3d G__75603;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__75585,workflow_fn,args,p__75586){\nvar map__75587 \x3d p__75585;\nvar map__75587__$1 \x3d cljs.core.__destructure_map(map__75587);\nvar engine \x3d map__75587__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75587__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__75588 \x3d p__75586;\nvar map__75588__$1 \x3d cljs.core.__destructure_map(map__75588);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75588__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75588__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__75589 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75589,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75589;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__75591 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75592 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75592);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__75594 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__75594) : on_complete.call(null,G__75594));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75591);\n}});\nvar _STAR_ctx_STAR__orig_val__75595 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__75596 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__75596);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__75595);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq75581){\nvar G__75582 \x3d cljs.core.first(seq75581);\nvar seq75581__$1 \x3d cljs.core.next(seq75581);\nvar G__75583 \x3d cljs.core.first(seq75581__$1);\nvar seq75581__$2 \x3d cljs.core.next(seq75581__$1);\nvar G__75584 \x3d cljs.core.first(seq75581__$2);\nvar seq75581__$3 \x3d cljs.core.next(seq75581__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75582,G__75583,G__75584,seq75581__$3);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__37470 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37471 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37471);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37470);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx37473 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37474 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37475 \x3d workflow_ctx37473;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37475);\n\ntry{return (function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37474);\n}}));\n})(),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e37472){if((e37472 instanceof Error)){\nvar e \x3d e37472;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e37472;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37476 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37477 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37478 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37478);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37477);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37479 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37480 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37480);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37479);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37481 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37482 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37482);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37481);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nvar workflow_ctx37483 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37484 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37485 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37486 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37486);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37485);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37487 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37488 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37488);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37487);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37489 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37490 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37490);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37489);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37491 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37492 \x3d workflow_ctx37483;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37492);\n\ntry{return (function (exec_result){\nvar G__37493 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__37493__$1 \x3d (((G__37493 instanceof cljs.core.Keyword))?G__37493.fqn:null);\nswitch (G__37493__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nvar workflow_ctx37494 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (res__37297__auto____$1){\nvar _STAR_workflow_context_STAR__orig_val__37495 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37496 \x3d workflow_ctx37494;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37496);\n\ntry{return (function (_){\nvar G__37497 \x3d executor;\nvar G__37498 \x3d activity_name;\nvar G__37499 \x3d args;\nvar G__37500 \x3d timeout_ms;\nvar G__37501 \x3d retry_policy;\nvar G__37502 \x3d observer;\nvar G__37503 \x3d workflow_id;\nvar G__37504 \x3d seq_num;\nvar G__37505 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__37497,G__37498,G__37499,G__37500,G__37501,G__37502,G__37503,G__37504,G__37505) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__37497,G__37498,G__37499,G__37500,G__37501,G__37502,G__37503,G__37504,G__37505));\n})(res__37297__auto____$1);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37495);\n}}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37493__$1)].join(\x27\x27)));\n\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37491);\n}}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__37506,pending_events,observer){\nvar map__37507 \x3d p__37506;\nvar map__37507__$1 \x3d cljs.core.__destructure_map(map__37507);\nvar suspension_data \x3d map__37507__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__37508 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37509 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37509);\n\ntry{var workflow_ctx37510 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37511 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37512 \x3d workflow_ctx37510;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37512);\n\ntry{return intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37511);\n}})()),(function (exec_result){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37513 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37514 \x3d workflow_ctx37510;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37514);\n\ntry{intemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__37515 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__37515__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37515,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__37515);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37515__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__37515__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37513);\n}})());\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37508);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nvar workflow_ctx37516 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37517 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37518 \x3d workflow_ctx37516;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37518);\n\ntry{return intemporal.protocol.execute_activities_parallel(executor,pending_asyncs);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37517);\n}})()),(function (results){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37519 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37520 \x3d workflow_ctx37516;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37520);\n\ntry{var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__37521,result){\nvar map__37522 \x3d p__37521;\nvar map__37522__$1 \x3d cljs.core.__destructure_map(map__37522);\nvar async_info \x3d map__37522__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37522__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37522__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__37523 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37524 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37524);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37523);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37519);\n}})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37525 \x3d suspension_data;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37526 \x3d suspension_data;\nvar map__37526__$1 \x3d cljs.core.__destructure_map(map__37526);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37526__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37526__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___37626 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___37626)){\nvar signal_data_37627 \x3d temp__5825__auto___37626;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_37627),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_37627),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_37627));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37527 \x3d suspension_data;\nvar map__37527__$1 \x3d cljs.core.__destructure_map(map__37527);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__37628 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__37528 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__37628 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__37628 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37528,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__37628));\n} else {\nreturn G__37528;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__37529 \x3d suspension_data;\nvar map__37529__$1 \x3d cljs.core.__destructure_map(map__37529);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37529__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nvar workflow_ctx37530 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37531 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37532 \x3d workflow_ctx37530;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37532);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37531);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37533 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37534 \x3d workflow_ctx37530;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37534);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37533);\n}})());\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37632 \x3d arguments.length;\nvar i__5750__auto___37633 \x3d (0);\nwhile(true){\nif((i__5750__auto___37633 \x3c len__5749__auto___37632)){\nargs__5755__auto__.push((arguments[i__5750__auto___37633]));\n\nvar G__37634 \x3d (i__5750__auto___37633 + (1));\ni__5750__auto___37633 \x3d G__37634;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__37541){\nvar map__37542 \x3d p__37541;\nvar map__37542__$1 \x3d cljs.core.__destructure_map(map__37542);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37542__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__37543 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37543,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37543;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq37535){\nvar G__37536 \x3d cljs.core.first(seq37535);\nvar seq37535__$1 \x3d cljs.core.next(seq37535);\nvar G__37537 \x3d cljs.core.first(seq37535__$1);\nvar seq37535__$2 \x3d cljs.core.next(seq37535__$1);\nvar G__37538 \x3d cljs.core.first(seq37535__$2);\nvar seq37535__$3 \x3d cljs.core.next(seq37535__$2);\nvar G__37539 \x3d cljs.core.first(seq37535__$3);\nvar seq37535__$4 \x3d cljs.core.next(seq37535__$3);\nvar G__37540 \x3d cljs.core.first(seq37535__$4);\nvar seq37535__$5 \x3d cljs.core.next(seq37535__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37536,G__37537,G__37538,G__37539,G__37540,seq37535__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nvar workflow_ctx37544 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37545 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37546 \x3d workflow_ctx37544;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37546);\n\ntry{if(cljs.core.seq(pending_asyncs)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37545);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37547 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37548 \x3d workflow_ctx37544;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37548);\n\ntry{intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_completed(observer,workflow_id,result);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37547);\n}})());\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__37549 \x3d action;\nvar G__37549__$1 \x3d (((G__37549 instanceof cljs.core.Keyword))?G__37549.fqn:null);\nswitch (G__37549__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__37550 \x3d engine;\nvar map__37550__$1 \x3d cljs.core.__destructure_map(map__37550);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__37551 \x3d suspension_type;\nvar G__37551__$1 \x3d (((G__37551 instanceof cljs.core.Keyword))?G__37551.fqn:null);\nswitch (G__37551__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nvar workflow_ctx37552 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37553 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37554 \x3d workflow_ctx37552;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37554);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37553);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37555 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37556 \x3d workflow_ctx37552;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37556);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37555);\n}})());\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nvar workflow_ctx37557 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37558 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37559 \x3d workflow_ctx37557;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37559);\n\ntry{if(cljs.core.seq(pending_asyncs_list)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n} else {\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37558);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37560 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37561 \x3d workflow_ctx37557;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37561);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37560);\n}})());\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37551__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__37562,workflow_id,workflow_fn,args,p__37563){\nvar map__37564 \x3d p__37562;\nvar map__37564__$1 \x3d cljs.core.__destructure_map(map__37564);\nvar engine \x3d map__37564__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37565 \x3d p__37563;\nvar map__37565__$1 \x3d cljs.core.__destructure_map(map__37565);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37565__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37565__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37565__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_37570,reject_fn_37569){\nvar loop_fn_37566 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_37566(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_37567,err_37568){\nif((!((err_37568 \x3d\x3d null)))){\nreturn (reject_fn_37569.cljs$core$IFn$_invoke$arity$1 ? reject_fn_37569.cljs$core$IFn$_invoke$arity$1(err_37568) : reject_fn_37569.call(null,err_37568));\n} else {\nif(promesa.core.recur_QMARK_(res_37567)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_37566,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_37567));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_37570.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_37570.cljs$core$IFn$_invoke$arity$1(res_37567) : resolve_fn_37570.call(null,res_37567));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30206__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30206__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__37571 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37572 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37572);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37571);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], 0));\n\nvar G__37573 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__37573__$1 \x3d (((G__37573 instanceof cljs.core.Keyword))?G__37573.fqn:null);\nswitch (G__37573__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nvar workflow_ctx37574 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37575 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37576 \x3d workflow_ctx37574;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37576);\n\ntry{return intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37575);\n}})()),(function (action){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37577 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37578 \x3d workflow_ctx37574;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37578);\n\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553))){\nreturn promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null));\n} else {\nreturn intemporal.internal.execution.action__GT_result(action,workflow_id);\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37577);\n}})());\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37573__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nvar workflow_ctx37579 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37580 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37581 \x3d workflow_ctx37579;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37581);\n\ntry{return dispatch(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37580);\n}}));\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_37566((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__37582,workflow_id,suspension_data,pending_events,observer){\nvar map__37583 \x3d p__37582;\nvar map__37583__$1 \x3d cljs.core.__destructure_map(map__37583);\nvar engine \x3d map__37583__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37584 \x3d suspension_data;\nvar map__37584__$1 \x3d cljs.core.__destructure_map(map__37584);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37585 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37586 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37587 \x3d workflow_ctx37585;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37587);\n\ntry{return (function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37586);\n}}));\n})(),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__37589 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__37588 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__37588.cljs$core$IFn$_invoke$arity$1 ? fexpr__37588.cljs$core$IFn$_invoke$arity$1(G__37589) : fexpr__37588.call(null,G__37589));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37629 \x3d arguments.length;\nvar i__5750__auto___37630 \x3d (0);\nwhile(true){\nif((i__5750__auto___37630 \x3c len__5749__auto___37629)){\nargs__5755__auto__.push((arguments[i__5750__auto___37630]));\n\nvar G__37631 \x3d (i__5750__auto___37630 + (1));\ni__5750__auto___37630 \x3d G__37631;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37594,workflow_fn,args,p__37595){\nvar map__37596 \x3d p__37594;\nvar map__37596__$1 \x3d cljs.core.__destructure_map(map__37596);\nvar engine \x3d map__37596__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37596__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__37597 \x3d p__37595;\nvar map__37597__$1 \x3d cljs.core.__destructure_map(map__37597);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37597__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__37598 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37598,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37598;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37603 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37604 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37605 \x3d workflow_ctx37603;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37605);\n\ntry{return (function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37604);\n}}));\n})(),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq37590){\nvar G__37591 \x3d cljs.core.first(seq37590);\nvar seq37590__$1 \x3d cljs.core.next(seq37590);\nvar G__37592 \x3d cljs.core.first(seq37590__$1);\nvar seq37590__$2 \x3d cljs.core.next(seq37590__$1);\nvar G__37593 \x3d cljs.core.first(seq37590__$2);\nvar seq37590__$3 \x3d cljs.core.next(seq37590__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37591,G__37592,G__37593,seq37590__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37635 \x3d arguments.length;\nvar i__5750__auto___37636 \x3d (0);\nwhile(true){\nif((i__5750__auto___37636 \x3c len__5749__auto___37635)){\nargs__5755__auto__.push((arguments[i__5750__auto___37636]));\n\nvar G__37637 \x3d (i__5750__auto___37636 + (1));\ni__5750__auto___37636 \x3d G__37637;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37610,workflow_fn,args,p__37611){\nvar map__37612 \x3d p__37610;\nvar map__37612__$1 \x3d cljs.core.__destructure_map(map__37612);\nvar engine \x3d map__37612__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37612__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__37613 \x3d p__37611;\nvar map__37613__$1 \x3d cljs.core.__destructure_map(map__37613);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37613__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__37614 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37614,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37614;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__37615 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37616 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37616);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37617 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37618 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37619 \x3d workflow_ctx37617;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37619);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37618);\n}}));\n})(),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__37620 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__37620) : on_complete.call(null,G__37620));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37615);\n}});\nvar _STAR_ctx_STAR__orig_val__37621 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37622 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37622);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37623 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37624 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37625 \x3d workflow_ctx37623;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37625);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37624);\n}}));\n})(),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37621);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq37606){\nvar G__37607 \x3d cljs.core.first(seq37606);\nvar seq37606__$1 \x3d cljs.core.next(seq37606);\nvar G__37608 \x3d cljs.core.first(seq37606__$1);\nvar seq37606__$2 \x3d cljs.core.next(seq37606__$1);\nvar G__37609 \x3d cljs.core.first(seq37606__$2);\nvar seq37606__$3 \x3d cljs.core.next(seq37606__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37607,G__37608,G__37609,seq37606__$3);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IStore}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.store.InMemoryStore \x3d (function (state,__meta,__extmap,__hash){\nthis.state \x3d state;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28969,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28978 \x3d k28969;\nvar G__28978__$1 \x3d (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null);\nswitch (G__28978__$1) {\ncase \x22state\x22:\nreturn self__.state;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){\nvar vec__28983 \x3d p__28980;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.PersistentVector.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),false);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar result \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){\nvar signals \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null));\nif(cljs.core.seq(signals)){\ncljs.core.reset_BANG_(result,cljs.core.first(signals));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest));\n} else {\nreturn s;\n}\n}));\n\nreturn cljs.core.deref(result);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 \x3d (function (this$,worfklow_id,event_type,seq_num){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar history__$1 \x3d this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id);\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num)));\n}),history__$1));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d (function (_,workflow_id,signal_name,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null),callback);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021)], null),cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 \x3d (function (_,workflow_id,events){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.seq(events)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0));\n} else {\n}\n\nreturn events;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 \x3d (function (this$,workflow_id,signal_name,signal_data){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0));\n\nvar temp__5825__auto___29275 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null));\nif(cljs.core.truth_(temp__5825__auto___29275)){\nvar callback_29278 \x3d temp__5825__auto___29275;\nsetTimeout(callback_29278,(0));\n} else {\n}\n\nreturn signal_data;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),true);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar wf \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id], null));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224);\n} else {\nif(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22not-found\x22,\x22not-found\x22,-629079980);\n} else {\nvar last_event \x3d cljs.core.last(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf));\nvar G__29001 \x3d new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(last_event);\nvar G__29001__$1 \x3d (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null);\nswitch (G__29001__$1) {\ncase \x22workflow-completed\x22:\nreturn new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503);\n\nbreak;\ncase \x22workflow-failed\x22:\nreturn new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762);\n\nbreak;\ndefault:\nreturn new cljs.core.Keyword(null,\x22running\x22,\x22running\x22,1554969103);\n\n}\n\n}\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 \x3d (function (_,workflow_id,event){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0));\n\nreturn event;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.store.InMemoryStore{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state],null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28968){\nvar self__ \x3d this;\nvar G__28968__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28970,other28971){\nvar self__ \x3d this;\nvar this28970__$1 \x3d this;\nreturn (((!((other28971 \x3d\x3d null)))) \x26\x26 ((((this28970__$1.constructor \x3d\x3d\x3d other28971.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap)))))));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28969){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29104 \x3d k28969;\nvar G__29104__$1 \x3d (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null);\nswitch (G__29104__$1) {\ncase \x22state\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28969);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29126 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29127 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127)))){\nreturn (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state,null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.store.InMemoryStore.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null)], null);\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$type \x3d true);\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.store/InMemoryStore\x22,null,(1),null));\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.store/InMemoryStore\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/InMemoryStore.\n */\nintemporal.store.__GT_InMemoryStore \x3d (function intemporal$store$__GT_InMemoryStore(state){\nreturn (new intemporal.store.InMemoryStore(state,null,null,null));\n});\n\n/**\n * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values.\n */\nintemporal.store.map__GT_InMemoryStore \x3d (function intemporal$store$map__GT_InMemoryStore(G__28972){\nvar extmap__5365__auto__ \x3d (function (){var G__29201 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(cljs.core.record_QMARK_(G__28972)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201);\n} else {\nreturn G__29201;\n}\n})();\nreturn (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n"); SHADOW_ENV.evalLoad("intemporal.observer.js", true, "goog.provide(\x27intemporal.observer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.observer.LoggingObserver \x3d (function (log_atom,__meta,__extmap,__hash){\nthis.log_atom \x3d log_atom;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28974,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28979 \x3d k28974;\nvar G__28979__$1 \x3d (((G__28979 instanceof cljs.core.Keyword))?G__28979.fqn:null);\nswitch (G__28979__$1) {\ncase \x22log-atom\x22:\nreturn self__.log_atom;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28974,else__5326__auto__);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28981){\nvar vec__28982 \x3d p__28981;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.observer.LoggingObserver{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom],null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28973){\nvar self__ \x3d this;\nvar G__28973__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28973__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1356941522 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28975,other28976){\nvar self__ \x3d this;\nvar this28975__$1 \x3d this;\nreturn (((!((other28976 \x3d\x3d null)))) \x26\x26 ((((this28975__$1.constructor \x3d\x3d\x3d other28976.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.log_atom,other28976.log_atom)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.__extmap,other28976.__extmap)))))));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,workflow_id,seq_num,activity_name,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,workflow_id,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,result,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-resumed\x22,\x22workflow-resumed\x22,-1165962528),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,workflow_id,seq_num,fire_at){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,error,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,workflow_id,seq_num,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,workflow_id,seq_num,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,workflow_id,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,workflow_id,signal_name,payload){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,workflow_id,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-cancelled\x22,\x22workflow-cancelled\x22,696539230),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,workflow_id,seq_num,activity_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-started\x22,\x22activity-started\x22,-1116606589),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,workflow_id,suspension_type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-suspended\x22,\x22workflow-suspended\x22,1316626574),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),suspension_type,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28974){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29063 \x3d k28974;\nvar G__29063__$1 \x3d (((G__29063 instanceof cljs.core.Keyword))?G__29063.fqn:null);\nswitch (G__29063__$1) {\ncase \x22log-atom\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28974);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29081 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29080.cljs$core$IFn$_invoke$arity$2 ? pred__29080.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081) : pred__29080.call(null,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081)))){\nreturn (new intemporal.observer.LoggingObserver(G__28973,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28973),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom,null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,G__28973,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.observer.LoggingObserver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22log-atom\x22,\x22log-atom\x22,-1250409612,null)], null);\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$type \x3d true);\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.observer/LoggingObserver\x22,null,(1),null));\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.observer/LoggingObserver\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/LoggingObserver.\n */\nintemporal.observer.__GT_LoggingObserver \x3d (function intemporal$observer$__GT_LoggingObserver(log_atom){\nreturn (new intemporal.observer.LoggingObserver(log_atom,null,null,null));\n});\n\n/**\n * Factory function for intemporal.observer/LoggingObserver, taking a map of keywords to field values.\n */\nintemporal.observer.map__GT_LoggingObserver \x3d (function intemporal$observer$map__GT_LoggingObserver(G__28977){\nvar extmap__5365__auto__ \x3d (function (){var G__29148 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28977,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157));\nif(cljs.core.record_QMARK_(G__28977)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29148);\n} else {\nreturn G__29148;\n}\n})();\nreturn (new intemporal.observer.LoggingObserver(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157).cljs$core$IFn$_invoke$arity$1(G__28977),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an observer that logs all events to an atom\n */\nintemporal.observer.make_logging_observer \x3d (function intemporal$observer$make_logging_observer(var_args){\nvar G__29166 \x3d arguments.length;\nswitch (G__29166) {\ncase 0:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY));\n}));\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1 \x3d (function (log_atom){\nreturn intemporal.observer.__GT_LoggingObserver(log_atom);\n}));\n\n(intemporal.observer.make_logging_observer.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.observer.t_intemporal$observer29169 \x3d (function (meta29170){\nthis.meta29170 \x3d meta29170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_29171,meta29170__$1){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170__$1));\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_29171){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn self__.meta29170;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta29170\x22,\x22meta29170\x22,-945651366,null)], null);\n}));\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$type \x3d true);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorStr \x3d \x22intemporal.observer/t_intemporal$observer29169\x22);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.observer/t_intemporal$observer29169\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/t_intemporal$observer29169.\n */\nintemporal.observer.__GT_t_intemporal$observer29169 \x3d (function intemporal$observer$__GT_t_intemporal$observer29169(meta29170){\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170));\n});\n\n\n/**\n * Create an observer that does nothing\n */\nintemporal.observer.noop_observer \x3d (function intemporal$observer$noop_observer(){\nreturn (new intemporal.observer.t_intemporal$observer29169(cljs.core.PersistentArrayMap.EMPTY));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.impl.js", true, "goog.provide(\x27cljs.analyzer.impl\x27);\ncljs.analyzer.impl.ANY_SYM \x3d new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\ncljs.analyzer.impl.BOOLEAN_OR_SEQ \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),\x22null\x22,new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22], null), null);\ncljs.analyzer.impl.BOOLEAN_SYM \x3d new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null);\ncljs.analyzer.impl.CLJ_NIL_SYM \x3d new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null);\ncljs.analyzer.impl.CLJS_CORE_MACROS_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null);\ncljs.analyzer.impl.CLJS_CORE_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\ncljs.analyzer.impl.DOT_SYM \x3d new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null);\ncljs.analyzer.impl.IGNORE_SYM \x3d new cljs.core.Symbol(null,\x22ignore\x22,\x22ignore\x22,8989494,null);\ncljs.analyzer.impl.JS_STAR_SYM \x3d new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null);\ncljs.analyzer.impl.NEW_SYM \x3d new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null);\ncljs.analyzer.impl.NOT_NATIVE \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null),\x22null\x22,new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null),\x22null\x22], null), null);\ncljs.analyzer.impl.NUMBER_SYM \x3d new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\ncljs.analyzer.impl.STRING_SYM \x3d new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null);\ncljs.analyzer.impl.cljs_map_QMARK_ \x3d (function cljs$analyzer$impl$cljs_map_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_seq_QMARK_ \x3d (function cljs$analyzer$impl$cljs_seq_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISeq$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_vector_QMARK_ \x3d (function cljs$analyzer$impl$cljs_vector_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IVector$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_set_QMARK_ \x3d (function cljs$analyzer$impl$cljs_set_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n"); @@ -1623,6 +1623,6 @@ SHADOW_ENV.evalLoad("cljs.tagged_literals.js", true, "goog.provide(\x27cljs.tagg SHADOW_ENV.evalLoad("cljs.analyzer.js", true, "goog.provide(\x27cljs.analyzer\x27);\ncljs.analyzer._STAR_cljs_ns_STAR_ \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\ncljs.analyzer._STAR_cljs_file_STAR_ \x3d null;\ncljs.analyzer._STAR_checked_arrays_STAR_ \x3d false;\ncljs.analyzer._STAR_check_alias_dupes_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_static_fns_STAR_ \x3d false;\ncljs.analyzer._STAR_fn_invoke_direct_STAR_ \x3d false;\ncljs.analyzer._STAR_cljs_macros_path_STAR_ \x3d \x22/cljs/core\x22;\ncljs.analyzer._STAR_cljs_macros_is_classpath_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d cljs.core.with_meta(cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558),cljs.core.PersistentVector.EMPTY], null));\ncljs.analyzer._STAR_analyze_deps_STAR_ \x3d true;\ncljs.analyzer._STAR_load_tests_STAR_ \x3d true;\ncljs.analyzer._STAR_load_macros_STAR_ \x3d true;\ncljs.analyzer._STAR_reload_macros_STAR_ \x3d false;\ncljs.analyzer._STAR_macro_infer_STAR_ \x3d true;\ncljs.analyzer._STAR_passes_STAR_ \x3d null;\ncljs.analyzer._STAR_file_defs_STAR_ \x3d null;\ncljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d false;\n/**\n * The namespace of the constants table as a symbol.\n */\ncljs.analyzer.constants_ns_sym \x3d new cljs.core.Symbol(null,\x22cljs.core.constants\x22,\x22cljs.core.constants\x22,2057417066,null);\ncljs.analyzer._STAR_verbose_STAR_ \x3d false;\ncljs.analyzer._cljs_macros_loaded \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\ncljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217)],[true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);\ncljs.analyzer.unchecked_arrays_QMARK_ \x3d (function cljs$analyzer$unchecked_arrays_QMARK_(){\nreturn cljs.core._STAR_unchecked_arrays_STAR_;\n});\ncljs.analyzer.compiler_options \x3d (function cljs$analyzer$compiler_options(){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n});\ncljs.analyzer.get_externs \x3d (function cljs$analyzer$get_externs(){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n});\n/**\n * Returns false-y, :warn, or :error based on configuration and the\n * current value of *unchecked-arrays*.\n */\ncljs.analyzer.checked_arrays \x3d (function cljs$analyzer$checked_arrays(){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22advanced\x22,\x22advanced\x22,-451287892),new cljs.core.Keyword(null,\x22optimizations\x22,\x22optimizations\x22,-2047476854).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options()))) \x26\x26 ((!(cljs.core._STAR_unchecked_arrays_STAR_))))){\nreturn cljs.analyzer._STAR_checked_arrays_STAR_;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.js_reserved \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 63, [\x22typeof\x22,null,\x22float\x22,null,\x22implements\x22,null,\x22else\x22,null,\x22boolean\x22,null,\x22abstract\x22,null,\x22int\x22,null,\x22static\x22,null,\x22package\x22,null,\x22this\x22,null,\x22await\x22,null,\x22yield\x22,null,\x22interface\x22,null,\x22void\x22,null,\x22delete\x22,null,\x22class\x22,null,\x22export\x22,null,\x22var\x22,null,\x22try\x22,null,\x22long\x22,null,\x22null\x22,null,\x22return\x22,null,\x22methods\x22,null,\x22native\x22,null,\x22private\x22,null,\x22new\x22,null,\x22for\x22,null,\x22catch\x22,null,\x22extends\x22,null,\x22short\x22,null,\x22protected\x22,null,\x22throws\x22,null,\x22synchronized\x22,null,\x22transient\x22,null,\x22super\x22,null,\x22if\x22,null,\x22let\x22,null,\x22import\x22,null,\x22char\x22,null,\x22switch\x22,null,\x22const\x22,null,\x22case\x22,null,\x22break\x22,null,\x22volatile\x22,null,\x22function\x22,null,\x22continue\x22,null,\x22final\x22,null,\x22do\x22,null,\x22double\x22,null,\x22while\x22,null,\x22public\x22,null,\x22arguments\x22,null,\x22debugger\x22,null,\x22with\x22,null,\x22instanceof\x22,null,\x22default\x22,null,\x22throw\x22,null,\x22goto\x22,null,\x22finally\x22,null,\x22byte\x22,null,\x22constructor\x22,null,\x22in\x22,null,\x22enum\x22,null], null), null);\ncljs.analyzer.es5_allowed \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [\x22default\x22,null], null), null);\ncljs.analyzer.SENTINEL \x3d ({});\ncljs.analyzer.gets \x3d (function cljs$analyzer$gets(var_args){\nvar G__34418 \x3d arguments.length;\nswitch (G__34418) {\ncase 3:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k0,k1){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,k1);\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k0,k1,k2){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$2,k2);\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k0,k1,k2,k3){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$2,k2,cljs.analyzer.SENTINEL);\nif((m__$3 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$3,k3);\n}\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.analyzer.munge_path \x3d (function cljs$analyzer$munge_path(ss){\nreturn cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ss));\n});\n/**\n * Given a namespace as a symbol return the relative path. May optionally\n * provide the file extension, defaults to :cljs.\n */\ncljs.analyzer.ns__GT_relpath \x3d (function cljs$analyzer$ns__GT_relpath(var_args){\nvar G__34433 \x3d arguments.length;\nswitch (G__34433) {\ncase 1:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629));\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,ext){\nreturn [clojure.string.replace(cljs.analyzer.munge_path(ns),\x22.\x22,\x22/\x22),\x22.\x22,cljs.core.name(ext)].join(\x27\x27);\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.topo_sort \x3d (function cljs$analyzer$topo_sort(var_args){\nvar G__34450 \x3d arguments.length;\nswitch (G__34450) {\ncase 2:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,get_deps){\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(x,(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.sorted_map()),cljs.core.memoize(get_deps));\n}));\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,depth,state,memo_get_deps){\nvar deps \x3d (memo_get_deps.cljs$core$IFn$_invoke$arity$1 ? memo_get_deps.cljs$core$IFn$_invoke$arity$1(x) : memo_get_deps.call(null,x));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [depth], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\nvar seq__34465_38549 \x3d cljs.core.seq(deps);\nvar chunk__34466_38550 \x3d null;\nvar count__34467_38551 \x3d (0);\nvar i__34468_38552 \x3d (0);\nwhile(true){\nif((i__34468_38552 \x3c count__34467_38551)){\nvar dep_38553 \x3d chunk__34466_38550.cljs$core$IIndexed$_nth$arity$2(null,i__34468_38552);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38553,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38555 \x3d seq__34465_38549;\nvar G__38556 \x3d chunk__34466_38550;\nvar G__38557 \x3d count__34467_38551;\nvar G__38558 \x3d (i__34468_38552 + (1));\nseq__34465_38549 \x3d G__38555;\nchunk__34466_38550 \x3d G__38556;\ncount__34467_38551 \x3d G__38557;\ni__34468_38552 \x3d G__38558;\ncontinue;\n} else {\nvar temp__5825__auto___38559 \x3d cljs.core.seq(seq__34465_38549);\nif(temp__5825__auto___38559){\nvar seq__34465_38560__$1 \x3d temp__5825__auto___38559;\nif(cljs.core.chunked_seq_QMARK_(seq__34465_38560__$1)){\nvar c__5548__auto___38561 \x3d cljs.core.chunk_first(seq__34465_38560__$1);\nvar G__38562 \x3d cljs.core.chunk_rest(seq__34465_38560__$1);\nvar G__38563 \x3d c__5548__auto___38561;\nvar G__38564 \x3d cljs.core.count(c__5548__auto___38561);\nvar G__38565 \x3d (0);\nseq__34465_38549 \x3d G__38562;\nchunk__34466_38550 \x3d G__38563;\ncount__34467_38551 \x3d G__38564;\ni__34468_38552 \x3d G__38565;\ncontinue;\n} else {\nvar dep_38566 \x3d cljs.core.first(seq__34465_38560__$1);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38566,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38568 \x3d cljs.core.next(seq__34465_38560__$1);\nvar G__38569 \x3d null;\nvar G__38570 \x3d (0);\nvar G__38571 \x3d (0);\nseq__34465_38549 \x3d G__38568;\nchunk__34466_38550 \x3d G__38569;\ncount__34467_38551 \x3d G__38570;\ni__34468_38552 \x3d G__38571;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__34477_38572 \x3d cljs.core.seq(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(state),cljs.core._LT_,depth));\nvar chunk__34478_38573 \x3d null;\nvar count__34479_38574 \x3d (0);\nvar i__34480_38575 \x3d (0);\nwhile(true){\nif((i__34480_38575 \x3c count__34479_38574)){\nvar vec__34492_38576 \x3d chunk__34478_38573.cljs$core$IIndexed$_nth$arity$2(null,i__34480_38575);\nvar _LT_depth_38577 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(0),null);\nvar __38578 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38577], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38579 \x3d seq__34477_38572;\nvar G__38580 \x3d chunk__34478_38573;\nvar G__38581 \x3d count__34479_38574;\nvar G__38582 \x3d (i__34480_38575 + (1));\nseq__34477_38572 \x3d G__38579;\nchunk__34478_38573 \x3d G__38580;\ncount__34479_38574 \x3d G__38581;\ni__34480_38575 \x3d G__38582;\ncontinue;\n} else {\nvar temp__5825__auto___38583 \x3d cljs.core.seq(seq__34477_38572);\nif(temp__5825__auto___38583){\nvar seq__34477_38584__$1 \x3d temp__5825__auto___38583;\nif(cljs.core.chunked_seq_QMARK_(seq__34477_38584__$1)){\nvar c__5548__auto___38585 \x3d cljs.core.chunk_first(seq__34477_38584__$1);\nvar G__38586 \x3d cljs.core.chunk_rest(seq__34477_38584__$1);\nvar G__38587 \x3d c__5548__auto___38585;\nvar G__38588 \x3d cljs.core.count(c__5548__auto___38585);\nvar G__38589 \x3d (0);\nseq__34477_38572 \x3d G__38586;\nchunk__34478_38573 \x3d G__38587;\ncount__34479_38574 \x3d G__38588;\ni__34480_38575 \x3d G__38589;\ncontinue;\n} else {\nvar vec__34497_38590 \x3d cljs.core.first(seq__34477_38584__$1);\nvar _LT_depth_38591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(0),null);\nvar __38592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38591], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38593 \x3d cljs.core.next(seq__34477_38584__$1);\nvar G__38594 \x3d null;\nvar G__38595 \x3d (0);\nvar G__38596 \x3d (0);\nseq__34477_38572 \x3d G__38593;\nchunk__34478_38573 \x3d G__38594;\ncount__34479_38574 \x3d G__38595;\ni__34480_38575 \x3d G__38596;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(depth,(0))){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(state))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.topo_sort.cljs$lang$maxFixedArity \x3d 4);\n\n\ncljs.analyzer.ast_QMARK_ \x3d (function cljs$analyzer$ast_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 (cljs.core.contains_QMARK_(x,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955))));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.error_message !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.error_message \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__34508 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__34508.cljs$core$IFn$_invoke$arity$0 ? fexpr__34508.cljs$core$IFn$_invoke$arity$0() : fexpr__34508.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22error-message\x22),(function() { \nvar G__38597__delegate \x3d function (warning_type,_){\nreturn warning_type;\n};\nvar G__38597 \x3d function (warning_type,var_args){\nvar _ \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38598__i \x3d 0, G__38598__a \x3d new Array(arguments.length - 1);\nwhile (G__38598__i \x3c G__38598__a.length) {G__38598__a[G__38598__i] \x3d arguments[G__38598__i + 1]; ++G__38598__i;}\n _ \x3d new cljs.core.IndexedSeq(G__38598__a,0,null);\n} \nreturn G__38597__delegate.call(this,warning_type,_);};\nG__38597.cljs$lang$maxFixedArity \x3d 1;\nG__38597.cljs$lang$applyTo \x3d (function (arglist__38599){\nvar warning_type \x3d cljs.core.first(arglist__38599);\nvar _ \x3d cljs.core.rest(arglist__38599);\nreturn G__38597__delegate(warning_type,_);\n});\nG__38597.cljs$core$IFn$_invoke$arity$variadic \x3d G__38597__delegate;\nreturn G__38597;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),(function (warning_type,info){\nreturn [\x22Preamble resource file not found: \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22missing\x22,\x22missing\x22,362507769).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),(function (warning_type,info){\nreturn [\x22Required namespace not provided for \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),(function (warning_type,info){\nreturn [(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205).cljs$core$IFn$_invoke$arity$1(info))?\x22Can\x27t take value of macro \x22:\x22Use of undeclared Var \x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),(function (warning_type,info){\nreturn [\x22var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not public\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),(function (warning_type,p__34523){\nvar map__34525 \x3d p__34523;\nvar map__34525__$1 \x3d cljs.core.__destructure_map(map__34525);\nvar info \x3d map__34525__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629)),\x22, \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583)),\x22, or JavaScript source providing \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_provide),\x22\\\x22\x22,((clojure.string.includes_QMARK_(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22_\x22))?\x22 (Please check that namespaces with dashes use underscores in the ClojureScript file name)\x22:null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-macros-ns\x22,\x22undeclared-macros-ns\x22,-438029430),(function (warning_type,p__34547){\nvar map__34550 \x3d p__34547;\nvar map__34550__$1 \x3d cljs.core.__destructure_map(map__34550);\nvar info \x3d map__34550__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such macros namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428)),\x22 or \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 not declared ^:dynamic\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 already refers to: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 being replaced by: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info))))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(info)),\x22 is being replaced\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 no longer fn, references are stale\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),(function (warning_type,info){\nreturn [\x22Wrong number of args (\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519).cljs$core$IFn$_invoke$arity$1(info)),\x22) passed to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info);\n}\n})())].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 declared arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(info)),\x22 mismatch defined arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),(function (warning_type,info){\nreturn [\x22Invalid :refer, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not exist\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),(function (warning_type,info){\nreturn [\x22Can\x27t resolve protocol symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),(function (warning_type,info){\nreturn [\x22Symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not a protocol\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),(function (warning_type,info){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22no-such-method\x22,\x22no-such-method\x22,1087422840).cljs$core$IFn$_invoke$arity$1(info))){\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare method called \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n} else {\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare arity \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22invalid-arity\x22,\x22invalid-arity\x22,1335461949).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),(function (warning_type,info){\nreturn [\x22Duplicated methods in protocol implementation \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implemented multiple times\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 declares method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),(function (warning_type,info){\nvar overwritten_protocol \x3d new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22existing\x22,\x22existing\x22,-340796094).cljs$core$IFn$_invoke$arity$1(info));\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is overwriting \x22,(cljs.core.truth_(overwritten_protocol)?\x22method\x22:\x22function\x22),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),(cljs.core.truth_(overwritten_protocol)?[\x22 of protocol \x22,cljs.core.name(overwritten_protocol)].join(\x27\x27):null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implements method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),(function (warning_type,info){\nreturn [\x22Ignoring target object \\\x22\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(info)], 0)),\x22\\\x22 passed in recur to protocol method head\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have more than 1 variadic overload\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have fixed arity function with more params than variadic function\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have 2 overloads with same arity\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),(function (warning_type,info){\nreturn [\x22Extending an existing JavaScript type - use a different symbol name \x22,\x22instead of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22current-symbol\x22,\x22current-symbol\x22,-932381075).cljs$core$IFn$_invoke$arity$1(info)),\x22 e.g \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suggested-symbol\x22,\x22suggested-symbol\x22,-1329631875).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(info)),\x22, all arguments must be numbers, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639).cljs$core$IFn$_invoke$arity$1(info)),\x22 instead\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),(function (warning_type,p__34616){\nvar map__34617 \x3d p__34616;\nvar map__34617__$1 \x3d cljs.core.__destructure_map(map__34617);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar types \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639));\nvar G__34618 \x3d name;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34618)].join(\x27\x27)));\n\n}\n}\n}\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),(function (warning_type,info){\nreturn [\x22Cannot invoke type constructor \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 as function \x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 is a single segment namespace\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),(function (warning_type,p__34651){\nvar map__34652 \x3d p__34651;\nvar map__34652__$1 \x3d cljs.core.__destructure_map(map__34652);\nvar info \x3d map__34652__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34652__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar munged \x3d cljs.core.munge(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34650_SHARP_){\nif(cljs.core.truth_((cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_) : cljs.analyzer.js_reserved.call(null,p1__34650_SHARP_)))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_),\x22$\x22].join(\x27\x27);\n} else {\nreturn p1__34650_SHARP_;\n}\n}),clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name),/\\./))));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 contains a reserved JavaScript keyword,\x22,\x22 the corresponding Google Closure namespace will be munged to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),(function (warning_type,p__34662){\nvar map__34663 \x3d p__34662;\nvar map__34663__$1 \x3d cljs.core.__destructure_map(map__34663);\nvar info \x3d map__34663__$1;\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34663__$1,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401));\nreturn [\x22In \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0)),\x22, the alias name js is reserved for JavaScript interop\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),(function (warning_type,p__34669){\nvar map__34670 \x3d p__34669;\nvar map__34670__$1 \x3d cljs.core.__destructure_map(map__34670);\nvar info \x3d map__34670__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22 clashes with var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),(function (warning_type,p__34677){\nvar map__34678 \x3d p__34677;\nvar map__34678__$1 \x3d cljs.core.__destructure_map(map__34678);\nvar info \x3d map__34678__$1;\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34678__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 not declared dynamic and thus is not dynamically rebindable, but its name \x22,\x22suggests otherwise. Please either indicate ^:dynamic \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 or change the name\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),(function (warning_type,p__34684){\nvar map__34686 \x3d p__34684;\nvar map__34686__$1 \x3d cljs.core.__destructure_map(map__34686);\nvar info \x3d map__34686__$1;\nvar protocol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nreturn [\x22Bad extend-type method shape for protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(protocol),\x22 method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(method),\x22, method arities must be grouped together\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),(function (warning_type,p__34692){\nvar map__34693 \x3d p__34692;\nvar map__34693__$1 \x3d cljs.core.__destructure_map(map__34693);\nvar info \x3d map__34693__$1;\nvar module_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22module-type\x22,\x22module-type\x22,1392760304));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported JavaScript module type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(module_type),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),(function (warning_type,p__34698){\nvar map__34699 \x3d p__34698;\nvar map__34699__$1 \x3d cljs.core.__destructure_map(map__34699);\nvar preprocess \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22preprocess\x22,\x22preprocess\x22,1208285012));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported preprocess value \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(preprocess),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),(function (warning_type,p__34702){\nvar map__34703 \x3d p__34702;\nvar map__34703__$1 \x3d cljs.core.__destructure_map(map__34703);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34703__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 is shadowed by a local\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),(function (warning_type,p__34704){\nvar map__34705 \x3d p__34704;\nvar map__34705__$1 \x3d cljs.core.__destructure_map(map__34705);\nvar warn_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar property \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232));\nvar G__34707 \x3d warn_type;\nvar G__34707__$1 \x3d (((G__34707 instanceof cljs.core.Keyword))?G__34707.fqn:null);\nswitch (G__34707__$1) {\ncase \x22target\x22:\nreturn [\x22Cannot infer target type in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22\x22].join(\x27\x27);\n\nbreak;\ncase \x22property\x22:\nreturn [\x22Cannot resolve property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 for inferred type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),\x22 in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ncase \x22object\x22:\nreturn [\x22Adding extern to Object for property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 due to \x22,\x22ambiguous expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34707__$1)].join(\x27\x27)));\n\n}\n}));\ncljs.analyzer.default_warning_handler \x3d (function cljs$analyzer$default_warning_handler(warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nvar temp__5825__auto__ \x3d cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warning_type,extra);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nvar _STAR_print_fn_STAR__orig_val__34716 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_fn_STAR__temp_val__34717 \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__34717);\n\ntry{return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__34719 \x3d env;\nvar G__34720 \x3d [\x22WARNING: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27);\nreturn (cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2(G__34719,G__34720) : cljs.analyzer.message.call(null,G__34719,G__34720));\n})()], 0));\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__34716);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.default_warning_handler], null);\ncljs.analyzer.repeat_char \x3d (function cljs$analyzer$repeat_char(c,n){\nvar ret \x3d c;\nvar n__$1 \x3d n;\nwhile(true){\nif((n__$1 \x3e (0))){\nvar G__38610 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ret),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\nvar G__38611 \x3d (n__$1 - (1));\nret \x3d G__38610;\nn__$1 \x3d G__38611;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\ncljs.analyzer.hex_format \x3d (function cljs$analyzer$hex_format(s,pad){\nvar hex \x3d s.charCodeAt((0)).toString((16));\nvar len \x3d hex.length;\nvar hex__$1 \x3d (((len \x3c pad))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.repeat_char(\x220\x22,(pad - len))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex)].join(\x27\x27):hex);\nreturn [\x22_u\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex__$1),\x22_\x22].join(\x27\x27);\n});\ncljs.analyzer.gen_constant_id \x3d (function cljs$analyzer$gen_constant_id(value){\nvar prefix \x3d (((value instanceof cljs.core.Keyword))?\x22cst$kw$\x22:(((value instanceof cljs.core.Symbol))?\x22cst$sym$\x22:(function(){throw (new Error([\x22constant type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(value)),\x22 not supported\x22].join(\x27\x27)))})()\n));\nvar name \x3d (((value instanceof cljs.core.Keyword))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),(1)):cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\nvar name__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22.\x22,name))?\x22_DOT_\x22:clojure.string.replace(clojure.string.replace(cljs.core.munge(clojure.string.replace(clojure.string.replace(clojure.string.replace(name,\x22_\x22,\x22__\x22),\x22$\x22,\x22$$\x22),\x22-\x22,\x22_DASH_\x22)),\x22.\x22,\x22$\x22),/[^a-z0-9$_]/i,(function (p1__34743_SHARP_){\nreturn cljs.analyzer.hex_format(p1__34743_SHARP_,(4));\n})));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([prefix,name__$1].join(\x27\x27));\n});\ncljs.analyzer.register_constant_BANG_ \x3d (function cljs$analyzer$register_constant_BANG_(var_args){\nvar G__34747 \x3d arguments.length;\nswitch (G__34747) {\ncase 1:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (val){\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(null,val);\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (cenv){\nvar G__34766 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889)], null),(function (table){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(table,val))){\nreturn table;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(table,val,cljs.analyzer.gen_constant_id(val));\n}\n}));\nif(cljs.core.truth_(env)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__34766,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constants\x22,\x22cljs.analyzer/constants\x22,1697083770)], null),(function (p__34767){\nvar map__34768 \x3d p__34767;\nvar map__34768__$1 \x3d cljs.core.__destructure_map(map__34768);\nvar constants \x3d map__34768__$1;\nvar seen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.PersistentHashSet.EMPTY);\nvar order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.PersistentVector.EMPTY);\nvar G__34769 \x3d constants;\nif((!(cljs.core.contains_QMARK_(seen,val)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(G__34769,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,val),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(order,val)], 0));\n} else {\nreturn G__34769;\n}\n}));\n} else {\nreturn G__34766;\n}\n}));\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.default_namespaces \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.analyzer.t_cljs$analyzer34770 \x3d (function (meta34771){\nthis.meta34771 \x3d meta34771;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_34772,meta34771__$1){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771__$1));\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_34772){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn self__.meta34771;\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n} else {\nreturn cljs.analyzer.default_namespaces;\n}\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta34771\x22,\x22meta34771\x22,-699077853,null)], null);\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$type \x3d true);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorStr \x3d \x22cljs.analyzer/t_cljs$analyzer34770\x22);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.analyzer/t_cljs$analyzer34770\x22);\n}));\n\n/**\n * Positional factory function for cljs.analyzer/t_cljs$analyzer34770.\n */\ncljs.analyzer.__GT_t_cljs$analyzer34770 \x3d (function cljs$analyzer$__GT_t_cljs$analyzer34770(meta34771){\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771));\n});\n\n\ncljs.analyzer.namespaces \x3d (new cljs.analyzer.t_cljs$analyzer34770(cljs.core.PersistentArrayMap.EMPTY));\ncljs.analyzer.get_namespace \x3d (function cljs$analyzer$get_namespace(var_args){\nvar G__34797 \x3d arguments.length;\nswitch (G__34797) {\ncase 1:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,key);\n}));\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2 \x3d (function (cenv,key){\nvar temp__5827__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cenv),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),key], null));\nif((temp__5827__auto__ \x3d\x3d null)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),key)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null);\n} else {\nreturn null;\n}\n} else {\nvar ns \x3d temp__5827__auto__;\nreturn ns;\n}\n}));\n\n(cljs.analyzer.get_namespace.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.get_line \x3d (function cljs$analyzer$get_line(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\ncljs.analyzer.get_col \x3d (function cljs$analyzer$get_col(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\n/**\n * Given a Clojure namespace intern all macros into the ambient ClojureScript\n * analysis environment.\n */\ncljs.analyzer.intern_macros \x3d (function cljs$analyzer$intern_macros(var_args){\nvar G__34799 \x3d arguments.length;\nswitch (G__34799) {\ncase 1:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2(ns,false);\n}));\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,reload){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)) \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn reload;\n}\n})())){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)], null),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__34800){\nvar vec__34801 \x3d p__34800;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(function (){var vm \x3d cljs.core.meta(v);\nvar ns__$1 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(vm).getName();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(vm,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)),new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404),true], 0));\n})()], null);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__34804){\nvar vec__34805 \x3d p__34804;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(1),null);\nreturn v.isMacro();\n}),cljs.core.ns_interns_STAR_(ns)))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.intern_macros.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Construct an empty analysis environment. Required to analyze forms.\n */\ncljs.analyzer.empty_env \x3d (function cljs$analyzer$empty_env(){\nvar val__9407__auto__ \x3d cljs.env._STAR_compiler_STAR_;\nif((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0());\n} else {\n}\n\ntry{return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22js-globals\x22,\x22js-globals\x22,1670394727),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34808_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__34808_SHARP_,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),p1__34808_SHARP_,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)],null));\n}),cljs.core.list(new cljs.core.Symbol(null,\x22alert\x22,\x22alert\x22,1068580947,null),new cljs.core.Symbol(null,\x22window\x22,\x22window\x22,-1929916235,null),new cljs.core.Symbol(null,\x22document\x22,\x22document\x22,311342840,null),new cljs.core.Symbol(null,\x22console\x22,\x22console\x22,-1426363712,null),new cljs.core.Symbol(null,\x22escape\x22,\x22escape\x22,648929575,null),new cljs.core.Symbol(null,\x22unescape\x22,\x22unescape\x22,-2037730561,null),new cljs.core.Symbol(null,\x22screen\x22,\x22screen\x22,-664376021,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22navigator\x22,\x22navigator\x22,-604431588,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22global\x22,\x22global\x22,1734126574,null),new cljs.core.Symbol(null,\x22process\x22,\x22process\x22,-1011242831,null),new cljs.core.Symbol(null,\x22require\x22,\x22require\x22,1172530194,null),new cljs.core.Symbol(null,\x22module\x22,\x22module\x22,-1229817578,null),new cljs.core.Symbol(null,\x22exports\x22,\x22exports\x22,895523255,null))))], null);\n}finally {if((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d null);\n} else {\n}\n}});\ncljs.analyzer.source_info__GT_error_data \x3d (function cljs$analyzer$source_info__GT_error_data(p__34809){\nvar map__34810 \x3d p__34809;\nvar map__34810__$1 \x3d cljs.core.__destructure_map(map__34810);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553),column], null);\n});\ncljs.analyzer.source_info \x3d (function cljs$analyzer$source_info(var_args){\nvar G__34812 \x3d arguments.length;\nswitch (G__34812) {\ncase 1:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (env){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(null,env);\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (name,env){\nvar G__34813 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)))?\x22cljs/core.cljs\x22:cljs.analyzer._STAR_cljs_file_STAR_),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(name,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(name,env)], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__34813,cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912)], null))], 0));\n} else {\nreturn G__34813;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.message \x3d (function cljs$analyzer$message(env,s){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))?[\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):(cljs.core.truth_(cljs.analyzer._STAR_cljs_file_STAR_)?[\x22 in file \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):null))].join(\x27\x27);\n});\ncljs.analyzer.warning \x3d (function cljs$analyzer$warning(warning_type,env,extra){\nvar seq__34814 \x3d cljs.core.seq(cljs.analyzer._STAR_cljs_warning_handlers_STAR_);\nvar chunk__34815 \x3d null;\nvar count__34816 \x3d (0);\nvar i__34817 \x3d (0);\nwhile(true){\nif((i__34817 \x3c count__34816)){\nvar handler \x3d chunk__34815.cljs$core$IIndexed$_nth$arity$2(null,i__34817);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38626 \x3d seq__34814;\nvar G__38627 \x3d chunk__34815;\nvar G__38628 \x3d count__34816;\nvar G__38629 \x3d (i__34817 + (1));\nseq__34814 \x3d G__38626;\nchunk__34815 \x3d G__38627;\ncount__34816 \x3d G__38628;\ni__34817 \x3d G__38629;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__34814);\nif(temp__5825__auto__){\nvar seq__34814__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__34814__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__34814__$1);\nvar G__38630 \x3d cljs.core.chunk_rest(seq__34814__$1);\nvar G__38631 \x3d c__5548__auto__;\nvar G__38632 \x3d cljs.core.count(c__5548__auto__);\nvar G__38633 \x3d (0);\nseq__34814 \x3d G__38630;\nchunk__34815 \x3d G__38631;\ncount__34816 \x3d G__38632;\ni__34817 \x3d G__38633;\ncontinue;\n} else {\nvar handler \x3d cljs.core.first(seq__34814__$1);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38634 \x3d cljs.core.next(seq__34814__$1);\nvar G__38635 \x3d null;\nvar G__38636 \x3d (0);\nvar G__38637 \x3d (0);\nseq__34814 \x3d G__38634;\nchunk__34815 \x3d G__38635;\ncount__34816 \x3d G__38636;\ni__34817 \x3d G__38637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.accumulating_warning_handler \x3d (function cljs$analyzer$accumulating_warning_handler(warn_acc){\nreturn (function (warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(warn_acc,cljs.core.conj,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [warning_type,env,extra], null));\n} else {\nreturn null;\n}\n});\n});\ncljs.analyzer.replay_accumulated_warnings \x3d (function cljs$analyzer$replay_accumulated_warnings(warn_acc){\nreturn cljs.core.run_BANG_((function (p1__34834_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.warning,p1__34834_SHARP_);\n}),cljs.core.deref(warn_acc));\n});\ncljs.analyzer.error_data \x3d (function cljs$analyzer$error_data(var_args){\nvar G__34840 \x3d arguments.length;\nswitch (G__34840) {\ncase 2:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,phase){\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,phase,null);\n}));\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,phase,symbol){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.source_info__GT_error_data(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase], null),(cljs.core.truth_(symbol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),symbol], null):null)], 0));\n}));\n\n(cljs.analyzer.error_data.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.compile_syntax_error \x3d (function cljs$analyzer$compile_syntax_error(env,msg,symbol){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22compile-syntax-check\x22,\x22compile-syntax-check\x22,-1865080468),symbol),(new Error(msg)));\n});\ncljs.analyzer.error \x3d (function cljs$analyzer$error(var_args){\nvar G__34868 \x3d arguments.length;\nswitch (G__34868) {\ncase 2:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,msg){\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,msg,null);\n}));\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,msg,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.message(env,msg),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349)),cause);\n}));\n\n(cljs.analyzer.error.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.analysis_error_QMARK_ \x3d (function cljs$analyzer$analysis_error_QMARK_(ex){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)));\n});\ncljs.analyzer.has_error_data_QMARK_ \x3d (function cljs$analyzer$has_error_data_QMARK_(ex){\nreturn cljs.core.contains_QMARK_(cljs.core.ex_data(ex),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\n});\ncljs.analyzer.implicit_nses \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.string\x22,\x22goog.string\x22,-2055533048,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog\x22,\x22goog\x22,-70603925,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.object\x22,\x22goog.object\x22,678593132,null),\x22null\x22,new cljs.core.Symbol(null,\x22Math\x22,\x22Math\x22,2033287572,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.array\x22,\x22goog.array\x22,-671977860,null),\x22null\x22], null), null);\ncljs.analyzer.implicit_import_QMARK_ \x3d (function cljs$analyzer$implicit_import_QMARK_(env,prefix,suffix){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.implicit_nses,prefix);\n});\ncljs.analyzer.confirm_var_exist_warning \x3d (function cljs$analyzer$confirm_var_exist_warning(env,prefix,suffix){\nreturn (function (env__$1,prefix__$1,suffix__$1){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),env__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),prefix__$1,new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),suffix__$1,new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205),(!(((function (){var G__34919 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1));\nvar G__34920 \x3d env__$1;\nreturn (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(G__34919,G__34920) : cljs.analyzer.get_expander.call(null,G__34919,G__34920));\n})() \x3d\x3d null)))], null));\n});\n});\n/**\n * If a library name has the form foo$bar, return a vector of the library and\n * the sublibrary property.\n */\ncljs.analyzer.lib_AMPERSAND_sublib \x3d (function cljs$analyzer$lib_AMPERSAND_sublib(lib){\nvar temp__5823__auto__ \x3d cljs.core.re_matches(/(.*)\\$(.*)/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xs \x3d temp__5823__auto__;\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),xs);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n}\n});\n/**\n * Check if a JavaScript namespace has been loaded. JavaScript vars are\n * not currently checked.\n */\ncljs.analyzer.loaded_js_ns_QMARK_ \x3d (function cljs$analyzer$loaded_js_ns_QMARK_(env,prefix){\nif(cljs.core.truth_(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix))){\nreturn null;\n} else {\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nreturn (((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))) || ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))));\n}\n});\ncljs.analyzer.internal_js_module_exists_QMARK_ \x3d (function cljs$analyzer$internal_js_module_exists_QMARK_(js_module_index,module){\nreturn cljs.core.contains_QMARK_(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((function (p__34963){\nvar vec__34964 \x3d p__34963;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(v)], null);\n})),js_module_index),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\n});\ncljs.analyzer.js_module_exists_QMARK__STAR_ \x3d cljs.core.memoize(cljs.analyzer.internal_js_module_exists_QMARK_);\ncljs.analyzer.js_module_exists_QMARK_ \x3d (function cljs$analyzer$js_module_exists_QMARK_(module){\nreturn cljs.analyzer.js_module_exists_QMARK__STAR_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931)], null)),module);\n});\ncljs.analyzer.node_module_dep_QMARK_ \x3d (function cljs$analyzer$node_module_dep_QMARK_(module){\ntry{return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22)) \x26\x26 (cljs.core.boolean$((function (){var or__5025__auto__ \x3d require.resolve(cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn require.resolve(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(module)));\n}\n})())));\n}catch (e34976){var _ \x3d e34976;\nreturn false;\n}});\ncljs.analyzer.dep_has_global_exports_QMARK_ \x3d (function cljs$analyzer$dep_has_global_exports_QMARK_(module){\nvar vec__35000 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(1),null);\nvar global_exports \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1),new cljs.core.Keyword(null,\x22global-exports\x22,\x22global-exports\x22,-1644865592)], null));\nreturn ((cljs.core.contains_QMARK_(global_exports,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(module__$1))) || (cljs.core.contains_QMARK_(global_exports,cljs.core.name(module__$1))));\n});\ncljs.analyzer.goog_module_dep_QMARK_ \x3d (function cljs$analyzer$goog_module_dep_QMARK_(module){\nvar vec__35013 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(1),null);\nvar module_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1);\nvar options \x3d cljs.analyzer.compiler_options();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22global-goog-object\x26array\x22,\x22global-goog-object\x26array\x22,907046210).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(and__5023__auto__)){\nvar fexpr__35025 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22goog.array\x22,null,\x22goog.object\x22,null], null), null);\nreturn (fexpr__35025.cljs$core$IFn$_invoke$arity$1 ? fexpr__35025.cljs$core$IFn$_invoke$arity$1(module_str) : fexpr__35025.call(null,module_str));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn false;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),module_str,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191)], null)));\n}\n});\ncljs.analyzer.confirm_var_exists \x3d (function cljs$analyzer$confirm_var_exists(var_args){\nvar G__35052 \x3d arguments.length;\nswitch (G__35052) {\ncase 3:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,prefix,suffix){\nvar warn \x3d cljs.analyzer.confirm_var_exist_warning(env,prefix,suffix);\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,warn);\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,prefix,suffix,missing_fn){\nvar sufstr \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix);\nvar suffix_str \x3d (((((!((\x22..\x22 \x3d\x3d\x3d sufstr)))) \x26\x26 (/\\./.test(sufstr))))?cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(sufstr,/\\./)):suffix);\nvar suffix__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(suffix_str);\nif((((!(cljs.analyzer.implicit_import_QMARK_(env,prefix,suffix__$1)))) \x26\x26 ((((!(cljs.analyzer.loaded_js_ns_QMARK_(env,prefix)))) \x26\x26 ((((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),prefix)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22unquote\x22,\x22unquote\x22,-1004694737,null),suffix__$1)))))) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),suffix__$1) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(prefix))))))))))){\nreturn (missing_fn.cljs$core$IFn$_invoke$arity$3 ? missing_fn.cljs$core$IFn$_invoke$arity$3(env,prefix,suffix__$1) : missing_fn.call(null,env,prefix,suffix__$1));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.confirm_var_exists_throw \x3d (function cljs$analyzer$confirm_var_exists_throw(){\nreturn (function (env,prefix,suffix){\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,(function (env__$1,prefix__$1,suffix__$1){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,[\x22Unable to resolve var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1),\x22 in this context\x22].join(\x27\x27));\n}));\n});\n});\ncljs.analyzer.resolve_ns_alias \x3d (function cljs$analyzer$resolve_ns_alias(var_args){\nvar G__35093 \x3d arguments.length;\nswitch (G__35093) {\ncase 2:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nvar map__35105 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nvar map__35105__$1 \x3d cljs.core.__destructure_map(map__35105);\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(requires,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,sym);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.resolve_macro_ns_alias \x3d (function cljs$analyzer$resolve_macro_ns_alias(var_args){\nvar G__35113 \x3d arguments.length;\nswitch (G__35113) {\ncase 2:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym,not_found);\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given env, an analysis environment, and ns-sym, a symbol identifying a\n * namespace, confirm that the namespace exists. Warn if not found.\n */\ncljs.analyzer.confirm_ns \x3d (function cljs$analyzer$confirm_ns(env,ns_sym){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns_sym)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.implicit_nses,ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_sym) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(ns_sym))))))))))){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),ns_sym,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),ns_sym], null));\n} else {\nreturn null;\n}\n});\n/**\n * Is sym visible from core in the current compilation namespace?\n */\ncljs.analyzer.core_name_QMARK_ \x3d (function cljs$analyzer$core_name_QMARK_(env,sym){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar temp__5827__auto__ \x3d (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(sym,env) : cljs.analyzer.get_expander.call(null,sym,env));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar mac \x3d temp__5827__auto__;\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(mac));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns.getName(),new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null));\n}\n}\n})();\nif(and__5023__auto__){\nreturn (!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Is sym public?\n */\ncljs.analyzer.public_name_QMARK_ \x3d (function cljs$analyzer$public_name_QMARK_(ns,sym){\nvar var_ast \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.name(ns),\x22$macros\x22].join(\x27\x27)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\n}\n})();\nreturn (((!((var_ast \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(var_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22anonymous\x22,\x22anonymous\x22,447897231).cljs$core$IFn$_invoke$arity$1(var_ast);\n}\n})())));\n});\ncljs.analyzer.js_tag_QMARK_ \x3d (function cljs$analyzer$js_tag_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.namespace(x))))));\n});\ncljs.analyzer.normalize_js_tag \x3d (function cljs$analyzer$normalize_js_tag(x){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)))){\nreturn cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),/\\./))),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null))], null));\n} else {\nreturn x;\n}\n});\n/**\n * Ensures that a type tag is a set.\n */\ncljs.analyzer.__GT_type_set \x3d (function cljs$analyzer$__GT_type_set(t){\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn t;\n} else {\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc([t]);\n}\n});\ncljs.analyzer.canonicalize_type \x3d (function cljs$analyzer$canonicalize_type(t){\n\nif((t instanceof cljs.core.Symbol)){\nreturn t;\n} else {\nif(cljs.core.empty_QMARK_(t)){\nreturn null;\n} else {\nif(((1) \x3d\x3d\x3d cljs.core.count(t))){\nreturn cljs.core.first(t);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null))){\nvar res \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null));\nif(((1) \x3d\x3d\x3d cljs.core.count(res))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nreturn res;\n}\n} else {\nreturn t;\n\n}\n}\n}\n}\n}\n});\n/**\n * Produces a union of types.\n */\ncljs.analyzer.add_types \x3d (function cljs$analyzer$add_types(var_args){\nvar G__35198 \x3d arguments.length;\nswitch (G__35198) {\ncase 0:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38656 \x3d arguments.length;\nvar i__5750__auto___38657 \x3d (0);\nwhile(true){\nif((i__5750__auto___38657 \x3c len__5749__auto___38656)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38657]));\n\nvar G__38659 \x3d (i__5750__auto___38657 + (1));\ni__5750__auto___38657 \x3d G__38659;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1 \x3d (function (t1){\nreturn t1;\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2 \x3d (function (t1,t2){\nif((((t1 \x3d\x3d null)) || ((t2 \x3d\x3d null)))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.canonicalize_type(clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.__GT_type_set(t1),cljs.analyzer.__GT_type_set(t2)));\n}\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic \x3d (function (t1,t2,ts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.add_types,cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(t1,t2),ts);\n}));\n\n/** @this {Function} */\n(cljs.analyzer.add_types.cljs$lang$applyTo \x3d (function (seq35193){\nvar G__35194 \x3d cljs.core.first(seq35193);\nvar seq35193__$1 \x3d cljs.core.next(seq35193);\nvar G__35196 \x3d cljs.core.first(seq35193__$1);\nvar seq35193__$2 \x3d cljs.core.next(seq35193__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35194,G__35196,seq35193__$2);\n}));\n\n(cljs.analyzer.add_types.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.analyzer.alias__GT_type \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22Array\x22,\x22Array\x22,-423496279,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22Boolean\x22,\x22Boolean\x22,1661141587,null),new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),new cljs.core.Symbol(null,\x22Symbol\x22,\x22Symbol\x22,716452869,null)], null);\ncljs.analyzer.has_extern_QMARK__STAR_ \x3d (function cljs$analyzer$has_extern_QMARK__STAR_(var_args){\nvar G__35222 \x3d arguments.length;\nswitch (G__35222) {\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar pre__$1 \x3d (function (){var temp__5827__auto__ \x3d cljs.core.find(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null)),cljs.core.first(pre));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn pre;\n} else {\nvar me \x3d temp__5827__auto__;\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.core.first(me)));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn pre;\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre));\n}\n}\n})();\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(pre__$1,externs,externs);\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,externs,top){\nwhile(true){\nif(cljs.core.empty_QMARK_(pre)){\nreturn true;\n} else {\nvar x \x3d cljs.core.first(pre);\nvar me \x3d cljs.core.find(externs,x);\nif(cljs.core.not(me)){\nreturn false;\n} else {\nvar vec__35245 \x3d me;\nvar x_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(1),null);\nvar xmeta \x3d cljs.core.meta(x_SINGLEQUOTE_);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(xmeta));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(xmeta);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.next(pre),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22super\x22,\x22super\x22,840752938).cljs$core$IFn$_invoke$arity$1(xmeta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar super$ \x3d temp__5825__auto__;\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [super$], null),cljs.core.next(pre)),externs,top);\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38669 \x3d cljs.core.next(pre);\nvar G__38670 \x3d externs_SINGLEQUOTE_;\nvar G__38671 \x3d top;\npre \x3d G__38669;\nexterns \x3d G__38670;\ntop \x3d G__38671;\ncontinue;\n}\n\n}\n\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.has_extern_QMARK_ \x3d (function cljs$analyzer$has_extern_QMARK_(var_args){\nvar G__35283 \x3d arguments.length;\nswitch (G__35283) {\ncase 1:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2(pre,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2(pre,externs);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pre)))?(function (){var x \x3d cljs.core.first(pre);\nvar or__5025__auto____$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),x));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null)], null),x));\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(pre)),\x22cljs$\x22);\n}\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.js_tag \x3d (function cljs$analyzer$js_tag(var_args){\nvar G__35322 \x3d arguments.length;\nswitch (G__35322) {\ncase 1:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,tag_type){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3(pre,tag_type,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,tag_type,externs){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(pre,tag_type,externs,externs);\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4 \x3d (function (pre,tag_type,externs,top){\nvar temp__5825__auto__ \x3d cljs.core.find(externs,cljs.core.first(pre));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__35336 \x3d temp__5825__auto__;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(1),null);\nvar me \x3d vec__35336;\nvar tag \x3d (function (){var G__35341 \x3d cljs.core.meta(p);\nreturn (tag_type.cljs$core$IFn$_invoke$arity$1 ? tag_type.cljs$core$IFn$_invoke$arity$1(G__35341) : tag_type.call(null,G__35341));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),(1))){\nif(cljs.core.truth_(tag)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2(tag,tag) : cljs.analyzer.alias__GT_type.call(null,tag,tag))));\n} else {\nreturn null;\n}\n} else {\nvar or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.next(pre),tag_type,externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),tag_type,cljs.core.get.cljs$core$IFn$_invoke$arity$2(top,tag),top);\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.js_tag.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.dotted_symbol_QMARK_ \x3d (function cljs$analyzer$dotted_symbol_QMARK_(sym){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nreturn ((goog.string.contains(s,\x22.\x22)) \x26\x26 ((!(goog.string.contains(s,\x22..\x22)))));\n});\ncljs.analyzer.munge_node_lib \x3d (function cljs$analyzer$munge_node_lib(name){\nreturn [\x22node$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\ncljs.analyzer.munge_goog_module_lib \x3d (function cljs$analyzer$munge_goog_module_lib(var_args){\nvar G__35368 \x3d arguments.length;\nswitch (G__35368) {\ncase 1:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nreturn [\x22goog$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(ns)),\x22.\x22,cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.munge_global_export \x3d (function cljs$analyzer$munge_global_export(name){\nreturn [\x22global$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\n/**\n * Takes a namespace and an unqualified symbol and potentially returns a new\n * symbol to be used in lieu of the original.\n */\ncljs.analyzer.resolve_alias \x3d (function cljs$analyzer$resolve_alias(ns,sym){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (function (){var fexpr__35421 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),\x22null\x22,new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),\x22null\x22], null), null);\nreturn (fexpr__35421.cljs$core$IFn$_invoke$arity$1 ? fexpr__35421.cljs$core$IFn$_invoke$arity$1(sym) : fexpr__35421.call(null,sym));\n})();\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.analyzer.checked_arrays();\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x22,\x22checked-aget\x22,950823006,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x22,\x22checked-aset\x22,1556136760,null)], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x27\x22,\x22checked-aget\x27\x22,212330530,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x27\x22,\x22checked-aset\x27\x22,-510930777,null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.checked_arrays(),sym], null));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.ns__GT_module_type \x3d (function cljs$analyzer$ns__GT_module_type(ns){\nif(cljs.analyzer.goog_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656);\n} else {\nif(cljs.core.truth_(cljs.analyzer.js_module_exists_QMARK_(ns))){\nreturn new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579);\n} else {\nif(cljs.analyzer.node_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198);\n} else {\nif(cljs.analyzer.dep_has_global_exports_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047);\n} else {\nreturn null;\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.resolve_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.resolve_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35446 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35446.cljs$core$IFn$_invoke$arity$0 ? fexpr__35446.cljs$core$IFn$_invoke$arity$0() : fexpr__35446.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22resolve*\x22),(function (env,sym,full_ns,current_ns){\nreturn cljs.analyzer.ns__GT_module_type(full_ns);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null);\n}));\ncljs.analyzer.extern_pre \x3d (function cljs$analyzer$extern_pre(sym,current_ns){\nvar pre \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./))));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n\nreturn pre;\n});\ncljs.analyzer.node_like_QMARK_ \x3d (function cljs$analyzer$node_like_QMARK_(var_args){\nvar G__35484 \x3d arguments.length;\nswitch (G__35484) {\ncase 0:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options());\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nodejs\x22,\x22nodejs\x22,321212524),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721).cljs$core$IFn$_invoke$arity$1(opts))) \x26\x26 (new cljs.core.Keyword(null,\x22nodejs-rt\x22,\x22nodejs-rt\x22,-512437071).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d false));\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$lang$maxFixedArity \x3d 1);\n\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),(function (env,sym,full_ns,current_ns){\nif(cljs.core.truth_(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0())){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null);\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047),(function (env,sym,full_ns,current_ns){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_global_export(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}));\n/**\n * Specially-treated symbols for which we don\x27t trigger :private-var-access warnings.\n */\ncljs.analyzer.private_var_access_exceptions \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),\x22null\x22], null), null);\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (env,sym,full_ns,current_ns){\nvar sym_ast \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),full_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\nvar sym_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(sym_ast);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ((cljs.core.not(cljs.analyzer._STAR_private_var_access_nowarn_STAR_)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.private_var_access_exceptions,sym_name)))));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_name], null));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym_ast,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym_name,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null)], 0));\n}));\ncljs.analyzer.required_QMARK_ \x3d (function cljs$analyzer$required_QMARK_(ns,env){\nreturn ((cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)))),ns)) || (cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)))),ns)));\n});\n/**\n * Returns true if ns is a required namespace and a JavaScript module that\n * might be invokeable as a function.\n */\ncljs.analyzer.invokeable_ns_QMARK_ \x3d (function cljs$analyzer$invokeable_ns_QMARK_(ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar and__5023__auto__ \x3d cljs.analyzer.required_QMARK_(ns__$1,env);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn ((cljs.analyzer.node_module_dep_QMARK_(ns__$1)) || (cljs.analyzer.dep_has_global_exports_QMARK_(ns__$1)));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.resolve_invokeable_ns \x3d (function cljs$analyzer$resolve_invokeable_ns(ns,current_ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar module_type \x3d cljs.analyzer.ns__GT_module_type(ns__$1);\nvar G__35560 \x3d module_type;\nvar G__35560__$1 \x3d (((G__35560 instanceof cljs.core.Keyword))?G__35560.fqn:null);\nswitch (G__35560__$1) {\ncase \x22js\x22:\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1);\n}\n})()),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22node\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_node_lib(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22global\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_global_export(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__35560__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * goog.modules are deterministically assigned to a property of the namespace,\n * we cannot expect the reference will be globally available, so we resolve to\n * namespace local reference.\n */\ncljs.analyzer.resolve_import \x3d (function cljs$analyzer$resolve_import(env,import$){\nif(cljs.analyzer.goog_module_dep_QMARK_(import$)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),import$));\n} else {\nreturn import$;\n}\n});\ncljs.analyzer.handle_symbol_local \x3d (function cljs$analyzer$handle_symbol_local(sym,lb){\nif((lb instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null);\n} else {\nreturn lb;\n}\n});\n/**\n * Resolve a var. Accepts a side-effecting confirm fn for producing\n * warnings about unresolved vars.\n */\ncljs.analyzer.resolve_var \x3d (function cljs$analyzer$resolve_var(var_args){\nvar G__35604 \x3d arguments.length;\nswitch (G__35604) {\ncase 2:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,sym){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,null);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,sym,confirm){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,sym,confirm,true);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,sym,confirm,default_QMARK_){\nwhile(true){\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nif((\x22js\x22 \x3d\x3d\x3d cljs.core.namespace(sym))){\nvar symn \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar shadowed_by_local \x3d cljs.analyzer.handle_symbol_local(symn,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,symn));\nif((!((shadowed_by_local \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadowed_by_local,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nvar pre \x3d cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./)));\nif(((cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta((function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1(pre);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null))], null),(function (){var temp__5825__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ret_tag \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358),true,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag], null);\n} else {\nreturn null;\n}\n})()], 0));\n\n}\n} else {\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nvar lb \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,sym));\nvar current_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nif((!((lb \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lb,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns \x3d cljs.core.namespace(sym);\nvar ns__$1 \x3d (((\x22clojure.core\x22 \x3d\x3d\x3d ns))?\x22cljs.core\x22:ns);\nvar full_ns \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,ns__$1,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns__$1);\n}\n})());\nif((!((confirm \x3d\x3d null)))){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns)){\ncljs.analyzer.confirm_ns(env,full_ns);\n} else {\n}\n\nvar G__35668_38723 \x3d env;\nvar G__35669_38724 \x3d full_ns;\nvar G__35670_38725 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35668_38723,G__35669_38724,G__35670_38725) : confirm.call(null,G__35668_38723,G__35669_38724,G__35670_38725));\n} else {\n}\n\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif(cljs.analyzer.dotted_symbol_QMARK_(sym)){\nvar idx \x3d s.indexOf(\x22.\x22);\nvar prefix \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx));\nvar suffix \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1)));\nvar temp__5823__auto__ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,prefix,null,false);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar resolved \x3d temp__5823__auto__;\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(resolved,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),((function (env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals){\nreturn (function (p1__35593_SHARP_){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__35593_SHARP_),\x22.\x22,suffix].join(\x27\x27));\n});})(env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals))\n);\n} else {\nvar s__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__35684 \x3d s;\nif(cljs.analyzer.goog_module_dep_QMARK_(sym)){\nreturn cljs.analyzer.resolve_import(env,G__35684);\n} else {\nreturn G__35684;\n}\n})());\nvar idx__$1 \x3d s__$1.lastIndexOf(\x22.\x22);\nvar pre \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$1,(0),idx__$1);\nvar suf \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(idx__$1 + (1)));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(pre,suf),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(pre)], null);\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym) \x3d\x3d null)))){\nvar full_ns \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym);\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym);\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym__$1,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym) \x3d\x3d null)))){\nvar G__38729 \x3d env;\nvar G__38730 \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym);\nvar G__38731 \x3d confirm;\nvar G__38732 \x3d default_QMARK_;\nenv \x3d G__38729;\nsym \x3d G__38730;\nconfirm \x3d G__38731;\ndefault_QMARK_ \x3d G__38732;\ncontinue;\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)))){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nif(cljs.analyzer.core_name_QMARK_(env,sym)){\nvar sym__$1 \x3d cljs.analyzer.resolve_alias(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),sym);\nif((!((confirm \x3d\x3d null)))){\nvar G__35721_38733 \x3d env;\nvar G__35722_38734 \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\nvar G__35723_38735 \x3d sym__$1;\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35721_38733,G__35722_38734,G__35723_38735) : confirm.call(null,G__35721_38733,G__35722_38734,G__35723_38735));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null)], 0));\n} else {\nif(cljs.core.truth_(cljs.analyzer.invokeable_ns_QMARK_(s,env))){\nreturn cljs.analyzer.resolve_invokeable_ns(s,current_ns,env);\n} else {\nif(cljs.core.truth_(default_QMARK_)){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nreturn null;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.resolve_var.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve an existing var.\n * Emits a warning if no such var exists.\n */\ncljs.analyzer.resolve_existing_var \x3d (function cljs$analyzer$resolve_existing_var(env,sym){\nif(cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists);\n} else {\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,sym);\n}\n});\n/**\n * Given env, an analysis environment env, and names, a list of symbols, confirm\n * that all correspond to declared dynamic vars.\n */\ncljs.analyzer.confirm_bindings \x3d (function cljs$analyzer$confirm_bindings(env,names){\nvar seq__35752 \x3d cljs.core.seq(names);\nvar chunk__35753 \x3d null;\nvar count__35754 \x3d (0);\nvar i__35755 \x3d (0);\nwhile(true){\nif((i__35755 \x3c count__35754)){\nvar name \x3d chunk__35753.cljs$core$IIndexed$_nth$arity$2(null,i__35755);\nvar env_38737__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38738 \x3d cljs.analyzer.resolve_existing_var(env_38737__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38738;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38738));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38737__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38738,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38738)], null));\n} else {\n}\n\n\nvar G__38740 \x3d seq__35752;\nvar G__38741 \x3d chunk__35753;\nvar G__38742 \x3d count__35754;\nvar G__38743 \x3d (i__35755 + (1));\nseq__35752 \x3d G__38740;\nchunk__35753 \x3d G__38741;\ncount__35754 \x3d G__38742;\ni__35755 \x3d G__38743;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__35752);\nif(temp__5825__auto__){\nvar seq__35752__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__35752__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__35752__$1);\nvar G__38746 \x3d cljs.core.chunk_rest(seq__35752__$1);\nvar G__38747 \x3d c__5548__auto__;\nvar G__38748 \x3d cljs.core.count(c__5548__auto__);\nvar G__38749 \x3d (0);\nseq__35752 \x3d G__38746;\nchunk__35753 \x3d G__38747;\ncount__35754 \x3d G__38748;\ni__35755 \x3d G__38749;\ncontinue;\n} else {\nvar name \x3d cljs.core.first(seq__35752__$1);\nvar env_38750__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38751 \x3d cljs.analyzer.resolve_existing_var(env_38750__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38751;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38751));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38750__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38751,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38751)], null));\n} else {\n}\n\n\nvar G__38753 \x3d cljs.core.next(seq__35752__$1);\nvar G__38754 \x3d null;\nvar G__38755 \x3d (0);\nvar G__38756 \x3d (0);\nseq__35752 \x3d G__38753;\nchunk__35753 \x3d G__38754;\ncount__35754 \x3d G__38755;\ni__35755 \x3d G__38756;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve a macro.\n */\ncljs.analyzer.resolve_macro_var \x3d (function cljs$analyzer$resolve_macro_var(env,sym){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927));\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns__$1 \x3d cljs.core.namespace(sym);\nvar ns__$2 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure.core\x22,ns__$1))?\x22cljs.core\x22:ns__$1);\nvar full_ns \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$2);\nvar full_ns__$1 \x3d (((!(clojure.string.ends_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22].join(\x27\x27)):full_ns);\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null)) \x3d\x3d null)))){\nvar full_ns \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null)) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null));\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym__$1], null));\n} else {\nvar ns__$1 \x3d (((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null)) \x3d\x3d null))))?ns:((cljs.analyzer.core_name_QMARK_(env,sym))?cljs.analyzer.impl.CLJS_CORE_MACROS_SYM:null));\nif((!((ns__$1 \x3d\x3d null)))){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\n\n\ncljs.analyzer.specials \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 22, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null);\ncljs.analyzer._STAR_recur_frames_STAR_ \x3d null;\ncljs.analyzer._STAR_loop_lets_STAR_ \x3d cljs.core.List.EMPTY;\ncljs.analyzer._STAR_allow_redef_STAR_ \x3d false;\ncljs.analyzer._STAR_allow_ns_STAR_ \x3d true;\ncljs.analyzer.analyze_keyword \x3d (function cljs$analyzer$analyze_keyword(env,sym){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null)], null);\n});\ncljs.analyzer.get_tag \x3d (function cljs$analyzer$get_tag(ast){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast)));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.find_matching_method \x3d (function cljs$analyzer$find_matching_method(fn_ast,params){\nvar methods$ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fn_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n}\n})();\nvar c \x3d cljs.core.count(params);\nreturn cljs.core.some((function (m){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869).cljs$core$IFn$_invoke$arity$1(m) \x3d\x3d\x3d c);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(m);\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn m;\n} else {\nreturn and__5023__auto__;\n}\n}),methods$);\n});\ncljs.analyzer.type_QMARK_ \x3d (function cljs$analyzer$type_QMARK_(env,t){\nif((((!((t \x3d\x3d null)))) \x26\x26 ((t instanceof cljs.core.Symbol)))){\nvar var$ \x3d (function (){var _STAR_private_var_access_nowarn_STAR__orig_val__35815 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__35816 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__35816);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,t);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__35815);\n}})();\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(var$));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar temp__5827__auto____$2 \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto____$2 \x3d\x3d null)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22PersistentHashMap\x22,\x22cljs.core/PersistentHashMap\x22,-454120575,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22List\x22,\x22cljs.core/List\x22,1708954352,null),\x22null\x22], null), null),t);\n} else {\nvar proto \x3d temp__5827__auto____$2;\nreturn proto;\n}\n} else {\nvar type \x3d temp__5827__auto____$1;\nreturn type;\n}\n} else {\nvar type \x3d temp__5827__auto__;\nreturn type;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.unwrap_quote \x3d (function cljs$analyzer$unwrap_quote(p__35830){\nvar map__35833 \x3d p__35830;\nvar map__35833__$1 \x3d cljs.core.__destructure_map(map__35833);\nvar ast \x3d map__35833__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35833__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif(cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245))){\nreturn new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.infer_if \x3d (function cljs$analyzer$infer_if(env,ast){\nvar map__35844 \x3d cljs.analyzer.unwrap_quote(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__35844__$1 \x3d cljs.core.__destructure_map(map__35844);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar then_tag \x3d (function (){var G__35849 \x3d env;\nvar G__35850 \x3d new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35849,G__35850) : cljs.analyzer.infer_tag.call(null,G__35849,G__35850));\n})();\nif(((cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842))) \x26\x26 ((((!((form \x3d\x3d null)))) \x26\x26 ((!(form \x3d\x3d\x3d false))))))){\nreturn then_tag;\n} else {\nvar else_tag \x3d (function (){var G__35857 \x3d env;\nvar G__35858 \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35857,G__35858) : cljs.analyzer.infer_tag.call(null,G__35857,G__35858));\n})();\nif(((cljs.core.symbol_identical_QMARK_(then_tag,else_tag)) || (cljs.core.symbol_identical_QMARK_(else_tag,cljs.analyzer.impl.IGNORE_SYM)))){\nreturn then_tag;\n} else {\nif(cljs.core.symbol_identical_QMARK_(then_tag,cljs.analyzer.impl.IGNORE_SYM)){\nreturn else_tag;\n} else {\nif((((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,then_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,then_tag)))) \x26\x26 ((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,else_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,else_tag)))))){\nreturn new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null);\n} else {\nif((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,then_tag) \x3d\x3d null)))) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,else_tag) \x3d\x3d null)))))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nvar then_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(then_tag))?then_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([then_tag]));\nvar else_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(else_tag))?else_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([else_tag]));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(then_tag__$1,else_tag__$1);\n}\n\n}\n}\n}\n}\n});\ncljs.analyzer.js_var_QMARK_ \x3d (function cljs$analyzer$js_var_QMARK_(ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.js_var_fn_QMARK_ \x3d (function cljs$analyzer$js_var_fn_QMARK_(fn_ast){\nreturn cljs.analyzer.js_var_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n});\ncljs.analyzer.fn_ast__GT_tag \x3d (function cljs$analyzer$fn_ast__GT_tag(p__35891){\nvar map__35893 \x3d p__35891;\nvar map__35893__$1 \x3d cljs.core.__destructure_map(map__35893);\nvar fn_ast \x3d map__35893__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35893__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.analyzer.js_var_fn_QMARK_(fn_ast)){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.analyzer.infer_invoke \x3d (function cljs$analyzer$infer_invoke(env,p__35918){\nvar map__35919 \x3d p__35918;\nvar map__35919__$1 \x3d cljs.core.__destructure_map(map__35919);\nvar ast \x3d map__35919__$1;\nvar fn_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar me \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.find_matching_method(fn_ast,args),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839));\nvar temp__5827__auto__ \x3d (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,me) : cljs.analyzer.infer_tag.call(null,env,me));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d cljs.analyzer.fn_ast__GT_tag(fn_ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn cljs.analyzer.impl.ANY_SYM;\n} else {\nvar ret_tag \x3d temp__5827__auto____$1;\nreturn ret_tag;\n}\n} else {\nvar ret_tag \x3d temp__5827__auto__;\nreturn ret_tag;\n}\n});\n/**\n * Given env, an analysis environment, and e, an AST node, return the inferred\n * type of the node\n */\ncljs.analyzer.infer_tag \x3d (function cljs$analyzer$infer_tag(env,ast){\nvar temp__5827__auto__ \x3d cljs.analyzer.get_tag(ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar G__35920 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__35920__$1 \x3d (((G__35920 instanceof cljs.core.Keyword))?G__35920.fqn:null);\nswitch (G__35920__$1) {\ncase \x22recur\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22throw\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22let\x22:\nvar G__35924 \x3d env;\nvar G__35925 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35924,G__35925) : cljs.analyzer.infer_tag.call(null,G__35924,G__35925));\n\nbreak;\ncase \x22loop\x22:\nvar G__35928 \x3d env;\nvar G__35929 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35928,G__35929) : cljs.analyzer.infer_tag.call(null,G__35928,G__35929));\n\nbreak;\ncase \x22do\x22:\nvar G__35932 \x3d env;\nvar G__35933 \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35932,G__35933) : cljs.analyzer.infer_tag.call(null,G__35932,G__35933));\n\nbreak;\ncase \x22fn-method\x22:\nvar G__35935 \x3d env;\nvar G__35936 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35935,G__35936) : cljs.analyzer.infer_tag.call(null,G__35935,G__35936));\n\nbreak;\ncase \x22def\x22:\nvar G__35937 \x3d env;\nvar G__35938 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35937,G__35938) : cljs.analyzer.infer_tag.call(null,G__35937,G__35938));\n\nbreak;\ncase \x22invoke\x22:\nreturn cljs.analyzer.infer_invoke(env,ast);\n\nbreak;\ncase \x22if\x22:\nreturn cljs.analyzer.infer_if(env,ast);\n\nbreak;\ncase \x22const\x22:\nvar G__35939 \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(false,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nreturn cljs.analyzer.impl.ANY_SYM;\n\n}\n}\n\nbreak;\ncase \x22quote\x22:\nvar G__35940 \x3d env;\nvar G__35941 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35940,G__35941) : cljs.analyzer.infer_tag.call(null,G__35940,G__35941));\n\nbreak;\ncase \x22var\x22:\ncase \x22local\x22:\ncase \x22js-var\x22:\ncase \x22binding\x22:\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar G__35942 \x3d env;\nvar G__35943 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35942,G__35943) : cljs.analyzer.infer_tag.call(null,G__35942,G__35943));\n} else {\nvar init \x3d temp__5827__auto____$1;\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.infer_tag.call(null,env,init));\n}\n\nbreak;\ncase \x22host-field\x22:\ncase \x22host-call\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ncase \x22js\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.parse !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.parse \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35952 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35952.cljs$core$IFn$_invoke$arity$0 ? fexpr__35952.cljs$core$IFn$_invoke$arity$0() : fexpr__35952.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22parse\x22),(function() { \nvar G__38759__delegate \x3d function (op,rest){\nreturn op;\n};\nvar G__38759 \x3d function (op,var_args){\nvar rest \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38760__i \x3d 0, G__38760__a \x3d new Array(arguments.length - 1);\nwhile (G__38760__i \x3c G__38760__a.length) {G__38760__a[G__38760__i] \x3d arguments[G__38760__i + 1]; ++G__38760__i;}\n rest \x3d new cljs.core.IndexedSeq(G__38760__a,0,null);\n} \nreturn G__38759__delegate.call(this,op,rest);};\nG__38759.cljs$lang$maxFixedArity \x3d 1;\nG__38759.cljs$lang$applyTo \x3d (function (arglist__38761){\nvar op \x3d cljs.core.first(arglist__38761);\nvar rest \x3d cljs.core.rest(arglist__38761);\nreturn G__38759__delegate(op,rest);\n});\nG__38759.cljs$core$IFn$_invoke$arity$variadic \x3d G__38759__delegate;\nreturn G__38759;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.var_meta \x3d (function cljs$analyzer$var_meta(var_args){\nvar G__35964 \x3d arguments.length;\nswitch (G__35964) {\ncase 1:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1 \x3d (function (var$){\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,null);\n}));\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (var$,expr_env){\nvar sym \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$);\nvar ks \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095)], null);\nvar m \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var user_meta \x3d new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964).cljs$core$IFn$_invoke$arity$1(var$);\nvar uks \x3d cljs.core.keys(user_meta);\nreturn cljs.core.zipmap(uks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35957_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(user_meta,p1__35957_SHARP_),null,(1),null)),(2),null));\n}),uks));\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.zipmap(ks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35959_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(var$,p1__35959_SHARP_),null,(1),null)),(2),null));\n}),ks)),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null))))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),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(\x22cljs.core\x22,\x22when\x22,\x22cljs.core/when\x22,120293186,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(null,\x22.-cljs$lang$test\x22,\x22.-cljs$lang$test\x22,718963148,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),(function (){var arglists \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(var$);\nvar arglists_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists)))?cljs.core.second(arglists):arglists);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.with_meta,arglists_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)),(2),null));\n})()], 0))], 0));\nif(cljs.core.truth_(expr_env)){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,m) : cljs.analyzer.analyze.call(null,expr_env,m));\n} else {\nreturn m;\n}\n}));\n\n(cljs.analyzer.var_meta.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.var_ast \x3d (function cljs$analyzer$var_ast(env,sym){\nvar _STAR_private_var_access_nowarn_STAR__orig_val__36029 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__36030 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__36030);\n\ntry{var env__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar var$ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env__$1,sym,cljs.analyzer.confirm_var_exists_throw());\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar var_ns \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym)),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),(function (){var G__36055 \x3d expr_env;\nvar G__36056 \x3d 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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.name(var_ns),cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36055,G__36056) : cljs.analyzer.analyze.call(null,G__36055,G__36056));\n})(),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,expr_env)], null);\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__36029);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),(function (op,env,p__36064,_,___$1){\nvar vec__36066 \x3d p__36064;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(1),null);\nvar form \x3d vec__36066;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to var\x22);\n} else {\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Argument to var must be symbol\x22);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22the-var\x22,\x22the-var\x22,1428415613),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),cljs.analyzer.var_ast(env,sym)], 0));\n}));\ncljs.analyzer.predicate__GT_tag \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(\x22cljs.core\x22,\x22array?\x22,\x22cljs.core/array?\x22,-1655912448,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22boolean?\x22,\x22cljs.core/boolean?\x22,1400713761,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22char?\x22,\x22cljs.core/char?\x22,416405281,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22keyword?\x22,\x22cljs.core/keyword?\x22,713156450,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-symbol?\x22,\x22cljs.core/simple-symbol?\x22,-1951205629,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-symbol?\x22,\x22cljs.core/qualified-symbol?\x22,1570873476,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22var?\x22,\x22cljs.core/var?\x22,1711182854,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22map-entry?\x22,\x22cljs.core/map-entry?\x22,465406728,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22double?\x22,\x22cljs.core/double?\x22,1757455529,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-ident?\x22,\x22cljs.core/qualified-ident?\x22,-1863492566,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22inst?\x22,\x22cljs.core/inst?\x22,1216133710,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22float?\x22,\x22cljs.core/float?\x22,-941017745,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22true?\x22,\x22cljs.core/true?\x22,-77973136,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22number?\x22,\x22cljs.core/number?\x22,-811857295,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22volatile?\x22,\x22cljs.core/volatile?\x22,-1122186415,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22integer?\x22,\x22cljs.core/integer?\x22,1710697810,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22infinite?\x22,\x22cljs.core/infinite?\x22,-1069503726,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22undefined?\x22,\x22cljs.core/undefined?\x22,-1206515693,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22uuid?\x22,\x22cljs.core/uuid?\x22,-15131116,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22record?\x22,\x22cljs.core/record?\x22,1307655860,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22reduced?\x22,\x22cljs.core/reduced?\x22,-1192491371,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22tagged-literal?\x22,\x22cljs.core/tagged-literal?\x22,-1159666987,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22zero?\x22,\x22cljs.core/zero?\x22,-341242858,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22false?\x22,\x22cljs.core/false?\x22,-1660815306,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-ident?\x22,\x22cljs.core/simple-ident?\x22,1674885558,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-keyword?\x22,\x22cljs.core/simple-keyword?\x22,39474330,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seqable?\x22,\x22cljs.core/seqable?\x22,-745394886,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22symbol?\x22,\x22cljs.core/symbol?\x22,1422196122,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seq?\x22,\x22cljs.core/seq?\x22,-1302056292,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22delay?\x22,\x22cljs.core/delay?\x22,2099859324,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22regexp?\x22,\x22cljs.core/regexp?\x22,-348418979,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ident?\x22,\x22cljs.core/ident?\x22,1567441535,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22chunked-seq?\x22,\x22cljs.core/chunked-seq?\x22,-712922369,null)],[new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISequential\x22,\x22cljs.core/ISequential\x22,-950981796,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Var\x22,\x22cljs.core/Var\x22,2071014443,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMapEntry\x22,\x22cljs.core/IMapEntry\x22,535941300,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Inst\x22,\x22cljs.core/Inst\x22,959205835,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Volatile\x22,\x22cljs.core/Volatile\x22,-1098692185,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IUUID\x22,\x22cljs.core/IUUID\x22,-1606521379,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IRecord\x22,\x22cljs.core/IRecord\x22,635852000,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Reduced\x22,\x22cljs.core/Reduced\x22,971663396,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ITaggedLiteral\x22,\x22cljs.core/ITaggedLiteral\x22,-1236965094,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(\x22cljs.core\x22,\x22ISeqable\x22,\x22cljs.core/ISeqable\x22,137437203,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Delay\x22,\x22cljs.core/Delay\x22,-21574999,null),new cljs.core.Symbol(\x22js\x22,\x22RegExp\x22,\x22js/RegExp\x22,1778210562,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IChunkedSeq\x22,\x22cljs.core/IChunkedSeq\x22,-892943716,null)]);\n/**\n * Look for a predicate-induced tag when the test expression is a simple\n * application of a predicate to a local, as in (string? x).\n */\ncljs.analyzer.simple_predicate_induced_tag \x3d (function cljs$analyzer$simple_predicate_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((2) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36084 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36085 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36085);\n\ntry{var G__36086 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36087 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36086,G__36087) : cljs.analyzer.analyze.call(null,G__36086,G__36087));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36084);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nvar temp__5825__auto__ \x3d (function (){var G__36095 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nreturn (cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1(G__36095) : cljs.analyzer.predicate__GT_tag.call(null,G__36095));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto__){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Look for a type-check-induced tag when the test expression is the use of\n * instance? on a local, as in (instance? UUID x) or implements? on a local, as\n * in (implements? ICounted x).\n */\ncljs.analyzer.type_check_induced_tag \x3d (function cljs$analyzer$type_check_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((3) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.specials,cljs.core.first(test))))))))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36112 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36113 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36113);\n\ntry{var G__36115 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36116 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36115,G__36116) : cljs.analyzer.analyze.call(null,G__36115,G__36116));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36112);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nif(cljs.core.truth_((function (){var G__36118 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nvar fexpr__36117 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22implements?\x22,\x22cljs.core/implements?\x22,-251485149,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),\x22null\x22], null), null);\nreturn (fexpr__36117.cljs$core$IFn$_invoke$arity$1 ? fexpr__36117.cljs$core$IFn$_invoke$arity$1(G__36118) : fexpr__36117.call(null,G__36118));\n})())){\nvar analyzed_type \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36125 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36126 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36126);\n\ntry{var G__36130 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36131 \x3d cljs.core.second(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36130,G__36131) : cljs.analyzer.analyze.call(null,G__36130,G__36131));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36125);\n}})();\nvar tag \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_type);\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_type));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Refine a tag to exclude clj-nil if the test is a local.\n */\ncljs.analyzer.truth_induced_tag \x3d (function cljs$analyzer$truth_induced_tag(env,test){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (test instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(test) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),test], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar analyzed_symbol \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36144 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36145 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36145);\n\ntry{var G__36148 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36149 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36148,G__36149) : cljs.analyzer.analyze.call(null,G__36148,G__36149));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36144);\n}})();\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(analyzed_symbol);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nif(((cljs.core.set_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [test,cljs.analyzer.canonicalize_type(cljs.core.disj.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null)))], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Looks at the test and sets any tags which are induced by virtue\n * of the test being truthy. For example in (if (string? x) x :bar)\n * the local x in the then branch must be of string type.\n */\ncljs.analyzer.set_test_induced_tags \x3d (function cljs$analyzer$set_test_induced_tags(env,test){\nvar vec__36164 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.simple_predicate_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.type_check_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.truth_induced_tag(env,test);\n}\n}\n})();\nvar local \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(0),null);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(1),null);\nvar G__36172 \x3d env;\nif(cljs.core.truth_(local)){\nreturn cljs.core.assoc_in(G__36172,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),local,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null),tag);\n} else {\nreturn G__36172;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),(function (op,env,p__36181,name,_){\nvar vec__36183 \x3d p__36181;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(0),null);\nvar test \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(1),null);\nvar then \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(2),null);\nvar else$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(3),null);\nvar form \x3d vec__36183;\nif((cljs.core.count(form) \x3c (3))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too few arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too many arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nvar test_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36190 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36191 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36191);\n\ntry{var G__36192 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36193 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36192,G__36193) : cljs.analyzer.analyze.call(null,G__36192,G__36193));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36190);\n}})();\nvar then_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36194 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36195 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36195);\n\ntry{var G__36196 \x3d cljs.analyzer.set_test_induced_tags(env,test);\nvar G__36197 \x3d then;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36196,G__36197) : cljs.analyzer.analyze.call(null,G__36196,G__36197));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36194);\n}})();\nvar else_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36198 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36199 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36199);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,else$) : cljs.analyzer.analyze.call(null,env,else$));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36198);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test_expr,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then_expr,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),else_expr,new cljs.core.Keyword(null,\x22unchecked\x22,\x22unchecked\x22,924418378),cljs.core._STAR_unchecked_if_STAR_,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),(function (op,env,p__36215,name,_){\nvar vec__36220 \x3d p__36215;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(1),null);\nvar tests \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(2),null);\nvar thens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(3),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(4),null);\nvar form \x3d vec__36220;\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* must switch on symbol\x22,\x22\\n\x22,\x22(symbol? sym)\x22].join(\x27\x27)));\n}\n\nif(cljs.core.every_QMARK_(cljs.core.vector_QMARK_,tests)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be grouped in vectors\x22,\x22\\n\x22,\x22(every? vector? tests)\x22].join(\x27\x27)));\n}\n\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar v \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36239 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36240 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36240);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36239);\n}})();\nvar tests__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36208_SHARP_){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (t){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,t) : cljs.analyzer.analyze.call(null,expr_env,t));\n}),p1__36208_SHARP_);\n}),tests);\nvar thens__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36209_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,p1__36209_SHARP_) : cljs.analyzer.analyze.call(null,env,p1__36209_SHARP_));\n}),thens);\nvar nodes \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tests__$2,then){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-node\x22,\x22case-node\x22,1016946320),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (test){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-test\x22,\x22case-test\x22,-213512472),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(test),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),expr_env,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)], null)], null);\n}),tests__$2),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-then\x22,\x22case-then\x22,2107591745),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(then),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null);\n}),tests__$1,thens__$1);\nvar default$__$1 \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,default$) : cljs.analyzer.analyze.call(null,env,default$));\nif(cljs.core.every_QMARK_((function (t){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(t));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(t));\nif(and__5023__auto__){\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.char_QMARK_)(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(t));\n} else {\nreturn and__5023__auto__;\n}\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,tests__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be numbers, strings, or constants\x22,\x22\\n\x22,\x22(every? (fn [t] (or (-\x3e t :info :const) (and (\x3d :const (:op t)) ((some-fn number? string? char?) (:form t))))) (apply concat tests))\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case\x22,\x22case\x22,1143702196),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),v,new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),nodes,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),(function (op,env,p__36284,name,_){\nvar vec__36287 \x3d p__36284;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(0),null);\nvar throw_form \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(1),null);\nvar form \x3d vec__36287;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too few arguments to throw, throw expects a single Error instance\x22);\n} else {\nif(((2) \x3c cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to throw, throw expects a single Error instance\x22);\n} else {\n}\n}\n\nvar throw_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36297 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36298 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36298);\n\ntry{var G__36300 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36301 \x3d throw_form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36300,G__36301) : cljs.analyzer.analyze.call(null,G__36300,G__36301));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36297);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22throw\x22,\x22throw\x22,-1044625833),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),throw_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),(function (op,env,p__36324,name,_){\nvar vec__36327 \x3d p__36324;\nvar seq__36328 \x3d cljs.core.seq(vec__36327);\nvar first__36329 \x3d cljs.core.first(seq__36328);\nvar seq__36328__$1 \x3d cljs.core.next(seq__36328);\nvar ___$1 \x3d first__36329;\nvar body \x3d seq__36328__$1;\nvar form \x3d vec__36327;\nvar catchenv \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),(function (p1__36307_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),p1__36307_SHARP_)){\nreturn new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105);\n} else {\nreturn p1__36307_SHARP_;\n}\n}));\nvar catch_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36309_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36309_SHARP_),new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null));\n}));\nvar default_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(catch_QMARK_,(function (p1__36312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(p1__36312_SHARP_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\nvar finally_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36313_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36313_SHARP_),new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null));\n}));\nvar map__36334 \x3d (function (){var parser \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),body,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),null,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),null], null);\nwhile(true){\nif(cljs.core.seq_QMARK_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser))){\nvar vec__36377 \x3d new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser);\nvar seq__36378 \x3d cljs.core.seq(vec__36377);\nvar first__36379 \x3d cljs.core.first(seq__36378);\nvar seq__36378__$1 \x3d cljs.core.next(seq__36378);\nvar form__$1 \x3d first__36379;\nvar forms_STAR_ \x3d seq__36378__$1;\nvar parser_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms_STAR_);\nvar G__36383 \x3d new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__36383__$1 \x3d (((G__36383 instanceof cljs.core.Keyword))?G__36383.fqn:null);\nswitch (G__36383__$1) {\ncase \x22start\x22:\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38773 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22catches\x22,\x22catches\x22,-1478797617));\nparser \x3d G__38773;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38774 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38774;\ncontinue;\n} else {\nvar G__38775 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),cljs.core.conj,form__$1);\nparser \x3d G__38775;\ncontinue;\n\n}\n}\n\nbreak;\ncase \x22catches\x22:\nif(cljs.core.truth_(default_QMARK_(form__$1))){\nvar G__38776 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], 0));\nparser \x3d G__38776;\ncontinue;\n} else {\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38777 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138)], null),cljs.core.conj,form__$1);\nparser \x3d G__38777;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38780;\ncontinue;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid try form\x22);\n\n}\n}\n}\n\nbreak;\ncase \x22finally\x22:\nvar G__38783 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188)], 0));\nparser \x3d G__38783;\ncontinue;\n\nbreak;\ncase \x22done\x22:\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Unexpected form after finally\x22);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36383__$1)].join(\x27\x27)));\n\n}\n} else {\nreturn parser;\n}\nbreak;\n}\n})();\nvar map__36334__$1 \x3d cljs.core.__destructure_map(map__36334);\nvar body__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar cblocks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138));\nvar dblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381));\nvar fblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426));\nvar finally$ \x3d ((cljs.core.seq(fblock))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var _STAR_recur_frames_STAR__orig_val__36397 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36398 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36398);\n\ntry{var G__36399 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36400 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),cljs.core.rest(fblock))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36399,G__36400) : cljs.analyzer.analyze.call(null,G__36399,G__36400));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36397);\n}})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true):null);\nvar e \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.seq(cblocks);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn dblock;\n}\n})())?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22e\x22):null);\nvar default$ \x3d (function (){var temp__5823__auto__ \x3d dblock;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36401 \x3d temp__5823__auto__;\nvar seq__36402 \x3d cljs.core.seq(vec__36401);\nvar first__36403 \x3d cljs.core.first(seq__36402);\nvar seq__36402__$1 \x3d cljs.core.next(seq__36402);\nvar ___$2 \x3d first__36403;\nvar first__36403__$1 \x3d cljs.core.first(seq__36402__$1);\nvar seq__36402__$2 \x3d cljs.core.next(seq__36402__$1);\nvar ___$3 \x3d first__36403__$1;\nvar first__36403__$2 \x3d cljs.core.first(seq__36402__$2);\nvar seq__36402__$3 \x3d cljs.core.next(seq__36402__$2);\nvar name__$1 \x3d first__36403__$2;\nvar cb \x3d seq__36402__$3;\nreturn 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0))));\n} else {\nreturn 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,\x22throw\x22,\x22throw\x22,595905694,null),null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))));\n}\n})();\nvar cblock \x3d ((cljs.core.seq(cblocks))?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(\x22cljs.core\x22,\x22cond\x22,\x22cljs.core/cond\x22,2005388338,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__36412){\nvar vec__36413 \x3d p__36412;\nvar seq__36414 \x3d cljs.core.seq(vec__36413);\nvar first__36415 \x3d cljs.core.first(seq__36414);\nvar seq__36414__$1 \x3d cljs.core.next(seq__36414);\nvar ___$2 \x3d first__36415;\nvar first__36415__$1 \x3d cljs.core.first(seq__36414__$1);\nvar seq__36414__$2 \x3d cljs.core.next(seq__36414__$1);\nvar type \x3d first__36415__$1;\nvar first__36415__$2 \x3d cljs.core.first(seq__36414__$2);\nvar seq__36414__$3 \x3d cljs.core.next(seq__36414__$2);\nvar name__$1 \x3d first__36415__$2;\nvar cb \x3d seq__36414__$3;\nif(cljs.core.truth_(name__$1)){\nif(cljs.core.not(cljs.core.namespace(name__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t qualify symbol in catch\x22,\x22\\n\x22,\x22(not (namespace name))\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn 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,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(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),null,(1),null)),(new cljs.core.List(null,type,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,e,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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0)))),null,(1),null))))));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cblocks], 0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,(1),null)),(new cljs.core.List(null,default$,null,(1),null))], 0)))):default$);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(catchenv);\nvar locals__$1 \x3d (cljs.core.truth_(e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(e,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(e,env),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null)):locals);\nvar catch$ \x3d (cljs.core.truth_(cblock)?(function (){var _STAR_recur_frames_STAR__orig_val__36423 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36424 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36424);\n\ntry{var G__36428 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(catchenv,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1);\nvar G__36429 \x3d cblock;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36428,G__36429) : cljs.analyzer.analyze.call(null,G__36428,G__36429));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36423);\n}})():null);\nvar try$ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36432 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36433 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36433);\n\ntry{var G__36436 \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d e;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn finally$;\n}\n})())?catchenv:env);\nvar G__36437 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body__$1)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36436,G__36437) : cljs.analyzer.analyze.call(null,G__36436,G__36437));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36432);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22try\x22,\x22try\x22,1380742522),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(try$,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705),finally$,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524),catch$,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),(cljs.core.truth_(catch$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null):null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(finally$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], null):null)], 0)))], null);\n}));\ncljs.analyzer.valid_proto \x3d (function cljs$analyzer$valid_proto(x){\nif((x instanceof cljs.core.Symbol)){\nreturn x;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.elide_env \x3d (function cljs$analyzer$elide_env(env,ast,opts){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235));\n});\ncljs.analyzer.replace_env_pass \x3d (function cljs$analyzer$replace_env_pass(new_env){\nreturn (function (env,ast,opts){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new_env);\n});\n});\ncljs.analyzer.ast_children \x3d (function cljs$analyzer$ast_children(ast){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (c){\nvar g \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast,c);\nif(cljs.core.vector_QMARK_(g)){\nreturn g;\n} else {\nif(cljs.core.truth_(g)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null);\n} else {\nreturn null;\n}\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)], 0));\n});\ncljs.analyzer.constant_value_QMARK_ \x3d (function cljs$analyzer$constant_value_QMARK_(p__36477){\nvar map__36480 \x3d p__36477;\nvar map__36480__$1 \x3d cljs.core.__destructure_map(map__36480);\nvar ast \x3d map__36480__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36480__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar or__5025__auto__ \x3d (function (){var fexpr__36483 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null], null), null);\nreturn (fexpr__36483.cljs$core$IFn$_invoke$arity$1 ? fexpr__36483.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36483.call(null,op));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d (function (){var fexpr__36487 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),null], null), null);\nreturn (fexpr__36487.cljs$core$IFn$_invoke$arity$1 ? fexpr__36487.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36487.call(null,op));\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.every_QMARK_(cljs.analyzer.constant_value_QMARK_,cljs.analyzer.ast_children(ast));\n} else {\nreturn and__5023__auto__;\n}\n}\n});\ncljs.analyzer.const_expr__GT_constant_value \x3d (function cljs$analyzer$const_expr__GT_constant_value(p__36496){\nvar map__36497 \x3d p__36496;\nvar map__36497__$1 \x3d cljs.core.__destructure_map(map__36497);\nvar e \x3d map__36497__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36497__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__36500 \x3d op;\nvar G__36500__$1 \x3d (((G__36500 instanceof cljs.core.Keyword))?G__36500.fqn:null);\nswitch (G__36500__$1) {\ncase \x22quote\x22:\nvar G__36506 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(e);\nreturn (cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1(G__36506) : cljs.analyzer.const_expr__GT_constant_value.call(null,G__36506));\n\nbreak;\ncase \x22const\x22:\nreturn new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612).cljs$core$IFn$_invoke$arity$1(e);\n\nbreak;\ncase \x22map\x22:\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(e)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22set\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22vector\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36500__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.earmuffed_QMARK_ \x3d (function cljs$analyzer$earmuffed_QMARK_(sym){\nvar s \x3d cljs.core.name(sym);\nreturn (((((s).length) \x3e (2))) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22*\x22)) \x26\x26 (clojure.string.ends_with_QMARK_(s,\x22*\x22)))));\n});\ncljs.analyzer.core_ns_QMARK_ \x3d (function cljs$analyzer$core_ns_QMARK_(ns_sym){\nvar s \x3d cljs.core.name(ns_sym);\nreturn ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),ns_sym)) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22cljs.\x22)) || (clojure.string.starts_with_QMARK_(s,\x22clojure.\x22)))));\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),(function (op,env,form,_,___$1){\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n} else {\n}\n\nvar pfn \x3d (function() {\nvar G__38791 \x3d null;\nvar G__38791__2 \x3d (function (___$2,sym){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\n});\nvar G__38791__3 \x3d (function (___$2,sym,init){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nvar G__38791__4 \x3d (function (___$2,sym,doc,init){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nG__38791 \x3d function(___$2,sym,doc,init){\nswitch(arguments.length){\ncase 2:\nreturn G__38791__2.call(this,___$2,sym);\ncase 3:\nreturn G__38791__3.call(this,___$2,sym,doc);\ncase 4:\nreturn G__38791__4.call(this,___$2,sym,doc,init);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38791.cljs$core$IFn$_invoke$arity$2 \x3d G__38791__2;\nG__38791.cljs$core$IFn$_invoke$arity$3 \x3d G__38791__3;\nG__38791.cljs$core$IFn$_invoke$arity$4 \x3d G__38791__4;\nreturn G__38791;\n})()\n;\nvar args \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(pfn,form);\nvar sym \x3d new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(args);\nvar const_QMARK_ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar sym_meta \x3d cljs.core.meta(sym);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar protocol \x3d cljs.analyzer.valid_proto(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)));\nvar dynamic \x3d new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar clash_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27));\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(cljs.core.symbol_identical_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns),ns_name)));\n} else {\nreturn and__5023__auto__;\n}\n})())?(function(){throw cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t def ns-qualified name in namespace \x22,sym_ns].join(\x27\x27))})():(((!((sym_ns \x3d\x3d null))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)):sym\n));\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns], null)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)].join(\x27\x27)),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),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(sym__$1))], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t redefine a constant\x22);\n} else {\n}\n\nvar temp__5829__auto___38792 \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif((temp__5829__auto___38792 \x3d\x3d null)){\n} else {\nvar doc_38793 \x3d temp__5829__auto___38792;\nif(typeof doc_38793 \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n}\n}\n\nif(((cljs.core.not(dynamic)) \x26\x26 (((cljs.analyzer.earmuffed_QMARK_(sym__$1)) \x26\x26 ((!(cljs.analyzer.core_ns_QMARK_(ns_name)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)], null));\n} else {\n}\n\nvar temp__5829__auto___38794 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38794 \x3d\x3d null)){\n} else {\nvar v_38795 \x3d temp__5829__auto___38794;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.analyzer._STAR_allow_redef_STAR_);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta));\nif(and__5023__auto____$2){\nvar and__5023__auto____$3 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.analyzer._STAR_file_defs_STAR_),sym__$1);\n} else {\nreturn and__5023__auto____$3;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(v_38795)], null));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795)),new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null));\n} else {\n}\n}\n\nvar env__$1 \x3d ((((((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))) \x26\x26 (cljs.analyzer.core_name_QMARK_(env,sym__$1)))) || ((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym__$1], null)) \x3d\x3d null))))))?(function (){var ev \x3d cljs.analyzer.resolve_existing_var(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),cljs.core.with_meta(sym__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nvar conj_to_set \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);\nif(cljs.analyzer.public_name_QMARK_(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),sym__$1)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name], null));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym__$1], 0));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,sym__$1);\n})():env);\nvar var_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1));\nvar init_expr \x3d ((cljs.core.contains_QMARK_(args,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)))?(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),sym_meta,((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1)], 0)));\n\nvar _STAR_recur_frames_STAR__orig_val__36583 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36584 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36584);\n\ntry{var _STAR_allow_ns_STAR__orig_val__36585 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36586 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36586);\n\ntry{var G__36587 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36588 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nvar G__36589 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(G__36587,G__36588,G__36589) : cljs.analyzer.analyze.call(null,G__36587,G__36588,G__36589));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36585);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36583);\n}})()\n:null);\nvar fn_var_QMARK_ \x3d (((!((init_expr \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204))));\nvar tag__$1 \x3d ((fn_var_QMARK_)?(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(init_expr);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d tag;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347).cljs$core$IFn$_invoke$arity$1(init_expr);\n}\n}\n})():(cljs.core.truth_(tag)?tag:(cljs.core.truth_(dynamic)?cljs.analyzer.impl.ANY_SYM:new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr)\n)));\nvar export_as \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar export_val \x3d temp__5825__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,export_val)){\nreturn var_name;\n} else {\nreturn export_val;\n}\n} else {\nreturn null;\n}\n})();\nvar doc \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\n}\n})();\nvar temp__5829__auto___38800 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38800 \x3d\x3d null)){\n} else {\nvar v_38801 \x3d temp__5829__auto___38800;\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1)))) \x26\x26 (((new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(v_38801) \x3d\x3d\x3d true) \x26\x26 ((!(fn_var_QMARK_))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),env__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1], null));\n} else {\n}\n}\n\nif((((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null)) \x3d\x3d null)) || (cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta))))){\nif(cljs.core.truth_(cljs.analyzer._STAR_file_defs_STAR_)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_file_defs_STAR_,cljs.core.conj,sym__$1);\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),(function (){var G__36605 \x3d sym_meta;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36605,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),true);\n} else {\nreturn G__36605;\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(sym_meta,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878)], null),(function (f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$1)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))){\nreturn \x22cljs/core.cljs\x22;\n} else {\nreturn f;\n}\n}))], null),(cljs.core.truth_(doc)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc], null):null),(cljs.core.truth_(const_QMARK_)?(function (){var const_expr \x3d (function (){var _STAR_passes_STAR__orig_val__36606 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__36607 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__36607);\n\ntry{var G__36610 \x3d env__$1;\nvar G__36611 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36610,G__36611) : cljs.analyzer.analyze.call(null,G__36610,G__36611));\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__36606);\n}})();\nif(cljs.core.truth_(cljs.analyzer.constant_value_QMARK_(const_expr))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})():null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1),(cljs.core.truth_(protocol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),protocol], null):null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar protocol_symbol \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198),protocol_symbol,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22protocol-info\x22,\x22protocol-info\x22,1471745843).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(protocol_symbol)),new cljs.core.Keyword(null,\x22impls\x22,\x22impls\x22,-1314014853),cljs.core.PersistentHashSet.EMPTY], null);\n} else {\nreturn null;\n}\n})(),((fn_var_QMARK_)?(function (){var params \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36545_SHARP_){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(p1__36545_SHARP_)));\n}),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),cljs.core.not(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(sym_meta)),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556).cljs$core$IFn$_invoke$arity$1(init_expr)], null),(function (){var temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),params,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta),new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838),cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta)))], null);\n} else {\nvar top_fn_meta \x3d temp__5827__auto__;\nreturn top_fn_meta;\n}\n})()], 0));\n})():null),(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta);\n} else {\nreturn and__5023__auto__;\n}\n})())?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),true,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null):null),((((fn_var_QMARK_) \x26\x26 ((!((tag__$1 \x3d\x3d null))))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):(cljs.core.truth_(tag__$1)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null):null))], 0)));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns_name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36631 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)),new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377),true);\nvar G__36633 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36631,G__36633) : cljs.analyzer.analyze.call(null,G__36631,G__36633));\n})(),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516).cljs$core$IFn$_invoke$arity$1(sym_meta)], null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar goog_type \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441),goog_type], null);\n} else {\nreturn null;\n}\n})(),((new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env__$1) \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var-ast\x22,\x22var-ast\x22,1200379319),cljs.analyzer.var_ast(env__$1,sym__$1)], null):null),(function (){var temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar test \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),(function (){var G__36638 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36639 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36638,G__36639) : cljs.analyzer.analyze.call(null,G__36638,G__36639));\n})()], null);\n}\n})(),(((!((tag__$1 \x3d\x3d null))))?((fn_var_QMARK_)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null)):null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),(((!((export_as \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590),export_as], null):null),(((!((init_expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null)], null))], 0));\n}));\ncljs.analyzer.analyze_fn_method_param \x3d (function cljs$analyzer$analyze_fn_method_param(env){\nreturn (function (p__36646,p__36647){\nvar vec__36648 \x3d p__36646;\nvar locals \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(1),null);\nvar vec__36651 \x3d p__36647;\nvar arg_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(1),null);\nif(cljs.core.truth_(cljs.core.namespace(name))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t use qualified name as parameter: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar column \x3d cljs.analyzer.get_col(name,env);\nvar nmeta \x3d cljs.core.meta(name);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(nmeta);\nvar shadow__$1 \x3d (((!((locals \x3d\x3d null))))?cljs.analyzer.handle_symbol_local(name,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(name) : locals.call(null,name))):null);\nvar env__$1 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], 0));\nvar param \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,column,line,arg_id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,tag,shadow__$1,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837)]);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name,param),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(params,param)], null);\n});\n});\ncljs.analyzer.analyze_fn_method_body \x3d (function cljs$analyzer$analyze_fn_method_body(env,form,recur_frames){\nvar _STAR_recur_frames_STAR__orig_val__36674 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36675 \x3d recur_frames;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36675);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze.call(null,env,form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36674);\n}});\ncljs.analyzer.analyze_fn_method \x3d (function cljs$analyzer$analyze_fn_method(env,locals,form,type,analyze_body_QMARK_){\nvar param_names \x3d cljs.core.first(form);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar param_names__$1 \x3d cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar body \x3d cljs.core.next(form);\nvar step \x3d cljs.analyzer.analyze_fn_method_param(env);\nvar step_init \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [locals,cljs.core.PersistentVector.EMPTY], null);\nvar vec__36681 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,step_init,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,param_names__$1));\nvar locals__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(1),null);\nvar params_SINGLEQUOTE_ \x3d ((variadic \x3d\x3d\x3d true)?cljs.core.butlast(params):params);\nvar fixed_arity \x3d cljs.core.count(params_SINGLEQUOTE_);\nvar recur_frame \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY)], null);\nvar recur_frames \x3d cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_);\nvar body_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1], 0));\nvar body_form \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body)));\nvar expr \x3d (cljs.core.truth_(analyze_body_QMARK_)?cljs.analyzer.analyze_fn_method_body(body_env,body_form,recur_frames):null);\nvar recurs \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(recur_frame));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),variadic,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),fixed_arity,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22recurs\x22,\x22recurs\x22,-1959309309),recurs], null),(((!((expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235)], null)], null))], 0));\n});\ncljs.analyzer.fn_name_var \x3d (function cljs$analyzer$fn_name_var(env,locals,name){\nif((!((name \x3d\x3d null)))){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar fn_scope \x3d new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22fn-self-name\x22,\x22fn-self-name\x22,1461143531),true,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),fn_scope,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null)], null);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nvar ret_tag \x3d (((!((tag \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag], null):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([name_var,ret_tag], 0));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_fn_methods_pass2_STAR_ \x3d (function cljs$analyzer$analyze_fn_methods_pass2_STAR_(menv,locals,type,meths){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36696_SHARP_){\nreturn cljs.analyzer.analyze_fn_method(menv,locals,p1__36696_SHARP_,type,true);\n}),meths);\n});\ncljs.analyzer.analyze_fn_methods_pass2 \x3d (function cljs$analyzer$analyze_fn_methods_pass2(menv,locals,type,meths){\nreturn cljs.analyzer.analyze_fn_methods_pass2_STAR_(menv,locals,type,meths);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(function (op,env,p__36698,name,_){\nvar vec__36699 \x3d p__36698;\nvar seq__36700 \x3d cljs.core.seq(vec__36699);\nvar first__36701 \x3d cljs.core.first(seq__36700);\nvar seq__36700__$1 \x3d cljs.core.next(seq__36700);\nvar ___$1 \x3d first__36701;\nvar args \x3d seq__36700__$1;\nvar form \x3d vec__36699;\nvar named_fn_QMARK_ \x3d (cljs.core.first(args) instanceof cljs.core.Symbol);\nvar vec__36702 \x3d ((named_fn_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,cljs.core.seq(args)], null));\nvar name__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(0),null);\nvar meths \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(1),null);\nvar meths__$1 \x3d ((cljs.core.vector_QMARK_(cljs.core.first(meths)))?(new cljs.core.List(null,meths,null,(1),null)):meths);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d cljs.analyzer.fn_name_var(env,locals,name__$1);\nvar env__$1 \x3d (((!((name__$1 \x3d\x3d null))))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859)], null),cljs.core.conj,name_var):env);\nvar locals__$1 \x3d (((((!((locals \x3d\x3d null)))) \x26\x26 (named_fn_QMARK_)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name__$1,name_var):locals);\nvar form_meta \x3d cljs.core.meta(form);\nvar type \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_impl \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_inline \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar menv \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((function (){var G__36705 \x3d env__$1;\nif((cljs.core.count(meths__$1) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36705,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n} else {\nreturn G__36705;\n}\n})(),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),proto_impl,new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),proto_inline], null)], 0));\nvar methods$ \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36697_SHARP_){\nvar _STAR_allow_ns_STAR__orig_val__36706 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36707 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36707);\n\ntry{return cljs.analyzer.analyze_fn_method(menv,locals__$1,p1__36697_SHARP_,type,(name__$1 \x3d\x3d null));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36706);\n}}),meths__$1);\nvar mfa \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869)),cljs.core.max,(0),methods$);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),methods$));\nvar locals__$2 \x3d ((named_fn_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(locals__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name__$1], null),cljs.core.assoc,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([variadic,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),mfa,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),methods$)], 0)):locals__$1);\nvar methods$__$1 \x3d (((!((name__$1 \x3d\x3d null))))?(function (){var _STAR_allow_ns_STAR__orig_val__36708 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36709 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36709);\n\ntry{return cljs.analyzer.analyze_fn_methods_pass2(menv,locals__$2,type,meths__$1);\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36708);\n}})():cljs.core.vec(methods$));\nvar form__$1 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(form,cljs.core.dissoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742));\nvar js_doc \x3d ((variadic \x3d\x3d\x3d true)?\x22@param {...*} var_args\x22:null);\nvar children \x3d (((!((name_var \x3d\x3d null))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null));\nvar inferred_ret_tag \x3d (function (){var inferred_tags \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.infer_tag,env__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),methods$__$1));\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,inferred_tags))){\nreturn cljs.core.first(inferred_tags);\n} else {\nreturn null;\n}\n})();\nvar ast \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),new cljs.core.Keyword(null,\x22recur-frames\x22,\x22recur-frames\x22,-307205196),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516)],[children,proto_inline,name_var,cljs.analyzer._STAR_loop_lets_STAR_,inferred_ret_tag,proto_impl,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),env__$1,variadic,methods$__$1,cljs.analyzer._STAR_recur_frames_STAR_,mfa,form__$1,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246).cljs$core$IFn$_invoke$arity$1(env__$1),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_doc], null)]),(((!((name_var \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),name_var], null):null)], 0));\nvar variadic_methods_38806 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))),methods$__$1);\nvar variadic_params_38807 \x3d (((cljs.core.count(variadic_methods_38806) \x3e (0)))?cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(variadic_methods_38806,(0)))):(0));\nvar param_counts_38808 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.count,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235))),methods$__$1);\nif(((1) \x3c cljs.core.count(variadic_methods_38806))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif((!((((variadic_params_38807 \x3d\x3d\x3d (0))) || ((variadic_params_38807 \x3d\x3d\x3d ((1) + mfa))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(param_counts_38808),param_counts_38808)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(ast) : cljs.analyzer.analyze_wrap_meta.call(null,ast));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),(function (op,env,p__36710,name,_){\nvar vec__36711 \x3d p__36710;\nvar seq__36712 \x3d cljs.core.seq(vec__36711);\nvar first__36713 \x3d cljs.core.first(seq__36712);\nvar seq__36712__$1 \x3d cljs.core.next(seq__36712);\nvar ___$1 \x3d first__36713;\nvar first__36713__$1 \x3d cljs.core.first(seq__36712__$1);\nvar seq__36712__$2 \x3d cljs.core.next(seq__36712__$1);\nvar bindings \x3d first__36713__$1;\nvar exprs \x3d seq__36712__$2;\nvar form \x3d vec__36711;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar n__GT_fexpr \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.second),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings)));\nvar names \x3d cljs.core.keys(n__GT_fexpr);\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar vec__36714 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36720,n){\nvar vec__36721 \x3d p__36720;\nvar map__36724 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(0),null);\nvar map__36724__$1 \x3d cljs.core.__destructure_map(map__36724);\nvar env__$1 \x3d map__36724__$1;\nvar locals \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36724__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(1),null);\nvar ret_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(n));\nvar fexpr \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36725 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36726 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36726);\n\ntry{var G__36727 \x3d env__$1;\nvar G__36728 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(n) : n__GT_fexpr.call(null,n));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36727,G__36728) : cljs.analyzer.analyze.call(null,G__36727,G__36728));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36725);\n}})();\nvar be \x3d (function (){var G__36729 \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[n,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,cljs.analyzer.get_col(n,env__$1),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),cljs.analyzer.get_line(n,env__$1),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),n,true,cljs.analyzer.handle_symbol_local(n,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(n) : locals.call(null,n))),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354)]);\nif(cljs.core.truth_(ret_tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36729,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag);\n} else {\nreturn G__36729;\n}\n})();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),n], null),be),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [env,cljs.core.PersistentVector.EMPTY], null),names);\nvar meth_env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(0),null);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(1),null);\nvar meth_env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar vec__36717 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36730,p__36731){\nvar vec__36732 \x3d p__36730;\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(1),null);\nvar map__36735 \x3d p__36731;\nvar map__36735__$1 \x3d cljs.core.__destructure_map(map__36735);\nvar be \x3d map__36735__$1;\nvar name__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar shadow__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803));\nvar env__$1 \x3d cljs.core.assoc_in(meth_env__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),shadow__$1);\nvar fexpr \x3d (function (){var G__36737 \x3d env__$1;\nvar G__36738 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(name__$1) : n__GT_fexpr.call(null,name__$1));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36737,G__36738) : cljs.analyzer.analyze.call(null,G__36737,G__36738));\n})();\nvar be_SINGLEQUOTE_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(be,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),fexpr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], 0));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),be_SINGLEQUOTE_),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes__$1,be_SINGLEQUOTE_)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [meth_env__$1,cljs.core.PersistentVector.EMPTY], null),bes);\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(1),null);\nvar expr \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36743 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env__$2,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36744 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36743,G__36744) : cljs.analyzer.analyze.call(null,G__36743,G__36744));\n})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354),new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),expr,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null);\n}));\ncljs.analyzer.analyze_do_statements_STAR_ \x3d (function cljs$analyzer$analyze_do_statements_STAR_(env,exprs){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36747_SHARP_){\nvar G__36751 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36752 \x3d p1__36747_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36751,G__36752) : cljs.analyzer.analyze.call(null,G__36751,G__36752));\n}),cljs.core.butlast(exprs));\n});\ncljs.analyzer.analyze_do_statements \x3d (function cljs$analyzer$analyze_do_statements(env,exprs){\nvar _STAR_recur_frames_STAR__orig_val__36758 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36759 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36759);\n\ntry{return cljs.analyzer.analyze_do_statements_STAR_(env,exprs);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36758);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),(function (op,env,p__36763,_,___$1){\nvar vec__36765 \x3d p__36763;\nvar seq__36766 \x3d cljs.core.seq(vec__36765);\nvar first__36767 \x3d cljs.core.first(seq__36766);\nvar seq__36766__$1 \x3d cljs.core.next(seq__36766);\nvar ___$2 \x3d first__36767;\nvar exprs \x3d seq__36766__$1;\nvar form \x3d vec__36765;\nvar statements \x3d cljs.analyzer.analyze_do_statements(env,exprs);\nif((cljs.core.count(exprs) \x3c\x3d (1))){\nvar ret \x3d (function (){var G__36777 \x3d env;\nvar G__36778 \x3d cljs.core.first(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36777,G__36778) : cljs.analyzer.analyze.call(null,G__36777,G__36778));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n} else {\nvar ret_env \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105)));\nvar ret \x3d (function (){var G__36781 \x3d ret_env;\nvar G__36782 \x3d cljs.core.last(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36781,G__36782) : cljs.analyzer.analyze.call(null,G__36781,G__36782));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\n}));\ncljs.analyzer.analyze_let_binding_init \x3d (function cljs$analyzer$analyze_let_binding_init(env,init,loop_lets){\nvar _STAR_loop_lets_STAR__orig_val__36793 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_loop_lets_STAR__temp_val__36794 \x3d loop_lets;\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36794);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.analyze.call(null,env,init));\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36793);\n}});\ncljs.analyzer.get_let_tag \x3d (function cljs$analyzer$get_let_tag(name,init_expr){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(init_expr));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.analyze_let_bindings_STAR_ \x3d (function cljs$analyzer$analyze_let_bindings_STAR_(encl_env,bindings,op){\nvar bes \x3d cljs.core.PersistentVector.EMPTY;\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(encl_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar bindings__$1 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings));\nwhile(true){\nvar temp__5827__auto__ \x3d cljs.core.first(bindings__$1);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [bes,env], null);\n} else {\nvar vec__36847 \x3d temp__5827__auto__;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(1),null);\nif((((!((cljs.core.namespace(name) \x3d\x3d null)))) || (goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22.\x22)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,[\x22Invalid local name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar init_expr \x3d cljs.analyzer.analyze_let_binding_init(env,init,cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_));\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar col \x3d cljs.analyzer.get_col(name,env);\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,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,\x22locals\x22,\x22locals\x22,535295783),name], null)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar be \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null),init_expr,name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col], null),col,line,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,cljs.analyzer.get_let_tag(name,init_expr),shadow__$1,op]);\nvar be__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([be,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(((function (bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__){\nreturn (function (p1__36808_SHARP_){\nreturn cljs.core.select_keys(p1__36808_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null));\n});})(bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__))\n,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))], null)], 0)):be);\nvar G__38812 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be__$1);\nvar G__38813 \x3d cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name], null),be__$1);\nvar G__38814 \x3d cljs.core.next(bindings__$1);\nbes \x3d G__38812;\nenv \x3d G__38813;\nbindings__$1 \x3d G__38814;\ncontinue;\n}\nbreak;\n}\n});\ncljs.analyzer.analyze_let_bindings \x3d (function cljs$analyzer$analyze_let_bindings(encl_env,bindings,op){\nvar _STAR_recur_frames_STAR__orig_val__36873 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36874 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36874);\n\ntry{return cljs.analyzer.analyze_let_bindings_STAR_(encl_env,bindings,op);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36873);\n}});\ncljs.analyzer.analyze_let_body_STAR_ \x3d (function cljs$analyzer$analyze_let_body_STAR_(env,context,exprs){\nvar G__36876 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36877 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36876,G__36877) : cljs.analyzer.analyze.call(null,G__36876,G__36877));\n});\ncljs.analyzer.analyze_let_body \x3d (function cljs$analyzer$analyze_let_body(env,context,exprs,recur_frames,loop_lets){\nvar _STAR_recur_frames_STAR__orig_val__36888 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_loop_lets_STAR__orig_val__36889 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36890 \x3d recur_frames;\nvar _STAR_loop_lets_STAR__temp_val__36891 \x3d loop_lets;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36890);\n\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36891);\n\ntry{return cljs.analyzer.analyze_let_body_STAR_(env,context,exprs);\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36889);\n\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36888);\n}});\ncljs.analyzer.analyze_let \x3d (function cljs$analyzer$analyze_let(encl_env,p__36903,is_loop,widened_tags){\nwhile(true){\nvar vec__36905 \x3d p__36903;\nvar seq__36906 \x3d cljs.core.seq(vec__36905);\nvar first__36907 \x3d cljs.core.first(seq__36906);\nvar seq__36906__$1 \x3d cljs.core.next(seq__36906);\nvar _ \x3d first__36907;\nvar first__36907__$1 \x3d cljs.core.first(seq__36906__$1);\nvar seq__36906__$2 \x3d cljs.core.next(seq__36906__$1);\nvar bindings \x3d first__36907__$1;\nvar exprs \x3d seq__36906__$2;\nvar form \x3d vec__36905;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(encl_env);\nvar op \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849):new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701));\nvar bindings__$1 \x3d (cljs.core.truth_(widened_tags)?cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form){\nreturn (function (p__36918,widened_tag){\nvar vec__36919 \x3d p__36918;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),widened_tag),init], null);\n});})(encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form))\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings),widened_tags], 0))):bindings);\nvar vec__36909 \x3d cljs.analyzer.analyze_let_bindings((function (){var G__36927 \x3d encl_env;\nif(is_loop \x3d\x3d\x3d true){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36927,new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),true);\n} else {\nreturn G__36927;\n}\n})(),bindings__$1,op);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(0),null);\nvar env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(1),null);\nvar recur_frame \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),bes))], null):null);\nvar recur_frames \x3d (cljs.core.truth_(recur_frame)?cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_):cljs.analyzer._STAR_recur_frames_STAR_);\nvar loop_lets \x3d ((is_loop \x3d\x3d\x3d true)?cljs.analyzer._STAR_loop_lets_STAR_:(((!((cljs.analyzer._STAR_loop_lets_STAR_ \x3d\x3d null))))?cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_):null));\nvar warn_acc \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(widened_tags);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nvar expr \x3d (cljs.core.truth_(warn_acc)?(function (){var _STAR_cljs_warning_handlers_STAR__orig_val__36940 \x3d cljs.analyzer._STAR_cljs_warning_handlers_STAR_;\nvar _STAR_cljs_warning_handlers_STAR__temp_val__36941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.accumulating_warning_handler(warn_acc)], null);\n(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__temp_val__36941);\n\ntry{return cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets);\n}finally {(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__orig_val__36940);\n}})():cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets));\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null);\nvar nil__GT_any \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.not(widened_tags)) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(nil__GT_any,cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame))),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(nil__GT_any,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),bes))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__38819 \x3d encl_env;\nvar G__38820 \x3d form;\nvar G__38821 \x3d is_loop;\nvar G__38822 \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame));\nencl_env \x3d G__38819;\np__36903 \x3d G__38820;\nis_loop \x3d G__38821;\nwidened_tags \x3d G__38822;\ncontinue;\n} else {\nif(cljs.core.truth_(warn_acc)){\ncljs.analyzer.replay_accumulated_warnings(warn_acc);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),encl_env,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\nbreak;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,false,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,true,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),(function (op,env,p__36968,_,___$1){\nvar vec__36973 \x3d p__36968;\nvar seq__36974 \x3d cljs.core.seq(vec__36973);\nvar first__36975 \x3d cljs.core.first(seq__36974);\nvar seq__36974__$1 \x3d cljs.core.next(seq__36974);\nvar ___$2 \x3d first__36975;\nvar exprs \x3d seq__36974__$1;\nvar form \x3d vec__36973;\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar frame \x3d cljs.core.first(cljs.analyzer._STAR_recur_frames_STAR_);\nvar add_implicit_target_object_QMARK_ \x3d (function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs),(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)) - (1)));\n} else {\nreturn and__5023__auto__;\n}\n})();\nvar exprs__$1 \x3d (function (){var G__36983 \x3d exprs;\nif(cljs.core.truth_(add_implicit_target_object_QMARK_)){\nreturn cljs.core.cons(null,G__36983);\n} else {\nreturn G__36983;\n}\n})();\nvar exprs__$2 \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36991 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36992 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36992);\n\ntry{return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36965_SHARP_){\nvar G__36995 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36996 \x3d p1__36965_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36995,G__36996) : cljs.analyzer.analyze.call(null,G__36995,G__36996));\n}),exprs__$1));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36991);\n}})();\nif(cljs.core.truth_(frame)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t recur here\x22);\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs__$2),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22recur argument count mismatch, expected: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame))),\x22 args, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(exprs__$2))].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(add_implicit_target_object_QMARK_);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(cljs.core.first(exprs__$2))], null));\n} else {\n}\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(frame),true);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(frame),(function (tags){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tag,expr){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724).cljs$core$IFn$_invoke$arity$1(expr))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr));\n}\n}),tags,exprs__$2);\n}));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),new cljs.core.Keyword(null,\x22frame\x22,\x22frame\x22,-1711082588),frame,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094),exprs__$2,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094)], null)], 0));\n}));\ncljs.analyzer.analyze_const \x3d (function cljs$analyzer$analyze_const(env,form){\nvar map__37020 \x3d (function (){var G__37021 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621),true);\nvar G__37022 \x3d form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__37021,G__37022) : cljs.analyzer.analyze.call(null,G__37021,G__37022));\n})();\nvar map__37020__$1 \x3d cljs.core.__destructure_map(map__37020);\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37020__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(function (_,env,p__37023,___$1,___$2){\nvar vec__37024 \x3d p__37023;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(1),null);\nvar form \x3d vec__37024;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to quote\x22);\n} else {\n}\n\nvar expr \x3d cljs.analyzer.analyze_const(env,x);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n}));\ncljs.analyzer.js_prim_ctor__GT_tag \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(\x22js\x22,\x22Object\x22,\x22js/Object\x22,61215323,null),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(\x22js\x22,\x22String\x22,\x22js/String\x22,-2070054036,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22js\x22,\x22Array\x22,\x22js/Array\x22,-423508366,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(\x22js\x22,\x22Number\x22,\x22js/Number\x22,-508133572,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22js\x22,\x22Function\x22,\x22js/Function\x22,-749892063,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(\x22js\x22,\x22Boolean\x22,\x22js/Boolean\x22,1661145260,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n/**\n * Test whether a tag is a constructor for a JS primitive\n */\ncljs.analyzer.prim_ctor_QMARK_ \x3d (function cljs$analyzer$prim_ctor_QMARK_(t){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.js_prim_ctor__GT_tag,t);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),(function (_,env,p__37035,___$1,___$2){\nvar vec__37036 \x3d p__37035;\nvar seq__37037 \x3d cljs.core.seq(vec__37036);\nvar first__37038 \x3d cljs.core.first(seq__37037);\nvar seq__37037__$1 \x3d cljs.core.next(seq__37037);\nvar ___$3 \x3d first__37038;\nvar first__37038__$1 \x3d cljs.core.first(seq__37037__$1);\nvar seq__37037__$2 \x3d cljs.core.next(seq__37037__$1);\nvar ctor \x3d first__37038__$1;\nvar args \x3d seq__37037__$2;\nvar form \x3d vec__37036;\nvar _STAR_recur_frames_STAR__orig_val__37039 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37040 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37040);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ctorexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,ctor) : cljs.analyzer.analyze.call(null,enve,ctor));\nvar ctor_var \x3d (cljs.core.truth_((function (){var G__37042 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ctorexpr);\nvar fexpr__37041 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__37041.cljs$core$IFn$_invoke$arity$1 ? fexpr__37041.cljs$core$IFn$_invoke$arity$1(G__37042) : fexpr__37041.call(null,G__37042));\n})())?cljs.analyzer.resolve_existing_var(env,ctor):null);\nvar record_args \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((3),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,null) : cljs.analyzer.analyze.call(null,enve,null))):null);\nvar argexprs \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37034_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__37034_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__37034_SHARP_));\n}),args)),record_args);\nvar known_num_fields \x3d new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024).cljs$core$IFn$_invoke$arity$1(ctor_var);\nvar argc \x3d cljs.core.count(args);\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)))) \x26\x26 ((((!((known_num_fields \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(known_num_fields,argc);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$2 \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) + known_num_fields),argc);\n} else {\nreturn and__5023__auto____$2;\n}\n}\n})())))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802),ctor], null));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),ctorexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),(function (){var tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nif(((cljs.analyzer.js_tag_QMARK_(tag)) \x26\x26 ((!(cljs.analyzer.prim_ctor_QMARK_(tag)))))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nvar or__5025__auto__ \x3d (cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1(name) : cljs.analyzer.js_prim_ctor__GT_tag.call(null,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn name;\n}\n}\n})()], null);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37039);\n}}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),(function (_,env,p__37063,___$1,___$2){\nvar vec__37066 \x3d p__37063;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(0),null);\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(1),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(2),null);\nvar alt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(3),null);\nvar form \x3d vec__37066;\nvar vec__37070 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((4),cljs.core.count(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [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,\x22.\x22,\x22.\x22,1975675962,null),null,(1),null)),(new cljs.core.List(null,target,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,val,null,(1),null))], 0)))),alt], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,val], null));\nvar target__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(0),null);\nvar val__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(1),null);\nvar _STAR_recur_frames_STAR__orig_val__37081 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37082 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37082);\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__37088 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__37089 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__37089);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar texpr \x3d (((target__$1 instanceof cljs.core.Symbol))?(function (){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),val__$1));\n} else {\n}\n}\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),target__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! a constant\x22);\n} else {\n}\n\nvar local_38832 \x3d cljs.analyzer.handle_symbol_local(target__$1,(function (){var G__37100 \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nreturn (target__$1.cljs$core$IFn$_invoke$arity$1 ? target__$1.cljs$core$IFn$_invoke$arity$1(G__37100) : target__$1.call(null,G__37100));\n})());\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (local_38832 \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(local_38832);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! local var or non-mutable field\x22);\n}\n\nreturn (cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze_symbol.call(null,enve,target__$1));\n})()\n:((cljs.core.seq_QMARK_(target__$1))?(function (){var texpr \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22extend-type\x22,\x22extend-type\x22,-517175606).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(target__$1)))?(function (){var _STAR_cljs_warnings_STAR__orig_val__37103 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__37104 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),false);\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__37104);\n\ntry{return (cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__37103);\n}})():(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(texpr))){\nreturn texpr;\n} else {\nreturn null;\n}\n})():null)\n);\nvar vexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,val__$1) : cljs.analyzer.analyze.call(null,enve,val__$1));\nif(cljs.core.seq_QMARK_(target__$1)){\nvar sym_38833 \x3d (function (){var G__37106 \x3d target__$1;\nif((G__37106 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.second(G__37106);\n}\n})();\nvar meta_38834 \x3d cljs.core.meta(sym_38833);\nvar temp__5825__auto___38835 \x3d (function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(vexpr));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(meta_38834);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___38835)){\nvar info_38836 \x3d temp__5825__auto___38835;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym_38833,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(info_38836,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null)),cljs.core.select_keys(cljs.core.first(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(vexpr)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0))], 0));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(texpr)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22set! target must be a field or a symbol naming a var\x22);\n}\n\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env))) \x26\x26 ((!(((function (){var fexpr__37110 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null),\x22null\x22], null), null);\nreturn (fexpr__37110.cljs$core$IFn$_invoke$arity$1 ? fexpr__37110.cljs$core$IFn$_invoke$arity$1(target__$1) : fexpr__37110.call(null,target__$1));\n})() \x3d\x3d null)))))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22no-op\x22,\x22no-op\x22,-93046065)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set!\x22,\x22set!\x22,-1389817006),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),texpr,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),vexpr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612)], null)], null);\n\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__37088);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37081);\n}}));\ncljs.analyzer.foreign_dep_QMARK_ \x3d (function cljs$analyzer$foreign_dep_QMARK_(dep){\nvar js_index \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\nvar temp__5827__auto__ \x3d cljs.core.find(js_index,cljs.core.name(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep))));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar vec__37121 \x3d temp__5827__auto__;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(0),null);\nvar map__37124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(1),null);\nvar map__37124__$1 \x3d cljs.core.__destructure_map(map__37124);\nvar foreign \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37124__$1,new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149));\nreturn foreign;\n}\n});\n/**\n * Given a lib, a namespace, deps, its dependencies, env, an analysis environment\n * and opts, compiler options - analyze all of the dependencies. Required to\n * correctly analyze usage of other namespaces.\n */\ncljs.analyzer.analyze_deps \x3d (function cljs$analyzer$analyze_deps(var_args){\nvar G__37143 \x3d arguments.length;\nswitch (G__37143) {\ncase 3:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3 \x3d (function (lib,deps,env){\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(lib,deps,env,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4 \x3d (function (lib,deps,env,opts){\nvar compiler \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar _STAR_cljs_dep_set_STAR__orig_val__37156 \x3d cljs.analyzer._STAR_cljs_dep_set_STAR_;\nvar _STAR_cljs_dep_set_STAR__temp_val__37157 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_cljs_dep_set_STAR_,lib),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558)], null),cljs.core.conj,lib);\n(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__temp_val__37157);\n\ntry{if(cljs.core.every_QMARK_((function (p1__37130_SHARP_){\nreturn (!(cljs.core.contains_QMARK_(cljs.analyzer._STAR_cljs_dep_set_STAR_,p1__37130_SHARP_)));\n}),deps)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Circular dependency detected, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 -\x3e \x22,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some(cljs.analyzer._STAR_cljs_dep_set_STAR_,deps)))))].join(\x27\x27),\x22\\n\x22,\x22(every? (fn* [p1__37130#] (not (contains? *cljs-dep-set* p1__37130#))) deps)\x22].join(\x27\x27)));\n}\n\nvar seq__37168 \x3d cljs.core.seq(deps);\nvar chunk__37169 \x3d null;\nvar count__37170 \x3d (0);\nvar i__37171 \x3d (0);\nwhile(true){\nif((i__37171 \x3c count__37170)){\nvar dep \x3d chunk__37169.cljs$core$IIndexed$_nth$arity$2(null,i__37171);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38842 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38843__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38842,cljs.core.name(dep_38843__$1))){\nvar dep_name_38844 \x3d cljs.core.name(dep_38843__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38844,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38843__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38843__$1)], null)));\n}\n}\n\n\nvar G__38850 \x3d seq__37168;\nvar G__38851 \x3d chunk__37169;\nvar G__38852 \x3d count__37170;\nvar G__38853 \x3d (i__37171 + (1));\nseq__37168 \x3d G__38850;\nchunk__37169 \x3d G__38851;\ncount__37170 \x3d G__38852;\ni__37171 \x3d G__38853;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37168);\nif(temp__5825__auto__){\nvar seq__37168__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37168__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37168__$1);\nvar G__38854 \x3d cljs.core.chunk_rest(seq__37168__$1);\nvar G__38855 \x3d c__5548__auto__;\nvar G__38856 \x3d cljs.core.count(c__5548__auto__);\nvar G__38857 \x3d (0);\nseq__37168 \x3d G__38854;\nchunk__37169 \x3d G__38855;\ncount__37170 \x3d G__38856;\ni__37171 \x3d G__38857;\ncontinue;\n} else {\nvar dep \x3d cljs.core.first(seq__37168__$1);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38858 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38859__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38858,cljs.core.name(dep_38859__$1))){\nvar dep_name_38860 \x3d cljs.core.name(dep_38859__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38860,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38859__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38859__$1)], null)));\n}\n}\n\n\nvar G__38861 \x3d cljs.core.next(seq__37168__$1);\nvar G__38862 \x3d null;\nvar G__38863 \x3d (0);\nvar G__38864 \x3d (0);\nseq__37168 \x3d G__38861;\nchunk__37169 \x3d G__38862;\ncount__37170 \x3d G__38863;\ni__37171 \x3d G__38864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}finally {(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__orig_val__37156);\n}}));\n\n(cljs.analyzer.analyze_deps.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.missing_use_QMARK_ \x3d (function cljs$analyzer$missing_use_QMARK_(lib,sym,cenv){\nvar js_lib \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cenv,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.name(lib)], null));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),lib,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150))) \x26\x26 ((((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22group\x22,\x22group\x22,582596132)),new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452))))) \x26\x26 (((cljs.core.not(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22closure-lib\x22,\x22closure-lib\x22,2105917916)))) \x26\x26 ((((!(cljs.analyzer.node_module_dep_QMARK_(lib)))) \x26\x26 ((!(cljs.analyzer.dep_has_global_exports_QMARK_(lib)))))))))));\n});\ncljs.analyzer.missing_rename_QMARK_ \x3d (function cljs$analyzer$missing_rename_QMARK_(sym,cenv){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym__$1,cenv);\n});\ncljs.analyzer.missing_use_macro_QMARK_ \x3d (function cljs$analyzer$missing_use_macro_QMARK_(lib,sym){\nif((lib instanceof cljs.core.Symbol)){\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym) \x3d\x3d null)));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.missing_rename_macro_QMARK_ \x3d (function cljs$analyzer$missing_rename_macro_QMARK_(sym){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym__$1) \x3d\x3d null)));\n});\ncljs.analyzer.missing_uses \x3d (function cljs$analyzer$missing_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37220){\nvar vec__37221 \x3d p__37220;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(1),null);\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym,cenv);\n}),uses));\n});\ncljs.analyzer.missing_renames \x3d (function cljs$analyzer$missing_renames(renames,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37231){\nvar vec__37232 \x3d p__37231;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(1),null);\nreturn cljs.analyzer.missing_rename_QMARK_(qualified_sym,cenv);\n}),renames));\n});\ncljs.analyzer.missing_use_macros \x3d (function cljs$analyzer$missing_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37239){\nvar vec__37240 \x3d p__37239;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(1),null);\nreturn cljs.analyzer.missing_use_macro_QMARK_(lib,sym);\n}),use_macros));\n});\ncljs.analyzer.inferred_use_macros \x3d (function cljs$analyzer$inferred_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37246){\nvar vec__37248 \x3d p__37246;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(1),null);\nreturn cljs.core.not(cljs.analyzer.missing_use_macro_QMARK_(lib,sym));\n}),use_macros));\n});\ncljs.analyzer.inferred_rename_macros \x3d (function cljs$analyzer$inferred_rename_macros(rename_macros,env){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37260){\nvar vec__37261 \x3d p__37260;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(1),null);\nreturn (!(cljs.analyzer.missing_rename_macro_QMARK_(qualified_sym)));\n}),rename_macros));\n});\ncljs.analyzer.check_uses \x3d (function cljs$analyzer$check_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37268 \x3d cljs.core.seq(uses);\nvar chunk__37270 \x3d null;\nvar count__37271 \x3d (0);\nvar i__37272 \x3d (0);\nwhile(true){\nif((i__37272 \x3c count__37271)){\nvar vec__37312 \x3d chunk__37270.cljs$core$IIndexed$_nth$arity$2(null,i__37272);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38869 \x3d seq__37268;\nvar G__38870 \x3d chunk__37270;\nvar G__38871 \x3d count__37271;\nvar G__38872 \x3d (i__37272 + (1));\nseq__37268 \x3d G__38869;\nchunk__37270 \x3d G__38870;\ncount__37271 \x3d G__38871;\ni__37272 \x3d G__38872;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37268);\nif(temp__5825__auto__){\nvar seq__37268__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37268__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37268__$1);\nvar G__38873 \x3d cljs.core.chunk_rest(seq__37268__$1);\nvar G__38874 \x3d c__5548__auto__;\nvar G__38875 \x3d cljs.core.count(c__5548__auto__);\nvar G__38876 \x3d (0);\nseq__37268 \x3d G__38873;\nchunk__37270 \x3d G__38874;\ncount__37271 \x3d G__38875;\ni__37272 \x3d G__38876;\ncontinue;\n} else {\nvar vec__37333 \x3d cljs.core.first(seq__37268__$1);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38877 \x3d cljs.core.next(seq__37268__$1);\nvar G__38878 \x3d null;\nvar G__38879 \x3d (0);\nvar G__38880 \x3d (0);\nseq__37268 \x3d G__38877;\nchunk__37270 \x3d G__38878;\ncount__37271 \x3d G__38879;\ni__37272 \x3d G__38880;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.check_use_macros \x3d (function cljs$analyzer$check_use_macros(var_args){\nvar G__37366 \x3d arguments.length;\nswitch (G__37366) {\ncase 2:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (use_macros,env){\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,null,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3 \x3d (function (use_macros,missing_uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37390_38882 \x3d cljs.core.seq(use_macros);\nvar chunk__37392_38883 \x3d null;\nvar count__37393_38884 \x3d (0);\nvar i__37394_38885 \x3d (0);\nwhile(true){\nif((i__37394_38885 \x3c count__37393_38884)){\nvar vec__37477_38886 \x3d chunk__37392_38883.cljs$core$IIndexed$_nth$arity$2(null,i__37394_38885);\nvar sym_38887 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(0),null);\nvar lib_38888 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38888,sym_38887))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38888,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38887], null)));\n} else {\n}\n\n\nvar G__38891 \x3d seq__37390_38882;\nvar G__38892 \x3d chunk__37392_38883;\nvar G__38893 \x3d count__37393_38884;\nvar G__38894 \x3d (i__37394_38885 + (1));\nseq__37390_38882 \x3d G__38891;\nchunk__37392_38883 \x3d G__38892;\ncount__37393_38884 \x3d G__38893;\ni__37394_38885 \x3d G__38894;\ncontinue;\n} else {\nvar temp__5825__auto___38895 \x3d cljs.core.seq(seq__37390_38882);\nif(temp__5825__auto___38895){\nvar seq__37390_38896__$1 \x3d temp__5825__auto___38895;\nif(cljs.core.chunked_seq_QMARK_(seq__37390_38896__$1)){\nvar c__5548__auto___38897 \x3d cljs.core.chunk_first(seq__37390_38896__$1);\nvar G__38898 \x3d cljs.core.chunk_rest(seq__37390_38896__$1);\nvar G__38899 \x3d c__5548__auto___38897;\nvar G__38900 \x3d cljs.core.count(c__5548__auto___38897);\nvar G__38901 \x3d (0);\nseq__37390_38882 \x3d G__38898;\nchunk__37392_38883 \x3d G__38899;\ncount__37393_38884 \x3d G__38900;\ni__37394_38885 \x3d G__38901;\ncontinue;\n} else {\nvar vec__37514_38902 \x3d cljs.core.first(seq__37390_38896__$1);\nvar sym_38903 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(0),null);\nvar lib_38904 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38904,sym_38903))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38904,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38903], null)));\n} else {\n}\n\n\nvar G__38905 \x3d cljs.core.next(seq__37390_38896__$1);\nvar G__38906 \x3d null;\nvar G__38907 \x3d (0);\nvar G__38908 \x3d (0);\nseq__37390_38882 \x3d G__38905;\nchunk__37392_38883 \x3d G__38906;\ncount__37393_38884 \x3d G__38907;\ni__37394_38885 \x3d G__38908;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.analyzer.check_uses(cljs.analyzer.missing_use_macros(missing_uses,env),env);\n\nreturn cljs.analyzer.inferred_use_macros(missing_uses,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.check_use_macros_inferring_missing \x3d (function cljs$analyzer$check_use_macros_inferring_missing(p__37523,env){\nvar map__37525 \x3d p__37523;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar ast \x3d map__37525__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar missing_uses \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(uses);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_uses(uses,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,uses,cljs.core.keys(missing_uses));\nvar remove_missing_uses \x3d (function (p1__37518_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37518_SHARP_,cljs.core.keys(missing_uses));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),(function (p1__37519_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37519_SHARP_,cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,missing_uses,env)], 0)),cljs.analyzer.inferred_use_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37520_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37520_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.check_rename_macros_inferring_missing \x3d (function cljs$analyzer$check_rename_macros_inferring_missing(p__37562,env){\nvar map__37570 \x3d p__37562;\nvar map__37570__$1 \x3d cljs.core.__destructure_map(map__37570);\nvar ast \x3d map__37570__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar missing_renames \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(renames);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_renames(renames,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,renames,cljs.core.keys(missing_renames));\nvar missing_rename_macros \x3d cljs.analyzer.inferred_rename_macros(missing_renames,env);\nvar remove_missing_renames \x3d (function (p1__37550_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37550_SHARP_,cljs.core.keys(missing_renames));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),(function (p1__37552_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37552_SHARP_,missing_rename_macros], 0)),cljs.analyzer.inferred_rename_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37554_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37554_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.parse_ns_error_msg \x3d (function cljs$analyzer$parse_ns_error_msg(spec,msg){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22; offending spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0))].join(\x27\x27);\n});\ncljs.analyzer.basic_validate_ns_spec \x3d (function cljs$analyzer$basic_validate_ns_spec(env,macros_QMARK_,spec){\nif((((spec instanceof cljs.core.Symbol)) || (((typeof spec \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(spec)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns \x26 options] and lib.ns specs supported in :require / :require-macros\x22));\n}\n\nif(cljs.core.sequential_QMARK_(spec)){\nif((((cljs.core.first(spec) instanceof cljs.core.Symbol)) || (typeof cljs.core.first(spec) \x3d\x3d\x3d \x27string\x27))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Library name must be specified as a symbol in :require / :require-macros\x22));\n}\n\nif(cljs.core.odd_QMARK_(cljs.core.count(spec))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as alias, :refer (names) and :rename {from to} options supported in :require\x22));\n}\n\nif(cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as, :refer and :rename options supported in :require / :require-macros\x22));\n}\n\nif((function (){var fs \x3d cljs.core.frequencies(cljs.core.next(spec));\nreturn ((((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0))) \x3c\x3d (1))) \x26\x26 (((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0))) \x3c\x3d (1))));\n})()){\nreturn null;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :as and :refer options may only be specified once in :require / :require-macros\x22));\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.parse_ns_excludes_impl \x3d (function cljs$analyzer$parse_ns_excludes_impl(env,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__37694){\nvar vec__37695 \x3d p__37694;\nvar seq__37696 \x3d cljs.core.seq(vec__37695);\nvar first__37697 \x3d cljs.core.first(seq__37696);\nvar seq__37696__$1 \x3d cljs.core.next(seq__37696);\nvar k \x3d first__37697;\nvar filters \x3d seq__37696__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440))){\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(s))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only one :refer-clojure form is allowed per namespace definition\x22);\n} else {\n}\n\nvar valid_kws \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null);\nvar xs \x3d (function (){var fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null);\nvar err \x3d (!(cljs.core.even_QMARK_(cljs.core.count(filters))));\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported\x22);\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nif(cljs.core.truth_((valid_kws.cljs$core$IFn$_invoke$arity$1 ? valid_kws.cljs$core$IFn$_invoke$arity$1(kw) : valid_kws.call(null,kw)))){\nvar refs \x3d cljs.core.second(fs);\nif((!(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters){\nreturn (function (p1__37682_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37682_SHARP_);\n});})(fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters))\n,refs)))))))))){\nvar G__38911 \x3d fs;\nvar G__38912 \x3d ret;\nvar G__38913 \x3d true;\nfs \x3d G__38911;\nret \x3d G__38912;\nerr \x3d G__38913;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))){\nvar G__38914 \x3d cljs.core.nnext(fs);\nvar G__38915 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),cljs.core.into,refs);\nvar G__38916 \x3d false;\nfs \x3d G__38914;\nret \x3d G__38915;\nerr \x3d G__38916;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))){\nvar G__38917 \x3d cljs.core.nnext(fs);\nvar G__38918 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),cljs.core.merge,refs);\nvar G__38919 \x3d false;\nfs \x3d G__38917;\nret \x3d G__38918;\nerr \x3d G__38919;\ncontinue;\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38920 \x3d fs;\nvar G__38921 \x3d ret;\nvar G__38922 \x3d true;\nfs \x3d G__38920;\nret \x3d G__38921;\nerr \x3d G__38922;\ncontinue;\n}\n} else {\nreturn ret;\n\n}\n}\nbreak;\n}\n})();\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.into,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s,xs], 0));\n} else {\nreturn s;\n}\n}),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null),args);\n});\ncljs.analyzer.parse_ns_excludes \x3d (function cljs$analyzer$parse_ns_excludes(env,args){\nvar s \x3d cljs.analyzer.parse_ns_excludes_impl(env,args);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.into,cljs.core.keys(new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368).cljs$core$IFn$_invoke$arity$1(s)));\n});\ncljs.analyzer.use__GT_require \x3d (function cljs$analyzer$use__GT_require(env,p__37970){\nvar vec__37974 \x3d p__37970;\nvar seq__37975 \x3d cljs.core.seq(vec__37974);\nvar first__37976 \x3d cljs.core.first(seq__37975);\nvar seq__37975__$1 \x3d cljs.core.next(seq__37975);\nvar lib \x3d first__37976;\nvar filters \x3d seq__37975__$1;\nvar spec \x3d vec__37974;\nif((((lib instanceof cljs.core.Symbol)) \x26\x26 (cljs.core.odd_QMARK_(cljs.core.count(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n}\n\nvar fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null);\nvar err \x3d false;\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nvar only_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22only\x22,\x22only\x22,1907811652));\nif(((only_QMARK_) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))))){\nif((!((cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw)]),ret) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :only and :rename options may only be specified once in :use / :use-macros\x22));\n} else {\nvar refs \x3d cljs.core.second(fs);\nif((!(((((only_QMARK_) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec){\nreturn (function (p1__37952_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37952_SHARP_);\n});})(fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec))\n,refs)))))))))){\nvar G__38925 \x3d fs;\nvar G__38926 \x3d ret;\nvar G__38927 \x3d true;\nfs \x3d G__38925;\nret \x3d G__38926;\nerr \x3d G__38927;\ncontinue;\n} else {\nvar G__38928 \x3d cljs.core.nnext(fs);\nvar G__38929 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw),refs], null));\nvar G__38930 \x3d false;\nfs \x3d G__38928;\nret \x3d G__38929;\nerr \x3d G__38930;\ncontinue;\n}\n}\n} else {\nvar G__38931 \x3d fs;\nvar G__38932 \x3d ret;\nvar G__38933 \x3d true;\nfs \x3d G__38931;\nret \x3d G__38932;\nerr \x3d G__38933;\ncontinue;\n}\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),ret) \x3d\x3d null)))){\nreturn ret;\n} else {\nvar G__38934 \x3d fs;\nvar G__38935 \x3d ret;\nvar G__38936 \x3d true;\nfs \x3d G__38934;\nret \x3d G__38935;\nerr \x3d G__38936;\ncontinue;\n}\n\n}\n}\nbreak;\n}\n});\ncljs.analyzer.parse_require_spec \x3d (function cljs$analyzer$parse_require_spec(env,macros_QMARK_,deps,aliases,spec){\nwhile(true){\nif((((spec instanceof cljs.core.Symbol)) || (typeof spec \x3d\x3d\x3d \x27string\x27))){\nvar G__38937 \x3d env;\nvar G__38938 \x3d macros_QMARK_;\nvar G__38939 \x3d deps;\nvar G__38940 \x3d aliases;\nvar G__38941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\nenv \x3d G__38937;\nmacros_QMARK_ \x3d G__38938;\ndeps \x3d G__38939;\naliases \x3d G__38940;\nspec \x3d G__38941;\ncontinue;\n} else {\ncljs.analyzer.basic_validate_ns_spec(env,macros_QMARK_,spec);\n\nvar vec__38066 \x3d spec;\nvar seq__38067 \x3d cljs.core.seq(vec__38066);\nvar first__38068 \x3d cljs.core.first(seq__38067);\nvar seq__38067__$1 \x3d cljs.core.next(seq__38067);\nvar lib \x3d first__38068;\nvar opts \x3d seq__38067__$1;\nvar vec__38069 \x3d (function (){var temp__5827__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n} else {\nvar js_module_name \x3d temp__5827__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(js_module_name),lib], null);\n}\n})();\nvar lib__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(0),null);\nvar js_module_provides \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(1),null);\nvar map__38072 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,opts);\nvar map__38072__$1 \x3d cljs.core.__destructure_map(map__38072);\nvar alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38072__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),((typeof lib__$1 \x3d\x3d\x3d \x27string\x27)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(lib__$1)):lib__$1));\nvar referred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553));\nvar renamed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar referred_without_renamed \x3d cljs.core.seq(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(renamed)),referred));\nvar vec__38073 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613)], null));\nvar rk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(0),null);\nvar uk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(1),null);\nvar renk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(2),null);\nif((((alias instanceof cljs.core.Symbol)) || ((alias \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as must be followed by a symbol in :require / :require-macros\x22));\n}\n\nif((!((alias \x3d\x3d null)))){\nvar alias_type_38942 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431):new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786));\nvar lib_SINGLEQUOTE__38943 \x3d (function (){var fexpr__38085 \x3d alias_type_38942.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(aliases));\nreturn (fexpr__38085.cljs$core$IFn$_invoke$arity$1 ? fexpr__38085.cljs$core$IFn$_invoke$arity$1(alias) : fexpr__38085.call(null,alias));\n})();\nif((((!((lib_SINGLEQUOTE__38943 \x3d\x3d null)))) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,lib_SINGLEQUOTE__38943)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as alias must be unique\x22));\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(alias,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(aliases),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786):new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)))){\n} else {\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n}\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(aliases,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias_type_38942], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias,lib__$1], null),(cljs.core.truth_(js_module_provides)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_module_provides,lib__$1], null):null)], 0));\n} else {\n}\n\nif(((((cljs.core.sequential_QMARK_(referred)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,referred)))) || ((referred \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:refer must be followed by a sequence of symbols in :require / :require-macros\x22));\n}\n\nif(cljs.core.truth_(macros_QMARK_)){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,lib__$1);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((!((alias \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([rk,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib__$1]),cljs.core.PersistentArrayMap.createAsIfByAssoc([lib__$1,lib__$1]),(cljs.core.truth_(js_module_provides)?cljs.core.PersistentArrayMap.createAsIfByAssoc([js_module_provides,lib__$1]):null)], 0))]):null),(((!((referred_without_renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([uk,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(referred_without_renamed,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(lib__$1)))]):null),(((!((renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([renk,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk){\nreturn (function (m,p__38101){\nvar vec__38102 \x3d p__38101;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(0),null);\nvar renamed__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(1),null);\nif(cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([original]),referred))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Renamed symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original),\x22 not referred\x22].join(\x27\x27));\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed__$1,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n});})(env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk))\n,cljs.core.PersistentArrayMap.EMPTY,renamed)]):null)], 0));\n}\nbreak;\n}\n});\ncljs.analyzer.parse_import_spec \x3d (function cljs$analyzer$parse_import_spec(env,deps,spec){\nif(((((cljs.core.sequential_QMARK_(spec)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,spec)))) || ((((spec instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(spec) \x3d\x3d null)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import\x22));\n}\n\nvar import_map \x3d ((cljs.core.sequential_QMARK_(spec))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38105_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__38105_SHARP_,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(spec)),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__38105_SHARP_)].join(\x27\x27))],null));\n}),cljs.core.rest(spec))):(((!(((-1) \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec).indexOf(\x22.\x22)))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),/\\./))),spec]):cljs.core.PersistentArrayMap.EMPTY\n));\nvar seq__38110_38947 \x3d cljs.core.seq(import_map);\nvar chunk__38111_38948 \x3d null;\nvar count__38112_38949 \x3d (0);\nvar i__38113_38950 \x3d (0);\nwhile(true){\nif((i__38113_38950 \x3c count__38112_38949)){\nvar vec__38124_38952 \x3d chunk__38111_38948.cljs$core$IIndexed$_nth$arity$2(null,i__38113_38950);\nvar __38953 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(0),null);\nvar spec_38954__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38954__$1);\n\n\nvar G__38955 \x3d seq__38110_38947;\nvar G__38956 \x3d chunk__38111_38948;\nvar G__38957 \x3d count__38112_38949;\nvar G__38958 \x3d (i__38113_38950 + (1));\nseq__38110_38947 \x3d G__38955;\nchunk__38111_38948 \x3d G__38956;\ncount__38112_38949 \x3d G__38957;\ni__38113_38950 \x3d G__38958;\ncontinue;\n} else {\nvar temp__5825__auto___38959 \x3d cljs.core.seq(seq__38110_38947);\nif(temp__5825__auto___38959){\nvar seq__38110_38960__$1 \x3d temp__5825__auto___38959;\nif(cljs.core.chunked_seq_QMARK_(seq__38110_38960__$1)){\nvar c__5548__auto___38961 \x3d cljs.core.chunk_first(seq__38110_38960__$1);\nvar G__38962 \x3d cljs.core.chunk_rest(seq__38110_38960__$1);\nvar G__38963 \x3d c__5548__auto___38961;\nvar G__38964 \x3d cljs.core.count(c__5548__auto___38961);\nvar G__38965 \x3d (0);\nseq__38110_38947 \x3d G__38962;\nchunk__38111_38948 \x3d G__38963;\ncount__38112_38949 \x3d G__38964;\ni__38113_38950 \x3d G__38965;\ncontinue;\n} else {\nvar vec__38131_38966 \x3d cljs.core.first(seq__38110_38960__$1);\nvar __38967 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(0),null);\nvar spec_38968__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38968__$1);\n\n\nvar G__38970 \x3d cljs.core.next(seq__38110_38960__$1);\nvar G__38971 \x3d null;\nvar G__38972 \x3d (0);\nvar G__38973 \x3d (0);\nseq__38110_38947 \x3d G__38970;\nchunk__38111_38948 \x3d G__38971;\ncount__38112_38949 \x3d G__38972;\ni__38113_38950 \x3d G__38973;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),import_map,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),import_map], null);\n});\n/**\n * Given a spec form check whether the spec namespace requires a macro file\n * of the same name. If so return true.\n */\ncljs.analyzer.macro_autoload_ns_QMARK_ \x3d (function cljs$analyzer$macro_autoload_ns_QMARK_(form){\nif(cljs.core.truth_(cljs.analyzer._STAR_macro_infer_STAR_)){\nvar ns \x3d ((cljs.core.sequential_QMARK_(form))?cljs.core.first(form):form);\nvar map__38136 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null));\nvar map__38136__$1 \x3d cljs.core.__destructure_map(map__38136);\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar or__5025__auto__ \x3d cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(use_macros));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(require_macros));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a symbol that starts with clojure as the first segment return the\n * same symbol with the first segment replaced with cljs\n */\ncljs.analyzer.clj_ns__GT_cljs_ns \x3d (function cljs$analyzer$clj_ns__GT_cljs_ns(sym){\nvar segs \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure\x22,cljs.core.first(segs))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.cons(\x22cljs\x22,cljs.core.next(segs))));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.canonicalize_specs \x3d (function cljs$analyzer$canonicalize_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nvar spec \x3d cljs.core.second(quoted_spec_or_kw);\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.map_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\ncljs.analyzer.canonicalize_import_specs \x3d (function cljs$analyzer$canonicalize_import_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_import_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nreturn cljs.core.second(quoted_spec_or_kw);\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\n/**\n * Given an original set of ns specs desugar :include-macros and :refer-macros\n * usage into only primitive spec forms - :use, :require, :use-macros,\n * :require-macros. If a library includes a macro file of with the same name\n * as the namespace will also be desugared.\n */\ncljs.analyzer.desugar_ns_specs \x3d (function cljs$analyzer$desugar_ns_specs(args){\nvar map__38157 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__38158){\nvar vec__38159 \x3d p__38158;\nvar seq__38160 \x3d cljs.core.seq(vec__38159);\nvar first__38161 \x3d cljs.core.first(seq__38160);\nvar seq__38160__$1 \x3d cljs.core.next(seq__38160);\nvar k \x3d first__38161;\nvar specs \x3d seq__38160__$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,specs)], null);\n}),args));\nvar map__38157__$1 \x3d cljs.core.__destructure_map(map__38157);\nvar indexed \x3d map__38157__$1;\nvar require__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38157__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar sugar_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953),null], null), null);\nvar remove_from_spec \x3d (function (pred,spec){\nwhile(true){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(spec);\nif(and__5023__auto__){\nreturn cljs.core.some(pred,spec);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn spec;\n} else {\nvar vec__38164 \x3d cljs.core.split_with(cljs.core.complement(pred),spec);\nvar l \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(1),null);\nvar G__38975 \x3d pred;\nvar G__38976 \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),r));\npred \x3d G__38975;\nspec \x3d G__38976;\ncontinue;\n}\nbreak;\n}\n});\nvar replace_refer_macros \x3d (function (spec){\nif((!(cljs.core.sequential_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953))){\nreturn new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553);\n} else {\nreturn x;\n}\n}),spec);\n}\n});\nvar reload_spec_QMARK_ \x3d (function (p1__38155_SHARP_){\nvar fexpr__38168 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null);\nreturn (fexpr__38168.cljs$core$IFn$_invoke$arity$1 ? fexpr__38168.cljs$core$IFn$_invoke$arity$1(p1__38155_SHARP_) : fexpr__38168.call(null,p1__38155_SHARP_));\n});\nvar to_macro_specs \x3d (function (specs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nreturn replace_refer_macros(remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null], null), null),x))));\n} else {\nreturn x;\n}\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (x){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(x);\nif(and__5023__auto__){\nreturn cljs.core.some(sugar_keys,x);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d reload_spec_QMARK_(x);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.macro_autoload_ns_QMARK_(x);\n}\n}\n}),specs));\n});\nvar remove_sugar \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(remove_from_spec,sugar_keys);\nvar temp__5827__auto__ \x3d cljs.core.seq(to_macro_specs(require__$1));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn args;\n} else {\nvar require_specs \x3d temp__5827__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nvar vec__38174 \x3d x;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(1),null);\nreturn cljs.core.cons(k,cljs.core.map.cljs$core$IFn$_invoke$arity$2(remove_sugar,v));\n} else {\nreturn x;\n}\n}),cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(indexed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),require_specs));\n}\n});\ncljs.analyzer.find_def_clash \x3d (function cljs$analyzer$find_def_clash(env,ns,segments){\nvar to_check \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (xs){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.butlast(xs))),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(xs))], null);\n}),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.PersistentVector.EMPTY,segments)));\nvar seq__38181 \x3d cljs.core.seq(to_check);\nvar chunk__38182 \x3d null;\nvar count__38183 \x3d (0);\nvar i__38184 \x3d (0);\nwhile(true){\nif((i__38184 \x3c count__38183)){\nvar vec__38198 \x3d chunk__38182.cljs$core$IIndexed$_nth$arity$2(null,i__38184);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38981 \x3d seq__38181;\nvar G__38982 \x3d chunk__38182;\nvar G__38983 \x3d count__38183;\nvar G__38984 \x3d (i__38184 + (1));\nseq__38181 \x3d G__38981;\nchunk__38182 \x3d G__38982;\ncount__38183 \x3d G__38983;\ni__38184 \x3d G__38984;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38181);\nif(temp__5825__auto__){\nvar seq__38181__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38181__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38181__$1);\nvar G__38985 \x3d cljs.core.chunk_rest(seq__38181__$1);\nvar G__38986 \x3d c__5548__auto__;\nvar G__38987 \x3d cljs.core.count(c__5548__auto__);\nvar G__38988 \x3d (0);\nseq__38181 \x3d G__38985;\nchunk__38182 \x3d G__38986;\ncount__38183 \x3d G__38987;\ni__38184 \x3d G__38988;\ncontinue;\n} else {\nvar vec__38204 \x3d cljs.core.first(seq__38181__$1);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38989 \x3d cljs.core.next(seq__38181__$1);\nvar G__38990 \x3d null;\nvar G__38991 \x3d (0);\nvar G__38992 \x3d (0);\nseq__38181 \x3d G__38989;\nchunk__38182 \x3d G__38990;\ncount__38183 \x3d G__38991;\ni__38184 \x3d G__38992;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.macro_ns_name \x3d (function cljs$analyzer$macro_ns_name(name){\nvar name_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif(cljs.core.not(goog.string.endsWith(name_str,\x22$macros\x22))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([name_str,\x22$macros\x22].join(\x27\x27));\n} else {\nreturn name;\n}\n});\ncljs.analyzer.check_duplicate_aliases \x3d (function cljs$analyzer$check_duplicate_aliases(env,old,new$){\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(old);\nvar seq__38210 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null));\nvar chunk__38211 \x3d null;\nvar count__38212 \x3d (0);\nvar i__38213 \x3d (0);\nwhile(true){\nif((i__38213 \x3c count__38212)){\nvar k \x3d chunk__38211.cljs$core$IIndexed$_nth$arity$2(null,i__38213);\nvar old_aliases_38993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_38994 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___38995 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_38994)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name){\nreturn (function (p__38223){\nvar vec__38224 \x3d p__38223;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(1),null);\nvar entry \x3d vec__38224;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_38994,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name))\n,old_aliases_38993)));\nif((temp__5829__auto___38995 \x3d\x3d null)){\n} else {\nvar alias_38996 \x3d temp__5829__auto___38995;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_38996),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_38993,alias_38996))].join(\x27\x27));\n}\n\n\nvar G__38997 \x3d seq__38210;\nvar G__38998 \x3d chunk__38211;\nvar G__38999 \x3d count__38212;\nvar G__39000 \x3d (i__38213 + (1));\nseq__38210 \x3d G__38997;\nchunk__38211 \x3d G__38998;\ncount__38212 \x3d G__38999;\ni__38213 \x3d G__39000;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38210);\nif(temp__5825__auto__){\nvar seq__38210__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38210__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38210__$1);\nvar G__39001 \x3d cljs.core.chunk_rest(seq__38210__$1);\nvar G__39002 \x3d c__5548__auto__;\nvar G__39003 \x3d cljs.core.count(c__5548__auto__);\nvar G__39004 \x3d (0);\nseq__38210 \x3d G__39001;\nchunk__38211 \x3d G__39002;\ncount__38212 \x3d G__39003;\ni__38213 \x3d G__39004;\ncontinue;\n} else {\nvar k \x3d cljs.core.first(seq__38210__$1);\nvar old_aliases_39005 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_39006 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___39007 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_39006)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name){\nreturn (function (p__38227){\nvar vec__38228 \x3d p__38227;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(1),null);\nvar entry \x3d vec__38228;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_39006,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name))\n,old_aliases_39005)));\nif((temp__5829__auto___39007 \x3d\x3d null)){\n} else {\nvar alias_39010 \x3d temp__5829__auto___39007;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_39010),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_39005,alias_39010))].join(\x27\x27));\n}\n\n\nvar G__39011 \x3d cljs.core.next(seq__38210__$1);\nvar G__39012 \x3d null;\nvar G__39013 \x3d (0);\nvar G__39014 \x3d (0);\nseq__38210 \x3d G__39011;\nchunk__38211 \x3d G__39012;\ncount__38212 \x3d G__39013;\ni__38213 \x3d G__39014;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.merge_ns_info \x3d (function cljs$analyzer$merge_ns_info(old,new$,env){\nif((cljs.core.count(old) \x3e (0))){\nvar deep_merge_keys \x3d new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old,cljs.core.select_keys(new$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null)),cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(old,deep_merge_keys),cljs.core.select_keys(new$,deep_merge_keys)], 0))], 0));\n} else {\nreturn new$;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),(function (_,env,p__38243,___$1,opts){\nvar vec__38244 \x3d p__38243;\nvar seq__38245 \x3d cljs.core.seq(vec__38244);\nvar first__38246 \x3d cljs.core.first(seq__38245);\nvar seq__38245__$1 \x3d cljs.core.next(seq__38245);\nvar ___$2 \x3d first__38246;\nvar first__38246__$1 \x3d cljs.core.first(seq__38245__$1);\nvar seq__38245__$2 \x3d cljs.core.next(seq__38245__$1);\nvar name \x3d first__38246__$1;\nvar args \x3d seq__38245__$2;\nvar form \x3d vec__38244;\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespace declarations must appear at the top-level.\x22);\n}\n\nif((name instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespaces must be named by a symbol.\x22);\n}\n\nvar name__$1 \x3d (function (){var G__38249 \x3d name;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.analyzer.macro_ns_name(G__38249);\n} else {\nreturn G__38249;\n}\n})();\nvar segments_39016 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name__$1),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(segments_39016))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\nvar segment_39017 \x3d cljs.core.some(cljs.analyzer.js_reserved,segments_39016);\nif((!((segment_39017 \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\ncljs.analyzer.find_def_clash(env,name__$1,segments_39016);\n\nvar docstring \x3d ((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27)?cljs.core.first(args):null);\nvar mdocstr \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name__$1));\nvar args__$1 \x3d (((!((docstring \x3d\x3d null))))?cljs.core.next(args):args);\nvar metadata \x3d ((cljs.core.map_QMARK_(cljs.core.first(args__$1)))?cljs.core.first(args__$1):null);\nvar args__$2 \x3d cljs.analyzer.desugar_ns_specs((((!((metadata \x3d\x3d null))))?cljs.core.next(args__$1):args__$1));\nvar map__38253 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args__$2);\nvar map__38253__$1 \x3d cljs.core.__destructure_map(map__38253);\nvar args__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar name__$2 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata);\nvar map__38254 \x3d cljs.analyzer.parse_ns_excludes(env,args__$3);\nvar map__38254__$1 \x3d cljs.core.__destructure_map(map__38254);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38259){\nvar vec__38260 \x3d p__38259;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar valid_forms \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null));\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38255 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38267){\nvar vec__38268 \x3d p__38267;\nvar seq__38269 \x3d cljs.core.seq(vec__38268);\nvar first__38270 \x3d cljs.core.first(seq__38269);\nvar seq__38269__$1 \x3d cljs.core.next(seq__38269);\nvar k \x3d first__38270;\nvar libs \x3d seq__38269__$1;\nvar libspec \x3d vec__38268;\nif(cljs.core.truth_((function (){var fexpr__38272 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null);\nreturn (fexpr__38272.cljs$core$IFn$_invoke$arity$1 ? fexpr__38272.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38272.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only :refer-clojure, :require, :require-macros, :use, :use-macros, and :import libspecs supported. Got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(libspec),\x22 instead.\x22].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var fexpr__38273 \x3d cljs.core.deref(valid_forms);\nreturn (fexpr__38273.cljs$core$IFn$_invoke$arity$1 ? fexpr__38273.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38273.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only one \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 form is allowed per namespace definition\x22].join(\x27\x27));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(valid_forms,cljs.core.disj,k);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5825__auto___39019 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38241_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38241_SHARP_));\n}),libs));\nif(temp__5825__auto___39019){\nvar xs_39020 \x3d temp__5825__auto___39019;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39020),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38242_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38242_SHARP_));\n}),xs_39020)));\n} else {\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38275){\nvar vec__38276 \x3d p__38275;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38276,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$3));\nvar map__38255__$1 \x3d cljs.core.__destructure_map(map__38255);\nvar params \x3d map__38255__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\nvar vec__38256 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec_map){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2),(0),(((cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2)).length) - (7))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38280){\nvar vec__38281 \x3d p__38280;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(1),null);\nvar G__38284 \x3d m;\nif((!(cljs.core.symbol_identical_QMARK_(v,ns)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38284,k,v);\n} else {\nreturn G__38284;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,spec_map);\n} else {\nreturn spec_map;\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [require_macros,use_macros], null));\nvar require_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(0),null);\nvar use_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(1),null);\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name__$2);\n\nvar ns_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros__$1,excludes,name__$2,imports,requires,uses,require_macros__$1,(function (){var or__5025__auto__ \x3d docstring;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn mdocstr;\n}\n})(),as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name__$2], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_info], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38287 \x3d ns_info;\nvar G__38287__$1 \x3d (cljs.core.truth_((function (){var fexpr__38288 \x3d cljs.core.deref(reload);\nreturn (fexpr__38288.cljs$core$IFn$_invoke$arity$1 ? fexpr__38288.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38288.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38289 \x3d cljs.core.deref(reload);\nreturn (fexpr__38289.cljs$core$IFn$_invoke$arity$1 ? fexpr__38289.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38289.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38287);\nif(cljs.core.truth_((function (){var fexpr__38290 \x3d cljs.core.deref(reload);\nreturn (fexpr__38290.cljs$core$IFn$_invoke$arity$1 ? fexpr__38290.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38290.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38291 \x3d cljs.core.deref(reload);\nreturn (fexpr__38291.cljs$core$IFn$_invoke$arity$1 ? fexpr__38291.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38291.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38287__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),(function (_,env,p__38295,___$1,opts){\nvar vec__38296 \x3d p__38295;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(0),null);\nvar quoted_specs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(1),null);\nvar form \x3d vec__38296;\nvar temp__5825__auto___39029 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__38292_SHARP_){\nreturn ((cljs.core.seq_QMARK_(p1__38292_SHARP_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(p1__38292_SHARP_))));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,quoted_specs)));\nif(cljs.core.truth_(temp__5825__auto___39029)){\nvar not_quoted_39030 \x3d temp__5825__auto___39029;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Arguments to \x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22 must be quoted. Offending spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(not_quoted_39030)].join(\x27\x27));\n} else {\n}\n\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Calls to `\x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22` must appear at the top-level.\x22].join(\x27\x27));\n}\n\nvar specs \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.first(quoted_specs)))?cljs.analyzer.canonicalize_import_specs(quoted_specs):cljs.analyzer.canonicalize_specs(quoted_specs));\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar args \x3d cljs.analyzer.desugar_ns_specs((new cljs.core.List(null,specs,null,(1),null)));\nvar map__38300 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args);\nvar map__38300__$1 \x3d cljs.core.__destructure_map(map__38300);\nvar args__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar map__38301 \x3d cljs.analyzer.parse_ns_excludes(env,args__$1);\nvar map__38301__$1 \x3d cljs.core.__destructure_map(map__38301);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38304){\nvar vec__38306 \x3d p__38304;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38302 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38309){\nvar vec__38310 \x3d p__38309;\nvar seq__38311 \x3d cljs.core.seq(vec__38310);\nvar first__38312 \x3d cljs.core.first(seq__38311);\nvar seq__38311__$1 \x3d cljs.core.next(seq__38311);\nvar k \x3d first__38312;\nvar libs \x3d seq__38311__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5829__auto___39036 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38293_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38293_SHARP_));\n}),libs));\nif((temp__5829__auto___39036 \x3d\x3d null)){\n} else {\nvar xs_39038 \x3d temp__5829__auto___39036;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39038),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38294_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38294_SHARP_));\n}),xs_39038)));\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38317){\nvar vec__38318 \x3d p__38317;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38318,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$1));\nvar map__38302__$1 \x3d cljs.core.__destructure_map(map__38302);\nvar params \x3d map__38302__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name);\n\nvar require_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros,excludes,name,imports,requires,uses,require_macros,as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name], null),cljs.analyzer.merge_ns_info,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([require_info,env], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns*\x22,\x22ns*\x22,200417856),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38326 \x3d require_info;\nvar G__38326__$1 \x3d (cljs.core.truth_((function (){var fexpr__38327 \x3d cljs.core.deref(reload);\nreturn (fexpr__38327.cljs$core$IFn$_invoke$arity$1 ? fexpr__38327.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38327.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38328 \x3d cljs.core.deref(reload);\nreturn (fexpr__38328.cljs$core$IFn$_invoke$arity$1 ? fexpr__38328.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38328.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38326);\nif(cljs.core.truth_((function (){var fexpr__38329 \x3d cljs.core.deref(reload);\nreturn (fexpr__38329.cljs$core$IFn$_invoke$arity$1 ? fexpr__38329.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38329.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38330 \x3d cljs.core.deref(reload);\nreturn (fexpr__38330.cljs$core$IFn$_invoke$arity$1 ? fexpr__38330.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38330.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38326__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse_type \x3d (function cljs$analyzer$parse_type(op,env,p__38331){\nvar vec__38332 \x3d p__38331;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(0),null);\nvar tsym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(1),null);\nvar fields \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(2),null);\nvar pmasks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(3),null);\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(4),null);\nvar form \x3d vec__38332;\nvar t \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),tsym));\nvar locals \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,fld){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,fld,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[fld,true,cljs.analyzer.get_col(fld,env),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),cljs.analyzer.get_line(fld,env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),(m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(fld) : m.call(null,fld)),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500)]));\n}),cljs.core.PersistentArrayMap.EMPTY,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fields,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22__meta\x22,\x22__meta\x22,-946752628,null),new cljs.core.Symbol(null,\x22__extmap\x22,\x22__extmap\x22,-1435580931,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null)):fields));\nvar protocols \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tsym));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),tsym], null),(function (m){\nvar m__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),t,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),true,new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024),cljs.core.count(fields),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op)], 0));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m__$1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(tsym),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols], null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(tsym,env)], 0));\n}));\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22pmasks\x22,\x22pmasks\x22,-871416698),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22fields\x22,\x22fields\x22,-1932066230),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22t\x22,\x22t\x22,-1397832519),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),pmasks,cljs.core.disj.cljs$core$IFn$_invoke$arity$2(protocols,new cljs.core.Symbol(\x22cljs.core\x22,\x22Object\x22,\x22cljs.core/Object\x22,-345545431,null)),fields,op,env,t,form,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),(function (){var G__38338 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals);\nvar G__38339 \x3d body;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38338,G__38339) : cljs.analyzer.analyze.call(null,G__38338,G__38339));\n})()]);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22deftype\x22,\x22deftype\x22,340294561),env,form);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),env,form);\n}));\ncljs.analyzer.property_symbol_QMARK_ \x3d (function cljs$analyzer$property_symbol_QMARK_(p1__38340_SHARP_){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (p1__38340_SHARP_ instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nreturn cljs.core.re_matches(/^-.*/,cljs.core.name(p1__38340_SHARP_));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.classify_dot_form \x3d (function cljs$analyzer$classify_dot_form(p__38341){\nvar vec__38342 \x3d p__38341;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(0),null);\nvar member \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(2),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((target \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n),((cljs.analyzer.property_symbol_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886):(((member instanceof cljs.core.Symbol))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902):((cljs.core.seq_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642)\n))),(((args \x3d\x3d null))?cljs.core.List.EMPTY:new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n)], null);\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.build_dot_form !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.build_dot_form \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__38349 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__38349.cljs$core$IFn$_invoke$arity$0 ? fexpr__38349.cljs$core$IFn$_invoke$arity$0() : fexpr__38349.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22build-dot-form\x22),(function (p1__38347_SHARP_){\nreturn cljs.analyzer.classify_dot_form(p1__38347_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),cljs.core.List.EMPTY], null),(function (p__38350){\nvar vec__38351 \x3d p__38350;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(2),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22access\x22,\x22cljs.analyzer/access\x22,-1639036494),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(prop).substring((1))),cljs.core.meta(prop))], null);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923)], null),(function (p__38354){\nvar vec__38355 \x3d p__38354;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(2),null);\nthrow (new Error([\x22Cannot provide arguments \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(args),\x22 on property access \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop)].join(\x27\x27)));\n}));\n/**\n * Builds the intermediate method call map used to reason about the parsed form during\n * compilation.\n */\ncljs.analyzer.build_method_call \x3d (function cljs$analyzer$build_method_call(target,meth,args){\nif((meth instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),meth,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),cljs.core.first(meth),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n}\n});\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)], null),(function (p__38358){\nvar vec__38359 \x3d p__38358;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),cljs.core.List.EMPTY], null),(function (p__38362){\nvar vec__38363 \x3d p__38362;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923),cljs.core.List.EMPTY], null),(function (p__38366){\nvar vec__38367 \x3d p__38366;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(0),null);\nvar meth_expr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(2),null);\nreturn cljs.analyzer.build_method_call(target,cljs.core.first(meth_expr),cljs.core.rest(meth_expr));\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (dot_form){\nthrow (new Error([\x22Unknown dot form of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),dot_form)),\x22 with classification \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.classify_dot_form(dot_form))].join(\x27\x27)));\n}));\ncljs.analyzer.analyze_dot \x3d (function cljs$analyzer$analyze_dot(env,target,field,member_PLUS_,form){\nvar v \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,field,member_PLUS_], null);\nvar map__38371 \x3d cljs.analyzer.build_dot_form.cljs$core$IFn$_invoke$arity$1(v);\nvar map__38371__$1 \x3d cljs.core.__destructure_map(map__38371);\nvar dot_action \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601));\nvar target__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nvar field__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar targetexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze.call(null,enve,target__$1));\nvar form_meta \x3d cljs.core.meta(form);\nvar target_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(targetexpr);\nvar prop \x3d (function (){var or__5025__auto__ \x3d field__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn method;\n}\n})();\nvar tag \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_tag_QMARK_(target_tag);\nif(and__5023__auto__){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.analyzer.normalize_js_tag(target_tag),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null)),prop);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn null;\n}\n}\n})();\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22constructor\x22,\x22constructor\x22,-313397284,null),prop)) \x26\x26 ((((!(clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop),\x22cljs$\x22)))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22protocol-prop\x22,\x22protocol-prop\x22,-58388138).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(prop)))))))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),cljs.core.first(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),target_tag)){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (target_tag \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__38373 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22], null), null);\nreturn (fexpr__38373.cljs$core$IFn$_invoke$arity$1 ? fexpr__38373.cljs$core$IFn$_invoke$arity$1(target_tag) : fexpr__38373.call(null,target_tag));\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nvar vec__38374_39081 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.identity)(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)));\nvar pre_SINGLEQUOTE__39082 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(0),null);\nvar pre_39083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(1),null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_SINGLEQUOTE__39082);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39083));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,(function (){var G__38377 \x3d pre_SINGLEQUOTE__39082;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null),cljs.core.last(pre_SINGLEQUOTE__39082))){\nreturn cljs.core.butlast(G__38377);\n} else {\nreturn G__38377;\n}\n})())),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n} else {\n}\n} else {\n}\n\nif(cljs.analyzer.js_tag_QMARK_(tag)){\nvar pre_39089 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39089))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre_39089),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n} else {\n}\n\nvar G__38378 \x3d dot_action;\nvar G__38378__$1 \x3d (((G__38378 instanceof cljs.core.Keyword))?G__38378.fqn:null);\nswitch (G__38378__$1) {\ncase \x22cljs.analyzer/access\x22:\nvar children \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn tag;\n}\n})():tag)], null);\n\nbreak;\ncase \x22cljs.analyzer/call\x22:\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38370_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38370_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38370_SHARP_));\n}),args);\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null);\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),method,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n})():tag)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__38378__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(function (_,env,p__38379,___$1,___$2){\nvar vec__38380 \x3d p__38379;\nvar seq__38381 \x3d cljs.core.seq(vec__38380);\nvar first__38382 \x3d cljs.core.first(seq__38381);\nvar seq__38381__$1 \x3d cljs.core.next(seq__38381);\nvar ___$3 \x3d first__38382;\nvar first__38382__$1 \x3d cljs.core.first(seq__38381__$1);\nvar seq__38381__$2 \x3d cljs.core.next(seq__38381__$1);\nvar target \x3d first__38382__$1;\nvar vec__38383 \x3d seq__38381__$2;\nvar seq__38384 \x3d cljs.core.seq(vec__38383);\nvar first__38385 \x3d cljs.core.first(seq__38384);\nvar seq__38384__$1 \x3d cljs.core.next(seq__38384);\nvar field \x3d first__38385;\nvar member_PLUS_ \x3d seq__38384__$1;\nvar form \x3d vec__38380;\nvar _STAR_recur_frames_STAR__orig_val__38386 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38387 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38387);\n\ntry{return cljs.analyzer.analyze_dot(env,target,field,member_PLUS_,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38386);\n}}));\ncljs.analyzer.get_js_tag \x3d (function cljs$analyzer$get_js_tag(form){\nvar form_meta \x3d cljs.core.meta(form);\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nif(new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta) \x3d\x3d\x3d true){\nreturn new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\n} else {\nreturn null;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.js_star_interp \x3d (function cljs$analyzer$js_star_interp(env,s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nvar inner \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_existing_var(env,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,((2) + idx),end))));\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),cljs.core.cons(inner,(function (){var G__38394 \x3d env;\nvar G__38395 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2(G__38394,G__38395) : cljs.analyzer.js_star_interp.call(null,G__38394,G__38395));\n})()));\n}),null,null));\n}\n});\ncljs.analyzer.js_star_seg \x3d (function cljs$analyzer$js_star_seg(s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),(function (){var G__38398 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1(G__38398) : cljs.analyzer.js_star_seg.call(null,G__38398));\n})());\n}),null,null));\n}\n});\ncljs.analyzer.NUMERIC_SET \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null),\x22null\x22,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null),\x22null\x22,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),\x22null\x22], null), null);\ncljs.analyzer.numeric_type_QMARK_ \x3d (function cljs$analyzer$numeric_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif((((t instanceof cljs.core.Symbol)) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.NUMERIC_SET,t) \x3d\x3d null)))))){\nreturn true;\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn ((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))) || (cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))))))))));\n} else {\nreturn null;\n}\n}\n\n}\n}\n}\n});\ncljs.analyzer.array_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22,new cljs.core.Symbol(null,\x22floats\x22,\x22floats\x22,513591110,null),\x22null\x22,new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null),\x22null\x22,new cljs.core.Symbol(null,\x22objects\x22,\x22objects\x22,-554722035,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null),\x22null\x22,new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),\x22null\x22,new cljs.core.Symbol(null,\x22ints\x22,\x22ints\x22,-1761239845,null),\x22null\x22,new cljs.core.Symbol(null,\x22shorts\x22,\x22shorts\x22,107738238,null),\x22null\x22,new cljs.core.Symbol(null,\x22bytes\x22,\x22bytes\x22,-1478569089,null),\x22null\x22], null), null);\ncljs.analyzer.array_type_QMARK_ \x3d (function cljs$analyzer$array_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),t)){\nreturn true;\n} else {\nif(cljs.core.contains_QMARK_(cljs.analyzer.array_types,t)){\nreturn true;\n} else {\nreturn cljs.core.boolean$(((cljs.analyzer.impl.cljs_set_QMARK_(t))?(function (){var or__5025__auto__ \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.some(cljs.analyzer.array_types,t);\n}\n}\n})():null));\n\n}\n}\n}\n}\n}\n});\ncljs.analyzer.analyze_js_star_args \x3d (function cljs$analyzer$analyze_js_star_args(js_op,env,args){\nreturn cljs.core.first(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__38404,arg){\nvar vec__38405 \x3d p__38404;\nvar argexprs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(0),null);\nvar env__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argexprs,(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env__$1,arg) : cljs.analyzer.analyze.call(null,env__$1,arg))),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(js_op,new cljs.core.Symbol(\x22cljs.core\x22,\x22and\x22,\x22cljs.core/and\x22,-6692549,null)))?cljs.analyzer.set_test_induced_tags(env__$1,arg):env__$1)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentVector.EMPTY,env], null),args));\n});\ncljs.analyzer.analyze_js_star_STAR_ \x3d (function cljs$analyzer$analyze_js_star_STAR_(env,jsform,args,form){\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar form_meta \x3d cljs.core.meta(form);\nvar segs \x3d cljs.analyzer.js_star_seg(jsform);\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar argexprs \x3d cljs.analyzer.analyze_js_star_args(js_op,enve,args);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar validate \x3d (function (warning_type,valid_types_QMARK_){\nvar types \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38408_SHARP_){\nreturn cljs.analyzer.infer_tag(env,p1__38408_SHARP_);\n}),argexprs);\nif(cljs.core.truth_((valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1(types) : valid_types_QMARK_.call(null,types)))){\nreturn null;\n} else {\nreturn cljs.analyzer.warning(warning_type,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,types)], null));\n}\n});\nvar op_match_QMARK_ \x3d (function (sym){\nreturn cljs.core.symbol_identical_QMARK_(sym,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta));\n});\nif(numeric \x3d\x3d\x3d true){\nvalidate(new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (p1__38409_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,p1__38409_SHARP_);\n}));\n} else {\n}\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)],[argexprs,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),numeric,segs,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),env,js_op,form,tag]);\n});\ncljs.analyzer.analyze_js_star \x3d (function cljs$analyzer$analyze_js_star(env,jsform,args,form){\nvar _STAR_recur_frames_STAR__orig_val__38415 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38416 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38416);\n\ntry{return cljs.analyzer.analyze_js_star_STAR_(env,jsform,args,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38415);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),(function (op,env,p__38421,_,___$1){\nvar vec__38422 \x3d p__38421;\nvar seq__38423 \x3d cljs.core.seq(vec__38422);\nvar first__38424 \x3d cljs.core.first(seq__38423);\nvar seq__38423__$1 \x3d cljs.core.next(seq__38423);\nvar ___$2 \x3d first__38424;\nvar first__38424__$1 \x3d cljs.core.first(seq__38423__$1);\nvar seq__38423__$2 \x3d cljs.core.next(seq__38423__$1);\nvar jsform \x3d first__38424__$1;\nvar args \x3d seq__38423__$2;\nvar form \x3d vec__38422;\nif(typeof jsform \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid js* form\x22);\n}\n\nif((!((args \x3d\x3d null)))){\nreturn cljs.analyzer.analyze_js_star(env,jsform,args,form);\n} else {\nvar code \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.analyzer.js_star_interp(env,jsform));\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar form_meta \x3d cljs.core.meta(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),code,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),numeric], null);\n}\n}));\ncljs.analyzer.unsorted_map_QMARK_ \x3d (function cljs$analyzer$unsorted_map_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 ((!(cljs.core.sorted_QMARK_(x)))));\n});\n/**\n * Mark a form as being analyzed. Assumes x satisfies IMeta. Useful to suppress\n * warnings that will have been caught by a first compiler pass.\n */\ncljs.analyzer.analyzed \x3d (function cljs$analyzer$analyzed(x){\nif(cljs.analyzer.unsorted_map_QMARK_(x)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n} else {\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(x,cljs.core.assoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n\n}\n});\n/**\n * Returns boolean if the form has already been marked as analyzed.\n */\ncljs.analyzer.analyzed_QMARK_ \x3d (function cljs$analyzer$analyzed_QMARK_(x){\nreturn cljs.core.boolean$(((cljs.analyzer.unsorted_map_QMARK_(x))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(x):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x))\n));\n});\ncljs.analyzer.all_values_QMARK_ \x3d (function cljs$analyzer$all_values_QMARK_(exprs){\nreturn cljs.core.every_QMARK_((function (p1__38429_SHARP_){\nreturn (((p1__38429_SHARP_ \x3d\x3d null)) || ((((p1__38429_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27string\x27) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27number\x27) || (((p1__38429_SHARP_ \x3d\x3d\x3d true) || (p1__38429_SHARP_ \x3d\x3d\x3d false))))))))));\n}),exprs);\n});\ncljs.analyzer.valid_arity_QMARK_ \x3d (function cljs$analyzer$valid_arity_QMARK_(argc,method_params){\nreturn (((method_params \x3d\x3d null)) || (cljs.core.boolean$(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([argc]),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,method_params)))));\n});\ncljs.analyzer.record_tag_QMARK_ \x3d (function cljs$analyzer$record_tag_QMARK_(tag){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (tag instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((cljs.core.namespace(tag) \x3d\x3d null)));\nif(and__5023__auto____$1){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(tag)),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859)], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.record_basis \x3d (function cljs$analyzer$record_basis(tag){\nvar positional_factory \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22-\x3e\x22,cljs.core.name(tag)].join(\x27\x27));\nvar fields \x3d cljs.core.first(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),positional_factory,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179)], null)));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,fields);\n});\ncljs.analyzer.record_with_field_QMARK_ \x3d (function cljs$analyzer$record_with_field_QMARK_(tag,field){\nreturn ((cljs.analyzer.record_tag_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(cljs.analyzer.record_basis(tag),field)));\n});\ncljs.analyzer.invalid_arity_QMARK_ \x3d (function cljs$analyzer$invalid_arity_QMARK_(argc,method_params,variadic,max_fixed_arity){\nvar and__5023__auto__ \x3d (!(cljs.analyzer.valid_arity_QMARK_(argc,method_params)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core.not(variadic);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d variadic;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn (argc \x3c max_fixed_arity);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.parse_invoke_STAR_ \x3d (function cljs$analyzer$parse_invoke_STAR_(env,p__38437){\nvar vec__38438 \x3d p__38437;\nvar seq__38439 \x3d cljs.core.seq(vec__38438);\nvar first__38440 \x3d cljs.core.first(seq__38439);\nvar seq__38439__$1 \x3d cljs.core.next(seq__38439);\nvar f \x3d first__38440;\nvar args \x3d seq__38439__$1;\nvar form \x3d vec__38438;\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar fexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,f) : cljs.analyzer.analyze.call(null,enve,f));\nvar argc \x3d cljs.core.count(args);\nvar fn_var_QMARK_ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\n}\n})();\nvar kw_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar cur_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar HO_invoke_QMARK_ \x3d ((cljs.core.boolean$(cljs.analyzer._STAR_cljs_static_fns_STAR_)) \x26\x26 (((cljs.core.not(fn_var_QMARK_)) \x26\x26 ((((!(cljs.analyzer.js_tag_QMARK_(f)))) \x26\x26 ((((!(kw_QMARK_))) \x26\x26 ((!(cljs.analyzer.analyzed_QMARK_(f)))))))))));\nvar bind_f_expr_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!((f instanceof cljs.core.Symbol)))));\nvar bind_args_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!(cljs.analyzer.all_values_QMARK_(args)))));\nif(fn_var_QMARK_){\nvar map__38441_39147 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr);\nvar map__38441_39148__$1 \x3d cljs.core.__destructure_map(map__38441_39147);\nvar variadic_39149 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity_39150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params_39151 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar name_39152 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar ns_39153 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar macro_39154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not((function (){var and__5023__auto__ \x3d goog.string.endsWith(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cur_ns),\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.symbol_identical_QMARK_(cur_ns,ns_39153)) \x26\x26 (macro_39154 \x3d\x3d\x3d true));\n} else {\nreturn and__5023__auto__;\n}\n})());\nif(and__5023__auto__){\nreturn cljs.analyzer.invalid_arity_QMARK_(argc,method_params_39151,variadic_39149,max_fixed_arity_39150);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39152,new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n} else {\n}\n\nif(((kw_QMARK_) \x26\x26 ((!(((((1) \x3d\x3d\x3d argc)) || (((2) \x3d\x3d\x3d argc)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.first(form),new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n\nvar deprecated_QMARK__39160 \x3d new cljs.core.Keyword(null,\x22deprecated\x22,\x22deprecated\x22,1498275348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar no_warn_QMARK__39161 \x3d new cljs.core.Keyword(null,\x22deprecation-nowarn\x22,\x22deprecation-nowarn\x22,-1762828044).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nif(((cljs.core.boolean$(deprecated_QMARK__39160)) \x26\x26 ((!(cljs.core.boolean$(no_warn_QMARK__39161)))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif(((bind_args_QMARK_) || (bind_f_expr_QMARK_))){\nvar arg_syms \x3d ((bind_args_QMARK_)?cljs.core.take.cljs$core$IFn$_invoke$arity$2(argc,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym)):null);\nvar f_sym \x3d ((bind_f_expr_QMARK_)?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22fexpr__\x22):null);\nvar bindings \x3d (function (){var G__38445 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38445__$1 \x3d ((bind_args_QMARK_)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__38445,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arg_syms,args)):G__38445);\nif(bind_f_expr_QMARK_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__38445__$1,f_sym,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.analyzed(f)], 0));\n} else {\nreturn G__38445__$1;\n}\n})();\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar G__38446 \x3d env;\nvar G__38447 \x3d 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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(bindings)))),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$2((new cljs.core.List(null,cljs.analyzer.analyzed(((bind_f_expr_QMARK_)?f_sym:f)),null,(1),null)),((bind_args_QMARK_)?arg_syms:args)))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag], null)),null,(1),null))], 0))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38446,G__38447) : cljs.analyzer.analyze.call(null,G__38446,G__38447));\n} else {\nvar ana_expr \x3d (function (p1__38436_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38436_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38436_SHARP_));\n});\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(ana_expr,args);\nif((((((f instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(f) \x3d\x3d null)))) \x26\x26 (((((1) \x3d\x3d\x3d cljs.core.count(args))) \x26\x26 (cljs.analyzer.record_with_field_QMARK_(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.first(argexprs)),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(f)))))))){\nvar field_access_form \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22.-\x22,cljs.core.name(f)].join(\x27\x27)),args);\nvar _STAR_cljs_warnings_STAR__orig_val__38448 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38449 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38449);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,field_access_form) : cljs.analyzer.analyze.call(null,env,field_access_form));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38448);\n}} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null)], null);\n}\n}\n});\ncljs.analyzer.parse_invoke \x3d (function cljs$analyzer$parse_invoke(env,form){\nvar _STAR_recur_frames_STAR__orig_val__38450 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38451 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38451);\n\ntry{return cljs.analyzer.parse_invoke_STAR_(env,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38450);\n}});\ncljs.analyzer.desugar_dotted_expr \x3d (function cljs$analyzer$desugar_dotted_expr(p__38452){\nvar map__38453 \x3d p__38452;\nvar map__38453__$1 \x3d cljs.core.__destructure_map(map__38453);\nvar expr \x3d map__38453__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38453__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__38454 \x3d op;\nvar G__38454__$1 \x3d (((G__38454 instanceof cljs.core.Keyword))?G__38454.fqn:null);\nswitch (G__38454__$1) {\ncase \x22var\x22:\ncase \x22local\x22:\nif(cljs.analyzer.dotted_symbol_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr))))){\nvar s \x3d cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr));\nvar idx \x3d s.lastIndexOf(\x22.\x22);\nvar _ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((idx + (1)),((s).length)))?null:(function(){throw (new Error(\x22Assert failed: (not\x3d (inc idx) (count s))\x22))})());\nvar prefix \x3d cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx)),cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr)));\nvar field \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1))));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(expr))){\n} else {\nthrow (new Error(\x22Assert failed: (not (:const-expr expr))\x22));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(new cljs.core.List(null,prefix,(new cljs.core.List(null,field,null,(1),null)),(2),null)),(3),null)),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),(function (){var G__38455 \x3d cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(expr,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),prefix,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),prefix], 0)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)], null),prefix),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nreturn (cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1(G__38455) : cljs.analyzer.desugar_dotted_expr.call(null,G__38455));\n})(),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null)], null);\n} else {\nreturn expr;\n}\n\nbreak;\ndefault:\nreturn expr;\n\n}\n});\n/**\n * Finds the var associated with sym\n */\ncljs.analyzer.analyze_symbol \x3d (function cljs$analyzer$analyze_symbol(env,sym){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nvar G__38456 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38456) : cljs.analyzer.analyze_wrap_meta.call(null,G__38456));\n} else {\nvar map__38457 \x3d cljs.core.meta(sym);\nvar map__38457__$1 \x3d cljs.core.__destructure_map(map__38457);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar env__$1 \x3d (((!((line \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):env);\nvar env__$2 \x3d (((!((column \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column):env__$1);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$2,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym], null);\nvar lcls \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env__$2);\nvar temp__5827__auto__ \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(lcls,sym));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar sym_meta \x3d cljs.core.meta(sym);\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar cur_ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$2)));\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,\x22cljs.core\x22);\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d goog.string.endsWith(cur_ns,\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn ((cljs.core.not(goog.string.endsWith(sym_ns,\x22$macros\x22))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cur_ns,(0),(((cur_ns).length) - (7))))));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2([sym_ns,\x22$macros\x22].join(\x27\x27),cljs.core.name(sym)):sym);\nvar info \x3d (((!(cljs.core.contains_QMARK_(sym_meta,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162)))))?cljs.analyzer.resolve_existing_var(env__$2,sym__$1):cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info)),\x22\\n\x22,\x22(:op info)\x22].join(\x27\x27)));\n}\n\nreturn cljs.analyzer.desugar_dotted_expr((((!(new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377).cljs$core$IFn$_invoke$arity$1(env__$2) \x3d\x3d\x3d true)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info),cljs.core.select_keys(info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null)),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar const_expr \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})()], 0)):(function (){var info__$1 \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info__$1], 0)),cljs.core.select_keys(info__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0));\n})()));\n} else {\nvar lb \x3d temp__5827__auto__;\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),lb], 0)),((cljs.core.map_QMARK_(lb))?cljs.core.select_keys(lb,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)):null)], 0));\n}\n}\n});\ncljs.analyzer.excluded_QMARK_ \x3d (function cljs$analyzer$excluded_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.used_QMARK_ \x3d (function cljs$analyzer$used_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.get_expander_ns \x3d (function cljs$analyzer$get_expander_ns(env,nstr){\nvar res \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\n}\n})();\nvar nstr__$1 \x3d (((!((res \x3d\x3d null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(res):nstr);\nif((\x22clojure.core\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM);\n} else {\nif((\x22clojure.repl\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(new cljs.core.Symbol(null,\x22cljs.repl\x22,\x22cljs.repl\x22,1767065658,null));\n} else {\nif(cljs.core.truth_(goog.string.contains(nstr__$1,\x22.\x22))){\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n} else {\nvar or__5025__auto__ \x3d (function (){var G__38458 \x3d env;\nvar G__38458__$1 \x3d (((G__38458 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38458));\nvar G__38458__$2 \x3d (((G__38458__$1 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(G__38458__$1));\nvar G__38458__$3 \x3d (((G__38458__$2 \x3d\x3d null))?null:cljs.core.get.cljs$core$IFn$_invoke$arity$2(G__38458__$2,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1)));\nif((G__38458__$3 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.find_macros_ns(G__38458__$3);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n}\n\n}\n}\n}\n});\ncljs.analyzer.get_expander_STAR_ \x3d (function cljs$analyzer$get_expander_STAR_(sym,env){\nif((((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),sym) \x3d\x3d null)))) || (((cljs.analyzer.excluded_QMARK_(env,sym)) \x26\x26 ((!(cljs.analyzer.used_QMARK_(env,sym)))))))){\nreturn null;\n} else {\nvar nstr \x3d cljs.core.namespace(sym);\nif((!((nstr \x3d\x3d null)))){\nvar ns \x3d cljs.analyzer.get_expander_ns(env,nstr);\nif((!((ns \x3d\x3d null)))){\nreturn ns.findInternedVar(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\n} else {\nreturn null;\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym);\nvar nsym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym__$1);\n} else {\nvar nsym \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym);\nif((((!((nsym \x3d\x3d null)))) \x26\x26 ((nsym instanceof cljs.core.Symbol)))){\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym);\n} else {\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM).findInternedVar(sym);\n}\n\n}\n}\n}\n});\n/**\n * Given a sym, a symbol identifying a macro, and env, an analysis environment\n * return the corresponding Clojure macroexpander.\n */\ncljs.analyzer.get_expander \x3d (function cljs$analyzer$get_expander(sym,env){\nvar mvar \x3d cljs.analyzer.get_expander_STAR_(sym,env);\nif((((!((mvar \x3d\x3d null)))) \x26\x26 (mvar.isMacro()))){\nreturn mvar;\n} else {\nreturn null;\n}\n});\nvar cached_var_39201 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)),new cljs.core.Symbol(null,\x22macroexpand-check\x22,\x22macroexpand-check\x22,699092091,null));\n}),null));\ncljs.analyzer.get_macroexpand_check_var \x3d (function cljs$analyzer$get_macroexpand_check_var(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)) \x3d\x3d null)))){\nreturn cljs.core.deref(cached_var_39201);\n} else {\nreturn null;\n}\n});\ncljs.analyzer.var__GT_sym \x3d (function cljs$analyzer$var__GT_sym(var$){\nreturn var$.sym;\n});\ncljs.analyzer.do_macroexpand_check \x3d (function cljs$analyzer$do_macroexpand_check(env,form,mac_var){\nif(cljs.core.not(new cljs.core.Keyword(null,\x22spec-skip-macros\x22,\x22spec-skip-macros\x22,-645015958).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_))))){\nvar mchk \x3d cljs.analyzer.get_macroexpand_check_var();\nif((!((mchk \x3d\x3d null)))){\ntry{var G__38460 \x3d mac_var;\nvar G__38461 \x3d cljs.core.next(form);\nreturn (mchk.cljs$core$IFn$_invoke$arity$2 ? mchk.cljs$core$IFn$_invoke$arity$2(G__38460,G__38461) : mchk.call(null,G__38460,G__38461));\n}catch (e38459){var e \x3d e38459;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macro-syntax-check\x22,\x22macro-syntax-check\x22,2072602373),cljs.analyzer.var__GT_sym(mac_var)),e);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.check_macro_arity \x3d (function cljs$analyzer$check_macro_arity(mac_var,form){\nvar mac_sym \x3d mac_var.sym;\nvar temp__5825__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_sym)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_sym))], null));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__38463 \x3d temp__5825__auto__;\nvar map__38463__$1 \x3d cljs.core.__destructure_map(map__38463);\nvar variadic_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar argc \x3d cljs.core.count(cljs.core.rest(form));\nvar offset \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22\x26form\x22,\x22\x26form\x22,1482799337,null),cljs.core.ffirst(method_params)))?(2):(0));\nif(cljs.core.truth_(cljs.analyzer.invalid_arity_QMARK_(argc,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38462_SHARP_){\nreturn cljs.core.nthrest(p1__38462_SHARP_,offset);\n}),method_params),variadic_QMARK_,(cljs.core.truth_(max_fixed_arity)?(max_fixed_arity - offset):null)))){\nthrow (new Error(cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),mac_sym], null))));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.macroexpand_1_STAR_ \x3d (function cljs$analyzer$macroexpand_1_STAR_(env,form){\nif(cljs.core.seq_QMARK_(form)){\nvar op \x3d cljs.core.first(form);\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),op)){\ncljs.analyzer.do_macroexpand_check(env,form,cljs.analyzer.get_expander(new cljs.core.Symbol(\x22cljs.core\x22,\x22ns-special-form\x22,\x22cljs.core/ns-special-form\x22,1585185745,null),env));\n} else {\n}\n\nreturn form;\n} else {\nvar temp__5827__auto__ \x3d (((op instanceof cljs.core.Symbol))?cljs.analyzer.get_expander(op,env):null);\nif((temp__5827__auto__ \x3d\x3d null)){\nif((op instanceof cljs.core.Symbol)){\nvar opname \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(op);\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((0)))){\nvar vec__38464 \x3d cljs.core.next(form);\nvar seq__38465 \x3d cljs.core.seq(vec__38464);\nvar first__38466 \x3d cljs.core.first(seq__38465);\nvar seq__38465__$1 \x3d cljs.core.next(seq__38465);\nvar target \x3d first__38466;\nvar args \x3d seq__38465__$1;\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(cljs.analyzer.impl.DOT_SYM,target,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(opname,(1))),args),cljs.core.meta(form));\n} else {\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((opname.length - (1))))){\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.impl.NEW_SYM,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(opname,(0),(((opname).length) - (1)))),cljs.core.next(form)),cljs.core.meta(form));\n} else {\nreturn form;\n\n}\n}\n} else {\nreturn form;\n}\n} else {\nvar mac_var \x3d temp__5827__auto__;\ncljs.analyzer.do_macroexpand_check(env,form,mac_var);\n\nvar form_SINGLEQUOTE_ \x3d (function (){try{cljs.analyzer.check_macro_arity(mac_var,form);\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(mac_var),form,env,cljs.core.rest(form));\n}catch (e38467){var e \x3d e38467;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macroexpansion\x22,\x22macroexpansion\x22,706274075),cljs.analyzer.var__GT_sym(mac_var)),e);\n}})();\nif(cljs.analyzer.impl.cljs_seq_QMARK_(form_SINGLEQUOTE_)){\nvar sym_SINGLEQUOTE_ \x3d cljs.core.first(form_SINGLEQUOTE_);\nvar sym \x3d cljs.core.first(form);\nif(cljs.core.symbol_identical_QMARK_(sym_SINGLEQUOTE_,cljs.analyzer.impl.JS_STAR_SYM)){\nvar sym__$1 \x3d (((!((cljs.core.namespace(sym) \x3d\x3d null))))?sym:cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)));\nvar js_op \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),sym__$1], null);\nvar numeric \x3d (function (){var mac_var_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_var.sym));\nvar mac_var_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_var.sym));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),mac_var_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),mac_var_name,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22numeric\x22,\x22cljs.analyzer/numeric\x22,1415704188)], null));\n})();\nvar js_op__$1 \x3d ((numeric \x3d\x3d\x3d true)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),true):js_op);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(form_SINGLEQUOTE_,cljs.core.merge,js_op__$1);\n} else {\nreturn form_SINGLEQUOTE_;\n}\n} else {\nreturn form_SINGLEQUOTE_;\n}\n}\n}\n} else {\nreturn form;\n}\n});\n/**\n * Given a env, an analysis environment, and form, a ClojureScript form,\n * macroexpand the form once.\n */\ncljs.analyzer.macroexpand_1 \x3d (function cljs$analyzer$macroexpand_1(env,form){\ntry{return cljs.analyzer.macroexpand_1_STAR_(env,form);\n}catch (e38468){var err__8939__auto__ \x3d e38468;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq_STAR_ \x3d (function cljs$analyzer$analyze_seq_STAR_(op,env,form,name,opts){\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nreturn cljs.analyzer.parse.cljs$core$IFn$_invoke$arity$5(op,env,form,name,opts);\n} else {\nreturn cljs.analyzer.parse_invoke(env,form);\n}\n});\ncljs.analyzer.analyze_seq_STAR__wrap \x3d (function cljs$analyzer$analyze_seq_STAR__wrap(op,env,form,name,opts){\ntry{return cljs.analyzer.analyze_seq_STAR_(op,env,form,name,opts);\n}catch (e38469){var err__8939__auto__ \x3d e38469;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq \x3d (function cljs$analyzer$analyze_seq(var_args){\nvar G__38471 \x3d arguments.length;\nswitch (G__38471) {\ncase 3:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\nreturn (cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze_list.call(null,env,form));\n} else {\nvar line \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar line__$1 \x3d (((line \x3d\x3d null))?new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env):line);\nvar col \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar col__$1 \x3d (((col \x3d\x3d null))?new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env):col);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col__$1], 0));\nvar op \x3d cljs.core.first(form);\nif((op \x3d\x3d null)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,\x22Can\x27t call nil\x22);\n} else {\n}\n\nvar mform \x3d cljs.analyzer.macroexpand_1(env__$1,form);\nif((form \x3d\x3d\x3d mform)){\nreturn cljs.analyzer.analyze_seq_STAR__wrap(op,env__$1,form,name,opts);\n} else {\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,mform,name,opts) : cljs.analyzer.analyze.call(null,env__$1,mform,name,opts));\n}\n}\n}));\n\n(cljs.analyzer.analyze_seq.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.analyze_map \x3d (function cljs$analyzer$analyze_map(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ks \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38474 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38475 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38475);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38472_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38472_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38472_SHARP_));\n}),cljs.core.keys(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38474);\n}})();\nvar vs \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38476 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38477 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38477);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38473_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38473_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38473_SHARP_));\n}),cljs.core.vals(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38476);\n}})();\nvar G__38478 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),ks,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMap\x22,\x22cljs.core/IMap\x22,1407777598,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38478) : cljs.analyzer.analyze_wrap_meta.call(null,G__38478));\n});\ncljs.analyzer.analyze_list \x3d (function cljs$analyzer$analyze_list(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38480 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38481 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38481);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38479_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38479_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38479_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38480);\n}})();\nvar G__38482 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38482) : cljs.analyzer.analyze_wrap_meta.call(null,G__38482));\n});\ncljs.analyzer.analyze_vector \x3d (function cljs$analyzer$analyze_vector(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38484 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38485 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38485);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38483_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38483_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38483_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38484);\n}})();\nvar G__38486 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IVector\x22,\x22cljs.core/IVector\x22,1711112835,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38486) : cljs.analyzer.analyze_wrap_meta.call(null,G__38486));\n});\ncljs.analyzer.analyze_set \x3d (function cljs$analyzer$analyze_set(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38488 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38489 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38489);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38487_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38487_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38487_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38488);\n}})();\nvar G__38490 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISet\x22,\x22cljs.core/ISet\x22,2003412810,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38490) : cljs.analyzer.analyze_wrap_meta.call(null,G__38490));\n});\ncljs.analyzer.analyze_js_value \x3d (function cljs$analyzer$analyze_js_value(env,form){\nvar val \x3d form.val;\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nif(cljs.core.map_QMARK_(val)){\nvar keys \x3d cljs.core.vec(cljs.core.keys(val));\nvar vals \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38493 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38494 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38494);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38491_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38491_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38491_SHARP_));\n}),cljs.core.vals(val));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38493);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-object\x22,\x22js-object\x22,1830199158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),keys,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vals,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null)], null);\n} else {\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38495 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38496 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38496);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38492_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38492_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38492_SHARP_));\n}),val);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38495);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-array\x22,\x22js-array\x22,-1210185421),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null)], null);\n}\n});\ncljs.analyzer.record_ns_PLUS_name \x3d (function cljs$analyzer$record_ns_PLUS_name(x){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0)),/\\//));\n});\ncljs.analyzer.analyze_record \x3d (function cljs$analyzer$analyze_record(env,x){\nvar _items_ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38501 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38502 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38502);\n\ntry{var G__38503 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__38504 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38503,G__38504) : cljs.analyzer.analyze.call(null,G__38503,G__38504));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38501);\n}})();\nvar vec__38498 \x3d cljs.analyzer.record_ns_PLUS_name(x);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),x,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null);\n});\ncljs.analyzer.elide_reader_meta \x3d (function cljs$analyzer$elide_reader_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0));\n});\ncljs.analyzer.elide_analyzer_meta \x3d (function cljs$analyzer$elide_analyzer_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162));\n});\ncljs.analyzer.elide_irrelevant_meta \x3d (function cljs$analyzer$elide_irrelevant_meta(m){\nreturn cljs.analyzer.elide_analyzer_meta(cljs.analyzer.elide_reader_meta(m));\n});\ncljs.analyzer.analyze_wrap_meta \x3d (function cljs$analyzer$analyze_wrap_meta(expr){\nvar form \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr);\nvar m \x3d cljs.analyzer.elide_irrelevant_meta(cljs.core.meta(form));\nif((!((cljs.core.seq(m) \x3d\x3d null)))){\nvar env \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr);\nvar expr__$1 \x3d cljs.core.assoc_in(expr,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar meta_expr \x3d cljs.analyzer.analyze_map(new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr__$1),m);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22with-meta\x22,\x22with-meta\x22,-1566856820),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),meta_expr,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n} else {\nreturn expr;\n}\n});\ncljs.analyzer.infer_type \x3d (function cljs$analyzer$infer_type(env,p__38506,_){\nvar map__38507 \x3d p__38506;\nvar map__38507__$1 \x3d cljs.core.__destructure_map(map__38507);\nvar ast \x3d map__38507__$1;\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38507__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif((((tag \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),tag)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),(function (ms){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__38505_SHARP_){\nreturn (cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3(env,p1__38505_SHARP_,_) : cljs.analyzer.infer_type.call(null,env,p1__38505_SHARP_,_));\n})),ms);\n}));\n} else {\nvar temp__5827__auto__ \x3d cljs.analyzer.infer_tag(env,ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn ast;\n} else {\nvar tag__$1 \x3d temp__5827__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1);\n}\n}\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.repl_self_require_QMARK_ \x3d (function cljs$analyzer$repl_self_require_QMARK_(env,deps){\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22repl-env\x22,\x22repl-env\x22,-1976503928).cljs$core$IFn$_invoke$arity$1(env);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.analyzer._STAR_cljs_ns_STAR_]),deps);\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.invoke_arg_type_validators \x3d (function (){var aget_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38508_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38508_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.rest(p1__38508_SHARP_))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nvar aset_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38509_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38509_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.butlast(cljs.core.rest(p1__38509_SHARP_)))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),aset_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),aset_validator], null);\n})();\ncljs.analyzer.check_invoke_arg_types \x3d (function cljs$analyzer$check_invoke_arg_types(env,p__38510,opts){\nvar map__38511 \x3d p__38510;\nvar map__38511__$1 \x3d cljs.core.__destructure_map(map__38511);\nvar ast \x3d map__38511__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38511__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif((((!(cljs.analyzer.analyzed_QMARK_(ast)))) \x26\x26 (cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),op)))){\nvar temp__5829__auto___39264 \x3d cljs.core.find(cljs.analyzer.invoke_arg_type_validators,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(ast))));\nif((temp__5829__auto___39264 \x3d\x3d null)){\n} else {\nvar vec__38512_39271 \x3d temp__5829__auto___39264;\nvar name_39272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(0),null);\nvar map__38515_39273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(1),null);\nvar map__38515_39274__$1 \x3d cljs.core.__destructure_map(map__38515_39273);\nvar valid_QMARK__39275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379));\nvar warning_type_39276 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595));\nvar types_39277 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(ast));\nif(cljs.core.truth_((valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1(types_39277) : valid_QMARK__39275.call(null,types_39277)))){\n} else {\ncljs.analyzer.warning(warning_type_39276,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39272,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),types_39277], null));\n}\n}\n} else {\n}\n\nreturn cljs.analyzer.analyzed(ast);\n});\ncljs.analyzer.analyze_form \x3d (function cljs$analyzer$analyze_form(env,form,name,opts){\nif((form instanceof cljs.core.Symbol)){\nreturn cljs.analyzer.analyze_symbol(env,form);\n} else {\nif(((cljs.analyzer.impl.cljs_seq_QMARK_(form)) \x26\x26 ((!((cljs.core.seq(form) \x3d\x3d null)))))){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,opts);\n} else {\nif(cljs.core.record_QMARK_(form)){\nreturn cljs.analyzer.analyze_record(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_map_QMARK_(form)){\nreturn cljs.analyzer.analyze_map(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_vector_QMARK_(form)){\nreturn cljs.analyzer.analyze_vector(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(form)){\nreturn cljs.analyzer.analyze_set(env,form);\n} else {\nif((form instanceof cljs.core.Keyword)){\nreturn cljs.analyzer.analyze_keyword(env,form);\n} else {\nif((form instanceof cljs.tagged_literals.JSValue)){\nreturn cljs.analyzer.analyze_js_value(env,form);\n} else {\nvar tag \x3d (((form \x3d\x3d null))?cljs.analyzer.impl.CLJ_NIL_SYM:((typeof form \x3d\x3d\x3d \x27number\x27)?cljs.analyzer.impl.NUMBER_SYM:((typeof form \x3d\x3d\x3d \x27string\x27)?cljs.analyzer.impl.STRING_SYM:((form \x3d\x3d\x3d true)?cljs.analyzer.impl.BOOLEAN_SYM:((form \x3d\x3d\x3d false)?cljs.analyzer.impl.BOOLEAN_SYM:((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,form))?new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null):null))))));\nvar G__38516 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\nif(cljs.core.truth_(tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38516,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag);\n} else {\nreturn G__38516;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.analyzer.default_passes \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.infer_type,cljs.analyzer.passes.and_or.optimize,cljs.analyzer.check_invoke_arg_types], null);\ncljs.analyzer.analyze_STAR_ \x3d (function cljs$analyzer$analyze_STAR_(env,form,name,opts){\nvar passes \x3d cljs.analyzer._STAR_passes_STAR_;\nvar passes__$1 \x3d (((passes \x3d\x3d null))?cljs.analyzer.default_passes:passes);\nvar form__$1 \x3d (((form instanceof cljs.core.LazySeq))?((cljs.core.seq(form))?form:cljs.core.List.EMPTY):form);\nvar ast \x3d cljs.analyzer.analyze_form(env,form__$1,name,opts);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(env,ast__$1,opts) : pass.call(null,env,ast__$1,opts));\n}),ast,passes__$1);\n});\n/**\n * Given an environment, a map containing {:locals (mapping of names to bindings), :context\n * (one of :statement, :expr, :return), :ns (a symbol naming the\n * compilation ns)}, and form, returns an expression object (a map\n * containing at least :form, :op and :env keys). If expr has any (immediately)\n * nested exprs, must have a :children entry. This must be a vector of keywords naming\n * the immediately nested fields mapped to an expr or vector of exprs. This will\n * facilitate code walking without knowing the details of the op set.\n */\ncljs.analyzer.analyze \x3d (function cljs$analyzer$analyze(var_args){\nvar G__38518 \x3d arguments.length;\nswitch (G__38518) {\ncase 2:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,form){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(env,form,null);\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\ntry{if(cljs.analyzer.analyzed_QMARK_(form)){\nvar _STAR_cljs_warnings_STAR__orig_val__38520 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38521 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38521);\n\ntry{return cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38520);\n}} else {\nreturn cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}\n}catch (e38519){var err__8939__auto__ \x3d e38519;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}}));\n\n(cljs.analyzer.analyze.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a compiler state and a map from fully qualified symbols to constant\n * EDN values, update the compiler state marking these vars as const to support\n * direct substitution of these vars in source.\n */\ncljs.analyzer.add_consts \x3d (function cljs$analyzer$add_consts(compiler_state,constants_map){\nreturn cljs.core.reduce_kv((function (compiler_state__$1,sym,value){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(compiler_state__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),(function (){var _STAR_passes_STAR__orig_val__38522 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__38523 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__38523);\n\ntry{return cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.empty_env(),value);\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__38522);\n}})()], null));\n}),compiler_state,constants_map);\n});\ncljs.analyzer.resolve_symbol \x3d (function cljs$analyzer$resolve_symbol(sym){\nif(((cljs.core.not(cljs.core.namespace(sym))) \x26\x26 (cljs.analyzer.dotted_symbol_QMARK_(sym)))){\nreturn sym;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1((function (){var _STAR_private_var_access_nowarn_STAR__orig_val__38524 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38525 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38525);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_)),sym);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38524);\n}})());\n}\n});\n/**\n * Get all alias maps for a namespace.\n */\ncljs.analyzer.get_aliases \x3d (function cljs$analyzer$get_aliases(ns){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798))(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(ns)));\n});\nvar registry_ref_39290 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22registry-ref\x22,\x22registry-ref\x22,1975823941,null));\n}),null));\nvar speced_vars_39291 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22-speced-vars\x22,\x22-speced-vars\x22,1758723085,null));\n}),null));\ncljs.analyzer.get_spec_vars \x3d (function cljs$analyzer$get_spec_vars(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)) \x3d\x3d null)))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414),cljs.core.deref(registry_ref_39290),new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988),cljs.core.deref(speced_vars_39291)], null);\n} else {\nreturn null;\n}\n});\n/**\n * Dumps registered speced vars for a given namespace into the compiler\n * environment.\n */\ncljs.analyzer.dump_specs \x3d (function cljs$analyzer$dump_specs(ns){\nvar spec_vars \x3d cljs.analyzer.get_spec_vars();\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry_ref \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p__38526){\nvar vec__38527 \x3d p__38526;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(1),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(k));\n})),cljs.core.deref(cljs.core.deref(registry_ref)))], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar speced_vars \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (v){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(v))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22fdef-ns\x22,\x22fdef-ns\x22,-1602124254).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))));\n})),cljs.core.deref(cljs.core.deref(speced_vars)))], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Registers speced vars found in a namespace analysis cache.\n */\ncljs.analyzer.register_specs \x3d (function cljs$analyzer$register_specs(cached_ns){\nvar map__38530 \x3d cljs.analyzer.get_spec_vars();\nvar map__38530__$1 \x3d cljs.core.__destructure_map(map__38530);\nvar registry_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414));\nvar speced_vars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988));\nvar temp__5825__auto___39295 \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto___39295){\nvar registry_39296 \x3d temp__5825__auto___39295;\nif(cljs.core.truth_(registry_ref)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(registry_ref),cljs.core.into,registry_39296);\n} else {\n}\n} else {\n}\n\nvar temp__5825__auto__ \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto__){\nvar vars \x3d temp__5825__auto__;\nif(cljs.core.truth_(speced_vars)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(speced_vars),cljs.core.into,vars);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_form_seq \x3d (function cljs$analyzer$analyze_form_seq(var_args){\nvar G__38532 \x3d arguments.length;\nswitch (G__38532) {\ncase 1:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (forms){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2(forms,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,opts){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3(forms,opts,false);\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,opts,return_last_QMARK_){\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.empty_env(),new cljs.core.Keyword(null,\x22build-options\x22,\x22build-options\x22,1183685779),opts);\nvar _STAR_file_defs_STAR__orig_val__38533 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nvar _STAR_cljs_ns_STAR__orig_val__38534 \x3d cljs.analyzer._STAR_cljs_ns_STAR_;\nvar _STAR_cljs_file_STAR__orig_val__38535 \x3d cljs.analyzer._STAR_cljs_file_STAR_;\nvar _STAR_alias_map_STAR__orig_val__38536 \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nvar _STAR_file_defs_STAR__temp_val__38537 \x3d null;\nvar _STAR_cljs_ns_STAR__temp_val__38538 \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\nvar _STAR_cljs_file_STAR__temp_val__38539 \x3d null;\nvar _STAR_alias_map_STAR__temp_val__38540 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})();\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__temp_val__38537);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__temp_val__38538);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__temp_val__38539);\n\n(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__temp_val__38540);\n\ntry{var ns \x3d null;\nvar forms__$1 \x3d forms;\nvar last_ast \x3d null;\nwhile(true){\nif((!((forms__$1 \x3d\x3d null)))){\nvar form \x3d cljs.core.first(forms__$1);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ast \x3d cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,form,null,opts);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760))){\nvar G__39303 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__39304 \x3d cljs.core.next(forms__$1);\nvar G__39305 \x3d ast;\nns \x3d G__39303;\nforms__$1 \x3d G__39304;\nlast_ast \x3d G__39305;\ncontinue;\n} else {\nvar G__39306 \x3d ns;\nvar G__39307 \x3d cljs.core.next(forms__$1);\nvar G__39308 \x3d ast;\nns \x3d G__39306;\nforms__$1 \x3d G__39307;\nlast_ast \x3d G__39308;\ncontinue;\n}\n} else {\nif(cljs.core.truth_(return_last_QMARK_)){\nreturn last_ast;\n} else {\nreturn ns;\n}\n}\nbreak;\n}\n}finally {(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__orig_val__38536);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__orig_val__38535);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__orig_val__38534);\n\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__orig_val__38533);\n}}));\n\n(cljs.analyzer.analyze_form_seq.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Ensures that a non-nil defs map exists in the compiler state for a given\n * ns. (A non-nil defs map signifies that the namespace has been analyzed.)\n */\ncljs.analyzer.ensure_defs \x3d (function cljs$analyzer$ensure_defs(ns){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null),(function (p1__38541_SHARP_){\nvar or__5025__auto__ \x3d p1__38541_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.api.js", true, "goog.provide(\x27cljs.analyzer.api\x27);\n/**\n * Creates an empty compilation state Atom\x3cMap\x3e. The optional opts arg is a map\n * representing the compiler configuration. See the documentation\n * for details: https://clojurescript.org/reference/compiler-options\n */\ncljs.analyzer.api.empty_state \x3d (function cljs$analyzer$api$empty_state(var_args){\nvar G__38543 \x3d arguments.length;\nswitch (G__38543) {\ncase 0:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn cljs.env._STAR_compiler_STAR_;\n} else {\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n}\n}));\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(opts);\n}));\n\n(cljs.analyzer.api.empty_state.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the current compiler state atom.\n */\ncljs.analyzer.api.current_state \x3d (function cljs$analyzer$api$current_state(){\nreturn cljs.env._STAR_compiler_STAR_;\n});\n/**\n * Return the current file under analysis or compilation.\n */\ncljs.analyzer.api.current_file \x3d (function cljs$analyzer$api$current_file(){\nreturn cljs.analyzer._STAR_cljs_file_STAR_;\n});\n/**\n * Return the current ns under analysis or compilation.\n */\ncljs.analyzer.api.current_ns \x3d (function cljs$analyzer$api$current_ns(){\nreturn cljs.analyzer._STAR_cljs_ns_STAR_;\n});\n/**\n * Creates an empty analysis environment.\n */\ncljs.analyzer.api.empty_env \x3d (function cljs$analyzer$api$empty_env(){\nreturn cljs.analyzer.empty_env();\n});\n/**\n * Test if the given warning-type is enabled.\n */\ncljs.analyzer.api.warning_enabled_QMARK_ \x3d (function cljs$analyzer$api$warning_enabled_QMARK_(warning_type){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_.call(null,warning_type);\n});\n/**\n * The default warning handler.\n * \n * Outputs the warning messages to *err*.\n */\ncljs.analyzer.api.default_warning_handler \x3d (function cljs$analyzer$api$default_warning_handler(warning_type,env,extra){\nreturn cljs.analyzer.default_warning_handler(warning_type,env,extra);\n});\n/**\n * Helper for generating the standard analyzer messages for warnings. Should be\n * passed warn-type and warn-info. See with-warning-handlers.\n */\ncljs.analyzer.api.warning_message \x3d (function cljs$analyzer$api$warning_message(warn_type,warn_info){\nreturn cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warn_type,warn_info);\n});\n/**\n * Get the enabled warning types.\n */\ncljs.analyzer.api.enabled_warnings \x3d (function cljs$analyzer$api$enabled_warnings(){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_;\n});\n/**\n * Return the compiler options from compiler state.\n */\ncljs.analyzer.api.get_options \x3d (function cljs$analyzer$api$get_options(var_args){\nvar G__38546 \x3d arguments.length;\nswitch (G__38546) {\ncase 0:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n}));\n\n(cljs.analyzer.api.get_options.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the currently computed Google Closure js dependency index from the\n * compiler state.\n */\ncljs.analyzer.api.get_js_index \x3d (function cljs$analyzer$api$get_js_index(var_args){\nvar G__38567 \x3d arguments.length;\nswitch (G__38567) {\ncase 0:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131));\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * ClojureScript\x27s default analysis passes.\n */\ncljs.analyzer.api.default_passes \x3d cljs.analyzer.default_passes;\n/**\n * Given an analysis environment resolve a var. Analogous to\n * clojure.core/resolve\n */\ncljs.analyzer.api.resolve \x3d (function cljs$analyzer$api$resolve(env,sym){\nif(cljs.core.map_QMARK_(env)){\n} else {\nthrow (new Error(\x22Assert failed: (map? env)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__38601 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38602 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38602);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists_throw());\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38601);\n}}catch (e38600){var e \x3d e38600;\nreturn cljs.analyzer.resolve_macro_var(env,sym);\n}});\n/**\n * Return all namespaces. Analagous to clojure.core/all-ns but\n * returns symbols identifying namespaces not Namespace instances.\n */\ncljs.analyzer.api.all_ns \x3d (function cljs$analyzer$api$all_ns(var_args){\nvar G__38604 \x3d arguments.length;\nswitch (G__38604) {\ncase 0:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1(cljs.env._STAR_compiler_STAR_);\n}));\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.keys(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)));\n}));\n\n(cljs.analyzer.api.all_ns.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Given a namespace return the corresponding namespace analysis map. Analagous\n * to clojure.core/find-ns.\n */\ncljs.analyzer.api.find_ns \x3d (function cljs$analyzer$api$find_ns(var_args){\nvar G__38606 \x3d arguments.length;\nswitch (G__38606) {\ncase 1:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,sym);\n}));\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),sym], null));\n}));\n\n(cljs.analyzer.api.find_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return the corresponding namespace analysis map, throwing an\n * exception if not found. Analagous to clojure.core/the-ns.\n */\ncljs.analyzer.api.the_ns \x3d (function cljs$analyzer$api$the_ns(var_args){\nvar G__38608 \x3d arguments.length;\nswitch (G__38608) {\ncase 1:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nvar or__5025__auto__ \x3d cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(state,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22No namespace found: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),sym], null));\n}\n}));\n\n(cljs.analyzer.api.the_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the var analysis maps. Analagous to\n * clojure.core/ns-interns but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_interns \x3d (function cljs$analyzer$api$ns_interns(var_args){\nvar G__38613 \x3d arguments.length;\nswitch (G__38613) {\ncase 1:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nvar ns__$1 \x3d cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(state,ns);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431).cljs$core$IFn$_invoke$arity$1(ns__$1),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717).cljs$core$IFn$_invoke$arity$1(ns__$1)], 0));\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the public var analysis maps. Analagous to\n * clojure.core/ns-publics but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_publics \x3d (function cljs$analyzer$api$ns_publics(var_args){\nvar G__38616 \x3d arguments.length;\nswitch (G__38616) {\ncase 1:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38619){\nvar vec__38620 \x3d p__38619;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(1),null);\nreturn new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(v);\n}),cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(state,ns)));\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace and a symbol return the corresponding var analysis map.\n * Analagous to clojure.core/ns-resolve but returns var analysis map not Var.\n */\ncljs.analyzer.api.ns_resolve \x3d (function cljs$analyzer$api$ns_resolve(var_args){\nvar G__38624 \x3d arguments.length;\nswitch (G__38624) {\ncase 2:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,sym){\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3(cljs.env._STAR_compiler_STAR_,ns,sym);\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3 \x3d (function (state,ns,sym){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes the namespace named by the symbol.\n */\ncljs.analyzer.api.remove_ns \x3d (function cljs$analyzer$api$remove_ns(var_args){\nvar G__38640 \x3d arguments.length;\nswitch (G__38640) {\ncase 1:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns], 0));\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.macros.js", true, "goog.provide(\x27intemporal.internal.macros\x27);\nintemporal.internal.macros.cljs_available_QMARK_ \x3d false;\n"); -SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76165 \x3d arguments.length;\nvar i__5750__auto___76166 \x3d (0);\nwhile(true){\nif((i__5750__auto___76166 \x3c len__5749__auto___76165)){\nargs__5755__auto__.push((arguments[i__5750__auto___76166]));\n\nvar G__76167 \x3d (i__5750__auto___76166 + (1));\ni__5750__auto___76166 \x3d G__76167;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__76099){\nvar map__76100 \x3d p__76099;\nvar map__76100__$1 \x3d cljs.core.__destructure_map(map__76100);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76100__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76100__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__76168__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__76101 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76102 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76102);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__76103 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76103 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76103);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76104 \x3d err;\nif((G__76104 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76104);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__76105 \x3d err;\nif((G__76105 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__76105);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76101);\n}};\nvar G__76168 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__76169__i \x3d 0, G__76169__a \x3d new Array(arguments.length - 0);\nwhile (G__76169__i \x3c G__76169__a.length) {G__76169__a[G__76169__i] \x3d arguments[G__76169__i + 0]; ++G__76169__i;}\n args \x3d new cljs.core.IndexedSeq(G__76169__a,0,null);\n} \nreturn G__76168__delegate.call(this,args);};\nG__76168.cljs$lang$maxFixedArity \x3d 0;\nG__76168.cljs$lang$applyTo \x3d (function (arglist__76170){\nvar args \x3d cljs.core.seq(arglist__76170);\nreturn G__76168__delegate(args);\n});\nG__76168.cljs$core$IFn$_invoke$arity$variadic \x3d G__76168__delegate;\nreturn G__76168;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq76097){\nvar G__76098 \x3d cljs.core.first(seq76097);\nvar seq76097__$1 \x3d cljs.core.next(seq76097);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76098,seq76097__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k76107,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__76111 \x3d k76107;\nvar G__76111__$1 \x3d (((G__76111 instanceof cljs.core.Keyword))?G__76111.fqn:null);\nswitch (G__76111__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k76107,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__76112){\nvar vec__76113 \x3d p__76112;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76113,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76113,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__76106){\nvar self__ \x3d this;\nvar G__76106__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__76106__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this76108,other76109){\nvar self__ \x3d this;\nvar this76108__$1 \x3d this;\nreturn (((!((other76109 \x3d\x3d null)))) \x26\x26 ((((this76108__$1.constructor \x3d\x3d\x3d other76109.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76108__$1.seq_num,other76109.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76108__$1.__extmap,other76109.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k76107){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__76116 \x3d k76107;\nvar G__76116__$1 \x3d (((G__76116 instanceof cljs.core.Keyword))?G__76116.fqn:null);\nswitch (G__76116__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k76107);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__76106){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__76117 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__76118 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__76117.cljs$core$IFn$_invoke$arity$2 ? pred__76117.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76118) : pred__76117.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76118)))){\nreturn (new intemporal.core.AsyncHandle(G__76106,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__76106),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__76106){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__76106,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__76110){\nvar extmap__5365__auto__ \x3d (function (){var G__76120 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__76110,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__76110)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__76120);\n} else {\nreturn G__76120;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__76110),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__76121 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76121 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76121);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76122 \x3d err;\nif((G__76122 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76122);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e76123){if((e76123 instanceof Error)){\nvar e \x3d e76123;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e76123;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76173 \x3d arguments.length;\nvar i__5750__auto___76174 \x3d (0);\nwhile(true){\nif((i__5750__auto___76174 \x3c len__5749__auto___76173)){\nargs__5755__auto__.push((arguments[i__5750__auto___76174]));\n\nvar G__76175 \x3d (i__5750__auto___76174 + (1));\ni__5750__auto___76174 \x3d G__76175;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__76127){\nvar map__76128 \x3d p__76127;\nvar map__76128__$1 \x3d cljs.core.__destructure_map(map__76128);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76128__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__76129 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76129 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76129);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76130 \x3d err;\nif((G__76130 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76130);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq76124){\nvar G__76125 \x3d cljs.core.first(seq76124);\nvar seq76124__$1 \x3d cljs.core.next(seq76124);\nvar G__76126 \x3d cljs.core.first(seq76124__$1);\nvar seq76124__$2 \x3d cljs.core.next(seq76124__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76125,G__76126,seq76124__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76176 \x3d arguments.length;\nvar i__5750__auto___76177 \x3d (0);\nwhile(true){\nif((i__5750__auto___76177 \x3c len__5749__auto___76176)){\nargs__5755__auto__.push((arguments[i__5750__auto___76177]));\n\nvar G__76178 \x3d (i__5750__auto___76177 + (1));\ni__5750__auto___76177 \x3d G__76178;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq76131){\nvar G__76132 \x3d cljs.core.first(seq76131);\nvar seq76131__$1 \x3d cljs.core.next(seq76131);\nvar G__76133 \x3d cljs.core.first(seq76131__$1);\nvar seq76131__$2 \x3d cljs.core.next(seq76131__$1);\nvar G__76134 \x3d cljs.core.first(seq76131__$2);\nvar seq76131__$3 \x3d cljs.core.next(seq76131__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76132,G__76133,G__76134,seq76131__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76179 \x3d arguments.length;\nvar i__5750__auto___76180 \x3d (0);\nwhile(true){\nif((i__5750__auto___76180 \x3c len__5749__auto___76179)){\nargs__5755__auto__.push((arguments[i__5750__auto___76180]));\n\nvar G__76181 \x3d (i__5750__auto___76180 + (1));\ni__5750__auto___76180 \x3d G__76181;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76140,workflow_id,workflow_fn,args,p__76141){\nvar map__76142 \x3d p__76140;\nvar map__76142__$1 \x3d cljs.core.__destructure_map(map__76142);\nvar engine \x3d map__76142__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76142__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__76143 \x3d p__76141;\nvar map__76143__$1 \x3d cljs.core.__destructure_map(map__76143);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76143__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76143__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq76135){\nvar G__76136 \x3d cljs.core.first(seq76135);\nvar seq76135__$1 \x3d cljs.core.next(seq76135);\nvar G__76137 \x3d cljs.core.first(seq76135__$1);\nvar seq76135__$2 \x3d cljs.core.next(seq76135__$1);\nvar G__76138 \x3d cljs.core.first(seq76135__$2);\nvar seq76135__$3 \x3d cljs.core.next(seq76135__$2);\nvar G__76139 \x3d cljs.core.first(seq76135__$3);\nvar seq76135__$4 \x3d cljs.core.next(seq76135__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76136,G__76137,G__76138,G__76139,seq76135__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76182 \x3d arguments.length;\nvar i__5750__auto___76183 \x3d (0);\nwhile(true){\nif((i__5750__auto___76183 \x3c len__5749__auto___76182)){\nargs__5755__auto__.push((arguments[i__5750__auto___76183]));\n\nvar G__76184 \x3d (i__5750__auto___76183 + (1));\ni__5750__auto___76183 \x3d G__76184;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__76149){\nvar map__76150 \x3d p__76149;\nvar map__76150__$1 \x3d cljs.core.__destructure_map(map__76150);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76150__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__76151_76185 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76152_76186 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76152_76186);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76151_76185);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq76144){\nvar G__76145 \x3d cljs.core.first(seq76144);\nvar seq76144__$1 \x3d cljs.core.next(seq76144);\nvar G__76146 \x3d cljs.core.first(seq76144__$1);\nvar seq76144__$2 \x3d cljs.core.next(seq76144__$1);\nvar G__76147 \x3d cljs.core.first(seq76144__$2);\nvar seq76144__$3 \x3d cljs.core.next(seq76144__$2);\nvar G__76148 \x3d cljs.core.first(seq76144__$3);\nvar seq76144__$4 \x3d cljs.core.next(seq76144__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76145,G__76146,G__76147,G__76148,seq76144__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__76153_76187 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__76154_76188 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__76154_76188);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__76153_76187);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__76155_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__76155_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76189 \x3d arguments.length;\nvar i__5750__auto___76190 \x3d (0);\nwhile(true){\nif((i__5750__auto___76190 \x3c len__5749__auto___76189)){\nargs__5755__auto__.push((arguments[i__5750__auto___76190]));\n\nvar G__76191 \x3d (i__5750__auto___76190 + (1));\ni__5750__auto___76190 \x3d G__76191;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76157){\nvar map__76158 \x3d p__76157;\nvar map__76158__$1 \x3d cljs.core.__destructure_map(map__76158);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76158__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76158__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq76156){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq76156));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__76160 \x3d arguments.length;\nswitch (G__76160) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__76161){\nvar map__76162 \x3d p__76161;\nvar map__76162__$1 \x3d cljs.core.__destructure_map(map__76162);\nvar engine \x3d map__76162__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76162__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76162__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__76163,grace_period_secs){\nvar map__76164 \x3d p__76163;\nvar map__76164__$1 \x3d cljs.core.__destructure_map(map__76164);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76164__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76164__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37709 \x3d arguments.length;\nvar i__5750__auto___37710 \x3d (0);\nwhile(true){\nif((i__5750__auto___37710 \x3c len__5749__auto___37709)){\nargs__5755__auto__.push((arguments[i__5750__auto___37710]));\n\nvar G__37711 \x3d (i__5750__auto___37710 + (1));\ni__5750__auto___37710 \x3d G__37711;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__37642){\nvar map__37643 \x3d p__37642;\nvar map__37643__$1 \x3d cljs.core.__destructure_map(map__37643);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37643__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37643__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__37712__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__37645 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37646 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37646);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__37647 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37647 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37647);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37648 \x3d err;\nif((G__37648 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37648);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__37649 \x3d err;\nif((G__37649 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__37649);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37645);\n}};\nvar G__37712 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__37721__i \x3d 0, G__37721__a \x3d new Array(arguments.length - 0);\nwhile (G__37721__i \x3c G__37721__a.length) {G__37721__a[G__37721__i] \x3d arguments[G__37721__i + 0]; ++G__37721__i;}\n args \x3d new cljs.core.IndexedSeq(G__37721__a,0,null);\n} \nreturn G__37712__delegate.call(this,args);};\nG__37712.cljs$lang$maxFixedArity \x3d 0;\nG__37712.cljs$lang$applyTo \x3d (function (arglist__37722){\nvar args \x3d cljs.core.seq(arglist__37722);\nreturn G__37712__delegate(args);\n});\nG__37712.cljs$core$IFn$_invoke$arity$variadic \x3d G__37712__delegate;\nreturn G__37712;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq37640){\nvar G__37641 \x3d cljs.core.first(seq37640);\nvar seq37640__$1 \x3d cljs.core.next(seq37640);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37641,seq37640__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k37651,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__37655 \x3d k37651;\nvar G__37655__$1 \x3d (((G__37655 instanceof cljs.core.Keyword))?G__37655.fqn:null);\nswitch (G__37655__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k37651,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__37656){\nvar vec__37657 \x3d p__37656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__37650){\nvar self__ \x3d this;\nvar G__37650__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__37650__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this37652,other37653){\nvar self__ \x3d this;\nvar this37652__$1 \x3d this;\nreturn (((!((other37653 \x3d\x3d null)))) \x26\x26 ((((this37652__$1.constructor \x3d\x3d\x3d other37653.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37652__$1.seq_num,other37653.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37652__$1.__extmap,other37653.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k37651){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__37660 \x3d k37651;\nvar G__37660__$1 \x3d (((G__37660 instanceof cljs.core.Keyword))?G__37660.fqn:null);\nswitch (G__37660__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k37651);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__37650){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__37661 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__37662 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__37661.cljs$core$IFn$_invoke$arity$2 ? pred__37661.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__37662) : pred__37661.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__37662)))){\nreturn (new intemporal.core.AsyncHandle(G__37650,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__37650),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__37650){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__37650,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__37654){\nvar extmap__5365__auto__ \x3d (function (){var G__37664 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__37654,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__37654)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__37664);\n} else {\nreturn G__37664;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__37654),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__37665 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37665 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37665);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37666 \x3d err;\nif((G__37666 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37666);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e37667){if((e37667 instanceof Error)){\nvar e \x3d e37667;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e37667;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37834 \x3d arguments.length;\nvar i__5750__auto___37836 \x3d (0);\nwhile(true){\nif((i__5750__auto___37836 \x3c len__5749__auto___37834)){\nargs__5755__auto__.push((arguments[i__5750__auto___37836]));\n\nvar G__37837 \x3d (i__5750__auto___37836 + (1));\ni__5750__auto___37836 \x3d G__37837;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__37671){\nvar map__37672 \x3d p__37671;\nvar map__37672__$1 \x3d cljs.core.__destructure_map(map__37672);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37672__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__37673 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37673 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37673);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37674 \x3d err;\nif((G__37674 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37674);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq37668){\nvar G__37669 \x3d cljs.core.first(seq37668);\nvar seq37668__$1 \x3d cljs.core.next(seq37668);\nvar G__37670 \x3d cljs.core.first(seq37668__$1);\nvar seq37668__$2 \x3d cljs.core.next(seq37668__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37669,G__37670,seq37668__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37871 \x3d arguments.length;\nvar i__5750__auto___37872 \x3d (0);\nwhile(true){\nif((i__5750__auto___37872 \x3c len__5749__auto___37871)){\nargs__5755__auto__.push((arguments[i__5750__auto___37872]));\n\nvar G__37874 \x3d (i__5750__auto___37872 + (1));\ni__5750__auto___37872 \x3d G__37874;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq37675){\nvar G__37676 \x3d cljs.core.first(seq37675);\nvar seq37675__$1 \x3d cljs.core.next(seq37675);\nvar G__37677 \x3d cljs.core.first(seq37675__$1);\nvar seq37675__$2 \x3d cljs.core.next(seq37675__$1);\nvar G__37678 \x3d cljs.core.first(seq37675__$2);\nvar seq37675__$3 \x3d cljs.core.next(seq37675__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37676,G__37677,G__37678,seq37675__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37889 \x3d arguments.length;\nvar i__5750__auto___37891 \x3d (0);\nwhile(true){\nif((i__5750__auto___37891 \x3c len__5749__auto___37889)){\nargs__5755__auto__.push((arguments[i__5750__auto___37891]));\n\nvar G__37895 \x3d (i__5750__auto___37891 + (1));\ni__5750__auto___37891 \x3d G__37895;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37684,workflow_id,workflow_fn,args,p__37685){\nvar map__37686 \x3d p__37684;\nvar map__37686__$1 \x3d cljs.core.__destructure_map(map__37686);\nvar engine \x3d map__37686__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37687 \x3d p__37685;\nvar map__37687__$1 \x3d cljs.core.__destructure_map(map__37687);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37687__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37687__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq37679){\nvar G__37680 \x3d cljs.core.first(seq37679);\nvar seq37679__$1 \x3d cljs.core.next(seq37679);\nvar G__37681 \x3d cljs.core.first(seq37679__$1);\nvar seq37679__$2 \x3d cljs.core.next(seq37679__$1);\nvar G__37682 \x3d cljs.core.first(seq37679__$2);\nvar seq37679__$3 \x3d cljs.core.next(seq37679__$2);\nvar G__37683 \x3d cljs.core.first(seq37679__$3);\nvar seq37679__$4 \x3d cljs.core.next(seq37679__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37680,G__37681,G__37682,G__37683,seq37679__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37917 \x3d arguments.length;\nvar i__5750__auto___37920 \x3d (0);\nwhile(true){\nif((i__5750__auto___37920 \x3c len__5749__auto___37917)){\nargs__5755__auto__.push((arguments[i__5750__auto___37920]));\n\nvar G__37921 \x3d (i__5750__auto___37920 + (1));\ni__5750__auto___37920 \x3d G__37921;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__37693){\nvar map__37694 \x3d p__37693;\nvar map__37694__$1 \x3d cljs.core.__destructure_map(map__37694);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37694__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__37695_37929 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37696_37930 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37696_37930);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37695_37929);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq37688){\nvar G__37689 \x3d cljs.core.first(seq37688);\nvar seq37688__$1 \x3d cljs.core.next(seq37688);\nvar G__37690 \x3d cljs.core.first(seq37688__$1);\nvar seq37688__$2 \x3d cljs.core.next(seq37688__$1);\nvar G__37691 \x3d cljs.core.first(seq37688__$2);\nvar seq37688__$3 \x3d cljs.core.next(seq37688__$2);\nvar G__37692 \x3d cljs.core.first(seq37688__$3);\nvar seq37688__$4 \x3d cljs.core.next(seq37688__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37689,G__37690,G__37691,G__37692,seq37688__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__37697_37949 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37698_37950 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37698_37950);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37697_37949);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__37699_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__37699_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37952 \x3d arguments.length;\nvar i__5750__auto___37954 \x3d (0);\nwhile(true){\nif((i__5750__auto___37954 \x3c len__5749__auto___37952)){\nargs__5755__auto__.push((arguments[i__5750__auto___37954]));\n\nvar G__37955 \x3d (i__5750__auto___37954 + (1));\ni__5750__auto___37954 \x3d G__37955;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37701){\nvar map__37702 \x3d p__37701;\nvar map__37702__$1 \x3d cljs.core.__destructure_map(map__37702);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37702__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq37700){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37700));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__37704 \x3d arguments.length;\nswitch (G__37704) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__37705){\nvar map__37706 \x3d p__37705;\nvar map__37706__$1 \x3d cljs.core.__destructure_map(map__37706);\nvar engine \x3d map__37706__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37706__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37706__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__37707,grace_period_secs){\nvar map__37708 \x3d p__37707;\nvar map__37708__$1 \x3d cljs.core.__destructure_map(map__37708);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37708__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37708__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); -SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file +SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file From 3bf9b4dde2298b213cfcb83ffdbfeec48674b2de Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 21:51:33 +0000 Subject: [PATCH 73/81] add migraitons --- docker/fdb.cluster | 2 +- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 322 +++++++++--------- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/main.js | 2 +- public/js/shared.js | 2 +- .../20260215214002-initial-schema.down.sql | 5 + .../20260215214002-initial-schema.up.sql | 22 ++ src/intemporal/store/jdbc.clj | 65 ++-- test/intemporal/tests/store/fdb_test.clj | 15 +- test/intemporal/tests/store/jdbc_test.clj | 16 +- 11 files changed, 235 insertions(+), 220 deletions(-) create mode 100644 resources/migrations/postgres/20260215214002-initial-schema.down.sql create mode 100644 resources/migrations/postgres/20260215214002-initial-schema.up.sql diff --git a/docker/fdb.cluster b/docker/fdb.cluster index fc3b14b..1e658b5 100644 --- a/docker/fdb.cluster +++ b/docker/fdb.cluster @@ -1 +1 @@ -docker:docker@192.168.107.2:4500 +docker:docker@172.19.0.2:4500 diff --git a/public/js/automata.js b/public/js/automata.js index cd2da50..4eb59c7 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39165 \x3d cljs.core._EQ_;\nvar expr__39166 \x3d event;\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39165.cljs$core$IFn$_invoke$arity$2 ? pred__39165.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39166) : pred__39165.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39166)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39172,reject_fn_39171){\nvar loop_fn_39168 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39168(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39169,err_39170){\nif((!((err_39170 \x3d\x3d null)))){\nreturn (reject_fn_39171.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39171.cljs$core$IFn$_invoke$arity$1(err_39170) : reject_fn_39171.call(null,err_39170));\n} else {\nif(promesa.core.recur_QMARK_(res_39169)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39168,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39169));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39172.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39172.cljs$core$IFn$_invoke$arity$1(res_39169) : resolve_fn_39172.call(null,res_39169));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39168(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39173(s__39174){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39174__$1 \x3d s__39174;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39174__$1);\nif(temp__5825__auto__){\nvar s__39174__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39174__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39174__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39176 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39175 \x3d (0);\nwhile(true){\nif((i__39175 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39175);\ncljs.core.chunk_append(b__39176,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39199 \x3d (i__39175 + (1));\ni__39175 \x3d G__39199;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39176),intemporal$automata$render_table_BANG__$_iter__39173(cljs.core.chunk_rest(s__39174__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39176),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39174__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39173(cljs.core.rest(s__39174__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39177(s__39178){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39178__$1 \x3d s__39178;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39178__$1);\nif(temp__5825__auto__){\nvar s__39178__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39178__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39178__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39180 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39179 \x3d (0);\nwhile(true){\nif((i__39179 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39179);\ncljs.core.chunk_append(b__39180,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(s__39182){\nreturn (new cljs.core.LazySeq(null,((function (i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39182__$1 \x3d s__39182;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39182__$1);\nif(temp__5825__auto____$1){\nvar s__39182__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39182__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39182__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39184 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39183 \x3d (0);\nwhile(true){\nif((i__39183 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39183);\ncljs.core.chunk_append(b__39184,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39200 \x3d (i__39183 + (1));\ni__39183 \x3d G__39200;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39184),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(cljs.core.chunk_rest(s__39182__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39184),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39182__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39181(cljs.core.rest(s__39182__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39179,r,c__5501__auto__,size__5502__auto__,b__39180,s__39178__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39201 \x3d (i__39179 + (1));\ni__39179 \x3d G__39201;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39180),intemporal$automata$render_table_BANG__$_iter__39177(cljs.core.chunk_rest(s__39178__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39180),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39178__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39178__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(s__39186){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39186__$1 \x3d s__39186;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39186__$1);\nif(temp__5825__auto____$1){\nvar s__39186__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39186__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39186__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39188 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39187 \x3d (0);\nwhile(true){\nif((i__39187 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39187);\ncljs.core.chunk_append(b__39188,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39202 \x3d (i__39187 + (1));\ni__39187 \x3d G__39202;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39188),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(cljs.core.chunk_rest(s__39186__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39188),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39186__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39177_$_iter__39185(cljs.core.rest(s__39186__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39178__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39177(cljs.core.rest(s__39178__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx39189 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39190 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39191 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39191);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39190);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39192 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39193 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39193);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39192);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39194 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39195 \x3d workflow_ctx39189;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39195);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39196 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39197 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39198 \x3d workflow_ctx39196;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39198);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39197);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39194);\n}})());\n}));\n}));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39676 \x3d cljs.core._EQ_;\nvar expr__39677 \x3d event;\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39683,reject_fn_39682){\nvar loop_fn_39679 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39679(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39680,err_39681){\nif((!((err_39681 \x3d\x3d null)))){\nreturn (reject_fn_39682.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39682.cljs$core$IFn$_invoke$arity$1(err_39681) : reject_fn_39682.call(null,err_39681));\n} else {\nif(promesa.core.recur_QMARK_(res_39680)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39679,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39680));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39683.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39683.cljs$core$IFn$_invoke$arity$1(res_39680) : resolve_fn_39683.call(null,res_39680));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39679(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39693(s__39694){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39694__$1 \x3d s__39694;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39694__$1);\nif(temp__5825__auto__){\nvar s__39694__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39694__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39694__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39696 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39695 \x3d (0);\nwhile(true){\nif((i__39695 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39695);\ncljs.core.chunk_append(b__39696,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39757 \x3d (i__39695 + (1));\ni__39695 \x3d G__39757;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39696),intemporal$automata$render_table_BANG__$_iter__39693(cljs.core.chunk_rest(s__39694__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39696),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39694__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39693(cljs.core.rest(s__39694__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39707(s__39708){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39708__$1 \x3d s__39708;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39708__$1);\nif(temp__5825__auto__){\nvar s__39708__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39708__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39708__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39710 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39709 \x3d (0);\nwhile(true){\nif((i__39709 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39709);\ncljs.core.chunk_append(b__39710,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(s__39715){\nreturn (new cljs.core.LazySeq(null,((function (i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39715__$1 \x3d s__39715;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39715__$1);\nif(temp__5825__auto____$1){\nvar s__39715__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39715__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39715__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39717 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39716 \x3d (0);\nwhile(true){\nif((i__39716 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39716);\ncljs.core.chunk_append(b__39717,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39762 \x3d (i__39716 + (1));\ni__39716 \x3d G__39762;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39717),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(cljs.core.chunk_rest(s__39715__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39717),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39715__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(cljs.core.rest(s__39715__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39763 \x3d (i__39709 + (1));\ni__39709 \x3d G__39763;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39710),intemporal$automata$render_table_BANG__$_iter__39707(cljs.core.chunk_rest(s__39708__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39710),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39708__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(s__39726){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39726__$1 \x3d s__39726;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39726__$1);\nif(temp__5825__auto____$1){\nvar s__39726__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39726__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39726__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39728 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39727 \x3d (0);\nwhile(true){\nif((i__39727 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39727);\ncljs.core.chunk_append(b__39728,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39764 \x3d (i__39727 + (1));\ni__39727 \x3d G__39764;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39728),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(cljs.core.chunk_rest(s__39726__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39728),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39726__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(cljs.core.rest(s__39726__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39708__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39707(cljs.core.rest(s__39708__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx39734 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39738 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39739 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39739);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39738);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39740 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39741 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39741);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39740);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39745 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39746 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39746);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39747 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39748 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39749 \x3d workflow_ctx39747;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39749);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39748);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39745);\n}})());\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index 0360d5f..e603d13 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -11,7 +11,7 @@ return (1); */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_39116 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_39780 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -29,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_39116(this$,a); +return intemporal$doc$MyActivities$foo$dyn_39780(this$,a); } }); @@ -66,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k39071,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k39685,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__39075 = k39071; -switch (G__39075) { +var G__39692 = k39685; +switch (G__39692) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39071,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39685,else__5326__auto__); } })); @@ -80,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39071,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39076){ -var vec__39077 = p__39076; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39697){ +var vec__39698 = p__39697; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -97,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__39070){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__39684){ var self__ = this; -var G__39070__$1 = this; -return (new cljs.core.RecordIter((0),G__39070__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__39684__$1 = this; +return (new cljs.core.RecordIter((0),G__39684__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -137,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this39072,other39073){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this39686,other39687){ var self__ = this; -var this39072__$1 = this; -return (((!((other39073 == null)))) && ((((this39072__$1.constructor === other39073.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39072__$1.__extmap,other39073.__extmap))))); +var this39686__$1 = this; +return (((!((other39687 == null)))) && ((((this39686__$1.constructor === other39687.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39686__$1.__extmap,other39687.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -153,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k39071){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k39685){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k39071); +return cljs.core.contains_QMARK_(self__.__extmap,k39685); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__39070){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__39684){ var self__ = this; var this__5331__auto____$1 = this; -var pred__39080 = cljs.core.keyword_identical_QMARK_; -var expr__39081 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39070),null)); +var pred__39729 = cljs.core.keyword_identical_QMARK_; +var expr__39730 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39684),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -173,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__39070){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__39684){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__39070,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__39684,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -223,12 +223,12 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__39074){ -var extmap__5365__auto__ = (function (){var G__39083 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39074); -if(cljs.core.record_QMARK_(G__39074)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39083); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__39688){ +var extmap__5365__auto__ = (function (){var G__39733 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39688); +if(cljs.core.record_QMARK_(G__39688)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39733); } else { -return G__39083; +return G__39733; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); @@ -241,113 +241,113 @@ return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__536 * @implements {cljs.core.IMeta} * @implements {cljs.core.IWithMeta} */ -intemporal.doc.t_intemporal$doc39087 = (function (i,sf,protocols39084,registry39085,meta39088){ +intemporal.doc.t_intemporal$doc39742 = (function (i,sf,protocols39735,registry39736,meta39743){ this.i = i; this.sf = sf; -this.protocols39084 = protocols39084; -this.registry39085 = registry39085; -this.meta39088 = meta39088; +this.protocols39735 = protocols39735; +this.registry39736 = registry39736; +this.meta39743 = meta39743; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }); -(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_39089,meta39088__$1){ +(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_39744,meta39743__$1){ var self__ = this; -var _39089__$1 = this; -return (new intemporal.doc.t_intemporal$doc39087(self__.i,self__.sf,self__.protocols39084,self__.registry39085,meta39088__$1)); +var _39744__$1 = this; +return (new intemporal.doc.t_intemporal$doc39742(self__.i,self__.sf,self__.protocols39735,self__.registry39736,meta39743__$1)); })); -(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_39089){ +(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_39744){ var self__ = this; -var _39089__$1 = this; -return self__.meta39088; +var _39744__$1 = this; +return self__.meta39743; })); -(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); +(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); -(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ +(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ var self__ = this; var this__38237__auto____$1 = this; var f__38238__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); return f__38238__auto__(a); })); -(intemporal.doc.t_intemporal$doc39087.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols39084","protocols39084",-2142512373,null),new cljs.core.Symbol(null,"registry39085","registry39085",-682446983,null),new cljs.core.Symbol(null,"meta39088","meta39088",1404223621,null)], null); +(intemporal.doc.t_intemporal$doc39742.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols39735","protocols39735",-11622702,null),new cljs.core.Symbol(null,"registry39736","registry39736",925937843,null),new cljs.core.Symbol(null,"meta39743","meta39743",1262580585,null)], null); })); -(intemporal.doc.t_intemporal$doc39087.cljs$lang$type = true); +(intemporal.doc.t_intemporal$doc39742.cljs$lang$type = true); -(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc39087"); +(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc39742"); -(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc39087"); +(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ +return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc39742"); })); /** - * Positional factory function for intemporal.doc/t_intemporal$doc39087. + * Positional factory function for intemporal.doc/t_intemporal$doc39742. */ -intemporal.doc.__GT_t_intemporal$doc39087 = (function intemporal$doc$__GT_t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088){ -return (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088)); +intemporal.doc.__GT_t_intemporal$doc39742 = (function intemporal$doc$__GT_t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743){ +return (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743)); }); intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ var sf = intemporal.core.stub(intemporal.doc.activity_fn); -var pr = (function (){var protocols39084 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var registry39085 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var temp__5825__auto___39118 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39084,intemporal.doc.MyActivities); -if(cljs.core.truth_(temp__5825__auto___39118)){ -var impl39086_39119 = temp__5825__auto___39118; -intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39085,(function() { -var G__39120__delegate = function (args__38236__auto__){ -return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39086_39119,args__38236__auto__); +var pr = (function (){var protocols39735 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var registry39736 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var temp__5825__auto___39782 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39735,intemporal.doc.MyActivities); +if(cljs.core.truth_(temp__5825__auto___39782)){ +var impl39737_39783 = temp__5825__auto___39782; +intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39736,(function() { +var G__39784__delegate = function (args__38236__auto__){ +return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39737_39783,args__38236__auto__); }; -var G__39120 = function (var_args){ +var G__39784 = function (var_args){ var args__38236__auto__ = null; if (arguments.length > 0) { -var G__39121__i = 0, G__39121__a = new Array(arguments.length - 0); -while (G__39121__i < G__39121__a.length) {G__39121__a[G__39121__i] = arguments[G__39121__i + 0]; ++G__39121__i;} - args__38236__auto__ = new cljs.core.IndexedSeq(G__39121__a,0,null); +var G__39785__i = 0, G__39785__a = new Array(arguments.length - 0); +while (G__39785__i < G__39785__a.length) {G__39785__a[G__39785__i] = arguments[G__39785__i + 0]; ++G__39785__i;} + args__38236__auto__ = new cljs.core.IndexedSeq(G__39785__a,0,null); } -return G__39120__delegate.call(this,args__38236__auto__);}; -G__39120.cljs$lang$maxFixedArity = 0; -G__39120.cljs$lang$applyTo = (function (arglist__39122){ -var args__38236__auto__ = cljs.core.seq(arglist__39122); -return G__39120__delegate(args__38236__auto__); +return G__39784__delegate.call(this,args__38236__auto__);}; +G__39784.cljs$lang$maxFixedArity = 0; +G__39784.cljs$lang$applyTo = (function (arglist__39786){ +var args__38236__auto__ = cljs.core.seq(arglist__39786); +return G__39784__delegate(args__38236__auto__); }); -G__39120.cljs$core$IFn$_invoke$arity$variadic = G__39120__delegate; -return G__39120; +G__39784.cljs$core$IFn$_invoke$arity$variadic = G__39784__delegate; +return G__39784; })() ,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),"intemporal.doc/foo"], 0)); } else { } -return (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,null)); +return (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,null)); })(); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); -var workflow_ctx39090 = intemporal.internal.context._STAR_workflow_context_STAR_; +var workflow_ctx39750 = intemporal.internal.context._STAR_workflow_context_STAR_; return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39091 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39092 = workflow_ctx39090; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39092); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39751 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39752 = workflow_ctx39750; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39752); try{return sres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39091); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39751); }})()),(function (v1){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39093 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39094 = workflow_ctx39090; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39094); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39753 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39754 = workflow_ctx39750; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39754); try{return pres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39093); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39753); }})()),(function (v2){ -return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39095 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39096 = workflow_ctx39090; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39096); +return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39755 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39756 = workflow_ctx39750; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39756); try{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39095); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39755); }})()); })); })); @@ -361,25 +361,25 @@ return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ var header = new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"event-type","event-type",319722813),new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.Keyword(null,"timestamp","timestamp",579478971),new cljs.core.Keyword(null,"seq","seq",-1817803783),new cljs.core.Keyword(null,"activity-name","activity-name",-294600638),new cljs.core.Keyword(null,"result","result",1415092211)], null); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39097(s__39098){ +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39758(s__39759){ return (new cljs.core.LazySeq(null,(function (){ -var s__39098__$1 = s__39098; +var s__39759__$1 = s__39759; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__39098__$1); +var temp__5825__auto__ = cljs.core.seq(s__39759__$1); if(temp__5825__auto__){ -var s__39098__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__39098__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39098__$2); +var s__39759__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__39759__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39759__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39100 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39099 = (0); +var b__39761 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39760 = (0); while(true){ -if((i__39099 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__39099); -cljs.core.chunk_append(b__39100,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__39760 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__39760); +cljs.core.chunk_append(b__39761,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__39123 = (i__39099 + (1)); -i__39099 = G__39123; +var G__39787 = (i__39760 + (1)); +i__39760 = G__39787; continue; } else { return true; @@ -387,13 +387,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39100),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.chunk_rest(s__39098__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39761),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.chunk_rest(s__39759__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39100),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39761),null); } } else { -var h = cljs.core.first(s__39098__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.rest(s__39098__$2))); +var h = cljs.core.first(s__39759__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.rest(s__39759__$2))); } } else { return null; @@ -404,42 +404,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39101(s__39102){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39765(s__39766){ return (new cljs.core.LazySeq(null,(function (){ -var s__39102__$1 = s__39102; +var s__39766__$1 = s__39766; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__39102__$1); +var temp__5825__auto__ = cljs.core.seq(s__39766__$1); if(temp__5825__auto__){ -var s__39102__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__39102__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39102__$2); +var s__39766__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__39766__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39766__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39104 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39103 = (0); +var b__39768 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39767 = (0); while(true){ -if((i__39103 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__39103); -cljs.core.chunk_append(b__39104,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(s__39106){ -return (new cljs.core.LazySeq(null,((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){ +if((i__39767 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__39767); +cljs.core.chunk_append(b__39768,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(s__39770){ +return (new cljs.core.LazySeq(null,((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__39106__$1 = s__39106; +var s__39770__$1 = s__39770; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__39106__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__39770__$1); if(temp__5825__auto____$1){ -var s__39106__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__39106__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__39106__$2); +var s__39770__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__39770__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__39770__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__39108 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__39107 = (0); +var b__39772 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__39771 = (0); while(true){ -if((i__39107 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__39107); -cljs.core.chunk_append(b__39108,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__39771 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__39771); +cljs.core.chunk_append(b__39772,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__39124 = (i__39107 + (1)); -i__39107 = G__39124; +var G__39788 = (i__39771 + (1)); +i__39771 = G__39788; continue; } else { return true; @@ -447,28 +447,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39108),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.chunk_rest(s__39106__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39772),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.chunk_rest(s__39770__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39108),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39772),null); } } else { -var h = cljs.core.first(s__39106__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.rest(s__39106__$2))); +var h = cljs.core.first(s__39770__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.rest(s__39770__$2))); } } else { return null; } break; } -});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead)) +});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead)) +});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__39125 = (i__39103 + (1)); -i__39103 = G__39125; +var G__39789 = (i__39767 + (1)); +i__39767 = G__39789; continue; } else { return true; @@ -476,32 +476,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39104),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.chunk_rest(s__39102__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39768),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.chunk_rest(s__39766__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39104),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39768),null); } } else { -var r = cljs.core.first(s__39102__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__39102__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(s__39110){ +var r = cljs.core.first(s__39766__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__39766__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(s__39774){ return (new cljs.core.LazySeq(null,(function (){ -var s__39110__$1 = s__39110; +var s__39774__$1 = s__39774; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__39110__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__39774__$1); if(temp__5825__auto____$1){ -var s__39110__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__39110__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39110__$2); +var s__39774__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__39774__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__39774__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39112 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39111 = (0); +var b__39776 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__39775 = (0); while(true){ -if((i__39111 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__39111); -cljs.core.chunk_append(b__39112,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__39775 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__39775); +cljs.core.chunk_append(b__39776,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__39126 = (i__39111 + (1)); -i__39111 = G__39126; +var G__39790 = (i__39775 + (1)); +i__39775 = G__39790; continue; } else { return true; @@ -509,13 +509,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39112),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.chunk_rest(s__39110__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__39776),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.chunk_rest(s__39774__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39112),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__39776),null); } } else { -var h = cljs.core.first(s__39110__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.rest(s__39110__$2))); +var h = cljs.core.first(s__39774__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.rest(s__39774__$2))); } } else { return null; @@ -523,10 +523,10 @@ return null; break; } }),null,null)); -});})(r,s__39102__$2,temp__5825__auto__,header,thead)) +});})(r,s__39766__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.rest(s__39102__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.rest(s__39766__$2))); } } else { return null; @@ -549,11 +549,11 @@ return console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$a intemporal.doc.init = (function intemporal$doc$init(){ var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow",new cljs.core.Keyword(null,"protocols","protocols",-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0)); -return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39113 = intemporal.internal.context._STAR_workflow_context_STAR_; +return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39777 = intemporal.internal.context._STAR_workflow_context_STAR_; return promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){ -var _STAR_workflow_context_STAR__orig_val__39114 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39115 = workflow_ctx39113; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39115); +var _STAR_workflow_context_STAR__orig_val__39778 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__39779 = workflow_ctx39777; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39779); try{return (function (r){ console.log("res",cljs.core.clj__GT_js(r)); @@ -562,7 +562,7 @@ intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$v return intemporal.doc.render_tables_BANG_(engine,"my-wflow"); })(res__37297__auto__); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39114); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39778); }})); })(),(function (r){ console.error("error",r); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index bb493d4..302356f 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k39071","else__5326__auto__","G__39075","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__39076","vec__39077","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__39070","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this39072","other39073","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__39080","cljs.core/keyword-identical?","expr__39081","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__39074","extmap__5365__auto__","G__39083","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols39084","intemporal.internal.context/current-context","registry39085","temp__5825__auto__","impl39086","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc39087","sres","pres","workflow-ctx39090","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__39091","*workflow-context*-temp-val__39092","*workflow-context*-orig-val__39093","*workflow-context*-temp-val__39094","*workflow-context*-orig-val__39095","*workflow-context*-temp-val__39096","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__39098","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__39100","cljs.core/chunk-buffer","i__39099","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__39097","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__39102","b__39104","i__39103","iter__39101","r","s__39106","b__39108","i__39107","iter__39105","s__39110","b__39112","i__39111","iter__39109","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx39113","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__39114","*workflow-context*-temp-val__39115","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k39685","else__5326__auto__","G__39692","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__39697","vec__39698","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__39684","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this39686","other39687","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__39729","cljs.core/keyword-identical?","expr__39730","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__39688","extmap__5365__auto__","G__39733","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols39735","intemporal.internal.context/current-context","registry39736","temp__5825__auto__","impl39737","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc39742","sres","pres","workflow-ctx39750","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__39751","*workflow-context*-temp-val__39752","*workflow-context*-orig-val__39753","*workflow-context*-temp-val__39754","*workflow-context*-orig-val__39755","*workflow-context*-temp-val__39756","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__39759","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__39761","cljs.core/chunk-buffer","i__39760","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__39758","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__39766","b__39768","i__39767","iter__39765","r","s__39770","b__39772","i__39771","iter__39769","s__39774","b__39776","i__39775","iter__39773","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx39777","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__39778","*workflow-context*-temp-val__39779","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 671f99a..81ab193 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_39116 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_39116(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39071,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39075 \x3d k39071;\nswitch (G__39075) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39071,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39076){\nvar vec__39077 \x3d p__39076;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39077,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39070){\nvar self__ \x3d this;\nvar G__39070__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39070__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39072,other39073){\nvar self__ \x3d this;\nvar this39072__$1 \x3d this;\nreturn (((!((other39073 \x3d\x3d null)))) \x26\x26 ((((this39072__$1.constructor \x3d\x3d\x3d other39073.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39072__$1.__extmap,other39073.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39071){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39071);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39070){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39081 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39070),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39070){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__39070,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__39074){\nvar extmap__5365__auto__ \x3d (function (){var G__39083 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39074);\nif(cljs.core.record_QMARK_(G__39074)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39083);\n} else {\nreturn G__39083;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc39087 \x3d (function (i,sf,protocols39084,registry39085,meta39088){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols39084 \x3d protocols39084;\nthis.registry39085 \x3d registry39085;\nthis.meta39088 \x3d meta39088;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_39089,meta39088__$1){\nvar self__ \x3d this;\nvar _39089__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc39087(self__.i,self__.sf,self__.protocols39084,self__.registry39085,meta39088__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc39087.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_39089){\nvar self__ \x3d this;\nvar _39089__$1 \x3d this;\nreturn self__.meta39088;\n}));\n\n(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc39087.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc39087.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols39084\x22,\x22protocols39084\x22,-2142512373,null),new cljs.core.Symbol(null,\x22registry39085\x22,\x22registry39085\x22,-682446983,null),new cljs.core.Symbol(null,\x22meta39088\x22,\x22meta39088\x22,1404223621,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc39087\x22);\n\n(intemporal.doc.t_intemporal$doc39087.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc39087\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc39087.\n */\nintemporal.doc.__GT_t_intemporal$doc39087 \x3d (function intemporal$doc$__GT_t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088){\nreturn (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,meta39088));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols39084 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry39085 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___39118 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39084,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___39118)){\nvar impl39086_39119 \x3d temp__5825__auto___39118;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39085,(function() { \nvar G__39120__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39086_39119,args__38236__auto__);\n};\nvar G__39120 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39121__i \x3d 0, G__39121__a \x3d new Array(arguments.length - 0);\nwhile (G__39121__i \x3c G__39121__a.length) {G__39121__a[G__39121__i] \x3d arguments[G__39121__i + 0]; ++G__39121__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__39121__a,0,null);\n} \nreturn G__39120__delegate.call(this,args__38236__auto__);};\nG__39120.cljs$lang$maxFixedArity \x3d 0;\nG__39120.cljs$lang$applyTo \x3d (function (arglist__39122){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__39122);\nreturn G__39120__delegate(args__38236__auto__);\n});\nG__39120.cljs$core$IFn$_invoke$arity$variadic \x3d G__39120__delegate;\nreturn G__39120;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc39087(i,sf,protocols39084,registry39085,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx39090 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39091 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39092 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39092);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39091);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39093 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39094 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39094);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39093);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39095 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39096 \x3d workflow_ctx39090;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39096);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39095);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39097(s__39098){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39098__$1 \x3d s__39098;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39098__$1);\nif(temp__5825__auto__){\nvar s__39098__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39098__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39098__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39100 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39099 \x3d (0);\nwhile(true){\nif((i__39099 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39099);\ncljs.core.chunk_append(b__39100,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39123 \x3d (i__39099 + (1));\ni__39099 \x3d G__39123;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39100),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.chunk_rest(s__39098__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39100),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39098__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39097(cljs.core.rest(s__39098__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39101(s__39102){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39102__$1 \x3d s__39102;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39102__$1);\nif(temp__5825__auto__){\nvar s__39102__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39102__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39102__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39104 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39103 \x3d (0);\nwhile(true){\nif((i__39103 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39103);\ncljs.core.chunk_append(b__39104,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(s__39106){\nreturn (new cljs.core.LazySeq(null,((function (i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39106__$1 \x3d s__39106;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39106__$1);\nif(temp__5825__auto____$1){\nvar s__39106__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39106__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39106__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39108 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39107 \x3d (0);\nwhile(true){\nif((i__39107 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39107);\ncljs.core.chunk_append(b__39108,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39124 \x3d (i__39107 + (1));\ni__39107 \x3d G__39124;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39108),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.chunk_rest(s__39106__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39108),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39106__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39105(cljs.core.rest(s__39106__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39103,r,c__5501__auto__,size__5502__auto__,b__39104,s__39102__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39125 \x3d (i__39103 + (1));\ni__39103 \x3d G__39125;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39104),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.chunk_rest(s__39102__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39104),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39102__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39102__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(s__39110){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39110__$1 \x3d s__39110;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39110__$1);\nif(temp__5825__auto____$1){\nvar s__39110__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39110__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39110__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39112 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39111 \x3d (0);\nwhile(true){\nif((i__39111 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39111);\ncljs.core.chunk_append(b__39112,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39126 \x3d (i__39111 + (1));\ni__39111 \x3d G__39126;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39112),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.chunk_rest(s__39110__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39112),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39110__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39101_$_iter__39109(cljs.core.rest(s__39110__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39102__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__39101(cljs.core.rest(s__39102__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39113 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39114 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39115 \x3d workflow_ctx39113;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39115);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39114);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_39780 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_39780(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39685,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39692 \x3d k39685;\nswitch (G__39692) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39685,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39697){\nvar vec__39698 \x3d p__39697;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39684){\nvar self__ \x3d this;\nvar G__39684__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39684__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39686,other39687){\nvar self__ \x3d this;\nvar this39686__$1 \x3d this;\nreturn (((!((other39687 \x3d\x3d null)))) \x26\x26 ((((this39686__$1.constructor \x3d\x3d\x3d other39687.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39686__$1.__extmap,other39687.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39685){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39685);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39684){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39729 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39730 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39684),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39684){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__39684,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__39688){\nvar extmap__5365__auto__ \x3d (function (){var G__39733 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39688);\nif(cljs.core.record_QMARK_(G__39688)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39733);\n} else {\nreturn G__39733;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc39742 \x3d (function (i,sf,protocols39735,registry39736,meta39743){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols39735 \x3d protocols39735;\nthis.registry39736 \x3d registry39736;\nthis.meta39743 \x3d meta39743;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_39744,meta39743__$1){\nvar self__ \x3d this;\nvar _39744__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc39742(self__.i,self__.sf,self__.protocols39735,self__.registry39736,meta39743__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_39744){\nvar self__ \x3d this;\nvar _39744__$1 \x3d this;\nreturn self__.meta39743;\n}));\n\n(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc39742.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols39735\x22,\x22protocols39735\x22,-11622702,null),new cljs.core.Symbol(null,\x22registry39736\x22,\x22registry39736\x22,925937843,null),new cljs.core.Symbol(null,\x22meta39743\x22,\x22meta39743\x22,1262580585,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc39742\x22);\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc39742\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc39742.\n */\nintemporal.doc.__GT_t_intemporal$doc39742 \x3d (function intemporal$doc$__GT_t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743){\nreturn (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols39735 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry39736 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___39782 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39735,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___39782)){\nvar impl39737_39783 \x3d temp__5825__auto___39782;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39736,(function() { \nvar G__39784__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39737_39783,args__38236__auto__);\n};\nvar G__39784 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39785__i \x3d 0, G__39785__a \x3d new Array(arguments.length - 0);\nwhile (G__39785__i \x3c G__39785__a.length) {G__39785__a[G__39785__i] \x3d arguments[G__39785__i + 0]; ++G__39785__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__39785__a,0,null);\n} \nreturn G__39784__delegate.call(this,args__38236__auto__);};\nG__39784.cljs$lang$maxFixedArity \x3d 0;\nG__39784.cljs$lang$applyTo \x3d (function (arglist__39786){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__39786);\nreturn G__39784__delegate(args__38236__auto__);\n});\nG__39784.cljs$core$IFn$_invoke$arity$variadic \x3d G__39784__delegate;\nreturn G__39784;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx39750 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39751 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39752 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39752);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39751);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39753 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39754 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39754);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39753);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39755 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39756 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39756);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39755);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39758(s__39759){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39759__$1 \x3d s__39759;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39759__$1);\nif(temp__5825__auto__){\nvar s__39759__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39759__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39759__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39761 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39760 \x3d (0);\nwhile(true){\nif((i__39760 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39760);\ncljs.core.chunk_append(b__39761,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39787 \x3d (i__39760 + (1));\ni__39760 \x3d G__39787;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39761),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.chunk_rest(s__39759__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39761),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39759__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.rest(s__39759__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39765(s__39766){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39766__$1 \x3d s__39766;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39766__$1);\nif(temp__5825__auto__){\nvar s__39766__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39766__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39766__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39768 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39767 \x3d (0);\nwhile(true){\nif((i__39767 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39767);\ncljs.core.chunk_append(b__39768,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(s__39770){\nreturn (new cljs.core.LazySeq(null,((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39770__$1 \x3d s__39770;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39770__$1);\nif(temp__5825__auto____$1){\nvar s__39770__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39770__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39770__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39772 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39771 \x3d (0);\nwhile(true){\nif((i__39771 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39771);\ncljs.core.chunk_append(b__39772,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39788 \x3d (i__39771 + (1));\ni__39771 \x3d G__39788;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39772),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.chunk_rest(s__39770__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39772),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39770__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.rest(s__39770__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39789 \x3d (i__39767 + (1));\ni__39767 \x3d G__39789;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39768),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.chunk_rest(s__39766__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39768),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39766__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(s__39774){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39774__$1 \x3d s__39774;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39774__$1);\nif(temp__5825__auto____$1){\nvar s__39774__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39774__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39774__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39776 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39775 \x3d (0);\nwhile(true){\nif((i__39775 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39775);\ncljs.core.chunk_append(b__39776,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39790 \x3d (i__39775 + (1));\ni__39775 \x3d G__39790;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39776),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.chunk_rest(s__39774__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39776),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39774__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.rest(s__39774__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39766__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.rest(s__39766__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39777 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39778 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39779 \x3d workflow_ctx39777;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39779);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39778);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index b09c8b2..368876f 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1623,6 +1623,6 @@ SHADOW_ENV.evalLoad("cljs.tagged_literals.js", true, "goog.provide(\x27cljs.tagg SHADOW_ENV.evalLoad("cljs.analyzer.js", true, "goog.provide(\x27cljs.analyzer\x27);\ncljs.analyzer._STAR_cljs_ns_STAR_ \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\ncljs.analyzer._STAR_cljs_file_STAR_ \x3d null;\ncljs.analyzer._STAR_checked_arrays_STAR_ \x3d false;\ncljs.analyzer._STAR_check_alias_dupes_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_static_fns_STAR_ \x3d false;\ncljs.analyzer._STAR_fn_invoke_direct_STAR_ \x3d false;\ncljs.analyzer._STAR_cljs_macros_path_STAR_ \x3d \x22/cljs/core\x22;\ncljs.analyzer._STAR_cljs_macros_is_classpath_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d cljs.core.with_meta(cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558),cljs.core.PersistentVector.EMPTY], null));\ncljs.analyzer._STAR_analyze_deps_STAR_ \x3d true;\ncljs.analyzer._STAR_load_tests_STAR_ \x3d true;\ncljs.analyzer._STAR_load_macros_STAR_ \x3d true;\ncljs.analyzer._STAR_reload_macros_STAR_ \x3d false;\ncljs.analyzer._STAR_macro_infer_STAR_ \x3d true;\ncljs.analyzer._STAR_passes_STAR_ \x3d null;\ncljs.analyzer._STAR_file_defs_STAR_ \x3d null;\ncljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d false;\n/**\n * The namespace of the constants table as a symbol.\n */\ncljs.analyzer.constants_ns_sym \x3d new cljs.core.Symbol(null,\x22cljs.core.constants\x22,\x22cljs.core.constants\x22,2057417066,null);\ncljs.analyzer._STAR_verbose_STAR_ \x3d false;\ncljs.analyzer._cljs_macros_loaded \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\ncljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217)],[true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);\ncljs.analyzer.unchecked_arrays_QMARK_ \x3d (function cljs$analyzer$unchecked_arrays_QMARK_(){\nreturn cljs.core._STAR_unchecked_arrays_STAR_;\n});\ncljs.analyzer.compiler_options \x3d (function cljs$analyzer$compiler_options(){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n});\ncljs.analyzer.get_externs \x3d (function cljs$analyzer$get_externs(){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n});\n/**\n * Returns false-y, :warn, or :error based on configuration and the\n * current value of *unchecked-arrays*.\n */\ncljs.analyzer.checked_arrays \x3d (function cljs$analyzer$checked_arrays(){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22advanced\x22,\x22advanced\x22,-451287892),new cljs.core.Keyword(null,\x22optimizations\x22,\x22optimizations\x22,-2047476854).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options()))) \x26\x26 ((!(cljs.core._STAR_unchecked_arrays_STAR_))))){\nreturn cljs.analyzer._STAR_checked_arrays_STAR_;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.js_reserved \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 63, [\x22typeof\x22,null,\x22float\x22,null,\x22implements\x22,null,\x22else\x22,null,\x22boolean\x22,null,\x22abstract\x22,null,\x22int\x22,null,\x22static\x22,null,\x22package\x22,null,\x22this\x22,null,\x22await\x22,null,\x22yield\x22,null,\x22interface\x22,null,\x22void\x22,null,\x22delete\x22,null,\x22class\x22,null,\x22export\x22,null,\x22var\x22,null,\x22try\x22,null,\x22long\x22,null,\x22null\x22,null,\x22return\x22,null,\x22methods\x22,null,\x22native\x22,null,\x22private\x22,null,\x22new\x22,null,\x22for\x22,null,\x22catch\x22,null,\x22extends\x22,null,\x22short\x22,null,\x22protected\x22,null,\x22throws\x22,null,\x22synchronized\x22,null,\x22transient\x22,null,\x22super\x22,null,\x22if\x22,null,\x22let\x22,null,\x22import\x22,null,\x22char\x22,null,\x22switch\x22,null,\x22const\x22,null,\x22case\x22,null,\x22break\x22,null,\x22volatile\x22,null,\x22function\x22,null,\x22continue\x22,null,\x22final\x22,null,\x22do\x22,null,\x22double\x22,null,\x22while\x22,null,\x22public\x22,null,\x22arguments\x22,null,\x22debugger\x22,null,\x22with\x22,null,\x22instanceof\x22,null,\x22default\x22,null,\x22throw\x22,null,\x22goto\x22,null,\x22finally\x22,null,\x22byte\x22,null,\x22constructor\x22,null,\x22in\x22,null,\x22enum\x22,null], null), null);\ncljs.analyzer.es5_allowed \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [\x22default\x22,null], null), null);\ncljs.analyzer.SENTINEL \x3d ({});\ncljs.analyzer.gets \x3d (function cljs$analyzer$gets(var_args){\nvar G__34418 \x3d arguments.length;\nswitch (G__34418) {\ncase 3:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k0,k1){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,k1);\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k0,k1,k2){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$2,k2);\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k0,k1,k2,k3){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$2,k2,cljs.analyzer.SENTINEL);\nif((m__$3 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$3,k3);\n}\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.analyzer.munge_path \x3d (function cljs$analyzer$munge_path(ss){\nreturn cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ss));\n});\n/**\n * Given a namespace as a symbol return the relative path. May optionally\n * provide the file extension, defaults to :cljs.\n */\ncljs.analyzer.ns__GT_relpath \x3d (function cljs$analyzer$ns__GT_relpath(var_args){\nvar G__34433 \x3d arguments.length;\nswitch (G__34433) {\ncase 1:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629));\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,ext){\nreturn [clojure.string.replace(cljs.analyzer.munge_path(ns),\x22.\x22,\x22/\x22),\x22.\x22,cljs.core.name(ext)].join(\x27\x27);\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.topo_sort \x3d (function cljs$analyzer$topo_sort(var_args){\nvar G__34450 \x3d arguments.length;\nswitch (G__34450) {\ncase 2:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,get_deps){\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(x,(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.sorted_map()),cljs.core.memoize(get_deps));\n}));\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,depth,state,memo_get_deps){\nvar deps \x3d (memo_get_deps.cljs$core$IFn$_invoke$arity$1 ? memo_get_deps.cljs$core$IFn$_invoke$arity$1(x) : memo_get_deps.call(null,x));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [depth], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\nvar seq__34465_38549 \x3d cljs.core.seq(deps);\nvar chunk__34466_38550 \x3d null;\nvar count__34467_38551 \x3d (0);\nvar i__34468_38552 \x3d (0);\nwhile(true){\nif((i__34468_38552 \x3c count__34467_38551)){\nvar dep_38553 \x3d chunk__34466_38550.cljs$core$IIndexed$_nth$arity$2(null,i__34468_38552);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38553,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38555 \x3d seq__34465_38549;\nvar G__38556 \x3d chunk__34466_38550;\nvar G__38557 \x3d count__34467_38551;\nvar G__38558 \x3d (i__34468_38552 + (1));\nseq__34465_38549 \x3d G__38555;\nchunk__34466_38550 \x3d G__38556;\ncount__34467_38551 \x3d G__38557;\ni__34468_38552 \x3d G__38558;\ncontinue;\n} else {\nvar temp__5825__auto___38559 \x3d cljs.core.seq(seq__34465_38549);\nif(temp__5825__auto___38559){\nvar seq__34465_38560__$1 \x3d temp__5825__auto___38559;\nif(cljs.core.chunked_seq_QMARK_(seq__34465_38560__$1)){\nvar c__5548__auto___38561 \x3d cljs.core.chunk_first(seq__34465_38560__$1);\nvar G__38562 \x3d cljs.core.chunk_rest(seq__34465_38560__$1);\nvar G__38563 \x3d c__5548__auto___38561;\nvar G__38564 \x3d cljs.core.count(c__5548__auto___38561);\nvar G__38565 \x3d (0);\nseq__34465_38549 \x3d G__38562;\nchunk__34466_38550 \x3d G__38563;\ncount__34467_38551 \x3d G__38564;\ni__34468_38552 \x3d G__38565;\ncontinue;\n} else {\nvar dep_38566 \x3d cljs.core.first(seq__34465_38560__$1);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38566,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38568 \x3d cljs.core.next(seq__34465_38560__$1);\nvar G__38569 \x3d null;\nvar G__38570 \x3d (0);\nvar G__38571 \x3d (0);\nseq__34465_38549 \x3d G__38568;\nchunk__34466_38550 \x3d G__38569;\ncount__34467_38551 \x3d G__38570;\ni__34468_38552 \x3d G__38571;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__34477_38572 \x3d cljs.core.seq(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(state),cljs.core._LT_,depth));\nvar chunk__34478_38573 \x3d null;\nvar count__34479_38574 \x3d (0);\nvar i__34480_38575 \x3d (0);\nwhile(true){\nif((i__34480_38575 \x3c count__34479_38574)){\nvar vec__34492_38576 \x3d chunk__34478_38573.cljs$core$IIndexed$_nth$arity$2(null,i__34480_38575);\nvar _LT_depth_38577 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(0),null);\nvar __38578 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38577], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38579 \x3d seq__34477_38572;\nvar G__38580 \x3d chunk__34478_38573;\nvar G__38581 \x3d count__34479_38574;\nvar G__38582 \x3d (i__34480_38575 + (1));\nseq__34477_38572 \x3d G__38579;\nchunk__34478_38573 \x3d G__38580;\ncount__34479_38574 \x3d G__38581;\ni__34480_38575 \x3d G__38582;\ncontinue;\n} else {\nvar temp__5825__auto___38583 \x3d cljs.core.seq(seq__34477_38572);\nif(temp__5825__auto___38583){\nvar seq__34477_38584__$1 \x3d temp__5825__auto___38583;\nif(cljs.core.chunked_seq_QMARK_(seq__34477_38584__$1)){\nvar c__5548__auto___38585 \x3d cljs.core.chunk_first(seq__34477_38584__$1);\nvar G__38586 \x3d cljs.core.chunk_rest(seq__34477_38584__$1);\nvar G__38587 \x3d c__5548__auto___38585;\nvar G__38588 \x3d cljs.core.count(c__5548__auto___38585);\nvar G__38589 \x3d (0);\nseq__34477_38572 \x3d G__38586;\nchunk__34478_38573 \x3d G__38587;\ncount__34479_38574 \x3d G__38588;\ni__34480_38575 \x3d G__38589;\ncontinue;\n} else {\nvar vec__34497_38590 \x3d cljs.core.first(seq__34477_38584__$1);\nvar _LT_depth_38591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(0),null);\nvar __38592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38591], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38593 \x3d cljs.core.next(seq__34477_38584__$1);\nvar G__38594 \x3d null;\nvar G__38595 \x3d (0);\nvar G__38596 \x3d (0);\nseq__34477_38572 \x3d G__38593;\nchunk__34478_38573 \x3d G__38594;\ncount__34479_38574 \x3d G__38595;\ni__34480_38575 \x3d G__38596;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(depth,(0))){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(state))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.topo_sort.cljs$lang$maxFixedArity \x3d 4);\n\n\ncljs.analyzer.ast_QMARK_ \x3d (function cljs$analyzer$ast_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 (cljs.core.contains_QMARK_(x,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955))));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.error_message !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.error_message \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__34508 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__34508.cljs$core$IFn$_invoke$arity$0 ? fexpr__34508.cljs$core$IFn$_invoke$arity$0() : fexpr__34508.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22error-message\x22),(function() { \nvar G__38597__delegate \x3d function (warning_type,_){\nreturn warning_type;\n};\nvar G__38597 \x3d function (warning_type,var_args){\nvar _ \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38598__i \x3d 0, G__38598__a \x3d new Array(arguments.length - 1);\nwhile (G__38598__i \x3c G__38598__a.length) {G__38598__a[G__38598__i] \x3d arguments[G__38598__i + 1]; ++G__38598__i;}\n _ \x3d new cljs.core.IndexedSeq(G__38598__a,0,null);\n} \nreturn G__38597__delegate.call(this,warning_type,_);};\nG__38597.cljs$lang$maxFixedArity \x3d 1;\nG__38597.cljs$lang$applyTo \x3d (function (arglist__38599){\nvar warning_type \x3d cljs.core.first(arglist__38599);\nvar _ \x3d cljs.core.rest(arglist__38599);\nreturn G__38597__delegate(warning_type,_);\n});\nG__38597.cljs$core$IFn$_invoke$arity$variadic \x3d G__38597__delegate;\nreturn G__38597;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),(function (warning_type,info){\nreturn [\x22Preamble resource file not found: \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22missing\x22,\x22missing\x22,362507769).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),(function (warning_type,info){\nreturn [\x22Required namespace not provided for \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),(function (warning_type,info){\nreturn [(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205).cljs$core$IFn$_invoke$arity$1(info))?\x22Can\x27t take value of macro \x22:\x22Use of undeclared Var \x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),(function (warning_type,info){\nreturn [\x22var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not public\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),(function (warning_type,p__34523){\nvar map__34525 \x3d p__34523;\nvar map__34525__$1 \x3d cljs.core.__destructure_map(map__34525);\nvar info \x3d map__34525__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629)),\x22, \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583)),\x22, or JavaScript source providing \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_provide),\x22\\\x22\x22,((clojure.string.includes_QMARK_(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22_\x22))?\x22 (Please check that namespaces with dashes use underscores in the ClojureScript file name)\x22:null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-macros-ns\x22,\x22undeclared-macros-ns\x22,-438029430),(function (warning_type,p__34547){\nvar map__34550 \x3d p__34547;\nvar map__34550__$1 \x3d cljs.core.__destructure_map(map__34550);\nvar info \x3d map__34550__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such macros namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428)),\x22 or \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 not declared ^:dynamic\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 already refers to: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 being replaced by: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info))))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(info)),\x22 is being replaced\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 no longer fn, references are stale\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),(function (warning_type,info){\nreturn [\x22Wrong number of args (\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519).cljs$core$IFn$_invoke$arity$1(info)),\x22) passed to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info);\n}\n})())].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 declared arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(info)),\x22 mismatch defined arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),(function (warning_type,info){\nreturn [\x22Invalid :refer, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not exist\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),(function (warning_type,info){\nreturn [\x22Can\x27t resolve protocol symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),(function (warning_type,info){\nreturn [\x22Symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not a protocol\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),(function (warning_type,info){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22no-such-method\x22,\x22no-such-method\x22,1087422840).cljs$core$IFn$_invoke$arity$1(info))){\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare method called \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n} else {\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare arity \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22invalid-arity\x22,\x22invalid-arity\x22,1335461949).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),(function (warning_type,info){\nreturn [\x22Duplicated methods in protocol implementation \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implemented multiple times\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 declares method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),(function (warning_type,info){\nvar overwritten_protocol \x3d new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22existing\x22,\x22existing\x22,-340796094).cljs$core$IFn$_invoke$arity$1(info));\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is overwriting \x22,(cljs.core.truth_(overwritten_protocol)?\x22method\x22:\x22function\x22),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),(cljs.core.truth_(overwritten_protocol)?[\x22 of protocol \x22,cljs.core.name(overwritten_protocol)].join(\x27\x27):null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implements method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),(function (warning_type,info){\nreturn [\x22Ignoring target object \\\x22\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(info)], 0)),\x22\\\x22 passed in recur to protocol method head\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have more than 1 variadic overload\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have fixed arity function with more params than variadic function\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have 2 overloads with same arity\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),(function (warning_type,info){\nreturn [\x22Extending an existing JavaScript type - use a different symbol name \x22,\x22instead of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22current-symbol\x22,\x22current-symbol\x22,-932381075).cljs$core$IFn$_invoke$arity$1(info)),\x22 e.g \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suggested-symbol\x22,\x22suggested-symbol\x22,-1329631875).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(info)),\x22, all arguments must be numbers, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639).cljs$core$IFn$_invoke$arity$1(info)),\x22 instead\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),(function (warning_type,p__34616){\nvar map__34617 \x3d p__34616;\nvar map__34617__$1 \x3d cljs.core.__destructure_map(map__34617);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar types \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639));\nvar G__34618 \x3d name;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34618)].join(\x27\x27)));\n\n}\n}\n}\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),(function (warning_type,info){\nreturn [\x22Cannot invoke type constructor \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 as function \x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 is a single segment namespace\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),(function (warning_type,p__34651){\nvar map__34652 \x3d p__34651;\nvar map__34652__$1 \x3d cljs.core.__destructure_map(map__34652);\nvar info \x3d map__34652__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34652__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar munged \x3d cljs.core.munge(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34650_SHARP_){\nif(cljs.core.truth_((cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_) : cljs.analyzer.js_reserved.call(null,p1__34650_SHARP_)))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_),\x22$\x22].join(\x27\x27);\n} else {\nreturn p1__34650_SHARP_;\n}\n}),clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name),/\\./))));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 contains a reserved JavaScript keyword,\x22,\x22 the corresponding Google Closure namespace will be munged to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),(function (warning_type,p__34662){\nvar map__34663 \x3d p__34662;\nvar map__34663__$1 \x3d cljs.core.__destructure_map(map__34663);\nvar info \x3d map__34663__$1;\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34663__$1,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401));\nreturn [\x22In \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0)),\x22, the alias name js is reserved for JavaScript interop\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),(function (warning_type,p__34669){\nvar map__34670 \x3d p__34669;\nvar map__34670__$1 \x3d cljs.core.__destructure_map(map__34670);\nvar info \x3d map__34670__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22 clashes with var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),(function (warning_type,p__34677){\nvar map__34678 \x3d p__34677;\nvar map__34678__$1 \x3d cljs.core.__destructure_map(map__34678);\nvar info \x3d map__34678__$1;\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34678__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 not declared dynamic and thus is not dynamically rebindable, but its name \x22,\x22suggests otherwise. Please either indicate ^:dynamic \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 or change the name\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),(function (warning_type,p__34684){\nvar map__34686 \x3d p__34684;\nvar map__34686__$1 \x3d cljs.core.__destructure_map(map__34686);\nvar info \x3d map__34686__$1;\nvar protocol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nreturn [\x22Bad extend-type method shape for protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(protocol),\x22 method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(method),\x22, method arities must be grouped together\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),(function (warning_type,p__34692){\nvar map__34693 \x3d p__34692;\nvar map__34693__$1 \x3d cljs.core.__destructure_map(map__34693);\nvar info \x3d map__34693__$1;\nvar module_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22module-type\x22,\x22module-type\x22,1392760304));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported JavaScript module type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(module_type),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),(function (warning_type,p__34698){\nvar map__34699 \x3d p__34698;\nvar map__34699__$1 \x3d cljs.core.__destructure_map(map__34699);\nvar preprocess \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22preprocess\x22,\x22preprocess\x22,1208285012));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported preprocess value \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(preprocess),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),(function (warning_type,p__34702){\nvar map__34703 \x3d p__34702;\nvar map__34703__$1 \x3d cljs.core.__destructure_map(map__34703);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34703__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 is shadowed by a local\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),(function (warning_type,p__34704){\nvar map__34705 \x3d p__34704;\nvar map__34705__$1 \x3d cljs.core.__destructure_map(map__34705);\nvar warn_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar property \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232));\nvar G__34707 \x3d warn_type;\nvar G__34707__$1 \x3d (((G__34707 instanceof cljs.core.Keyword))?G__34707.fqn:null);\nswitch (G__34707__$1) {\ncase \x22target\x22:\nreturn [\x22Cannot infer target type in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22\x22].join(\x27\x27);\n\nbreak;\ncase \x22property\x22:\nreturn [\x22Cannot resolve property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 for inferred type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),\x22 in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ncase \x22object\x22:\nreturn [\x22Adding extern to Object for property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 due to \x22,\x22ambiguous expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34707__$1)].join(\x27\x27)));\n\n}\n}));\ncljs.analyzer.default_warning_handler \x3d (function cljs$analyzer$default_warning_handler(warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nvar temp__5825__auto__ \x3d cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warning_type,extra);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nvar _STAR_print_fn_STAR__orig_val__34716 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_fn_STAR__temp_val__34717 \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__34717);\n\ntry{return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__34719 \x3d env;\nvar G__34720 \x3d [\x22WARNING: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27);\nreturn (cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2(G__34719,G__34720) : cljs.analyzer.message.call(null,G__34719,G__34720));\n})()], 0));\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__34716);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.default_warning_handler], null);\ncljs.analyzer.repeat_char \x3d (function cljs$analyzer$repeat_char(c,n){\nvar ret \x3d c;\nvar n__$1 \x3d n;\nwhile(true){\nif((n__$1 \x3e (0))){\nvar G__38610 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ret),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\nvar G__38611 \x3d (n__$1 - (1));\nret \x3d G__38610;\nn__$1 \x3d G__38611;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\ncljs.analyzer.hex_format \x3d (function cljs$analyzer$hex_format(s,pad){\nvar hex \x3d s.charCodeAt((0)).toString((16));\nvar len \x3d hex.length;\nvar hex__$1 \x3d (((len \x3c pad))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.repeat_char(\x220\x22,(pad - len))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex)].join(\x27\x27):hex);\nreturn [\x22_u\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex__$1),\x22_\x22].join(\x27\x27);\n});\ncljs.analyzer.gen_constant_id \x3d (function cljs$analyzer$gen_constant_id(value){\nvar prefix \x3d (((value instanceof cljs.core.Keyword))?\x22cst$kw$\x22:(((value instanceof cljs.core.Symbol))?\x22cst$sym$\x22:(function(){throw (new Error([\x22constant type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(value)),\x22 not supported\x22].join(\x27\x27)))})()\n));\nvar name \x3d (((value instanceof cljs.core.Keyword))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),(1)):cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\nvar name__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22.\x22,name))?\x22_DOT_\x22:clojure.string.replace(clojure.string.replace(cljs.core.munge(clojure.string.replace(clojure.string.replace(clojure.string.replace(name,\x22_\x22,\x22__\x22),\x22$\x22,\x22$$\x22),\x22-\x22,\x22_DASH_\x22)),\x22.\x22,\x22$\x22),/[^a-z0-9$_]/i,(function (p1__34743_SHARP_){\nreturn cljs.analyzer.hex_format(p1__34743_SHARP_,(4));\n})));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([prefix,name__$1].join(\x27\x27));\n});\ncljs.analyzer.register_constant_BANG_ \x3d (function cljs$analyzer$register_constant_BANG_(var_args){\nvar G__34747 \x3d arguments.length;\nswitch (G__34747) {\ncase 1:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (val){\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(null,val);\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (cenv){\nvar G__34766 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889)], null),(function (table){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(table,val))){\nreturn table;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(table,val,cljs.analyzer.gen_constant_id(val));\n}\n}));\nif(cljs.core.truth_(env)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__34766,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constants\x22,\x22cljs.analyzer/constants\x22,1697083770)], null),(function (p__34767){\nvar map__34768 \x3d p__34767;\nvar map__34768__$1 \x3d cljs.core.__destructure_map(map__34768);\nvar constants \x3d map__34768__$1;\nvar seen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.PersistentHashSet.EMPTY);\nvar order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.PersistentVector.EMPTY);\nvar G__34769 \x3d constants;\nif((!(cljs.core.contains_QMARK_(seen,val)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(G__34769,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,val),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(order,val)], 0));\n} else {\nreturn G__34769;\n}\n}));\n} else {\nreturn G__34766;\n}\n}));\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.default_namespaces \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.analyzer.t_cljs$analyzer34770 \x3d (function (meta34771){\nthis.meta34771 \x3d meta34771;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_34772,meta34771__$1){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771__$1));\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_34772){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn self__.meta34771;\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n} else {\nreturn cljs.analyzer.default_namespaces;\n}\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta34771\x22,\x22meta34771\x22,-699077853,null)], null);\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$type \x3d true);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorStr \x3d \x22cljs.analyzer/t_cljs$analyzer34770\x22);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.analyzer/t_cljs$analyzer34770\x22);\n}));\n\n/**\n * Positional factory function for cljs.analyzer/t_cljs$analyzer34770.\n */\ncljs.analyzer.__GT_t_cljs$analyzer34770 \x3d (function cljs$analyzer$__GT_t_cljs$analyzer34770(meta34771){\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771));\n});\n\n\ncljs.analyzer.namespaces \x3d (new cljs.analyzer.t_cljs$analyzer34770(cljs.core.PersistentArrayMap.EMPTY));\ncljs.analyzer.get_namespace \x3d (function cljs$analyzer$get_namespace(var_args){\nvar G__34797 \x3d arguments.length;\nswitch (G__34797) {\ncase 1:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,key);\n}));\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2 \x3d (function (cenv,key){\nvar temp__5827__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cenv),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),key], null));\nif((temp__5827__auto__ \x3d\x3d null)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),key)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null);\n} else {\nreturn null;\n}\n} else {\nvar ns \x3d temp__5827__auto__;\nreturn ns;\n}\n}));\n\n(cljs.analyzer.get_namespace.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.get_line \x3d (function cljs$analyzer$get_line(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\ncljs.analyzer.get_col \x3d (function cljs$analyzer$get_col(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\n/**\n * Given a Clojure namespace intern all macros into the ambient ClojureScript\n * analysis environment.\n */\ncljs.analyzer.intern_macros \x3d (function cljs$analyzer$intern_macros(var_args){\nvar G__34799 \x3d arguments.length;\nswitch (G__34799) {\ncase 1:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2(ns,false);\n}));\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,reload){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)) \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn reload;\n}\n})())){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)], null),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__34800){\nvar vec__34801 \x3d p__34800;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(function (){var vm \x3d cljs.core.meta(v);\nvar ns__$1 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(vm).getName();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(vm,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)),new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404),true], 0));\n})()], null);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__34804){\nvar vec__34805 \x3d p__34804;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(1),null);\nreturn v.isMacro();\n}),cljs.core.ns_interns_STAR_(ns)))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.intern_macros.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Construct an empty analysis environment. Required to analyze forms.\n */\ncljs.analyzer.empty_env \x3d (function cljs$analyzer$empty_env(){\nvar val__9407__auto__ \x3d cljs.env._STAR_compiler_STAR_;\nif((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0());\n} else {\n}\n\ntry{return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22js-globals\x22,\x22js-globals\x22,1670394727),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34808_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__34808_SHARP_,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),p1__34808_SHARP_,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)],null));\n}),cljs.core.list(new cljs.core.Symbol(null,\x22alert\x22,\x22alert\x22,1068580947,null),new cljs.core.Symbol(null,\x22window\x22,\x22window\x22,-1929916235,null),new cljs.core.Symbol(null,\x22document\x22,\x22document\x22,311342840,null),new cljs.core.Symbol(null,\x22console\x22,\x22console\x22,-1426363712,null),new cljs.core.Symbol(null,\x22escape\x22,\x22escape\x22,648929575,null),new cljs.core.Symbol(null,\x22unescape\x22,\x22unescape\x22,-2037730561,null),new cljs.core.Symbol(null,\x22screen\x22,\x22screen\x22,-664376021,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22navigator\x22,\x22navigator\x22,-604431588,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22global\x22,\x22global\x22,1734126574,null),new cljs.core.Symbol(null,\x22process\x22,\x22process\x22,-1011242831,null),new cljs.core.Symbol(null,\x22require\x22,\x22require\x22,1172530194,null),new cljs.core.Symbol(null,\x22module\x22,\x22module\x22,-1229817578,null),new cljs.core.Symbol(null,\x22exports\x22,\x22exports\x22,895523255,null))))], null);\n}finally {if((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d null);\n} else {\n}\n}});\ncljs.analyzer.source_info__GT_error_data \x3d (function cljs$analyzer$source_info__GT_error_data(p__34809){\nvar map__34810 \x3d p__34809;\nvar map__34810__$1 \x3d cljs.core.__destructure_map(map__34810);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553),column], null);\n});\ncljs.analyzer.source_info \x3d (function cljs$analyzer$source_info(var_args){\nvar G__34812 \x3d arguments.length;\nswitch (G__34812) {\ncase 1:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (env){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(null,env);\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (name,env){\nvar G__34813 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)))?\x22cljs/core.cljs\x22:cljs.analyzer._STAR_cljs_file_STAR_),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(name,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(name,env)], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__34813,cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912)], null))], 0));\n} else {\nreturn G__34813;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.message \x3d (function cljs$analyzer$message(env,s){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))?[\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):(cljs.core.truth_(cljs.analyzer._STAR_cljs_file_STAR_)?[\x22 in file \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):null))].join(\x27\x27);\n});\ncljs.analyzer.warning \x3d (function cljs$analyzer$warning(warning_type,env,extra){\nvar seq__34814 \x3d cljs.core.seq(cljs.analyzer._STAR_cljs_warning_handlers_STAR_);\nvar chunk__34815 \x3d null;\nvar count__34816 \x3d (0);\nvar i__34817 \x3d (0);\nwhile(true){\nif((i__34817 \x3c count__34816)){\nvar handler \x3d chunk__34815.cljs$core$IIndexed$_nth$arity$2(null,i__34817);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38626 \x3d seq__34814;\nvar G__38627 \x3d chunk__34815;\nvar G__38628 \x3d count__34816;\nvar G__38629 \x3d (i__34817 + (1));\nseq__34814 \x3d G__38626;\nchunk__34815 \x3d G__38627;\ncount__34816 \x3d G__38628;\ni__34817 \x3d G__38629;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__34814);\nif(temp__5825__auto__){\nvar seq__34814__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__34814__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__34814__$1);\nvar G__38630 \x3d cljs.core.chunk_rest(seq__34814__$1);\nvar G__38631 \x3d c__5548__auto__;\nvar G__38632 \x3d cljs.core.count(c__5548__auto__);\nvar G__38633 \x3d (0);\nseq__34814 \x3d G__38630;\nchunk__34815 \x3d G__38631;\ncount__34816 \x3d G__38632;\ni__34817 \x3d G__38633;\ncontinue;\n} else {\nvar handler \x3d cljs.core.first(seq__34814__$1);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38634 \x3d cljs.core.next(seq__34814__$1);\nvar G__38635 \x3d null;\nvar G__38636 \x3d (0);\nvar G__38637 \x3d (0);\nseq__34814 \x3d G__38634;\nchunk__34815 \x3d G__38635;\ncount__34816 \x3d G__38636;\ni__34817 \x3d G__38637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.accumulating_warning_handler \x3d (function cljs$analyzer$accumulating_warning_handler(warn_acc){\nreturn (function (warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(warn_acc,cljs.core.conj,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [warning_type,env,extra], null));\n} else {\nreturn null;\n}\n});\n});\ncljs.analyzer.replay_accumulated_warnings \x3d (function cljs$analyzer$replay_accumulated_warnings(warn_acc){\nreturn cljs.core.run_BANG_((function (p1__34834_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.warning,p1__34834_SHARP_);\n}),cljs.core.deref(warn_acc));\n});\ncljs.analyzer.error_data \x3d (function cljs$analyzer$error_data(var_args){\nvar G__34840 \x3d arguments.length;\nswitch (G__34840) {\ncase 2:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,phase){\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,phase,null);\n}));\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,phase,symbol){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.source_info__GT_error_data(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase], null),(cljs.core.truth_(symbol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),symbol], null):null)], 0));\n}));\n\n(cljs.analyzer.error_data.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.compile_syntax_error \x3d (function cljs$analyzer$compile_syntax_error(env,msg,symbol){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22compile-syntax-check\x22,\x22compile-syntax-check\x22,-1865080468),symbol),(new Error(msg)));\n});\ncljs.analyzer.error \x3d (function cljs$analyzer$error(var_args){\nvar G__34868 \x3d arguments.length;\nswitch (G__34868) {\ncase 2:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,msg){\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,msg,null);\n}));\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,msg,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.message(env,msg),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349)),cause);\n}));\n\n(cljs.analyzer.error.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.analysis_error_QMARK_ \x3d (function cljs$analyzer$analysis_error_QMARK_(ex){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)));\n});\ncljs.analyzer.has_error_data_QMARK_ \x3d (function cljs$analyzer$has_error_data_QMARK_(ex){\nreturn cljs.core.contains_QMARK_(cljs.core.ex_data(ex),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\n});\ncljs.analyzer.implicit_nses \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.string\x22,\x22goog.string\x22,-2055533048,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog\x22,\x22goog\x22,-70603925,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.object\x22,\x22goog.object\x22,678593132,null),\x22null\x22,new cljs.core.Symbol(null,\x22Math\x22,\x22Math\x22,2033287572,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.array\x22,\x22goog.array\x22,-671977860,null),\x22null\x22], null), null);\ncljs.analyzer.implicit_import_QMARK_ \x3d (function cljs$analyzer$implicit_import_QMARK_(env,prefix,suffix){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.implicit_nses,prefix);\n});\ncljs.analyzer.confirm_var_exist_warning \x3d (function cljs$analyzer$confirm_var_exist_warning(env,prefix,suffix){\nreturn (function (env__$1,prefix__$1,suffix__$1){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),env__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),prefix__$1,new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),suffix__$1,new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205),(!(((function (){var G__34919 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1));\nvar G__34920 \x3d env__$1;\nreturn (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(G__34919,G__34920) : cljs.analyzer.get_expander.call(null,G__34919,G__34920));\n})() \x3d\x3d null)))], null));\n});\n});\n/**\n * If a library name has the form foo$bar, return a vector of the library and\n * the sublibrary property.\n */\ncljs.analyzer.lib_AMPERSAND_sublib \x3d (function cljs$analyzer$lib_AMPERSAND_sublib(lib){\nvar temp__5823__auto__ \x3d cljs.core.re_matches(/(.*)\\$(.*)/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xs \x3d temp__5823__auto__;\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),xs);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n}\n});\n/**\n * Check if a JavaScript namespace has been loaded. JavaScript vars are\n * not currently checked.\n */\ncljs.analyzer.loaded_js_ns_QMARK_ \x3d (function cljs$analyzer$loaded_js_ns_QMARK_(env,prefix){\nif(cljs.core.truth_(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix))){\nreturn null;\n} else {\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nreturn (((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))) || ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))));\n}\n});\ncljs.analyzer.internal_js_module_exists_QMARK_ \x3d (function cljs$analyzer$internal_js_module_exists_QMARK_(js_module_index,module){\nreturn cljs.core.contains_QMARK_(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((function (p__34963){\nvar vec__34964 \x3d p__34963;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(v)], null);\n})),js_module_index),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\n});\ncljs.analyzer.js_module_exists_QMARK__STAR_ \x3d cljs.core.memoize(cljs.analyzer.internal_js_module_exists_QMARK_);\ncljs.analyzer.js_module_exists_QMARK_ \x3d (function cljs$analyzer$js_module_exists_QMARK_(module){\nreturn cljs.analyzer.js_module_exists_QMARK__STAR_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931)], null)),module);\n});\ncljs.analyzer.node_module_dep_QMARK_ \x3d (function cljs$analyzer$node_module_dep_QMARK_(module){\ntry{return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22)) \x26\x26 (cljs.core.boolean$((function (){var or__5025__auto__ \x3d require.resolve(cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn require.resolve(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(module)));\n}\n})())));\n}catch (e34976){var _ \x3d e34976;\nreturn false;\n}});\ncljs.analyzer.dep_has_global_exports_QMARK_ \x3d (function cljs$analyzer$dep_has_global_exports_QMARK_(module){\nvar vec__35000 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(1),null);\nvar global_exports \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1),new cljs.core.Keyword(null,\x22global-exports\x22,\x22global-exports\x22,-1644865592)], null));\nreturn ((cljs.core.contains_QMARK_(global_exports,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(module__$1))) || (cljs.core.contains_QMARK_(global_exports,cljs.core.name(module__$1))));\n});\ncljs.analyzer.goog_module_dep_QMARK_ \x3d (function cljs$analyzer$goog_module_dep_QMARK_(module){\nvar vec__35013 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(1),null);\nvar module_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1);\nvar options \x3d cljs.analyzer.compiler_options();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22global-goog-object\x26array\x22,\x22global-goog-object\x26array\x22,907046210).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(and__5023__auto__)){\nvar fexpr__35025 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22goog.array\x22,null,\x22goog.object\x22,null], null), null);\nreturn (fexpr__35025.cljs$core$IFn$_invoke$arity$1 ? fexpr__35025.cljs$core$IFn$_invoke$arity$1(module_str) : fexpr__35025.call(null,module_str));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn false;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),module_str,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191)], null)));\n}\n});\ncljs.analyzer.confirm_var_exists \x3d (function cljs$analyzer$confirm_var_exists(var_args){\nvar G__35052 \x3d arguments.length;\nswitch (G__35052) {\ncase 3:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,prefix,suffix){\nvar warn \x3d cljs.analyzer.confirm_var_exist_warning(env,prefix,suffix);\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,warn);\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,prefix,suffix,missing_fn){\nvar sufstr \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix);\nvar suffix_str \x3d (((((!((\x22..\x22 \x3d\x3d\x3d sufstr)))) \x26\x26 (/\\./.test(sufstr))))?cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(sufstr,/\\./)):suffix);\nvar suffix__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(suffix_str);\nif((((!(cljs.analyzer.implicit_import_QMARK_(env,prefix,suffix__$1)))) \x26\x26 ((((!(cljs.analyzer.loaded_js_ns_QMARK_(env,prefix)))) \x26\x26 ((((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),prefix)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22unquote\x22,\x22unquote\x22,-1004694737,null),suffix__$1)))))) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),suffix__$1) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(prefix))))))))))){\nreturn (missing_fn.cljs$core$IFn$_invoke$arity$3 ? missing_fn.cljs$core$IFn$_invoke$arity$3(env,prefix,suffix__$1) : missing_fn.call(null,env,prefix,suffix__$1));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.confirm_var_exists_throw \x3d (function cljs$analyzer$confirm_var_exists_throw(){\nreturn (function (env,prefix,suffix){\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,(function (env__$1,prefix__$1,suffix__$1){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,[\x22Unable to resolve var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1),\x22 in this context\x22].join(\x27\x27));\n}));\n});\n});\ncljs.analyzer.resolve_ns_alias \x3d (function cljs$analyzer$resolve_ns_alias(var_args){\nvar G__35093 \x3d arguments.length;\nswitch (G__35093) {\ncase 2:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nvar map__35105 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nvar map__35105__$1 \x3d cljs.core.__destructure_map(map__35105);\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(requires,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,sym);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.resolve_macro_ns_alias \x3d (function cljs$analyzer$resolve_macro_ns_alias(var_args){\nvar G__35113 \x3d arguments.length;\nswitch (G__35113) {\ncase 2:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym,not_found);\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given env, an analysis environment, and ns-sym, a symbol identifying a\n * namespace, confirm that the namespace exists. Warn if not found.\n */\ncljs.analyzer.confirm_ns \x3d (function cljs$analyzer$confirm_ns(env,ns_sym){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns_sym)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.implicit_nses,ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_sym) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(ns_sym))))))))))){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),ns_sym,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),ns_sym], null));\n} else {\nreturn null;\n}\n});\n/**\n * Is sym visible from core in the current compilation namespace?\n */\ncljs.analyzer.core_name_QMARK_ \x3d (function cljs$analyzer$core_name_QMARK_(env,sym){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar temp__5827__auto__ \x3d (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(sym,env) : cljs.analyzer.get_expander.call(null,sym,env));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar mac \x3d temp__5827__auto__;\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(mac));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns.getName(),new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null));\n}\n}\n})();\nif(and__5023__auto__){\nreturn (!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Is sym public?\n */\ncljs.analyzer.public_name_QMARK_ \x3d (function cljs$analyzer$public_name_QMARK_(ns,sym){\nvar var_ast \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.name(ns),\x22$macros\x22].join(\x27\x27)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\n}\n})();\nreturn (((!((var_ast \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(var_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22anonymous\x22,\x22anonymous\x22,447897231).cljs$core$IFn$_invoke$arity$1(var_ast);\n}\n})())));\n});\ncljs.analyzer.js_tag_QMARK_ \x3d (function cljs$analyzer$js_tag_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.namespace(x))))));\n});\ncljs.analyzer.normalize_js_tag \x3d (function cljs$analyzer$normalize_js_tag(x){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)))){\nreturn cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),/\\./))),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null))], null));\n} else {\nreturn x;\n}\n});\n/**\n * Ensures that a type tag is a set.\n */\ncljs.analyzer.__GT_type_set \x3d (function cljs$analyzer$__GT_type_set(t){\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn t;\n} else {\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc([t]);\n}\n});\ncljs.analyzer.canonicalize_type \x3d (function cljs$analyzer$canonicalize_type(t){\n\nif((t instanceof cljs.core.Symbol)){\nreturn t;\n} else {\nif(cljs.core.empty_QMARK_(t)){\nreturn null;\n} else {\nif(((1) \x3d\x3d\x3d cljs.core.count(t))){\nreturn cljs.core.first(t);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null))){\nvar res \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null));\nif(((1) \x3d\x3d\x3d cljs.core.count(res))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nreturn res;\n}\n} else {\nreturn t;\n\n}\n}\n}\n}\n}\n});\n/**\n * Produces a union of types.\n */\ncljs.analyzer.add_types \x3d (function cljs$analyzer$add_types(var_args){\nvar G__35198 \x3d arguments.length;\nswitch (G__35198) {\ncase 0:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38656 \x3d arguments.length;\nvar i__5750__auto___38657 \x3d (0);\nwhile(true){\nif((i__5750__auto___38657 \x3c len__5749__auto___38656)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38657]));\n\nvar G__38659 \x3d (i__5750__auto___38657 + (1));\ni__5750__auto___38657 \x3d G__38659;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1 \x3d (function (t1){\nreturn t1;\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2 \x3d (function (t1,t2){\nif((((t1 \x3d\x3d null)) || ((t2 \x3d\x3d null)))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.canonicalize_type(clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.__GT_type_set(t1),cljs.analyzer.__GT_type_set(t2)));\n}\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic \x3d (function (t1,t2,ts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.add_types,cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(t1,t2),ts);\n}));\n\n/** @this {Function} */\n(cljs.analyzer.add_types.cljs$lang$applyTo \x3d (function (seq35193){\nvar G__35194 \x3d cljs.core.first(seq35193);\nvar seq35193__$1 \x3d cljs.core.next(seq35193);\nvar G__35196 \x3d cljs.core.first(seq35193__$1);\nvar seq35193__$2 \x3d cljs.core.next(seq35193__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35194,G__35196,seq35193__$2);\n}));\n\n(cljs.analyzer.add_types.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.analyzer.alias__GT_type \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22Array\x22,\x22Array\x22,-423496279,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22Boolean\x22,\x22Boolean\x22,1661141587,null),new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),new cljs.core.Symbol(null,\x22Symbol\x22,\x22Symbol\x22,716452869,null)], null);\ncljs.analyzer.has_extern_QMARK__STAR_ \x3d (function cljs$analyzer$has_extern_QMARK__STAR_(var_args){\nvar G__35222 \x3d arguments.length;\nswitch (G__35222) {\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar pre__$1 \x3d (function (){var temp__5827__auto__ \x3d cljs.core.find(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null)),cljs.core.first(pre));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn pre;\n} else {\nvar me \x3d temp__5827__auto__;\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.core.first(me)));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn pre;\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre));\n}\n}\n})();\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(pre__$1,externs,externs);\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,externs,top){\nwhile(true){\nif(cljs.core.empty_QMARK_(pre)){\nreturn true;\n} else {\nvar x \x3d cljs.core.first(pre);\nvar me \x3d cljs.core.find(externs,x);\nif(cljs.core.not(me)){\nreturn false;\n} else {\nvar vec__35245 \x3d me;\nvar x_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(1),null);\nvar xmeta \x3d cljs.core.meta(x_SINGLEQUOTE_);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(xmeta));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(xmeta);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.next(pre),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22super\x22,\x22super\x22,840752938).cljs$core$IFn$_invoke$arity$1(xmeta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar super$ \x3d temp__5825__auto__;\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [super$], null),cljs.core.next(pre)),externs,top);\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38669 \x3d cljs.core.next(pre);\nvar G__38670 \x3d externs_SINGLEQUOTE_;\nvar G__38671 \x3d top;\npre \x3d G__38669;\nexterns \x3d G__38670;\ntop \x3d G__38671;\ncontinue;\n}\n\n}\n\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.has_extern_QMARK_ \x3d (function cljs$analyzer$has_extern_QMARK_(var_args){\nvar G__35283 \x3d arguments.length;\nswitch (G__35283) {\ncase 1:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2(pre,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2(pre,externs);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pre)))?(function (){var x \x3d cljs.core.first(pre);\nvar or__5025__auto____$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),x));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null)], null),x));\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(pre)),\x22cljs$\x22);\n}\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.js_tag \x3d (function cljs$analyzer$js_tag(var_args){\nvar G__35322 \x3d arguments.length;\nswitch (G__35322) {\ncase 1:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,tag_type){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3(pre,tag_type,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,tag_type,externs){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(pre,tag_type,externs,externs);\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4 \x3d (function (pre,tag_type,externs,top){\nvar temp__5825__auto__ \x3d cljs.core.find(externs,cljs.core.first(pre));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__35336 \x3d temp__5825__auto__;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(1),null);\nvar me \x3d vec__35336;\nvar tag \x3d (function (){var G__35341 \x3d cljs.core.meta(p);\nreturn (tag_type.cljs$core$IFn$_invoke$arity$1 ? tag_type.cljs$core$IFn$_invoke$arity$1(G__35341) : tag_type.call(null,G__35341));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),(1))){\nif(cljs.core.truth_(tag)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2(tag,tag) : cljs.analyzer.alias__GT_type.call(null,tag,tag))));\n} else {\nreturn null;\n}\n} else {\nvar or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.next(pre),tag_type,externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),tag_type,cljs.core.get.cljs$core$IFn$_invoke$arity$2(top,tag),top);\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.js_tag.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.dotted_symbol_QMARK_ \x3d (function cljs$analyzer$dotted_symbol_QMARK_(sym){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nreturn ((goog.string.contains(s,\x22.\x22)) \x26\x26 ((!(goog.string.contains(s,\x22..\x22)))));\n});\ncljs.analyzer.munge_node_lib \x3d (function cljs$analyzer$munge_node_lib(name){\nreturn [\x22node$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\ncljs.analyzer.munge_goog_module_lib \x3d (function cljs$analyzer$munge_goog_module_lib(var_args){\nvar G__35368 \x3d arguments.length;\nswitch (G__35368) {\ncase 1:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nreturn [\x22goog$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(ns)),\x22.\x22,cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.munge_global_export \x3d (function cljs$analyzer$munge_global_export(name){\nreturn [\x22global$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\n/**\n * Takes a namespace and an unqualified symbol and potentially returns a new\n * symbol to be used in lieu of the original.\n */\ncljs.analyzer.resolve_alias \x3d (function cljs$analyzer$resolve_alias(ns,sym){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (function (){var fexpr__35421 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),\x22null\x22,new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),\x22null\x22], null), null);\nreturn (fexpr__35421.cljs$core$IFn$_invoke$arity$1 ? fexpr__35421.cljs$core$IFn$_invoke$arity$1(sym) : fexpr__35421.call(null,sym));\n})();\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.analyzer.checked_arrays();\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x22,\x22checked-aget\x22,950823006,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x22,\x22checked-aset\x22,1556136760,null)], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x27\x22,\x22checked-aget\x27\x22,212330530,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x27\x22,\x22checked-aset\x27\x22,-510930777,null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.checked_arrays(),sym], null));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.ns__GT_module_type \x3d (function cljs$analyzer$ns__GT_module_type(ns){\nif(cljs.analyzer.goog_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656);\n} else {\nif(cljs.core.truth_(cljs.analyzer.js_module_exists_QMARK_(ns))){\nreturn new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579);\n} else {\nif(cljs.analyzer.node_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198);\n} else {\nif(cljs.analyzer.dep_has_global_exports_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047);\n} else {\nreturn null;\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.resolve_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.resolve_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35446 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35446.cljs$core$IFn$_invoke$arity$0 ? fexpr__35446.cljs$core$IFn$_invoke$arity$0() : fexpr__35446.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22resolve*\x22),(function (env,sym,full_ns,current_ns){\nreturn cljs.analyzer.ns__GT_module_type(full_ns);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null);\n}));\ncljs.analyzer.extern_pre \x3d (function cljs$analyzer$extern_pre(sym,current_ns){\nvar pre \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./))));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n\nreturn pre;\n});\ncljs.analyzer.node_like_QMARK_ \x3d (function cljs$analyzer$node_like_QMARK_(var_args){\nvar G__35484 \x3d arguments.length;\nswitch (G__35484) {\ncase 0:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options());\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nodejs\x22,\x22nodejs\x22,321212524),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721).cljs$core$IFn$_invoke$arity$1(opts))) \x26\x26 (new cljs.core.Keyword(null,\x22nodejs-rt\x22,\x22nodejs-rt\x22,-512437071).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d false));\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$lang$maxFixedArity \x3d 1);\n\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),(function (env,sym,full_ns,current_ns){\nif(cljs.core.truth_(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0())){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null);\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047),(function (env,sym,full_ns,current_ns){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_global_export(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}));\n/**\n * Specially-treated symbols for which we don\x27t trigger :private-var-access warnings.\n */\ncljs.analyzer.private_var_access_exceptions \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),\x22null\x22], null), null);\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (env,sym,full_ns,current_ns){\nvar sym_ast \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),full_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\nvar sym_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(sym_ast);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ((cljs.core.not(cljs.analyzer._STAR_private_var_access_nowarn_STAR_)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.private_var_access_exceptions,sym_name)))));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_name], null));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym_ast,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym_name,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null)], 0));\n}));\ncljs.analyzer.required_QMARK_ \x3d (function cljs$analyzer$required_QMARK_(ns,env){\nreturn ((cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)))),ns)) || (cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)))),ns)));\n});\n/**\n * Returns true if ns is a required namespace and a JavaScript module that\n * might be invokeable as a function.\n */\ncljs.analyzer.invokeable_ns_QMARK_ \x3d (function cljs$analyzer$invokeable_ns_QMARK_(ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar and__5023__auto__ \x3d cljs.analyzer.required_QMARK_(ns__$1,env);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn ((cljs.analyzer.node_module_dep_QMARK_(ns__$1)) || (cljs.analyzer.dep_has_global_exports_QMARK_(ns__$1)));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.resolve_invokeable_ns \x3d (function cljs$analyzer$resolve_invokeable_ns(ns,current_ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar module_type \x3d cljs.analyzer.ns__GT_module_type(ns__$1);\nvar G__35560 \x3d module_type;\nvar G__35560__$1 \x3d (((G__35560 instanceof cljs.core.Keyword))?G__35560.fqn:null);\nswitch (G__35560__$1) {\ncase \x22js\x22:\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1);\n}\n})()),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22node\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_node_lib(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22global\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_global_export(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__35560__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * goog.modules are deterministically assigned to a property of the namespace,\n * we cannot expect the reference will be globally available, so we resolve to\n * namespace local reference.\n */\ncljs.analyzer.resolve_import \x3d (function cljs$analyzer$resolve_import(env,import$){\nif(cljs.analyzer.goog_module_dep_QMARK_(import$)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),import$));\n} else {\nreturn import$;\n}\n});\ncljs.analyzer.handle_symbol_local \x3d (function cljs$analyzer$handle_symbol_local(sym,lb){\nif((lb instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null);\n} else {\nreturn lb;\n}\n});\n/**\n * Resolve a var. Accepts a side-effecting confirm fn for producing\n * warnings about unresolved vars.\n */\ncljs.analyzer.resolve_var \x3d (function cljs$analyzer$resolve_var(var_args){\nvar G__35604 \x3d arguments.length;\nswitch (G__35604) {\ncase 2:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,sym){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,null);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,sym,confirm){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,sym,confirm,true);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,sym,confirm,default_QMARK_){\nwhile(true){\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nif((\x22js\x22 \x3d\x3d\x3d cljs.core.namespace(sym))){\nvar symn \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar shadowed_by_local \x3d cljs.analyzer.handle_symbol_local(symn,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,symn));\nif((!((shadowed_by_local \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadowed_by_local,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nvar pre \x3d cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./)));\nif(((cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta((function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1(pre);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null))], null),(function (){var temp__5825__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ret_tag \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358),true,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag], null);\n} else {\nreturn null;\n}\n})()], 0));\n\n}\n} else {\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nvar lb \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,sym));\nvar current_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nif((!((lb \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lb,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns \x3d cljs.core.namespace(sym);\nvar ns__$1 \x3d (((\x22clojure.core\x22 \x3d\x3d\x3d ns))?\x22cljs.core\x22:ns);\nvar full_ns \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,ns__$1,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns__$1);\n}\n})());\nif((!((confirm \x3d\x3d null)))){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns)){\ncljs.analyzer.confirm_ns(env,full_ns);\n} else {\n}\n\nvar G__35668_38723 \x3d env;\nvar G__35669_38724 \x3d full_ns;\nvar G__35670_38725 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35668_38723,G__35669_38724,G__35670_38725) : confirm.call(null,G__35668_38723,G__35669_38724,G__35670_38725));\n} else {\n}\n\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif(cljs.analyzer.dotted_symbol_QMARK_(sym)){\nvar idx \x3d s.indexOf(\x22.\x22);\nvar prefix \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx));\nvar suffix \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1)));\nvar temp__5823__auto__ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,prefix,null,false);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar resolved \x3d temp__5823__auto__;\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(resolved,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),((function (env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals){\nreturn (function (p1__35593_SHARP_){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__35593_SHARP_),\x22.\x22,suffix].join(\x27\x27));\n});})(env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals))\n);\n} else {\nvar s__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__35684 \x3d s;\nif(cljs.analyzer.goog_module_dep_QMARK_(sym)){\nreturn cljs.analyzer.resolve_import(env,G__35684);\n} else {\nreturn G__35684;\n}\n})());\nvar idx__$1 \x3d s__$1.lastIndexOf(\x22.\x22);\nvar pre \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$1,(0),idx__$1);\nvar suf \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(idx__$1 + (1)));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(pre,suf),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(pre)], null);\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym) \x3d\x3d null)))){\nvar full_ns \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym);\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym);\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym__$1,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym) \x3d\x3d null)))){\nvar G__38729 \x3d env;\nvar G__38730 \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym);\nvar G__38731 \x3d confirm;\nvar G__38732 \x3d default_QMARK_;\nenv \x3d G__38729;\nsym \x3d G__38730;\nconfirm \x3d G__38731;\ndefault_QMARK_ \x3d G__38732;\ncontinue;\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)))){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nif(cljs.analyzer.core_name_QMARK_(env,sym)){\nvar sym__$1 \x3d cljs.analyzer.resolve_alias(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),sym);\nif((!((confirm \x3d\x3d null)))){\nvar G__35721_38733 \x3d env;\nvar G__35722_38734 \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\nvar G__35723_38735 \x3d sym__$1;\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35721_38733,G__35722_38734,G__35723_38735) : confirm.call(null,G__35721_38733,G__35722_38734,G__35723_38735));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null)], 0));\n} else {\nif(cljs.core.truth_(cljs.analyzer.invokeable_ns_QMARK_(s,env))){\nreturn cljs.analyzer.resolve_invokeable_ns(s,current_ns,env);\n} else {\nif(cljs.core.truth_(default_QMARK_)){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nreturn null;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.resolve_var.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve an existing var.\n * Emits a warning if no such var exists.\n */\ncljs.analyzer.resolve_existing_var \x3d (function cljs$analyzer$resolve_existing_var(env,sym){\nif(cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists);\n} else {\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,sym);\n}\n});\n/**\n * Given env, an analysis environment env, and names, a list of symbols, confirm\n * that all correspond to declared dynamic vars.\n */\ncljs.analyzer.confirm_bindings \x3d (function cljs$analyzer$confirm_bindings(env,names){\nvar seq__35752 \x3d cljs.core.seq(names);\nvar chunk__35753 \x3d null;\nvar count__35754 \x3d (0);\nvar i__35755 \x3d (0);\nwhile(true){\nif((i__35755 \x3c count__35754)){\nvar name \x3d chunk__35753.cljs$core$IIndexed$_nth$arity$2(null,i__35755);\nvar env_38737__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38738 \x3d cljs.analyzer.resolve_existing_var(env_38737__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38738;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38738));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38737__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38738,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38738)], null));\n} else {\n}\n\n\nvar G__38740 \x3d seq__35752;\nvar G__38741 \x3d chunk__35753;\nvar G__38742 \x3d count__35754;\nvar G__38743 \x3d (i__35755 + (1));\nseq__35752 \x3d G__38740;\nchunk__35753 \x3d G__38741;\ncount__35754 \x3d G__38742;\ni__35755 \x3d G__38743;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__35752);\nif(temp__5825__auto__){\nvar seq__35752__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__35752__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__35752__$1);\nvar G__38746 \x3d cljs.core.chunk_rest(seq__35752__$1);\nvar G__38747 \x3d c__5548__auto__;\nvar G__38748 \x3d cljs.core.count(c__5548__auto__);\nvar G__38749 \x3d (0);\nseq__35752 \x3d G__38746;\nchunk__35753 \x3d G__38747;\ncount__35754 \x3d G__38748;\ni__35755 \x3d G__38749;\ncontinue;\n} else {\nvar name \x3d cljs.core.first(seq__35752__$1);\nvar env_38750__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38751 \x3d cljs.analyzer.resolve_existing_var(env_38750__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38751;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38751));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38750__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38751,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38751)], null));\n} else {\n}\n\n\nvar G__38753 \x3d cljs.core.next(seq__35752__$1);\nvar G__38754 \x3d null;\nvar G__38755 \x3d (0);\nvar G__38756 \x3d (0);\nseq__35752 \x3d G__38753;\nchunk__35753 \x3d G__38754;\ncount__35754 \x3d G__38755;\ni__35755 \x3d G__38756;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve a macro.\n */\ncljs.analyzer.resolve_macro_var \x3d (function cljs$analyzer$resolve_macro_var(env,sym){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927));\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns__$1 \x3d cljs.core.namespace(sym);\nvar ns__$2 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure.core\x22,ns__$1))?\x22cljs.core\x22:ns__$1);\nvar full_ns \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$2);\nvar full_ns__$1 \x3d (((!(clojure.string.ends_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22].join(\x27\x27)):full_ns);\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null)) \x3d\x3d null)))){\nvar full_ns \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null)) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null));\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym__$1], null));\n} else {\nvar ns__$1 \x3d (((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null)) \x3d\x3d null))))?ns:((cljs.analyzer.core_name_QMARK_(env,sym))?cljs.analyzer.impl.CLJS_CORE_MACROS_SYM:null));\nif((!((ns__$1 \x3d\x3d null)))){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\n\n\ncljs.analyzer.specials \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 22, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null);\ncljs.analyzer._STAR_recur_frames_STAR_ \x3d null;\ncljs.analyzer._STAR_loop_lets_STAR_ \x3d cljs.core.List.EMPTY;\ncljs.analyzer._STAR_allow_redef_STAR_ \x3d false;\ncljs.analyzer._STAR_allow_ns_STAR_ \x3d true;\ncljs.analyzer.analyze_keyword \x3d (function cljs$analyzer$analyze_keyword(env,sym){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null)], null);\n});\ncljs.analyzer.get_tag \x3d (function cljs$analyzer$get_tag(ast){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast)));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.find_matching_method \x3d (function cljs$analyzer$find_matching_method(fn_ast,params){\nvar methods$ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fn_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n}\n})();\nvar c \x3d cljs.core.count(params);\nreturn cljs.core.some((function (m){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869).cljs$core$IFn$_invoke$arity$1(m) \x3d\x3d\x3d c);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(m);\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn m;\n} else {\nreturn and__5023__auto__;\n}\n}),methods$);\n});\ncljs.analyzer.type_QMARK_ \x3d (function cljs$analyzer$type_QMARK_(env,t){\nif((((!((t \x3d\x3d null)))) \x26\x26 ((t instanceof cljs.core.Symbol)))){\nvar var$ \x3d (function (){var _STAR_private_var_access_nowarn_STAR__orig_val__35815 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__35816 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__35816);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,t);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__35815);\n}})();\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(var$));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar temp__5827__auto____$2 \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto____$2 \x3d\x3d null)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22PersistentHashMap\x22,\x22cljs.core/PersistentHashMap\x22,-454120575,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22List\x22,\x22cljs.core/List\x22,1708954352,null),\x22null\x22], null), null),t);\n} else {\nvar proto \x3d temp__5827__auto____$2;\nreturn proto;\n}\n} else {\nvar type \x3d temp__5827__auto____$1;\nreturn type;\n}\n} else {\nvar type \x3d temp__5827__auto__;\nreturn type;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.unwrap_quote \x3d (function cljs$analyzer$unwrap_quote(p__35830){\nvar map__35833 \x3d p__35830;\nvar map__35833__$1 \x3d cljs.core.__destructure_map(map__35833);\nvar ast \x3d map__35833__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35833__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif(cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245))){\nreturn new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.infer_if \x3d (function cljs$analyzer$infer_if(env,ast){\nvar map__35844 \x3d cljs.analyzer.unwrap_quote(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__35844__$1 \x3d cljs.core.__destructure_map(map__35844);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar then_tag \x3d (function (){var G__35849 \x3d env;\nvar G__35850 \x3d new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35849,G__35850) : cljs.analyzer.infer_tag.call(null,G__35849,G__35850));\n})();\nif(((cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842))) \x26\x26 ((((!((form \x3d\x3d null)))) \x26\x26 ((!(form \x3d\x3d\x3d false))))))){\nreturn then_tag;\n} else {\nvar else_tag \x3d (function (){var G__35857 \x3d env;\nvar G__35858 \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35857,G__35858) : cljs.analyzer.infer_tag.call(null,G__35857,G__35858));\n})();\nif(((cljs.core.symbol_identical_QMARK_(then_tag,else_tag)) || (cljs.core.symbol_identical_QMARK_(else_tag,cljs.analyzer.impl.IGNORE_SYM)))){\nreturn then_tag;\n} else {\nif(cljs.core.symbol_identical_QMARK_(then_tag,cljs.analyzer.impl.IGNORE_SYM)){\nreturn else_tag;\n} else {\nif((((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,then_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,then_tag)))) \x26\x26 ((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,else_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,else_tag)))))){\nreturn new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null);\n} else {\nif((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,then_tag) \x3d\x3d null)))) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,else_tag) \x3d\x3d null)))))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nvar then_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(then_tag))?then_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([then_tag]));\nvar else_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(else_tag))?else_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([else_tag]));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(then_tag__$1,else_tag__$1);\n}\n\n}\n}\n}\n}\n});\ncljs.analyzer.js_var_QMARK_ \x3d (function cljs$analyzer$js_var_QMARK_(ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.js_var_fn_QMARK_ \x3d (function cljs$analyzer$js_var_fn_QMARK_(fn_ast){\nreturn cljs.analyzer.js_var_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n});\ncljs.analyzer.fn_ast__GT_tag \x3d (function cljs$analyzer$fn_ast__GT_tag(p__35891){\nvar map__35893 \x3d p__35891;\nvar map__35893__$1 \x3d cljs.core.__destructure_map(map__35893);\nvar fn_ast \x3d map__35893__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35893__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.analyzer.js_var_fn_QMARK_(fn_ast)){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.analyzer.infer_invoke \x3d (function cljs$analyzer$infer_invoke(env,p__35918){\nvar map__35919 \x3d p__35918;\nvar map__35919__$1 \x3d cljs.core.__destructure_map(map__35919);\nvar ast \x3d map__35919__$1;\nvar fn_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar me \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.find_matching_method(fn_ast,args),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839));\nvar temp__5827__auto__ \x3d (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,me) : cljs.analyzer.infer_tag.call(null,env,me));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d cljs.analyzer.fn_ast__GT_tag(fn_ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn cljs.analyzer.impl.ANY_SYM;\n} else {\nvar ret_tag \x3d temp__5827__auto____$1;\nreturn ret_tag;\n}\n} else {\nvar ret_tag \x3d temp__5827__auto__;\nreturn ret_tag;\n}\n});\n/**\n * Given env, an analysis environment, and e, an AST node, return the inferred\n * type of the node\n */\ncljs.analyzer.infer_tag \x3d (function cljs$analyzer$infer_tag(env,ast){\nvar temp__5827__auto__ \x3d cljs.analyzer.get_tag(ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar G__35920 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__35920__$1 \x3d (((G__35920 instanceof cljs.core.Keyword))?G__35920.fqn:null);\nswitch (G__35920__$1) {\ncase \x22recur\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22throw\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22let\x22:\nvar G__35924 \x3d env;\nvar G__35925 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35924,G__35925) : cljs.analyzer.infer_tag.call(null,G__35924,G__35925));\n\nbreak;\ncase \x22loop\x22:\nvar G__35928 \x3d env;\nvar G__35929 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35928,G__35929) : cljs.analyzer.infer_tag.call(null,G__35928,G__35929));\n\nbreak;\ncase \x22do\x22:\nvar G__35932 \x3d env;\nvar G__35933 \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35932,G__35933) : cljs.analyzer.infer_tag.call(null,G__35932,G__35933));\n\nbreak;\ncase \x22fn-method\x22:\nvar G__35935 \x3d env;\nvar G__35936 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35935,G__35936) : cljs.analyzer.infer_tag.call(null,G__35935,G__35936));\n\nbreak;\ncase \x22def\x22:\nvar G__35937 \x3d env;\nvar G__35938 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35937,G__35938) : cljs.analyzer.infer_tag.call(null,G__35937,G__35938));\n\nbreak;\ncase \x22invoke\x22:\nreturn cljs.analyzer.infer_invoke(env,ast);\n\nbreak;\ncase \x22if\x22:\nreturn cljs.analyzer.infer_if(env,ast);\n\nbreak;\ncase \x22const\x22:\nvar G__35939 \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(false,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nreturn cljs.analyzer.impl.ANY_SYM;\n\n}\n}\n\nbreak;\ncase \x22quote\x22:\nvar G__35940 \x3d env;\nvar G__35941 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35940,G__35941) : cljs.analyzer.infer_tag.call(null,G__35940,G__35941));\n\nbreak;\ncase \x22var\x22:\ncase \x22local\x22:\ncase \x22js-var\x22:\ncase \x22binding\x22:\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar G__35942 \x3d env;\nvar G__35943 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35942,G__35943) : cljs.analyzer.infer_tag.call(null,G__35942,G__35943));\n} else {\nvar init \x3d temp__5827__auto____$1;\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.infer_tag.call(null,env,init));\n}\n\nbreak;\ncase \x22host-field\x22:\ncase \x22host-call\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ncase \x22js\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.parse !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.parse \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35952 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35952.cljs$core$IFn$_invoke$arity$0 ? fexpr__35952.cljs$core$IFn$_invoke$arity$0() : fexpr__35952.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22parse\x22),(function() { \nvar G__38759__delegate \x3d function (op,rest){\nreturn op;\n};\nvar G__38759 \x3d function (op,var_args){\nvar rest \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38760__i \x3d 0, G__38760__a \x3d new Array(arguments.length - 1);\nwhile (G__38760__i \x3c G__38760__a.length) {G__38760__a[G__38760__i] \x3d arguments[G__38760__i + 1]; ++G__38760__i;}\n rest \x3d new cljs.core.IndexedSeq(G__38760__a,0,null);\n} \nreturn G__38759__delegate.call(this,op,rest);};\nG__38759.cljs$lang$maxFixedArity \x3d 1;\nG__38759.cljs$lang$applyTo \x3d (function (arglist__38761){\nvar op \x3d cljs.core.first(arglist__38761);\nvar rest \x3d cljs.core.rest(arglist__38761);\nreturn G__38759__delegate(op,rest);\n});\nG__38759.cljs$core$IFn$_invoke$arity$variadic \x3d G__38759__delegate;\nreturn G__38759;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.var_meta \x3d (function cljs$analyzer$var_meta(var_args){\nvar G__35964 \x3d arguments.length;\nswitch (G__35964) {\ncase 1:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1 \x3d (function (var$){\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,null);\n}));\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (var$,expr_env){\nvar sym \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$);\nvar ks \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095)], null);\nvar m \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var user_meta \x3d new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964).cljs$core$IFn$_invoke$arity$1(var$);\nvar uks \x3d cljs.core.keys(user_meta);\nreturn cljs.core.zipmap(uks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35957_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(user_meta,p1__35957_SHARP_),null,(1),null)),(2),null));\n}),uks));\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.zipmap(ks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35959_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(var$,p1__35959_SHARP_),null,(1),null)),(2),null));\n}),ks)),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null))))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),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(\x22cljs.core\x22,\x22when\x22,\x22cljs.core/when\x22,120293186,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(null,\x22.-cljs$lang$test\x22,\x22.-cljs$lang$test\x22,718963148,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),(function (){var arglists \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(var$);\nvar arglists_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists)))?cljs.core.second(arglists):arglists);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.with_meta,arglists_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)),(2),null));\n})()], 0))], 0));\nif(cljs.core.truth_(expr_env)){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,m) : cljs.analyzer.analyze.call(null,expr_env,m));\n} else {\nreturn m;\n}\n}));\n\n(cljs.analyzer.var_meta.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.var_ast \x3d (function cljs$analyzer$var_ast(env,sym){\nvar _STAR_private_var_access_nowarn_STAR__orig_val__36029 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__36030 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__36030);\n\ntry{var env__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar var$ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env__$1,sym,cljs.analyzer.confirm_var_exists_throw());\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar var_ns \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym)),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),(function (){var G__36055 \x3d expr_env;\nvar G__36056 \x3d 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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.name(var_ns),cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36055,G__36056) : cljs.analyzer.analyze.call(null,G__36055,G__36056));\n})(),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,expr_env)], null);\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__36029);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),(function (op,env,p__36064,_,___$1){\nvar vec__36066 \x3d p__36064;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(1),null);\nvar form \x3d vec__36066;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to var\x22);\n} else {\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Argument to var must be symbol\x22);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22the-var\x22,\x22the-var\x22,1428415613),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),cljs.analyzer.var_ast(env,sym)], 0));\n}));\ncljs.analyzer.predicate__GT_tag \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(\x22cljs.core\x22,\x22array?\x22,\x22cljs.core/array?\x22,-1655912448,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22boolean?\x22,\x22cljs.core/boolean?\x22,1400713761,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22char?\x22,\x22cljs.core/char?\x22,416405281,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22keyword?\x22,\x22cljs.core/keyword?\x22,713156450,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-symbol?\x22,\x22cljs.core/simple-symbol?\x22,-1951205629,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-symbol?\x22,\x22cljs.core/qualified-symbol?\x22,1570873476,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22var?\x22,\x22cljs.core/var?\x22,1711182854,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22map-entry?\x22,\x22cljs.core/map-entry?\x22,465406728,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22double?\x22,\x22cljs.core/double?\x22,1757455529,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-ident?\x22,\x22cljs.core/qualified-ident?\x22,-1863492566,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22inst?\x22,\x22cljs.core/inst?\x22,1216133710,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22float?\x22,\x22cljs.core/float?\x22,-941017745,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22true?\x22,\x22cljs.core/true?\x22,-77973136,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22number?\x22,\x22cljs.core/number?\x22,-811857295,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22volatile?\x22,\x22cljs.core/volatile?\x22,-1122186415,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22integer?\x22,\x22cljs.core/integer?\x22,1710697810,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22infinite?\x22,\x22cljs.core/infinite?\x22,-1069503726,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22undefined?\x22,\x22cljs.core/undefined?\x22,-1206515693,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22uuid?\x22,\x22cljs.core/uuid?\x22,-15131116,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22record?\x22,\x22cljs.core/record?\x22,1307655860,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22reduced?\x22,\x22cljs.core/reduced?\x22,-1192491371,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22tagged-literal?\x22,\x22cljs.core/tagged-literal?\x22,-1159666987,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22zero?\x22,\x22cljs.core/zero?\x22,-341242858,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22false?\x22,\x22cljs.core/false?\x22,-1660815306,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-ident?\x22,\x22cljs.core/simple-ident?\x22,1674885558,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-keyword?\x22,\x22cljs.core/simple-keyword?\x22,39474330,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seqable?\x22,\x22cljs.core/seqable?\x22,-745394886,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22symbol?\x22,\x22cljs.core/symbol?\x22,1422196122,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seq?\x22,\x22cljs.core/seq?\x22,-1302056292,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22delay?\x22,\x22cljs.core/delay?\x22,2099859324,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22regexp?\x22,\x22cljs.core/regexp?\x22,-348418979,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ident?\x22,\x22cljs.core/ident?\x22,1567441535,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22chunked-seq?\x22,\x22cljs.core/chunked-seq?\x22,-712922369,null)],[new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISequential\x22,\x22cljs.core/ISequential\x22,-950981796,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Var\x22,\x22cljs.core/Var\x22,2071014443,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMapEntry\x22,\x22cljs.core/IMapEntry\x22,535941300,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Inst\x22,\x22cljs.core/Inst\x22,959205835,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Volatile\x22,\x22cljs.core/Volatile\x22,-1098692185,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IUUID\x22,\x22cljs.core/IUUID\x22,-1606521379,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IRecord\x22,\x22cljs.core/IRecord\x22,635852000,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Reduced\x22,\x22cljs.core/Reduced\x22,971663396,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ITaggedLiteral\x22,\x22cljs.core/ITaggedLiteral\x22,-1236965094,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(\x22cljs.core\x22,\x22ISeqable\x22,\x22cljs.core/ISeqable\x22,137437203,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Delay\x22,\x22cljs.core/Delay\x22,-21574999,null),new cljs.core.Symbol(\x22js\x22,\x22RegExp\x22,\x22js/RegExp\x22,1778210562,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IChunkedSeq\x22,\x22cljs.core/IChunkedSeq\x22,-892943716,null)]);\n/**\n * Look for a predicate-induced tag when the test expression is a simple\n * application of a predicate to a local, as in (string? x).\n */\ncljs.analyzer.simple_predicate_induced_tag \x3d (function cljs$analyzer$simple_predicate_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((2) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36084 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36085 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36085);\n\ntry{var G__36086 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36087 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36086,G__36087) : cljs.analyzer.analyze.call(null,G__36086,G__36087));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36084);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nvar temp__5825__auto__ \x3d (function (){var G__36095 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nreturn (cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1(G__36095) : cljs.analyzer.predicate__GT_tag.call(null,G__36095));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto__){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Look for a type-check-induced tag when the test expression is the use of\n * instance? on a local, as in (instance? UUID x) or implements? on a local, as\n * in (implements? ICounted x).\n */\ncljs.analyzer.type_check_induced_tag \x3d (function cljs$analyzer$type_check_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((3) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.specials,cljs.core.first(test))))))))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36112 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36113 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36113);\n\ntry{var G__36115 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36116 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36115,G__36116) : cljs.analyzer.analyze.call(null,G__36115,G__36116));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36112);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nif(cljs.core.truth_((function (){var G__36118 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nvar fexpr__36117 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22implements?\x22,\x22cljs.core/implements?\x22,-251485149,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),\x22null\x22], null), null);\nreturn (fexpr__36117.cljs$core$IFn$_invoke$arity$1 ? fexpr__36117.cljs$core$IFn$_invoke$arity$1(G__36118) : fexpr__36117.call(null,G__36118));\n})())){\nvar analyzed_type \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36125 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36126 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36126);\n\ntry{var G__36130 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36131 \x3d cljs.core.second(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36130,G__36131) : cljs.analyzer.analyze.call(null,G__36130,G__36131));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36125);\n}})();\nvar tag \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_type);\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_type));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Refine a tag to exclude clj-nil if the test is a local.\n */\ncljs.analyzer.truth_induced_tag \x3d (function cljs$analyzer$truth_induced_tag(env,test){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (test instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(test) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),test], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar analyzed_symbol \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36144 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36145 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36145);\n\ntry{var G__36148 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36149 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36148,G__36149) : cljs.analyzer.analyze.call(null,G__36148,G__36149));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36144);\n}})();\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(analyzed_symbol);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nif(((cljs.core.set_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [test,cljs.analyzer.canonicalize_type(cljs.core.disj.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null)))], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Looks at the test and sets any tags which are induced by virtue\n * of the test being truthy. For example in (if (string? x) x :bar)\n * the local x in the then branch must be of string type.\n */\ncljs.analyzer.set_test_induced_tags \x3d (function cljs$analyzer$set_test_induced_tags(env,test){\nvar vec__36164 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.simple_predicate_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.type_check_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.truth_induced_tag(env,test);\n}\n}\n})();\nvar local \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(0),null);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(1),null);\nvar G__36172 \x3d env;\nif(cljs.core.truth_(local)){\nreturn cljs.core.assoc_in(G__36172,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),local,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null),tag);\n} else {\nreturn G__36172;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),(function (op,env,p__36181,name,_){\nvar vec__36183 \x3d p__36181;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(0),null);\nvar test \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(1),null);\nvar then \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(2),null);\nvar else$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(3),null);\nvar form \x3d vec__36183;\nif((cljs.core.count(form) \x3c (3))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too few arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too many arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nvar test_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36190 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36191 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36191);\n\ntry{var G__36192 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36193 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36192,G__36193) : cljs.analyzer.analyze.call(null,G__36192,G__36193));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36190);\n}})();\nvar then_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36194 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36195 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36195);\n\ntry{var G__36196 \x3d cljs.analyzer.set_test_induced_tags(env,test);\nvar G__36197 \x3d then;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36196,G__36197) : cljs.analyzer.analyze.call(null,G__36196,G__36197));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36194);\n}})();\nvar else_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36198 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36199 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36199);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,else$) : cljs.analyzer.analyze.call(null,env,else$));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36198);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test_expr,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then_expr,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),else_expr,new cljs.core.Keyword(null,\x22unchecked\x22,\x22unchecked\x22,924418378),cljs.core._STAR_unchecked_if_STAR_,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),(function (op,env,p__36215,name,_){\nvar vec__36220 \x3d p__36215;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(1),null);\nvar tests \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(2),null);\nvar thens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(3),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(4),null);\nvar form \x3d vec__36220;\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* must switch on symbol\x22,\x22\\n\x22,\x22(symbol? sym)\x22].join(\x27\x27)));\n}\n\nif(cljs.core.every_QMARK_(cljs.core.vector_QMARK_,tests)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be grouped in vectors\x22,\x22\\n\x22,\x22(every? vector? tests)\x22].join(\x27\x27)));\n}\n\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar v \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36239 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36240 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36240);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36239);\n}})();\nvar tests__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36208_SHARP_){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (t){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,t) : cljs.analyzer.analyze.call(null,expr_env,t));\n}),p1__36208_SHARP_);\n}),tests);\nvar thens__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36209_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,p1__36209_SHARP_) : cljs.analyzer.analyze.call(null,env,p1__36209_SHARP_));\n}),thens);\nvar nodes \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tests__$2,then){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-node\x22,\x22case-node\x22,1016946320),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (test){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-test\x22,\x22case-test\x22,-213512472),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(test),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),expr_env,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)], null)], null);\n}),tests__$2),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-then\x22,\x22case-then\x22,2107591745),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(then),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null);\n}),tests__$1,thens__$1);\nvar default$__$1 \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,default$) : cljs.analyzer.analyze.call(null,env,default$));\nif(cljs.core.every_QMARK_((function (t){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(t));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(t));\nif(and__5023__auto__){\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.char_QMARK_)(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(t));\n} else {\nreturn and__5023__auto__;\n}\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,tests__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be numbers, strings, or constants\x22,\x22\\n\x22,\x22(every? (fn [t] (or (-\x3e t :info :const) (and (\x3d :const (:op t)) ((some-fn number? string? char?) (:form t))))) (apply concat tests))\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case\x22,\x22case\x22,1143702196),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),v,new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),nodes,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),(function (op,env,p__36284,name,_){\nvar vec__36287 \x3d p__36284;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(0),null);\nvar throw_form \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(1),null);\nvar form \x3d vec__36287;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too few arguments to throw, throw expects a single Error instance\x22);\n} else {\nif(((2) \x3c cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to throw, throw expects a single Error instance\x22);\n} else {\n}\n}\n\nvar throw_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36297 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36298 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36298);\n\ntry{var G__36300 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36301 \x3d throw_form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36300,G__36301) : cljs.analyzer.analyze.call(null,G__36300,G__36301));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36297);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22throw\x22,\x22throw\x22,-1044625833),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),throw_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),(function (op,env,p__36324,name,_){\nvar vec__36327 \x3d p__36324;\nvar seq__36328 \x3d cljs.core.seq(vec__36327);\nvar first__36329 \x3d cljs.core.first(seq__36328);\nvar seq__36328__$1 \x3d cljs.core.next(seq__36328);\nvar ___$1 \x3d first__36329;\nvar body \x3d seq__36328__$1;\nvar form \x3d vec__36327;\nvar catchenv \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),(function (p1__36307_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),p1__36307_SHARP_)){\nreturn new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105);\n} else {\nreturn p1__36307_SHARP_;\n}\n}));\nvar catch_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36309_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36309_SHARP_),new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null));\n}));\nvar default_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(catch_QMARK_,(function (p1__36312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(p1__36312_SHARP_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\nvar finally_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36313_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36313_SHARP_),new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null));\n}));\nvar map__36334 \x3d (function (){var parser \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),body,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),null,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),null], null);\nwhile(true){\nif(cljs.core.seq_QMARK_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser))){\nvar vec__36377 \x3d new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser);\nvar seq__36378 \x3d cljs.core.seq(vec__36377);\nvar first__36379 \x3d cljs.core.first(seq__36378);\nvar seq__36378__$1 \x3d cljs.core.next(seq__36378);\nvar form__$1 \x3d first__36379;\nvar forms_STAR_ \x3d seq__36378__$1;\nvar parser_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms_STAR_);\nvar G__36383 \x3d new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__36383__$1 \x3d (((G__36383 instanceof cljs.core.Keyword))?G__36383.fqn:null);\nswitch (G__36383__$1) {\ncase \x22start\x22:\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38773 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22catches\x22,\x22catches\x22,-1478797617));\nparser \x3d G__38773;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38774 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38774;\ncontinue;\n} else {\nvar G__38775 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),cljs.core.conj,form__$1);\nparser \x3d G__38775;\ncontinue;\n\n}\n}\n\nbreak;\ncase \x22catches\x22:\nif(cljs.core.truth_(default_QMARK_(form__$1))){\nvar G__38776 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], 0));\nparser \x3d G__38776;\ncontinue;\n} else {\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38777 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138)], null),cljs.core.conj,form__$1);\nparser \x3d G__38777;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38780;\ncontinue;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid try form\x22);\n\n}\n}\n}\n\nbreak;\ncase \x22finally\x22:\nvar G__38783 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188)], 0));\nparser \x3d G__38783;\ncontinue;\n\nbreak;\ncase \x22done\x22:\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Unexpected form after finally\x22);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36383__$1)].join(\x27\x27)));\n\n}\n} else {\nreturn parser;\n}\nbreak;\n}\n})();\nvar map__36334__$1 \x3d cljs.core.__destructure_map(map__36334);\nvar body__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar cblocks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138));\nvar dblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381));\nvar fblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426));\nvar finally$ \x3d ((cljs.core.seq(fblock))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var _STAR_recur_frames_STAR__orig_val__36397 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36398 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36398);\n\ntry{var G__36399 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36400 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),cljs.core.rest(fblock))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36399,G__36400) : cljs.analyzer.analyze.call(null,G__36399,G__36400));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36397);\n}})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true):null);\nvar e \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.seq(cblocks);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn dblock;\n}\n})())?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22e\x22):null);\nvar default$ \x3d (function (){var temp__5823__auto__ \x3d dblock;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36401 \x3d temp__5823__auto__;\nvar seq__36402 \x3d cljs.core.seq(vec__36401);\nvar first__36403 \x3d cljs.core.first(seq__36402);\nvar seq__36402__$1 \x3d cljs.core.next(seq__36402);\nvar ___$2 \x3d first__36403;\nvar first__36403__$1 \x3d cljs.core.first(seq__36402__$1);\nvar seq__36402__$2 \x3d cljs.core.next(seq__36402__$1);\nvar ___$3 \x3d first__36403__$1;\nvar first__36403__$2 \x3d cljs.core.first(seq__36402__$2);\nvar seq__36402__$3 \x3d cljs.core.next(seq__36402__$2);\nvar name__$1 \x3d first__36403__$2;\nvar cb \x3d seq__36402__$3;\nreturn 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0))));\n} else {\nreturn 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,\x22throw\x22,\x22throw\x22,595905694,null),null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))));\n}\n})();\nvar cblock \x3d ((cljs.core.seq(cblocks))?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(\x22cljs.core\x22,\x22cond\x22,\x22cljs.core/cond\x22,2005388338,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__36412){\nvar vec__36413 \x3d p__36412;\nvar seq__36414 \x3d cljs.core.seq(vec__36413);\nvar first__36415 \x3d cljs.core.first(seq__36414);\nvar seq__36414__$1 \x3d cljs.core.next(seq__36414);\nvar ___$2 \x3d first__36415;\nvar first__36415__$1 \x3d cljs.core.first(seq__36414__$1);\nvar seq__36414__$2 \x3d cljs.core.next(seq__36414__$1);\nvar type \x3d first__36415__$1;\nvar first__36415__$2 \x3d cljs.core.first(seq__36414__$2);\nvar seq__36414__$3 \x3d cljs.core.next(seq__36414__$2);\nvar name__$1 \x3d first__36415__$2;\nvar cb \x3d seq__36414__$3;\nif(cljs.core.truth_(name__$1)){\nif(cljs.core.not(cljs.core.namespace(name__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t qualify symbol in catch\x22,\x22\\n\x22,\x22(not (namespace name))\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn 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,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(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),null,(1),null)),(new cljs.core.List(null,type,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,e,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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0)))),null,(1),null))))));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cblocks], 0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,(1),null)),(new cljs.core.List(null,default$,null,(1),null))], 0)))):default$);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(catchenv);\nvar locals__$1 \x3d (cljs.core.truth_(e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(e,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(e,env),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null)):locals);\nvar catch$ \x3d (cljs.core.truth_(cblock)?(function (){var _STAR_recur_frames_STAR__orig_val__36423 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36424 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36424);\n\ntry{var G__36428 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(catchenv,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1);\nvar G__36429 \x3d cblock;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36428,G__36429) : cljs.analyzer.analyze.call(null,G__36428,G__36429));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36423);\n}})():null);\nvar try$ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36432 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36433 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36433);\n\ntry{var G__36436 \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d e;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn finally$;\n}\n})())?catchenv:env);\nvar G__36437 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body__$1)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36436,G__36437) : cljs.analyzer.analyze.call(null,G__36436,G__36437));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36432);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22try\x22,\x22try\x22,1380742522),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(try$,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705),finally$,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524),catch$,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),(cljs.core.truth_(catch$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null):null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(finally$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], null):null)], 0)))], null);\n}));\ncljs.analyzer.valid_proto \x3d (function cljs$analyzer$valid_proto(x){\nif((x instanceof cljs.core.Symbol)){\nreturn x;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.elide_env \x3d (function cljs$analyzer$elide_env(env,ast,opts){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235));\n});\ncljs.analyzer.replace_env_pass \x3d (function cljs$analyzer$replace_env_pass(new_env){\nreturn (function (env,ast,opts){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new_env);\n});\n});\ncljs.analyzer.ast_children \x3d (function cljs$analyzer$ast_children(ast){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (c){\nvar g \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast,c);\nif(cljs.core.vector_QMARK_(g)){\nreturn g;\n} else {\nif(cljs.core.truth_(g)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null);\n} else {\nreturn null;\n}\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)], 0));\n});\ncljs.analyzer.constant_value_QMARK_ \x3d (function cljs$analyzer$constant_value_QMARK_(p__36477){\nvar map__36480 \x3d p__36477;\nvar map__36480__$1 \x3d cljs.core.__destructure_map(map__36480);\nvar ast \x3d map__36480__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36480__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar or__5025__auto__ \x3d (function (){var fexpr__36483 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null], null), null);\nreturn (fexpr__36483.cljs$core$IFn$_invoke$arity$1 ? fexpr__36483.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36483.call(null,op));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d (function (){var fexpr__36487 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),null], null), null);\nreturn (fexpr__36487.cljs$core$IFn$_invoke$arity$1 ? fexpr__36487.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36487.call(null,op));\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.every_QMARK_(cljs.analyzer.constant_value_QMARK_,cljs.analyzer.ast_children(ast));\n} else {\nreturn and__5023__auto__;\n}\n}\n});\ncljs.analyzer.const_expr__GT_constant_value \x3d (function cljs$analyzer$const_expr__GT_constant_value(p__36496){\nvar map__36497 \x3d p__36496;\nvar map__36497__$1 \x3d cljs.core.__destructure_map(map__36497);\nvar e \x3d map__36497__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36497__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__36500 \x3d op;\nvar G__36500__$1 \x3d (((G__36500 instanceof cljs.core.Keyword))?G__36500.fqn:null);\nswitch (G__36500__$1) {\ncase \x22quote\x22:\nvar G__36506 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(e);\nreturn (cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1(G__36506) : cljs.analyzer.const_expr__GT_constant_value.call(null,G__36506));\n\nbreak;\ncase \x22const\x22:\nreturn new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612).cljs$core$IFn$_invoke$arity$1(e);\n\nbreak;\ncase \x22map\x22:\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(e)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22set\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22vector\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36500__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.earmuffed_QMARK_ \x3d (function cljs$analyzer$earmuffed_QMARK_(sym){\nvar s \x3d cljs.core.name(sym);\nreturn (((((s).length) \x3e (2))) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22*\x22)) \x26\x26 (clojure.string.ends_with_QMARK_(s,\x22*\x22)))));\n});\ncljs.analyzer.core_ns_QMARK_ \x3d (function cljs$analyzer$core_ns_QMARK_(ns_sym){\nvar s \x3d cljs.core.name(ns_sym);\nreturn ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),ns_sym)) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22cljs.\x22)) || (clojure.string.starts_with_QMARK_(s,\x22clojure.\x22)))));\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),(function (op,env,form,_,___$1){\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n} else {\n}\n\nvar pfn \x3d (function() {\nvar G__38791 \x3d null;\nvar G__38791__2 \x3d (function (___$2,sym){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\n});\nvar G__38791__3 \x3d (function (___$2,sym,init){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nvar G__38791__4 \x3d (function (___$2,sym,doc,init){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nG__38791 \x3d function(___$2,sym,doc,init){\nswitch(arguments.length){\ncase 2:\nreturn G__38791__2.call(this,___$2,sym);\ncase 3:\nreturn G__38791__3.call(this,___$2,sym,doc);\ncase 4:\nreturn G__38791__4.call(this,___$2,sym,doc,init);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38791.cljs$core$IFn$_invoke$arity$2 \x3d G__38791__2;\nG__38791.cljs$core$IFn$_invoke$arity$3 \x3d G__38791__3;\nG__38791.cljs$core$IFn$_invoke$arity$4 \x3d G__38791__4;\nreturn G__38791;\n})()\n;\nvar args \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(pfn,form);\nvar sym \x3d new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(args);\nvar const_QMARK_ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar sym_meta \x3d cljs.core.meta(sym);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar protocol \x3d cljs.analyzer.valid_proto(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)));\nvar dynamic \x3d new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar clash_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27));\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(cljs.core.symbol_identical_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns),ns_name)));\n} else {\nreturn and__5023__auto__;\n}\n})())?(function(){throw cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t def ns-qualified name in namespace \x22,sym_ns].join(\x27\x27))})():(((!((sym_ns \x3d\x3d null))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)):sym\n));\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns], null)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)].join(\x27\x27)),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),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(sym__$1))], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t redefine a constant\x22);\n} else {\n}\n\nvar temp__5829__auto___38792 \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif((temp__5829__auto___38792 \x3d\x3d null)){\n} else {\nvar doc_38793 \x3d temp__5829__auto___38792;\nif(typeof doc_38793 \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n}\n}\n\nif(((cljs.core.not(dynamic)) \x26\x26 (((cljs.analyzer.earmuffed_QMARK_(sym__$1)) \x26\x26 ((!(cljs.analyzer.core_ns_QMARK_(ns_name)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)], null));\n} else {\n}\n\nvar temp__5829__auto___38794 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38794 \x3d\x3d null)){\n} else {\nvar v_38795 \x3d temp__5829__auto___38794;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.analyzer._STAR_allow_redef_STAR_);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta));\nif(and__5023__auto____$2){\nvar and__5023__auto____$3 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.analyzer._STAR_file_defs_STAR_),sym__$1);\n} else {\nreturn and__5023__auto____$3;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(v_38795)], null));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795)),new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null));\n} else {\n}\n}\n\nvar env__$1 \x3d ((((((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))) \x26\x26 (cljs.analyzer.core_name_QMARK_(env,sym__$1)))) || ((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym__$1], null)) \x3d\x3d null))))))?(function (){var ev \x3d cljs.analyzer.resolve_existing_var(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),cljs.core.with_meta(sym__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nvar conj_to_set \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);\nif(cljs.analyzer.public_name_QMARK_(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),sym__$1)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name], null));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym__$1], 0));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,sym__$1);\n})():env);\nvar var_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1));\nvar init_expr \x3d ((cljs.core.contains_QMARK_(args,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)))?(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),sym_meta,((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1)], 0)));\n\nvar _STAR_recur_frames_STAR__orig_val__36583 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36584 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36584);\n\ntry{var _STAR_allow_ns_STAR__orig_val__36585 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36586 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36586);\n\ntry{var G__36587 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36588 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nvar G__36589 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(G__36587,G__36588,G__36589) : cljs.analyzer.analyze.call(null,G__36587,G__36588,G__36589));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36585);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36583);\n}})()\n:null);\nvar fn_var_QMARK_ \x3d (((!((init_expr \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204))));\nvar tag__$1 \x3d ((fn_var_QMARK_)?(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(init_expr);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d tag;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347).cljs$core$IFn$_invoke$arity$1(init_expr);\n}\n}\n})():(cljs.core.truth_(tag)?tag:(cljs.core.truth_(dynamic)?cljs.analyzer.impl.ANY_SYM:new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr)\n)));\nvar export_as \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar export_val \x3d temp__5825__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,export_val)){\nreturn var_name;\n} else {\nreturn export_val;\n}\n} else {\nreturn null;\n}\n})();\nvar doc \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\n}\n})();\nvar temp__5829__auto___38800 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38800 \x3d\x3d null)){\n} else {\nvar v_38801 \x3d temp__5829__auto___38800;\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1)))) \x26\x26 (((new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(v_38801) \x3d\x3d\x3d true) \x26\x26 ((!(fn_var_QMARK_))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),env__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1], null));\n} else {\n}\n}\n\nif((((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null)) \x3d\x3d null)) || (cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta))))){\nif(cljs.core.truth_(cljs.analyzer._STAR_file_defs_STAR_)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_file_defs_STAR_,cljs.core.conj,sym__$1);\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),(function (){var G__36605 \x3d sym_meta;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36605,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),true);\n} else {\nreturn G__36605;\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(sym_meta,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878)], null),(function (f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$1)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))){\nreturn \x22cljs/core.cljs\x22;\n} else {\nreturn f;\n}\n}))], null),(cljs.core.truth_(doc)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc], null):null),(cljs.core.truth_(const_QMARK_)?(function (){var const_expr \x3d (function (){var _STAR_passes_STAR__orig_val__36606 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__36607 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__36607);\n\ntry{var G__36610 \x3d env__$1;\nvar G__36611 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36610,G__36611) : cljs.analyzer.analyze.call(null,G__36610,G__36611));\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__36606);\n}})();\nif(cljs.core.truth_(cljs.analyzer.constant_value_QMARK_(const_expr))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})():null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1),(cljs.core.truth_(protocol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),protocol], null):null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar protocol_symbol \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198),protocol_symbol,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22protocol-info\x22,\x22protocol-info\x22,1471745843).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(protocol_symbol)),new cljs.core.Keyword(null,\x22impls\x22,\x22impls\x22,-1314014853),cljs.core.PersistentHashSet.EMPTY], null);\n} else {\nreturn null;\n}\n})(),((fn_var_QMARK_)?(function (){var params \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36545_SHARP_){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(p1__36545_SHARP_)));\n}),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),cljs.core.not(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(sym_meta)),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556).cljs$core$IFn$_invoke$arity$1(init_expr)], null),(function (){var temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),params,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta),new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838),cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta)))], null);\n} else {\nvar top_fn_meta \x3d temp__5827__auto__;\nreturn top_fn_meta;\n}\n})()], 0));\n})():null),(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta);\n} else {\nreturn and__5023__auto__;\n}\n})())?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),true,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null):null),((((fn_var_QMARK_) \x26\x26 ((!((tag__$1 \x3d\x3d null))))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):(cljs.core.truth_(tag__$1)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null):null))], 0)));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns_name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36631 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)),new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377),true);\nvar G__36633 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36631,G__36633) : cljs.analyzer.analyze.call(null,G__36631,G__36633));\n})(),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516).cljs$core$IFn$_invoke$arity$1(sym_meta)], null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar goog_type \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441),goog_type], null);\n} else {\nreturn null;\n}\n})(),((new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env__$1) \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var-ast\x22,\x22var-ast\x22,1200379319),cljs.analyzer.var_ast(env__$1,sym__$1)], null):null),(function (){var temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar test \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),(function (){var G__36638 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36639 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36638,G__36639) : cljs.analyzer.analyze.call(null,G__36638,G__36639));\n})()], null);\n}\n})(),(((!((tag__$1 \x3d\x3d null))))?((fn_var_QMARK_)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null)):null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),(((!((export_as \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590),export_as], null):null),(((!((init_expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null)], null))], 0));\n}));\ncljs.analyzer.analyze_fn_method_param \x3d (function cljs$analyzer$analyze_fn_method_param(env){\nreturn (function (p__36646,p__36647){\nvar vec__36648 \x3d p__36646;\nvar locals \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(1),null);\nvar vec__36651 \x3d p__36647;\nvar arg_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(1),null);\nif(cljs.core.truth_(cljs.core.namespace(name))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t use qualified name as parameter: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar column \x3d cljs.analyzer.get_col(name,env);\nvar nmeta \x3d cljs.core.meta(name);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(nmeta);\nvar shadow__$1 \x3d (((!((locals \x3d\x3d null))))?cljs.analyzer.handle_symbol_local(name,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(name) : locals.call(null,name))):null);\nvar env__$1 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], 0));\nvar param \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,column,line,arg_id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,tag,shadow__$1,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837)]);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name,param),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(params,param)], null);\n});\n});\ncljs.analyzer.analyze_fn_method_body \x3d (function cljs$analyzer$analyze_fn_method_body(env,form,recur_frames){\nvar _STAR_recur_frames_STAR__orig_val__36674 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36675 \x3d recur_frames;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36675);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze.call(null,env,form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36674);\n}});\ncljs.analyzer.analyze_fn_method \x3d (function cljs$analyzer$analyze_fn_method(env,locals,form,type,analyze_body_QMARK_){\nvar param_names \x3d cljs.core.first(form);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar param_names__$1 \x3d cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar body \x3d cljs.core.next(form);\nvar step \x3d cljs.analyzer.analyze_fn_method_param(env);\nvar step_init \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [locals,cljs.core.PersistentVector.EMPTY], null);\nvar vec__36681 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,step_init,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,param_names__$1));\nvar locals__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(1),null);\nvar params_SINGLEQUOTE_ \x3d ((variadic \x3d\x3d\x3d true)?cljs.core.butlast(params):params);\nvar fixed_arity \x3d cljs.core.count(params_SINGLEQUOTE_);\nvar recur_frame \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY)], null);\nvar recur_frames \x3d cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_);\nvar body_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1], 0));\nvar body_form \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body)));\nvar expr \x3d (cljs.core.truth_(analyze_body_QMARK_)?cljs.analyzer.analyze_fn_method_body(body_env,body_form,recur_frames):null);\nvar recurs \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(recur_frame));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),variadic,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),fixed_arity,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22recurs\x22,\x22recurs\x22,-1959309309),recurs], null),(((!((expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235)], null)], null))], 0));\n});\ncljs.analyzer.fn_name_var \x3d (function cljs$analyzer$fn_name_var(env,locals,name){\nif((!((name \x3d\x3d null)))){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar fn_scope \x3d new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22fn-self-name\x22,\x22fn-self-name\x22,1461143531),true,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),fn_scope,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null)], null);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nvar ret_tag \x3d (((!((tag \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag], null):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([name_var,ret_tag], 0));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_fn_methods_pass2_STAR_ \x3d (function cljs$analyzer$analyze_fn_methods_pass2_STAR_(menv,locals,type,meths){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36696_SHARP_){\nreturn cljs.analyzer.analyze_fn_method(menv,locals,p1__36696_SHARP_,type,true);\n}),meths);\n});\ncljs.analyzer.analyze_fn_methods_pass2 \x3d (function cljs$analyzer$analyze_fn_methods_pass2(menv,locals,type,meths){\nreturn cljs.analyzer.analyze_fn_methods_pass2_STAR_(menv,locals,type,meths);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(function (op,env,p__36698,name,_){\nvar vec__36699 \x3d p__36698;\nvar seq__36700 \x3d cljs.core.seq(vec__36699);\nvar first__36701 \x3d cljs.core.first(seq__36700);\nvar seq__36700__$1 \x3d cljs.core.next(seq__36700);\nvar ___$1 \x3d first__36701;\nvar args \x3d seq__36700__$1;\nvar form \x3d vec__36699;\nvar named_fn_QMARK_ \x3d (cljs.core.first(args) instanceof cljs.core.Symbol);\nvar vec__36702 \x3d ((named_fn_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,cljs.core.seq(args)], null));\nvar name__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(0),null);\nvar meths \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(1),null);\nvar meths__$1 \x3d ((cljs.core.vector_QMARK_(cljs.core.first(meths)))?(new cljs.core.List(null,meths,null,(1),null)):meths);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d cljs.analyzer.fn_name_var(env,locals,name__$1);\nvar env__$1 \x3d (((!((name__$1 \x3d\x3d null))))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859)], null),cljs.core.conj,name_var):env);\nvar locals__$1 \x3d (((((!((locals \x3d\x3d null)))) \x26\x26 (named_fn_QMARK_)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name__$1,name_var):locals);\nvar form_meta \x3d cljs.core.meta(form);\nvar type \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_impl \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_inline \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar menv \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((function (){var G__36705 \x3d env__$1;\nif((cljs.core.count(meths__$1) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36705,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n} else {\nreturn G__36705;\n}\n})(),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),proto_impl,new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),proto_inline], null)], 0));\nvar methods$ \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36697_SHARP_){\nvar _STAR_allow_ns_STAR__orig_val__36706 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36707 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36707);\n\ntry{return cljs.analyzer.analyze_fn_method(menv,locals__$1,p1__36697_SHARP_,type,(name__$1 \x3d\x3d null));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36706);\n}}),meths__$1);\nvar mfa \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869)),cljs.core.max,(0),methods$);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),methods$));\nvar locals__$2 \x3d ((named_fn_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(locals__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name__$1], null),cljs.core.assoc,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([variadic,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),mfa,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),methods$)], 0)):locals__$1);\nvar methods$__$1 \x3d (((!((name__$1 \x3d\x3d null))))?(function (){var _STAR_allow_ns_STAR__orig_val__36708 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36709 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36709);\n\ntry{return cljs.analyzer.analyze_fn_methods_pass2(menv,locals__$2,type,meths__$1);\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36708);\n}})():cljs.core.vec(methods$));\nvar form__$1 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(form,cljs.core.dissoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742));\nvar js_doc \x3d ((variadic \x3d\x3d\x3d true)?\x22@param {...*} var_args\x22:null);\nvar children \x3d (((!((name_var \x3d\x3d null))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null));\nvar inferred_ret_tag \x3d (function (){var inferred_tags \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.infer_tag,env__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),methods$__$1));\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,inferred_tags))){\nreturn cljs.core.first(inferred_tags);\n} else {\nreturn null;\n}\n})();\nvar ast \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),new cljs.core.Keyword(null,\x22recur-frames\x22,\x22recur-frames\x22,-307205196),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516)],[children,proto_inline,name_var,cljs.analyzer._STAR_loop_lets_STAR_,inferred_ret_tag,proto_impl,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),env__$1,variadic,methods$__$1,cljs.analyzer._STAR_recur_frames_STAR_,mfa,form__$1,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246).cljs$core$IFn$_invoke$arity$1(env__$1),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_doc], null)]),(((!((name_var \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),name_var], null):null)], 0));\nvar variadic_methods_38806 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))),methods$__$1);\nvar variadic_params_38807 \x3d (((cljs.core.count(variadic_methods_38806) \x3e (0)))?cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(variadic_methods_38806,(0)))):(0));\nvar param_counts_38808 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.count,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235))),methods$__$1);\nif(((1) \x3c cljs.core.count(variadic_methods_38806))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif((!((((variadic_params_38807 \x3d\x3d\x3d (0))) || ((variadic_params_38807 \x3d\x3d\x3d ((1) + mfa))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(param_counts_38808),param_counts_38808)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(ast) : cljs.analyzer.analyze_wrap_meta.call(null,ast));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),(function (op,env,p__36710,name,_){\nvar vec__36711 \x3d p__36710;\nvar seq__36712 \x3d cljs.core.seq(vec__36711);\nvar first__36713 \x3d cljs.core.first(seq__36712);\nvar seq__36712__$1 \x3d cljs.core.next(seq__36712);\nvar ___$1 \x3d first__36713;\nvar first__36713__$1 \x3d cljs.core.first(seq__36712__$1);\nvar seq__36712__$2 \x3d cljs.core.next(seq__36712__$1);\nvar bindings \x3d first__36713__$1;\nvar exprs \x3d seq__36712__$2;\nvar form \x3d vec__36711;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar n__GT_fexpr \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.second),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings)));\nvar names \x3d cljs.core.keys(n__GT_fexpr);\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar vec__36714 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36720,n){\nvar vec__36721 \x3d p__36720;\nvar map__36724 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(0),null);\nvar map__36724__$1 \x3d cljs.core.__destructure_map(map__36724);\nvar env__$1 \x3d map__36724__$1;\nvar locals \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36724__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(1),null);\nvar ret_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(n));\nvar fexpr \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36725 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36726 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36726);\n\ntry{var G__36727 \x3d env__$1;\nvar G__36728 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(n) : n__GT_fexpr.call(null,n));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36727,G__36728) : cljs.analyzer.analyze.call(null,G__36727,G__36728));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36725);\n}})();\nvar be \x3d (function (){var G__36729 \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[n,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,cljs.analyzer.get_col(n,env__$1),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),cljs.analyzer.get_line(n,env__$1),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),n,true,cljs.analyzer.handle_symbol_local(n,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(n) : locals.call(null,n))),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354)]);\nif(cljs.core.truth_(ret_tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36729,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag);\n} else {\nreturn G__36729;\n}\n})();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),n], null),be),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [env,cljs.core.PersistentVector.EMPTY], null),names);\nvar meth_env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(0),null);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(1),null);\nvar meth_env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar vec__36717 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36730,p__36731){\nvar vec__36732 \x3d p__36730;\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(1),null);\nvar map__36735 \x3d p__36731;\nvar map__36735__$1 \x3d cljs.core.__destructure_map(map__36735);\nvar be \x3d map__36735__$1;\nvar name__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar shadow__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803));\nvar env__$1 \x3d cljs.core.assoc_in(meth_env__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),shadow__$1);\nvar fexpr \x3d (function (){var G__36737 \x3d env__$1;\nvar G__36738 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(name__$1) : n__GT_fexpr.call(null,name__$1));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36737,G__36738) : cljs.analyzer.analyze.call(null,G__36737,G__36738));\n})();\nvar be_SINGLEQUOTE_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(be,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),fexpr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], 0));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),be_SINGLEQUOTE_),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes__$1,be_SINGLEQUOTE_)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [meth_env__$1,cljs.core.PersistentVector.EMPTY], null),bes);\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(1),null);\nvar expr \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36743 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env__$2,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36744 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36743,G__36744) : cljs.analyzer.analyze.call(null,G__36743,G__36744));\n})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354),new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),expr,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null);\n}));\ncljs.analyzer.analyze_do_statements_STAR_ \x3d (function cljs$analyzer$analyze_do_statements_STAR_(env,exprs){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36747_SHARP_){\nvar G__36751 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36752 \x3d p1__36747_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36751,G__36752) : cljs.analyzer.analyze.call(null,G__36751,G__36752));\n}),cljs.core.butlast(exprs));\n});\ncljs.analyzer.analyze_do_statements \x3d (function cljs$analyzer$analyze_do_statements(env,exprs){\nvar _STAR_recur_frames_STAR__orig_val__36758 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36759 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36759);\n\ntry{return cljs.analyzer.analyze_do_statements_STAR_(env,exprs);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36758);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),(function (op,env,p__36763,_,___$1){\nvar vec__36765 \x3d p__36763;\nvar seq__36766 \x3d cljs.core.seq(vec__36765);\nvar first__36767 \x3d cljs.core.first(seq__36766);\nvar seq__36766__$1 \x3d cljs.core.next(seq__36766);\nvar ___$2 \x3d first__36767;\nvar exprs \x3d seq__36766__$1;\nvar form \x3d vec__36765;\nvar statements \x3d cljs.analyzer.analyze_do_statements(env,exprs);\nif((cljs.core.count(exprs) \x3c\x3d (1))){\nvar ret \x3d (function (){var G__36777 \x3d env;\nvar G__36778 \x3d cljs.core.first(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36777,G__36778) : cljs.analyzer.analyze.call(null,G__36777,G__36778));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n} else {\nvar ret_env \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105)));\nvar ret \x3d (function (){var G__36781 \x3d ret_env;\nvar G__36782 \x3d cljs.core.last(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36781,G__36782) : cljs.analyzer.analyze.call(null,G__36781,G__36782));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\n}));\ncljs.analyzer.analyze_let_binding_init \x3d (function cljs$analyzer$analyze_let_binding_init(env,init,loop_lets){\nvar _STAR_loop_lets_STAR__orig_val__36793 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_loop_lets_STAR__temp_val__36794 \x3d loop_lets;\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36794);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.analyze.call(null,env,init));\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36793);\n}});\ncljs.analyzer.get_let_tag \x3d (function cljs$analyzer$get_let_tag(name,init_expr){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(init_expr));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.analyze_let_bindings_STAR_ \x3d (function cljs$analyzer$analyze_let_bindings_STAR_(encl_env,bindings,op){\nvar bes \x3d cljs.core.PersistentVector.EMPTY;\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(encl_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar bindings__$1 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings));\nwhile(true){\nvar temp__5827__auto__ \x3d cljs.core.first(bindings__$1);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [bes,env], null);\n} else {\nvar vec__36847 \x3d temp__5827__auto__;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(1),null);\nif((((!((cljs.core.namespace(name) \x3d\x3d null)))) || (goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22.\x22)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,[\x22Invalid local name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar init_expr \x3d cljs.analyzer.analyze_let_binding_init(env,init,cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_));\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar col \x3d cljs.analyzer.get_col(name,env);\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,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,\x22locals\x22,\x22locals\x22,535295783),name], null)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar be \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null),init_expr,name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col], null),col,line,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,cljs.analyzer.get_let_tag(name,init_expr),shadow__$1,op]);\nvar be__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([be,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(((function (bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__){\nreturn (function (p1__36808_SHARP_){\nreturn cljs.core.select_keys(p1__36808_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null));\n});})(bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__))\n,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))], null)], 0)):be);\nvar G__38812 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be__$1);\nvar G__38813 \x3d cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name], null),be__$1);\nvar G__38814 \x3d cljs.core.next(bindings__$1);\nbes \x3d G__38812;\nenv \x3d G__38813;\nbindings__$1 \x3d G__38814;\ncontinue;\n}\nbreak;\n}\n});\ncljs.analyzer.analyze_let_bindings \x3d (function cljs$analyzer$analyze_let_bindings(encl_env,bindings,op){\nvar _STAR_recur_frames_STAR__orig_val__36873 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36874 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36874);\n\ntry{return cljs.analyzer.analyze_let_bindings_STAR_(encl_env,bindings,op);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36873);\n}});\ncljs.analyzer.analyze_let_body_STAR_ \x3d (function cljs$analyzer$analyze_let_body_STAR_(env,context,exprs){\nvar G__36876 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36877 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36876,G__36877) : cljs.analyzer.analyze.call(null,G__36876,G__36877));\n});\ncljs.analyzer.analyze_let_body \x3d (function cljs$analyzer$analyze_let_body(env,context,exprs,recur_frames,loop_lets){\nvar _STAR_recur_frames_STAR__orig_val__36888 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_loop_lets_STAR__orig_val__36889 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36890 \x3d recur_frames;\nvar _STAR_loop_lets_STAR__temp_val__36891 \x3d loop_lets;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36890);\n\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36891);\n\ntry{return cljs.analyzer.analyze_let_body_STAR_(env,context,exprs);\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36889);\n\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36888);\n}});\ncljs.analyzer.analyze_let \x3d (function cljs$analyzer$analyze_let(encl_env,p__36903,is_loop,widened_tags){\nwhile(true){\nvar vec__36905 \x3d p__36903;\nvar seq__36906 \x3d cljs.core.seq(vec__36905);\nvar first__36907 \x3d cljs.core.first(seq__36906);\nvar seq__36906__$1 \x3d cljs.core.next(seq__36906);\nvar _ \x3d first__36907;\nvar first__36907__$1 \x3d cljs.core.first(seq__36906__$1);\nvar seq__36906__$2 \x3d cljs.core.next(seq__36906__$1);\nvar bindings \x3d first__36907__$1;\nvar exprs \x3d seq__36906__$2;\nvar form \x3d vec__36905;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(encl_env);\nvar op \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849):new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701));\nvar bindings__$1 \x3d (cljs.core.truth_(widened_tags)?cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form){\nreturn (function (p__36918,widened_tag){\nvar vec__36919 \x3d p__36918;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),widened_tag),init], null);\n});})(encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form))\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings),widened_tags], 0))):bindings);\nvar vec__36909 \x3d cljs.analyzer.analyze_let_bindings((function (){var G__36927 \x3d encl_env;\nif(is_loop \x3d\x3d\x3d true){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36927,new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),true);\n} else {\nreturn G__36927;\n}\n})(),bindings__$1,op);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(0),null);\nvar env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(1),null);\nvar recur_frame \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),bes))], null):null);\nvar recur_frames \x3d (cljs.core.truth_(recur_frame)?cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_):cljs.analyzer._STAR_recur_frames_STAR_);\nvar loop_lets \x3d ((is_loop \x3d\x3d\x3d true)?cljs.analyzer._STAR_loop_lets_STAR_:(((!((cljs.analyzer._STAR_loop_lets_STAR_ \x3d\x3d null))))?cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_):null));\nvar warn_acc \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(widened_tags);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nvar expr \x3d (cljs.core.truth_(warn_acc)?(function (){var _STAR_cljs_warning_handlers_STAR__orig_val__36940 \x3d cljs.analyzer._STAR_cljs_warning_handlers_STAR_;\nvar _STAR_cljs_warning_handlers_STAR__temp_val__36941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.accumulating_warning_handler(warn_acc)], null);\n(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__temp_val__36941);\n\ntry{return cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets);\n}finally {(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__orig_val__36940);\n}})():cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets));\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null);\nvar nil__GT_any \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.not(widened_tags)) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(nil__GT_any,cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame))),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(nil__GT_any,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),bes))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__38819 \x3d encl_env;\nvar G__38820 \x3d form;\nvar G__38821 \x3d is_loop;\nvar G__38822 \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame));\nencl_env \x3d G__38819;\np__36903 \x3d G__38820;\nis_loop \x3d G__38821;\nwidened_tags \x3d G__38822;\ncontinue;\n} else {\nif(cljs.core.truth_(warn_acc)){\ncljs.analyzer.replay_accumulated_warnings(warn_acc);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),encl_env,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\nbreak;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,false,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,true,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),(function (op,env,p__36968,_,___$1){\nvar vec__36973 \x3d p__36968;\nvar seq__36974 \x3d cljs.core.seq(vec__36973);\nvar first__36975 \x3d cljs.core.first(seq__36974);\nvar seq__36974__$1 \x3d cljs.core.next(seq__36974);\nvar ___$2 \x3d first__36975;\nvar exprs \x3d seq__36974__$1;\nvar form \x3d vec__36973;\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar frame \x3d cljs.core.first(cljs.analyzer._STAR_recur_frames_STAR_);\nvar add_implicit_target_object_QMARK_ \x3d (function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs),(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)) - (1)));\n} else {\nreturn and__5023__auto__;\n}\n})();\nvar exprs__$1 \x3d (function (){var G__36983 \x3d exprs;\nif(cljs.core.truth_(add_implicit_target_object_QMARK_)){\nreturn cljs.core.cons(null,G__36983);\n} else {\nreturn G__36983;\n}\n})();\nvar exprs__$2 \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36991 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36992 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36992);\n\ntry{return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36965_SHARP_){\nvar G__36995 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36996 \x3d p1__36965_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36995,G__36996) : cljs.analyzer.analyze.call(null,G__36995,G__36996));\n}),exprs__$1));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36991);\n}})();\nif(cljs.core.truth_(frame)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t recur here\x22);\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs__$2),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22recur argument count mismatch, expected: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame))),\x22 args, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(exprs__$2))].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(add_implicit_target_object_QMARK_);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(cljs.core.first(exprs__$2))], null));\n} else {\n}\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(frame),true);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(frame),(function (tags){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tag,expr){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724).cljs$core$IFn$_invoke$arity$1(expr))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr));\n}\n}),tags,exprs__$2);\n}));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),new cljs.core.Keyword(null,\x22frame\x22,\x22frame\x22,-1711082588),frame,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094),exprs__$2,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094)], null)], 0));\n}));\ncljs.analyzer.analyze_const \x3d (function cljs$analyzer$analyze_const(env,form){\nvar map__37020 \x3d (function (){var G__37021 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621),true);\nvar G__37022 \x3d form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__37021,G__37022) : cljs.analyzer.analyze.call(null,G__37021,G__37022));\n})();\nvar map__37020__$1 \x3d cljs.core.__destructure_map(map__37020);\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37020__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(function (_,env,p__37023,___$1,___$2){\nvar vec__37024 \x3d p__37023;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(1),null);\nvar form \x3d vec__37024;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to quote\x22);\n} else {\n}\n\nvar expr \x3d cljs.analyzer.analyze_const(env,x);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n}));\ncljs.analyzer.js_prim_ctor__GT_tag \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(\x22js\x22,\x22Object\x22,\x22js/Object\x22,61215323,null),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(\x22js\x22,\x22String\x22,\x22js/String\x22,-2070054036,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22js\x22,\x22Array\x22,\x22js/Array\x22,-423508366,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(\x22js\x22,\x22Number\x22,\x22js/Number\x22,-508133572,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22js\x22,\x22Function\x22,\x22js/Function\x22,-749892063,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(\x22js\x22,\x22Boolean\x22,\x22js/Boolean\x22,1661145260,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n/**\n * Test whether a tag is a constructor for a JS primitive\n */\ncljs.analyzer.prim_ctor_QMARK_ \x3d (function cljs$analyzer$prim_ctor_QMARK_(t){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.js_prim_ctor__GT_tag,t);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),(function (_,env,p__37035,___$1,___$2){\nvar vec__37036 \x3d p__37035;\nvar seq__37037 \x3d cljs.core.seq(vec__37036);\nvar first__37038 \x3d cljs.core.first(seq__37037);\nvar seq__37037__$1 \x3d cljs.core.next(seq__37037);\nvar ___$3 \x3d first__37038;\nvar first__37038__$1 \x3d cljs.core.first(seq__37037__$1);\nvar seq__37037__$2 \x3d cljs.core.next(seq__37037__$1);\nvar ctor \x3d first__37038__$1;\nvar args \x3d seq__37037__$2;\nvar form \x3d vec__37036;\nvar _STAR_recur_frames_STAR__orig_val__37039 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37040 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37040);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ctorexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,ctor) : cljs.analyzer.analyze.call(null,enve,ctor));\nvar ctor_var \x3d (cljs.core.truth_((function (){var G__37042 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ctorexpr);\nvar fexpr__37041 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__37041.cljs$core$IFn$_invoke$arity$1 ? fexpr__37041.cljs$core$IFn$_invoke$arity$1(G__37042) : fexpr__37041.call(null,G__37042));\n})())?cljs.analyzer.resolve_existing_var(env,ctor):null);\nvar record_args \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((3),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,null) : cljs.analyzer.analyze.call(null,enve,null))):null);\nvar argexprs \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37034_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__37034_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__37034_SHARP_));\n}),args)),record_args);\nvar known_num_fields \x3d new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024).cljs$core$IFn$_invoke$arity$1(ctor_var);\nvar argc \x3d cljs.core.count(args);\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)))) \x26\x26 ((((!((known_num_fields \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(known_num_fields,argc);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$2 \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) + known_num_fields),argc);\n} else {\nreturn and__5023__auto____$2;\n}\n}\n})())))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802),ctor], null));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),ctorexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),(function (){var tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nif(((cljs.analyzer.js_tag_QMARK_(tag)) \x26\x26 ((!(cljs.analyzer.prim_ctor_QMARK_(tag)))))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nvar or__5025__auto__ \x3d (cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1(name) : cljs.analyzer.js_prim_ctor__GT_tag.call(null,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn name;\n}\n}\n})()], null);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37039);\n}}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),(function (_,env,p__37063,___$1,___$2){\nvar vec__37066 \x3d p__37063;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(0),null);\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(1),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(2),null);\nvar alt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(3),null);\nvar form \x3d vec__37066;\nvar vec__37070 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((4),cljs.core.count(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [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,\x22.\x22,\x22.\x22,1975675962,null),null,(1),null)),(new cljs.core.List(null,target,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,val,null,(1),null))], 0)))),alt], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,val], null));\nvar target__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(0),null);\nvar val__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(1),null);\nvar _STAR_recur_frames_STAR__orig_val__37081 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37082 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37082);\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__37088 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__37089 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__37089);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar texpr \x3d (((target__$1 instanceof cljs.core.Symbol))?(function (){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),val__$1));\n} else {\n}\n}\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),target__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! a constant\x22);\n} else {\n}\n\nvar local_38832 \x3d cljs.analyzer.handle_symbol_local(target__$1,(function (){var G__37100 \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nreturn (target__$1.cljs$core$IFn$_invoke$arity$1 ? target__$1.cljs$core$IFn$_invoke$arity$1(G__37100) : target__$1.call(null,G__37100));\n})());\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (local_38832 \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(local_38832);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! local var or non-mutable field\x22);\n}\n\nreturn (cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze_symbol.call(null,enve,target__$1));\n})()\n:((cljs.core.seq_QMARK_(target__$1))?(function (){var texpr \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22extend-type\x22,\x22extend-type\x22,-517175606).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(target__$1)))?(function (){var _STAR_cljs_warnings_STAR__orig_val__37103 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__37104 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),false);\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__37104);\n\ntry{return (cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__37103);\n}})():(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(texpr))){\nreturn texpr;\n} else {\nreturn null;\n}\n})():null)\n);\nvar vexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,val__$1) : cljs.analyzer.analyze.call(null,enve,val__$1));\nif(cljs.core.seq_QMARK_(target__$1)){\nvar sym_38833 \x3d (function (){var G__37106 \x3d target__$1;\nif((G__37106 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.second(G__37106);\n}\n})();\nvar meta_38834 \x3d cljs.core.meta(sym_38833);\nvar temp__5825__auto___38835 \x3d (function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(vexpr));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(meta_38834);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___38835)){\nvar info_38836 \x3d temp__5825__auto___38835;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym_38833,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(info_38836,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null)),cljs.core.select_keys(cljs.core.first(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(vexpr)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0))], 0));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(texpr)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22set! target must be a field or a symbol naming a var\x22);\n}\n\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env))) \x26\x26 ((!(((function (){var fexpr__37110 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null),\x22null\x22], null), null);\nreturn (fexpr__37110.cljs$core$IFn$_invoke$arity$1 ? fexpr__37110.cljs$core$IFn$_invoke$arity$1(target__$1) : fexpr__37110.call(null,target__$1));\n})() \x3d\x3d null)))))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22no-op\x22,\x22no-op\x22,-93046065)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set!\x22,\x22set!\x22,-1389817006),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),texpr,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),vexpr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612)], null)], null);\n\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__37088);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37081);\n}}));\ncljs.analyzer.foreign_dep_QMARK_ \x3d (function cljs$analyzer$foreign_dep_QMARK_(dep){\nvar js_index \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\nvar temp__5827__auto__ \x3d cljs.core.find(js_index,cljs.core.name(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep))));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar vec__37121 \x3d temp__5827__auto__;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(0),null);\nvar map__37124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(1),null);\nvar map__37124__$1 \x3d cljs.core.__destructure_map(map__37124);\nvar foreign \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37124__$1,new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149));\nreturn foreign;\n}\n});\n/**\n * Given a lib, a namespace, deps, its dependencies, env, an analysis environment\n * and opts, compiler options - analyze all of the dependencies. Required to\n * correctly analyze usage of other namespaces.\n */\ncljs.analyzer.analyze_deps \x3d (function cljs$analyzer$analyze_deps(var_args){\nvar G__37143 \x3d arguments.length;\nswitch (G__37143) {\ncase 3:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3 \x3d (function (lib,deps,env){\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(lib,deps,env,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4 \x3d (function (lib,deps,env,opts){\nvar compiler \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar _STAR_cljs_dep_set_STAR__orig_val__37156 \x3d cljs.analyzer._STAR_cljs_dep_set_STAR_;\nvar _STAR_cljs_dep_set_STAR__temp_val__37157 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_cljs_dep_set_STAR_,lib),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558)], null),cljs.core.conj,lib);\n(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__temp_val__37157);\n\ntry{if(cljs.core.every_QMARK_((function (p1__37130_SHARP_){\nreturn (!(cljs.core.contains_QMARK_(cljs.analyzer._STAR_cljs_dep_set_STAR_,p1__37130_SHARP_)));\n}),deps)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Circular dependency detected, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 -\x3e \x22,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some(cljs.analyzer._STAR_cljs_dep_set_STAR_,deps)))))].join(\x27\x27),\x22\\n\x22,\x22(every? (fn* [p1__37130#] (not (contains? *cljs-dep-set* p1__37130#))) deps)\x22].join(\x27\x27)));\n}\n\nvar seq__37168 \x3d cljs.core.seq(deps);\nvar chunk__37169 \x3d null;\nvar count__37170 \x3d (0);\nvar i__37171 \x3d (0);\nwhile(true){\nif((i__37171 \x3c count__37170)){\nvar dep \x3d chunk__37169.cljs$core$IIndexed$_nth$arity$2(null,i__37171);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38842 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38843__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38842,cljs.core.name(dep_38843__$1))){\nvar dep_name_38844 \x3d cljs.core.name(dep_38843__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38844,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38843__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38843__$1)], null)));\n}\n}\n\n\nvar G__38850 \x3d seq__37168;\nvar G__38851 \x3d chunk__37169;\nvar G__38852 \x3d count__37170;\nvar G__38853 \x3d (i__37171 + (1));\nseq__37168 \x3d G__38850;\nchunk__37169 \x3d G__38851;\ncount__37170 \x3d G__38852;\ni__37171 \x3d G__38853;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37168);\nif(temp__5825__auto__){\nvar seq__37168__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37168__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37168__$1);\nvar G__38854 \x3d cljs.core.chunk_rest(seq__37168__$1);\nvar G__38855 \x3d c__5548__auto__;\nvar G__38856 \x3d cljs.core.count(c__5548__auto__);\nvar G__38857 \x3d (0);\nseq__37168 \x3d G__38854;\nchunk__37169 \x3d G__38855;\ncount__37170 \x3d G__38856;\ni__37171 \x3d G__38857;\ncontinue;\n} else {\nvar dep \x3d cljs.core.first(seq__37168__$1);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38858 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38859__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38858,cljs.core.name(dep_38859__$1))){\nvar dep_name_38860 \x3d cljs.core.name(dep_38859__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38860,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38859__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38859__$1)], null)));\n}\n}\n\n\nvar G__38861 \x3d cljs.core.next(seq__37168__$1);\nvar G__38862 \x3d null;\nvar G__38863 \x3d (0);\nvar G__38864 \x3d (0);\nseq__37168 \x3d G__38861;\nchunk__37169 \x3d G__38862;\ncount__37170 \x3d G__38863;\ni__37171 \x3d G__38864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}finally {(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__orig_val__37156);\n}}));\n\n(cljs.analyzer.analyze_deps.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.missing_use_QMARK_ \x3d (function cljs$analyzer$missing_use_QMARK_(lib,sym,cenv){\nvar js_lib \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cenv,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.name(lib)], null));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),lib,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150))) \x26\x26 ((((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22group\x22,\x22group\x22,582596132)),new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452))))) \x26\x26 (((cljs.core.not(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22closure-lib\x22,\x22closure-lib\x22,2105917916)))) \x26\x26 ((((!(cljs.analyzer.node_module_dep_QMARK_(lib)))) \x26\x26 ((!(cljs.analyzer.dep_has_global_exports_QMARK_(lib)))))))))));\n});\ncljs.analyzer.missing_rename_QMARK_ \x3d (function cljs$analyzer$missing_rename_QMARK_(sym,cenv){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym__$1,cenv);\n});\ncljs.analyzer.missing_use_macro_QMARK_ \x3d (function cljs$analyzer$missing_use_macro_QMARK_(lib,sym){\nif((lib instanceof cljs.core.Symbol)){\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym) \x3d\x3d null)));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.missing_rename_macro_QMARK_ \x3d (function cljs$analyzer$missing_rename_macro_QMARK_(sym){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym__$1) \x3d\x3d null)));\n});\ncljs.analyzer.missing_uses \x3d (function cljs$analyzer$missing_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37220){\nvar vec__37221 \x3d p__37220;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(1),null);\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym,cenv);\n}),uses));\n});\ncljs.analyzer.missing_renames \x3d (function cljs$analyzer$missing_renames(renames,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37231){\nvar vec__37232 \x3d p__37231;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(1),null);\nreturn cljs.analyzer.missing_rename_QMARK_(qualified_sym,cenv);\n}),renames));\n});\ncljs.analyzer.missing_use_macros \x3d (function cljs$analyzer$missing_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37239){\nvar vec__37240 \x3d p__37239;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(1),null);\nreturn cljs.analyzer.missing_use_macro_QMARK_(lib,sym);\n}),use_macros));\n});\ncljs.analyzer.inferred_use_macros \x3d (function cljs$analyzer$inferred_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37246){\nvar vec__37248 \x3d p__37246;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(1),null);\nreturn cljs.core.not(cljs.analyzer.missing_use_macro_QMARK_(lib,sym));\n}),use_macros));\n});\ncljs.analyzer.inferred_rename_macros \x3d (function cljs$analyzer$inferred_rename_macros(rename_macros,env){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37260){\nvar vec__37261 \x3d p__37260;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(1),null);\nreturn (!(cljs.analyzer.missing_rename_macro_QMARK_(qualified_sym)));\n}),rename_macros));\n});\ncljs.analyzer.check_uses \x3d (function cljs$analyzer$check_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37268 \x3d cljs.core.seq(uses);\nvar chunk__37270 \x3d null;\nvar count__37271 \x3d (0);\nvar i__37272 \x3d (0);\nwhile(true){\nif((i__37272 \x3c count__37271)){\nvar vec__37312 \x3d chunk__37270.cljs$core$IIndexed$_nth$arity$2(null,i__37272);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38869 \x3d seq__37268;\nvar G__38870 \x3d chunk__37270;\nvar G__38871 \x3d count__37271;\nvar G__38872 \x3d (i__37272 + (1));\nseq__37268 \x3d G__38869;\nchunk__37270 \x3d G__38870;\ncount__37271 \x3d G__38871;\ni__37272 \x3d G__38872;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37268);\nif(temp__5825__auto__){\nvar seq__37268__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37268__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37268__$1);\nvar G__38873 \x3d cljs.core.chunk_rest(seq__37268__$1);\nvar G__38874 \x3d c__5548__auto__;\nvar G__38875 \x3d cljs.core.count(c__5548__auto__);\nvar G__38876 \x3d (0);\nseq__37268 \x3d G__38873;\nchunk__37270 \x3d G__38874;\ncount__37271 \x3d G__38875;\ni__37272 \x3d G__38876;\ncontinue;\n} else {\nvar vec__37333 \x3d cljs.core.first(seq__37268__$1);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38877 \x3d cljs.core.next(seq__37268__$1);\nvar G__38878 \x3d null;\nvar G__38879 \x3d (0);\nvar G__38880 \x3d (0);\nseq__37268 \x3d G__38877;\nchunk__37270 \x3d G__38878;\ncount__37271 \x3d G__38879;\ni__37272 \x3d G__38880;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.check_use_macros \x3d (function cljs$analyzer$check_use_macros(var_args){\nvar G__37366 \x3d arguments.length;\nswitch (G__37366) {\ncase 2:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (use_macros,env){\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,null,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3 \x3d (function (use_macros,missing_uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37390_38882 \x3d cljs.core.seq(use_macros);\nvar chunk__37392_38883 \x3d null;\nvar count__37393_38884 \x3d (0);\nvar i__37394_38885 \x3d (0);\nwhile(true){\nif((i__37394_38885 \x3c count__37393_38884)){\nvar vec__37477_38886 \x3d chunk__37392_38883.cljs$core$IIndexed$_nth$arity$2(null,i__37394_38885);\nvar sym_38887 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(0),null);\nvar lib_38888 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38888,sym_38887))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38888,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38887], null)));\n} else {\n}\n\n\nvar G__38891 \x3d seq__37390_38882;\nvar G__38892 \x3d chunk__37392_38883;\nvar G__38893 \x3d count__37393_38884;\nvar G__38894 \x3d (i__37394_38885 + (1));\nseq__37390_38882 \x3d G__38891;\nchunk__37392_38883 \x3d G__38892;\ncount__37393_38884 \x3d G__38893;\ni__37394_38885 \x3d G__38894;\ncontinue;\n} else {\nvar temp__5825__auto___38895 \x3d cljs.core.seq(seq__37390_38882);\nif(temp__5825__auto___38895){\nvar seq__37390_38896__$1 \x3d temp__5825__auto___38895;\nif(cljs.core.chunked_seq_QMARK_(seq__37390_38896__$1)){\nvar c__5548__auto___38897 \x3d cljs.core.chunk_first(seq__37390_38896__$1);\nvar G__38898 \x3d cljs.core.chunk_rest(seq__37390_38896__$1);\nvar G__38899 \x3d c__5548__auto___38897;\nvar G__38900 \x3d cljs.core.count(c__5548__auto___38897);\nvar G__38901 \x3d (0);\nseq__37390_38882 \x3d G__38898;\nchunk__37392_38883 \x3d G__38899;\ncount__37393_38884 \x3d G__38900;\ni__37394_38885 \x3d G__38901;\ncontinue;\n} else {\nvar vec__37514_38902 \x3d cljs.core.first(seq__37390_38896__$1);\nvar sym_38903 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(0),null);\nvar lib_38904 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38904,sym_38903))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38904,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38903], null)));\n} else {\n}\n\n\nvar G__38905 \x3d cljs.core.next(seq__37390_38896__$1);\nvar G__38906 \x3d null;\nvar G__38907 \x3d (0);\nvar G__38908 \x3d (0);\nseq__37390_38882 \x3d G__38905;\nchunk__37392_38883 \x3d G__38906;\ncount__37393_38884 \x3d G__38907;\ni__37394_38885 \x3d G__38908;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.analyzer.check_uses(cljs.analyzer.missing_use_macros(missing_uses,env),env);\n\nreturn cljs.analyzer.inferred_use_macros(missing_uses,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.check_use_macros_inferring_missing \x3d (function cljs$analyzer$check_use_macros_inferring_missing(p__37523,env){\nvar map__37525 \x3d p__37523;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar ast \x3d map__37525__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar missing_uses \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(uses);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_uses(uses,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,uses,cljs.core.keys(missing_uses));\nvar remove_missing_uses \x3d (function (p1__37518_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37518_SHARP_,cljs.core.keys(missing_uses));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),(function (p1__37519_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37519_SHARP_,cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,missing_uses,env)], 0)),cljs.analyzer.inferred_use_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37520_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37520_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.check_rename_macros_inferring_missing \x3d (function cljs$analyzer$check_rename_macros_inferring_missing(p__37562,env){\nvar map__37570 \x3d p__37562;\nvar map__37570__$1 \x3d cljs.core.__destructure_map(map__37570);\nvar ast \x3d map__37570__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar missing_renames \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(renames);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_renames(renames,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,renames,cljs.core.keys(missing_renames));\nvar missing_rename_macros \x3d cljs.analyzer.inferred_rename_macros(missing_renames,env);\nvar remove_missing_renames \x3d (function (p1__37550_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37550_SHARP_,cljs.core.keys(missing_renames));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),(function (p1__37552_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37552_SHARP_,missing_rename_macros], 0)),cljs.analyzer.inferred_rename_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37554_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37554_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.parse_ns_error_msg \x3d (function cljs$analyzer$parse_ns_error_msg(spec,msg){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22; offending spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0))].join(\x27\x27);\n});\ncljs.analyzer.basic_validate_ns_spec \x3d (function cljs$analyzer$basic_validate_ns_spec(env,macros_QMARK_,spec){\nif((((spec instanceof cljs.core.Symbol)) || (((typeof spec \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(spec)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns \x26 options] and lib.ns specs supported in :require / :require-macros\x22));\n}\n\nif(cljs.core.sequential_QMARK_(spec)){\nif((((cljs.core.first(spec) instanceof cljs.core.Symbol)) || (typeof cljs.core.first(spec) \x3d\x3d\x3d \x27string\x27))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Library name must be specified as a symbol in :require / :require-macros\x22));\n}\n\nif(cljs.core.odd_QMARK_(cljs.core.count(spec))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as alias, :refer (names) and :rename {from to} options supported in :require\x22));\n}\n\nif(cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as, :refer and :rename options supported in :require / :require-macros\x22));\n}\n\nif((function (){var fs \x3d cljs.core.frequencies(cljs.core.next(spec));\nreturn ((((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0))) \x3c\x3d (1))) \x26\x26 (((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0))) \x3c\x3d (1))));\n})()){\nreturn null;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :as and :refer options may only be specified once in :require / :require-macros\x22));\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.parse_ns_excludes_impl \x3d (function cljs$analyzer$parse_ns_excludes_impl(env,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__37694){\nvar vec__37695 \x3d p__37694;\nvar seq__37696 \x3d cljs.core.seq(vec__37695);\nvar first__37697 \x3d cljs.core.first(seq__37696);\nvar seq__37696__$1 \x3d cljs.core.next(seq__37696);\nvar k \x3d first__37697;\nvar filters \x3d seq__37696__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440))){\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(s))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only one :refer-clojure form is allowed per namespace definition\x22);\n} else {\n}\n\nvar valid_kws \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null);\nvar xs \x3d (function (){var fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null);\nvar err \x3d (!(cljs.core.even_QMARK_(cljs.core.count(filters))));\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported\x22);\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nif(cljs.core.truth_((valid_kws.cljs$core$IFn$_invoke$arity$1 ? valid_kws.cljs$core$IFn$_invoke$arity$1(kw) : valid_kws.call(null,kw)))){\nvar refs \x3d cljs.core.second(fs);\nif((!(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters){\nreturn (function (p1__37682_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37682_SHARP_);\n});})(fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters))\n,refs)))))))))){\nvar G__38911 \x3d fs;\nvar G__38912 \x3d ret;\nvar G__38913 \x3d true;\nfs \x3d G__38911;\nret \x3d G__38912;\nerr \x3d G__38913;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))){\nvar G__38914 \x3d cljs.core.nnext(fs);\nvar G__38915 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),cljs.core.into,refs);\nvar G__38916 \x3d false;\nfs \x3d G__38914;\nret \x3d G__38915;\nerr \x3d G__38916;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))){\nvar G__38917 \x3d cljs.core.nnext(fs);\nvar G__38918 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),cljs.core.merge,refs);\nvar G__38919 \x3d false;\nfs \x3d G__38917;\nret \x3d G__38918;\nerr \x3d G__38919;\ncontinue;\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38920 \x3d fs;\nvar G__38921 \x3d ret;\nvar G__38922 \x3d true;\nfs \x3d G__38920;\nret \x3d G__38921;\nerr \x3d G__38922;\ncontinue;\n}\n} else {\nreturn ret;\n\n}\n}\nbreak;\n}\n})();\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.into,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s,xs], 0));\n} else {\nreturn s;\n}\n}),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null),args);\n});\ncljs.analyzer.parse_ns_excludes \x3d (function cljs$analyzer$parse_ns_excludes(env,args){\nvar s \x3d cljs.analyzer.parse_ns_excludes_impl(env,args);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.into,cljs.core.keys(new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368).cljs$core$IFn$_invoke$arity$1(s)));\n});\ncljs.analyzer.use__GT_require \x3d (function cljs$analyzer$use__GT_require(env,p__37970){\nvar vec__37974 \x3d p__37970;\nvar seq__37975 \x3d cljs.core.seq(vec__37974);\nvar first__37976 \x3d cljs.core.first(seq__37975);\nvar seq__37975__$1 \x3d cljs.core.next(seq__37975);\nvar lib \x3d first__37976;\nvar filters \x3d seq__37975__$1;\nvar spec \x3d vec__37974;\nif((((lib instanceof cljs.core.Symbol)) \x26\x26 (cljs.core.odd_QMARK_(cljs.core.count(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n}\n\nvar fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null);\nvar err \x3d false;\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nvar only_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22only\x22,\x22only\x22,1907811652));\nif(((only_QMARK_) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))))){\nif((!((cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw)]),ret) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :only and :rename options may only be specified once in :use / :use-macros\x22));\n} else {\nvar refs \x3d cljs.core.second(fs);\nif((!(((((only_QMARK_) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec){\nreturn (function (p1__37952_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37952_SHARP_);\n});})(fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec))\n,refs)))))))))){\nvar G__38925 \x3d fs;\nvar G__38926 \x3d ret;\nvar G__38927 \x3d true;\nfs \x3d G__38925;\nret \x3d G__38926;\nerr \x3d G__38927;\ncontinue;\n} else {\nvar G__38928 \x3d cljs.core.nnext(fs);\nvar G__38929 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw),refs], null));\nvar G__38930 \x3d false;\nfs \x3d G__38928;\nret \x3d G__38929;\nerr \x3d G__38930;\ncontinue;\n}\n}\n} else {\nvar G__38931 \x3d fs;\nvar G__38932 \x3d ret;\nvar G__38933 \x3d true;\nfs \x3d G__38931;\nret \x3d G__38932;\nerr \x3d G__38933;\ncontinue;\n}\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),ret) \x3d\x3d null)))){\nreturn ret;\n} else {\nvar G__38934 \x3d fs;\nvar G__38935 \x3d ret;\nvar G__38936 \x3d true;\nfs \x3d G__38934;\nret \x3d G__38935;\nerr \x3d G__38936;\ncontinue;\n}\n\n}\n}\nbreak;\n}\n});\ncljs.analyzer.parse_require_spec \x3d (function cljs$analyzer$parse_require_spec(env,macros_QMARK_,deps,aliases,spec){\nwhile(true){\nif((((spec instanceof cljs.core.Symbol)) || (typeof spec \x3d\x3d\x3d \x27string\x27))){\nvar G__38937 \x3d env;\nvar G__38938 \x3d macros_QMARK_;\nvar G__38939 \x3d deps;\nvar G__38940 \x3d aliases;\nvar G__38941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\nenv \x3d G__38937;\nmacros_QMARK_ \x3d G__38938;\ndeps \x3d G__38939;\naliases \x3d G__38940;\nspec \x3d G__38941;\ncontinue;\n} else {\ncljs.analyzer.basic_validate_ns_spec(env,macros_QMARK_,spec);\n\nvar vec__38066 \x3d spec;\nvar seq__38067 \x3d cljs.core.seq(vec__38066);\nvar first__38068 \x3d cljs.core.first(seq__38067);\nvar seq__38067__$1 \x3d cljs.core.next(seq__38067);\nvar lib \x3d first__38068;\nvar opts \x3d seq__38067__$1;\nvar vec__38069 \x3d (function (){var temp__5827__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n} else {\nvar js_module_name \x3d temp__5827__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(js_module_name),lib], null);\n}\n})();\nvar lib__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(0),null);\nvar js_module_provides \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(1),null);\nvar map__38072 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,opts);\nvar map__38072__$1 \x3d cljs.core.__destructure_map(map__38072);\nvar alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38072__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),((typeof lib__$1 \x3d\x3d\x3d \x27string\x27)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(lib__$1)):lib__$1));\nvar referred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553));\nvar renamed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar referred_without_renamed \x3d cljs.core.seq(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(renamed)),referred));\nvar vec__38073 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613)], null));\nvar rk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(0),null);\nvar uk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(1),null);\nvar renk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(2),null);\nif((((alias instanceof cljs.core.Symbol)) || ((alias \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as must be followed by a symbol in :require / :require-macros\x22));\n}\n\nif((!((alias \x3d\x3d null)))){\nvar alias_type_38942 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431):new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786));\nvar lib_SINGLEQUOTE__38943 \x3d (function (){var fexpr__38085 \x3d alias_type_38942.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(aliases));\nreturn (fexpr__38085.cljs$core$IFn$_invoke$arity$1 ? fexpr__38085.cljs$core$IFn$_invoke$arity$1(alias) : fexpr__38085.call(null,alias));\n})();\nif((((!((lib_SINGLEQUOTE__38943 \x3d\x3d null)))) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,lib_SINGLEQUOTE__38943)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as alias must be unique\x22));\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(alias,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(aliases),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786):new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)))){\n} else {\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n}\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(aliases,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias_type_38942], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias,lib__$1], null),(cljs.core.truth_(js_module_provides)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_module_provides,lib__$1], null):null)], 0));\n} else {\n}\n\nif(((((cljs.core.sequential_QMARK_(referred)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,referred)))) || ((referred \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:refer must be followed by a sequence of symbols in :require / :require-macros\x22));\n}\n\nif(cljs.core.truth_(macros_QMARK_)){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,lib__$1);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((!((alias \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([rk,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib__$1]),cljs.core.PersistentArrayMap.createAsIfByAssoc([lib__$1,lib__$1]),(cljs.core.truth_(js_module_provides)?cljs.core.PersistentArrayMap.createAsIfByAssoc([js_module_provides,lib__$1]):null)], 0))]):null),(((!((referred_without_renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([uk,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(referred_without_renamed,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(lib__$1)))]):null),(((!((renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([renk,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk){\nreturn (function (m,p__38101){\nvar vec__38102 \x3d p__38101;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(0),null);\nvar renamed__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(1),null);\nif(cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([original]),referred))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Renamed symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original),\x22 not referred\x22].join(\x27\x27));\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed__$1,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n});})(env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk))\n,cljs.core.PersistentArrayMap.EMPTY,renamed)]):null)], 0));\n}\nbreak;\n}\n});\ncljs.analyzer.parse_import_spec \x3d (function cljs$analyzer$parse_import_spec(env,deps,spec){\nif(((((cljs.core.sequential_QMARK_(spec)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,spec)))) || ((((spec instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(spec) \x3d\x3d null)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import\x22));\n}\n\nvar import_map \x3d ((cljs.core.sequential_QMARK_(spec))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38105_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__38105_SHARP_,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(spec)),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__38105_SHARP_)].join(\x27\x27))],null));\n}),cljs.core.rest(spec))):(((!(((-1) \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec).indexOf(\x22.\x22)))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),/\\./))),spec]):cljs.core.PersistentArrayMap.EMPTY\n));\nvar seq__38110_38947 \x3d cljs.core.seq(import_map);\nvar chunk__38111_38948 \x3d null;\nvar count__38112_38949 \x3d (0);\nvar i__38113_38950 \x3d (0);\nwhile(true){\nif((i__38113_38950 \x3c count__38112_38949)){\nvar vec__38124_38952 \x3d chunk__38111_38948.cljs$core$IIndexed$_nth$arity$2(null,i__38113_38950);\nvar __38953 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(0),null);\nvar spec_38954__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38954__$1);\n\n\nvar G__38955 \x3d seq__38110_38947;\nvar G__38956 \x3d chunk__38111_38948;\nvar G__38957 \x3d count__38112_38949;\nvar G__38958 \x3d (i__38113_38950 + (1));\nseq__38110_38947 \x3d G__38955;\nchunk__38111_38948 \x3d G__38956;\ncount__38112_38949 \x3d G__38957;\ni__38113_38950 \x3d G__38958;\ncontinue;\n} else {\nvar temp__5825__auto___38959 \x3d cljs.core.seq(seq__38110_38947);\nif(temp__5825__auto___38959){\nvar seq__38110_38960__$1 \x3d temp__5825__auto___38959;\nif(cljs.core.chunked_seq_QMARK_(seq__38110_38960__$1)){\nvar c__5548__auto___38961 \x3d cljs.core.chunk_first(seq__38110_38960__$1);\nvar G__38962 \x3d cljs.core.chunk_rest(seq__38110_38960__$1);\nvar G__38963 \x3d c__5548__auto___38961;\nvar G__38964 \x3d cljs.core.count(c__5548__auto___38961);\nvar G__38965 \x3d (0);\nseq__38110_38947 \x3d G__38962;\nchunk__38111_38948 \x3d G__38963;\ncount__38112_38949 \x3d G__38964;\ni__38113_38950 \x3d G__38965;\ncontinue;\n} else {\nvar vec__38131_38966 \x3d cljs.core.first(seq__38110_38960__$1);\nvar __38967 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(0),null);\nvar spec_38968__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38968__$1);\n\n\nvar G__38970 \x3d cljs.core.next(seq__38110_38960__$1);\nvar G__38971 \x3d null;\nvar G__38972 \x3d (0);\nvar G__38973 \x3d (0);\nseq__38110_38947 \x3d G__38970;\nchunk__38111_38948 \x3d G__38971;\ncount__38112_38949 \x3d G__38972;\ni__38113_38950 \x3d G__38973;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),import_map,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),import_map], null);\n});\n/**\n * Given a spec form check whether the spec namespace requires a macro file\n * of the same name. If so return true.\n */\ncljs.analyzer.macro_autoload_ns_QMARK_ \x3d (function cljs$analyzer$macro_autoload_ns_QMARK_(form){\nif(cljs.core.truth_(cljs.analyzer._STAR_macro_infer_STAR_)){\nvar ns \x3d ((cljs.core.sequential_QMARK_(form))?cljs.core.first(form):form);\nvar map__38136 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null));\nvar map__38136__$1 \x3d cljs.core.__destructure_map(map__38136);\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar or__5025__auto__ \x3d cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(use_macros));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(require_macros));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a symbol that starts with clojure as the first segment return the\n * same symbol with the first segment replaced with cljs\n */\ncljs.analyzer.clj_ns__GT_cljs_ns \x3d (function cljs$analyzer$clj_ns__GT_cljs_ns(sym){\nvar segs \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure\x22,cljs.core.first(segs))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.cons(\x22cljs\x22,cljs.core.next(segs))));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.canonicalize_specs \x3d (function cljs$analyzer$canonicalize_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nvar spec \x3d cljs.core.second(quoted_spec_or_kw);\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.map_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\ncljs.analyzer.canonicalize_import_specs \x3d (function cljs$analyzer$canonicalize_import_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_import_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nreturn cljs.core.second(quoted_spec_or_kw);\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\n/**\n * Given an original set of ns specs desugar :include-macros and :refer-macros\n * usage into only primitive spec forms - :use, :require, :use-macros,\n * :require-macros. If a library includes a macro file of with the same name\n * as the namespace will also be desugared.\n */\ncljs.analyzer.desugar_ns_specs \x3d (function cljs$analyzer$desugar_ns_specs(args){\nvar map__38157 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__38158){\nvar vec__38159 \x3d p__38158;\nvar seq__38160 \x3d cljs.core.seq(vec__38159);\nvar first__38161 \x3d cljs.core.first(seq__38160);\nvar seq__38160__$1 \x3d cljs.core.next(seq__38160);\nvar k \x3d first__38161;\nvar specs \x3d seq__38160__$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,specs)], null);\n}),args));\nvar map__38157__$1 \x3d cljs.core.__destructure_map(map__38157);\nvar indexed \x3d map__38157__$1;\nvar require__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38157__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar sugar_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953),null], null), null);\nvar remove_from_spec \x3d (function (pred,spec){\nwhile(true){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(spec);\nif(and__5023__auto__){\nreturn cljs.core.some(pred,spec);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn spec;\n} else {\nvar vec__38164 \x3d cljs.core.split_with(cljs.core.complement(pred),spec);\nvar l \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(1),null);\nvar G__38975 \x3d pred;\nvar G__38976 \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),r));\npred \x3d G__38975;\nspec \x3d G__38976;\ncontinue;\n}\nbreak;\n}\n});\nvar replace_refer_macros \x3d (function (spec){\nif((!(cljs.core.sequential_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953))){\nreturn new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553);\n} else {\nreturn x;\n}\n}),spec);\n}\n});\nvar reload_spec_QMARK_ \x3d (function (p1__38155_SHARP_){\nvar fexpr__38168 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null);\nreturn (fexpr__38168.cljs$core$IFn$_invoke$arity$1 ? fexpr__38168.cljs$core$IFn$_invoke$arity$1(p1__38155_SHARP_) : fexpr__38168.call(null,p1__38155_SHARP_));\n});\nvar to_macro_specs \x3d (function (specs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nreturn replace_refer_macros(remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null], null), null),x))));\n} else {\nreturn x;\n}\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (x){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(x);\nif(and__5023__auto__){\nreturn cljs.core.some(sugar_keys,x);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d reload_spec_QMARK_(x);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.macro_autoload_ns_QMARK_(x);\n}\n}\n}),specs));\n});\nvar remove_sugar \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(remove_from_spec,sugar_keys);\nvar temp__5827__auto__ \x3d cljs.core.seq(to_macro_specs(require__$1));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn args;\n} else {\nvar require_specs \x3d temp__5827__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nvar vec__38174 \x3d x;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(1),null);\nreturn cljs.core.cons(k,cljs.core.map.cljs$core$IFn$_invoke$arity$2(remove_sugar,v));\n} else {\nreturn x;\n}\n}),cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(indexed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),require_specs));\n}\n});\ncljs.analyzer.find_def_clash \x3d (function cljs$analyzer$find_def_clash(env,ns,segments){\nvar to_check \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (xs){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.butlast(xs))),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(xs))], null);\n}),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.PersistentVector.EMPTY,segments)));\nvar seq__38181 \x3d cljs.core.seq(to_check);\nvar chunk__38182 \x3d null;\nvar count__38183 \x3d (0);\nvar i__38184 \x3d (0);\nwhile(true){\nif((i__38184 \x3c count__38183)){\nvar vec__38198 \x3d chunk__38182.cljs$core$IIndexed$_nth$arity$2(null,i__38184);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38981 \x3d seq__38181;\nvar G__38982 \x3d chunk__38182;\nvar G__38983 \x3d count__38183;\nvar G__38984 \x3d (i__38184 + (1));\nseq__38181 \x3d G__38981;\nchunk__38182 \x3d G__38982;\ncount__38183 \x3d G__38983;\ni__38184 \x3d G__38984;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38181);\nif(temp__5825__auto__){\nvar seq__38181__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38181__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38181__$1);\nvar G__38985 \x3d cljs.core.chunk_rest(seq__38181__$1);\nvar G__38986 \x3d c__5548__auto__;\nvar G__38987 \x3d cljs.core.count(c__5548__auto__);\nvar G__38988 \x3d (0);\nseq__38181 \x3d G__38985;\nchunk__38182 \x3d G__38986;\ncount__38183 \x3d G__38987;\ni__38184 \x3d G__38988;\ncontinue;\n} else {\nvar vec__38204 \x3d cljs.core.first(seq__38181__$1);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38989 \x3d cljs.core.next(seq__38181__$1);\nvar G__38990 \x3d null;\nvar G__38991 \x3d (0);\nvar G__38992 \x3d (0);\nseq__38181 \x3d G__38989;\nchunk__38182 \x3d G__38990;\ncount__38183 \x3d G__38991;\ni__38184 \x3d G__38992;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.macro_ns_name \x3d (function cljs$analyzer$macro_ns_name(name){\nvar name_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif(cljs.core.not(goog.string.endsWith(name_str,\x22$macros\x22))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([name_str,\x22$macros\x22].join(\x27\x27));\n} else {\nreturn name;\n}\n});\ncljs.analyzer.check_duplicate_aliases \x3d (function cljs$analyzer$check_duplicate_aliases(env,old,new$){\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(old);\nvar seq__38210 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null));\nvar chunk__38211 \x3d null;\nvar count__38212 \x3d (0);\nvar i__38213 \x3d (0);\nwhile(true){\nif((i__38213 \x3c count__38212)){\nvar k \x3d chunk__38211.cljs$core$IIndexed$_nth$arity$2(null,i__38213);\nvar old_aliases_38993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_38994 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___38995 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_38994)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name){\nreturn (function (p__38223){\nvar vec__38224 \x3d p__38223;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(1),null);\nvar entry \x3d vec__38224;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_38994,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name))\n,old_aliases_38993)));\nif((temp__5829__auto___38995 \x3d\x3d null)){\n} else {\nvar alias_38996 \x3d temp__5829__auto___38995;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_38996),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_38993,alias_38996))].join(\x27\x27));\n}\n\n\nvar G__38997 \x3d seq__38210;\nvar G__38998 \x3d chunk__38211;\nvar G__38999 \x3d count__38212;\nvar G__39000 \x3d (i__38213 + (1));\nseq__38210 \x3d G__38997;\nchunk__38211 \x3d G__38998;\ncount__38212 \x3d G__38999;\ni__38213 \x3d G__39000;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38210);\nif(temp__5825__auto__){\nvar seq__38210__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38210__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38210__$1);\nvar G__39001 \x3d cljs.core.chunk_rest(seq__38210__$1);\nvar G__39002 \x3d c__5548__auto__;\nvar G__39003 \x3d cljs.core.count(c__5548__auto__);\nvar G__39004 \x3d (0);\nseq__38210 \x3d G__39001;\nchunk__38211 \x3d G__39002;\ncount__38212 \x3d G__39003;\ni__38213 \x3d G__39004;\ncontinue;\n} else {\nvar k \x3d cljs.core.first(seq__38210__$1);\nvar old_aliases_39005 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_39006 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___39007 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_39006)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name){\nreturn (function (p__38227){\nvar vec__38228 \x3d p__38227;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(1),null);\nvar entry \x3d vec__38228;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_39006,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name))\n,old_aliases_39005)));\nif((temp__5829__auto___39007 \x3d\x3d null)){\n} else {\nvar alias_39010 \x3d temp__5829__auto___39007;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_39010),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_39005,alias_39010))].join(\x27\x27));\n}\n\n\nvar G__39011 \x3d cljs.core.next(seq__38210__$1);\nvar G__39012 \x3d null;\nvar G__39013 \x3d (0);\nvar G__39014 \x3d (0);\nseq__38210 \x3d G__39011;\nchunk__38211 \x3d G__39012;\ncount__38212 \x3d G__39013;\ni__38213 \x3d G__39014;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.merge_ns_info \x3d (function cljs$analyzer$merge_ns_info(old,new$,env){\nif((cljs.core.count(old) \x3e (0))){\nvar deep_merge_keys \x3d new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old,cljs.core.select_keys(new$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null)),cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(old,deep_merge_keys),cljs.core.select_keys(new$,deep_merge_keys)], 0))], 0));\n} else {\nreturn new$;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),(function (_,env,p__38243,___$1,opts){\nvar vec__38244 \x3d p__38243;\nvar seq__38245 \x3d cljs.core.seq(vec__38244);\nvar first__38246 \x3d cljs.core.first(seq__38245);\nvar seq__38245__$1 \x3d cljs.core.next(seq__38245);\nvar ___$2 \x3d first__38246;\nvar first__38246__$1 \x3d cljs.core.first(seq__38245__$1);\nvar seq__38245__$2 \x3d cljs.core.next(seq__38245__$1);\nvar name \x3d first__38246__$1;\nvar args \x3d seq__38245__$2;\nvar form \x3d vec__38244;\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespace declarations must appear at the top-level.\x22);\n}\n\nif((name instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespaces must be named by a symbol.\x22);\n}\n\nvar name__$1 \x3d (function (){var G__38249 \x3d name;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.analyzer.macro_ns_name(G__38249);\n} else {\nreturn G__38249;\n}\n})();\nvar segments_39016 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name__$1),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(segments_39016))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\nvar segment_39017 \x3d cljs.core.some(cljs.analyzer.js_reserved,segments_39016);\nif((!((segment_39017 \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\ncljs.analyzer.find_def_clash(env,name__$1,segments_39016);\n\nvar docstring \x3d ((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27)?cljs.core.first(args):null);\nvar mdocstr \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name__$1));\nvar args__$1 \x3d (((!((docstring \x3d\x3d null))))?cljs.core.next(args):args);\nvar metadata \x3d ((cljs.core.map_QMARK_(cljs.core.first(args__$1)))?cljs.core.first(args__$1):null);\nvar args__$2 \x3d cljs.analyzer.desugar_ns_specs((((!((metadata \x3d\x3d null))))?cljs.core.next(args__$1):args__$1));\nvar map__38253 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args__$2);\nvar map__38253__$1 \x3d cljs.core.__destructure_map(map__38253);\nvar args__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar name__$2 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata);\nvar map__38254 \x3d cljs.analyzer.parse_ns_excludes(env,args__$3);\nvar map__38254__$1 \x3d cljs.core.__destructure_map(map__38254);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38259){\nvar vec__38260 \x3d p__38259;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar valid_forms \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null));\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38255 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38267){\nvar vec__38268 \x3d p__38267;\nvar seq__38269 \x3d cljs.core.seq(vec__38268);\nvar first__38270 \x3d cljs.core.first(seq__38269);\nvar seq__38269__$1 \x3d cljs.core.next(seq__38269);\nvar k \x3d first__38270;\nvar libs \x3d seq__38269__$1;\nvar libspec \x3d vec__38268;\nif(cljs.core.truth_((function (){var fexpr__38272 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null);\nreturn (fexpr__38272.cljs$core$IFn$_invoke$arity$1 ? fexpr__38272.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38272.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only :refer-clojure, :require, :require-macros, :use, :use-macros, and :import libspecs supported. Got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(libspec),\x22 instead.\x22].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var fexpr__38273 \x3d cljs.core.deref(valid_forms);\nreturn (fexpr__38273.cljs$core$IFn$_invoke$arity$1 ? fexpr__38273.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38273.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only one \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 form is allowed per namespace definition\x22].join(\x27\x27));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(valid_forms,cljs.core.disj,k);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5825__auto___39019 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38241_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38241_SHARP_));\n}),libs));\nif(temp__5825__auto___39019){\nvar xs_39020 \x3d temp__5825__auto___39019;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39020),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38242_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38242_SHARP_));\n}),xs_39020)));\n} else {\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38275){\nvar vec__38276 \x3d p__38275;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38276,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$3));\nvar map__38255__$1 \x3d cljs.core.__destructure_map(map__38255);\nvar params \x3d map__38255__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\nvar vec__38256 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec_map){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2),(0),(((cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2)).length) - (7))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38280){\nvar vec__38281 \x3d p__38280;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(1),null);\nvar G__38284 \x3d m;\nif((!(cljs.core.symbol_identical_QMARK_(v,ns)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38284,k,v);\n} else {\nreturn G__38284;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,spec_map);\n} else {\nreturn spec_map;\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [require_macros,use_macros], null));\nvar require_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(0),null);\nvar use_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(1),null);\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name__$2);\n\nvar ns_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros__$1,excludes,name__$2,imports,requires,uses,require_macros__$1,(function (){var or__5025__auto__ \x3d docstring;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn mdocstr;\n}\n})(),as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name__$2], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_info], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38287 \x3d ns_info;\nvar G__38287__$1 \x3d (cljs.core.truth_((function (){var fexpr__38288 \x3d cljs.core.deref(reload);\nreturn (fexpr__38288.cljs$core$IFn$_invoke$arity$1 ? fexpr__38288.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38288.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38289 \x3d cljs.core.deref(reload);\nreturn (fexpr__38289.cljs$core$IFn$_invoke$arity$1 ? fexpr__38289.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38289.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38287);\nif(cljs.core.truth_((function (){var fexpr__38290 \x3d cljs.core.deref(reload);\nreturn (fexpr__38290.cljs$core$IFn$_invoke$arity$1 ? fexpr__38290.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38290.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38291 \x3d cljs.core.deref(reload);\nreturn (fexpr__38291.cljs$core$IFn$_invoke$arity$1 ? fexpr__38291.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38291.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38287__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),(function (_,env,p__38295,___$1,opts){\nvar vec__38296 \x3d p__38295;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(0),null);\nvar quoted_specs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(1),null);\nvar form \x3d vec__38296;\nvar temp__5825__auto___39029 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__38292_SHARP_){\nreturn ((cljs.core.seq_QMARK_(p1__38292_SHARP_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(p1__38292_SHARP_))));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,quoted_specs)));\nif(cljs.core.truth_(temp__5825__auto___39029)){\nvar not_quoted_39030 \x3d temp__5825__auto___39029;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Arguments to \x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22 must be quoted. Offending spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(not_quoted_39030)].join(\x27\x27));\n} else {\n}\n\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Calls to `\x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22` must appear at the top-level.\x22].join(\x27\x27));\n}\n\nvar specs \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.first(quoted_specs)))?cljs.analyzer.canonicalize_import_specs(quoted_specs):cljs.analyzer.canonicalize_specs(quoted_specs));\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar args \x3d cljs.analyzer.desugar_ns_specs((new cljs.core.List(null,specs,null,(1),null)));\nvar map__38300 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args);\nvar map__38300__$1 \x3d cljs.core.__destructure_map(map__38300);\nvar args__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar map__38301 \x3d cljs.analyzer.parse_ns_excludes(env,args__$1);\nvar map__38301__$1 \x3d cljs.core.__destructure_map(map__38301);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38304){\nvar vec__38306 \x3d p__38304;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38302 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38309){\nvar vec__38310 \x3d p__38309;\nvar seq__38311 \x3d cljs.core.seq(vec__38310);\nvar first__38312 \x3d cljs.core.first(seq__38311);\nvar seq__38311__$1 \x3d cljs.core.next(seq__38311);\nvar k \x3d first__38312;\nvar libs \x3d seq__38311__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5829__auto___39036 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38293_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38293_SHARP_));\n}),libs));\nif((temp__5829__auto___39036 \x3d\x3d null)){\n} else {\nvar xs_39038 \x3d temp__5829__auto___39036;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39038),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38294_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38294_SHARP_));\n}),xs_39038)));\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38317){\nvar vec__38318 \x3d p__38317;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38318,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$1));\nvar map__38302__$1 \x3d cljs.core.__destructure_map(map__38302);\nvar params \x3d map__38302__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name);\n\nvar require_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros,excludes,name,imports,requires,uses,require_macros,as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name], null),cljs.analyzer.merge_ns_info,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([require_info,env], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns*\x22,\x22ns*\x22,200417856),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38326 \x3d require_info;\nvar G__38326__$1 \x3d (cljs.core.truth_((function (){var fexpr__38327 \x3d cljs.core.deref(reload);\nreturn (fexpr__38327.cljs$core$IFn$_invoke$arity$1 ? fexpr__38327.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38327.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38328 \x3d cljs.core.deref(reload);\nreturn (fexpr__38328.cljs$core$IFn$_invoke$arity$1 ? fexpr__38328.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38328.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38326);\nif(cljs.core.truth_((function (){var fexpr__38329 \x3d cljs.core.deref(reload);\nreturn (fexpr__38329.cljs$core$IFn$_invoke$arity$1 ? fexpr__38329.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38329.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38330 \x3d cljs.core.deref(reload);\nreturn (fexpr__38330.cljs$core$IFn$_invoke$arity$1 ? fexpr__38330.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38330.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38326__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse_type \x3d (function cljs$analyzer$parse_type(op,env,p__38331){\nvar vec__38332 \x3d p__38331;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(0),null);\nvar tsym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(1),null);\nvar fields \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(2),null);\nvar pmasks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(3),null);\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(4),null);\nvar form \x3d vec__38332;\nvar t \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),tsym));\nvar locals \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,fld){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,fld,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[fld,true,cljs.analyzer.get_col(fld,env),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),cljs.analyzer.get_line(fld,env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),(m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(fld) : m.call(null,fld)),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500)]));\n}),cljs.core.PersistentArrayMap.EMPTY,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fields,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22__meta\x22,\x22__meta\x22,-946752628,null),new cljs.core.Symbol(null,\x22__extmap\x22,\x22__extmap\x22,-1435580931,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null)):fields));\nvar protocols \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tsym));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),tsym], null),(function (m){\nvar m__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),t,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),true,new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024),cljs.core.count(fields),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op)], 0));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m__$1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(tsym),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols], null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(tsym,env)], 0));\n}));\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22pmasks\x22,\x22pmasks\x22,-871416698),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22fields\x22,\x22fields\x22,-1932066230),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22t\x22,\x22t\x22,-1397832519),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),pmasks,cljs.core.disj.cljs$core$IFn$_invoke$arity$2(protocols,new cljs.core.Symbol(\x22cljs.core\x22,\x22Object\x22,\x22cljs.core/Object\x22,-345545431,null)),fields,op,env,t,form,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),(function (){var G__38338 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals);\nvar G__38339 \x3d body;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38338,G__38339) : cljs.analyzer.analyze.call(null,G__38338,G__38339));\n})()]);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22deftype\x22,\x22deftype\x22,340294561),env,form);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),env,form);\n}));\ncljs.analyzer.property_symbol_QMARK_ \x3d (function cljs$analyzer$property_symbol_QMARK_(p1__38340_SHARP_){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (p1__38340_SHARP_ instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nreturn cljs.core.re_matches(/^-.*/,cljs.core.name(p1__38340_SHARP_));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.classify_dot_form \x3d (function cljs$analyzer$classify_dot_form(p__38341){\nvar vec__38342 \x3d p__38341;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(0),null);\nvar member \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(2),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((target \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n),((cljs.analyzer.property_symbol_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886):(((member instanceof cljs.core.Symbol))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902):((cljs.core.seq_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642)\n))),(((args \x3d\x3d null))?cljs.core.List.EMPTY:new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n)], null);\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.build_dot_form !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.build_dot_form \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__38349 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__38349.cljs$core$IFn$_invoke$arity$0 ? fexpr__38349.cljs$core$IFn$_invoke$arity$0() : fexpr__38349.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22build-dot-form\x22),(function (p1__38347_SHARP_){\nreturn cljs.analyzer.classify_dot_form(p1__38347_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),cljs.core.List.EMPTY], null),(function (p__38350){\nvar vec__38351 \x3d p__38350;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(2),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22access\x22,\x22cljs.analyzer/access\x22,-1639036494),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(prop).substring((1))),cljs.core.meta(prop))], null);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923)], null),(function (p__38354){\nvar vec__38355 \x3d p__38354;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(2),null);\nthrow (new Error([\x22Cannot provide arguments \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(args),\x22 on property access \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop)].join(\x27\x27)));\n}));\n/**\n * Builds the intermediate method call map used to reason about the parsed form during\n * compilation.\n */\ncljs.analyzer.build_method_call \x3d (function cljs$analyzer$build_method_call(target,meth,args){\nif((meth instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),meth,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),cljs.core.first(meth),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n}\n});\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)], null),(function (p__38358){\nvar vec__38359 \x3d p__38358;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),cljs.core.List.EMPTY], null),(function (p__38362){\nvar vec__38363 \x3d p__38362;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923),cljs.core.List.EMPTY], null),(function (p__38366){\nvar vec__38367 \x3d p__38366;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(0),null);\nvar meth_expr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(2),null);\nreturn cljs.analyzer.build_method_call(target,cljs.core.first(meth_expr),cljs.core.rest(meth_expr));\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (dot_form){\nthrow (new Error([\x22Unknown dot form of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),dot_form)),\x22 with classification \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.classify_dot_form(dot_form))].join(\x27\x27)));\n}));\ncljs.analyzer.analyze_dot \x3d (function cljs$analyzer$analyze_dot(env,target,field,member_PLUS_,form){\nvar v \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,field,member_PLUS_], null);\nvar map__38371 \x3d cljs.analyzer.build_dot_form.cljs$core$IFn$_invoke$arity$1(v);\nvar map__38371__$1 \x3d cljs.core.__destructure_map(map__38371);\nvar dot_action \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601));\nvar target__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nvar field__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar targetexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze.call(null,enve,target__$1));\nvar form_meta \x3d cljs.core.meta(form);\nvar target_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(targetexpr);\nvar prop \x3d (function (){var or__5025__auto__ \x3d field__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn method;\n}\n})();\nvar tag \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_tag_QMARK_(target_tag);\nif(and__5023__auto__){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.analyzer.normalize_js_tag(target_tag),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null)),prop);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn null;\n}\n}\n})();\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22constructor\x22,\x22constructor\x22,-313397284,null),prop)) \x26\x26 ((((!(clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop),\x22cljs$\x22)))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22protocol-prop\x22,\x22protocol-prop\x22,-58388138).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(prop)))))))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),cljs.core.first(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),target_tag)){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (target_tag \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__38373 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22], null), null);\nreturn (fexpr__38373.cljs$core$IFn$_invoke$arity$1 ? fexpr__38373.cljs$core$IFn$_invoke$arity$1(target_tag) : fexpr__38373.call(null,target_tag));\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nvar vec__38374_39081 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.identity)(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)));\nvar pre_SINGLEQUOTE__39082 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(0),null);\nvar pre_39083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(1),null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_SINGLEQUOTE__39082);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39083));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,(function (){var G__38377 \x3d pre_SINGLEQUOTE__39082;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null),cljs.core.last(pre_SINGLEQUOTE__39082))){\nreturn cljs.core.butlast(G__38377);\n} else {\nreturn G__38377;\n}\n})())),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n} else {\n}\n} else {\n}\n\nif(cljs.analyzer.js_tag_QMARK_(tag)){\nvar pre_39089 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39089))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre_39089),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n} else {\n}\n\nvar G__38378 \x3d dot_action;\nvar G__38378__$1 \x3d (((G__38378 instanceof cljs.core.Keyword))?G__38378.fqn:null);\nswitch (G__38378__$1) {\ncase \x22cljs.analyzer/access\x22:\nvar children \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn tag;\n}\n})():tag)], null);\n\nbreak;\ncase \x22cljs.analyzer/call\x22:\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38370_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38370_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38370_SHARP_));\n}),args);\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null);\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),method,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n})():tag)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__38378__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(function (_,env,p__38379,___$1,___$2){\nvar vec__38380 \x3d p__38379;\nvar seq__38381 \x3d cljs.core.seq(vec__38380);\nvar first__38382 \x3d cljs.core.first(seq__38381);\nvar seq__38381__$1 \x3d cljs.core.next(seq__38381);\nvar ___$3 \x3d first__38382;\nvar first__38382__$1 \x3d cljs.core.first(seq__38381__$1);\nvar seq__38381__$2 \x3d cljs.core.next(seq__38381__$1);\nvar target \x3d first__38382__$1;\nvar vec__38383 \x3d seq__38381__$2;\nvar seq__38384 \x3d cljs.core.seq(vec__38383);\nvar first__38385 \x3d cljs.core.first(seq__38384);\nvar seq__38384__$1 \x3d cljs.core.next(seq__38384);\nvar field \x3d first__38385;\nvar member_PLUS_ \x3d seq__38384__$1;\nvar form \x3d vec__38380;\nvar _STAR_recur_frames_STAR__orig_val__38386 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38387 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38387);\n\ntry{return cljs.analyzer.analyze_dot(env,target,field,member_PLUS_,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38386);\n}}));\ncljs.analyzer.get_js_tag \x3d (function cljs$analyzer$get_js_tag(form){\nvar form_meta \x3d cljs.core.meta(form);\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nif(new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta) \x3d\x3d\x3d true){\nreturn new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\n} else {\nreturn null;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.js_star_interp \x3d (function cljs$analyzer$js_star_interp(env,s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nvar inner \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_existing_var(env,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,((2) + idx),end))));\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),cljs.core.cons(inner,(function (){var G__38394 \x3d env;\nvar G__38395 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2(G__38394,G__38395) : cljs.analyzer.js_star_interp.call(null,G__38394,G__38395));\n})()));\n}),null,null));\n}\n});\ncljs.analyzer.js_star_seg \x3d (function cljs$analyzer$js_star_seg(s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),(function (){var G__38398 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1(G__38398) : cljs.analyzer.js_star_seg.call(null,G__38398));\n})());\n}),null,null));\n}\n});\ncljs.analyzer.NUMERIC_SET \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null),\x22null\x22,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null),\x22null\x22,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),\x22null\x22], null), null);\ncljs.analyzer.numeric_type_QMARK_ \x3d (function cljs$analyzer$numeric_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif((((t instanceof cljs.core.Symbol)) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.NUMERIC_SET,t) \x3d\x3d null)))))){\nreturn true;\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn ((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))) || (cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))))))))));\n} else {\nreturn null;\n}\n}\n\n}\n}\n}\n});\ncljs.analyzer.array_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22,new cljs.core.Symbol(null,\x22floats\x22,\x22floats\x22,513591110,null),\x22null\x22,new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null),\x22null\x22,new cljs.core.Symbol(null,\x22objects\x22,\x22objects\x22,-554722035,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null),\x22null\x22,new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),\x22null\x22,new cljs.core.Symbol(null,\x22ints\x22,\x22ints\x22,-1761239845,null),\x22null\x22,new cljs.core.Symbol(null,\x22shorts\x22,\x22shorts\x22,107738238,null),\x22null\x22,new cljs.core.Symbol(null,\x22bytes\x22,\x22bytes\x22,-1478569089,null),\x22null\x22], null), null);\ncljs.analyzer.array_type_QMARK_ \x3d (function cljs$analyzer$array_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),t)){\nreturn true;\n} else {\nif(cljs.core.contains_QMARK_(cljs.analyzer.array_types,t)){\nreturn true;\n} else {\nreturn cljs.core.boolean$(((cljs.analyzer.impl.cljs_set_QMARK_(t))?(function (){var or__5025__auto__ \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.some(cljs.analyzer.array_types,t);\n}\n}\n})():null));\n\n}\n}\n}\n}\n}\n});\ncljs.analyzer.analyze_js_star_args \x3d (function cljs$analyzer$analyze_js_star_args(js_op,env,args){\nreturn cljs.core.first(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__38404,arg){\nvar vec__38405 \x3d p__38404;\nvar argexprs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(0),null);\nvar env__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argexprs,(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env__$1,arg) : cljs.analyzer.analyze.call(null,env__$1,arg))),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(js_op,new cljs.core.Symbol(\x22cljs.core\x22,\x22and\x22,\x22cljs.core/and\x22,-6692549,null)))?cljs.analyzer.set_test_induced_tags(env__$1,arg):env__$1)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentVector.EMPTY,env], null),args));\n});\ncljs.analyzer.analyze_js_star_STAR_ \x3d (function cljs$analyzer$analyze_js_star_STAR_(env,jsform,args,form){\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar form_meta \x3d cljs.core.meta(form);\nvar segs \x3d cljs.analyzer.js_star_seg(jsform);\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar argexprs \x3d cljs.analyzer.analyze_js_star_args(js_op,enve,args);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar validate \x3d (function (warning_type,valid_types_QMARK_){\nvar types \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38408_SHARP_){\nreturn cljs.analyzer.infer_tag(env,p1__38408_SHARP_);\n}),argexprs);\nif(cljs.core.truth_((valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1(types) : valid_types_QMARK_.call(null,types)))){\nreturn null;\n} else {\nreturn cljs.analyzer.warning(warning_type,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,types)], null));\n}\n});\nvar op_match_QMARK_ \x3d (function (sym){\nreturn cljs.core.symbol_identical_QMARK_(sym,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta));\n});\nif(numeric \x3d\x3d\x3d true){\nvalidate(new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (p1__38409_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,p1__38409_SHARP_);\n}));\n} else {\n}\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)],[argexprs,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),numeric,segs,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),env,js_op,form,tag]);\n});\ncljs.analyzer.analyze_js_star \x3d (function cljs$analyzer$analyze_js_star(env,jsform,args,form){\nvar _STAR_recur_frames_STAR__orig_val__38415 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38416 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38416);\n\ntry{return cljs.analyzer.analyze_js_star_STAR_(env,jsform,args,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38415);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),(function (op,env,p__38421,_,___$1){\nvar vec__38422 \x3d p__38421;\nvar seq__38423 \x3d cljs.core.seq(vec__38422);\nvar first__38424 \x3d cljs.core.first(seq__38423);\nvar seq__38423__$1 \x3d cljs.core.next(seq__38423);\nvar ___$2 \x3d first__38424;\nvar first__38424__$1 \x3d cljs.core.first(seq__38423__$1);\nvar seq__38423__$2 \x3d cljs.core.next(seq__38423__$1);\nvar jsform \x3d first__38424__$1;\nvar args \x3d seq__38423__$2;\nvar form \x3d vec__38422;\nif(typeof jsform \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid js* form\x22);\n}\n\nif((!((args \x3d\x3d null)))){\nreturn cljs.analyzer.analyze_js_star(env,jsform,args,form);\n} else {\nvar code \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.analyzer.js_star_interp(env,jsform));\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar form_meta \x3d cljs.core.meta(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),code,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),numeric], null);\n}\n}));\ncljs.analyzer.unsorted_map_QMARK_ \x3d (function cljs$analyzer$unsorted_map_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 ((!(cljs.core.sorted_QMARK_(x)))));\n});\n/**\n * Mark a form as being analyzed. Assumes x satisfies IMeta. Useful to suppress\n * warnings that will have been caught by a first compiler pass.\n */\ncljs.analyzer.analyzed \x3d (function cljs$analyzer$analyzed(x){\nif(cljs.analyzer.unsorted_map_QMARK_(x)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n} else {\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(x,cljs.core.assoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n\n}\n});\n/**\n * Returns boolean if the form has already been marked as analyzed.\n */\ncljs.analyzer.analyzed_QMARK_ \x3d (function cljs$analyzer$analyzed_QMARK_(x){\nreturn cljs.core.boolean$(((cljs.analyzer.unsorted_map_QMARK_(x))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(x):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x))\n));\n});\ncljs.analyzer.all_values_QMARK_ \x3d (function cljs$analyzer$all_values_QMARK_(exprs){\nreturn cljs.core.every_QMARK_((function (p1__38429_SHARP_){\nreturn (((p1__38429_SHARP_ \x3d\x3d null)) || ((((p1__38429_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27string\x27) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27number\x27) || (((p1__38429_SHARP_ \x3d\x3d\x3d true) || (p1__38429_SHARP_ \x3d\x3d\x3d false))))))))));\n}),exprs);\n});\ncljs.analyzer.valid_arity_QMARK_ \x3d (function cljs$analyzer$valid_arity_QMARK_(argc,method_params){\nreturn (((method_params \x3d\x3d null)) || (cljs.core.boolean$(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([argc]),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,method_params)))));\n});\ncljs.analyzer.record_tag_QMARK_ \x3d (function cljs$analyzer$record_tag_QMARK_(tag){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (tag instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((cljs.core.namespace(tag) \x3d\x3d null)));\nif(and__5023__auto____$1){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(tag)),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859)], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.record_basis \x3d (function cljs$analyzer$record_basis(tag){\nvar positional_factory \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22-\x3e\x22,cljs.core.name(tag)].join(\x27\x27));\nvar fields \x3d cljs.core.first(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),positional_factory,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179)], null)));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,fields);\n});\ncljs.analyzer.record_with_field_QMARK_ \x3d (function cljs$analyzer$record_with_field_QMARK_(tag,field){\nreturn ((cljs.analyzer.record_tag_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(cljs.analyzer.record_basis(tag),field)));\n});\ncljs.analyzer.invalid_arity_QMARK_ \x3d (function cljs$analyzer$invalid_arity_QMARK_(argc,method_params,variadic,max_fixed_arity){\nvar and__5023__auto__ \x3d (!(cljs.analyzer.valid_arity_QMARK_(argc,method_params)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core.not(variadic);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d variadic;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn (argc \x3c max_fixed_arity);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.parse_invoke_STAR_ \x3d (function cljs$analyzer$parse_invoke_STAR_(env,p__38437){\nvar vec__38438 \x3d p__38437;\nvar seq__38439 \x3d cljs.core.seq(vec__38438);\nvar first__38440 \x3d cljs.core.first(seq__38439);\nvar seq__38439__$1 \x3d cljs.core.next(seq__38439);\nvar f \x3d first__38440;\nvar args \x3d seq__38439__$1;\nvar form \x3d vec__38438;\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar fexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,f) : cljs.analyzer.analyze.call(null,enve,f));\nvar argc \x3d cljs.core.count(args);\nvar fn_var_QMARK_ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\n}\n})();\nvar kw_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar cur_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar HO_invoke_QMARK_ \x3d ((cljs.core.boolean$(cljs.analyzer._STAR_cljs_static_fns_STAR_)) \x26\x26 (((cljs.core.not(fn_var_QMARK_)) \x26\x26 ((((!(cljs.analyzer.js_tag_QMARK_(f)))) \x26\x26 ((((!(kw_QMARK_))) \x26\x26 ((!(cljs.analyzer.analyzed_QMARK_(f)))))))))));\nvar bind_f_expr_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!((f instanceof cljs.core.Symbol)))));\nvar bind_args_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!(cljs.analyzer.all_values_QMARK_(args)))));\nif(fn_var_QMARK_){\nvar map__38441_39147 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr);\nvar map__38441_39148__$1 \x3d cljs.core.__destructure_map(map__38441_39147);\nvar variadic_39149 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity_39150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params_39151 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar name_39152 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar ns_39153 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar macro_39154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not((function (){var and__5023__auto__ \x3d goog.string.endsWith(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cur_ns),\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.symbol_identical_QMARK_(cur_ns,ns_39153)) \x26\x26 (macro_39154 \x3d\x3d\x3d true));\n} else {\nreturn and__5023__auto__;\n}\n})());\nif(and__5023__auto__){\nreturn cljs.analyzer.invalid_arity_QMARK_(argc,method_params_39151,variadic_39149,max_fixed_arity_39150);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39152,new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n} else {\n}\n\nif(((kw_QMARK_) \x26\x26 ((!(((((1) \x3d\x3d\x3d argc)) || (((2) \x3d\x3d\x3d argc)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.first(form),new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n\nvar deprecated_QMARK__39160 \x3d new cljs.core.Keyword(null,\x22deprecated\x22,\x22deprecated\x22,1498275348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar no_warn_QMARK__39161 \x3d new cljs.core.Keyword(null,\x22deprecation-nowarn\x22,\x22deprecation-nowarn\x22,-1762828044).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nif(((cljs.core.boolean$(deprecated_QMARK__39160)) \x26\x26 ((!(cljs.core.boolean$(no_warn_QMARK__39161)))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif(((bind_args_QMARK_) || (bind_f_expr_QMARK_))){\nvar arg_syms \x3d ((bind_args_QMARK_)?cljs.core.take.cljs$core$IFn$_invoke$arity$2(argc,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym)):null);\nvar f_sym \x3d ((bind_f_expr_QMARK_)?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22fexpr__\x22):null);\nvar bindings \x3d (function (){var G__38445 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38445__$1 \x3d ((bind_args_QMARK_)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__38445,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arg_syms,args)):G__38445);\nif(bind_f_expr_QMARK_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__38445__$1,f_sym,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.analyzed(f)], 0));\n} else {\nreturn G__38445__$1;\n}\n})();\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar G__38446 \x3d env;\nvar G__38447 \x3d 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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(bindings)))),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$2((new cljs.core.List(null,cljs.analyzer.analyzed(((bind_f_expr_QMARK_)?f_sym:f)),null,(1),null)),((bind_args_QMARK_)?arg_syms:args)))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag], null)),null,(1),null))], 0))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38446,G__38447) : cljs.analyzer.analyze.call(null,G__38446,G__38447));\n} else {\nvar ana_expr \x3d (function (p1__38436_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38436_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38436_SHARP_));\n});\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(ana_expr,args);\nif((((((f instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(f) \x3d\x3d null)))) \x26\x26 (((((1) \x3d\x3d\x3d cljs.core.count(args))) \x26\x26 (cljs.analyzer.record_with_field_QMARK_(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.first(argexprs)),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(f)))))))){\nvar field_access_form \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22.-\x22,cljs.core.name(f)].join(\x27\x27)),args);\nvar _STAR_cljs_warnings_STAR__orig_val__38448 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38449 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38449);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,field_access_form) : cljs.analyzer.analyze.call(null,env,field_access_form));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38448);\n}} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null)], null);\n}\n}\n});\ncljs.analyzer.parse_invoke \x3d (function cljs$analyzer$parse_invoke(env,form){\nvar _STAR_recur_frames_STAR__orig_val__38450 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38451 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38451);\n\ntry{return cljs.analyzer.parse_invoke_STAR_(env,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38450);\n}});\ncljs.analyzer.desugar_dotted_expr \x3d (function cljs$analyzer$desugar_dotted_expr(p__38452){\nvar map__38453 \x3d p__38452;\nvar map__38453__$1 \x3d cljs.core.__destructure_map(map__38453);\nvar expr \x3d map__38453__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38453__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__38454 \x3d op;\nvar G__38454__$1 \x3d (((G__38454 instanceof cljs.core.Keyword))?G__38454.fqn:null);\nswitch (G__38454__$1) {\ncase \x22var\x22:\ncase \x22local\x22:\nif(cljs.analyzer.dotted_symbol_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr))))){\nvar s \x3d cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr));\nvar idx \x3d s.lastIndexOf(\x22.\x22);\nvar _ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((idx + (1)),((s).length)))?null:(function(){throw (new Error(\x22Assert failed: (not\x3d (inc idx) (count s))\x22))})());\nvar prefix \x3d cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx)),cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr)));\nvar field \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1))));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(expr))){\n} else {\nthrow (new Error(\x22Assert failed: (not (:const-expr expr))\x22));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(new cljs.core.List(null,prefix,(new cljs.core.List(null,field,null,(1),null)),(2),null)),(3),null)),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),(function (){var G__38455 \x3d cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(expr,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),prefix,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),prefix], 0)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)], null),prefix),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nreturn (cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1(G__38455) : cljs.analyzer.desugar_dotted_expr.call(null,G__38455));\n})(),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null)], null);\n} else {\nreturn expr;\n}\n\nbreak;\ndefault:\nreturn expr;\n\n}\n});\n/**\n * Finds the var associated with sym\n */\ncljs.analyzer.analyze_symbol \x3d (function cljs$analyzer$analyze_symbol(env,sym){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nvar G__38456 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38456) : cljs.analyzer.analyze_wrap_meta.call(null,G__38456));\n} else {\nvar map__38457 \x3d cljs.core.meta(sym);\nvar map__38457__$1 \x3d cljs.core.__destructure_map(map__38457);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar env__$1 \x3d (((!((line \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):env);\nvar env__$2 \x3d (((!((column \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column):env__$1);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$2,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym], null);\nvar lcls \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env__$2);\nvar temp__5827__auto__ \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(lcls,sym));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar sym_meta \x3d cljs.core.meta(sym);\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar cur_ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$2)));\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,\x22cljs.core\x22);\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d goog.string.endsWith(cur_ns,\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn ((cljs.core.not(goog.string.endsWith(sym_ns,\x22$macros\x22))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cur_ns,(0),(((cur_ns).length) - (7))))));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2([sym_ns,\x22$macros\x22].join(\x27\x27),cljs.core.name(sym)):sym);\nvar info \x3d (((!(cljs.core.contains_QMARK_(sym_meta,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162)))))?cljs.analyzer.resolve_existing_var(env__$2,sym__$1):cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info)),\x22\\n\x22,\x22(:op info)\x22].join(\x27\x27)));\n}\n\nreturn cljs.analyzer.desugar_dotted_expr((((!(new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377).cljs$core$IFn$_invoke$arity$1(env__$2) \x3d\x3d\x3d true)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info),cljs.core.select_keys(info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null)),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar const_expr \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})()], 0)):(function (){var info__$1 \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info__$1], 0)),cljs.core.select_keys(info__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0));\n})()));\n} else {\nvar lb \x3d temp__5827__auto__;\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),lb], 0)),((cljs.core.map_QMARK_(lb))?cljs.core.select_keys(lb,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)):null)], 0));\n}\n}\n});\ncljs.analyzer.excluded_QMARK_ \x3d (function cljs$analyzer$excluded_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.used_QMARK_ \x3d (function cljs$analyzer$used_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.get_expander_ns \x3d (function cljs$analyzer$get_expander_ns(env,nstr){\nvar res \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\n}\n})();\nvar nstr__$1 \x3d (((!((res \x3d\x3d null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(res):nstr);\nif((\x22clojure.core\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM);\n} else {\nif((\x22clojure.repl\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(new cljs.core.Symbol(null,\x22cljs.repl\x22,\x22cljs.repl\x22,1767065658,null));\n} else {\nif(cljs.core.truth_(goog.string.contains(nstr__$1,\x22.\x22))){\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n} else {\nvar or__5025__auto__ \x3d (function (){var G__38458 \x3d env;\nvar G__38458__$1 \x3d (((G__38458 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38458));\nvar G__38458__$2 \x3d (((G__38458__$1 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(G__38458__$1));\nvar G__38458__$3 \x3d (((G__38458__$2 \x3d\x3d null))?null:cljs.core.get.cljs$core$IFn$_invoke$arity$2(G__38458__$2,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1)));\nif((G__38458__$3 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.find_macros_ns(G__38458__$3);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n}\n\n}\n}\n}\n});\ncljs.analyzer.get_expander_STAR_ \x3d (function cljs$analyzer$get_expander_STAR_(sym,env){\nif((((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),sym) \x3d\x3d null)))) || (((cljs.analyzer.excluded_QMARK_(env,sym)) \x26\x26 ((!(cljs.analyzer.used_QMARK_(env,sym)))))))){\nreturn null;\n} else {\nvar nstr \x3d cljs.core.namespace(sym);\nif((!((nstr \x3d\x3d null)))){\nvar ns \x3d cljs.analyzer.get_expander_ns(env,nstr);\nif((!((ns \x3d\x3d null)))){\nreturn ns.findInternedVar(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\n} else {\nreturn null;\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym);\nvar nsym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym__$1);\n} else {\nvar nsym \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym);\nif((((!((nsym \x3d\x3d null)))) \x26\x26 ((nsym instanceof cljs.core.Symbol)))){\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym);\n} else {\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM).findInternedVar(sym);\n}\n\n}\n}\n}\n});\n/**\n * Given a sym, a symbol identifying a macro, and env, an analysis environment\n * return the corresponding Clojure macroexpander.\n */\ncljs.analyzer.get_expander \x3d (function cljs$analyzer$get_expander(sym,env){\nvar mvar \x3d cljs.analyzer.get_expander_STAR_(sym,env);\nif((((!((mvar \x3d\x3d null)))) \x26\x26 (mvar.isMacro()))){\nreturn mvar;\n} else {\nreturn null;\n}\n});\nvar cached_var_39201 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)),new cljs.core.Symbol(null,\x22macroexpand-check\x22,\x22macroexpand-check\x22,699092091,null));\n}),null));\ncljs.analyzer.get_macroexpand_check_var \x3d (function cljs$analyzer$get_macroexpand_check_var(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)) \x3d\x3d null)))){\nreturn cljs.core.deref(cached_var_39201);\n} else {\nreturn null;\n}\n});\ncljs.analyzer.var__GT_sym \x3d (function cljs$analyzer$var__GT_sym(var$){\nreturn var$.sym;\n});\ncljs.analyzer.do_macroexpand_check \x3d (function cljs$analyzer$do_macroexpand_check(env,form,mac_var){\nif(cljs.core.not(new cljs.core.Keyword(null,\x22spec-skip-macros\x22,\x22spec-skip-macros\x22,-645015958).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_))))){\nvar mchk \x3d cljs.analyzer.get_macroexpand_check_var();\nif((!((mchk \x3d\x3d null)))){\ntry{var G__38460 \x3d mac_var;\nvar G__38461 \x3d cljs.core.next(form);\nreturn (mchk.cljs$core$IFn$_invoke$arity$2 ? mchk.cljs$core$IFn$_invoke$arity$2(G__38460,G__38461) : mchk.call(null,G__38460,G__38461));\n}catch (e38459){var e \x3d e38459;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macro-syntax-check\x22,\x22macro-syntax-check\x22,2072602373),cljs.analyzer.var__GT_sym(mac_var)),e);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.check_macro_arity \x3d (function cljs$analyzer$check_macro_arity(mac_var,form){\nvar mac_sym \x3d mac_var.sym;\nvar temp__5825__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_sym)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_sym))], null));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__38463 \x3d temp__5825__auto__;\nvar map__38463__$1 \x3d cljs.core.__destructure_map(map__38463);\nvar variadic_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar argc \x3d cljs.core.count(cljs.core.rest(form));\nvar offset \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22\x26form\x22,\x22\x26form\x22,1482799337,null),cljs.core.ffirst(method_params)))?(2):(0));\nif(cljs.core.truth_(cljs.analyzer.invalid_arity_QMARK_(argc,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38462_SHARP_){\nreturn cljs.core.nthrest(p1__38462_SHARP_,offset);\n}),method_params),variadic_QMARK_,(cljs.core.truth_(max_fixed_arity)?(max_fixed_arity - offset):null)))){\nthrow (new Error(cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),mac_sym], null))));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.macroexpand_1_STAR_ \x3d (function cljs$analyzer$macroexpand_1_STAR_(env,form){\nif(cljs.core.seq_QMARK_(form)){\nvar op \x3d cljs.core.first(form);\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),op)){\ncljs.analyzer.do_macroexpand_check(env,form,cljs.analyzer.get_expander(new cljs.core.Symbol(\x22cljs.core\x22,\x22ns-special-form\x22,\x22cljs.core/ns-special-form\x22,1585185745,null),env));\n} else {\n}\n\nreturn form;\n} else {\nvar temp__5827__auto__ \x3d (((op instanceof cljs.core.Symbol))?cljs.analyzer.get_expander(op,env):null);\nif((temp__5827__auto__ \x3d\x3d null)){\nif((op instanceof cljs.core.Symbol)){\nvar opname \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(op);\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((0)))){\nvar vec__38464 \x3d cljs.core.next(form);\nvar seq__38465 \x3d cljs.core.seq(vec__38464);\nvar first__38466 \x3d cljs.core.first(seq__38465);\nvar seq__38465__$1 \x3d cljs.core.next(seq__38465);\nvar target \x3d first__38466;\nvar args \x3d seq__38465__$1;\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(cljs.analyzer.impl.DOT_SYM,target,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(opname,(1))),args),cljs.core.meta(form));\n} else {\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((opname.length - (1))))){\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.impl.NEW_SYM,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(opname,(0),(((opname).length) - (1)))),cljs.core.next(form)),cljs.core.meta(form));\n} else {\nreturn form;\n\n}\n}\n} else {\nreturn form;\n}\n} else {\nvar mac_var \x3d temp__5827__auto__;\ncljs.analyzer.do_macroexpand_check(env,form,mac_var);\n\nvar form_SINGLEQUOTE_ \x3d (function (){try{cljs.analyzer.check_macro_arity(mac_var,form);\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(mac_var),form,env,cljs.core.rest(form));\n}catch (e38467){var e \x3d e38467;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macroexpansion\x22,\x22macroexpansion\x22,706274075),cljs.analyzer.var__GT_sym(mac_var)),e);\n}})();\nif(cljs.analyzer.impl.cljs_seq_QMARK_(form_SINGLEQUOTE_)){\nvar sym_SINGLEQUOTE_ \x3d cljs.core.first(form_SINGLEQUOTE_);\nvar sym \x3d cljs.core.first(form);\nif(cljs.core.symbol_identical_QMARK_(sym_SINGLEQUOTE_,cljs.analyzer.impl.JS_STAR_SYM)){\nvar sym__$1 \x3d (((!((cljs.core.namespace(sym) \x3d\x3d null))))?sym:cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)));\nvar js_op \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),sym__$1], null);\nvar numeric \x3d (function (){var mac_var_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_var.sym));\nvar mac_var_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_var.sym));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),mac_var_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),mac_var_name,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22numeric\x22,\x22cljs.analyzer/numeric\x22,1415704188)], null));\n})();\nvar js_op__$1 \x3d ((numeric \x3d\x3d\x3d true)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),true):js_op);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(form_SINGLEQUOTE_,cljs.core.merge,js_op__$1);\n} else {\nreturn form_SINGLEQUOTE_;\n}\n} else {\nreturn form_SINGLEQUOTE_;\n}\n}\n}\n} else {\nreturn form;\n}\n});\n/**\n * Given a env, an analysis environment, and form, a ClojureScript form,\n * macroexpand the form once.\n */\ncljs.analyzer.macroexpand_1 \x3d (function cljs$analyzer$macroexpand_1(env,form){\ntry{return cljs.analyzer.macroexpand_1_STAR_(env,form);\n}catch (e38468){var err__8939__auto__ \x3d e38468;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq_STAR_ \x3d (function cljs$analyzer$analyze_seq_STAR_(op,env,form,name,opts){\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nreturn cljs.analyzer.parse.cljs$core$IFn$_invoke$arity$5(op,env,form,name,opts);\n} else {\nreturn cljs.analyzer.parse_invoke(env,form);\n}\n});\ncljs.analyzer.analyze_seq_STAR__wrap \x3d (function cljs$analyzer$analyze_seq_STAR__wrap(op,env,form,name,opts){\ntry{return cljs.analyzer.analyze_seq_STAR_(op,env,form,name,opts);\n}catch (e38469){var err__8939__auto__ \x3d e38469;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq \x3d (function cljs$analyzer$analyze_seq(var_args){\nvar G__38471 \x3d arguments.length;\nswitch (G__38471) {\ncase 3:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\nreturn (cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze_list.call(null,env,form));\n} else {\nvar line \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar line__$1 \x3d (((line \x3d\x3d null))?new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env):line);\nvar col \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar col__$1 \x3d (((col \x3d\x3d null))?new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env):col);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col__$1], 0));\nvar op \x3d cljs.core.first(form);\nif((op \x3d\x3d null)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,\x22Can\x27t call nil\x22);\n} else {\n}\n\nvar mform \x3d cljs.analyzer.macroexpand_1(env__$1,form);\nif((form \x3d\x3d\x3d mform)){\nreturn cljs.analyzer.analyze_seq_STAR__wrap(op,env__$1,form,name,opts);\n} else {\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,mform,name,opts) : cljs.analyzer.analyze.call(null,env__$1,mform,name,opts));\n}\n}\n}));\n\n(cljs.analyzer.analyze_seq.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.analyze_map \x3d (function cljs$analyzer$analyze_map(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ks \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38474 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38475 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38475);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38472_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38472_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38472_SHARP_));\n}),cljs.core.keys(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38474);\n}})();\nvar vs \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38476 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38477 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38477);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38473_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38473_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38473_SHARP_));\n}),cljs.core.vals(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38476);\n}})();\nvar G__38478 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),ks,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMap\x22,\x22cljs.core/IMap\x22,1407777598,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38478) : cljs.analyzer.analyze_wrap_meta.call(null,G__38478));\n});\ncljs.analyzer.analyze_list \x3d (function cljs$analyzer$analyze_list(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38480 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38481 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38481);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38479_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38479_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38479_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38480);\n}})();\nvar G__38482 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38482) : cljs.analyzer.analyze_wrap_meta.call(null,G__38482));\n});\ncljs.analyzer.analyze_vector \x3d (function cljs$analyzer$analyze_vector(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38484 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38485 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38485);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38483_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38483_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38483_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38484);\n}})();\nvar G__38486 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IVector\x22,\x22cljs.core/IVector\x22,1711112835,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38486) : cljs.analyzer.analyze_wrap_meta.call(null,G__38486));\n});\ncljs.analyzer.analyze_set \x3d (function cljs$analyzer$analyze_set(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38488 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38489 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38489);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38487_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38487_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38487_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38488);\n}})();\nvar G__38490 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISet\x22,\x22cljs.core/ISet\x22,2003412810,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38490) : cljs.analyzer.analyze_wrap_meta.call(null,G__38490));\n});\ncljs.analyzer.analyze_js_value \x3d (function cljs$analyzer$analyze_js_value(env,form){\nvar val \x3d form.val;\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nif(cljs.core.map_QMARK_(val)){\nvar keys \x3d cljs.core.vec(cljs.core.keys(val));\nvar vals \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38493 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38494 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38494);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38491_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38491_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38491_SHARP_));\n}),cljs.core.vals(val));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38493);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-object\x22,\x22js-object\x22,1830199158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),keys,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vals,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null)], null);\n} else {\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38495 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38496 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38496);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38492_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38492_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38492_SHARP_));\n}),val);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38495);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-array\x22,\x22js-array\x22,-1210185421),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null)], null);\n}\n});\ncljs.analyzer.record_ns_PLUS_name \x3d (function cljs$analyzer$record_ns_PLUS_name(x){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0)),/\\//));\n});\ncljs.analyzer.analyze_record \x3d (function cljs$analyzer$analyze_record(env,x){\nvar _items_ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38501 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38502 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38502);\n\ntry{var G__38503 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__38504 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38503,G__38504) : cljs.analyzer.analyze.call(null,G__38503,G__38504));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38501);\n}})();\nvar vec__38498 \x3d cljs.analyzer.record_ns_PLUS_name(x);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),x,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null);\n});\ncljs.analyzer.elide_reader_meta \x3d (function cljs$analyzer$elide_reader_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0));\n});\ncljs.analyzer.elide_analyzer_meta \x3d (function cljs$analyzer$elide_analyzer_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162));\n});\ncljs.analyzer.elide_irrelevant_meta \x3d (function cljs$analyzer$elide_irrelevant_meta(m){\nreturn cljs.analyzer.elide_analyzer_meta(cljs.analyzer.elide_reader_meta(m));\n});\ncljs.analyzer.analyze_wrap_meta \x3d (function cljs$analyzer$analyze_wrap_meta(expr){\nvar form \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr);\nvar m \x3d cljs.analyzer.elide_irrelevant_meta(cljs.core.meta(form));\nif((!((cljs.core.seq(m) \x3d\x3d null)))){\nvar env \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr);\nvar expr__$1 \x3d cljs.core.assoc_in(expr,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar meta_expr \x3d cljs.analyzer.analyze_map(new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr__$1),m);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22with-meta\x22,\x22with-meta\x22,-1566856820),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),meta_expr,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n} else {\nreturn expr;\n}\n});\ncljs.analyzer.infer_type \x3d (function cljs$analyzer$infer_type(env,p__38506,_){\nvar map__38507 \x3d p__38506;\nvar map__38507__$1 \x3d cljs.core.__destructure_map(map__38507);\nvar ast \x3d map__38507__$1;\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38507__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif((((tag \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),tag)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),(function (ms){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__38505_SHARP_){\nreturn (cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3(env,p1__38505_SHARP_,_) : cljs.analyzer.infer_type.call(null,env,p1__38505_SHARP_,_));\n})),ms);\n}));\n} else {\nvar temp__5827__auto__ \x3d cljs.analyzer.infer_tag(env,ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn ast;\n} else {\nvar tag__$1 \x3d temp__5827__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1);\n}\n}\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.repl_self_require_QMARK_ \x3d (function cljs$analyzer$repl_self_require_QMARK_(env,deps){\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22repl-env\x22,\x22repl-env\x22,-1976503928).cljs$core$IFn$_invoke$arity$1(env);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.analyzer._STAR_cljs_ns_STAR_]),deps);\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.invoke_arg_type_validators \x3d (function (){var aget_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38508_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38508_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.rest(p1__38508_SHARP_))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nvar aset_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38509_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38509_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.butlast(cljs.core.rest(p1__38509_SHARP_)))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),aset_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),aset_validator], null);\n})();\ncljs.analyzer.check_invoke_arg_types \x3d (function cljs$analyzer$check_invoke_arg_types(env,p__38510,opts){\nvar map__38511 \x3d p__38510;\nvar map__38511__$1 \x3d cljs.core.__destructure_map(map__38511);\nvar ast \x3d map__38511__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38511__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif((((!(cljs.analyzer.analyzed_QMARK_(ast)))) \x26\x26 (cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),op)))){\nvar temp__5829__auto___39264 \x3d cljs.core.find(cljs.analyzer.invoke_arg_type_validators,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(ast))));\nif((temp__5829__auto___39264 \x3d\x3d null)){\n} else {\nvar vec__38512_39271 \x3d temp__5829__auto___39264;\nvar name_39272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(0),null);\nvar map__38515_39273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(1),null);\nvar map__38515_39274__$1 \x3d cljs.core.__destructure_map(map__38515_39273);\nvar valid_QMARK__39275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379));\nvar warning_type_39276 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595));\nvar types_39277 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(ast));\nif(cljs.core.truth_((valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1(types_39277) : valid_QMARK__39275.call(null,types_39277)))){\n} else {\ncljs.analyzer.warning(warning_type_39276,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39272,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),types_39277], null));\n}\n}\n} else {\n}\n\nreturn cljs.analyzer.analyzed(ast);\n});\ncljs.analyzer.analyze_form \x3d (function cljs$analyzer$analyze_form(env,form,name,opts){\nif((form instanceof cljs.core.Symbol)){\nreturn cljs.analyzer.analyze_symbol(env,form);\n} else {\nif(((cljs.analyzer.impl.cljs_seq_QMARK_(form)) \x26\x26 ((!((cljs.core.seq(form) \x3d\x3d null)))))){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,opts);\n} else {\nif(cljs.core.record_QMARK_(form)){\nreturn cljs.analyzer.analyze_record(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_map_QMARK_(form)){\nreturn cljs.analyzer.analyze_map(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_vector_QMARK_(form)){\nreturn cljs.analyzer.analyze_vector(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(form)){\nreturn cljs.analyzer.analyze_set(env,form);\n} else {\nif((form instanceof cljs.core.Keyword)){\nreturn cljs.analyzer.analyze_keyword(env,form);\n} else {\nif((form instanceof cljs.tagged_literals.JSValue)){\nreturn cljs.analyzer.analyze_js_value(env,form);\n} else {\nvar tag \x3d (((form \x3d\x3d null))?cljs.analyzer.impl.CLJ_NIL_SYM:((typeof form \x3d\x3d\x3d \x27number\x27)?cljs.analyzer.impl.NUMBER_SYM:((typeof form \x3d\x3d\x3d \x27string\x27)?cljs.analyzer.impl.STRING_SYM:((form \x3d\x3d\x3d true)?cljs.analyzer.impl.BOOLEAN_SYM:((form \x3d\x3d\x3d false)?cljs.analyzer.impl.BOOLEAN_SYM:((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,form))?new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null):null))))));\nvar G__38516 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\nif(cljs.core.truth_(tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38516,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag);\n} else {\nreturn G__38516;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.analyzer.default_passes \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.infer_type,cljs.analyzer.passes.and_or.optimize,cljs.analyzer.check_invoke_arg_types], null);\ncljs.analyzer.analyze_STAR_ \x3d (function cljs$analyzer$analyze_STAR_(env,form,name,opts){\nvar passes \x3d cljs.analyzer._STAR_passes_STAR_;\nvar passes__$1 \x3d (((passes \x3d\x3d null))?cljs.analyzer.default_passes:passes);\nvar form__$1 \x3d (((form instanceof cljs.core.LazySeq))?((cljs.core.seq(form))?form:cljs.core.List.EMPTY):form);\nvar ast \x3d cljs.analyzer.analyze_form(env,form__$1,name,opts);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(env,ast__$1,opts) : pass.call(null,env,ast__$1,opts));\n}),ast,passes__$1);\n});\n/**\n * Given an environment, a map containing {:locals (mapping of names to bindings), :context\n * (one of :statement, :expr, :return), :ns (a symbol naming the\n * compilation ns)}, and form, returns an expression object (a map\n * containing at least :form, :op and :env keys). If expr has any (immediately)\n * nested exprs, must have a :children entry. This must be a vector of keywords naming\n * the immediately nested fields mapped to an expr or vector of exprs. This will\n * facilitate code walking without knowing the details of the op set.\n */\ncljs.analyzer.analyze \x3d (function cljs$analyzer$analyze(var_args){\nvar G__38518 \x3d arguments.length;\nswitch (G__38518) {\ncase 2:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,form){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(env,form,null);\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\ntry{if(cljs.analyzer.analyzed_QMARK_(form)){\nvar _STAR_cljs_warnings_STAR__orig_val__38520 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38521 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38521);\n\ntry{return cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38520);\n}} else {\nreturn cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}\n}catch (e38519){var err__8939__auto__ \x3d e38519;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}}));\n\n(cljs.analyzer.analyze.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a compiler state and a map from fully qualified symbols to constant\n * EDN values, update the compiler state marking these vars as const to support\n * direct substitution of these vars in source.\n */\ncljs.analyzer.add_consts \x3d (function cljs$analyzer$add_consts(compiler_state,constants_map){\nreturn cljs.core.reduce_kv((function (compiler_state__$1,sym,value){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(compiler_state__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),(function (){var _STAR_passes_STAR__orig_val__38522 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__38523 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__38523);\n\ntry{return cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.empty_env(),value);\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__38522);\n}})()], null));\n}),compiler_state,constants_map);\n});\ncljs.analyzer.resolve_symbol \x3d (function cljs$analyzer$resolve_symbol(sym){\nif(((cljs.core.not(cljs.core.namespace(sym))) \x26\x26 (cljs.analyzer.dotted_symbol_QMARK_(sym)))){\nreturn sym;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1((function (){var _STAR_private_var_access_nowarn_STAR__orig_val__38524 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38525 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38525);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_)),sym);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38524);\n}})());\n}\n});\n/**\n * Get all alias maps for a namespace.\n */\ncljs.analyzer.get_aliases \x3d (function cljs$analyzer$get_aliases(ns){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798))(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(ns)));\n});\nvar registry_ref_39290 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22registry-ref\x22,\x22registry-ref\x22,1975823941,null));\n}),null));\nvar speced_vars_39291 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22-speced-vars\x22,\x22-speced-vars\x22,1758723085,null));\n}),null));\ncljs.analyzer.get_spec_vars \x3d (function cljs$analyzer$get_spec_vars(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)) \x3d\x3d null)))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414),cljs.core.deref(registry_ref_39290),new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988),cljs.core.deref(speced_vars_39291)], null);\n} else {\nreturn null;\n}\n});\n/**\n * Dumps registered speced vars for a given namespace into the compiler\n * environment.\n */\ncljs.analyzer.dump_specs \x3d (function cljs$analyzer$dump_specs(ns){\nvar spec_vars \x3d cljs.analyzer.get_spec_vars();\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry_ref \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p__38526){\nvar vec__38527 \x3d p__38526;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(1),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(k));\n})),cljs.core.deref(cljs.core.deref(registry_ref)))], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar speced_vars \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (v){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(v))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22fdef-ns\x22,\x22fdef-ns\x22,-1602124254).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))));\n})),cljs.core.deref(cljs.core.deref(speced_vars)))], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Registers speced vars found in a namespace analysis cache.\n */\ncljs.analyzer.register_specs \x3d (function cljs$analyzer$register_specs(cached_ns){\nvar map__38530 \x3d cljs.analyzer.get_spec_vars();\nvar map__38530__$1 \x3d cljs.core.__destructure_map(map__38530);\nvar registry_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414));\nvar speced_vars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988));\nvar temp__5825__auto___39295 \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto___39295){\nvar registry_39296 \x3d temp__5825__auto___39295;\nif(cljs.core.truth_(registry_ref)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(registry_ref),cljs.core.into,registry_39296);\n} else {\n}\n} else {\n}\n\nvar temp__5825__auto__ \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto__){\nvar vars \x3d temp__5825__auto__;\nif(cljs.core.truth_(speced_vars)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(speced_vars),cljs.core.into,vars);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_form_seq \x3d (function cljs$analyzer$analyze_form_seq(var_args){\nvar G__38532 \x3d arguments.length;\nswitch (G__38532) {\ncase 1:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (forms){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2(forms,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,opts){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3(forms,opts,false);\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,opts,return_last_QMARK_){\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.empty_env(),new cljs.core.Keyword(null,\x22build-options\x22,\x22build-options\x22,1183685779),opts);\nvar _STAR_file_defs_STAR__orig_val__38533 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nvar _STAR_cljs_ns_STAR__orig_val__38534 \x3d cljs.analyzer._STAR_cljs_ns_STAR_;\nvar _STAR_cljs_file_STAR__orig_val__38535 \x3d cljs.analyzer._STAR_cljs_file_STAR_;\nvar _STAR_alias_map_STAR__orig_val__38536 \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nvar _STAR_file_defs_STAR__temp_val__38537 \x3d null;\nvar _STAR_cljs_ns_STAR__temp_val__38538 \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\nvar _STAR_cljs_file_STAR__temp_val__38539 \x3d null;\nvar _STAR_alias_map_STAR__temp_val__38540 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})();\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__temp_val__38537);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__temp_val__38538);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__temp_val__38539);\n\n(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__temp_val__38540);\n\ntry{var ns \x3d null;\nvar forms__$1 \x3d forms;\nvar last_ast \x3d null;\nwhile(true){\nif((!((forms__$1 \x3d\x3d null)))){\nvar form \x3d cljs.core.first(forms__$1);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ast \x3d cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,form,null,opts);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760))){\nvar G__39303 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__39304 \x3d cljs.core.next(forms__$1);\nvar G__39305 \x3d ast;\nns \x3d G__39303;\nforms__$1 \x3d G__39304;\nlast_ast \x3d G__39305;\ncontinue;\n} else {\nvar G__39306 \x3d ns;\nvar G__39307 \x3d cljs.core.next(forms__$1);\nvar G__39308 \x3d ast;\nns \x3d G__39306;\nforms__$1 \x3d G__39307;\nlast_ast \x3d G__39308;\ncontinue;\n}\n} else {\nif(cljs.core.truth_(return_last_QMARK_)){\nreturn last_ast;\n} else {\nreturn ns;\n}\n}\nbreak;\n}\n}finally {(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__orig_val__38536);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__orig_val__38535);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__orig_val__38534);\n\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__orig_val__38533);\n}}));\n\n(cljs.analyzer.analyze_form_seq.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Ensures that a non-nil defs map exists in the compiler state for a given\n * ns. (A non-nil defs map signifies that the namespace has been analyzed.)\n */\ncljs.analyzer.ensure_defs \x3d (function cljs$analyzer$ensure_defs(ns){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null),(function (p1__38541_SHARP_){\nvar or__5025__auto__ \x3d p1__38541_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.api.js", true, "goog.provide(\x27cljs.analyzer.api\x27);\n/**\n * Creates an empty compilation state Atom\x3cMap\x3e. The optional opts arg is a map\n * representing the compiler configuration. See the documentation\n * for details: https://clojurescript.org/reference/compiler-options\n */\ncljs.analyzer.api.empty_state \x3d (function cljs$analyzer$api$empty_state(var_args){\nvar G__38543 \x3d arguments.length;\nswitch (G__38543) {\ncase 0:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn cljs.env._STAR_compiler_STAR_;\n} else {\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n}\n}));\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(opts);\n}));\n\n(cljs.analyzer.api.empty_state.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the current compiler state atom.\n */\ncljs.analyzer.api.current_state \x3d (function cljs$analyzer$api$current_state(){\nreturn cljs.env._STAR_compiler_STAR_;\n});\n/**\n * Return the current file under analysis or compilation.\n */\ncljs.analyzer.api.current_file \x3d (function cljs$analyzer$api$current_file(){\nreturn cljs.analyzer._STAR_cljs_file_STAR_;\n});\n/**\n * Return the current ns under analysis or compilation.\n */\ncljs.analyzer.api.current_ns \x3d (function cljs$analyzer$api$current_ns(){\nreturn cljs.analyzer._STAR_cljs_ns_STAR_;\n});\n/**\n * Creates an empty analysis environment.\n */\ncljs.analyzer.api.empty_env \x3d (function cljs$analyzer$api$empty_env(){\nreturn cljs.analyzer.empty_env();\n});\n/**\n * Test if the given warning-type is enabled.\n */\ncljs.analyzer.api.warning_enabled_QMARK_ \x3d (function cljs$analyzer$api$warning_enabled_QMARK_(warning_type){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_.call(null,warning_type);\n});\n/**\n * The default warning handler.\n * \n * Outputs the warning messages to *err*.\n */\ncljs.analyzer.api.default_warning_handler \x3d (function cljs$analyzer$api$default_warning_handler(warning_type,env,extra){\nreturn cljs.analyzer.default_warning_handler(warning_type,env,extra);\n});\n/**\n * Helper for generating the standard analyzer messages for warnings. Should be\n * passed warn-type and warn-info. See with-warning-handlers.\n */\ncljs.analyzer.api.warning_message \x3d (function cljs$analyzer$api$warning_message(warn_type,warn_info){\nreturn cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warn_type,warn_info);\n});\n/**\n * Get the enabled warning types.\n */\ncljs.analyzer.api.enabled_warnings \x3d (function cljs$analyzer$api$enabled_warnings(){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_;\n});\n/**\n * Return the compiler options from compiler state.\n */\ncljs.analyzer.api.get_options \x3d (function cljs$analyzer$api$get_options(var_args){\nvar G__38546 \x3d arguments.length;\nswitch (G__38546) {\ncase 0:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n}));\n\n(cljs.analyzer.api.get_options.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the currently computed Google Closure js dependency index from the\n * compiler state.\n */\ncljs.analyzer.api.get_js_index \x3d (function cljs$analyzer$api$get_js_index(var_args){\nvar G__38567 \x3d arguments.length;\nswitch (G__38567) {\ncase 0:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131));\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * ClojureScript\x27s default analysis passes.\n */\ncljs.analyzer.api.default_passes \x3d cljs.analyzer.default_passes;\n/**\n * Given an analysis environment resolve a var. Analogous to\n * clojure.core/resolve\n */\ncljs.analyzer.api.resolve \x3d (function cljs$analyzer$api$resolve(env,sym){\nif(cljs.core.map_QMARK_(env)){\n} else {\nthrow (new Error(\x22Assert failed: (map? env)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__38601 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38602 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38602);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists_throw());\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38601);\n}}catch (e38600){var e \x3d e38600;\nreturn cljs.analyzer.resolve_macro_var(env,sym);\n}});\n/**\n * Return all namespaces. Analagous to clojure.core/all-ns but\n * returns symbols identifying namespaces not Namespace instances.\n */\ncljs.analyzer.api.all_ns \x3d (function cljs$analyzer$api$all_ns(var_args){\nvar G__38604 \x3d arguments.length;\nswitch (G__38604) {\ncase 0:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1(cljs.env._STAR_compiler_STAR_);\n}));\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.keys(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)));\n}));\n\n(cljs.analyzer.api.all_ns.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Given a namespace return the corresponding namespace analysis map. Analagous\n * to clojure.core/find-ns.\n */\ncljs.analyzer.api.find_ns \x3d (function cljs$analyzer$api$find_ns(var_args){\nvar G__38606 \x3d arguments.length;\nswitch (G__38606) {\ncase 1:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,sym);\n}));\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),sym], null));\n}));\n\n(cljs.analyzer.api.find_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return the corresponding namespace analysis map, throwing an\n * exception if not found. Analagous to clojure.core/the-ns.\n */\ncljs.analyzer.api.the_ns \x3d (function cljs$analyzer$api$the_ns(var_args){\nvar G__38608 \x3d arguments.length;\nswitch (G__38608) {\ncase 1:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nvar or__5025__auto__ \x3d cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(state,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22No namespace found: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),sym], null));\n}\n}));\n\n(cljs.analyzer.api.the_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the var analysis maps. Analagous to\n * clojure.core/ns-interns but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_interns \x3d (function cljs$analyzer$api$ns_interns(var_args){\nvar G__38613 \x3d arguments.length;\nswitch (G__38613) {\ncase 1:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nvar ns__$1 \x3d cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(state,ns);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431).cljs$core$IFn$_invoke$arity$1(ns__$1),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717).cljs$core$IFn$_invoke$arity$1(ns__$1)], 0));\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the public var analysis maps. Analagous to\n * clojure.core/ns-publics but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_publics \x3d (function cljs$analyzer$api$ns_publics(var_args){\nvar G__38616 \x3d arguments.length;\nswitch (G__38616) {\ncase 1:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38619){\nvar vec__38620 \x3d p__38619;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(1),null);\nreturn new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(v);\n}),cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(state,ns)));\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace and a symbol return the corresponding var analysis map.\n * Analagous to clojure.core/ns-resolve but returns var analysis map not Var.\n */\ncljs.analyzer.api.ns_resolve \x3d (function cljs$analyzer$api$ns_resolve(var_args){\nvar G__38624 \x3d arguments.length;\nswitch (G__38624) {\ncase 2:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,sym){\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3(cljs.env._STAR_compiler_STAR_,ns,sym);\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3 \x3d (function (state,ns,sym){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes the namespace named by the symbol.\n */\ncljs.analyzer.api.remove_ns \x3d (function cljs$analyzer$api$remove_ns(var_args){\nvar G__38640 \x3d arguments.length;\nswitch (G__38640) {\ncase 1:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns], 0));\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.macros.js", true, "goog.provide(\x27intemporal.internal.macros\x27);\nintemporal.internal.macros.cljs_available_QMARK_ \x3d false;\n"); -SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37709 \x3d arguments.length;\nvar i__5750__auto___37710 \x3d (0);\nwhile(true){\nif((i__5750__auto___37710 \x3c len__5749__auto___37709)){\nargs__5755__auto__.push((arguments[i__5750__auto___37710]));\n\nvar G__37711 \x3d (i__5750__auto___37710 + (1));\ni__5750__auto___37710 \x3d G__37711;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__37642){\nvar map__37643 \x3d p__37642;\nvar map__37643__$1 \x3d cljs.core.__destructure_map(map__37643);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37643__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37643__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__37712__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__37645 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37646 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37646);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__37647 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37647 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37647);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37648 \x3d err;\nif((G__37648 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37648);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__37649 \x3d err;\nif((G__37649 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__37649);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37645);\n}};\nvar G__37712 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__37721__i \x3d 0, G__37721__a \x3d new Array(arguments.length - 0);\nwhile (G__37721__i \x3c G__37721__a.length) {G__37721__a[G__37721__i] \x3d arguments[G__37721__i + 0]; ++G__37721__i;}\n args \x3d new cljs.core.IndexedSeq(G__37721__a,0,null);\n} \nreturn G__37712__delegate.call(this,args);};\nG__37712.cljs$lang$maxFixedArity \x3d 0;\nG__37712.cljs$lang$applyTo \x3d (function (arglist__37722){\nvar args \x3d cljs.core.seq(arglist__37722);\nreturn G__37712__delegate(args);\n});\nG__37712.cljs$core$IFn$_invoke$arity$variadic \x3d G__37712__delegate;\nreturn G__37712;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq37640){\nvar G__37641 \x3d cljs.core.first(seq37640);\nvar seq37640__$1 \x3d cljs.core.next(seq37640);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37641,seq37640__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k37651,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__37655 \x3d k37651;\nvar G__37655__$1 \x3d (((G__37655 instanceof cljs.core.Keyword))?G__37655.fqn:null);\nswitch (G__37655__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k37651,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__37656){\nvar vec__37657 \x3d p__37656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__37650){\nvar self__ \x3d this;\nvar G__37650__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__37650__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this37652,other37653){\nvar self__ \x3d this;\nvar this37652__$1 \x3d this;\nreturn (((!((other37653 \x3d\x3d null)))) \x26\x26 ((((this37652__$1.constructor \x3d\x3d\x3d other37653.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37652__$1.seq_num,other37653.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37652__$1.__extmap,other37653.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k37651){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__37660 \x3d k37651;\nvar G__37660__$1 \x3d (((G__37660 instanceof cljs.core.Keyword))?G__37660.fqn:null);\nswitch (G__37660__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k37651);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__37650){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__37661 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__37662 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__37661.cljs$core$IFn$_invoke$arity$2 ? pred__37661.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__37662) : pred__37661.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__37662)))){\nreturn (new intemporal.core.AsyncHandle(G__37650,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__37650),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__37650){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__37650,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__37654){\nvar extmap__5365__auto__ \x3d (function (){var G__37664 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__37654,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__37654)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__37664);\n} else {\nreturn G__37664;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__37654),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__37665 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37665 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37665);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37666 \x3d err;\nif((G__37666 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37666);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e37667){if((e37667 instanceof Error)){\nvar e \x3d e37667;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e37667;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37834 \x3d arguments.length;\nvar i__5750__auto___37836 \x3d (0);\nwhile(true){\nif((i__5750__auto___37836 \x3c len__5749__auto___37834)){\nargs__5755__auto__.push((arguments[i__5750__auto___37836]));\n\nvar G__37837 \x3d (i__5750__auto___37836 + (1));\ni__5750__auto___37836 \x3d G__37837;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__37671){\nvar map__37672 \x3d p__37671;\nvar map__37672__$1 \x3d cljs.core.__destructure_map(map__37672);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37672__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__37673 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__37673 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__37673);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__37674 \x3d err;\nif((G__37674 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__37674);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq37668){\nvar G__37669 \x3d cljs.core.first(seq37668);\nvar seq37668__$1 \x3d cljs.core.next(seq37668);\nvar G__37670 \x3d cljs.core.first(seq37668__$1);\nvar seq37668__$2 \x3d cljs.core.next(seq37668__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37669,G__37670,seq37668__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37871 \x3d arguments.length;\nvar i__5750__auto___37872 \x3d (0);\nwhile(true){\nif((i__5750__auto___37872 \x3c len__5749__auto___37871)){\nargs__5755__auto__.push((arguments[i__5750__auto___37872]));\n\nvar G__37874 \x3d (i__5750__auto___37872 + (1));\ni__5750__auto___37872 \x3d G__37874;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq37675){\nvar G__37676 \x3d cljs.core.first(seq37675);\nvar seq37675__$1 \x3d cljs.core.next(seq37675);\nvar G__37677 \x3d cljs.core.first(seq37675__$1);\nvar seq37675__$2 \x3d cljs.core.next(seq37675__$1);\nvar G__37678 \x3d cljs.core.first(seq37675__$2);\nvar seq37675__$3 \x3d cljs.core.next(seq37675__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37676,G__37677,G__37678,seq37675__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37889 \x3d arguments.length;\nvar i__5750__auto___37891 \x3d (0);\nwhile(true){\nif((i__5750__auto___37891 \x3c len__5749__auto___37889)){\nargs__5755__auto__.push((arguments[i__5750__auto___37891]));\n\nvar G__37895 \x3d (i__5750__auto___37891 + (1));\ni__5750__auto___37891 \x3d G__37895;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37684,workflow_id,workflow_fn,args,p__37685){\nvar map__37686 \x3d p__37684;\nvar map__37686__$1 \x3d cljs.core.__destructure_map(map__37686);\nvar engine \x3d map__37686__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37686__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37687 \x3d p__37685;\nvar map__37687__$1 \x3d cljs.core.__destructure_map(map__37687);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37687__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37687__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq37679){\nvar G__37680 \x3d cljs.core.first(seq37679);\nvar seq37679__$1 \x3d cljs.core.next(seq37679);\nvar G__37681 \x3d cljs.core.first(seq37679__$1);\nvar seq37679__$2 \x3d cljs.core.next(seq37679__$1);\nvar G__37682 \x3d cljs.core.first(seq37679__$2);\nvar seq37679__$3 \x3d cljs.core.next(seq37679__$2);\nvar G__37683 \x3d cljs.core.first(seq37679__$3);\nvar seq37679__$4 \x3d cljs.core.next(seq37679__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37680,G__37681,G__37682,G__37683,seq37679__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37917 \x3d arguments.length;\nvar i__5750__auto___37920 \x3d (0);\nwhile(true){\nif((i__5750__auto___37920 \x3c len__5749__auto___37917)){\nargs__5755__auto__.push((arguments[i__5750__auto___37920]));\n\nvar G__37921 \x3d (i__5750__auto___37920 + (1));\ni__5750__auto___37920 \x3d G__37921;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__37693){\nvar map__37694 \x3d p__37693;\nvar map__37694__$1 \x3d cljs.core.__destructure_map(map__37694);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37694__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__37695_37929 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37696_37930 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37696_37930);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37695_37929);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq37688){\nvar G__37689 \x3d cljs.core.first(seq37688);\nvar seq37688__$1 \x3d cljs.core.next(seq37688);\nvar G__37690 \x3d cljs.core.first(seq37688__$1);\nvar seq37688__$2 \x3d cljs.core.next(seq37688__$1);\nvar G__37691 \x3d cljs.core.first(seq37688__$2);\nvar seq37688__$3 \x3d cljs.core.next(seq37688__$2);\nvar G__37692 \x3d cljs.core.first(seq37688__$3);\nvar seq37688__$4 \x3d cljs.core.next(seq37688__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37689,G__37690,G__37691,G__37692,seq37688__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__37697_37949 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37698_37950 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37698_37950);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37697_37949);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__37699_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__37699_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37952 \x3d arguments.length;\nvar i__5750__auto___37954 \x3d (0);\nwhile(true){\nif((i__5750__auto___37954 \x3c len__5749__auto___37952)){\nargs__5755__auto__.push((arguments[i__5750__auto___37954]));\n\nvar G__37955 \x3d (i__5750__auto___37954 + (1));\ni__5750__auto___37954 \x3d G__37955;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37701){\nvar map__37702 \x3d p__37701;\nvar map__37702__$1 \x3d cljs.core.__destructure_map(map__37702);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37702__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37702__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq37700){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq37700));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__37704 \x3d arguments.length;\nswitch (G__37704) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__37705){\nvar map__37706 \x3d p__37705;\nvar map__37706__$1 \x3d cljs.core.__destructure_map(map__37706);\nvar engine \x3d map__37706__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37706__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37706__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__37707,grace_period_secs){\nvar map__37708 \x3d p__37707;\nvar map__37708__$1 \x3d cljs.core.__destructure_map(map__37708);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37708__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37708__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39668 \x3d arguments.length;\nvar i__5750__auto___39669 \x3d (0);\nwhile(true){\nif((i__5750__auto___39669 \x3c len__5749__auto___39668)){\nargs__5755__auto__.push((arguments[i__5750__auto___39669]));\n\nvar G__39670 \x3d (i__5750__auto___39669 + (1));\ni__5750__auto___39669 \x3d G__39670;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__39602){\nvar map__39603 \x3d p__39602;\nvar map__39603__$1 \x3d cljs.core.__destructure_map(map__39603);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39603__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39603__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__39671__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__39604 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39605 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39605);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__39606 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39606 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39606);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39607 \x3d err;\nif((G__39607 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39607);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__39608 \x3d err;\nif((G__39608 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__39608);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39604);\n}};\nvar G__39671 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39672__i \x3d 0, G__39672__a \x3d new Array(arguments.length - 0);\nwhile (G__39672__i \x3c G__39672__a.length) {G__39672__a[G__39672__i] \x3d arguments[G__39672__i + 0]; ++G__39672__i;}\n args \x3d new cljs.core.IndexedSeq(G__39672__a,0,null);\n} \nreturn G__39671__delegate.call(this,args);};\nG__39671.cljs$lang$maxFixedArity \x3d 0;\nG__39671.cljs$lang$applyTo \x3d (function (arglist__39673){\nvar args \x3d cljs.core.seq(arglist__39673);\nreturn G__39671__delegate(args);\n});\nG__39671.cljs$core$IFn$_invoke$arity$variadic \x3d G__39671__delegate;\nreturn G__39671;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq39600){\nvar G__39601 \x3d cljs.core.first(seq39600);\nvar seq39600__$1 \x3d cljs.core.next(seq39600);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39601,seq39600__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39610,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39614 \x3d k39610;\nvar G__39614__$1 \x3d (((G__39614 instanceof cljs.core.Keyword))?G__39614.fqn:null);\nswitch (G__39614__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39610,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39615){\nvar vec__39616 \x3d p__39615;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39616,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39616,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39609){\nvar self__ \x3d this;\nvar G__39609__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39609__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39611,other39612){\nvar self__ \x3d this;\nvar this39611__$1 \x3d this;\nreturn (((!((other39612 \x3d\x3d null)))) \x26\x26 ((((this39611__$1.constructor \x3d\x3d\x3d other39612.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39611__$1.seq_num,other39612.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39611__$1.__extmap,other39612.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39610){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__39619 \x3d k39610;\nvar G__39619__$1 \x3d (((G__39619 instanceof cljs.core.Keyword))?G__39619.fqn:null);\nswitch (G__39619__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39610);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39609){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39620 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39621 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__39620.cljs$core$IFn$_invoke$arity$2 ? pred__39620.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39621) : pred__39620.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39621)))){\nreturn (new intemporal.core.AsyncHandle(G__39609,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39609),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39609){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__39609,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__39613){\nvar extmap__5365__auto__ \x3d (function (){var G__39623 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__39613,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__39613)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39623);\n} else {\nreturn G__39623;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__39613),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__39624 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39624 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39624);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39625 \x3d err;\nif((G__39625 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39625);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e39626){if((e39626 instanceof Error)){\nvar e \x3d e39626;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e39626;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39689 \x3d arguments.length;\nvar i__5750__auto___39690 \x3d (0);\nwhile(true){\nif((i__5750__auto___39690 \x3c len__5749__auto___39689)){\nargs__5755__auto__.push((arguments[i__5750__auto___39690]));\n\nvar G__39691 \x3d (i__5750__auto___39690 + (1));\ni__5750__auto___39690 \x3d G__39691;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__39630){\nvar map__39631 \x3d p__39630;\nvar map__39631__$1 \x3d cljs.core.__destructure_map(map__39631);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39631__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__39632 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39632 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39632);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39633 \x3d err;\nif((G__39633 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39633);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq39627){\nvar G__39628 \x3d cljs.core.first(seq39627);\nvar seq39627__$1 \x3d cljs.core.next(seq39627);\nvar G__39629 \x3d cljs.core.first(seq39627__$1);\nvar seq39627__$2 \x3d cljs.core.next(seq39627__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39628,G__39629,seq39627__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39701 \x3d arguments.length;\nvar i__5750__auto___39702 \x3d (0);\nwhile(true){\nif((i__5750__auto___39702 \x3c len__5749__auto___39701)){\nargs__5755__auto__.push((arguments[i__5750__auto___39702]));\n\nvar G__39703 \x3d (i__5750__auto___39702 + (1));\ni__5750__auto___39702 \x3d G__39703;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq39634){\nvar G__39635 \x3d cljs.core.first(seq39634);\nvar seq39634__$1 \x3d cljs.core.next(seq39634);\nvar G__39636 \x3d cljs.core.first(seq39634__$1);\nvar seq39634__$2 \x3d cljs.core.next(seq39634__$1);\nvar G__39637 \x3d cljs.core.first(seq39634__$2);\nvar seq39634__$3 \x3d cljs.core.next(seq39634__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39635,G__39636,G__39637,seq39634__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39704 \x3d arguments.length;\nvar i__5750__auto___39705 \x3d (0);\nwhile(true){\nif((i__5750__auto___39705 \x3c len__5749__auto___39704)){\nargs__5755__auto__.push((arguments[i__5750__auto___39705]));\n\nvar G__39706 \x3d (i__5750__auto___39705 + (1));\ni__5750__auto___39705 \x3d G__39706;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39643,workflow_id,workflow_fn,args,p__39644){\nvar map__39645 \x3d p__39643;\nvar map__39645__$1 \x3d cljs.core.__destructure_map(map__39645);\nvar engine \x3d map__39645__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39646 \x3d p__39644;\nvar map__39646__$1 \x3d cljs.core.__destructure_map(map__39646);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39646__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39646__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq39638){\nvar G__39639 \x3d cljs.core.first(seq39638);\nvar seq39638__$1 \x3d cljs.core.next(seq39638);\nvar G__39640 \x3d cljs.core.first(seq39638__$1);\nvar seq39638__$2 \x3d cljs.core.next(seq39638__$1);\nvar G__39641 \x3d cljs.core.first(seq39638__$2);\nvar seq39638__$3 \x3d cljs.core.next(seq39638__$2);\nvar G__39642 \x3d cljs.core.first(seq39638__$3);\nvar seq39638__$4 \x3d cljs.core.next(seq39638__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39639,G__39640,G__39641,G__39642,seq39638__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39711 \x3d arguments.length;\nvar i__5750__auto___39712 \x3d (0);\nwhile(true){\nif((i__5750__auto___39712 \x3c len__5749__auto___39711)){\nargs__5755__auto__.push((arguments[i__5750__auto___39712]));\n\nvar G__39713 \x3d (i__5750__auto___39712 + (1));\ni__5750__auto___39712 \x3d G__39713;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__39652){\nvar map__39653 \x3d p__39652;\nvar map__39653__$1 \x3d cljs.core.__destructure_map(map__39653);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39653__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__39654_39718 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39655_39719 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39655_39719);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39654_39718);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq39647){\nvar G__39648 \x3d cljs.core.first(seq39647);\nvar seq39647__$1 \x3d cljs.core.next(seq39647);\nvar G__39649 \x3d cljs.core.first(seq39647__$1);\nvar seq39647__$2 \x3d cljs.core.next(seq39647__$1);\nvar G__39650 \x3d cljs.core.first(seq39647__$2);\nvar seq39647__$3 \x3d cljs.core.next(seq39647__$2);\nvar G__39651 \x3d cljs.core.first(seq39647__$3);\nvar seq39647__$4 \x3d cljs.core.next(seq39647__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39648,G__39649,G__39650,G__39651,seq39647__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__39656_39720 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39657_39721 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39657_39721);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39656_39720);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__39658_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__39658_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39722 \x3d arguments.length;\nvar i__5750__auto___39723 \x3d (0);\nwhile(true){\nif((i__5750__auto___39723 \x3c len__5749__auto___39722)){\nargs__5755__auto__.push((arguments[i__5750__auto___39723]));\n\nvar G__39724 \x3d (i__5750__auto___39723 + (1));\ni__5750__auto___39723 \x3d G__39724;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39660){\nvar map__39661 \x3d p__39660;\nvar map__39661__$1 \x3d cljs.core.__destructure_map(map__39661);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39661__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq39659){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq39659));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__39663 \x3d arguments.length;\nswitch (G__39663) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__39664){\nvar map__39665 \x3d p__39664;\nvar map__39665__$1 \x3d cljs.core.__destructure_map(map__39665);\nvar engine \x3d map__39665__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39665__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39665__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__39666,grace_period_secs){\nvar map__39667 \x3d p__39666;\nvar map__39667__$1 \x3d cljs.core.__destructure_map(map__39667);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39667__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39667__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file diff --git a/resources/migrations/postgres/20260215214002-initial-schema.down.sql b/resources/migrations/postgres/20260215214002-initial-schema.down.sql new file mode 100644 index 0000000..55aeed5 --- /dev/null +++ b/resources/migrations/postgres/20260215214002-initial-schema.down.sql @@ -0,0 +1,5 @@ +DROP TABLE intemporal_signals; +--;; +DROP TABLE intemporal_history; +--;; +DROP TABLE intemporal_workflows; \ No newline at end of file diff --git a/resources/migrations/postgres/20260215214002-initial-schema.up.sql b/resources/migrations/postgres/20260215214002-initial-schema.up.sql new file mode 100644 index 0000000..838fedc --- /dev/null +++ b/resources/migrations/postgres/20260215214002-initial-schema.up.sql @@ -0,0 +1,22 @@ +CREATE TABLE IF NOT EXISTS intemporal_workflows ( + id TEXT PRIMARY KEY, + cancelled BOOLEAN DEFAULT FALSE, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); +--;; +CREATE TABLE IF NOT EXISTS intemporal_history ( + id SERIAL PRIMARY KEY, + workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, + seq INTEGER, + event_type TEXT, + data JSONB, + UNIQUE (workflow_id, seq) +); +--;; +CREATE TABLE IF NOT EXISTS intemporal_signals ( + id SERIAL PRIMARY KEY, + workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, + signal_name TEXT, + payload JSONB, + created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP +); \ No newline at end of file diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index f6ee7e2..c91800d 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -1,5 +1,6 @@ (ns intemporal.store.jdbc (:require [intemporal.protocol :as p] + [migratus.core :as migratus] [next.jdbc :as jdbc] [next.jdbc.prepare :as prepare] [next.jdbc.result-set :as rs] @@ -7,6 +8,27 @@ (:import (org.postgresql.util PGobject) (java.sql PreparedStatement))) +(comment + (let [cfg {:store :database + :migration-dir "migrations/postgres" + :db {:jdbcUrl "jdbc:postgresql://localhost:5432/root?user=root&password=root"}}] + (migratus/rollback cfg) + (migratus/migrate cfg)) + + ;(migratus/create cfg "initial-schema")) + "") + +(defn- migrate! [jdbc-url] + (let [kind (cond + (.startsWith jdbc-url "jdbc:postgresql") :postgres + (.startsWith jdbc-url "jdbc:mariadb") :mariadb + (.startsWith jdbc-url "jdbc:mysql") :mysql + :else (throw (ex-info (format "Unknown jdbc url %s; only postgres and mysql/mariadb supported") {:jdbc-url jdbc-url}))) + cfg {:store :database + :migration-dir (str "migrations/" kind) + :db {:jdbcUrl jdbc-url}}] + (migratus/migrate cfg))) + ;; ============================================================================ ;; JSONB Handling for next.jdbc ;; ============================================================================ @@ -40,30 +62,6 @@ ;; Schema ;; ============================================================================ -(defn create-schema! [ds] - (jdbc/execute! ds [" -CREATE TABLE IF NOT EXISTS intemporal_workflows ( - id TEXT PRIMARY KEY, - cancelled BOOLEAN DEFAULT FALSE, - created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP -);"]) - (jdbc/execute! ds [" -CREATE TABLE IF NOT EXISTS intemporal_history ( - id SERIAL PRIMARY KEY, - workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, - seq INTEGER, - event_type TEXT, - data JSONB, - UNIQUE (workflow_id, seq) -);"]) - (jdbc/execute! ds [" -CREATE TABLE IF NOT EXISTS intemporal_signals ( - id SERIAL PRIMARY KEY, - workflow_id TEXT REFERENCES intemporal_workflows(id) ON DELETE CASCADE, - signal_name TEXT, - payload JSONB, - created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP -);"])) ;; ============================================================================ ;; Postgres Store Implementation @@ -91,9 +89,9 @@ CREATE TABLE IF NOT EXISTS intemporal_signals ( workflow-id]) ;; Insert events (doseq [event events] - (let [seq-num (:seq event) + (let [seq-num (:seq event) event-type (name (:event-type event)) - data (dissoc event :event-type)] + data (dissoc event :event-type)] (jdbc/execute! tx ["INSERT INTO intemporal_history (workflow_id, seq, event_type, data) VALUES (?, ?, ?, ?) ON CONFLICT (workflow_id, seq) DO UPDATE SET event_type = EXCLUDED.event_type, data = EXCLUDED.data" @@ -122,7 +120,7 @@ CREATE TABLE IF NOT EXISTS intemporal_signals ( workflow-id]) (jdbc/execute! tx ["INSERT INTO intemporal_signals (workflow_id, signal_name, payload) VALUES (?, ?, ?)" workflow-id signal-name signal-data])) - + ;; Trigger callback if registered (when-let [callback (get-in @callbacks [workflow-id signal-name])] (future (callback))) @@ -157,8 +155,8 @@ CREATE TABLE IF NOT EXISTS intemporal_signals ( (get-workflow-status [this workflow-id] (let [wf-row (jdbc/execute-one! datasource - ["SELECT cancelled FROM intemporal_workflows WHERE id = ?" - workflow-id])] + ["SELECT cancelled FROM intemporal_workflows WHERE id = ?" + workflow-id])] (cond (nil? wf-row) :not-found (:intemporal_workflows/cancelled wf-row) :cancelled @@ -171,5 +169,10 @@ CREATE TABLE IF NOT EXISTS intemporal_signals ( :workflow-failed :failed :running)))))))) -(defn make-jdbc-store [datasource] - (->JdbcStore datasource (atom {}))) +;; TODO use more complete opts +(defn make-jdbc-store + "Creates a new jdbc store" + [jdbc-url] + (migrate! jdbc-url) + (let [ds (hikari-cp.core/make-datasource {:jdbc-url jdbc-url})] + (->JdbcStore ds (atom {})))) diff --git a/test/intemporal/tests/store/fdb_test.clj b/test/intemporal/tests/store/fdb_test.clj index 640fe55..7b0516f 100644 --- a/test/intemporal/tests/store/fdb_test.clj +++ b/test/intemporal/tests/store/fdb_test.clj @@ -6,14 +6,9 @@ (deftest fdb-store-test (testing "FoundationDB Store Implementation" - (try - (let [db (cfdb/select-api-version 730) - db (cfdb/open db)] + (let [db (cfdb/select-api-version 730) + db (cfdb/open db)] - ;; Run shared suite - (let [store (fdb-store/make-fdb-store db "intemporal-tests")] - (suite/run-store-tests store))) - (catch Exception e - (if (re-find #"FoundationDB" (.getMessage e)) - (println "Skipping FoundationDB Store tests: FDB not available") - (throw e)))))) + ;; Run shared suite + (let [store (fdb-store/make-fdb-store db "intemporal-tests")] + (suite/run-store-tests store))))) diff --git a/test/intemporal/tests/store/jdbc_test.clj b/test/intemporal/tests/store/jdbc_test.clj index 6d8636a..9150f41 100644 --- a/test/intemporal/tests/store/jdbc_test.clj +++ b/test/intemporal/tests/store/jdbc_test.clj @@ -18,17 +18,7 @@ (deftest jdbc-store-test (testing "JDBC Store Implementation" - (try - (ensure-database!) - (let [ds (jdbc/get-datasource db-spec)] - ;; Initialize schema - (jdbc-store/create-schema! ds) + (ensure-database!) + (let [store (jdbc-store/make-jdbc-store db-spec)] + (suite/run-store-tests store)))) - ;; Run shared suite - (let [store (jdbc-store/make-jdbc-store ds)] - (suite/run-store-tests store))) - (catch Exception e - (if (and (instance? java.sql.SQLException e) - (re-find #"Connection refused" (.getMessage e))) - (println "Skipping JDBC Store tests: PostgreSQL not available at" db-spec) - (throw e)))))) From befa553d26a8e2e0813faea1180caa1e2ef73c42 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 22:31:17 +0000 Subject: [PATCH 74/81] fix logging --- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 322 +++++++++---------- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/main.js | 2 +- public/js/shared.js | 10 +- src/intemporal/internal/logging.cljc | 78 +++-- src/intemporal/store/fdb.clj | 6 +- src/intemporal/store/jdbc.clj | 11 +- test/intemporal/tests/store/fdb_test.clj | 2 +- test/intemporal/tests/store/jdbc_test.clj | 2 +- test/logback.xml | 2 +- 11 files changed, 223 insertions(+), 216 deletions(-) diff --git a/public/js/automata.js b/public/js/automata.js index 4eb59c7..d82542d 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__39676 \x3d cljs.core._EQ_;\nvar expr__39677 \x3d event;\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__39676.cljs$core$IFn$_invoke$arity$2 ? pred__39676.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39677) : pred__39676.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__39677)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_39683,reject_fn_39682){\nvar loop_fn_39679 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_39679(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_39680,err_39681){\nif((!((err_39681 \x3d\x3d null)))){\nreturn (reject_fn_39682.cljs$core$IFn$_invoke$arity$1 ? reject_fn_39682.cljs$core$IFn$_invoke$arity$1(err_39681) : reject_fn_39682.call(null,err_39681));\n} else {\nif(promesa.core.recur_QMARK_(res_39680)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_39679,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_39680));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_39683.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_39683.cljs$core$IFn$_invoke$arity$1(res_39680) : resolve_fn_39683.call(null,res_39680));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_39679(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39693(s__39694){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39694__$1 \x3d s__39694;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39694__$1);\nif(temp__5825__auto__){\nvar s__39694__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39694__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39694__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39696 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39695 \x3d (0);\nwhile(true){\nif((i__39695 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39695);\ncljs.core.chunk_append(b__39696,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39757 \x3d (i__39695 + (1));\ni__39695 \x3d G__39757;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39696),intemporal$automata$render_table_BANG__$_iter__39693(cljs.core.chunk_rest(s__39694__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39696),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39694__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__39693(cljs.core.rest(s__39694__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__39707(s__39708){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39708__$1 \x3d s__39708;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39708__$1);\nif(temp__5825__auto__){\nvar s__39708__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39708__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39708__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39710 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39709 \x3d (0);\nwhile(true){\nif((i__39709 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39709);\ncljs.core.chunk_append(b__39710,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(s__39715){\nreturn (new cljs.core.LazySeq(null,((function (i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39715__$1 \x3d s__39715;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39715__$1);\nif(temp__5825__auto____$1){\nvar s__39715__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39715__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39715__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39717 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39716 \x3d (0);\nwhile(true){\nif((i__39716 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39716);\ncljs.core.chunk_append(b__39717,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39762 \x3d (i__39716 + (1));\ni__39716 \x3d G__39762;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39717),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(cljs.core.chunk_rest(s__39715__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39717),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39715__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39714(cljs.core.rest(s__39715__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39709,r,c__5501__auto__,size__5502__auto__,b__39710,s__39708__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39763 \x3d (i__39709 + (1));\ni__39709 \x3d G__39763;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39710),intemporal$automata$render_table_BANG__$_iter__39707(cljs.core.chunk_rest(s__39708__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39710),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39708__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39708__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(s__39726){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39726__$1 \x3d s__39726;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39726__$1);\nif(temp__5825__auto____$1){\nvar s__39726__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39726__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39726__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39728 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39727 \x3d (0);\nwhile(true){\nif((i__39727 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39727);\ncljs.core.chunk_append(b__39728,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39764 \x3d (i__39727 + (1));\ni__39727 \x3d G__39764;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39728),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(cljs.core.chunk_rest(s__39726__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39728),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39726__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__39707_$_iter__39725(cljs.core.rest(s__39726__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39708__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__39707(cljs.core.rest(s__39708__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx39734 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39738 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39739 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39739);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39738);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39740 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39741 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39741);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39740);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39745 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39746 \x3d workflow_ctx39734;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39746);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39747 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39748 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39749 \x3d workflow_ctx39747;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39749);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39748);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39745);\n}})());\n}));\n}));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__70203 \x3d cljs.core._EQ_;\nvar expr__70204 \x3d event;\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_70213,reject_fn_70212){\nvar loop_fn_70209 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_70209(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_70210,err_70211){\nif((!((err_70211 \x3d\x3d null)))){\nreturn (reject_fn_70212.cljs$core$IFn$_invoke$arity$1 ? reject_fn_70212.cljs$core$IFn$_invoke$arity$1(err_70211) : reject_fn_70212.call(null,err_70211));\n} else {\nif(promesa.core.recur_QMARK_(res_70210)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_70209,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_70210));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_70213.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_70213.cljs$core$IFn$_invoke$arity$1(res_70210) : resolve_fn_70213.call(null,res_70210));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_70209(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__70230(s__70231){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70231__$1 \x3d s__70231;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70231__$1);\nif(temp__5825__auto__){\nvar s__70231__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70231__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70231__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70233 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70232 \x3d (0);\nwhile(true){\nif((i__70232 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70232);\ncljs.core.chunk_append(b__70233,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__70312 \x3d (i__70232 + (1));\ni__70232 \x3d G__70312;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70233),intemporal$automata$render_table_BANG__$_iter__70230(cljs.core.chunk_rest(s__70231__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70233),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70231__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__70230(cljs.core.rest(s__70231__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__70239(s__70240){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70240__$1 \x3d s__70240;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70240__$1);\nif(temp__5825__auto__){\nvar s__70240__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70240__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70240__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70242 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70241 \x3d (0);\nwhile(true){\nif((i__70241 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__70241);\ncljs.core.chunk_append(b__70242,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(s__70249){\nreturn (new cljs.core.LazySeq(null,((function (i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__70249__$1 \x3d s__70249;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70249__$1);\nif(temp__5825__auto____$1){\nvar s__70249__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70249__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__70249__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__70251 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__70250 \x3d (0);\nwhile(true){\nif((i__70250 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__70250);\ncljs.core.chunk_append(b__70251,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70322 \x3d (i__70250 + (1));\ni__70250 \x3d G__70322;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70251),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(cljs.core.chunk_rest(s__70249__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70251),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70249__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(cljs.core.rest(s__70249__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__70323 \x3d (i__70241 + (1));\ni__70241 \x3d G__70323;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70242),intemporal$automata$render_table_BANG__$_iter__70239(cljs.core.chunk_rest(s__70240__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70242),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__70240__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(s__70266){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70266__$1 \x3d s__70266;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70266__$1);\nif(temp__5825__auto____$1){\nvar s__70266__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70266__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70266__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70268 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70267 \x3d (0);\nwhile(true){\nif((i__70267 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70267);\ncljs.core.chunk_append(b__70268,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70327 \x3d (i__70267 + (1));\ni__70267 \x3d G__70327;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70268),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(cljs.core.chunk_rest(s__70266__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70268),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70266__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(cljs.core.rest(s__70266__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__70240__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__70239(cljs.core.rest(s__70240__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx70283 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70284 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70285 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70285);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70284);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70289 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70290 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70290);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70289);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70291 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70292 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70292);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70293 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__70294 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70295 \x3d workflow_ctx70293;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70295);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70294);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70291);\n}})());\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index e603d13..1956185 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -11,7 +11,7 @@ return (1); */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_39780 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_70366 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -29,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_39780(this$,a); +return intemporal$doc$MyActivities$foo$dyn_70366(this$,a); } }); @@ -66,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k39685,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k70215,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__39692 = k39685; -switch (G__39692) { +var G__70220 = k70215; +switch (G__70220) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39685,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70215,else__5326__auto__); } })); @@ -80,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39685,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39697){ -var vec__39698 = p__39697; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70221){ +var vec__70222 = p__70221; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -97,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__39684){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__70214){ var self__ = this; -var G__39684__$1 = this; -return (new cljs.core.RecordIter((0),G__39684__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__70214__$1 = this; +return (new cljs.core.RecordIter((0),G__70214__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -137,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this39686,other39687){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this70216,other70217){ var self__ = this; -var this39686__$1 = this; -return (((!((other39687 == null)))) && ((((this39686__$1.constructor === other39687.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39686__$1.__extmap,other39687.__extmap))))); +var this70216__$1 = this; +return (((!((other70217 == null)))) && ((((this70216__$1.constructor === other70217.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70216__$1.__extmap,other70217.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -153,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k39685){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k70215){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k39685); +return cljs.core.contains_QMARK_(self__.__extmap,k70215); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__39684){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__70214){ var self__ = this; var this__5331__auto____$1 = this; -var pred__39729 = cljs.core.keyword_identical_QMARK_; -var expr__39730 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39684),null)); +var pred__70257 = cljs.core.keyword_identical_QMARK_; +var expr__70258 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70214),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -173,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__39684){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__70214){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__39684,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__70214,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -223,12 +223,12 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__39688){ -var extmap__5365__auto__ = (function (){var G__39733 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39688); -if(cljs.core.record_QMARK_(G__39688)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39733); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__70218){ +var extmap__5365__auto__ = (function (){var G__70279 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__70218); +if(cljs.core.record_QMARK_(G__70218)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70279); } else { -return G__39733; +return G__70279; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); @@ -241,113 +241,113 @@ return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__536 * @implements {cljs.core.IMeta} * @implements {cljs.core.IWithMeta} */ -intemporal.doc.t_intemporal$doc39742 = (function (i,sf,protocols39735,registry39736,meta39743){ +intemporal.doc.t_intemporal$doc70286 = (function (i,sf,protocols70280,registry70281,meta70287){ this.i = i; this.sf = sf; -this.protocols39735 = protocols39735; -this.registry39736 = registry39736; -this.meta39743 = meta39743; +this.protocols70280 = protocols70280; +this.registry70281 = registry70281; +this.meta70287 = meta70287; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }); -(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_39744,meta39743__$1){ +(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_70288,meta70287__$1){ var self__ = this; -var _39744__$1 = this; -return (new intemporal.doc.t_intemporal$doc39742(self__.i,self__.sf,self__.protocols39735,self__.registry39736,meta39743__$1)); +var _70288__$1 = this; +return (new intemporal.doc.t_intemporal$doc70286(self__.i,self__.sf,self__.protocols70280,self__.registry70281,meta70287__$1)); })); -(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_39744){ +(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_70288){ var self__ = this; -var _39744__$1 = this; -return self__.meta39743; +var _70288__$1 = this; +return self__.meta70287; })); -(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); +(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); -(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ +(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ var self__ = this; var this__38237__auto____$1 = this; var f__38238__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); return f__38238__auto__(a); })); -(intemporal.doc.t_intemporal$doc39742.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols39735","protocols39735",-11622702,null),new cljs.core.Symbol(null,"registry39736","registry39736",925937843,null),new cljs.core.Symbol(null,"meta39743","meta39743",1262580585,null)], null); +(intemporal.doc.t_intemporal$doc70286.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols70280","protocols70280",1546016350,null),new cljs.core.Symbol(null,"registry70281","registry70281",473331259,null),new cljs.core.Symbol(null,"meta70287","meta70287",793116919,null)], null); })); -(intemporal.doc.t_intemporal$doc39742.cljs$lang$type = true); +(intemporal.doc.t_intemporal$doc70286.cljs$lang$type = true); -(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc39742"); +(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc70286"); -(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc39742"); +(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ +return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc70286"); })); /** - * Positional factory function for intemporal.doc/t_intemporal$doc39742. + * Positional factory function for intemporal.doc/t_intemporal$doc70286. */ -intemporal.doc.__GT_t_intemporal$doc39742 = (function intemporal$doc$__GT_t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743){ -return (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743)); +intemporal.doc.__GT_t_intemporal$doc70286 = (function intemporal$doc$__GT_t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287){ +return (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287)); }); intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ var sf = intemporal.core.stub(intemporal.doc.activity_fn); -var pr = (function (){var protocols39735 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var registry39736 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var temp__5825__auto___39782 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39735,intemporal.doc.MyActivities); -if(cljs.core.truth_(temp__5825__auto___39782)){ -var impl39737_39783 = temp__5825__auto___39782; -intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39736,(function() { -var G__39784__delegate = function (args__38236__auto__){ -return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39737_39783,args__38236__auto__); +var pr = (function (){var protocols70280 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var registry70281 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var temp__5825__auto___70368 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols70280,intemporal.doc.MyActivities); +if(cljs.core.truth_(temp__5825__auto___70368)){ +var impl70282_70369 = temp__5825__auto___70368; +intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry70281,(function() { +var G__70370__delegate = function (args__38236__auto__){ +return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl70282_70369,args__38236__auto__); }; -var G__39784 = function (var_args){ +var G__70370 = function (var_args){ var args__38236__auto__ = null; if (arguments.length > 0) { -var G__39785__i = 0, G__39785__a = new Array(arguments.length - 0); -while (G__39785__i < G__39785__a.length) {G__39785__a[G__39785__i] = arguments[G__39785__i + 0]; ++G__39785__i;} - args__38236__auto__ = new cljs.core.IndexedSeq(G__39785__a,0,null); +var G__70371__i = 0, G__70371__a = new Array(arguments.length - 0); +while (G__70371__i < G__70371__a.length) {G__70371__a[G__70371__i] = arguments[G__70371__i + 0]; ++G__70371__i;} + args__38236__auto__ = new cljs.core.IndexedSeq(G__70371__a,0,null); } -return G__39784__delegate.call(this,args__38236__auto__);}; -G__39784.cljs$lang$maxFixedArity = 0; -G__39784.cljs$lang$applyTo = (function (arglist__39786){ -var args__38236__auto__ = cljs.core.seq(arglist__39786); -return G__39784__delegate(args__38236__auto__); +return G__70370__delegate.call(this,args__38236__auto__);}; +G__70370.cljs$lang$maxFixedArity = 0; +G__70370.cljs$lang$applyTo = (function (arglist__70372){ +var args__38236__auto__ = cljs.core.seq(arglist__70372); +return G__70370__delegate(args__38236__auto__); }); -G__39784.cljs$core$IFn$_invoke$arity$variadic = G__39784__delegate; -return G__39784; +G__70370.cljs$core$IFn$_invoke$arity$variadic = G__70370__delegate; +return G__70370; })() ,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),"intemporal.doc/foo"], 0)); } else { } -return (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,null)); +return (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,null)); })(); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); -var workflow_ctx39750 = intemporal.internal.context._STAR_workflow_context_STAR_; +var workflow_ctx70299 = intemporal.internal.context._STAR_workflow_context_STAR_; return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39751 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39752 = workflow_ctx39750; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39752); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70300 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__70301 = workflow_ctx70299; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70301); try{return sres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39751); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70300); }})()),(function (v1){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39753 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39754 = workflow_ctx39750; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39754); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70302 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__70303 = workflow_ctx70299; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70303); try{return pres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39753); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70302); }})()),(function (v2){ -return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39755 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39756 = workflow_ctx39750; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39756); +return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70304 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__70305 = workflow_ctx70299; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70305); try{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39755); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70304); }})()); })); })); @@ -361,25 +361,25 @@ return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ var header = new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"event-type","event-type",319722813),new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.Keyword(null,"timestamp","timestamp",579478971),new cljs.core.Keyword(null,"seq","seq",-1817803783),new cljs.core.Keyword(null,"activity-name","activity-name",-294600638),new cljs.core.Keyword(null,"result","result",1415092211)], null); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39758(s__39759){ +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__70318(s__70319){ return (new cljs.core.LazySeq(null,(function (){ -var s__39759__$1 = s__39759; +var s__70319__$1 = s__70319; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__39759__$1); +var temp__5825__auto__ = cljs.core.seq(s__70319__$1); if(temp__5825__auto__){ -var s__39759__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__39759__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39759__$2); +var s__70319__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__70319__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__70319__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39761 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39760 = (0); +var b__70321 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__70320 = (0); while(true){ -if((i__39760 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__39760); -cljs.core.chunk_append(b__39761,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__70320 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__70320); +cljs.core.chunk_append(b__70321,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__39787 = (i__39760 + (1)); -i__39760 = G__39787; +var G__70373 = (i__70320 + (1)); +i__70320 = G__70373; continue; } else { return true; @@ -387,13 +387,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39761),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.chunk_rest(s__39759__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__70321),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.chunk_rest(s__70319__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39761),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__70321),null); } } else { -var h = cljs.core.first(s__39759__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.rest(s__39759__$2))); +var h = cljs.core.first(s__70319__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.rest(s__70319__$2))); } } else { return null; @@ -404,42 +404,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__39765(s__39766){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__70328(s__70329){ return (new cljs.core.LazySeq(null,(function (){ -var s__39766__$1 = s__39766; +var s__70329__$1 = s__70329; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__39766__$1); +var temp__5825__auto__ = cljs.core.seq(s__70329__$1); if(temp__5825__auto__){ -var s__39766__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__39766__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39766__$2); +var s__70329__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__70329__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__70329__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39768 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39767 = (0); +var b__70331 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__70330 = (0); while(true){ -if((i__39767 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__39767); -cljs.core.chunk_append(b__39768,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(s__39770){ -return (new cljs.core.LazySeq(null,((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){ +if((i__70330 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__70330); +cljs.core.chunk_append(b__70331,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(s__70340){ +return (new cljs.core.LazySeq(null,((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__39770__$1 = s__39770; +var s__70340__$1 = s__70340; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__39770__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__70340__$1); if(temp__5825__auto____$1){ -var s__39770__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__39770__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__39770__$2); +var s__70340__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__70340__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__70340__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__39772 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__39771 = (0); +var b__70342 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__70341 = (0); while(true){ -if((i__39771 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__39771); -cljs.core.chunk_append(b__39772,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__70341 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__70341); +cljs.core.chunk_append(b__70342,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__39788 = (i__39771 + (1)); -i__39771 = G__39788; +var G__70374 = (i__70341 + (1)); +i__70341 = G__70374; continue; } else { return true; @@ -447,28 +447,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39772),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.chunk_rest(s__39770__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__70342),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.chunk_rest(s__70340__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39772),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__70342),null); } } else { -var h = cljs.core.first(s__39770__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.rest(s__39770__$2))); +var h = cljs.core.first(s__70340__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.rest(s__70340__$2))); } } else { return null; } break; } -});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead)) +});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead)) +});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__39789 = (i__39767 + (1)); -i__39767 = G__39789; +var G__70375 = (i__70330 + (1)); +i__70330 = G__70375; continue; } else { return true; @@ -476,32 +476,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39768),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.chunk_rest(s__39766__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__70331),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.chunk_rest(s__70329__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39768),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__70331),null); } } else { -var r = cljs.core.first(s__39766__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__39766__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(s__39774){ +var r = cljs.core.first(s__70329__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__70329__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(s__70351){ return (new cljs.core.LazySeq(null,(function (){ -var s__39774__$1 = s__39774; +var s__70351__$1 = s__70351; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__39774__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__70351__$1); if(temp__5825__auto____$1){ -var s__39774__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__39774__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__39774__$2); +var s__70351__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__70351__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__70351__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__39776 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__39775 = (0); +var b__70353 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__70352 = (0); while(true){ -if((i__39775 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__39775); -cljs.core.chunk_append(b__39776,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__70352 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__70352); +cljs.core.chunk_append(b__70353,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__39790 = (i__39775 + (1)); -i__39775 = G__39790; +var G__70376 = (i__70352 + (1)); +i__70352 = G__70376; continue; } else { return true; @@ -509,13 +509,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__39776),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.chunk_rest(s__39774__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__70353),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.chunk_rest(s__70351__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__39776),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__70353),null); } } else { -var h = cljs.core.first(s__39774__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.rest(s__39774__$2))); +var h = cljs.core.first(s__70351__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.rest(s__70351__$2))); } } else { return null; @@ -523,10 +523,10 @@ return null; break; } }),null,null)); -});})(r,s__39766__$2,temp__5825__auto__,header,thead)) +});})(r,s__70329__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.rest(s__39766__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.rest(s__70329__$2))); } } else { return null; @@ -549,11 +549,11 @@ return console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$a intemporal.doc.init = (function intemporal$doc$init(){ var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow",new cljs.core.Keyword(null,"protocols","protocols",-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0)); -return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39777 = intemporal.internal.context._STAR_workflow_context_STAR_; +return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70363 = intemporal.internal.context._STAR_workflow_context_STAR_; return promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){ -var _STAR_workflow_context_STAR__orig_val__39778 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__39779 = workflow_ctx39777; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__39779); +var _STAR_workflow_context_STAR__orig_val__70364 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__70365 = workflow_ctx70363; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70365); try{return (function (r){ console.log("res",cljs.core.clj__GT_js(r)); @@ -562,7 +562,7 @@ intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$v return intemporal.doc.render_tables_BANG_(engine,"my-wflow"); })(res__37297__auto__); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__39778); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70364); }})); })(),(function (r){ console.error("error",r); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index 302356f..9f42139 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k39685","else__5326__auto__","G__39692","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__39697","vec__39698","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__39684","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this39686","other39687","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__39729","cljs.core/keyword-identical?","expr__39730","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__39688","extmap__5365__auto__","G__39733","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols39735","intemporal.internal.context/current-context","registry39736","temp__5825__auto__","impl39737","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc39742","sres","pres","workflow-ctx39750","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__39751","*workflow-context*-temp-val__39752","*workflow-context*-orig-val__39753","*workflow-context*-temp-val__39754","*workflow-context*-orig-val__39755","*workflow-context*-temp-val__39756","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__39759","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__39761","cljs.core/chunk-buffer","i__39760","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__39758","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__39766","b__39768","i__39767","iter__39765","r","s__39770","b__39772","i__39771","iter__39769","s__39774","b__39776","i__39775","iter__39773","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx39777","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__39778","*workflow-context*-temp-val__39779","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k70215","else__5326__auto__","G__70220","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__70221","vec__70222","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__70214","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this70216","other70217","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__70257","cljs.core/keyword-identical?","expr__70258","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__70218","extmap__5365__auto__","G__70279","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols70280","intemporal.internal.context/current-context","registry70281","temp__5825__auto__","impl70282","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc70286","sres","pres","workflow-ctx70299","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__70300","*workflow-context*-temp-val__70301","*workflow-context*-orig-val__70302","*workflow-context*-temp-val__70303","*workflow-context*-orig-val__70304","*workflow-context*-temp-val__70305","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__70319","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__70321","cljs.core/chunk-buffer","i__70320","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__70318","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__70329","b__70331","i__70330","iter__70328","r","s__70340","b__70342","i__70341","iter__70339","s__70351","b__70353","i__70352","iter__70350","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx70363","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__70364","*workflow-context*-temp-val__70365","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 81ab193..93bb431 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_39780 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_39780(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39685,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39692 \x3d k39685;\nswitch (G__39692) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39685,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39697){\nvar vec__39698 \x3d p__39697;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39698,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39684){\nvar self__ \x3d this;\nvar G__39684__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39684__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39686,other39687){\nvar self__ \x3d this;\nvar this39686__$1 \x3d this;\nreturn (((!((other39687 \x3d\x3d null)))) \x26\x26 ((((this39686__$1.constructor \x3d\x3d\x3d other39687.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39686__$1.__extmap,other39687.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39685){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39685);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39684){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39729 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39730 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39684),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39684){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__39684,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__39688){\nvar extmap__5365__auto__ \x3d (function (){var G__39733 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__39688);\nif(cljs.core.record_QMARK_(G__39688)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39733);\n} else {\nreturn G__39733;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc39742 \x3d (function (i,sf,protocols39735,registry39736,meta39743){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols39735 \x3d protocols39735;\nthis.registry39736 \x3d registry39736;\nthis.meta39743 \x3d meta39743;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_39744,meta39743__$1){\nvar self__ \x3d this;\nvar _39744__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc39742(self__.i,self__.sf,self__.protocols39735,self__.registry39736,meta39743__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc39742.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_39744){\nvar self__ \x3d this;\nvar _39744__$1 \x3d this;\nreturn self__.meta39743;\n}));\n\n(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc39742.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc39742.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols39735\x22,\x22protocols39735\x22,-11622702,null),new cljs.core.Symbol(null,\x22registry39736\x22,\x22registry39736\x22,925937843,null),new cljs.core.Symbol(null,\x22meta39743\x22,\x22meta39743\x22,1262580585,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc39742\x22);\n\n(intemporal.doc.t_intemporal$doc39742.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc39742\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc39742.\n */\nintemporal.doc.__GT_t_intemporal$doc39742 \x3d (function intemporal$doc$__GT_t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743){\nreturn (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,meta39743));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols39735 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry39736 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___39782 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols39735,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___39782)){\nvar impl39737_39783 \x3d temp__5825__auto___39782;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry39736,(function() { \nvar G__39784__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl39737_39783,args__38236__auto__);\n};\nvar G__39784 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39785__i \x3d 0, G__39785__a \x3d new Array(arguments.length - 0);\nwhile (G__39785__i \x3c G__39785__a.length) {G__39785__a[G__39785__i] \x3d arguments[G__39785__i + 0]; ++G__39785__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__39785__a,0,null);\n} \nreturn G__39784__delegate.call(this,args__38236__auto__);};\nG__39784.cljs$lang$maxFixedArity \x3d 0;\nG__39784.cljs$lang$applyTo \x3d (function (arglist__39786){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__39786);\nreturn G__39784__delegate(args__38236__auto__);\n});\nG__39784.cljs$core$IFn$_invoke$arity$variadic \x3d G__39784__delegate;\nreturn G__39784;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc39742(i,sf,protocols39735,registry39736,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx39750 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39751 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39752 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39752);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39751);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39753 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39754 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39754);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39753);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__39755 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39756 \x3d workflow_ctx39750;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39756);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39755);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39758(s__39759){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39759__$1 \x3d s__39759;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39759__$1);\nif(temp__5825__auto__){\nvar s__39759__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39759__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39759__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39761 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39760 \x3d (0);\nwhile(true){\nif((i__39760 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39760);\ncljs.core.chunk_append(b__39761,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__39787 \x3d (i__39760 + (1));\ni__39760 \x3d G__39787;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39761),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.chunk_rest(s__39759__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39761),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39759__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__39758(cljs.core.rest(s__39759__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__39765(s__39766){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39766__$1 \x3d s__39766;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__39766__$1);\nif(temp__5825__auto__){\nvar s__39766__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__39766__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39766__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39768 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39767 \x3d (0);\nwhile(true){\nif((i__39767 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__39767);\ncljs.core.chunk_append(b__39768,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(s__39770){\nreturn (new cljs.core.LazySeq(null,((function (i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__39770__$1 \x3d s__39770;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39770__$1);\nif(temp__5825__auto____$1){\nvar s__39770__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39770__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__39770__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__39772 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__39771 \x3d (0);\nwhile(true){\nif((i__39771 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__39771);\ncljs.core.chunk_append(b__39772,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39788 \x3d (i__39771 + (1));\ni__39771 \x3d G__39788;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39772),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.chunk_rest(s__39770__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39772),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39770__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39769(cljs.core.rest(s__39770__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__39767,r,c__5501__auto__,size__5502__auto__,b__39768,s__39766__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__39789 \x3d (i__39767 + (1));\ni__39767 \x3d G__39789;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39768),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.chunk_rest(s__39766__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39768),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__39766__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__39766__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(s__39774){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__39774__$1 \x3d s__39774;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__39774__$1);\nif(temp__5825__auto____$1){\nvar s__39774__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__39774__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__39774__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__39776 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__39775 \x3d (0);\nwhile(true){\nif((i__39775 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__39775);\ncljs.core.chunk_append(b__39776,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__39790 \x3d (i__39775 + (1));\ni__39775 \x3d G__39790;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39776),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.chunk_rest(s__39774__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__39776),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__39774__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__39765_$_iter__39773(cljs.core.rest(s__39774__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__39766__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__39765(cljs.core.rest(s__39766__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx39777 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__39778 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__39779 \x3d workflow_ctx39777;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__39779);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__39778);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_70366 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_70366(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k70215,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__70220 \x3d k70215;\nswitch (G__70220) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70215,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70221){\nvar vec__70222 \x3d p__70221;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__70214){\nvar self__ \x3d this;\nvar G__70214__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__70214__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this70216,other70217){\nvar self__ \x3d this;\nvar this70216__$1 \x3d this;\nreturn (((!((other70217 \x3d\x3d null)))) \x26\x26 ((((this70216__$1.constructor \x3d\x3d\x3d other70217.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70216__$1.__extmap,other70217.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k70215){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k70215);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__70214){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__70257 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__70258 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70214),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__70214){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__70214,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__70218){\nvar extmap__5365__auto__ \x3d (function (){var G__70279 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__70218);\nif(cljs.core.record_QMARK_(G__70218)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70279);\n} else {\nreturn G__70279;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc70286 \x3d (function (i,sf,protocols70280,registry70281,meta70287){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols70280 \x3d protocols70280;\nthis.registry70281 \x3d registry70281;\nthis.meta70287 \x3d meta70287;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_70288,meta70287__$1){\nvar self__ \x3d this;\nvar _70288__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc70286(self__.i,self__.sf,self__.protocols70280,self__.registry70281,meta70287__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_70288){\nvar self__ \x3d this;\nvar _70288__$1 \x3d this;\nreturn self__.meta70287;\n}));\n\n(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc70286.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols70280\x22,\x22protocols70280\x22,1546016350,null),new cljs.core.Symbol(null,\x22registry70281\x22,\x22registry70281\x22,473331259,null),new cljs.core.Symbol(null,\x22meta70287\x22,\x22meta70287\x22,793116919,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc70286\x22);\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc70286\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc70286.\n */\nintemporal.doc.__GT_t_intemporal$doc70286 \x3d (function intemporal$doc$__GT_t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287){\nreturn (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols70280 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry70281 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___70368 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols70280,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___70368)){\nvar impl70282_70369 \x3d temp__5825__auto___70368;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry70281,(function() { \nvar G__70370__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl70282_70369,args__38236__auto__);\n};\nvar G__70370 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__70371__i \x3d 0, G__70371__a \x3d new Array(arguments.length - 0);\nwhile (G__70371__i \x3c G__70371__a.length) {G__70371__a[G__70371__i] \x3d arguments[G__70371__i + 0]; ++G__70371__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__70371__a,0,null);\n} \nreturn G__70370__delegate.call(this,args__38236__auto__);};\nG__70370.cljs$lang$maxFixedArity \x3d 0;\nG__70370.cljs$lang$applyTo \x3d (function (arglist__70372){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__70372);\nreturn G__70370__delegate(args__38236__auto__);\n});\nG__70370.cljs$core$IFn$_invoke$arity$variadic \x3d G__70370__delegate;\nreturn G__70370;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx70299 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70300 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70301 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70301);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70300);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70302 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70303 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70303);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70302);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70304 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70305 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70305);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70304);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__70318(s__70319){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70319__$1 \x3d s__70319;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70319__$1);\nif(temp__5825__auto__){\nvar s__70319__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70319__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70319__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70321 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70320 \x3d (0);\nwhile(true){\nif((i__70320 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70320);\ncljs.core.chunk_append(b__70321,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__70373 \x3d (i__70320 + (1));\ni__70320 \x3d G__70373;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70321),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.chunk_rest(s__70319__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70321),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70319__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.rest(s__70319__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__70328(s__70329){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70329__$1 \x3d s__70329;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70329__$1);\nif(temp__5825__auto__){\nvar s__70329__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70329__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70329__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70331 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70330 \x3d (0);\nwhile(true){\nif((i__70330 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__70330);\ncljs.core.chunk_append(b__70331,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(s__70340){\nreturn (new cljs.core.LazySeq(null,((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__70340__$1 \x3d s__70340;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70340__$1);\nif(temp__5825__auto____$1){\nvar s__70340__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70340__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__70340__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__70342 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__70341 \x3d (0);\nwhile(true){\nif((i__70341 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__70341);\ncljs.core.chunk_append(b__70342,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70374 \x3d (i__70341 + (1));\ni__70341 \x3d G__70374;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70342),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.chunk_rest(s__70340__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70342),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70340__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.rest(s__70340__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__70375 \x3d (i__70330 + (1));\ni__70330 \x3d G__70375;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70331),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.chunk_rest(s__70329__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70331),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__70329__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(s__70351){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70351__$1 \x3d s__70351;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70351__$1);\nif(temp__5825__auto____$1){\nvar s__70351__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70351__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70351__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70353 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70352 \x3d (0);\nwhile(true){\nif((i__70352 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70352);\ncljs.core.chunk_append(b__70353,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70376 \x3d (i__70352 + (1));\ni__70352 \x3d G__70376;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70353),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.chunk_rest(s__70351__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70353),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70351__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.rest(s__70351__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__70329__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.rest(s__70329__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70363 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__70364 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70365 \x3d workflow_ctx70363;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70365);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70364);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index 368876f..d5f5cc2 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1607,11 +1607,11 @@ SHADOW_ENV.evalLoad("taoensso.telemere.impl.js", true, "goog.provide(\x27taoenss SHADOW_ENV.evalLoad("taoensso.telemere.utils.js", true, "goog.provide(\x27taoensso.telemere.utils\x27);\n/**\n * `:info` -\x3e \x22INFO\x22,\n * `5` -\x3e \x22LEVEL:5\x22, etc.\n */\ntaoensso.telemere.utils.format_level \x3d taoensso.encore.signals.format_level;\n\n/**\n * `:foo.bar/baz` -\x3e \x22::baz\x22, etc.\n */\ntaoensso.telemere.utils.format_id \x3d taoensso.encore.signals.format_id;\n/**\n * Alpha, subject to change.\n * Returns a (fn nano-uid [root?]) that returns a random nano-style uid string like:\n * \x22r76-B8LoIPs5lBG1_Uhdy\x22 - 126 bit (21 char) root uid\n * \x22tMEYoZH0K-\x22 - 60 bit (10 char) non-root (child) uid\n */\ntaoensso.telemere.utils.nano_uid_fn \x3d (function taoensso$telemere$utils$nano_uid_fn(var_args){\nvar G__36284 \x3d arguments.length;\nswitch (G__36284) {\ncase 0:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36286){\nvar map__36287 \x3d p__36286;\nvar map__36287__$1 \x3d cljs.core.__destructure_map(map__36287);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36287__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36287__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(21));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36287__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(10));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nreturn (function taoensso$telemere$utils$nano_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,root_len__$1);\n} else {\nreturn taoensso.encore.nanoid.cljs$core$IFn$_invoke$arity$2(secure_QMARK_,child_len__$1);\n}\n});\n}));\n\n(taoensso.telemere.utils.nano_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:\n * \x2205039666eb9dc3206475f44ab9f3d843\x22 - 128 bit (32 char) root uid\n * \x22721fcef639a51513\x22 - 64 bit (16 char) non-root (child) uid\n */\ntaoensso.telemere.utils.hex_uid_fn \x3d (function taoensso$telemere$utils$hex_uid_fn(var_args){\nvar G__36289 \x3d arguments.length;\nswitch (G__36289) {\ncase 0:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36290){\nvar map__36291 \x3d p__36290;\nvar map__36291__$1 \x3d cljs.core.__destructure_map(map__36291);\nvar secure_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36291__$1,new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718));\nvar root_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36291__$1,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),(32));\nvar child_len \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36291__$1,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),(16));\nvar root_len__$1 \x3d cljs.core.long$(root_len);\nvar child_len__$1 \x3d cljs.core.long$(child_len);\nvar rand_bytes_fn \x3d (cljs.core.truth_(secure_QMARK_)?cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,true):cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.rand_bytes,false));\nvar hex_uid_root \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),root_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nvar hex_uid_child \x3d taoensso.encore.rand_id_fn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22chars\x22,\x22chars\x22,-1094630317),new cljs.core.Keyword(null,\x22hex-lowercase\x22,\x22hex-lowercase\x22,1090135664),new cljs.core.Keyword(null,\x22len\x22,\x22len\x22,1423657078),child_len__$1,new cljs.core.Keyword(null,\x22rand-bytes-fn\x22,\x22rand-bytes-fn\x22,501267911),rand_bytes_fn], null));\nreturn (function taoensso$telemere$utils$hex_uid(root_QMARK_){\nif(cljs.core.truth_(root_QMARK_)){\nreturn hex_uid_root();\n} else {\nreturn hex_uid_child();\n}\n});\n}));\n\n(taoensso.telemere.utils.hex_uid_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Private, don\x27t use.\n * Returns (fn uid [root?]) for given uid kind.\n */\ntaoensso.telemere.utils.parse_uid_fn \x3d (function taoensso$telemere$utils$parse_uid_fn(kind){\nvar G__36292 \x3d kind;\nvar G__36292__$1 \x3d (((G__36292 instanceof cljs.core.Keyword))?G__36292.fqn:null);\nswitch (G__36292__$1) {\ncase \x22uuid\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid();\n});\n\nbreak;\ncase \x22uuid-str\x22:\nreturn (function (_root_QMARK_){\nreturn taoensso.encore.uuid_str.cljs$core$IFn$_invoke$arity$0();\n});\n\nbreak;\ncase \x22default\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true], null));\n\nbreak;\ndefault:\nvar or__5025__auto__ \x3d ((cljs.core.vector_QMARK_(kind))?(function (){var vec__36293 \x3d kind;\nvar kind__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(0),null);\nvar root_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(1),null);\nvar child_len \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36293,(2),null);\nvar G__36296 \x3d kind__$1;\nvar G__36296__$1 \x3d (((G__36296 instanceof cljs.core.Keyword))?G__36296.fqn:null);\nswitch (G__36296__$1) {\ncase \x22nano/insecure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22nano/secure\x22:\nreturn taoensso.telemere.utils.nano_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/insecure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),false,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ncase \x22hex/secure\x22:\nreturn taoensso.telemere.utils.hex_uid_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22secure?\x22,\x22secure?\x22,-368029718),true,new cljs.core.Keyword(null,\x22root-len\x22,\x22root-len\x22,-204417175),root_len,new cljs.core.Keyword(null,\x22child-len\x22,\x22child-len\x22,1548141543),child_len], null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [122,7], null),kind,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22uid-fn\x22,\x22taoensso.telemere.utils/uid-fn\x22,790130699,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 11, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22insecure\x22,\x22nano/insecure\x22,-1399463185),\x22null\x22,new cljs.core.Keyword(null,\x22uuid-str\x22,\x22uuid-str\x22,358395442),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22insecure\x22,\x22hex/insecure\x22,-1411913130),\x22null\x22,new cljs.core.Keyword(\x22nano\x22,\x22secure\x22,\x22nano/secure\x22,174489112),\x22null\x22,new cljs.core.Keyword(null,\x22uuid\x22,\x22uuid\x22,-2145095719),\x22null\x22,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),new cljs.core.Symbol(null,\x22\x3croot-len\x3e\x22,\x22\x3croot-len\x3e\x22,-540063912,null),new cljs.core.Symbol(null,\x22\x3cchild-len\x3e\x22,\x22\x3cchild-len\x3e\x22,-1454733286,null)], null),\x22null\x22,new cljs.core.Keyword(\x22hex\x22,\x22secure\x22,\x22hex/secure\x22,177509789),\x22null\x22], null), null)], null));\n}\n\n}\n});\n/**\n * Single system newline\n */\ntaoensso.telemere.utils.newline \x3d \x22\\n\x22;\n\n/**\n * Prints given arg to an edn string readable with `read-edn`.\n */\ntaoensso.telemere.utils.pr_edn \x3d taoensso.encore.pr_edn;\n\n/**\n * Returns a random UUID string of given length (max 36).\n * Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.\n */\ntaoensso.telemere.utils.uuid_str \x3d taoensso.encore.uuid_str;\n\n/**\n * Returns given Cljs argument as JSON string.\n */\ntaoensso.telemere.utils.pr_json \x3d taoensso.encore.pr_json;\n/**\n * Returns JavaScript console logger to match given signal level:\n * `:debug` -\x3e `js/console.debug`,\n * `:error` -\x3e `js/console.error`, etc.\n * \n * Defaults to `js.console.log` for unmatched signal levels.\n * NB: assumes that `js/console` exists, handler constructors should check first!\n */\ntaoensso.telemere.utils.js_console_logger \x3d (function taoensso$telemere$utils$js_console_logger(level){\nvar G__36297 \x3d level;\nvar G__36297__$1 \x3d (((G__36297 instanceof cljs.core.Keyword))?G__36297.fqn:null);\nswitch (G__36297__$1) {\ncase \x22trace\x22:\nreturn console.debug;\n\nbreak;\ncase \x22debug\x22:\nreturn console.debug;\n\nbreak;\ncase \x22info\x22:\nreturn console.info;\n\nbreak;\ncase \x22warn\x22:\nreturn console.warn;\n\nbreak;\ncase \x22error\x22:\nreturn console.error;\n\nbreak;\ncase \x22fatal\x22:\nreturn console.error;\n\nbreak;\ncase \x22report\x22:\nreturn console.info;\n\nbreak;\ndefault:\nreturn console.log;\n\n}\n});\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.utils.error_signal_QMARK_ \x3d (function taoensso$telemere$utils$error_signal_QMARK_(signal){\nvar and__5023__auto__ \x3d signal;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.boolean$((function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.keyword_identical_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803)),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d (function (){var G__36298 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar G__36298__$1 \x3d (((G__36298 instanceof cljs.core.Keyword))?G__36298.fqn:null);\nswitch (G__36298__$1) {\ncase \x22error\x22:\ncase \x22fatal\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error?\x22,\x22error?\x22,-460689159));\n}\n}\n}\n})());\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal without app-level kvs or `:kvs` key.\n */\ntaoensso.telemere.utils.remove_signal_kvs \x3d (function taoensso$telemere$utils$remove_signal_kvs(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar kvs \x3d temp__5823__auto__;\nreturn cljs.core.reduce_kv((function (m,k,_v){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);\n}),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492)),kvs);\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with nil-valued keys removed.\n */\ntaoensso.telemere.utils.remove_signal_nils \x3d (function taoensso$telemere$utils$remove_signal_nils(signal){\nif(taoensso.encore.editable_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(m,k);\n} else {\nreturn m;\n}\n}),cljs.core.transient$(signal),signal));\n} else {\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:msg_` value forced (realized when a delay).\n */\ntaoensso.telemere.utils.force_signal_msg \x3d (function taoensso$telemere$utils$force_signal_msg(signal){\nvar temp__5823__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar msg_ \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),cljs.core.force(msg_));\n} else {\nreturn signal;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns given signal with possible `:error` replaced by\n * [{:keys [type msg data]} ...] cause chain.\n */\ntaoensso.telemere.utils.expand_signal_error \x3d (function taoensso$telemere$utils$expand_signal_error(signal){\nvar b2__30646__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(b2__30646__auto__)){\nvar error \x3d b2__30646__auto__;\nvar b2__30646__auto____$1 \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),error);\nif(cljs.core.truth_(b2__30646__auto____$1)){\nvar chain \x3d b2__30646__auto____$1;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(signal,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),chain);\n} else {\nreturn signal;\n}\n} else {\nreturn signal;\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn format [nanosecs]) that:\n * - Takes a long nanoseconds (e.g. runtime).\n * - Returns a human-readable string like:\n * \x221.00m\x22, \x224.20s\x22, \x22340ms\x22, \x22822\u03bcs\x22, etc.\n */\ntaoensso.telemere.utils.format_nsecs_fn \x3d (function taoensso$telemere$utils$format_nsecs_fn(var_args){\nvar G__36303 \x3d arguments.length;\nswitch (G__36303) {\ncase 0:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36305){\nvar map__36306 \x3d p__36305;\nvar map__36306__$1 \x3d cljs.core.__destructure_map(map__36306);\nvar _opts \x3d map__36306__$1;\nreturn (function taoensso$telemere$utils$format_nsecs(nanosecs){\nreturn taoensso.encore.format_nsecs(nanosecs);\n});\n}));\n\n(taoensso.telemere.utils.format_nsecs_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Experimental, subject to change without notice.\n * \n * Returns a (fn format [instant]) that:\n * - Takes a platform instant (`java.time.Instant` or `js/Date`).\n * - Returns a formatted human-readable instant string.\n * \n * Options:\n * `:formatter`\n * Clj: `java.time.format.DateTimeFormatter`\n * Cljs: `goog.i18n.DateTimeFormat`\n * \n * Defaults to `ISO8601` formatter (`YYYY-MM-DDTHH:mm:ss.sssZ`),\n * e.g.: \x222011-12-03T10:15:130Z\x22.\n * \n * `:zone` (Clj only) `java.time.ZoneOffset` (defaults to UTC).\n * Note that zone may be ignored by some `DateTimeFormatter`s,\n * including the default (`DateTimeFormatter/ISO_INSTANT`)!\n */\ntaoensso.telemere.utils.format_inst_fn \x3d taoensso.encore.format_inst_fn;\n/**\n * Alpha, subject to change.\n * Returns a (fn format [error]) that:\n * - Takes a platform error (`Throwable` or `js/Error`).\n * - Returns a human-readable error string.\n */\ntaoensso.telemere.utils.format_error_fn \x3d (function taoensso$telemere$utils$format_error_fn(var_args){\nvar G__36308 \x3d arguments.length;\nswitch (G__36308) {\ncase 0:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36309){\nvar map__36310 \x3d p__36309;\nvar map__36310__$1 \x3d cljs.core.__destructure_map(map__36310);\nvar _opts \x3d map__36310__$1;\nvar nl \x3d \x22\\n\x22;\nvar nls \x3d taoensso.encore.newlines;\nreturn (function taoensso$telemere$utils$format_error(error){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_map(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar em \x3d temp__5825__auto__;\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_ \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(taoensso.encore.sb_append,sb);\nvar map__36311 \x3d em;\nvar map__36311__$1 \x3d cljs.core.__destructure_map(map__36311);\nvar chain \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36311__$1,new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029));\nvar trace \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36311__$1,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415));\nvar s_PLUS_cause_36389 \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,[nls,\x22Caused: \x22].join(\x27\x27));\ns_PLUS_(\x22Root: \x22);\n\nvar seq__36312_36390 \x3d cljs.core.seq(cljs.core.rseq(chain));\nvar chunk__36313_36391 \x3d null;\nvar count__36314_36392 \x3d (0);\nvar i__36315_36393 \x3d (0);\nwhile(true){\nif((i__36315_36393 \x3c count__36314_36392)){\nvar map__36318_36394 \x3d chunk__36313_36391.cljs$core$IIndexed$_nth$arity$2(null,i__36315_36393);\nvar map__36318_36395__$1 \x3d cljs.core.__destructure_map(map__36318_36394);\nvar type_36396 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_36397 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_36398 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36318_36395__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_36389(type_36396,\x22 - \x22,msg_36397);\n\nif(cljs.core.truth_(data_36398)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_36398));\n} else {\n}\n\n\nvar G__36399 \x3d seq__36312_36390;\nvar G__36400 \x3d chunk__36313_36391;\nvar G__36401 \x3d count__36314_36392;\nvar G__36402 \x3d (i__36315_36393 + (1));\nseq__36312_36390 \x3d G__36399;\nchunk__36313_36391 \x3d G__36400;\ncount__36314_36392 \x3d G__36401;\ni__36315_36393 \x3d G__36402;\ncontinue;\n} else {\nvar temp__5825__auto___36403__$1 \x3d cljs.core.seq(seq__36312_36390);\nif(temp__5825__auto___36403__$1){\nvar seq__36312_36404__$1 \x3d temp__5825__auto___36403__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__36312_36404__$1)){\nvar c__5548__auto___36405 \x3d cljs.core.chunk_first(seq__36312_36404__$1);\nvar G__36406 \x3d cljs.core.chunk_rest(seq__36312_36404__$1);\nvar G__36407 \x3d c__5548__auto___36405;\nvar G__36408 \x3d cljs.core.count(c__5548__auto___36405);\nvar G__36409 \x3d (0);\nseq__36312_36390 \x3d G__36406;\nchunk__36313_36391 \x3d G__36407;\ncount__36314_36392 \x3d G__36408;\ni__36315_36393 \x3d G__36409;\ncontinue;\n} else {\nvar map__36319_36410 \x3d cljs.core.first(seq__36312_36404__$1);\nvar map__36319_36411__$1 \x3d cljs.core.__destructure_map(map__36319_36410);\nvar type_36412 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar msg_36413 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar data_36414 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36319_36411__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ns_PLUS_cause_36389(type_36412,\x22 - \x22,msg_36413);\n\nif(cljs.core.truth_(data_36414)){\ns_PLUS_(nl,\x22data: \x22,taoensso.encore.pr_edn_STAR_(data_36414));\n} else {\n}\n\n\nvar G__36415 \x3d cljs.core.next(seq__36312_36404__$1);\nvar G__36416 \x3d null;\nvar G__36417 \x3d (0);\nvar G__36418 \x3d (0);\nseq__36312_36390 \x3d G__36415;\nchunk__36313_36391 \x3d G__36416;\ncount__36314_36392 \x3d G__36417;\ni__36315_36393 \x3d G__36418;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core.truth_(trace)){\ns_PLUS_(nl,nl,\x22Root stack trace:\x22,nl);\n\ns_PLUS_(trace);\n} else {\n}\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.format_error_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn preamble [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a signal preamble ?string like:\n * \x222024-03-26T11:14:51.806Z INFO EVENT Hostname taoensso.telemere[2,21] ::ev-id msg\x22\n * \n * Options:\n * `:format-inst-fn` - (fn format [instant]) \x3d\x3e string.\n * `:format-id-fn` --- (fn format [ns id]) \x3d\x3e string.\n * `:format-msg-fn` -- (fn format [msg]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_preamble_fn \x3d (function taoensso$telemere$utils$signal_preamble_fn(var_args){\nvar G__36321 \x3d arguments.length;\nswitch (G__36321) {\ncase 0:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36322){\nvar map__36323 \x3d p__36322;\nvar map__36323__$1 \x3d cljs.core.__destructure_map(map__36323);\nvar format_inst_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-inst-fn\x22,\x22format-inst-fn\x22,518148350),(taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.utils.format_inst_fn.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.utils.format_inst_fn.call(null)));\nvar format_id_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-id-fn\x22,\x22format-id-fn\x22,513589829),taoensso.telemere.utils.format_id);\nvar format_msg_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36323__$1,new cljs.core.Keyword(null,\x22format-msg-fn\x22,\x22format-msg-fn\x22,-1387049398),cljs.core.identity);\nreturn (function taoensso$telemere$utils$signal_preamble(signal){\nvar map__36324 \x3d signal;\nvar map__36324__$1 \x3d cljs.core.__destructure_map(map__36324);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar msg_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36324__$1,new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000));\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS_spc \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,\x22 \x22);\nif(cljs.core.truth_(inst)){\nvar temp__5825__auto___36422 \x3d format_inst_fn;\nif(cljs.core.truth_(temp__5825__auto___36422)){\nvar ff_36423 \x3d temp__5825__auto___36422;\ns_PLUS_spc((ff_36423.cljs$core$IFn$_invoke$arity$1 ? ff_36423.cljs$core$IFn$_invoke$arity$1(inst) : ff_36423.call(null,inst)));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(level)){\ns_PLUS_spc((taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1 ? taoensso.telemere.utils.format_level.cljs$core$IFn$_invoke$arity$1(level) : taoensso.telemere.utils.format_level.call(null,level)));\n} else {\n}\n\nif(cljs.core.truth_(kind)){\ns_PLUS_spc((taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1 ? taoensso.encore.signals.upper_qn.cljs$core$IFn$_invoke$arity$1(kind) : taoensso.encore.signals.upper_qn.call(null,kind)));\n} else {\n}\n\nif(cljs.core.truth_(ns)){\ns_PLUS_spc(taoensso.encore.signals.format_callsite.cljs$core$IFn$_invoke$arity$2(ns,cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112))));\n} else {\n}\n\nif(cljs.core.truth_(id)){\nvar temp__5825__auto___36425 \x3d format_id_fn;\nif(cljs.core.truth_(temp__5825__auto___36425)){\nvar ff_36426 \x3d temp__5825__auto___36425;\ns_PLUS_spc((ff_36426.cljs$core$IFn$_invoke$arity$2 ? ff_36426.cljs$core$IFn$_invoke$arity$2(ns,id) : ff_36426.call(null,ns,id)));\n} else {\n}\n} else {\n}\n\nvar b2__30646__auto___36427 \x3d format_msg_fn;\nif(cljs.core.truth_(b2__30646__auto___36427)){\nvar ff_36428 \x3d b2__30646__auto___36427;\nvar b2__30646__auto___36429__$1 \x3d cljs.core.force(msg_);\nif(cljs.core.truth_(b2__30646__auto___36429__$1)){\nvar msg_36430 \x3d b2__30646__auto___36429__$1;\ns_PLUS_spc((ff_36428.cljs$core$IFn$_invoke$arity$1 ? ff_36428.cljs$core$IFn$_invoke$arity$1(msg_36430) : ff_36428.call(null,msg_36430)));\n} else {\n}\n} else {\n}\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\n}));\n\n(taoensso.telemere.utils.signal_preamble_fn.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.utils.format_parent \x3d (function taoensso$telemere$utils$format_parent(ns,p__36325){\nvar map__36326 \x3d p__36325;\nvar map__36326__$1 \x3d cljs.core.__destructure_map(map__36326);\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36326__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar uid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36326__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nif(cljs.core.truth_(id)){\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id))),new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2 ? taoensso.telemere.utils.format_id.cljs$core$IFn$_invoke$arity$2(ns,id) : taoensso.telemere.utils.format_id.call(null,ns,id)))], null);\n}\n} else {\nif(cljs.core.truth_(uid)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400),uid], null);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Alpha, subject to change.\n * Returns a (fn content [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal content ?string (incl. data, ctx, etc.).\n * \n * Options:\n * `:raw-error?` ------ Retain unformatted error? (default false)\n * `:incl-keys` ------- Subset of signal keys to retain from those\n * otherwise excluded by default: #{:kvs :host :thread}\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * `:format-error-fn` - (fn [error]) \x3d\x3e string.\n */\ntaoensso.telemere.utils.signal_content_fn \x3d (function taoensso$telemere$utils$signal_content_fn(var_args){\nvar G__36328 \x3d arguments.length;\nswitch (G__36328) {\ncase 0:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36329){\nvar map__36330 \x3d p__36329;\nvar map__36330__$1 \x3d cljs.core.__destructure_map(map__36330);\nvar raw_error_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36330__$1,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36330__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36330__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_error_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36330__$1,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),taoensso.telemere.utils.format_error_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nvar err_start \x3d [nl,\x22\x3c\x3c\x3c error \x3c\x3c\x3c\x22,nl].join(\x27\x27);\nvar err_stop \x3d [nl,\x22\x3e\x3e\x3e error \x3e\x3e\x3e\x22].join(\x27\x27);\nvar incl_kvs_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function() {\nvar taoensso$telemere$utils$signal_content \x3d null;\nvar taoensso$telemere$utils$signal_content__1 \x3d (function (signal){\nvar sb \x3d taoensso.encore.str_builder.cljs$core$IFn$_invoke$arity$0();\nvar s_PLUS__PLUS_ \x3d taoensso.encore.sb_appender.cljs$core$IFn$_invoke$arity$2(sb,nl);\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3(signal,s_PLUS__PLUS_,taoensso.encore.pr_edn_STAR_);\n\nif((taoensso.encore.sb_length(sb) \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\nvar taoensso$telemere$utils$signal_content__3 \x3d (function (signal,append_fn,val_fn){\nvar af \x3d append_fn;\nvar vf \x3d val_fn;\nvar map__36331_36433 \x3d signal;\nvar map__36331_36434__$1 \x3d cljs.core.__destructure_map(map__36331_36433);\nvar ns_36435 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar uid_36436 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22uid\x22,\x22uid\x22,-1447769400));\nvar parent_36437 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\nvar root_36438 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453));\nvar data_36439 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar kvs_36440 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar ctx_36441 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22ctx\x22,\x22ctx\x22,-493610118));\nvar sample_36442 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36331_36434__$1,new cljs.core.Keyword(null,\x22sample\x22,\x22sample\x22,79023601));\nif(cljs.core.truth_(sample_36442)){\nvar G__36332_36444 \x3d \x22 sample: \x22;\nvar G__36333_36445 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(sample_36442) : vf.call(null,sample_36442));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36332_36444,G__36333_36445) : af.call(null,G__36332_36444,G__36333_36445));\n} else {\n}\n\nif(cljs.core.truth_(uid_36436)){\nvar G__36334_36446 \x3d \x22 uid: \x22;\nvar G__36335_36447 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(uid_36436) : vf.call(null,uid_36436));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36334_36446,G__36335_36447) : af.call(null,G__36334_36446,G__36335_36447));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d parent_36437;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(parent_36437,root_36438);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__36336_36448 \x3d \x22 parent: \x22;\nvar G__36337_36449 \x3d (function (){var G__36338 \x3d taoensso.telemere.utils.format_parent(ns_36435,parent_36437);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__36338) : vf.call(null,G__36338));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36336_36448,G__36337_36449) : af.call(null,G__36336_36448,G__36337_36449));\n} else {\n}\n\nif(cljs.core.truth_(root_36438)){\nvar G__36339_36451 \x3d \x22 root: \x22;\nvar G__36340_36452 \x3d (function (){var G__36341 \x3d taoensso.telemere.utils.format_parent(ns_36435,root_36438);\nreturn (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(G__36341) : vf.call(null,G__36341));\n})();\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36339_36451,G__36340_36452) : af.call(null,G__36339_36451,G__36340_36452));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(data_36439))){\nvar G__36342_36454 \x3d \x22 data: \x22;\nvar G__36343_36455 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(data_36439) : vf.call(null,data_36439));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36342_36454,G__36343_36455) : af.call(null,G__36342_36454,G__36343_36455));\n} else {\n}\n\nif(cljs.core.truth_(taoensso.encore.not_empty_coll(ctx_36441))){\nvar G__36344_36456 \x3d \x22 ctx: \x22;\nvar G__36345_36457 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(ctx_36441) : vf.call(null,ctx_36441));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36344_36456,G__36345_36457) : af.call(null,G__36344_36456,G__36345_36457));\n} else {\n}\n\nif((cljs.core.truth_(kvs_36440)?incl_kvs_QMARK_:false)){\nvar G__36346_36458 \x3d \x22 kvs: \x22;\nvar G__36347_36459 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(kvs_36440) : vf.call(null,kvs_36440));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36346_36458,G__36347_36459) : af.call(null,G__36346_36458,G__36347_36459));\n} else {\n}\n\nvar map__36348 \x3d signal;\nvar map__36348__$1 \x3d cljs.core.__destructure_map(map__36348);\nvar run_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36348__$1,new cljs.core.Keyword(null,\x22run-form\x22,\x22run-form\x22,405647397));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36348__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nif(cljs.core.truth_(run_form)){\nvar map__36349_36460 \x3d signal;\nvar map__36349_36461__$1 \x3d cljs.core.__destructure_map(map__36349_36460);\nvar run_val_36462 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36349_36461__$1,new cljs.core.Keyword(null,\x22run-val\x22,\x22run-val\x22,-304326520));\nvar run_nsecs_36463 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36349_36461__$1,new cljs.core.Keyword(null,\x22run-nsecs\x22,\x22run-nsecs\x22,32621724));\nvar run_time_36464 \x3d (cljs.core.truth_(run_nsecs_36463)?(function (){var temp__5825__auto__ \x3d format_nsecs_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nreturn (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(run_nsecs_36463) : ff.call(null,run_nsecs_36463));\n} else {\nreturn null;\n}\n})():null);\nvar run_info_36465 \x3d (cljs.core.truth_(error)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_36464,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_36463], null):new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),run_form,new cljs.core.Keyword(null,\x22time\x22,\x22time\x22,1385887882),run_time_36464,new cljs.core.Keyword(null,\x22nsecs\x22,\x22nsecs\x22,1510077757),run_nsecs_36463,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),run_val_36462], null));\nvar G__36350_36467 \x3d \x22 run: \x22;\nvar G__36351_36468 \x3d (vf.cljs$core$IFn$_invoke$arity$1 ? vf.cljs$core$IFn$_invoke$arity$1(run_info_36465) : vf.call(null,run_info_36465));\n(af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(G__36350_36467,G__36351_36468) : af.call(null,G__36350_36467,G__36351_36468));\n} else {\n}\n\nif(cljs.core.truth_(error)){\nif(cljs.core.truth_(raw_error_QMARK_)){\nreturn (af.cljs$core$IFn$_invoke$arity$2 ? af.cljs$core$IFn$_invoke$arity$2(\x22 error: \x22,error) : af.call(null,\x22 error: \x22,error));\n} else {\nvar temp__5825__auto__ \x3d format_error_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ff \x3d temp__5825__auto__;\nvar G__36352 \x3d err_start;\nvar G__36353 \x3d (ff.cljs$core$IFn$_invoke$arity$1 ? ff.cljs$core$IFn$_invoke$arity$1(error) : ff.call(null,error));\nvar G__36354 \x3d err_stop;\nreturn (af.cljs$core$IFn$_invoke$arity$3 ? af.cljs$core$IFn$_invoke$arity$3(G__36352,G__36353,G__36354) : af.call(null,G__36352,G__36353,G__36354));\n} else {\nreturn null;\n}\n}\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$utils$signal_content \x3d function(signal,append_fn,val_fn){\nswitch(arguments.length){\ncase 1:\nreturn taoensso$telemere$utils$signal_content__1.call(this,signal);\ncase 3:\nreturn taoensso$telemere$utils$signal_content__3.call(this,signal,append_fn,val_fn);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$utils$signal_content__1;\ntaoensso$telemere$utils$signal_content.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$telemere$utils$signal_content__3;\nreturn taoensso$telemere$utils$signal_content;\n})()\n}));\n\n(taoensso.telemere.utils.signal_content_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.utils.clean_signal_fn \x3d (function taoensso$telemere$utils$clean_signal_fn(var_args){\nvar G__36356 \x3d arguments.length;\nswitch (G__36356) {\ncase 0:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36357){\nvar map__36358 \x3d p__36357;\nvar map__36358__$1 \x3d cljs.core.__destructure_map(map__36358);\nvar opts \x3d map__36358__$1;\nvar incl_kvs_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-kvs?\x22,\x22incl-kvs?\x22,1936239040));\nvar incl_nils_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-nils?\x22,\x22incl-nils?\x22,-1704506526));\nvar incl_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36358__$1,new cljs.core.Keyword(null,\x22incl-keys\x22,\x22incl-keys\x22,625658308));\nvar assoc_BANG__STAR_ \x3d ((cljs.core.not(incl_nils_QMARK_))?(function (m,k,v){\nif((v \x3d\x3d null)){\nreturn m;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n}):cljs.core.assoc_BANG_);\nvar incl_schema_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22schema\x22,\x22schema\x22,-1582001791));\nvar incl_kvs_key_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22kvs\x22,\x22kvs\x22,958455492));\nvar incl_host_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167));\nvar incl_thread_QMARK_ \x3d cljs.core.contains_QMARK_(incl_keys,new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524));\nreturn (function taoensso$telemere$utils$clean_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m,k,v){\nvar G__36363 \x3d k;\nvar G__36363__$1 \x3d (((G__36363 instanceof cljs.core.Keyword))?G__36363.fqn:null);\nswitch (G__36363__$1) {\ncase \x22data\x22:\ncase \x22run-nsecs\x22:\ncase \x22ctx\x22:\ncase \x22kind\x22:\ncase \x22id\x22:\ncase \x22root\x22:\ncase \x22sample\x22:\ncase \x22level\x22:\ncase \x22ns\x22:\ncase \x22uid\x22:\ncase \x22run-val\x22:\ncase \x22coords\x22:\ncase \x22parent\x22:\ncase \x22inst\x22:\ncase \x22run-form\x22:\ncase \x22end-inst\x22:\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n\nbreak;\ncase \x22error\x22:\nvar temp__5823__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as-map\x22,\x22as-map\x22,633645847),v);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar chain \x3d temp__5823__auto__;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,chain);\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22msg_\x22:\nvar G__36364 \x3d m;\nvar G__36365 \x3d k;\nvar G__36366 \x3d cljs.core.force(v);\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(G__36364,G__36365,G__36366) : assoc_BANG__STAR_.call(null,G__36364,G__36365,G__36366));\n\nbreak;\ncase \x22_otel-context\x22:\nreturn m;\n\nbreak;\ncase \x22schema\x22:\nif(incl_schema_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22kvs\x22:\nif(incl_kvs_key_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22thread\x22:\nif(incl_thread_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ncase \x22host\x22:\nif(incl_host_QMARK_){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n\nbreak;\ndefault:\nif(cljs.core.truth_(incl_kvs_QMARK_)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nif(cljs.core.contains_QMARK_(incl_keys,k)){\nreturn (assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3 ? assoc_BANG__STAR_.cljs$core$IFn$_invoke$arity$3(m,k,v) : assoc_BANG__STAR_.call(null,m,k,v));\n} else {\nreturn m;\n}\n}\n\n}\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),signal));\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.clean_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.utils.pr_signal_fn \x3d (function taoensso$telemere$utils$pr_signal_fn(var_args){\nvar G__36368 \x3d arguments.length;\nswitch (G__36368) {\ncase 0:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36369){\nvar map__36370 \x3d p__36369;\nvar map__36370__$1 \x3d cljs.core.__destructure_map(map__36370);\nvar opts \x3d map__36370__$1;\nvar pr_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22pr-fn\x22,\x22pr-fn\x22,2001500794),new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885));\nvar clean_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22clean-fn\x22,\x22clean-fn\x22,-1262646726),taoensso.telemere.utils.clean_signal_fn.cljs$core$IFn$_invoke$arity$0());\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36370__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar nl \x3d taoensso.telemere.utils.newline;\nvar pr_fn__$1 \x3d (function (){var G__36371 \x3d pr_fn;\nvar G__36371__$1 \x3d (((G__36371 instanceof cljs.core.Keyword))?G__36371.fqn:null);\nswitch (G__36371__$1) {\ncase \x22edn\x22:\nreturn taoensso.telemere.utils.pr_edn;\n\nbreak;\ncase \x22json\x22:\nreturn taoensso.telemere.utils.pr_json;\n\nbreak;\ndefault:\nif(cljs.core.fn_QMARK_(pr_fn)){\nreturn pr_fn;\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.telemere.utils\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [762,16], null),pr_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pr-fn\x22,\x22pr-fn\x22,-652934975,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.telemere.utils\x22,\x22pr-signal-fn\x22,\x22taoensso.telemere.utils/pr-signal-fn\x22,-829484633,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22unary-fn\x22,\x22unary-fn\x22,1332940686,null),\x22null\x22,new cljs.core.Keyword(null,\x22edn\x22,\x22edn\x22,1317840885),\x22null\x22,new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),\x22null\x22], null), null)], null));\n}\n\n}\n})();\nreturn (function taoensso$telemere$utils$pr_signal(signal){\nif(cljs.core.map_QMARK_(signal)){\nif(cljs.core.truth_(incl_newline_QMARK_)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__36373 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__36373) : pr_fn__$1.call(null,G__36373));\n})()),nl].join(\x27\x27);\n} else {\nvar G__36374 \x3d (clean_fn.cljs$core$IFn$_invoke$arity$1 ? clean_fn.cljs$core$IFn$_invoke$arity$1(signal) : clean_fn.call(null,signal));\nreturn (pr_fn__$1.cljs$core$IFn$_invoke$arity$1 ? pr_fn__$1.cljs$core$IFn$_invoke$arity$1(G__36374) : pr_fn__$1.call(null,G__36374));\n}\n} else {\nreturn null;\n}\n});\n}));\n\n(taoensso.telemere.utils.pr_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.utils.format_signal_fn \x3d (function taoensso$telemere$utils$format_signal_fn(var_args){\nvar G__36376 \x3d arguments.length;\nswitch (G__36376) {\ncase 0:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36377){\nvar map__36378 \x3d p__36377;\nvar map__36378__$1 \x3d cljs.core.__destructure_map(map__36378);\nvar incl_newline_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22incl-newline?\x22,\x22incl-newline?\x22,1384416974),true);\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar content_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36378__$1,new cljs.core.Keyword(null,\x22content-fn\x22,\x22content-fn\x22,-1280686114),taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$0());\nvar nl \x3d taoensso.telemere.utils.newline;\nreturn (function taoensso$telemere$utils$format_signal(signal){\nvar preamble \x3d (cljs.core.truth_(preamble_fn)?(preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)):null);\nvar content \x3d (cljs.core.truth_(content_fn)?(content_fn.cljs$core$IFn$_invoke$arity$1 ? content_fn.cljs$core$IFn$_invoke$arity$1(signal) : content_fn.call(null,signal)):null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d preamble;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn content;\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),nl,cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(preamble),cljs.core.str.cljs$core$IFn$_invoke$arity$1(content),(cljs.core.truth_(incl_newline_QMARK_)?nl:null)].join(\x27\x27);\n}\n});\n}));\n\n(taoensso.telemere.utils.format_signal_fn.cljs$lang$maxFixedArity \x3d 1);\n\n"); SHADOW_ENV.evalLoad("taoensso.telemere.consoles.js", true, "goog.provide(\x27taoensso.telemere.consoles\x27);\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.consoles.handler_COLON_console \x3d (function taoensso$telemere$consoles$handler_COLON_console(var_args){\nvar G__36388 \x3d arguments.length;\nswitch (G__36388) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36419){\nvar map__36420 \x3d p__36419;\nvar map__36420__$1 \x3d cljs.core.__destructure_map(map__36420);\nvar output_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36420__$1,new cljs.core.Keyword(null,\x22output-fn\x22,\x22output-fn\x22,1600951539),taoensso.telemere.utils.format_signal_fn.cljs$core$IFn$_invoke$arity$0());\nif((typeof console !\x3d\x3d \x27undefined\x27)){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console__1 \x3d (function (signal){\nvar temp__5825__auto__ \x3d (output_fn.cljs$core$IFn$_invoke$arity$1 ? output_fn.cljs$core$IFn$_invoke$arity$1(signal) : output_fn.call(null,signal));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar output \x3d temp__5825__auto__;\nvar logger \x3d (function (){var G__36424 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(signal,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nreturn (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(G__36424) : js_console_logger.call(null,G__36424));\n})();\nreturn logger.call(logger,cljs.core.str.cljs$core$IFn$_invoke$arity$1(output));\n} else {\nreturn null;\n}\n});\ntaoensso$telemere$consoles$a_handler_COLON_console \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console__0;\ntaoensso$telemere$consoles$a_handler_COLON_console.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console.cljs$lang$maxFixedArity \x3d 1);\n\ntaoensso.telemere.consoles.logger_fn \x3d (function taoensso$telemere$consoles$logger_fn(logger){\nreturn (function() {\nvar G__36472 \x3d null;\nvar G__36472__1 \x3d (function (x1){\nreturn logger.call(logger,x1);\n});\nvar G__36472__2 \x3d (function (x1,x2){\nreturn logger.call(logger,x1,x2);\n});\nvar G__36472__3 \x3d (function (x1,x2,x3){\nreturn logger.call(logger,x1,x2,x3);\n});\nvar G__36472__4 \x3d (function() { \nvar G__36473__delegate \x3d function (x1,x2,x3,more){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(logger,x1,x2,x3,more);\n};\nvar G__36473 \x3d function (x1,x2,x3,var_args){\nvar more \x3d null;\nif (arguments.length \x3e 3) {\nvar G__36474__i \x3d 0, G__36474__a \x3d new Array(arguments.length - 3);\nwhile (G__36474__i \x3c G__36474__a.length) {G__36474__a[G__36474__i] \x3d arguments[G__36474__i + 3]; ++G__36474__i;}\n more \x3d new cljs.core.IndexedSeq(G__36474__a,0,null);\n} \nreturn G__36473__delegate.call(this,x1,x2,x3,more);};\nG__36473.cljs$lang$maxFixedArity \x3d 3;\nG__36473.cljs$lang$applyTo \x3d (function (arglist__36475){\nvar x1 \x3d cljs.core.first(arglist__36475);\narglist__36475 \x3d cljs.core.next(arglist__36475);\nvar x2 \x3d cljs.core.first(arglist__36475);\narglist__36475 \x3d cljs.core.next(arglist__36475);\nvar x3 \x3d cljs.core.first(arglist__36475);\nvar more \x3d cljs.core.rest(arglist__36475);\nreturn G__36473__delegate(x1,x2,x3,more);\n});\nG__36473.cljs$core$IFn$_invoke$arity$variadic \x3d G__36473__delegate;\nreturn G__36473;\n})()\n;\nG__36472 \x3d function(x1,x2,x3,var_args){\nvar more \x3d var_args;\nswitch(arguments.length){\ncase 1:\nreturn G__36472__1.call(this,x1);\ncase 2:\nreturn G__36472__2.call(this,x1,x2);\ncase 3:\nreturn G__36472__3.call(this,x1,x2,x3);\ndefault:\nvar G__36476 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__36477__i \x3d 0, G__36477__a \x3d new Array(arguments.length - 3);\nwhile (G__36477__i \x3c G__36477__a.length) {G__36477__a[G__36477__i] \x3d arguments[G__36477__i + 3]; ++G__36477__i;}\nG__36476 \x3d new cljs.core.IndexedSeq(G__36477__a,0,null);\n}\nreturn G__36472__4.cljs$core$IFn$_invoke$arity$variadic(x1,x2,x3, G__36476);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__36472.cljs$lang$maxFixedArity \x3d 3;\nG__36472.cljs$lang$applyTo \x3d G__36472__4.cljs$lang$applyTo;\nG__36472.cljs$core$IFn$_invoke$arity$1 \x3d G__36472__1;\nG__36472.cljs$core$IFn$_invoke$arity$2 \x3d G__36472__2;\nG__36472.cljs$core$IFn$_invoke$arity$3 \x3d G__36472__3;\nG__36472.cljs$core$IFn$_invoke$arity$variadic \x3d G__36472__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__36472;\n})()\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.consoles.handler_COLON_console_raw \x3d (function taoensso$telemere$consoles$handler_COLON_console_raw(var_args){\nvar G__36443 \x3d arguments.length;\nswitch (G__36443) {\ncase 0:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__36450){\nvar map__36453 \x3d p__36450;\nvar map__36453__$1 \x3d cljs.core.__destructure_map(map__36453);\nvar opts \x3d map__36453__$1;\nvar preamble_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36453__$1,new cljs.core.Keyword(null,\x22preamble-fn\x22,\x22preamble-fn\x22,-900320209),taoensso.telemere.utils.signal_preamble_fn.cljs$core$IFn$_invoke$arity$0());\nvar format_nsecs_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__36453__$1,new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),taoensso.telemere.utils.format_nsecs_fn.cljs$core$IFn$_invoke$arity$0());\nif((((typeof console !\x3d\x3d \x27undefined\x27)) \x26\x26 ((typeof console !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof console.group !\x3d\x3d \x27undefined\x27)))){\nvar js_console_logger \x3d taoensso.telemere.utils.js_console_logger;\nvar content_fn \x3d taoensso.telemere.utils.signal_content_fn.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22format-nsecs-fn\x22,\x22format-nsecs-fn\x22,-1487810716),format_nsecs_fn,new cljs.core.Keyword(null,\x22format-error-fn\x22,\x22format-error-fn\x22,-560488578),null,new cljs.core.Keyword(null,\x22raw-error?\x22,\x22raw-error?\x22,-39485940),true], null));\nreturn (function() {\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw \x3d null;\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__0 \x3d (function (){\nreturn null;\n});\nvar taoensso$telemere$consoles$a_handler_COLON_console_raw__1 \x3d (function (signal){\nvar map__36466 \x3d signal;\nvar map__36466__$1 \x3d cljs.core.__destructure_map(map__36466);\nvar level \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36466__$1,new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36466__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar logger \x3d (js_console_logger.cljs$core$IFn$_invoke$arity$1 ? js_console_logger.cljs$core$IFn$_invoke$arity$1(level) : js_console_logger.call(null,level));\nconsole.group((preamble_fn.cljs$core$IFn$_invoke$arity$1 ? preamble_fn.cljs$core$IFn$_invoke$arity$1(signal) : preamble_fn.call(null,signal)));\n\ncontent_fn(signal,taoensso.telemere.consoles.logger_fn(logger),cljs.core.identity);\n\nvar temp__5825__auto___36480 \x3d (function (){var and__5023__auto__ \x3d error;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn taoensso.truss.ex_root(error).stack;\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___36480)){\nvar stack_36482 \x3d temp__5825__auto___36480;\nlogger.call(logger,stack_36482);\n} else {\n}\n\nreturn console.groupEnd();\n});\ntaoensso$telemere$consoles$a_handler_COLON_console_raw \x3d function(signal){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__0.call(this);\ncase 1:\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw__1.call(this,signal);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__0;\ntaoensso$telemere$consoles$a_handler_COLON_console_raw.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$telemere$consoles$a_handler_COLON_console_raw__1;\nreturn taoensso$telemere$consoles$a_handler_COLON_console_raw;\n})()\n} else {\nreturn null;\n}\n}));\n\n(taoensso.telemere.consoles.handler_COLON_console_raw.cljs$lang$maxFixedArity \x3d 1);\n\n"); SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.telemere\x27);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * See `help:handler-dispatch-opts` for details.\n */\ntaoensso.telemere.default_handler_dispatch_opts \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(taoensso.encore.signals.default_handler_dispatch_opts,new cljs.core.Keyword(null,\x22convey-bindings?\x22,\x22convey-bindings?\x22,1403560206));\ntaoensso.telemere.level_aliases \x3d taoensso.encore.signals.level_aliases;\n\n/**\n * A signal will be provided to a handler iff ALL of the following are true:\n * \n * 1. Call filters pass:\n * a. Compile-time: sample rate, kind, ns, id, level, when form, rate limit\n * b. Runtime: sample rate, kind, ns, id, level, when form, rate limit\n * \n * 2. Handler filters pass:\n * a. Compile-time: not applicable\n * b. Runtime: sample rate, kind, ns, id, level, when fn, rate limit\n * \n * 3. Call transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * 4. Handler transform (fn [signal]) \x3d\x3e ?modified-signal returns non-nil\n * \n * Transform fns provides a flexible way to modify and/or filter signals by\n * arbitrary signal data/content conditions (return nil to skip handling).\n * \n * Call and handler filters are ADDITIVE, so handlers can be MORE but not LESS\n * restrictive than call filters allow. This makes sense: call filters decide\n * if a signal can be created. Handler filters decide if a particular handler\n * is allowed to handle a created signal.\n * \n * Config:\n * \n * To set call filters (1a, 1b):\n * \n * Use:\n * `set-kind-filter!`, `with-kind-filter`\n * `set-ns-filter!`, `with-ns-filter`\n * `set-id-filter!`, `with-id-filter`\n * `set-min-level!`, `with-min-level`\n * \n * or see `help:environmental-config`.\n * \n * To set handler filters (2b) or transform (4):\n * \n * Provide relevant opts when calling `add-handler!` or `with-handler/+`.\n * See `help:handler-dispatch-options` for details.\n * \n * Note: call filters (1a, 1b) should generally be AT LEAST as permissive\n * as handler filters (2b) since they\x27re always applied first.\n * \n * To set call transform (3): use `set-xfn!`, `with-xfn`.\n * \n * Compile-time vs runtime filtering:\n * \n * Compile-time filters are an advanced feature that can be tricky to set\n * and use correctly. Most folks will want ONLY runtime filters.\n * \n * Compile-time filters works by eliding (completely removing the code for)\n * disallowed calls. This means zero performance cost for these calls, but\n * also means that compile-time filters are PERMANENT once applied.\n * \n * So if you set `:info` as the compile-time minimum level, that\x27ll REMOVE\n * CODE for every signal call below `:info` level. To decrease that minimum\n * level, you\x27ll need to rebuild.\n * \n * Compile-time filters can be set ONLY with environmental config\n * (see `help:environmental-config` for details).\n * \n * Signal and handler sampling is multiplicative:\n * \n * Both calls and handlers can have independent sample rates, and these\n * MULTIPLY! If a signal is created with 20% sampling and a handler\n * handles 50% of received signals, then 10% of possible signals will be\n * handled (50% of 20%).\n * \n * When sampling is active, the final (combined multiplicative) rate is\n * helpfully reflected in each signal\x27s `:sample` rate value \u2208\u211d[0,1].\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_filters \x3d \x22See docstring\x22;\n\n/**\n * Signal handlers process created signals to do something with them (analyse them,\n * write them to console/file/queue/db, etc.).\n * \n * Manage handlers with:\n * \n * `get-handlers` - Returns info on registered handlers (dispatch options, etc.)\n * `get-handlers-stats` - Returns stats for registered handlers (handling times, etc.)\n * \n * `add-handler!` - Registers given handler\n * `remove-handler!` - Unregisters given handler\n * \n * `with-handler` - Executes form with ONLY the given handler registered\n * `with-handler+` - Executes form with the given handler (also) registered\n * \n * `stop-handlers!` - Stops registered handlers\n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See the relevant docstrings for details.\n * See `help:handler-dispatch-options` for handler filters, etc.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handlers \x3d \x22See docstring\x22;\n\n/**\n * Dispatch options can be provided for each signal handler when calling\n * `add-handler!` or `with-handler/+`. These options will be merged over the\n * defaults specified by `default-handler-dispatch-opts`.\n * \n * All handlers support the same dispatch options, including:\n * \n * `:async` (Clj only) - may be `nil` (\x3d\x3e synchronous) or map with options:\n * \n * `:buffer-size` (default 1024)\n * Size of request buffer, and the max number of pending requests before\n * configured back-pressure behaviour is triggered (see `:mode`).\n * \n * `:mode` (default `:blocking`)\n * Back-pressure mode \u2208 #{:blocking :dropping :sliding}.\n * Controls what happens when a new request is made while request buffer is full:\n * `:blocking` \x3d\x3e Blocks caller until buffer space is available\n * `:dropping` \x3d\x3e Drops the newest request (noop)\n * `:sliding` \x3d\x3e Drops the oldest request\n * \n * `:n-threads` (default 1)\n * Number of threads to use for executing fns (servicing request buffer).\n * NB handling order guaranteed to be be sequential iff n\x3d1.\n * \n * `:drain-msecs` (default 6000 msecs)\n * Maximum time (in milliseconds) to try allow pending execution requests to\n * complete when stopping handler. nil \x3d\x3e no maximum.\n * \n * `:priority` (default 100)\n * Optional handler priority \u2208\u2124.\n * Handlers will be called in descending priority order (larger ints first).\n * \n * `:track-stats?` (default true)\n * Should handler track statistics (e.g. handling times) for\n * reporting by `get-handlers-stats`?\n * \n * `:sample` (default nil \x3d\x3e no sampling)\n * Optional sample rate \u2208\u211d[0,1], or (fn dyamic-sample-rate []) \x3d\x3e \u211d[0,1].\n * When present, handle only this (random) proportion of signals:\n * 1.0 \x3d\x3e handle 100% of signals (same as nil rate, default)\n * 0.0 \x3d\x3e hanel 0% of signals (noop all)\n * 0.5 \x3d\x3e handle 50% of signals (random)\n * \n * `:kind-filter` - Kind filter as in `set-kind-filter!` (when relevant)\n * `:ns-filter` - Namespace filter as in `set-ns-filter!`\n * `:id-filter` - Id filter as in `set-id-filter!` (when relevant)\n * `:min-level` - Minimum level as in `set-min-level!`\n * \n * ^^ Recall that all handler filters are ADDITIVE: handlers can be MORE\n * (but not LESS) restrictive than call filters allow!\n * \n * `:when-fn` (default nil \x3d\x3e always allow)\n * Optional NULLARY (fn allow? []) that must return truthy for handler to be\n * called. When present, called *after* sampling and other filters, but before\n * rate limiting. Useful for filtering based on external state/context.\n * See `:xfn` for an alternative that takes a signal argument!\n * \n * `:limit` (default nil \x3d\x3e no rate limit)\n * Optional rate limit spec as provided to `taoensso.encore/rate-limiter`,\n * {\x3climit-id\x3e [\x3cn-max-calls\x3e \x3cmsecs-window\x3e]}.\n * \n * Examples:\n * {\x221/sec\x22 [1 1000]} \x3d\x3e Max 1 call per 1000 msecs\n * {\x221/sec\x22 [1 1000]\n * \x2210/min\x22 [10 60000]} \x3d\x3e Max 1 call per 1000 msecs,\n * and 10 calls per 60 secs\n * \n * `:xfn` (default nil \x3d\x3e no transform)\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply before\n * handling signal. When transform returns nil, skips handler.\n * \n * Compose multiple transform fns together with `comp-xfn`.\n * \n * `:error-fn` - (fn [{:keys [handler-id signal error]}]) to call on handler error.\n * `:backp-fn` - (fn [{:keys [handler-id ]}]) to call on handler back-pressure.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can\n * improve these docs!\n */\ntaoensso.telemere.help_COLON_handler_dispatch_options \x3d \x22See docstring\x22;\n\n/**\n * Returns current ?{:keys [compile-time runtime]} filter config.\n */\ntaoensso.telemere.get_filters \x3d (function taoensso$telemere$get_filters(){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)], null));\n});\n\n/**\n * Returns current ?{:keys [compile-time runtime]} minimum call levels\n * for given/current namespace.\n */\ntaoensso.telemere.get_min_levels \x3d (function taoensso$telemere$get_min_levels(var_args){\nvar G__38127 \x3d arguments.length;\nswitch (G__38127) {\ncase 0:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$1 \x3d (function (kind){\nreturn taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2(kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_ns_STAR_));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,ns){\nreturn taoensso.encore.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22compile-time\x22,\x22compile-time\x22,214692584),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(null),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns)),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),taoensso.encore.signals.parse_min_level(cljs.core.get.cljs$core$IFn$_invoke$arity$2(taoensso.encore.force_ref(taoensso.telemere.impl._STAR_rt_call_filter_STAR_),new cljs.core.Keyword(null,\x22min-level\x22,\x22min-level\x22,1634684919)),kind,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns))], null));\n}));\n\n(taoensso.telemere.get_min_levels.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * Returns ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn handler-stats_]}}\n * for all registered signal handlers.\n */\ntaoensso.telemere.get_handlers \x3d (function taoensso$telemere$get_handlers(){\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Alpha, subject to change.\n * Returns ?{\x3chandler-id\x3e {:keys [handling-nsecs counts]}} for all registered\n * signal handlers that have the `:track-stats?` dispatch option enabled\n * (it is by default).\n * \n * Stats include:\n * \n * `:handling-nsecs` - Summary stats of nanosecond handling times, keys:\n * `:min` - Minimum handling time\n * `:max` - Maximum handling time\n * `:mean` - Arithmetic mean handling time\n * `:mad` - Mean absolute deviation of handling time (measure of dispersion)\n * `:var` - Variance of handling time (measure of dispersion)\n * `:p50` - 50th percentile of handling time (50% of times \x3c\x3d this)\n * `:p90` - 90th percentile of handling time (90% of times \x3c\x3d this)\n * `:p99` - 99th percentile of handling time\n * `:last` - Most recent handling time\n * ...\n * \n * `:counts` - Integer counts for handler outcomes, keys (chronologically):\n * \n * `:dropped` - Noop handler calls due to stopped handler\n * `:back-pressure` - Handler calls that experienced (async) back-pressure\n * (possible noop, depending on back-pressure mode)\n * \n * `:sampled` - Noop handler calls due to sample rate\n * `:filtered` - Noop handler calls due to kind/ns/id/level/when filtering\n * `:rate-limited` - Noop handler calls due to rate limit\n * `:disallowed` - Noop handler calls due to sampling/filtering/rate-limiting\n * `:allowed` - Other handler calls (no sampling/filtering/rate-limiting)\n * \n * `:suppressed` - Noop handler calls due to nil transform (xfn) result\n * `:handled` - Handler calls that completed successfully\n * `:errors` - Handler calls that threw an error\n * \n * Note that for performance reasons returned counts are not mutually atomic,\n * e.g. `:sampled` count may be incremented before `:disallowed` count is.\n * \n * Useful for understanding/debugging how your handlers behave in practice,\n * especially when they\x27re under stress (high-volumes, etc.).\n * \n * Handler stats are tracked from the time each handler is last registered\n * (e.g. with an `add-handler!` call).\n */\ntaoensso.telemere.get_handlers_stats \x3d (function taoensso$telemere$get_handlers_stats(){\nreturn taoensso.encore.signals.get_handlers_stats(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n\n/**\n * Sets call kind filter based on given `kind-filter` spec.\n * `kind-filter` may be:\n * \n * - A regex pattern of kind/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_kind_filter_BANG_ \x3d (function taoensso$telemere$set_kind_filter_BANG_(kind_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35641__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35641__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22kind-filter\x22,\x22kind-filter\x22,2030810915),kind_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call namespace filter based on given `ns-filter` spec.\n * `ns-filter` may be:\n * \n * - A namespace.\n * - A regex pattern of namespaces/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_ns_filter_BANG_ \x3d (function taoensso$telemere$set_ns_filter_BANG_(ns_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35653__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35653__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns-filter\x22,\x22ns-filter\x22,108598448),ns_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets call id filter based on given `id-filter` spec.\n * `id-filter` may be:\n * \n * - A regex pattern of id/s to allow\n * - A str/kw/sym to allow, with \x22*\x22 and \x22(.*)\x22 as wildcards:\n * \x22foo.*\x22 will allow \x22foo.bar\x22\n * \x22foo(.*)\x22 will allow \x22foo.bar\x22 and \x22foo\x22\n * \n * - A set/vector of above (allow on any match)\n * - A map, {:allow \x3cspec\x3e :disallow \x3cspec\x3e} with specs as above:\n * If present, `:allow` spec MUST match, AND\n * If present, `:disallow` spec MUST NOT match.\n */\ntaoensso.telemere.set_id_filter_BANG_ \x3d (function taoensso$telemere$set_id_filter_BANG_(id_filter){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old__35659__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old__35659__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22id-filter\x22,\x22id-filter\x22,-572281277),id_filter], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n});\n\n\n/**\n * Sets minimum call level based on given `min-level` spec.\n * `min-level` may be:\n * \n * - nil (\x3d\x3e no minimum level).\n * - A level keyword (see `level-aliases` value for details).\n * - An integer (see `level-aliases` value for details).\n * - (Advanced) [[nf-filter min-level] ...] vector.\n * \n * If non-nil `kind` is provided, then the given minimum level will\n * apply only for that call kind.\n * \n * If `ns-filter` is provided, then the given minimum level will\n * apply only for the namespace/s that match (see `set-ns-filter!`).\n * Order matters if \x3e1 configured ns filter can match an ns! First\n * match wins, see `get-filters` or `get-min-levels` to view/debug\n * (left-\x3eright) match order.\n * \n * Examples:\n * (set-min-level! nil) ; Disable minimum level\n * (set-min-level! :info) ; Set `:info` as minimum level\n * (set-min-level! 100) ; Set 100 as minimum level\n * \n * (set-min-level! nil *ns* :info) ; Set for this ns only\n * (set-min-level! nil [[\x22my.ns\x22 :debug] [\x22* :info]]) ; Advanced\n */\ntaoensso.telemere.set_min_level_BANG_ \x3d (function taoensso$telemere$set_min_level_BANG_(var_args){\nvar G__38129 \x3d arguments.length;\nswitch (G__38129) {\ncase 1:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(null,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,min_level){\nreturn taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3(kind,null,min_level);\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,ns_filter,min_level){\nreturn taoensso.encore.force_ref((taoensso.telemere.impl._STAR_rt_call_filter_STAR_ \x3d (function (old_sf__35681__auto__){\nreturn taoensso.encore.signals.update_spec_filter(old_sf__35681__auto__,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min-level-fn\x22,\x22min-level-fn\x22,-1014940803),(function (old_ml__35682__auto__){\nreturn taoensso.encore.signals.update_min_level(old_ml__35682__auto__,kind,ns_filter,min_level);\n})], null));\n})(taoensso.telemere.impl._STAR_rt_call_filter_STAR_)));\n}));\n\n(taoensso.telemere.set_min_level_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n\n\n/**\n * Registers given signal handler and returns\n * {\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * now registered. If an old handler already existed under the same id, stop it.\n * \n * `handler-fn` should be a fn of exactly 2 arities:\n * \n * [signal] ; Single argument\n * Called asynchronously or synchronously (depending on dispatch options)\n * to do something useful with the given signal.\n * \n * Example actions:\n * Save data to disk or db, `tap\x3e`, log, `put!` to an appropriate\n * `core.async` channel, filter, aggregate, use for a realtime analytics\n * dashboard, examine for outliers or unexpected data, etc.\n * \n * [] ; No arguments\n * Called exactly once when stopping handler to provide an opportunity\n * for handler to flush buffers, close files, etc. May just noop.\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n * \n * See `help:handler-dispatch-options` for handler filters, etc.\n */\ntaoensso.telemere.add_handler_BANG_ \x3d (function taoensso$telemere$add_handler_BANG_(var_args){\nvar G__38131 \x3d arguments.length;\nswitch (G__38131) {\ncase 2:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (handler_id,handler_fn){\nreturn taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(handler_id,handler_fn,null);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (handler_id,handler_fn,dispatch_opts){\nvar removed_handler__35698__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35699__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35700__auto__){\nreturn taoensso.encore.signals.add_handler.cljs$core$IFn$_invoke$arity$5(m__35700__auto__,handler_id,handler_fn,taoensso.telemere.default_handler_dispatch_opts,dispatch_opts);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35698__auto__)){\n(removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35698__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35698__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35699__auto__);\n}));\n\n(taoensso.telemere.add_handler_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Stops and deregisters signal handler with given id, and returns\n * ?{\x3chandler-id\x3e {:keys [dispatch-opts handler-fn]}} for all handlers\n * still registered.\n */\ntaoensso.telemere.remove_handler_BANG_ \x3d (function taoensso$telemere$remove_handler_BANG_(handler_id){\nvar removed_handler__35702__auto__ \x3d taoensso.encore.signals.get_wrapped_handler_fn(taoensso.telemere.impl._STAR_sig_handlers_STAR_,handler_id);\nvar new_handlers_vec__35703__auto__ \x3d (taoensso.telemere.impl._STAR_sig_handlers_STAR_ \x3d (function (m__35704__auto__){\nreturn taoensso.encore.signals.remove_handler(m__35704__auto__,handler_id);\n})(taoensso.telemere.impl._STAR_sig_handlers_STAR_));\nif(cljs.core.truth_(removed_handler__35702__auto__)){\n(removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0 ? removed_handler__35702__auto__.cljs$core$IFn$_invoke$arity$0() : removed_handler__35702__auto__.call(null));\n} else {\n}\n\nreturn taoensso.encore.signals.get_handlers_map.cljs$core$IFn$_invoke$arity$1(new_handlers_vec__35703__auto__);\n});\n\n/**\n * Stops registered signal handlers in parallel by calling each\n * handler-fn with no arguments. This gives each handler the opportunity\n * to flush buffers, close files, etc.\n * \n * Each handler will immediately stop accepting new signals, nooping if called.\n * \n * Blocks to return ?{\x3chandler-id\x3e {:keys [okay error]}}, honouring each\n * handler\x27s `:drain-msecs` value (see `help:handler-dispatch-options`).\n * \n * NB you should always call `stop-handlers!` somewhere appropriate - usually\n * near the end of your `-main` or shutdown procedure, AFTER all other code has\n * completed that could create signals.\n */\ntaoensso.telemere.stop_handlers_BANG_ \x3d (function taoensso$telemere$stop_handlers_BANG_(){\nreturn taoensso.encore.signals.stop_handlers_BANG_(taoensso.telemere.impl._STAR_sig_handlers_STAR_);\n});\n\n/**\n * Optional context (state) attached to all signals.\n * Value may be any type, but is usually nil or a map. Default (root) value is nil.\n * \n * Useful for dynamically attaching arbitrary app-level state to signals.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Tips:\n * - Value may be (or may contain) an atom if you want mutable semantics.\n * - Value may be of form {\x3cscope-id\x3e \x3cdata\x3e} for custom scoping, etc.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_ctx_STAR_ \x3d null;\n\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.telemere.set_ctx_BANG_ \x3d (function taoensso$telemere$set_ctx_BANG_(root_ctx){\nreturn (taoensso.telemere._STAR_ctx_STAR_ \x3d root_ctx);\n});\n\nvar ret__5804__auto___38153 \x3d (function (){\n/**\n * Evaluates given body with given `*ctx*` value. See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx \x3d (function taoensso$telemere$with_ctx(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38154 \x3d arguments.length;\nvar i__5750__auto___38155 \x3d (0);\nwhile(true){\nif((i__5750__auto___38155 \x3c len__5749__auto___38154)){\nargs__5755__auto__.push((arguments[i__5750__auto___38155]));\n\nvar G__38156 \x3d (i__5750__auto___38155 + (1));\ni__5750__auto___38155 \x3d G__38156;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,ctx,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,ctx,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx.cljs$lang$applyTo \x3d (function (seq38132){\nvar G__38133 \x3d cljs.core.first(seq38132);\nvar seq38132__$1 \x3d cljs.core.next(seq38132);\nvar G__38134 \x3d cljs.core.first(seq38132__$1);\nvar seq38132__$2 \x3d cljs.core.next(seq38132__$1);\nvar G__38135 \x3d cljs.core.first(seq38132__$2);\nvar seq38132__$3 \x3d cljs.core.next(seq38132__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38133,G__38134,G__38135,seq38132__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38157 \x3d (function (){\n/**\n * Evaluates given body with updated `*ctx*` value.\n * \n * `update-map-or-fn` may be:\n * - A map to merge with current `*ctx*` value, or\n * - A unary fn to apply to current `*ctx*` value\n * \n * See `*ctx*` for details.\n */\ntaoensso.telemere.with_ctx_PLUS_ \x3d (function taoensso$telemere$with_ctx_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38158 \x3d arguments.length;\nvar i__5750__auto___38159 \x3d (0);\nwhile(true){\nif((i__5750__auto___38159 \x3c len__5749__auto___38158)){\nargs__5755__auto__.push((arguments[i__5750__auto___38159]));\n\nvar G__38160 \x3d (i__5750__auto___38159 + (1));\ni__5750__auto___38159 \x3d G__38160;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,update_map_or_fn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22update-ctx\x22,\x22taoensso.encore.signals/update-ctx\x22,-270251357,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*ctx*\x22,\x22taoensso.telemere/*ctx*\x22,-115690411,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,update_map_or_fn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$applyTo \x3d (function (seq38136){\nvar G__38137 \x3d cljs.core.first(seq38136);\nvar seq38136__$1 \x3d cljs.core.next(seq38136);\nvar G__38138 \x3d cljs.core.first(seq38136__$1);\nvar seq38136__$2 \x3d cljs.core.next(seq38136__$1);\nvar G__38139 \x3d cljs.core.first(seq38136__$2);\nvar seq38136__$3 \x3d cljs.core.next(seq38136__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38137,G__38138,G__38139,seq38136__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_ctx_PLUS_.cljs$lang$macro \x3d true);\n\n\n/**\n * Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply to all signals.\n * When transform returns nil, skips all handlers. Default (root) value is nil.\n * \n * Useful for dynamically filtering and/or modifying signals by signal data/content/etc.\n * \n * Re/bind dynamic value using `with-xfn`, `with-xfn+`, `binding`.\n * Modify root (default) value using `set-xfn!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when using\n * futures, agents, etc.\n * \n * Examples:\n * \n * ;; Filter all signals by returning nil:\n * (t/set-xfn! (fn [signal] (when-not (:skip-me? signal) signal)))\n * \n * ;; Remove key/s from all signals:\n * (t/set-xfn! (fn [signal] (dissoc signal :unwanted-key1 ...)))\n * \n * ;; Remove key/s from signals to specific handler:\n * (t/add-handler! ::my-handler my-handler\n * {:xfn (fn [signal] (dissoc signal :unwanted-key1 ...))})\n * \n * ;; Dynamic transform for specific signal/s:\n * (binding [*xfn* (fn [signal] ...)]\n * (...))\n * \n * Tips:\n * - Compose multiple transform fns together with `comp-xfn`.\n * - Use `get-env` to set default (root) value based on environmental config.\n */\ntaoensso.telemere._STAR_xfn_STAR_ \x3d null;\n\n/**\n * Set `*xfn*` var\x27s default (root) value. See `*xfn*` for details.\n */\ntaoensso.telemere.set_xfn_BANG_ \x3d (function taoensso$telemere$set_xfn_BANG_(_QMARK_root_xfn){\nreturn (taoensso.telemere._STAR_xfn_STAR_ \x3d _QMARK_root_xfn);\n});\n\nvar ret__5804__auto___38161 \x3d (function (){\n/**\n * Evaluates given body with given `*xfn*` value, see `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn \x3d (function taoensso$telemere$with_xfn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38162 \x3d arguments.length;\nvar i__5750__auto___38163 \x3d (0);\nwhile(true){\nif((i__5750__auto___38163 \x3c len__5749__auto___38162)){\nargs__5755__auto__.push((arguments[i__5750__auto___38163]));\n\nvar G__38164 \x3d (i__5750__auto___38163 + (1));\ni__5750__auto___38163 \x3d G__38164;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,_QMARK_xfn,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn.cljs$lang$applyTo \x3d (function (seq38140){\nvar G__38141 \x3d cljs.core.first(seq38140);\nvar seq38140__$1 \x3d cljs.core.next(seq38140);\nvar G__38142 \x3d cljs.core.first(seq38140__$1);\nvar seq38140__$2 \x3d cljs.core.next(seq38140__$1);\nvar G__38143 \x3d cljs.core.first(seq38140__$2);\nvar seq38140__$3 \x3d cljs.core.next(seq38140__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38141,G__38142,G__38143,seq38140__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn.cljs$lang$macro \x3d true);\n\n\nvar ret__5804__auto___38165 \x3d (function (){\n/**\n * Evaluates given body with composed `*xfn*` value.\n * Same as (with-xfn (comp-xfn *xfn* ?xfn) ...).\n * See `*xfn*` for details.\n */\ntaoensso.telemere.with_xfn_PLUS_ \x3d (function taoensso$telemere$with_xfn_PLUS_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38166 \x3d arguments.length;\nvar i__5750__auto___38167 \x3d (0);\nwhile(true){\nif((i__5750__auto___38167 \x3c len__5749__auto___38166)){\nargs__5755__auto__.push((arguments[i__5750__auto___38167]));\n\nvar G__38168 \x3d (i__5750__auto___38167 + (1));\ni__5750__auto___38167 \x3d G__38168;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (_AMPERSAND_form,_AMPERSAND_env,_QMARK_xfn,body){\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22clojure.core\x22,\x22binding\x22,\x22clojure.core/binding\x22,2144622993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),(new cljs.core.List(null,cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.encore.signals\x22,\x22comp-xfn\x22,\x22taoensso.encore.signals/comp-xfn\x22,-1050364423,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(\x22taoensso.telemere\x22,\x22*xfn*\x22,\x22taoensso.telemere/*xfn*\x22,-994507221,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,_QMARK_xfn,null,(1),null))], 0))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)));\n}));\n\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$applyTo \x3d (function (seq38144){\nvar G__38145 \x3d cljs.core.first(seq38144);\nvar seq38144__$1 \x3d cljs.core.next(seq38144);\nvar G__38146 \x3d cljs.core.first(seq38144__$1);\nvar seq38144__$2 \x3d cljs.core.next(seq38144__$1);\nvar G__38147 \x3d cljs.core.first(seq38144__$2);\nvar seq38144__$3 \x3d cljs.core.next(seq38144__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38145,G__38146,G__38147,seq38144__$3);\n}));\n\nreturn null;\n})()\n;\n(taoensso.telemere.with_xfn_PLUS_.cljs$lang$macro \x3d true);\n\n/**\n * Returns true with given probability \u2208 \u211d[0,1].\n */\ntaoensso.telemere.chance \x3d taoensso.encore.chance;\n\n/**\n * Takes a spec of form\n * [ [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e] ...] or ; Unnamed limits\n * {\x3climit-id\x3e [\x3cn-max-reqs\x3e \x3cmsecs-window\x3e]} ; Named limits\n * and returns stateful (fn a-rate-limiter [] [req-id] [command req-id]).\n * \n * Call the returned limiter fn with a request id (any Clojure value!) to\n * enforce limits independently for each id.\n * \n * For example, (limiter-fn \x3cip-address-string\x3e) will return:\n * - Falsey when allowed (all limits pass for given IP), or\n * - Truthy when disallowed (any limits fail for given IP):\n * [\x3cworst-limit-id\x3e \x3cworst-backoff-msecs\x3e {\x3climit-id\x3e \x3cbackoff-msecs\x3e}]\n * \n * Or call the returned limiter fn with an extra command argument:\n * (limiter-fn :rl/peek \x3creq-id) - Check limits WITHOUT incrementing count\n * (limiter-fn :rl/reset \x3creq-id) - Reset all limits for given req-id\n */\ntaoensso.telemere.rate_limiter \x3d taoensso.encore.rate_limiter;\n\n/**\n * Single system newline\n */\ntaoensso.telemere.newline \x3d \x22\\n\x22;\n\n/**\n * Returns a composite unary signal transform fn (xfn).\n * Like `core/comp` but takes only unary fns, applies functions left-\x3eright(!),\n * and composite immediately returns nil if any given fn returns nil.\n */\ntaoensso.telemere.comp_xfn \x3d taoensso.encore.signals.comp_xfn;\n\n/**\n * For use within signal message vectors.\n * Wraps given arguments so that they\x27re spliced when creating message.\n * Useful for conditionally splicing in extra message content, etc.:\n * \n * (signal! {:msg [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22])) \x3c...\x3e]}) or\n * (log! [(when \x3ccond\x3e (msg-splice [\x22Username:\x22 \x22Steve\x22]))])\n * \n * %\x3e {:msg_ \x22Username: Steve\x22}\n */\ntaoensso.telemere.msg_splice \x3d taoensso.telemere.impl.msg_splice;\n\ntaoensso.telemere.msg_skip \x3d taoensso.telemere.impl.msg_skip;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn clean [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a minimal signal (map) ready for printing, etc.\n * \n * Signals are optimized for cheap creation and easy handling, so tend to be\n * verbose and may contain things like nil values and duplicated content.\n * \n * This util efficiently cleans signals of such noise, helping reduce\n * storage/transmission size, and making key info easier to see.\n * \n * Options:\n * `:incl-nils?` - Include signal\x27s keys with nil values? (default false)\n * `:incl-kvs?` -- Include signal\x27s app-level root kvs? (default false)\n * `:incl-keys` -- Subset of signal keys to retain from those otherwise\n * excluded by default: #{:schema :kvs :host :thread}\n */\ntaoensso.telemere.clean_signal_fn \x3d taoensso.telemere.utils.clean_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn format [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a human-readable signal string.\n * \n * Options:\n * `:incl-newline?` - Include terminating system newline? (default true)\n * `:preamble-fn` --- (fn [signal]) \x3d\x3e signal preamble string, see [1]\n * `:content-fn` ---- (fn [signal]) \x3d\x3e signal content string, see [2]\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n * [2] `taoensso.telemere.utils/signal-content-fn`, etc.\n * \n * See also `pr-signal-fn` for an alternative to `format-signal-fn`\n * that produces machine-readable output (edn, JSON, etc.).\n */\ntaoensso.telemere.format_signal_fn \x3d taoensso.telemere.utils.format_signal_fn;\n\n/**\n * Alpha, subject to change.\n * Returns a (fn pr [signal]) that:\n * - Takes a Telemere signal (map).\n * - Returns a machine-readable signal string.\n * \n * Options:\n * `:pr-fn` --------- \u2208 #{\x3cunary-fn\x3e :edn (default) :json (Cljs only)}\n * `:clean-fn` ------ (fn [signal]) \x3d\x3e clean signal map, see [1]\n * `:incl-newline?` - Include terminating system newline? (default true)\n * \n * Examples:\n * \n * ;; To print as edn:\n * (pr-signal-fn {:pr-fn :edn})\n * \n * ;; To print as JSON:\n * ;; Ref. \x3chttps://github.com/metosin/jsonista\x3e (or any alt JSON lib)\n * #?(:clj (require \x27[jsonista.core :as jsonista]))\n * (pr-signal-fn\n * {:pr-fn\n * #?(:cljs :json ; Use js/JSON.stringify\n * :clj jsonista/write-value-as-string)})\n * \n * [1] `taoensso.telemere.utils/clean-signal-fn`, etc.\n * \n * See also `format-signal-fn` for an alternative to `pr-signal-fn`\n * that produces human-readable output.\n */\ntaoensso.telemere.pr_signal_fn \x3d taoensso.telemere.utils.pr_signal_fn;\n\n/**\n * Returns true iff given signal has an `:error` value, or a `:kind` or `:level`\n * that indicates that it\x27s an error.\n */\ntaoensso.telemere.error_signal_QMARK_ \x3d taoensso.telemere.utils.error_signal_QMARK_;\n/**\n * Call a Telemere signal creator to conditionally create a signal at that callsite.\n * \n * When filtering conditions are met [4], the call creates a Telemere signal [3]\n * and dispatches it to registered handlers for processing (e.g. writing to\n * console/file/queue/db, etc.).\n * \n * Telemere doesn\x27t make a hard distinction between different kinds of signals\n * (log, event, error, etc.) - they\x27re all just plain Clojure/Script maps with\n * various keys:\n * \n * - All signal creators offer the same options [2], and\n * - All signal kinds can contain the same content [3]\n * \n * Creators vary only in in their default `:kind` value and call APIs (expected\n * args and return values), making them more/less convenient for certain use cases:\n * \n * `log!` ------------- ?level + msg \x3d\x3e nil\n * `event!` ----------- id + ?level \x3d\x3e nil\n * `trace!` ----------- ?id + run \x3d\x3e run result (value or throw)\n * `spy!` ------------- ?level + run \x3d\x3e run result (value or throw)\n * `error!` ----------- ?id + error \x3d\x3e given error\n * `catch-\x3eerror!` ---- ?id + run \x3d\x3e run value or ?catch-val\n * `uncaught-\x3eerror!` - ?id \x3d\x3e nil\n * `signal!` ---------- opts \x3d\x3e allowed? / run result (value or throw)\n * \n * - `log!` and `event!` are both good default/general-purpose signal creators.\n * - `log!` emphasizes messages, while `event!` emphasizes ids.\n * - `signal!` is the generic creator, and is used by all the others.\n * \n * ----------------------------------------------------------------------\n * [2] See `help:signal-options` - {:keys [kind level id data ...]}\n * [3] See `help:signal-content` - {:keys [kind level id data ...]}\n * [4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)\n */\ntaoensso.telemere.help_COLON_signal_creators \x3d \x22See docstring\x22;\n\n/**\n * Signal options are provided as a map with COMPILE-TIME keys.\n * All options are available for all signal creator calls:\n * \n * `:inst` -------- Platform instant [1] when signal was created, \u2208 #{nil :auto \x3c[1]\x3e}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy \x3capp-val\x3e ...}\n * `:id` ---------- ?id of signal (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- ?id of signal instance (unique to each signal created at callsite, contrast with `:id`)\n * Defaults to `:auto` for tracing signals, and nil otherwise\n * \n * `:msg` --------- Arb app-level ?message to incl. in signal: str or vec of strs to join (with `\\space`), may be a delay\n * `:data` -------- Arb app-level ?data to incl. in signal: usu. a map, LAZY! [3]\n * `:error` ------- Arb app-level ?error to incl. in signal: platform error [2]\n * \n * `:run` --------- ?form to execute UNCONDITIONALLY; will incl. `:run-val` in signal\n * `:do` ---------- ?form to execute conditionally (iff signal allowed) and LAZILY [3], before establishing `:let` ?binding\n * `:let` --------- ?bindings to establish conditionally (iff signal allowed) and LAZILY [3], BEFORE evaluating `:data` and `:msg` (useful!)\n * \n * `:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info\n * `:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root signal tracing info\n * `:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal, as per `with-ctx`\n * `:ctx+` -------- Custom ?val to update auto (dynamic `*ctx*`) in signal, as per `with-ctx+`\n * \n * `:ns` ---------- Custom ?str namespace to override auto signal callsite info\n * `:coords` ------ Custom ?[line column] to override auto signal callsite info\n * \n * `:elidable?` --- Should signal be subject to compile-time elision? (default true)\n * `:allow?` ------ Custom override for usual runtime filtering (true \x3d\x3e ALWAYS create signal)\n * `:trace?` ------ Should tracing be enabled for `:run` form?\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for random signal sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * `:when` -------- Arb ?form; when present, form must return truthy to allow signal\n * `:limit` ------- Rate limit ?spec given to `taoensso.telemere/rate-limiter`, see its docstring for details\n * `:limit-by` ---- When present, rate limits will be enforced independently for each value (any Clojure value!)\n * `:xfn` --------- Optional transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn`\n * `:xfn+` -------- Optional extra transform (fn [signal]) \x3d\x3e ?modified-signal to apply when signal is created, as per `with-xfn+`\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs to incl. in signal. Typically NOT included in\n * handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers. LAZY! [3]\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n * [3] Most Telemere signal content is evaluated CONDITIONALLY (iff signal allowed),\n * LAZILY (when signal is created), and on the HANDLING THREAD (not logging thread).\n * This allows efficient filtering, better control+monitoring of back pressure,\n * conditional effects, etc. Ref. \x3chttps://www.taoensso.com/telemere/flow\x3e for visual!\n */\ntaoensso.telemere.help_COLON_signal_options \x3d \x22See docstring\x22;\n\n/**\n * Telemere signals are maps with {:keys [inst id ns level data msg_ ...]},\n * though they can be modified by call and/or handler transform (xfns).\n * \n * Default signal keys:\n * \n * `:schema` ------ Int version of signal schema (current: 1)\n * `:inst` -------- Platform instant [1] when signal was created, monotonicity depends on system clock\n * `:ns` ---------- ?str namespace of signal callsite\n * `:coords` ------ ?[line column] of signal callsite\n * \n * `:kind` -------- Signal ?kind \u2208 #{nil :event :error :log :trace :spy :slf4j :tools-logging \x3capp-val\x3e ...}\n * `:level` ------- Signal level \u2208 #{\x3cint\x3e :trace :debug :info :warn :error :fatal :report ...}\n * `:id` ---------- Signal callsite ?id (usu. keyword) (common to all signals created at callsite, contrast with `:uid`)\n * `:uid` --------- Signal instance ?id (usu. string) (unique to each signal created at callsite when tracing, contrast with `:id`)\n * \n * `:msg_` -------- Arb app-level message ?str given to signal creator - may be a delay, always use `force` to unwrap!\n * `:data` -------- Arb app-level data ?val (usu. a map) given to signal creator\n * `:error` ------- Arb app-level platform ?error [2] given to signal creator\n * \n * `:run-form` ---- Unevaluated ?form given to signal creator as `:run`\n * `:run-val` ----- Successful return ?val of `:run` ?form\n * `:run-nsecs` --- ?int nanosecs runtime of `:run` ?form\n * `:end-inst` ---- Platform ?instant [1] when `:run` ?form completed\n * \n * `:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing\n * `:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing\n * `:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created\n * \n * `:host` -------- (Clj only) {:keys [name ip]} info for network host\n * `:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal\n * \n * `:sample` ------ Sample ?rate \u2208\u211d[0,1] for combined call AND handler sampling (0.75 \x3d\x3e allow 75% of signals, nil \x3d\x3e allow all)\n * \n * \x3ckvs\x3e ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included\n * in handler output, so a great way to provide custom data/opts for use\n * (only) by custom transforms/handlers.\n * \n * If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!\n * \n * [1] `java.time.Instant` or `js/Date`\n * [2] `java.lang.Throwable` or `js/Error`\n */\ntaoensso.telemere.help_COLON_signal_content \x3d \x22See docstring\x22;\n\n/**\n * Telemere supports extensive environmental config via JVM properties,\n * environment variables, or classpath resources.\n * \n * Environmental filter config includes:\n * \n * 1. Minimum level (see signal `:level`):\n * a. JVM property: `taoensso.telemere.rt-min-level`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_MIN_LEVEL`\n * c. Classpath resource: `taoensso.telemere.rt-min-level`\n * \n * 2. Namespace filter (see signal `:ns`):\n * a. JVM property: `taoensso.telemere.rt-ns-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_NS_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-ns-filter`\n * \n * 3. Id filter (see signal `:id`):\n * a. JVM property: `taoensso.telemere.rt-id-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_ID_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-id-filter`\n * \n * 4. Kind filter (signal `:kind`):\n * a. JVM property: `taoensso.telemere.rt-kind-filter`\n * b. Env variable: `TAOENSSO_TELEMERE_RT_KIND_FILTER`\n * c. Classpath resource: `taoensso.telemere.rt-kind-filter`\n * \n * Config values are parsed as edn, examples:\n * \n * `taoensso.telemere.rt-min-level` \x3d\x3e \x22:info\x22\n * `TAOENSSO_TELEMERE_RT_NS_FILTER` \x3d\x3e \x22{:disallow \\\x22taoensso.*\\\x22}\x22\n * `taoensso.telemere.rt-id-filter.cljs` \x3d\x3e \x22#{:my-id1 :my-id2}\x22\n * `TAOENSSO_TELEMERE_RT_KIND_FILTER_CLJ` \x3d\x3e \x22nil\x22\n * \n * Runtime vs compile-time filters\n * \n * The above filters (1..4) all apply at RUNTIME (\x22rt\x22).\n * This is typically what you want, since it allows you to freely adjust filtering\n * (making it less OR MORE permissive) through later API calls like `set-min-level!`.\n * \n * As an advanced option, you can instead/additionally ELIDE (entirely omit) filtered\n * callsites at COMPILE-TIME (\x22ct\x22) by replacing \x22rt\x22-\x3e\x22ct\x22 / \x22RT\x22-\x3e\x22CT\x22 in the config\n * ids above. Compile-time filters CANNOT be made MORE permissive at runtime.\n * \n * Tips:\n * \n * - The above config ids will affect both Clj AND Cljs.\n * For platform-specific filters, use\n * \x22.clj\x22 / \x22_CLJ\x22 or\n * \x22.cljs\x22 / \x22_CLJS\x22 suffixes instead.\n * e.g. \x22taoensso.telemere.rt-min-level.cljs\x22.\n * \n * - To get the right edn syntax, first set your runtime filters using the\n * standard utils (`set-min-level!`, etc.). Then call `get-filters` and\n * serialize the relevant parts to edn with `pr-str`.\n * \n * - All environmental config uses `get-env` underneath.\n * See the `get-env` docstring for more/advanced details.\n * \n * - Classpath resources are files accessible on your project\x27s\n * classpath. This usually includes files in your project\x27s\n * `resources/` dir.\n */\ntaoensso.telemere.help_COLON_environmental_config \x3d \x22See docstring\x22;\n/**\n * Experimental, subject to change. Feedback welcome!\n * (fn [root?]) used to generate signal `:uid` values (unique instance ids)\n * when tracing.\n * \n * Relevant only when `otel-tracing?` is false.\n * If `otel-tracing?` is true, uids are instead generated by `*otel-tracer*`.\n * \n * `root?` argument is true iff signal is a top-level trace (i.e. form being\n * traced is unnested \x3d has no parent form). Root-level uids typically need\n * more entropy and so are usually longer (e.g. 32 vs 16 hex chars).\n * \n * Override default by setting one of the following:\n * 1. JVM property: `taoensso.telemere.uid-kind`\n * 2. Env variable: `TAOENSSO_TELEMERE_UID_KIND`\n * 3. Classpath resource: `taoensso.telemere.uid-kind`\n * \n * Possible (compile-time) values include:\n * `:uuid` - UUID string (Cljs) or `java.util.UUID` (Clj)\n * `:uuid-str` - UUID string (36/36 chars)\n * `:nano/secure` - nano-style string (21/10 chars) w/ strong RNG\n * `:nano/insecure` - nano-style string (21/10 chars) w/ fast RNG (default)\n * `:hex/insecure` - hex-style string (32/16 chars) w/ strong RNG\n * `:hex/secure` - hex-style string (32/16 chars) w/ fast RNG\n */\ntaoensso.telemere._STAR_uid_fn_STAR_ \x3d taoensso.telemere.utils.parse_uid_fn(taoensso.telemere.impl.uid_kind);\n/**\n * Dispatches given signal to registered handlers, supports `with-signal/s`.\n * Normally called automatically (internally) by signal creators, this util\n * is provided publicly since it\x27s also handy for manually re/dispatching\n * custom/modified signals, etc.:\n * \n * (let [original-signal (with-signal :trap (event! ::my-id1))\n * modified-signal (assoc original-signal :id ::my-id2)]\n * (dispatch-signal! modified-signal))\n */\ntaoensso.telemere.dispatch_signal_BANG_ \x3d (function taoensso$telemere$dispatch_signal_BANG_(signal){\nvar temp__5825__auto__ \x3d taoensso.telemere.impl.wrap_signal(signal);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar wrapped_signal \x3d temp__5825__auto__;\nreturn taoensso.telemere.impl.dispatch_signal_BANG_(wrapped_signal);\n} else {\nreturn null;\n}\n});\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the signal as a string to JavaScript console.\n * \n * A general-purpose `println`-style handler that\x27s well suited for outputting\n * signals as human or machine-readable (edn, JSON) strings.\n * \n * Options:\n * `:output-fn` - (fn [signal]) \x3d\x3e string, see `format-signal-fn` or `pr-signal-fn`\n */\ntaoensso.telemere.handler_COLON_console \x3d taoensso.telemere.consoles.handler_COLON_console;\n\n/**\n * Alpha, subject to change.\n * If `js/console` exists, returns a signal handler that:\n * - Takes a Telemere signal (map).\n * - Writes the raw signal to JavaScript console.\n * \n * Intended for use with browser formatting tools like `binaryage/devtools`,\n * Ref. \x3chttps://github.com/binaryage/cljs-devtools\x3e.\n * \n * Options:\n * `:preamble-fn` ----- (fn [signal]) \x3d\x3e string, see [1].\n * `:format-nsecs-fn` - (fn [nanosecs]) \x3d\x3e string.\n * \n * [1] `taoensso.telemere.utils/signal-preamble-fn`, etc.\n */\ntaoensso.telemere.handler_COLON_console_raw \x3d taoensso.telemere.consoles.handler_COLON_console_raw;\nif((typeof taoensso !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof taoensso.telemere.__on_init !\x3d\x3d \x27undefined\x27)){\n} else {\ntaoensso.telemere.__on_init \x3d (function (){\n(taoensso.encore.signals._STAR_default_handler_error_fn_STAR_ \x3d (function (p__38148){\nvar map__38149 \x3d p__38148;\nvar map__38149__$1 \x3d cljs.core.__destructure_map(map__38149);\nvar m \x3d map__38149__$1;\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38149__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-error\x22,\x22taoensso.encore.signals/handler-error\x22,1772750988);\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)),null,\x22Error executing wrapped handler fn\x22,error,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\n(taoensso.encore.signals._STAR_default_handler_backp_fn_STAR_ \x3d (function (data){\nreturn (function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442);\nvar __ns \x3d \x22taoensso.encore.signals\x22;\nvar __id \x3d new cljs.core.Keyword(\x22taoensso.encore.signals\x22,\x22handler-back-pressure\x22,\x22taoensso.encore.signals/handler-back-pressure\x22,699164801);\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,data,null,\x22Back pressure on wrapped handler fn\x22,null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n}));\n\ntaoensso.telemere.add_handler_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(\x22default\x22,\x22console\x22,\x22default/console\x22,-1389954628),(taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0 ? taoensso.telemere.handler_COLON_console.cljs$core$IFn$_invoke$arity$0() : taoensso.telemere.handler_COLON_console.call(null)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601),null], null));\n\nreturn null;\n})()\n\n;\n}\n"); -SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmt \x3d (function intemporal$internal$logging$fmt(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\nintemporal.internal.logging.trace \x3d (function intemporal$internal$logging$trace(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38181 \x3d arguments.length;\nvar i__5750__auto___38182 \x3d (0);\nwhile(true){\nif((i__5750__auto___38182 \x3c len__5749__auto___38181)){\nargs__5755__auto__.push((arguments[i__5750__auto___38182]));\n\nvar G__38183 \x3d (i__5750__auto___38182 + (1));\ni__5750__auto___38182 \x3d G__38183;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.trace.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [17,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.trace.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.trace.cljs$lang$applyTo \x3d (function (seq38169){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38169));\n}));\n\nintemporal.internal.logging.debug \x3d (function intemporal$internal$logging$debug(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38184 \x3d arguments.length;\nvar i__5750__auto___38185 \x3d (0);\nwhile(true){\nif((i__5750__auto___38185 \x3c len__5749__auto___38184)){\nargs__5755__auto__.push((arguments[i__5750__auto___38185]));\n\nvar G__38186 \x3d (i__5750__auto___38185 + (1));\ni__5750__auto___38185 \x3d G__38186;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debug.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [18,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.debug.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debug.cljs$lang$applyTo \x3d (function (seq38170){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38170));\n}));\n\nintemporal.internal.logging.info \x3d (function intemporal$internal$logging$info(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38187 \x3d arguments.length;\nvar i__5750__auto___38188 \x3d (0);\nwhile(true){\nif((i__5750__auto___38188 \x3c len__5749__auto___38187)){\nargs__5755__auto__.push((arguments[i__5750__auto___38188]));\n\nvar G__38189 \x3d (i__5750__auto___38188 + (1));\ni__5750__auto___38188 \x3d G__38189;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [19,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.info.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.info.cljs$lang$applyTo \x3d (function (seq38171){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38171));\n}));\n\nintemporal.internal.logging.warn \x3d (function intemporal$internal$logging$warn(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38195 \x3d arguments.length;\nvar i__5750__auto___38196 \x3d (0);\nwhile(true){\nif((i__5750__auto___38196 \x3c len__5749__auto___38195)){\nargs__5755__auto__.push((arguments[i__5750__auto___38196]));\n\nvar G__38198 \x3d (i__5750__auto___38196 + (1));\ni__5750__auto___38196 \x3d G__38198;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [20,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.warn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warn.cljs$lang$applyTo \x3d (function (seq38172){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38172));\n}));\n\nintemporal.internal.logging.error \x3d (function intemporal$internal$logging$error(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38203 \x3d arguments.length;\nvar i__5750__auto___38204 \x3d (0);\nwhile(true){\nif((i__5750__auto___38204 \x3c len__5749__auto___38203)){\nargs__5755__auto__.push((arguments[i__5750__auto___38204]));\n\nvar G__38205 \x3d (i__5750__auto___38204 + (1));\ni__5750__auto___38204 \x3d G__38205;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.error.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [21,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.error.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.error.cljs$lang$applyTo \x3d (function (seq38173){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38173));\n}));\n\nintemporal.internal.logging.fatal \x3d (function intemporal$internal$logging$fatal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38211 \x3d arguments.length;\nvar i__5750__auto___38212 \x3d (0);\nwhile(true){\nif((i__5750__auto___38212 \x3c len__5749__auto___38211)){\nargs__5755__auto__.push((arguments[i__5750__auto___38212]));\n\nvar G__38213 \x3d (i__5750__auto___38212 + (1));\ni__5750__auto___38212 \x3d G__38213;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [22,23], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,cljs.core.last(args),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}));\n\n(intemporal.internal.logging.fatal.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatal.cljs$lang$applyTo \x3d (function (seq38174){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38174));\n}));\n\nintemporal.internal.logging.tracef \x3d (function intemporal$internal$logging$tracef(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38216 \x3d arguments.length;\nvar i__5750__auto___38218 \x3d (0);\nwhile(true){\nif((i__5750__auto___38218 \x3c len__5749__auto___38216)){\nargs__5755__auto__.push((arguments[i__5750__auto___38218]));\n\nvar G__38219 \x3d (i__5750__auto___38218 + (1));\ni__5750__auto___38218 \x3d G__38219;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [27,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [28,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.tracef.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.tracef.cljs$lang$applyTo \x3d (function (seq38175){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38175));\n}));\n\nintemporal.internal.logging.debugf \x3d (function intemporal$internal$logging$debugf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38237 \x3d arguments.length;\nvar i__5750__auto___38238 \x3d (0);\nwhile(true){\nif((i__5750__auto___38238 \x3c len__5749__auto___38237)){\nargs__5755__auto__.push((arguments[i__5750__auto___38238]));\n\nvar G__38243 \x3d (i__5750__auto___38238 + (1));\ni__5750__auto___38238 \x3d G__38243;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [32,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [33,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.debugf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.debugf.cljs$lang$applyTo \x3d (function (seq38176){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38176));\n}));\n\nintemporal.internal.logging.infof \x3d (function intemporal$internal$logging$infof(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38257 \x3d arguments.length;\nvar i__5750__auto___38258 \x3d (0);\nwhile(true){\nif((i__5750__auto___38258 \x3c len__5749__auto___38257)){\nargs__5755__auto__.push((arguments[i__5750__auto___38258]));\n\nvar G__38259 \x3d (i__5750__auto___38258 + (1));\ni__5750__auto___38258 \x3d G__38259;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [37,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [38,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.infof.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.infof.cljs$lang$applyTo \x3d (function (seq38177){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38177));\n}));\n\nintemporal.internal.logging.warnf \x3d (function intemporal$internal$logging$warnf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38271 \x3d arguments.length;\nvar i__5750__auto___38272 \x3d (0);\nwhile(true){\nif((i__5750__auto___38272 \x3c len__5749__auto___38271)){\nargs__5755__auto__.push((arguments[i__5750__auto___38272]));\n\nvar G__38274 \x3d (i__5750__auto___38272 + (1));\ni__5750__auto___38272 \x3d G__38274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [42,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [43,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.warnf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.warnf.cljs$lang$applyTo \x3d (function (seq38178){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38178));\n}));\n\nintemporal.internal.logging.errorf \x3d (function intemporal$internal$logging$errorf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38282 \x3d arguments.length;\nvar i__5750__auto___38283 \x3d (0);\nwhile(true){\nif((i__5750__auto___38283 \x3c len__5749__auto___38282)){\nargs__5755__auto__.push((arguments[i__5750__auto___38283]));\n\nvar G__38285 \x3d (i__5750__auto___38283 + (1));\ni__5750__auto___38283 \x3d G__38285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.errorf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [47,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [48,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.errorf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.errorf.cljs$lang$applyTo \x3d (function (seq38179){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38179));\n}));\n\nintemporal.internal.logging.fatalf \x3d (function intemporal$internal$logging$fatalf(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___38302 \x3d arguments.length;\nvar i__5750__auto___38303 \x3d (0);\nwhile(true){\nif((i__5750__auto___38303 \x3c len__5749__auto___38302)){\nargs__5755__auto__.push((arguments[i__5750__auto___38303]));\n\nvar G__38304 \x3d (i__5750__auto___38303 + (1));\ni__5750__auto___38303 \x3d G__38304;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.logging.fatalf.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif(typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27){\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [52,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.first(args),cljs.core.rest(args)),null,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n} else {\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.logging\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22fatal\x22,\x22fatal\x22,1874419888);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__36175__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__36166__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [53,5], null),null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmt(cljs.core.second(args),cljs.core.nnext(args)),cljs.core.first(args),null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__36167__auto__ \x3d temp__5823__auto__;\nreturn (xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__36167__auto__.cljs$core$IFn$_invoke$arity$1(signal__36166__auto__) : xfn__36167__auto__.call(null,signal__36166__auto__));\n} else {\nreturn signal__36166__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__36175__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__36175__auto__) : __run_result.call(null,signal__36175__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n}\n}));\n\n(intemporal.internal.logging.fatalf.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.logging.fatalf.cljs$lang$applyTo \x3d (function (seq38180){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq38180));\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmat \x3d (function intemporal$internal$logging$fmat(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\n"); SHADOW_ENV.evalLoad("intemporal.utils.js", true, "goog.provide(\x27intemporal.utils\x27);\nintemporal.utils.current_time_ms \x3d (function intemporal$utils$current_time_ms(){\nreturn Date.now();\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__50137 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__50137) : resolve.call(null,G__50137));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___50232 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50232)){\nvar id_50233 \x3d temp__5825__auto___50232;\nclearTimeout(id_50233);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___50234 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___50234)){\nvar id_50235 \x3d temp__5825__auto___50234;\nclearTimeout(id_50235);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50139,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50143 \x3d k50139;\nvar G__50143__$1 \x3d (((G__50143 instanceof cljs.core.Keyword))?G__50143.fqn:null);\nswitch (G__50143__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50139,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50144){\nvar vec__50145 \x3d p__50144;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50145,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50138){\nvar self__ \x3d this;\nvar G__50138__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50138__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50140,other50141){\nvar self__ \x3d this;\nvar this50140__$1 \x3d this;\nreturn (((!((other50141 \x3d\x3d null)))) \x26\x26 ((((this50140__$1.constructor \x3d\x3d\x3d other50141.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.pending_timers,other50141.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50140__$1.__extmap,other50141.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50139){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50148 \x3d k50139;\nvar G__50148__$1 \x3d (((G__50148 instanceof cljs.core.Keyword))?G__50148.fqn:null);\nswitch (G__50148__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50139);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50150 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50151 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50150.cljs$core$IFn$_invoke$arity$2 ? pred__50150.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151) : pred__50150.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__50151)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__50138,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50138),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50138){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__50138,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__50162_50247 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__50163_50248 \x3d null;\nvar count__50164_50249 \x3d (0);\nvar i__50165_50250 \x3d (0);\nwhile(true){\nif((i__50165_50250 \x3c count__50164_50249)){\nvar vec__50174_50251 \x3d chunk__50163_50248.cljs$core$IIndexed$_nth$arity$2(null,i__50165_50250);\nvar __50252__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(0),null);\nvar timer_id_50253 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50174_50251,(1),null);\nclearTimeout(timer_id_50253);\n\n\nvar G__50254 \x3d seq__50162_50247;\nvar G__50255 \x3d chunk__50163_50248;\nvar G__50256 \x3d count__50164_50249;\nvar G__50257 \x3d (i__50165_50250 + (1));\nseq__50162_50247 \x3d G__50254;\nchunk__50163_50248 \x3d G__50255;\ncount__50164_50249 \x3d G__50256;\ni__50165_50250 \x3d G__50257;\ncontinue;\n} else {\nvar temp__5825__auto___50258 \x3d cljs.core.seq(seq__50162_50247);\nif(temp__5825__auto___50258){\nvar seq__50162_50259__$1 \x3d temp__5825__auto___50258;\nif(cljs.core.chunked_seq_QMARK_(seq__50162_50259__$1)){\nvar c__5548__auto___50260 \x3d cljs.core.chunk_first(seq__50162_50259__$1);\nvar G__50261 \x3d cljs.core.chunk_rest(seq__50162_50259__$1);\nvar G__50262 \x3d c__5548__auto___50260;\nvar G__50263 \x3d cljs.core.count(c__5548__auto___50260);\nvar G__50264 \x3d (0);\nseq__50162_50247 \x3d G__50261;\nchunk__50163_50248 \x3d G__50262;\ncount__50164_50249 \x3d G__50263;\ni__50165_50250 \x3d G__50264;\ncontinue;\n} else {\nvar vec__50179_50265 \x3d cljs.core.first(seq__50162_50259__$1);\nvar __50266__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(0),null);\nvar timer_id_50267 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50179_50265,(1),null);\nclearTimeout(timer_id_50267);\n\n\nvar G__50268 \x3d cljs.core.next(seq__50162_50259__$1);\nvar G__50269 \x3d null;\nvar G__50270 \x3d (0);\nvar G__50271 \x3d (0);\nseq__50162_50247 \x3d G__50268;\nchunk__50163_50248 \x3d G__50269;\ncount__50164_50249 \x3d G__50270;\ni__50165_50250 \x3d G__50271;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__50142){\nvar extmap__5365__auto__ \x3d (function (){var G__50183 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50142,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__50142)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50183);\n} else {\nreturn G__50183;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__50142),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50272 \x3d arguments.length;\nvar i__5750__auto___50273 \x3d (0);\nwhile(true){\nif((i__5750__auto___50273 \x3c len__5749__auto___50272)){\nargs__5755__auto__.push((arguments[i__5750__auto___50273]));\n\nvar G__50274 \x3d (i__5750__auto___50273 + (1));\ni__5750__auto___50273 \x3d G__50274;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50185){\nvar map__50186 \x3d p__50185;\nvar map__50186__$1 \x3d cljs.core.__destructure_map(map__50186);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50186__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq50184){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50184));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50192){if((e50192 instanceof Error)){\nvar e \x3d e50192;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50192;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], 0));\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50195,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50200 \x3d k50195;\nvar G__50200__$1 \x3d (((G__50200 instanceof cljs.core.Keyword))?G__50200.fqn:null);\nswitch (G__50200__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50195,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50201){\nvar vec__50202 \x3d p__50201;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50202,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e50205){if((e50205 instanceof Error)){\nvar e \x3d e50205;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50205;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__50207){\nvar map__50208 \x3d p__50207;\nvar map__50208__$1 \x3d cljs.core.__destructure_map(map__50208);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50208__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50194){\nvar self__ \x3d this;\nvar G__50194__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50194__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50196,other50197){\nvar self__ \x3d this;\nvar this50196__$1 \x3d this;\nreturn (((!((other50197 \x3d\x3d null)))) \x26\x26 ((((this50196__$1.constructor \x3d\x3d\x3d other50197.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.registry_atom,other50197.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.default_timeout_ms,other50197.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50196__$1.__extmap,other50197.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50195){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50220 \x3d k50195;\nvar G__50220__$1 \x3d (((G__50220 instanceof cljs.core.Keyword))?G__50220.fqn:null);\nswitch (G__50220__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50195);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50221 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50222 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__50194,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50221.cljs$core$IFn$_invoke$arity$2 ? pred__50221.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222) : pred__50221.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__50222)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__50194,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50194),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50194){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__50194,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__50198){\nvar extmap__5365__auto__ \x3d (function (){var G__50224 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50198,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__50198)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50224);\n} else {\nreturn G__50224;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__50198),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__50198),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50283 \x3d arguments.length;\nvar i__5750__auto___50284 \x3d (0);\nwhile(true){\nif((i__5750__auto___50284 \x3c len__5749__auto___50283)){\nargs__5755__auto__.push((arguments[i__5750__auto___50284]));\n\nvar G__50285 \x3d (i__5750__auto___50284 + (1));\ni__5750__auto___50284 \x3d G__50285;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__50228){\nvar map__50229 \x3d p__50228;\nvar map__50229__$1 \x3d cljs.core.__destructure_map(map__50229);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50229__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50229__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nintemporal.internal.logging.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], 0));\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq50225){\nvar G__50226 \x3d cljs.core.first(seq50225);\nvar seq50225__$1 \x3d cljs.core.next(seq50225);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50226,seq50225__$1);\n}));\n\n"); -SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__37470 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37471 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37471);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37470);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx37473 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37474 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37475 \x3d workflow_ctx37473;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37475);\n\ntry{return (function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37474);\n}}));\n})(),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e37472){if((e37472 instanceof Error)){\nvar e \x3d e37472;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e37472;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity via executor %s\x22,executor], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37476 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37477 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37478 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37478);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37477);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37479 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37480 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37480);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37479);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37481 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37482 \x3d workflow_ctx37476;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37482);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded, result: %s\x22,result], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37481);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing activity (attempt %d)\x22,attempt], 0));\n\nvar start \x3d intemporal.utils.current_time_ms();\nvar workflow_ctx37483 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37484 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37485 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37486 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37486);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37485);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37487 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37488 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37488);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37487);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37489 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37490 \x3d workflow_ctx37484;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37490);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37489);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Activity failed (attempt %d)\x22,attempt], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37491 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37492 \x3d workflow_ctx37483;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37492);\n\ntry{return (function (exec_result){\nvar G__37493 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__37493__$1 \x3d (((G__37493 instanceof cljs.core.Keyword))?G__37493.fqn:null);\nswitch (G__37493__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], 0));\n\nvar workflow_ctx37494 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (res__37297__auto____$1){\nvar _STAR_workflow_context_STAR__orig_val__37495 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37496 \x3d workflow_ctx37494;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37496);\n\ntry{return (function (_){\nvar G__37497 \x3d executor;\nvar G__37498 \x3d activity_name;\nvar G__37499 \x3d args;\nvar G__37500 \x3d timeout_ms;\nvar G__37501 \x3d retry_policy;\nvar G__37502 \x3d observer;\nvar G__37503 \x3d workflow_id;\nvar G__37504 \x3d seq_num;\nvar G__37505 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__37497,G__37498,G__37499,G__37500,G__37501,G__37502,G__37503,G__37504,G__37505) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__37497,G__37498,G__37499,G__37500,G__37501,G__37502,G__37503,G__37504,G__37505));\n})(res__37297__auto____$1);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37495);\n}}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37493__$1)].join(\x27\x27)));\n\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37491);\n}}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__37506,pending_events,observer){\nvar map__37507 \x3d p__37506;\nvar map__37507__$1 \x3d cljs.core.__destructure_map(map__37507);\nvar suspension_data \x3d map__37507__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37507__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_ctx_STAR__orig_val__37508 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37509 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37509);\n\ntry{var workflow_ctx37510 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37511 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37512 \x3d workflow_ctx37510;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37512);\n\ntry{return intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37511);\n}})()),(function (exec_result){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37513 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37514 \x3d workflow_ctx37510;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37514);\n\ntry{intemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__37515 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__37515__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37515,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__37515);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37515__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__37515__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37513);\n}})());\n}));\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37508);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], 0));\n\nvar workflow_ctx37516 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37517 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37518 \x3d workflow_ctx37516;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37518);\n\ntry{return intemporal.protocol.execute_activities_parallel(executor,pending_asyncs);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37517);\n}})()),(function (results){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37519 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37520 \x3d workflow_ctx37516;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37520);\n\ntry{var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__37521,result){\nvar map__37522 \x3d p__37521;\nvar map__37522__$1 \x3d cljs.core.__destructure_map(map__37522);\nvar async_info \x3d map__37522__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37522__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37522__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_ctx_STAR__orig_val__37523 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37524 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37524);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity succeeded, result: %s\x22,result], 0));\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37523);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37519);\n}})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37525 \x3d suspension_data;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37526 \x3d suspension_data;\nvar map__37526__$1 \x3d cljs.core.__destructure_map(map__37526);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37526__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37526__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___37626 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___37626)){\nvar signal_data_37627 \x3d temp__5825__auto___37626;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_37627),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_37627),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_37627));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__37527 \x3d suspension_data;\nvar map__37527__$1 \x3d cljs.core.__destructure_map(map__37527);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37527__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__37628 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__37528 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__37628 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__37628 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37528,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__37628));\n} else {\nreturn G__37528;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__37529 \x3d suspension_data;\nvar map__37529__$1 \x3d cljs.core.__destructure_map(map__37529);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37529__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nvar workflow_ctx37530 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37531 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37532 \x3d workflow_ctx37530;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37532);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37531);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37533 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37534 \x3d workflow_ctx37530;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37534);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37533);\n}})());\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37632 \x3d arguments.length;\nvar i__5750__auto___37633 \x3d (0);\nwhile(true){\nif((i__5750__auto___37633 \x3c len__5749__auto___37632)){\nargs__5755__auto__.push((arguments[i__5750__auto___37633]));\n\nvar G__37634 \x3d (i__5750__auto___37633 + (1));\ni__5750__auto___37633 \x3d G__37634;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__37541){\nvar map__37542 \x3d p__37541;\nvar map__37542__$1 \x3d cljs.core.__destructure_map(map__37542);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37542__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__37543 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37543,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37543;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq37535){\nvar G__37536 \x3d cljs.core.first(seq37535);\nvar seq37535__$1 \x3d cljs.core.next(seq37535);\nvar G__37537 \x3d cljs.core.first(seq37535__$1);\nvar seq37535__$2 \x3d cljs.core.next(seq37535__$1);\nvar G__37538 \x3d cljs.core.first(seq37535__$2);\nvar seq37535__$3 \x3d cljs.core.next(seq37535__$2);\nvar G__37539 \x3d cljs.core.first(seq37535__$3);\nvar seq37535__$4 \x3d cljs.core.next(seq37535__$3);\nvar G__37540 \x3d cljs.core.first(seq37535__$4);\nvar seq37535__$5 \x3d cljs.core.next(seq37535__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37536,G__37537,G__37538,G__37539,G__37540,seq37535__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nvar workflow_ctx37544 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37545 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37546 \x3d workflow_ctx37544;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37546);\n\ntry{if(cljs.core.seq(pending_asyncs)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37545);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37547 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37548 \x3d workflow_ctx37544;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37548);\n\ntry{intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_completed(observer,workflow_id,result);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37547);\n}})());\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__37549 \x3d action;\nvar G__37549__$1 \x3d (((G__37549 instanceof cljs.core.Keyword))?G__37549.fqn:null);\nswitch (G__37549__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__37550 \x3d engine;\nvar map__37550__$1 \x3d cljs.core.__destructure_map(map__37550);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37550__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__37551 \x3d suspension_type;\nvar G__37551__$1 \x3d (((G__37551 instanceof cljs.core.Keyword))?G__37551.fqn:null);\nswitch (G__37551__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nvar workflow_ctx37552 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37553 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37554 \x3d workflow_ctx37552;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37554);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37553);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37555 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37556 \x3d workflow_ctx37552;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37556);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37555);\n}})());\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nvar workflow_ctx37557 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37558 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37559 \x3d workflow_ctx37557;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37559);\n\ntry{if(cljs.core.seq(pending_asyncs_list)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n} else {\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37558);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37560 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37561 \x3d workflow_ctx37557;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37561);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37560);\n}})());\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37551__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__37562,workflow_id,workflow_fn,args,p__37563){\nvar map__37564 \x3d p__37562;\nvar map__37564__$1 \x3d cljs.core.__destructure_map(map__37564);\nvar engine \x3d map__37564__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37564__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37565 \x3d p__37563;\nvar map__37565__$1 \x3d cljs.core.__destructure_map(map__37565);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37565__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37565__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37565__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_37570,reject_fn_37569){\nvar loop_fn_37566 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_37566(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_37567,err_37568){\nif((!((err_37568 \x3d\x3d null)))){\nreturn (reject_fn_37569.cljs$core$IFn$_invoke$arity$1 ? reject_fn_37569.cljs$core$IFn$_invoke$arity$1(err_37568) : reject_fn_37569.call(null,err_37568));\n} else {\nif(promesa.core.recur_QMARK_(res_37567)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_37566,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_37567));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_37570.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_37570.cljs$core$IFn$_invoke$arity$1(res_37567) : resolve_fn_37570.call(null,res_37567));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30206__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], 0))),(function (___30206__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executor shutting down, suspending workflow\x22], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow cancelled, failing\x22], 0));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__37571 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37572 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37572);\n\ntry{intemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Executing workflow function %s...\x22,workflow_fn], 0));\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37571);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], 0));\n\nvar G__37573 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__37573__$1 \x3d (((G__37573 instanceof cljs.core.Keyword))?G__37573.fqn:null);\nswitch (G__37573__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nvar workflow_ctx37574 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37575 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37576 \x3d workflow_ctx37574;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37576);\n\ntry{return intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37575);\n}})()),(function (action){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__37577 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37578 \x3d workflow_ctx37574;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37578);\n\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553))){\nreturn promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null));\n} else {\nreturn intemporal.internal.execution.action__GT_result(action,workflow_id);\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37577);\n}})());\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__37573__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nvar workflow_ctx37579 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37580 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37581 \x3d workflow_ctx37579;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37581);\n\ntry{return dispatch(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37580);\n}}));\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_37566((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__37582,workflow_id,suspension_data,pending_events,observer){\nvar map__37583 \x3d p__37582;\nvar map__37583__$1 \x3d cljs.core.__destructure_map(map__37583);\nvar engine \x3d map__37583__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37583__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__37584 \x3d suspension_data;\nvar map__37584__$1 \x3d cljs.core.__destructure_map(map__37584);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37584__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37585 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37586 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37587 \x3d workflow_ctx37585;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37587);\n\ntry{return (function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s completed\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37586);\n}}));\n})(),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], 0));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__37589 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__37588 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__37588.cljs$core$IFn$_invoke$arity$1 ? fexpr__37588.cljs$core$IFn$_invoke$arity$1(G__37589) : fexpr__37588.call(null,G__37589));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37629 \x3d arguments.length;\nvar i__5750__auto___37630 \x3d (0);\nwhile(true){\nif((i__5750__auto___37630 \x3c len__5749__auto___37629)){\nargs__5755__auto__.push((arguments[i__5750__auto___37630]));\n\nvar G__37631 \x3d (i__5750__auto___37630 + (1));\ni__5750__auto___37630 \x3d G__37631;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37594,workflow_fn,args,p__37595){\nvar map__37596 \x3d p__37594;\nvar map__37596__$1 \x3d cljs.core.__destructure_map(map__37596);\nvar engine \x3d map__37596__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37596__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__37597 \x3d p__37595;\nvar map__37597__$1 \x3d cljs.core.__destructure_map(map__37597);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37597__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37597__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__37598 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37598,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37598;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started\x22], 0));\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37603 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37604 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37605 \x3d workflow_ctx37603;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37605);\n\ntry{return (function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37604);\n}}));\n})(),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq37590){\nvar G__37591 \x3d cljs.core.first(seq37590);\nvar seq37590__$1 \x3d cljs.core.next(seq37590);\nvar G__37592 \x3d cljs.core.first(seq37590__$1);\nvar seq37590__$2 \x3d cljs.core.next(seq37590__$1);\nvar G__37593 \x3d cljs.core.first(seq37590__$2);\nvar seq37590__$3 \x3d cljs.core.next(seq37590__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37591,G__37592,G__37593,seq37590__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___37635 \x3d arguments.length;\nvar i__5750__auto___37636 \x3d (0);\nwhile(true){\nif((i__5750__auto___37636 \x3c len__5749__auto___37635)){\nargs__5755__auto__.push((arguments[i__5750__auto___37636]));\n\nvar G__37637 \x3d (i__5750__auto___37636 + (1));\ni__5750__auto___37636 \x3d G__37637;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__37610,workflow_fn,args,p__37611){\nvar map__37612 \x3d p__37610;\nvar map__37612__$1 \x3d cljs.core.__destructure_map(map__37612);\nvar engine \x3d map__37612__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37612__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__37613 \x3d p__37611;\nvar map__37613__$1 \x3d cljs.core.__destructure_map(map__37613);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__37613__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37613__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__37614 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__37614,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__37614;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_ctx_STAR__orig_val__37615 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37616 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37616);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Waking workflow for resume\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37617 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37618 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37619 \x3d workflow_ctx37617;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37619);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37618);\n}}));\n})(),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__37620 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__37620) : on_complete.call(null,G__37620));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37615);\n}});\nvar _STAR_ctx_STAR__orig_val__37621 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__37622 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__37622);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow started (async)\x22], 0));\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx37623 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__37624 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__37625 \x3d workflow_ctx37623;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__37625);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__37624);\n}}));\n})(),Error,(function (e){\nintemporal.internal.logging.warnf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Caught exception during async workflow start\x22], 0));\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__37621);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq37606){\nvar G__37607 \x3d cljs.core.first(seq37606);\nvar seq37606__$1 \x3d cljs.core.next(seq37606);\nvar G__37608 \x3d cljs.core.first(seq37606__$1);\nvar seq37606__$2 \x3d cljs.core.next(seq37606__$1);\nvar G__37609 \x3d cljs.core.first(seq37606__$2);\nvar seq37606__$3 \x3d cljs.core.next(seq37606__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37607,G__37608,G__37609,seq37606__$3);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__69599 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__69599) : resolve.call(null,G__69599));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___69755 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___69755)){\nvar id_69756 \x3d temp__5825__auto___69755;\nclearTimeout(id_69756);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___69757 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___69757)){\nvar id_69758 \x3d temp__5825__auto___69757;\nclearTimeout(id_69758);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k69604,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__69611 \x3d k69604;\nvar G__69611__$1 \x3d (((G__69611 instanceof cljs.core.Keyword))?G__69611.fqn:null);\nswitch (G__69611__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k69604,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__69612){\nvar vec__69613 \x3d p__69612;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69613,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69613,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__69603){\nvar self__ \x3d this;\nvar G__69603__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__69603__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this69605,other69606){\nvar self__ \x3d this;\nvar this69605__$1 \x3d this;\nreturn (((!((other69606 \x3d\x3d null)))) \x26\x26 ((((this69605__$1.constructor \x3d\x3d\x3d other69606.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69605__$1.pending_timers,other69606.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69605__$1.__extmap,other69606.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k69604){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__69619 \x3d k69604;\nvar G__69619__$1 \x3d (((G__69619 instanceof cljs.core.Keyword))?G__69619.fqn:null);\nswitch (G__69619__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k69604);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__69603){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__69621 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__69622 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__69621.cljs$core$IFn$_invoke$arity$2 ? pred__69621.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__69622) : pred__69621.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__69622)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__69603,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__69603),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__69603){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__69603,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__69633_69768 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__69634_69769 \x3d null;\nvar count__69635_69770 \x3d (0);\nvar i__69636_69771 \x3d (0);\nwhile(true){\nif((i__69636_69771 \x3c count__69635_69770)){\nvar vec__69643_69772 \x3d chunk__69634_69769.cljs$core$IIndexed$_nth$arity$2(null,i__69636_69771);\nvar __69773__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69643_69772,(0),null);\nvar timer_id_69774 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69643_69772,(1),null);\nclearTimeout(timer_id_69774);\n\n\nvar G__69775 \x3d seq__69633_69768;\nvar G__69776 \x3d chunk__69634_69769;\nvar G__69777 \x3d count__69635_69770;\nvar G__69778 \x3d (i__69636_69771 + (1));\nseq__69633_69768 \x3d G__69775;\nchunk__69634_69769 \x3d G__69776;\ncount__69635_69770 \x3d G__69777;\ni__69636_69771 \x3d G__69778;\ncontinue;\n} else {\nvar temp__5825__auto___69779 \x3d cljs.core.seq(seq__69633_69768);\nif(temp__5825__auto___69779){\nvar seq__69633_69780__$1 \x3d temp__5825__auto___69779;\nif(cljs.core.chunked_seq_QMARK_(seq__69633_69780__$1)){\nvar c__5548__auto___69781 \x3d cljs.core.chunk_first(seq__69633_69780__$1);\nvar G__69783 \x3d cljs.core.chunk_rest(seq__69633_69780__$1);\nvar G__69784 \x3d c__5548__auto___69781;\nvar G__69785 \x3d cljs.core.count(c__5548__auto___69781);\nvar G__69786 \x3d (0);\nseq__69633_69768 \x3d G__69783;\nchunk__69634_69769 \x3d G__69784;\ncount__69635_69770 \x3d G__69785;\ni__69636_69771 \x3d G__69786;\ncontinue;\n} else {\nvar vec__69646_69792 \x3d cljs.core.first(seq__69633_69780__$1);\nvar __69793__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69646_69792,(0),null);\nvar timer_id_69794 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69646_69792,(1),null);\nclearTimeout(timer_id_69794);\n\n\nvar G__69795 \x3d cljs.core.next(seq__69633_69780__$1);\nvar G__69796 \x3d null;\nvar G__69797 \x3d (0);\nvar G__69798 \x3d (0);\nseq__69633_69768 \x3d G__69795;\nchunk__69634_69769 \x3d G__69796;\ncount__69635_69770 \x3d G__69797;\ni__69636_69771 \x3d G__69798;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__69608){\nvar extmap__5365__auto__ \x3d (function (){var G__69652 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__69608,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__69608)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__69652);\n} else {\nreturn G__69652;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__69608),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69799 \x3d arguments.length;\nvar i__5750__auto___69800 \x3d (0);\nwhile(true){\nif((i__5750__auto___69800 \x3c len__5749__auto___69799)){\nargs__5755__auto__.push((arguments[i__5750__auto___69800]));\n\nvar G__69801 \x3d (i__5750__auto___69800 + (1));\ni__5750__auto___69800 \x3d G__69801;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69654){\nvar map__69655 \x3d p__69654;\nvar map__69655__$1 \x3d cljs.core.__destructure_map(map__69655);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69655__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq69653){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq69653));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e69674){if((e69674 instanceof Error)){\nvar e \x3d e69674;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e69674;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nvar args__69521__auto___69805 \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], null);\nvar vec__69678_69806 \x3d (((cljs.core.first(args__69521__auto___69805) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69805),cljs.core.second(args__69521__auto___69805),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69805)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69805),cljs.core.rest(args__69521__auto___69805)], null));\nvar err__69522__auto___69807 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(0),null);\nvar fmt__69523__auto___69808 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(1),null);\nvar fmt_args__69524__auto___69809 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.runtime\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69808,fmt_args__69524__auto___69809),err__69522__auto___69807,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k69688,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__69704 \x3d k69688;\nvar G__69704__$1 \x3d (((G__69704 instanceof cljs.core.Keyword))?G__69704.fqn:null);\nswitch (G__69704__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k69688,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__69705){\nvar vec__69706 \x3d p__69705;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69706,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69706,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e69709){if((e69709 instanceof Error)){\nvar e \x3d e69709;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e69709;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__69715){\nvar map__69716 \x3d p__69715;\nvar map__69716__$1 \x3d cljs.core.__destructure_map(map__69716);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__69687){\nvar self__ \x3d this;\nvar G__69687__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__69687__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this69689,other69690){\nvar self__ \x3d this;\nvar this69689__$1 \x3d this;\nreturn (((!((other69690 \x3d\x3d null)))) \x26\x26 ((((this69689__$1.constructor \x3d\x3d\x3d other69690.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.registry_atom,other69690.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.default_timeout_ms,other69690.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.__extmap,other69690.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k69688){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__69732 \x3d k69688;\nvar G__69732__$1 \x3d (((G__69732 instanceof cljs.core.Keyword))?G__69732.fqn:null);\nswitch (G__69732__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k69688);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__69687){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__69735 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__69736 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__69735.cljs$core$IFn$_invoke$arity$2 ? pred__69735.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__69736) : pred__69735.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__69736)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__69687,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__69735.cljs$core$IFn$_invoke$arity$2 ? pred__69735.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__69736) : pred__69735.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__69736)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__69687,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__69687),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__69687){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__69687,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__69691){\nvar extmap__5365__auto__ \x3d (function (){var G__69744 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__69691,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__69691)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__69744);\n} else {\nreturn G__69744;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__69691),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__69691),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69819 \x3d arguments.length;\nvar i__5750__auto___69820 \x3d (0);\nwhile(true){\nif((i__5750__auto___69820 \x3c len__5749__auto___69819)){\nargs__5755__auto__.push((arguments[i__5750__auto___69820]));\n\nvar G__69822 \x3d (i__5750__auto___69820 + (1));\ni__5750__auto___69820 \x3d G__69822;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__69747){\nvar map__69748 \x3d p__69747;\nvar map__69748__$1 \x3d cljs.core.__destructure_map(map__69748);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69748__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69748__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nvar args__69512__auto___69824 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], null);\nvar vec__69749_69825 \x3d (((cljs.core.first(args__69512__auto___69824) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___69824),cljs.core.rest(args__69512__auto___69824)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___69824], null));\nvar err__69513__auto___69826 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69749_69825,(0),null);\nvar msgs__69514__auto___69827 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69749_69825,(1),null);\nvar msg__69515__auto___69828 \x3d ((cljs.core.seq(msgs__69514__auto___69827))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___69827):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___69826));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.runtime\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___69828,err__69513__auto___69826,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq69745){\nvar G__69746 \x3d cljs.core.first(seq69745);\nvar seq69745__$1 \x3d cljs.core.next(seq69745);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69746,seq69745__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__69600 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69601 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69601);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69600);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx69607 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69609 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69610 \x3d workflow_ctx69607;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69610);\n\ntry{return (function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69609);\n}}));\n})(),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e69602){if((e69602 instanceof Error)){\nvar e \x3d e69602;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e69602;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nvar args__69521__auto___69894 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity via executor %s\x22,executor], null);\nvar vec__69616_69895 \x3d (((cljs.core.first(args__69521__auto___69894) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69894),cljs.core.second(args__69521__auto___69894),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69894)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69894),cljs.core.rest(args__69521__auto___69894)], null));\nvar err__69522__auto___69896 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(0),null);\nvar fmt__69523__auto___69897 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(1),null);\nvar fmt_args__69524__auto___69898 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69897,fmt_args__69524__auto___69898),err__69522__auto___69896,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69620 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69624 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69625 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69625);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69624);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69626 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69627 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69627);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69626);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69628 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69629 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69629);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___69904 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded, result: %s\x22,result], null);\nvar vec__69630_69905 \x3d (((cljs.core.first(args__69521__auto___69904) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69904),cljs.core.second(args__69521__auto___69904),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69904)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69904),cljs.core.rest(args__69521__auto___69904)], null));\nvar err__69522__auto___69906 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(0),null);\nvar fmt__69523__auto___69907 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(1),null);\nvar fmt_args__69524__auto___69908 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69907,fmt_args__69524__auto___69908),err__69522__auto___69906,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69628);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___69912 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed\x22], null);\nvar vec__69649_69913 \x3d (((cljs.core.first(args__69521__auto___69912) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69912),cljs.core.second(args__69521__auto___69912),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69912)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69912),cljs.core.rest(args__69521__auto___69912)], null));\nvar err__69522__auto___69914 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(0),null);\nvar fmt__69523__auto___69915 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(1),null);\nvar fmt_args__69524__auto___69916 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69915,fmt_args__69524__auto___69916),err__69522__auto___69914,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nvar args__69521__auto___69918 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity (attempt %d)\x22,attempt], null);\nvar vec__69656_69919 \x3d (((cljs.core.first(args__69521__auto___69918) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69918),cljs.core.second(args__69521__auto___69918),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69918)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69918),cljs.core.rest(args__69521__auto___69918)], null));\nvar err__69522__auto___69920 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(0),null);\nvar fmt__69523__auto___69921 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(1),null);\nvar fmt_args__69524__auto___69922 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69921,fmt_args__69524__auto___69922),err__69522__auto___69920,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar start \x3d intemporal.utils.current_time_ms();\nvar workflow_ctx69660 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69661 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69662 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69663 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69663);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69662);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69664 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69665 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69665);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69664);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69669 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69670 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69670);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___69928 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], null);\nvar vec__69671_69929 \x3d (((cljs.core.first(args__69521__auto___69928) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69928),cljs.core.second(args__69521__auto___69928),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69928)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69928),cljs.core.rest(args__69521__auto___69928)], null));\nvar err__69522__auto___69930 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(0),null);\nvar fmt__69523__auto___69931 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(1),null);\nvar fmt_args__69524__auto___69932 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69931,fmt_args__69524__auto___69932),err__69522__auto___69930,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69669);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___69937 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed (attempt %d)\x22,attempt], null);\nvar vec__69675_69938 \x3d (((cljs.core.first(args__69521__auto___69937) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69937),cljs.core.second(args__69521__auto___69937),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69937)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69937),cljs.core.rest(args__69521__auto___69937)], null));\nvar err__69522__auto___69939 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(0),null);\nvar fmt__69523__auto___69940 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(1),null);\nvar fmt_args__69524__auto___69941 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69940,fmt_args__69524__auto___69941),err__69522__auto___69939,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69681 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69682 \x3d workflow_ctx69660;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69682);\n\ntry{return (function (exec_result){\nvar G__69683 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__69683__$1 \x3d (((G__69683 instanceof cljs.core.Keyword))?G__69683.fqn:null);\nswitch (G__69683__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nvar args__69521__auto___69948 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], null);\nvar vec__69684_69949 \x3d (((cljs.core.first(args__69521__auto___69948) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69948),cljs.core.second(args__69521__auto___69948),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69948)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69948),cljs.core.rest(args__69521__auto___69948)], null));\nvar err__69522__auto___69950 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(0),null);\nvar fmt__69523__auto___69951 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(1),null);\nvar fmt_args__69524__auto___69952 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69951,fmt_args__69524__auto___69952),err__69522__auto___69950,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx69692 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (res__37297__auto____$1){\nvar _STAR_workflow_context_STAR__orig_val__69693 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69694 \x3d workflow_ctx69692;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69694);\n\ntry{return (function (_){\nvar G__69695 \x3d executor;\nvar G__69696 \x3d activity_name;\nvar G__69697 \x3d args;\nvar G__69698 \x3d timeout_ms;\nvar G__69699 \x3d retry_policy;\nvar G__69700 \x3d observer;\nvar G__69701 \x3d workflow_id;\nvar G__69702 \x3d seq_num;\nvar G__69703 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__69695,G__69696,G__69697,G__69698,G__69699,G__69700,G__69701,G__69702,G__69703) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__69695,G__69696,G__69697,G__69698,G__69699,G__69700,G__69701,G__69702,G__69703));\n})(res__37297__auto____$1);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69693);\n}}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69683__$1)].join(\x27\x27)));\n\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69681);\n}}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__69710,pending_events,observer){\nvar map__69711 \x3d p__69710;\nvar map__69711__$1 \x3d cljs.core.__destructure_map(map__69711);\nvar suspension_data \x3d map__69711__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_xfn_STAR__orig_val__69712 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69713 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69713);\n\ntry{var workflow_ctx69714 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69717 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69718 \x3d workflow_ctx69714;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69718);\n\ntry{return intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69717);\n}})()),(function (exec_result){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69719 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69720 \x3d workflow_ctx69714;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69720);\n\ntry{intemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__69721 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__69721__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69721,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__69721);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69721__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__69721__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69719);\n}})());\n}));\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69712);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar args__69521__auto___69967 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], null);\nvar vec__69722_69968 \x3d (((cljs.core.first(args__69521__auto___69967) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69967),cljs.core.second(args__69521__auto___69967),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69967)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69967),cljs.core.rest(args__69521__auto___69967)], null));\nvar err__69522__auto___69969 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(0),null);\nvar fmt__69523__auto___69970 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(1),null);\nvar fmt_args__69524__auto___69971 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69970,fmt_args__69524__auto___69971),err__69522__auto___69969,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx69725 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69726 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69727 \x3d workflow_ctx69725;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69727);\n\ntry{return intemporal.protocol.execute_activities_parallel(executor,pending_asyncs);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69726);\n}})()),(function (results){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69728 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69729 \x3d workflow_ctx69725;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69729);\n\ntry{var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__69730,result){\nvar map__69731 \x3d p__69730;\nvar map__69731__$1 \x3d cljs.core.__destructure_map(map__69731);\nvar async_info \x3d map__69731__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69731__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69731__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_xfn_STAR__orig_val__69733 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69734 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69734);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___69978 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity succeeded, result: %s\x22,result], null);\nvar vec__69738_69979 \x3d (((cljs.core.first(args__69521__auto___69978) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69978),cljs.core.second(args__69521__auto___69978),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69978)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69978),cljs.core.rest(args__69521__auto___69978)], null));\nvar err__69522__auto___69980 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(0),null);\nvar fmt__69523__auto___69981 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(1),null);\nvar fmt_args__69524__auto___69982 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69981,fmt_args__69524__auto___69982),err__69522__auto___69980,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___69983 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__69741_69984 \x3d (((cljs.core.first(args__69521__auto___69983) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69983),cljs.core.second(args__69521__auto___69983),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69983)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69983),cljs.core.rest(args__69521__auto___69983)], null));\nvar err__69522__auto___69985 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(0),null);\nvar fmt__69523__auto___69986 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(1),null);\nvar fmt_args__69524__auto___69987 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69986,fmt_args__69524__auto___69987),err__69522__auto___69985,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69733);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69728);\n}})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69752 \x3d suspension_data;\nvar map__69752__$1 \x3d cljs.core.__destructure_map(map__69752);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69752__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69752__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69753 \x3d suspension_data;\nvar map__69753__$1 \x3d cljs.core.__destructure_map(map__69753);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69753__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69753__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___69998 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___69998)){\nvar signal_data_69999 \x3d temp__5825__auto___69998;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_69999),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_69999),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_69999));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69754 \x3d suspension_data;\nvar map__69754__$1 \x3d cljs.core.__destructure_map(map__69754);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__70012 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__69759 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__70012 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__70012 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69759,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__70012));\n} else {\nreturn G__69759;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__69761 \x3d suspension_data;\nvar map__69761__$1 \x3d cljs.core.__destructure_map(map__69761);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69761__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nvar workflow_ctx69762 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69763 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69764 \x3d workflow_ctx69762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69764);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69763);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69766 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69767 \x3d workflow_ctx69762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69767);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69766);\n}})());\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70019 \x3d arguments.length;\nvar i__5750__auto___70020 \x3d (0);\nwhile(true){\nif((i__5750__auto___70020 \x3c len__5749__auto___70019)){\nargs__5755__auto__.push((arguments[i__5750__auto___70020]));\n\nvar G__70021 \x3d (i__5750__auto___70020 + (1));\ni__5750__auto___70020 \x3d G__70021;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__69802){\nvar map__69803 \x3d p__69802;\nvar map__69803__$1 \x3d cljs.core.__destructure_map(map__69803);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69803__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__69804 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69804,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69804;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq69782){\nvar G__69787 \x3d cljs.core.first(seq69782);\nvar seq69782__$1 \x3d cljs.core.next(seq69782);\nvar G__69788 \x3d cljs.core.first(seq69782__$1);\nvar seq69782__$2 \x3d cljs.core.next(seq69782__$1);\nvar G__69789 \x3d cljs.core.first(seq69782__$2);\nvar seq69782__$3 \x3d cljs.core.next(seq69782__$2);\nvar G__69790 \x3d cljs.core.first(seq69782__$3);\nvar seq69782__$4 \x3d cljs.core.next(seq69782__$3);\nvar G__69791 \x3d cljs.core.first(seq69782__$4);\nvar seq69782__$5 \x3d cljs.core.next(seq69782__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69787,G__69788,G__69789,G__69790,G__69791,seq69782__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nvar workflow_ctx69810 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69811 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69812 \x3d workflow_ctx69810;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69812);\n\ntry{if(cljs.core.seq(pending_asyncs)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69811);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69814 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69815 \x3d workflow_ctx69810;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69815);\n\ntry{intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_completed(observer,workflow_id,result);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69814);\n}})());\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__69816 \x3d action;\nvar G__69816__$1 \x3d (((G__69816 instanceof cljs.core.Keyword))?G__69816.fqn:null);\nswitch (G__69816__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__69818 \x3d engine;\nvar map__69818__$1 \x3d cljs.core.__destructure_map(map__69818);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__69821 \x3d suspension_type;\nvar G__69821__$1 \x3d (((G__69821 instanceof cljs.core.Keyword))?G__69821.fqn:null);\nswitch (G__69821__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nvar workflow_ctx69823 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69829 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69830 \x3d workflow_ctx69823;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69830);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69829);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69831 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69832 \x3d workflow_ctx69823;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69832);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69831);\n}})());\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nvar workflow_ctx69833 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69834 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69835 \x3d workflow_ctx69833;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69835);\n\ntry{if(cljs.core.seq(pending_asyncs_list)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n} else {\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69834);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69836 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69837 \x3d workflow_ctx69833;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69837);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69836);\n}})());\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69821__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__69838,workflow_id,workflow_fn,args,p__69839){\nvar map__69840 \x3d p__69838;\nvar map__69840__$1 \x3d cljs.core.__destructure_map(map__69840);\nvar engine \x3d map__69840__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__69841 \x3d p__69839;\nvar map__69841__$1 \x3d cljs.core.__destructure_map(map__69841);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69841__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69841__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69841__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_69846,reject_fn_69845){\nvar loop_fn_69842 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_69842(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_69843,err_69844){\nif((!((err_69844 \x3d\x3d null)))){\nreturn (reject_fn_69845.cljs$core$IFn$_invoke$arity$1 ? reject_fn_69845.cljs$core$IFn$_invoke$arity$1(err_69844) : reject_fn_69845.call(null,err_69844));\n} else {\nif(promesa.core.recur_QMARK_(res_69843)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_69842,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_69843));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_69846.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_69846.cljs$core$IFn$_invoke$arity$1(res_69843) : resolve_fn_69846.call(null,res_69843));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30206__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var args__69521__auto__ \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], null);\nvar vec__69847 \x3d (((cljs.core.first(args__69521__auto__) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto__),cljs.core.second(args__69521__auto__),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto__)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto__),cljs.core.rest(args__69521__auto__)], null));\nvar err__69522__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(0),null);\nvar fmt__69523__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(1),null);\nvar fmt_args__69524__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto__,fmt_args__69524__auto__),err__69522__auto__,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n})()),(function (___30206__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nvar args__69521__auto___70046 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executor shutting down, suspending workflow\x22], null);\nvar vec__69850_70047 \x3d (((cljs.core.first(args__69521__auto___70046) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70046),cljs.core.second(args__69521__auto___70046),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70046)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70046),cljs.core.rest(args__69521__auto___70046)], null));\nvar err__69522__auto___70048 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(0),null);\nvar fmt__69523__auto___70049 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(1),null);\nvar fmt_args__69524__auto___70050 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70049,fmt_args__69524__auto___70050),err__69522__auto___70048,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69512__auto___70056 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow cancelled, failing\x22], null);\nvar vec__69853_70057 \x3d (((cljs.core.first(args__69512__auto___70056) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70056),cljs.core.rest(args__69512__auto___70056)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70056], null));\nvar err__69513__auto___70058 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69853_70057,(0),null);\nvar msgs__69514__auto___70059 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69853_70057,(1),null);\nvar msg__69515__auto___70060 \x3d ((cljs.core.seq(msgs__69514__auto___70059))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70059):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70058));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70060,err__69513__auto___70058,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__69856 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69857 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69857);\n\ntry{var args__69521__auto___70062 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing workflow function %s...\x22,workflow_fn], null);\nvar vec__69858_70063 \x3d (((cljs.core.first(args__69521__auto___70062) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70062),cljs.core.second(args__69521__auto___70062),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70062)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70062),cljs.core.rest(args__69521__auto___70062)], null));\nvar err__69522__auto___70064 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(0),null);\nvar fmt__69523__auto___70065 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(1),null);\nvar fmt_args__69524__auto___70066 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70065,fmt_args__69524__auto___70066),err__69522__auto___70064,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69856);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nvar args__69521__auto___70071 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], null);\nvar vec__69861_70072 \x3d (((cljs.core.first(args__69521__auto___70071) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70071),cljs.core.second(args__69521__auto___70071),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70071)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70071),cljs.core.rest(args__69521__auto___70071)], null));\nvar err__69522__auto___70073 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(0),null);\nvar fmt__69523__auto___70074 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(1),null);\nvar fmt_args__69524__auto___70075 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70074,fmt_args__69524__auto___70075),err__69522__auto___70073,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar G__69864 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__69864__$1 \x3d (((G__69864 instanceof cljs.core.Keyword))?G__69864.fqn:null);\nswitch (G__69864__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nvar workflow_ctx69865 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69866 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69867 \x3d workflow_ctx69865;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69867);\n\ntry{return intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69866);\n}})()),(function (action){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69868 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69869 \x3d workflow_ctx69865;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69869);\n\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553))){\nreturn promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null));\n} else {\nreturn intemporal.internal.execution.action__GT_result(action,workflow_id);\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69868);\n}})());\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69864__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nvar workflow_ctx69870 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69871 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69872 \x3d workflow_ctx69870;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69872);\n\ntry{return dispatch(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69871);\n}}));\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_69842((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__69873,workflow_id,suspension_data,pending_events,observer){\nvar map__69874 \x3d p__69873;\nvar map__69874__$1 \x3d cljs.core.__destructure_map(map__69874);\nvar engine \x3d map__69874__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__69875 \x3d suspension_data;\nvar map__69875__$1 \x3d cljs.core.__destructure_map(map__69875);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69876 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69877 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69878 \x3d workflow_ctx69876;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69878);\n\ntry{return (function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70081 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s completed\x22,child_workflow_id], null);\nvar vec__69879_70082 \x3d (((cljs.core.first(args__69521__auto___70081) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70081),cljs.core.second(args__69521__auto___70081),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70081)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70081),cljs.core.rest(args__69521__auto___70081)], null));\nvar err__69522__auto___70083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(0),null);\nvar fmt__69523__auto___70084 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(1),null);\nvar fmt_args__69524__auto___70085 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70084,fmt_args__69524__auto___70085),err__69522__auto___70083,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70086 \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__69882_70087 \x3d (((cljs.core.first(args__69521__auto___70086) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70086),cljs.core.second(args__69521__auto___70086),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70086)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70086),cljs.core.rest(args__69521__auto___70086)], null));\nvar err__69522__auto___70088 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(0),null);\nvar fmt__69523__auto___70089 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(1),null);\nvar fmt_args__69524__auto___70090 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70089,fmt_args__69524__auto___70090),err__69522__auto___70088,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69877);\n}}));\n})(),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70092 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], null);\nvar vec__69885_70093 \x3d (((cljs.core.first(args__69521__auto___70092) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70092),cljs.core.second(args__69521__auto___70092),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70092)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70092),cljs.core.rest(args__69521__auto___70092)], null));\nvar err__69522__auto___70094 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(0),null);\nvar fmt__69523__auto___70095 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(1),null);\nvar fmt_args__69524__auto___70096 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70095,fmt_args__69524__auto___70096),err__69522__auto___70094,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__69889 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__69888 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__69888.cljs$core$IFn$_invoke$arity$1 ? fexpr__69888.cljs$core$IFn$_invoke$arity$1(G__69889) : fexpr__69888.call(null,G__69889));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69988 \x3d arguments.length;\nvar i__5750__auto___69989 \x3d (0);\nwhile(true){\nif((i__5750__auto___69989 \x3c len__5749__auto___69988)){\nargs__5755__auto__.push((arguments[i__5750__auto___69989]));\n\nvar G__69990 \x3d (i__5750__auto___69989 + (1));\ni__5750__auto___69989 \x3d G__69990;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69899,workflow_fn,args,p__69900){\nvar map__69901 \x3d p__69899;\nvar map__69901__$1 \x3d cljs.core.__destructure_map(map__69901);\nvar engine \x3d map__69901__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69901__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__69902 \x3d p__69900;\nvar map__69902__$1 \x3d cljs.core.__destructure_map(map__69902);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69902__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__69903 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69903,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69903;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___69991 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started\x22], null);\nvar vec__69909_69992 \x3d (((cljs.core.first(args__69512__auto___69991) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___69991),cljs.core.rest(args__69512__auto___69991)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___69991], null));\nvar err__69513__auto___69993 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69909_69992,(0),null);\nvar msgs__69514__auto___69994 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69909_69992,(1),null);\nvar msg__69515__auto___69995 \x3d ((cljs.core.seq(msgs__69514__auto___69994))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___69994):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___69993));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___69995,err__69513__auto___69993,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69925 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69926 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69927 \x3d workflow_ctx69925;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69927);\n\ntry{return (function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69926);\n}}));\n})(),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq69890){\nvar G__69891 \x3d cljs.core.first(seq69890);\nvar seq69890__$1 \x3d cljs.core.next(seq69890);\nvar G__69892 \x3d cljs.core.first(seq69890__$1);\nvar seq69890__$2 \x3d cljs.core.next(seq69890__$1);\nvar G__69893 \x3d cljs.core.first(seq69890__$2);\nvar seq69890__$3 \x3d cljs.core.next(seq69890__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69891,G__69892,G__69893,seq69890__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70000 \x3d arguments.length;\nvar i__5750__auto___70001 \x3d (0);\nwhile(true){\nif((i__5750__auto___70001 \x3c len__5749__auto___70000)){\nargs__5755__auto__.push((arguments[i__5750__auto___70001]));\n\nvar G__70003 \x3d (i__5750__auto___70001 + (1));\ni__5750__auto___70001 \x3d G__70003;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69942,workflow_fn,args,p__69943){\nvar map__69944 \x3d p__69942;\nvar map__69944__$1 \x3d cljs.core.__destructure_map(map__69944);\nvar engine \x3d map__69944__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69944__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__69945 \x3d p__69943;\nvar map__69945__$1 \x3d cljs.core.__destructure_map(map__69945);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69945__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__69946 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69946,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69946;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_xfn_STAR__orig_val__69953 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69954 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69954);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nvar args__69521__auto___70005 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Waking workflow for resume\x22], null);\nvar vec__69955_70006 \x3d (((cljs.core.first(args__69521__auto___70005) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70005),cljs.core.second(args__69521__auto___70005),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70005)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70005),cljs.core.rest(args__69521__auto___70005)], null));\nvar err__69522__auto___70007 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(0),null);\nvar fmt__69523__auto___70008 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(1),null);\nvar fmt_args__69524__auto___70009 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70008,fmt_args__69524__auto___70009),err__69522__auto___70007,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69958 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69959 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69960 \x3d workflow_ctx69958;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69960);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69959);\n}}));\n})(),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__69961 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__69961) : on_complete.call(null,G__69961));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69953);\n}});\nvar _STAR_xfn_STAR__orig_val__69962 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69963 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69963);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___70022 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started (async)\x22], null);\nvar vec__69964_70023 \x3d (((cljs.core.first(args__69512__auto___70022) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70022),cljs.core.rest(args__69512__auto___70022)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70022], null));\nvar err__69513__auto___70024 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69964_70023,(0),null);\nvar msgs__69514__auto___70025 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69964_70023,(1),null);\nvar msg__69515__auto___70026 \x3d ((cljs.core.seq(msgs__69514__auto___70025))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70025):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70024));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70026,err__69513__auto___70024,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69972 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69973 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69974 \x3d workflow_ctx69972;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69974);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69973);\n}}));\n})(),Error,(function (e){\nvar args__69521__auto___70027 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Caught exception during async workflow start\x22], null);\nvar vec__69975_70028 \x3d (((cljs.core.first(args__69521__auto___70027) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70027),cljs.core.second(args__69521__auto___70027),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70027)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70027),cljs.core.rest(args__69521__auto___70027)], null));\nvar err__69522__auto___70029 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(0),null);\nvar fmt__69523__auto___70030 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(1),null);\nvar fmt_args__69524__auto___70031 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70030,fmt_args__69524__auto___70031),err__69522__auto___70029,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69962);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq69933){\nvar G__69934 \x3d cljs.core.first(seq69933);\nvar seq69933__$1 \x3d cljs.core.next(seq69933);\nvar G__69935 \x3d cljs.core.first(seq69933__$1);\nvar seq69933__$2 \x3d cljs.core.next(seq69933__$1);\nvar G__69936 \x3d cljs.core.first(seq69933__$2);\nvar seq69933__$3 \x3d cljs.core.next(seq69933__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69934,G__69935,G__69936,seq69933__$3);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IStore}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.store.InMemoryStore \x3d (function (state,__meta,__extmap,__hash){\nthis.state \x3d state;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28969,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28978 \x3d k28969;\nvar G__28978__$1 \x3d (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null);\nswitch (G__28978__$1) {\ncase \x22state\x22:\nreturn self__.state;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){\nvar vec__28983 \x3d p__28980;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.PersistentVector.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),false);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar result \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){\nvar signals \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null));\nif(cljs.core.seq(signals)){\ncljs.core.reset_BANG_(result,cljs.core.first(signals));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest));\n} else {\nreturn s;\n}\n}));\n\nreturn cljs.core.deref(result);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 \x3d (function (this$,worfklow_id,event_type,seq_num){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar history__$1 \x3d this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id);\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num)));\n}),history__$1));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d (function (_,workflow_id,signal_name,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null),callback);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021)], null),cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 \x3d (function (_,workflow_id,events){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.seq(events)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0));\n} else {\n}\n\nreturn events;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 \x3d (function (this$,workflow_id,signal_name,signal_data){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0));\n\nvar temp__5825__auto___29275 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null));\nif(cljs.core.truth_(temp__5825__auto___29275)){\nvar callback_29278 \x3d temp__5825__auto___29275;\nsetTimeout(callback_29278,(0));\n} else {\n}\n\nreturn signal_data;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),true);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar wf \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id], null));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224);\n} else {\nif(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22not-found\x22,\x22not-found\x22,-629079980);\n} else {\nvar last_event \x3d cljs.core.last(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf));\nvar G__29001 \x3d new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(last_event);\nvar G__29001__$1 \x3d (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null);\nswitch (G__29001__$1) {\ncase \x22workflow-completed\x22:\nreturn new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503);\n\nbreak;\ncase \x22workflow-failed\x22:\nreturn new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762);\n\nbreak;\ndefault:\nreturn new cljs.core.Keyword(null,\x22running\x22,\x22running\x22,1554969103);\n\n}\n\n}\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 \x3d (function (_,workflow_id,event){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0));\n\nreturn event;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.store.InMemoryStore{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state],null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28968){\nvar self__ \x3d this;\nvar G__28968__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28970,other28971){\nvar self__ \x3d this;\nvar this28970__$1 \x3d this;\nreturn (((!((other28971 \x3d\x3d null)))) \x26\x26 ((((this28970__$1.constructor \x3d\x3d\x3d other28971.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap)))))));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28969){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29104 \x3d k28969;\nvar G__29104__$1 \x3d (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null);\nswitch (G__29104__$1) {\ncase \x22state\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28969);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29126 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29127 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127)))){\nreturn (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state,null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.store.InMemoryStore.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null)], null);\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$type \x3d true);\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.store/InMemoryStore\x22,null,(1),null));\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.store/InMemoryStore\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/InMemoryStore.\n */\nintemporal.store.__GT_InMemoryStore \x3d (function intemporal$store$__GT_InMemoryStore(state){\nreturn (new intemporal.store.InMemoryStore(state,null,null,null));\n});\n\n/**\n * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values.\n */\nintemporal.store.map__GT_InMemoryStore \x3d (function intemporal$store$map__GT_InMemoryStore(G__28972){\nvar extmap__5365__auto__ \x3d (function (){var G__29201 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(cljs.core.record_QMARK_(G__28972)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201);\n} else {\nreturn G__29201;\n}\n})();\nreturn (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n"); SHADOW_ENV.evalLoad("intemporal.observer.js", true, "goog.provide(\x27intemporal.observer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.observer.LoggingObserver \x3d (function (log_atom,__meta,__extmap,__hash){\nthis.log_atom \x3d log_atom;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28974,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28979 \x3d k28974;\nvar G__28979__$1 \x3d (((G__28979 instanceof cljs.core.Keyword))?G__28979.fqn:null);\nswitch (G__28979__$1) {\ncase \x22log-atom\x22:\nreturn self__.log_atom;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28974,else__5326__auto__);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28981){\nvar vec__28982 \x3d p__28981;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.observer.LoggingObserver{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom],null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28973){\nvar self__ \x3d this;\nvar G__28973__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28973__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1356941522 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28975,other28976){\nvar self__ \x3d this;\nvar this28975__$1 \x3d this;\nreturn (((!((other28976 \x3d\x3d null)))) \x26\x26 ((((this28975__$1.constructor \x3d\x3d\x3d other28976.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.log_atom,other28976.log_atom)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.__extmap,other28976.__extmap)))))));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,workflow_id,seq_num,activity_name,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,workflow_id,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,result,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-resumed\x22,\x22workflow-resumed\x22,-1165962528),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,workflow_id,seq_num,fire_at){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,error,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,workflow_id,seq_num,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,workflow_id,seq_num,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,workflow_id,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,workflow_id,signal_name,payload){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,workflow_id,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-cancelled\x22,\x22workflow-cancelled\x22,696539230),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,workflow_id,seq_num,activity_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-started\x22,\x22activity-started\x22,-1116606589),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,workflow_id,suspension_type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-suspended\x22,\x22workflow-suspended\x22,1316626574),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),suspension_type,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28974){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29063 \x3d k28974;\nvar G__29063__$1 \x3d (((G__29063 instanceof cljs.core.Keyword))?G__29063.fqn:null);\nswitch (G__29063__$1) {\ncase \x22log-atom\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28974);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29081 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29080.cljs$core$IFn$_invoke$arity$2 ? pred__29080.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081) : pred__29080.call(null,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081)))){\nreturn (new intemporal.observer.LoggingObserver(G__28973,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28973),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom,null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,G__28973,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.observer.LoggingObserver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22log-atom\x22,\x22log-atom\x22,-1250409612,null)], null);\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$type \x3d true);\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.observer/LoggingObserver\x22,null,(1),null));\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.observer/LoggingObserver\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/LoggingObserver.\n */\nintemporal.observer.__GT_LoggingObserver \x3d (function intemporal$observer$__GT_LoggingObserver(log_atom){\nreturn (new intemporal.observer.LoggingObserver(log_atom,null,null,null));\n});\n\n/**\n * Factory function for intemporal.observer/LoggingObserver, taking a map of keywords to field values.\n */\nintemporal.observer.map__GT_LoggingObserver \x3d (function intemporal$observer$map__GT_LoggingObserver(G__28977){\nvar extmap__5365__auto__ \x3d (function (){var G__29148 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28977,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157));\nif(cljs.core.record_QMARK_(G__28977)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29148);\n} else {\nreturn G__29148;\n}\n})();\nreturn (new intemporal.observer.LoggingObserver(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157).cljs$core$IFn$_invoke$arity$1(G__28977),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an observer that logs all events to an atom\n */\nintemporal.observer.make_logging_observer \x3d (function intemporal$observer$make_logging_observer(var_args){\nvar G__29166 \x3d arguments.length;\nswitch (G__29166) {\ncase 0:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY));\n}));\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1 \x3d (function (log_atom){\nreturn intemporal.observer.__GT_LoggingObserver(log_atom);\n}));\n\n(intemporal.observer.make_logging_observer.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.observer.t_intemporal$observer29169 \x3d (function (meta29170){\nthis.meta29170 \x3d meta29170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_29171,meta29170__$1){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170__$1));\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_29171){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn self__.meta29170;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta29170\x22,\x22meta29170\x22,-945651366,null)], null);\n}));\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$type \x3d true);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorStr \x3d \x22intemporal.observer/t_intemporal$observer29169\x22);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.observer/t_intemporal$observer29169\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/t_intemporal$observer29169.\n */\nintemporal.observer.__GT_t_intemporal$observer29169 \x3d (function intemporal$observer$__GT_t_intemporal$observer29169(meta29170){\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170));\n});\n\n\n/**\n * Create an observer that does nothing\n */\nintemporal.observer.noop_observer \x3d (function intemporal$observer$noop_observer(){\nreturn (new intemporal.observer.t_intemporal$observer29169(cljs.core.PersistentArrayMap.EMPTY));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.impl.js", true, "goog.provide(\x27cljs.analyzer.impl\x27);\ncljs.analyzer.impl.ANY_SYM \x3d new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\ncljs.analyzer.impl.BOOLEAN_OR_SEQ \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),\x22null\x22,new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22], null), null);\ncljs.analyzer.impl.BOOLEAN_SYM \x3d new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null);\ncljs.analyzer.impl.CLJ_NIL_SYM \x3d new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null);\ncljs.analyzer.impl.CLJS_CORE_MACROS_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null);\ncljs.analyzer.impl.CLJS_CORE_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\ncljs.analyzer.impl.DOT_SYM \x3d new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null);\ncljs.analyzer.impl.IGNORE_SYM \x3d new cljs.core.Symbol(null,\x22ignore\x22,\x22ignore\x22,8989494,null);\ncljs.analyzer.impl.JS_STAR_SYM \x3d new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null);\ncljs.analyzer.impl.NEW_SYM \x3d new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null);\ncljs.analyzer.impl.NOT_NATIVE \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null),\x22null\x22,new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null),\x22null\x22], null), null);\ncljs.analyzer.impl.NUMBER_SYM \x3d new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\ncljs.analyzer.impl.STRING_SYM \x3d new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null);\ncljs.analyzer.impl.cljs_map_QMARK_ \x3d (function cljs$analyzer$impl$cljs_map_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_seq_QMARK_ \x3d (function cljs$analyzer$impl$cljs_seq_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISeq$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_vector_QMARK_ \x3d (function cljs$analyzer$impl$cljs_vector_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IVector$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_set_QMARK_ \x3d (function cljs$analyzer$impl$cljs_set_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n"); @@ -1623,6 +1623,6 @@ SHADOW_ENV.evalLoad("cljs.tagged_literals.js", true, "goog.provide(\x27cljs.tagg SHADOW_ENV.evalLoad("cljs.analyzer.js", true, "goog.provide(\x27cljs.analyzer\x27);\ncljs.analyzer._STAR_cljs_ns_STAR_ \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\ncljs.analyzer._STAR_cljs_file_STAR_ \x3d null;\ncljs.analyzer._STAR_checked_arrays_STAR_ \x3d false;\ncljs.analyzer._STAR_check_alias_dupes_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_static_fns_STAR_ \x3d false;\ncljs.analyzer._STAR_fn_invoke_direct_STAR_ \x3d false;\ncljs.analyzer._STAR_cljs_macros_path_STAR_ \x3d \x22/cljs/core\x22;\ncljs.analyzer._STAR_cljs_macros_is_classpath_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d cljs.core.with_meta(cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558),cljs.core.PersistentVector.EMPTY], null));\ncljs.analyzer._STAR_analyze_deps_STAR_ \x3d true;\ncljs.analyzer._STAR_load_tests_STAR_ \x3d true;\ncljs.analyzer._STAR_load_macros_STAR_ \x3d true;\ncljs.analyzer._STAR_reload_macros_STAR_ \x3d false;\ncljs.analyzer._STAR_macro_infer_STAR_ \x3d true;\ncljs.analyzer._STAR_passes_STAR_ \x3d null;\ncljs.analyzer._STAR_file_defs_STAR_ \x3d null;\ncljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d false;\n/**\n * The namespace of the constants table as a symbol.\n */\ncljs.analyzer.constants_ns_sym \x3d new cljs.core.Symbol(null,\x22cljs.core.constants\x22,\x22cljs.core.constants\x22,2057417066,null);\ncljs.analyzer._STAR_verbose_STAR_ \x3d false;\ncljs.analyzer._cljs_macros_loaded \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\ncljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217)],[true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);\ncljs.analyzer.unchecked_arrays_QMARK_ \x3d (function cljs$analyzer$unchecked_arrays_QMARK_(){\nreturn cljs.core._STAR_unchecked_arrays_STAR_;\n});\ncljs.analyzer.compiler_options \x3d (function cljs$analyzer$compiler_options(){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n});\ncljs.analyzer.get_externs \x3d (function cljs$analyzer$get_externs(){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n});\n/**\n * Returns false-y, :warn, or :error based on configuration and the\n * current value of *unchecked-arrays*.\n */\ncljs.analyzer.checked_arrays \x3d (function cljs$analyzer$checked_arrays(){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22advanced\x22,\x22advanced\x22,-451287892),new cljs.core.Keyword(null,\x22optimizations\x22,\x22optimizations\x22,-2047476854).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options()))) \x26\x26 ((!(cljs.core._STAR_unchecked_arrays_STAR_))))){\nreturn cljs.analyzer._STAR_checked_arrays_STAR_;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.js_reserved \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 63, [\x22typeof\x22,null,\x22float\x22,null,\x22implements\x22,null,\x22else\x22,null,\x22boolean\x22,null,\x22abstract\x22,null,\x22int\x22,null,\x22static\x22,null,\x22package\x22,null,\x22this\x22,null,\x22await\x22,null,\x22yield\x22,null,\x22interface\x22,null,\x22void\x22,null,\x22delete\x22,null,\x22class\x22,null,\x22export\x22,null,\x22var\x22,null,\x22try\x22,null,\x22long\x22,null,\x22null\x22,null,\x22return\x22,null,\x22methods\x22,null,\x22native\x22,null,\x22private\x22,null,\x22new\x22,null,\x22for\x22,null,\x22catch\x22,null,\x22extends\x22,null,\x22short\x22,null,\x22protected\x22,null,\x22throws\x22,null,\x22synchronized\x22,null,\x22transient\x22,null,\x22super\x22,null,\x22if\x22,null,\x22let\x22,null,\x22import\x22,null,\x22char\x22,null,\x22switch\x22,null,\x22const\x22,null,\x22case\x22,null,\x22break\x22,null,\x22volatile\x22,null,\x22function\x22,null,\x22continue\x22,null,\x22final\x22,null,\x22do\x22,null,\x22double\x22,null,\x22while\x22,null,\x22public\x22,null,\x22arguments\x22,null,\x22debugger\x22,null,\x22with\x22,null,\x22instanceof\x22,null,\x22default\x22,null,\x22throw\x22,null,\x22goto\x22,null,\x22finally\x22,null,\x22byte\x22,null,\x22constructor\x22,null,\x22in\x22,null,\x22enum\x22,null], null), null);\ncljs.analyzer.es5_allowed \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [\x22default\x22,null], null), null);\ncljs.analyzer.SENTINEL \x3d ({});\ncljs.analyzer.gets \x3d (function cljs$analyzer$gets(var_args){\nvar G__34418 \x3d arguments.length;\nswitch (G__34418) {\ncase 3:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k0,k1){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,k1);\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k0,k1,k2){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$2,k2);\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k0,k1,k2,k3){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$2,k2,cljs.analyzer.SENTINEL);\nif((m__$3 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$3,k3);\n}\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.analyzer.munge_path \x3d (function cljs$analyzer$munge_path(ss){\nreturn cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ss));\n});\n/**\n * Given a namespace as a symbol return the relative path. May optionally\n * provide the file extension, defaults to :cljs.\n */\ncljs.analyzer.ns__GT_relpath \x3d (function cljs$analyzer$ns__GT_relpath(var_args){\nvar G__34433 \x3d arguments.length;\nswitch (G__34433) {\ncase 1:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629));\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,ext){\nreturn [clojure.string.replace(cljs.analyzer.munge_path(ns),\x22.\x22,\x22/\x22),\x22.\x22,cljs.core.name(ext)].join(\x27\x27);\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.topo_sort \x3d (function cljs$analyzer$topo_sort(var_args){\nvar G__34450 \x3d arguments.length;\nswitch (G__34450) {\ncase 2:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,get_deps){\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(x,(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.sorted_map()),cljs.core.memoize(get_deps));\n}));\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,depth,state,memo_get_deps){\nvar deps \x3d (memo_get_deps.cljs$core$IFn$_invoke$arity$1 ? memo_get_deps.cljs$core$IFn$_invoke$arity$1(x) : memo_get_deps.call(null,x));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [depth], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\nvar seq__34465_38549 \x3d cljs.core.seq(deps);\nvar chunk__34466_38550 \x3d null;\nvar count__34467_38551 \x3d (0);\nvar i__34468_38552 \x3d (0);\nwhile(true){\nif((i__34468_38552 \x3c count__34467_38551)){\nvar dep_38553 \x3d chunk__34466_38550.cljs$core$IIndexed$_nth$arity$2(null,i__34468_38552);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38553,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38555 \x3d seq__34465_38549;\nvar G__38556 \x3d chunk__34466_38550;\nvar G__38557 \x3d count__34467_38551;\nvar G__38558 \x3d (i__34468_38552 + (1));\nseq__34465_38549 \x3d G__38555;\nchunk__34466_38550 \x3d G__38556;\ncount__34467_38551 \x3d G__38557;\ni__34468_38552 \x3d G__38558;\ncontinue;\n} else {\nvar temp__5825__auto___38559 \x3d cljs.core.seq(seq__34465_38549);\nif(temp__5825__auto___38559){\nvar seq__34465_38560__$1 \x3d temp__5825__auto___38559;\nif(cljs.core.chunked_seq_QMARK_(seq__34465_38560__$1)){\nvar c__5548__auto___38561 \x3d cljs.core.chunk_first(seq__34465_38560__$1);\nvar G__38562 \x3d cljs.core.chunk_rest(seq__34465_38560__$1);\nvar G__38563 \x3d c__5548__auto___38561;\nvar G__38564 \x3d cljs.core.count(c__5548__auto___38561);\nvar G__38565 \x3d (0);\nseq__34465_38549 \x3d G__38562;\nchunk__34466_38550 \x3d G__38563;\ncount__34467_38551 \x3d G__38564;\ni__34468_38552 \x3d G__38565;\ncontinue;\n} else {\nvar dep_38566 \x3d cljs.core.first(seq__34465_38560__$1);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38566,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38568 \x3d cljs.core.next(seq__34465_38560__$1);\nvar G__38569 \x3d null;\nvar G__38570 \x3d (0);\nvar G__38571 \x3d (0);\nseq__34465_38549 \x3d G__38568;\nchunk__34466_38550 \x3d G__38569;\ncount__34467_38551 \x3d G__38570;\ni__34468_38552 \x3d G__38571;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__34477_38572 \x3d cljs.core.seq(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(state),cljs.core._LT_,depth));\nvar chunk__34478_38573 \x3d null;\nvar count__34479_38574 \x3d (0);\nvar i__34480_38575 \x3d (0);\nwhile(true){\nif((i__34480_38575 \x3c count__34479_38574)){\nvar vec__34492_38576 \x3d chunk__34478_38573.cljs$core$IIndexed$_nth$arity$2(null,i__34480_38575);\nvar _LT_depth_38577 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(0),null);\nvar __38578 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38577], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38579 \x3d seq__34477_38572;\nvar G__38580 \x3d chunk__34478_38573;\nvar G__38581 \x3d count__34479_38574;\nvar G__38582 \x3d (i__34480_38575 + (1));\nseq__34477_38572 \x3d G__38579;\nchunk__34478_38573 \x3d G__38580;\ncount__34479_38574 \x3d G__38581;\ni__34480_38575 \x3d G__38582;\ncontinue;\n} else {\nvar temp__5825__auto___38583 \x3d cljs.core.seq(seq__34477_38572);\nif(temp__5825__auto___38583){\nvar seq__34477_38584__$1 \x3d temp__5825__auto___38583;\nif(cljs.core.chunked_seq_QMARK_(seq__34477_38584__$1)){\nvar c__5548__auto___38585 \x3d cljs.core.chunk_first(seq__34477_38584__$1);\nvar G__38586 \x3d cljs.core.chunk_rest(seq__34477_38584__$1);\nvar G__38587 \x3d c__5548__auto___38585;\nvar G__38588 \x3d cljs.core.count(c__5548__auto___38585);\nvar G__38589 \x3d (0);\nseq__34477_38572 \x3d G__38586;\nchunk__34478_38573 \x3d G__38587;\ncount__34479_38574 \x3d G__38588;\ni__34480_38575 \x3d G__38589;\ncontinue;\n} else {\nvar vec__34497_38590 \x3d cljs.core.first(seq__34477_38584__$1);\nvar _LT_depth_38591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(0),null);\nvar __38592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38591], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38593 \x3d cljs.core.next(seq__34477_38584__$1);\nvar G__38594 \x3d null;\nvar G__38595 \x3d (0);\nvar G__38596 \x3d (0);\nseq__34477_38572 \x3d G__38593;\nchunk__34478_38573 \x3d G__38594;\ncount__34479_38574 \x3d G__38595;\ni__34480_38575 \x3d G__38596;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(depth,(0))){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(state))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.topo_sort.cljs$lang$maxFixedArity \x3d 4);\n\n\ncljs.analyzer.ast_QMARK_ \x3d (function cljs$analyzer$ast_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 (cljs.core.contains_QMARK_(x,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955))));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.error_message !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.error_message \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__34508 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__34508.cljs$core$IFn$_invoke$arity$0 ? fexpr__34508.cljs$core$IFn$_invoke$arity$0() : fexpr__34508.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22error-message\x22),(function() { \nvar G__38597__delegate \x3d function (warning_type,_){\nreturn warning_type;\n};\nvar G__38597 \x3d function (warning_type,var_args){\nvar _ \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38598__i \x3d 0, G__38598__a \x3d new Array(arguments.length - 1);\nwhile (G__38598__i \x3c G__38598__a.length) {G__38598__a[G__38598__i] \x3d arguments[G__38598__i + 1]; ++G__38598__i;}\n _ \x3d new cljs.core.IndexedSeq(G__38598__a,0,null);\n} \nreturn G__38597__delegate.call(this,warning_type,_);};\nG__38597.cljs$lang$maxFixedArity \x3d 1;\nG__38597.cljs$lang$applyTo \x3d (function (arglist__38599){\nvar warning_type \x3d cljs.core.first(arglist__38599);\nvar _ \x3d cljs.core.rest(arglist__38599);\nreturn G__38597__delegate(warning_type,_);\n});\nG__38597.cljs$core$IFn$_invoke$arity$variadic \x3d G__38597__delegate;\nreturn G__38597;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),(function (warning_type,info){\nreturn [\x22Preamble resource file not found: \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22missing\x22,\x22missing\x22,362507769).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),(function (warning_type,info){\nreturn [\x22Required namespace not provided for \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),(function (warning_type,info){\nreturn [(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205).cljs$core$IFn$_invoke$arity$1(info))?\x22Can\x27t take value of macro \x22:\x22Use of undeclared Var \x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),(function (warning_type,info){\nreturn [\x22var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not public\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),(function (warning_type,p__34523){\nvar map__34525 \x3d p__34523;\nvar map__34525__$1 \x3d cljs.core.__destructure_map(map__34525);\nvar info \x3d map__34525__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629)),\x22, \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583)),\x22, or JavaScript source providing \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_provide),\x22\\\x22\x22,((clojure.string.includes_QMARK_(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22_\x22))?\x22 (Please check that namespaces with dashes use underscores in the ClojureScript file name)\x22:null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-macros-ns\x22,\x22undeclared-macros-ns\x22,-438029430),(function (warning_type,p__34547){\nvar map__34550 \x3d p__34547;\nvar map__34550__$1 \x3d cljs.core.__destructure_map(map__34550);\nvar info \x3d map__34550__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such macros namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428)),\x22 or \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 not declared ^:dynamic\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 already refers to: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 being replaced by: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info))))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(info)),\x22 is being replaced\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 no longer fn, references are stale\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),(function (warning_type,info){\nreturn [\x22Wrong number of args (\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519).cljs$core$IFn$_invoke$arity$1(info)),\x22) passed to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info);\n}\n})())].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 declared arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(info)),\x22 mismatch defined arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),(function (warning_type,info){\nreturn [\x22Invalid :refer, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not exist\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),(function (warning_type,info){\nreturn [\x22Can\x27t resolve protocol symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),(function (warning_type,info){\nreturn [\x22Symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not a protocol\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),(function (warning_type,info){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22no-such-method\x22,\x22no-such-method\x22,1087422840).cljs$core$IFn$_invoke$arity$1(info))){\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare method called \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n} else {\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare arity \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22invalid-arity\x22,\x22invalid-arity\x22,1335461949).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),(function (warning_type,info){\nreturn [\x22Duplicated methods in protocol implementation \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implemented multiple times\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 declares method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),(function (warning_type,info){\nvar overwritten_protocol \x3d new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22existing\x22,\x22existing\x22,-340796094).cljs$core$IFn$_invoke$arity$1(info));\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is overwriting \x22,(cljs.core.truth_(overwritten_protocol)?\x22method\x22:\x22function\x22),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),(cljs.core.truth_(overwritten_protocol)?[\x22 of protocol \x22,cljs.core.name(overwritten_protocol)].join(\x27\x27):null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implements method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),(function (warning_type,info){\nreturn [\x22Ignoring target object \\\x22\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(info)], 0)),\x22\\\x22 passed in recur to protocol method head\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have more than 1 variadic overload\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have fixed arity function with more params than variadic function\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have 2 overloads with same arity\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),(function (warning_type,info){\nreturn [\x22Extending an existing JavaScript type - use a different symbol name \x22,\x22instead of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22current-symbol\x22,\x22current-symbol\x22,-932381075).cljs$core$IFn$_invoke$arity$1(info)),\x22 e.g \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suggested-symbol\x22,\x22suggested-symbol\x22,-1329631875).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(info)),\x22, all arguments must be numbers, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639).cljs$core$IFn$_invoke$arity$1(info)),\x22 instead\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),(function (warning_type,p__34616){\nvar map__34617 \x3d p__34616;\nvar map__34617__$1 \x3d cljs.core.__destructure_map(map__34617);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar types \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639));\nvar G__34618 \x3d name;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34618)].join(\x27\x27)));\n\n}\n}\n}\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),(function (warning_type,info){\nreturn [\x22Cannot invoke type constructor \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 as function \x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 is a single segment namespace\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),(function (warning_type,p__34651){\nvar map__34652 \x3d p__34651;\nvar map__34652__$1 \x3d cljs.core.__destructure_map(map__34652);\nvar info \x3d map__34652__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34652__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar munged \x3d cljs.core.munge(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34650_SHARP_){\nif(cljs.core.truth_((cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_) : cljs.analyzer.js_reserved.call(null,p1__34650_SHARP_)))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_),\x22$\x22].join(\x27\x27);\n} else {\nreturn p1__34650_SHARP_;\n}\n}),clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name),/\\./))));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 contains a reserved JavaScript keyword,\x22,\x22 the corresponding Google Closure namespace will be munged to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),(function (warning_type,p__34662){\nvar map__34663 \x3d p__34662;\nvar map__34663__$1 \x3d cljs.core.__destructure_map(map__34663);\nvar info \x3d map__34663__$1;\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34663__$1,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401));\nreturn [\x22In \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0)),\x22, the alias name js is reserved for JavaScript interop\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),(function (warning_type,p__34669){\nvar map__34670 \x3d p__34669;\nvar map__34670__$1 \x3d cljs.core.__destructure_map(map__34670);\nvar info \x3d map__34670__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22 clashes with var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),(function (warning_type,p__34677){\nvar map__34678 \x3d p__34677;\nvar map__34678__$1 \x3d cljs.core.__destructure_map(map__34678);\nvar info \x3d map__34678__$1;\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34678__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 not declared dynamic and thus is not dynamically rebindable, but its name \x22,\x22suggests otherwise. Please either indicate ^:dynamic \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 or change the name\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),(function (warning_type,p__34684){\nvar map__34686 \x3d p__34684;\nvar map__34686__$1 \x3d cljs.core.__destructure_map(map__34686);\nvar info \x3d map__34686__$1;\nvar protocol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nreturn [\x22Bad extend-type method shape for protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(protocol),\x22 method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(method),\x22, method arities must be grouped together\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),(function (warning_type,p__34692){\nvar map__34693 \x3d p__34692;\nvar map__34693__$1 \x3d cljs.core.__destructure_map(map__34693);\nvar info \x3d map__34693__$1;\nvar module_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22module-type\x22,\x22module-type\x22,1392760304));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported JavaScript module type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(module_type),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),(function (warning_type,p__34698){\nvar map__34699 \x3d p__34698;\nvar map__34699__$1 \x3d cljs.core.__destructure_map(map__34699);\nvar preprocess \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22preprocess\x22,\x22preprocess\x22,1208285012));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported preprocess value \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(preprocess),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),(function (warning_type,p__34702){\nvar map__34703 \x3d p__34702;\nvar map__34703__$1 \x3d cljs.core.__destructure_map(map__34703);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34703__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 is shadowed by a local\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),(function (warning_type,p__34704){\nvar map__34705 \x3d p__34704;\nvar map__34705__$1 \x3d cljs.core.__destructure_map(map__34705);\nvar warn_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar property \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232));\nvar G__34707 \x3d warn_type;\nvar G__34707__$1 \x3d (((G__34707 instanceof cljs.core.Keyword))?G__34707.fqn:null);\nswitch (G__34707__$1) {\ncase \x22target\x22:\nreturn [\x22Cannot infer target type in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22\x22].join(\x27\x27);\n\nbreak;\ncase \x22property\x22:\nreturn [\x22Cannot resolve property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 for inferred type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),\x22 in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ncase \x22object\x22:\nreturn [\x22Adding extern to Object for property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 due to \x22,\x22ambiguous expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34707__$1)].join(\x27\x27)));\n\n}\n}));\ncljs.analyzer.default_warning_handler \x3d (function cljs$analyzer$default_warning_handler(warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nvar temp__5825__auto__ \x3d cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warning_type,extra);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nvar _STAR_print_fn_STAR__orig_val__34716 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_fn_STAR__temp_val__34717 \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__34717);\n\ntry{return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__34719 \x3d env;\nvar G__34720 \x3d [\x22WARNING: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27);\nreturn (cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2(G__34719,G__34720) : cljs.analyzer.message.call(null,G__34719,G__34720));\n})()], 0));\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__34716);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.default_warning_handler], null);\ncljs.analyzer.repeat_char \x3d (function cljs$analyzer$repeat_char(c,n){\nvar ret \x3d c;\nvar n__$1 \x3d n;\nwhile(true){\nif((n__$1 \x3e (0))){\nvar G__38610 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ret),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\nvar G__38611 \x3d (n__$1 - (1));\nret \x3d G__38610;\nn__$1 \x3d G__38611;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\ncljs.analyzer.hex_format \x3d (function cljs$analyzer$hex_format(s,pad){\nvar hex \x3d s.charCodeAt((0)).toString((16));\nvar len \x3d hex.length;\nvar hex__$1 \x3d (((len \x3c pad))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.repeat_char(\x220\x22,(pad - len))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex)].join(\x27\x27):hex);\nreturn [\x22_u\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex__$1),\x22_\x22].join(\x27\x27);\n});\ncljs.analyzer.gen_constant_id \x3d (function cljs$analyzer$gen_constant_id(value){\nvar prefix \x3d (((value instanceof cljs.core.Keyword))?\x22cst$kw$\x22:(((value instanceof cljs.core.Symbol))?\x22cst$sym$\x22:(function(){throw (new Error([\x22constant type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(value)),\x22 not supported\x22].join(\x27\x27)))})()\n));\nvar name \x3d (((value instanceof cljs.core.Keyword))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),(1)):cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\nvar name__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22.\x22,name))?\x22_DOT_\x22:clojure.string.replace(clojure.string.replace(cljs.core.munge(clojure.string.replace(clojure.string.replace(clojure.string.replace(name,\x22_\x22,\x22__\x22),\x22$\x22,\x22$$\x22),\x22-\x22,\x22_DASH_\x22)),\x22.\x22,\x22$\x22),/[^a-z0-9$_]/i,(function (p1__34743_SHARP_){\nreturn cljs.analyzer.hex_format(p1__34743_SHARP_,(4));\n})));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([prefix,name__$1].join(\x27\x27));\n});\ncljs.analyzer.register_constant_BANG_ \x3d (function cljs$analyzer$register_constant_BANG_(var_args){\nvar G__34747 \x3d arguments.length;\nswitch (G__34747) {\ncase 1:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (val){\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(null,val);\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (cenv){\nvar G__34766 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889)], null),(function (table){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(table,val))){\nreturn table;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(table,val,cljs.analyzer.gen_constant_id(val));\n}\n}));\nif(cljs.core.truth_(env)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__34766,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constants\x22,\x22cljs.analyzer/constants\x22,1697083770)], null),(function (p__34767){\nvar map__34768 \x3d p__34767;\nvar map__34768__$1 \x3d cljs.core.__destructure_map(map__34768);\nvar constants \x3d map__34768__$1;\nvar seen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.PersistentHashSet.EMPTY);\nvar order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.PersistentVector.EMPTY);\nvar G__34769 \x3d constants;\nif((!(cljs.core.contains_QMARK_(seen,val)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(G__34769,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,val),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(order,val)], 0));\n} else {\nreturn G__34769;\n}\n}));\n} else {\nreturn G__34766;\n}\n}));\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.default_namespaces \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.analyzer.t_cljs$analyzer34770 \x3d (function (meta34771){\nthis.meta34771 \x3d meta34771;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_34772,meta34771__$1){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771__$1));\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_34772){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn self__.meta34771;\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n} else {\nreturn cljs.analyzer.default_namespaces;\n}\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta34771\x22,\x22meta34771\x22,-699077853,null)], null);\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$type \x3d true);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorStr \x3d \x22cljs.analyzer/t_cljs$analyzer34770\x22);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.analyzer/t_cljs$analyzer34770\x22);\n}));\n\n/**\n * Positional factory function for cljs.analyzer/t_cljs$analyzer34770.\n */\ncljs.analyzer.__GT_t_cljs$analyzer34770 \x3d (function cljs$analyzer$__GT_t_cljs$analyzer34770(meta34771){\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771));\n});\n\n\ncljs.analyzer.namespaces \x3d (new cljs.analyzer.t_cljs$analyzer34770(cljs.core.PersistentArrayMap.EMPTY));\ncljs.analyzer.get_namespace \x3d (function cljs$analyzer$get_namespace(var_args){\nvar G__34797 \x3d arguments.length;\nswitch (G__34797) {\ncase 1:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,key);\n}));\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2 \x3d (function (cenv,key){\nvar temp__5827__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cenv),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),key], null));\nif((temp__5827__auto__ \x3d\x3d null)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),key)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null);\n} else {\nreturn null;\n}\n} else {\nvar ns \x3d temp__5827__auto__;\nreturn ns;\n}\n}));\n\n(cljs.analyzer.get_namespace.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.get_line \x3d (function cljs$analyzer$get_line(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\ncljs.analyzer.get_col \x3d (function cljs$analyzer$get_col(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\n/**\n * Given a Clojure namespace intern all macros into the ambient ClojureScript\n * analysis environment.\n */\ncljs.analyzer.intern_macros \x3d (function cljs$analyzer$intern_macros(var_args){\nvar G__34799 \x3d arguments.length;\nswitch (G__34799) {\ncase 1:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2(ns,false);\n}));\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,reload){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)) \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn reload;\n}\n})())){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)], null),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__34800){\nvar vec__34801 \x3d p__34800;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(function (){var vm \x3d cljs.core.meta(v);\nvar ns__$1 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(vm).getName();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(vm,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)),new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404),true], 0));\n})()], null);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__34804){\nvar vec__34805 \x3d p__34804;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(1),null);\nreturn v.isMacro();\n}),cljs.core.ns_interns_STAR_(ns)))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.intern_macros.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Construct an empty analysis environment. Required to analyze forms.\n */\ncljs.analyzer.empty_env \x3d (function cljs$analyzer$empty_env(){\nvar val__9407__auto__ \x3d cljs.env._STAR_compiler_STAR_;\nif((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0());\n} else {\n}\n\ntry{return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22js-globals\x22,\x22js-globals\x22,1670394727),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34808_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__34808_SHARP_,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),p1__34808_SHARP_,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)],null));\n}),cljs.core.list(new cljs.core.Symbol(null,\x22alert\x22,\x22alert\x22,1068580947,null),new cljs.core.Symbol(null,\x22window\x22,\x22window\x22,-1929916235,null),new cljs.core.Symbol(null,\x22document\x22,\x22document\x22,311342840,null),new cljs.core.Symbol(null,\x22console\x22,\x22console\x22,-1426363712,null),new cljs.core.Symbol(null,\x22escape\x22,\x22escape\x22,648929575,null),new cljs.core.Symbol(null,\x22unescape\x22,\x22unescape\x22,-2037730561,null),new cljs.core.Symbol(null,\x22screen\x22,\x22screen\x22,-664376021,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22navigator\x22,\x22navigator\x22,-604431588,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22global\x22,\x22global\x22,1734126574,null),new cljs.core.Symbol(null,\x22process\x22,\x22process\x22,-1011242831,null),new cljs.core.Symbol(null,\x22require\x22,\x22require\x22,1172530194,null),new cljs.core.Symbol(null,\x22module\x22,\x22module\x22,-1229817578,null),new cljs.core.Symbol(null,\x22exports\x22,\x22exports\x22,895523255,null))))], null);\n}finally {if((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d null);\n} else {\n}\n}});\ncljs.analyzer.source_info__GT_error_data \x3d (function cljs$analyzer$source_info__GT_error_data(p__34809){\nvar map__34810 \x3d p__34809;\nvar map__34810__$1 \x3d cljs.core.__destructure_map(map__34810);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553),column], null);\n});\ncljs.analyzer.source_info \x3d (function cljs$analyzer$source_info(var_args){\nvar G__34812 \x3d arguments.length;\nswitch (G__34812) {\ncase 1:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (env){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(null,env);\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (name,env){\nvar G__34813 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)))?\x22cljs/core.cljs\x22:cljs.analyzer._STAR_cljs_file_STAR_),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(name,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(name,env)], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__34813,cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912)], null))], 0));\n} else {\nreturn G__34813;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.message \x3d (function cljs$analyzer$message(env,s){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))?[\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):(cljs.core.truth_(cljs.analyzer._STAR_cljs_file_STAR_)?[\x22 in file \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):null))].join(\x27\x27);\n});\ncljs.analyzer.warning \x3d (function cljs$analyzer$warning(warning_type,env,extra){\nvar seq__34814 \x3d cljs.core.seq(cljs.analyzer._STAR_cljs_warning_handlers_STAR_);\nvar chunk__34815 \x3d null;\nvar count__34816 \x3d (0);\nvar i__34817 \x3d (0);\nwhile(true){\nif((i__34817 \x3c count__34816)){\nvar handler \x3d chunk__34815.cljs$core$IIndexed$_nth$arity$2(null,i__34817);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38626 \x3d seq__34814;\nvar G__38627 \x3d chunk__34815;\nvar G__38628 \x3d count__34816;\nvar G__38629 \x3d (i__34817 + (1));\nseq__34814 \x3d G__38626;\nchunk__34815 \x3d G__38627;\ncount__34816 \x3d G__38628;\ni__34817 \x3d G__38629;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__34814);\nif(temp__5825__auto__){\nvar seq__34814__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__34814__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__34814__$1);\nvar G__38630 \x3d cljs.core.chunk_rest(seq__34814__$1);\nvar G__38631 \x3d c__5548__auto__;\nvar G__38632 \x3d cljs.core.count(c__5548__auto__);\nvar G__38633 \x3d (0);\nseq__34814 \x3d G__38630;\nchunk__34815 \x3d G__38631;\ncount__34816 \x3d G__38632;\ni__34817 \x3d G__38633;\ncontinue;\n} else {\nvar handler \x3d cljs.core.first(seq__34814__$1);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38634 \x3d cljs.core.next(seq__34814__$1);\nvar G__38635 \x3d null;\nvar G__38636 \x3d (0);\nvar G__38637 \x3d (0);\nseq__34814 \x3d G__38634;\nchunk__34815 \x3d G__38635;\ncount__34816 \x3d G__38636;\ni__34817 \x3d G__38637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.accumulating_warning_handler \x3d (function cljs$analyzer$accumulating_warning_handler(warn_acc){\nreturn (function (warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(warn_acc,cljs.core.conj,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [warning_type,env,extra], null));\n} else {\nreturn null;\n}\n});\n});\ncljs.analyzer.replay_accumulated_warnings \x3d (function cljs$analyzer$replay_accumulated_warnings(warn_acc){\nreturn cljs.core.run_BANG_((function (p1__34834_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.warning,p1__34834_SHARP_);\n}),cljs.core.deref(warn_acc));\n});\ncljs.analyzer.error_data \x3d (function cljs$analyzer$error_data(var_args){\nvar G__34840 \x3d arguments.length;\nswitch (G__34840) {\ncase 2:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,phase){\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,phase,null);\n}));\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,phase,symbol){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.source_info__GT_error_data(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase], null),(cljs.core.truth_(symbol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),symbol], null):null)], 0));\n}));\n\n(cljs.analyzer.error_data.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.compile_syntax_error \x3d (function cljs$analyzer$compile_syntax_error(env,msg,symbol){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22compile-syntax-check\x22,\x22compile-syntax-check\x22,-1865080468),symbol),(new Error(msg)));\n});\ncljs.analyzer.error \x3d (function cljs$analyzer$error(var_args){\nvar G__34868 \x3d arguments.length;\nswitch (G__34868) {\ncase 2:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,msg){\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,msg,null);\n}));\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,msg,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.message(env,msg),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349)),cause);\n}));\n\n(cljs.analyzer.error.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.analysis_error_QMARK_ \x3d (function cljs$analyzer$analysis_error_QMARK_(ex){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)));\n});\ncljs.analyzer.has_error_data_QMARK_ \x3d (function cljs$analyzer$has_error_data_QMARK_(ex){\nreturn cljs.core.contains_QMARK_(cljs.core.ex_data(ex),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\n});\ncljs.analyzer.implicit_nses \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.string\x22,\x22goog.string\x22,-2055533048,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog\x22,\x22goog\x22,-70603925,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.object\x22,\x22goog.object\x22,678593132,null),\x22null\x22,new cljs.core.Symbol(null,\x22Math\x22,\x22Math\x22,2033287572,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.array\x22,\x22goog.array\x22,-671977860,null),\x22null\x22], null), null);\ncljs.analyzer.implicit_import_QMARK_ \x3d (function cljs$analyzer$implicit_import_QMARK_(env,prefix,suffix){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.implicit_nses,prefix);\n});\ncljs.analyzer.confirm_var_exist_warning \x3d (function cljs$analyzer$confirm_var_exist_warning(env,prefix,suffix){\nreturn (function (env__$1,prefix__$1,suffix__$1){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),env__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),prefix__$1,new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),suffix__$1,new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205),(!(((function (){var G__34919 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1));\nvar G__34920 \x3d env__$1;\nreturn (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(G__34919,G__34920) : cljs.analyzer.get_expander.call(null,G__34919,G__34920));\n})() \x3d\x3d null)))], null));\n});\n});\n/**\n * If a library name has the form foo$bar, return a vector of the library and\n * the sublibrary property.\n */\ncljs.analyzer.lib_AMPERSAND_sublib \x3d (function cljs$analyzer$lib_AMPERSAND_sublib(lib){\nvar temp__5823__auto__ \x3d cljs.core.re_matches(/(.*)\\$(.*)/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xs \x3d temp__5823__auto__;\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),xs);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n}\n});\n/**\n * Check if a JavaScript namespace has been loaded. JavaScript vars are\n * not currently checked.\n */\ncljs.analyzer.loaded_js_ns_QMARK_ \x3d (function cljs$analyzer$loaded_js_ns_QMARK_(env,prefix){\nif(cljs.core.truth_(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix))){\nreturn null;\n} else {\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nreturn (((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))) || ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))));\n}\n});\ncljs.analyzer.internal_js_module_exists_QMARK_ \x3d (function cljs$analyzer$internal_js_module_exists_QMARK_(js_module_index,module){\nreturn cljs.core.contains_QMARK_(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((function (p__34963){\nvar vec__34964 \x3d p__34963;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(v)], null);\n})),js_module_index),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\n});\ncljs.analyzer.js_module_exists_QMARK__STAR_ \x3d cljs.core.memoize(cljs.analyzer.internal_js_module_exists_QMARK_);\ncljs.analyzer.js_module_exists_QMARK_ \x3d (function cljs$analyzer$js_module_exists_QMARK_(module){\nreturn cljs.analyzer.js_module_exists_QMARK__STAR_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931)], null)),module);\n});\ncljs.analyzer.node_module_dep_QMARK_ \x3d (function cljs$analyzer$node_module_dep_QMARK_(module){\ntry{return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22)) \x26\x26 (cljs.core.boolean$((function (){var or__5025__auto__ \x3d require.resolve(cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn require.resolve(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(module)));\n}\n})())));\n}catch (e34976){var _ \x3d e34976;\nreturn false;\n}});\ncljs.analyzer.dep_has_global_exports_QMARK_ \x3d (function cljs$analyzer$dep_has_global_exports_QMARK_(module){\nvar vec__35000 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(1),null);\nvar global_exports \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1),new cljs.core.Keyword(null,\x22global-exports\x22,\x22global-exports\x22,-1644865592)], null));\nreturn ((cljs.core.contains_QMARK_(global_exports,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(module__$1))) || (cljs.core.contains_QMARK_(global_exports,cljs.core.name(module__$1))));\n});\ncljs.analyzer.goog_module_dep_QMARK_ \x3d (function cljs$analyzer$goog_module_dep_QMARK_(module){\nvar vec__35013 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(1),null);\nvar module_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1);\nvar options \x3d cljs.analyzer.compiler_options();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22global-goog-object\x26array\x22,\x22global-goog-object\x26array\x22,907046210).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(and__5023__auto__)){\nvar fexpr__35025 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22goog.array\x22,null,\x22goog.object\x22,null], null), null);\nreturn (fexpr__35025.cljs$core$IFn$_invoke$arity$1 ? fexpr__35025.cljs$core$IFn$_invoke$arity$1(module_str) : fexpr__35025.call(null,module_str));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn false;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),module_str,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191)], null)));\n}\n});\ncljs.analyzer.confirm_var_exists \x3d (function cljs$analyzer$confirm_var_exists(var_args){\nvar G__35052 \x3d arguments.length;\nswitch (G__35052) {\ncase 3:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,prefix,suffix){\nvar warn \x3d cljs.analyzer.confirm_var_exist_warning(env,prefix,suffix);\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,warn);\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,prefix,suffix,missing_fn){\nvar sufstr \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix);\nvar suffix_str \x3d (((((!((\x22..\x22 \x3d\x3d\x3d sufstr)))) \x26\x26 (/\\./.test(sufstr))))?cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(sufstr,/\\./)):suffix);\nvar suffix__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(suffix_str);\nif((((!(cljs.analyzer.implicit_import_QMARK_(env,prefix,suffix__$1)))) \x26\x26 ((((!(cljs.analyzer.loaded_js_ns_QMARK_(env,prefix)))) \x26\x26 ((((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),prefix)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22unquote\x22,\x22unquote\x22,-1004694737,null),suffix__$1)))))) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),suffix__$1) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(prefix))))))))))){\nreturn (missing_fn.cljs$core$IFn$_invoke$arity$3 ? missing_fn.cljs$core$IFn$_invoke$arity$3(env,prefix,suffix__$1) : missing_fn.call(null,env,prefix,suffix__$1));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.confirm_var_exists_throw \x3d (function cljs$analyzer$confirm_var_exists_throw(){\nreturn (function (env,prefix,suffix){\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,(function (env__$1,prefix__$1,suffix__$1){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,[\x22Unable to resolve var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1),\x22 in this context\x22].join(\x27\x27));\n}));\n});\n});\ncljs.analyzer.resolve_ns_alias \x3d (function cljs$analyzer$resolve_ns_alias(var_args){\nvar G__35093 \x3d arguments.length;\nswitch (G__35093) {\ncase 2:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nvar map__35105 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nvar map__35105__$1 \x3d cljs.core.__destructure_map(map__35105);\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(requires,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,sym);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.resolve_macro_ns_alias \x3d (function cljs$analyzer$resolve_macro_ns_alias(var_args){\nvar G__35113 \x3d arguments.length;\nswitch (G__35113) {\ncase 2:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym,not_found);\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given env, an analysis environment, and ns-sym, a symbol identifying a\n * namespace, confirm that the namespace exists. Warn if not found.\n */\ncljs.analyzer.confirm_ns \x3d (function cljs$analyzer$confirm_ns(env,ns_sym){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns_sym)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.implicit_nses,ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_sym) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(ns_sym))))))))))){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),ns_sym,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),ns_sym], null));\n} else {\nreturn null;\n}\n});\n/**\n * Is sym visible from core in the current compilation namespace?\n */\ncljs.analyzer.core_name_QMARK_ \x3d (function cljs$analyzer$core_name_QMARK_(env,sym){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar temp__5827__auto__ \x3d (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(sym,env) : cljs.analyzer.get_expander.call(null,sym,env));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar mac \x3d temp__5827__auto__;\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(mac));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns.getName(),new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null));\n}\n}\n})();\nif(and__5023__auto__){\nreturn (!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Is sym public?\n */\ncljs.analyzer.public_name_QMARK_ \x3d (function cljs$analyzer$public_name_QMARK_(ns,sym){\nvar var_ast \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.name(ns),\x22$macros\x22].join(\x27\x27)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\n}\n})();\nreturn (((!((var_ast \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(var_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22anonymous\x22,\x22anonymous\x22,447897231).cljs$core$IFn$_invoke$arity$1(var_ast);\n}\n})())));\n});\ncljs.analyzer.js_tag_QMARK_ \x3d (function cljs$analyzer$js_tag_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.namespace(x))))));\n});\ncljs.analyzer.normalize_js_tag \x3d (function cljs$analyzer$normalize_js_tag(x){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)))){\nreturn cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),/\\./))),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null))], null));\n} else {\nreturn x;\n}\n});\n/**\n * Ensures that a type tag is a set.\n */\ncljs.analyzer.__GT_type_set \x3d (function cljs$analyzer$__GT_type_set(t){\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn t;\n} else {\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc([t]);\n}\n});\ncljs.analyzer.canonicalize_type \x3d (function cljs$analyzer$canonicalize_type(t){\n\nif((t instanceof cljs.core.Symbol)){\nreturn t;\n} else {\nif(cljs.core.empty_QMARK_(t)){\nreturn null;\n} else {\nif(((1) \x3d\x3d\x3d cljs.core.count(t))){\nreturn cljs.core.first(t);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null))){\nvar res \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null));\nif(((1) \x3d\x3d\x3d cljs.core.count(res))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nreturn res;\n}\n} else {\nreturn t;\n\n}\n}\n}\n}\n}\n});\n/**\n * Produces a union of types.\n */\ncljs.analyzer.add_types \x3d (function cljs$analyzer$add_types(var_args){\nvar G__35198 \x3d arguments.length;\nswitch (G__35198) {\ncase 0:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38656 \x3d arguments.length;\nvar i__5750__auto___38657 \x3d (0);\nwhile(true){\nif((i__5750__auto___38657 \x3c len__5749__auto___38656)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38657]));\n\nvar G__38659 \x3d (i__5750__auto___38657 + (1));\ni__5750__auto___38657 \x3d G__38659;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1 \x3d (function (t1){\nreturn t1;\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2 \x3d (function (t1,t2){\nif((((t1 \x3d\x3d null)) || ((t2 \x3d\x3d null)))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.canonicalize_type(clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.__GT_type_set(t1),cljs.analyzer.__GT_type_set(t2)));\n}\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic \x3d (function (t1,t2,ts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.add_types,cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(t1,t2),ts);\n}));\n\n/** @this {Function} */\n(cljs.analyzer.add_types.cljs$lang$applyTo \x3d (function (seq35193){\nvar G__35194 \x3d cljs.core.first(seq35193);\nvar seq35193__$1 \x3d cljs.core.next(seq35193);\nvar G__35196 \x3d cljs.core.first(seq35193__$1);\nvar seq35193__$2 \x3d cljs.core.next(seq35193__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35194,G__35196,seq35193__$2);\n}));\n\n(cljs.analyzer.add_types.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.analyzer.alias__GT_type \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22Array\x22,\x22Array\x22,-423496279,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22Boolean\x22,\x22Boolean\x22,1661141587,null),new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),new cljs.core.Symbol(null,\x22Symbol\x22,\x22Symbol\x22,716452869,null)], null);\ncljs.analyzer.has_extern_QMARK__STAR_ \x3d (function cljs$analyzer$has_extern_QMARK__STAR_(var_args){\nvar G__35222 \x3d arguments.length;\nswitch (G__35222) {\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar pre__$1 \x3d (function (){var temp__5827__auto__ \x3d cljs.core.find(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null)),cljs.core.first(pre));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn pre;\n} else {\nvar me \x3d temp__5827__auto__;\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.core.first(me)));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn pre;\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre));\n}\n}\n})();\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(pre__$1,externs,externs);\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,externs,top){\nwhile(true){\nif(cljs.core.empty_QMARK_(pre)){\nreturn true;\n} else {\nvar x \x3d cljs.core.first(pre);\nvar me \x3d cljs.core.find(externs,x);\nif(cljs.core.not(me)){\nreturn false;\n} else {\nvar vec__35245 \x3d me;\nvar x_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(1),null);\nvar xmeta \x3d cljs.core.meta(x_SINGLEQUOTE_);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(xmeta));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(xmeta);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.next(pre),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22super\x22,\x22super\x22,840752938).cljs$core$IFn$_invoke$arity$1(xmeta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar super$ \x3d temp__5825__auto__;\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [super$], null),cljs.core.next(pre)),externs,top);\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38669 \x3d cljs.core.next(pre);\nvar G__38670 \x3d externs_SINGLEQUOTE_;\nvar G__38671 \x3d top;\npre \x3d G__38669;\nexterns \x3d G__38670;\ntop \x3d G__38671;\ncontinue;\n}\n\n}\n\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.has_extern_QMARK_ \x3d (function cljs$analyzer$has_extern_QMARK_(var_args){\nvar G__35283 \x3d arguments.length;\nswitch (G__35283) {\ncase 1:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2(pre,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2(pre,externs);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pre)))?(function (){var x \x3d cljs.core.first(pre);\nvar or__5025__auto____$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),x));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null)], null),x));\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(pre)),\x22cljs$\x22);\n}\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.js_tag \x3d (function cljs$analyzer$js_tag(var_args){\nvar G__35322 \x3d arguments.length;\nswitch (G__35322) {\ncase 1:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,tag_type){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3(pre,tag_type,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,tag_type,externs){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(pre,tag_type,externs,externs);\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4 \x3d (function (pre,tag_type,externs,top){\nvar temp__5825__auto__ \x3d cljs.core.find(externs,cljs.core.first(pre));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__35336 \x3d temp__5825__auto__;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(1),null);\nvar me \x3d vec__35336;\nvar tag \x3d (function (){var G__35341 \x3d cljs.core.meta(p);\nreturn (tag_type.cljs$core$IFn$_invoke$arity$1 ? tag_type.cljs$core$IFn$_invoke$arity$1(G__35341) : tag_type.call(null,G__35341));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),(1))){\nif(cljs.core.truth_(tag)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2(tag,tag) : cljs.analyzer.alias__GT_type.call(null,tag,tag))));\n} else {\nreturn null;\n}\n} else {\nvar or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.next(pre),tag_type,externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),tag_type,cljs.core.get.cljs$core$IFn$_invoke$arity$2(top,tag),top);\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.js_tag.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.dotted_symbol_QMARK_ \x3d (function cljs$analyzer$dotted_symbol_QMARK_(sym){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nreturn ((goog.string.contains(s,\x22.\x22)) \x26\x26 ((!(goog.string.contains(s,\x22..\x22)))));\n});\ncljs.analyzer.munge_node_lib \x3d (function cljs$analyzer$munge_node_lib(name){\nreturn [\x22node$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\ncljs.analyzer.munge_goog_module_lib \x3d (function cljs$analyzer$munge_goog_module_lib(var_args){\nvar G__35368 \x3d arguments.length;\nswitch (G__35368) {\ncase 1:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nreturn [\x22goog$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(ns)),\x22.\x22,cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.munge_global_export \x3d (function cljs$analyzer$munge_global_export(name){\nreturn [\x22global$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\n/**\n * Takes a namespace and an unqualified symbol and potentially returns a new\n * symbol to be used in lieu of the original.\n */\ncljs.analyzer.resolve_alias \x3d (function cljs$analyzer$resolve_alias(ns,sym){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (function (){var fexpr__35421 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),\x22null\x22,new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),\x22null\x22], null), null);\nreturn (fexpr__35421.cljs$core$IFn$_invoke$arity$1 ? fexpr__35421.cljs$core$IFn$_invoke$arity$1(sym) : fexpr__35421.call(null,sym));\n})();\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.analyzer.checked_arrays();\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x22,\x22checked-aget\x22,950823006,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x22,\x22checked-aset\x22,1556136760,null)], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x27\x22,\x22checked-aget\x27\x22,212330530,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x27\x22,\x22checked-aset\x27\x22,-510930777,null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.checked_arrays(),sym], null));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.ns__GT_module_type \x3d (function cljs$analyzer$ns__GT_module_type(ns){\nif(cljs.analyzer.goog_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656);\n} else {\nif(cljs.core.truth_(cljs.analyzer.js_module_exists_QMARK_(ns))){\nreturn new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579);\n} else {\nif(cljs.analyzer.node_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198);\n} else {\nif(cljs.analyzer.dep_has_global_exports_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047);\n} else {\nreturn null;\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.resolve_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.resolve_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35446 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35446.cljs$core$IFn$_invoke$arity$0 ? fexpr__35446.cljs$core$IFn$_invoke$arity$0() : fexpr__35446.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22resolve*\x22),(function (env,sym,full_ns,current_ns){\nreturn cljs.analyzer.ns__GT_module_type(full_ns);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null);\n}));\ncljs.analyzer.extern_pre \x3d (function cljs$analyzer$extern_pre(sym,current_ns){\nvar pre \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./))));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n\nreturn pre;\n});\ncljs.analyzer.node_like_QMARK_ \x3d (function cljs$analyzer$node_like_QMARK_(var_args){\nvar G__35484 \x3d arguments.length;\nswitch (G__35484) {\ncase 0:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options());\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nodejs\x22,\x22nodejs\x22,321212524),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721).cljs$core$IFn$_invoke$arity$1(opts))) \x26\x26 (new cljs.core.Keyword(null,\x22nodejs-rt\x22,\x22nodejs-rt\x22,-512437071).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d false));\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$lang$maxFixedArity \x3d 1);\n\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),(function (env,sym,full_ns,current_ns){\nif(cljs.core.truth_(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0())){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null);\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047),(function (env,sym,full_ns,current_ns){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_global_export(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}));\n/**\n * Specially-treated symbols for which we don\x27t trigger :private-var-access warnings.\n */\ncljs.analyzer.private_var_access_exceptions \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),\x22null\x22], null), null);\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (env,sym,full_ns,current_ns){\nvar sym_ast \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),full_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\nvar sym_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(sym_ast);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ((cljs.core.not(cljs.analyzer._STAR_private_var_access_nowarn_STAR_)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.private_var_access_exceptions,sym_name)))));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_name], null));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym_ast,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym_name,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null)], 0));\n}));\ncljs.analyzer.required_QMARK_ \x3d (function cljs$analyzer$required_QMARK_(ns,env){\nreturn ((cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)))),ns)) || (cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)))),ns)));\n});\n/**\n * Returns true if ns is a required namespace and a JavaScript module that\n * might be invokeable as a function.\n */\ncljs.analyzer.invokeable_ns_QMARK_ \x3d (function cljs$analyzer$invokeable_ns_QMARK_(ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar and__5023__auto__ \x3d cljs.analyzer.required_QMARK_(ns__$1,env);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn ((cljs.analyzer.node_module_dep_QMARK_(ns__$1)) || (cljs.analyzer.dep_has_global_exports_QMARK_(ns__$1)));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.resolve_invokeable_ns \x3d (function cljs$analyzer$resolve_invokeable_ns(ns,current_ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar module_type \x3d cljs.analyzer.ns__GT_module_type(ns__$1);\nvar G__35560 \x3d module_type;\nvar G__35560__$1 \x3d (((G__35560 instanceof cljs.core.Keyword))?G__35560.fqn:null);\nswitch (G__35560__$1) {\ncase \x22js\x22:\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1);\n}\n})()),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22node\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_node_lib(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22global\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_global_export(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__35560__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * goog.modules are deterministically assigned to a property of the namespace,\n * we cannot expect the reference will be globally available, so we resolve to\n * namespace local reference.\n */\ncljs.analyzer.resolve_import \x3d (function cljs$analyzer$resolve_import(env,import$){\nif(cljs.analyzer.goog_module_dep_QMARK_(import$)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),import$));\n} else {\nreturn import$;\n}\n});\ncljs.analyzer.handle_symbol_local \x3d (function cljs$analyzer$handle_symbol_local(sym,lb){\nif((lb instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null);\n} else {\nreturn lb;\n}\n});\n/**\n * Resolve a var. Accepts a side-effecting confirm fn for producing\n * warnings about unresolved vars.\n */\ncljs.analyzer.resolve_var \x3d (function cljs$analyzer$resolve_var(var_args){\nvar G__35604 \x3d arguments.length;\nswitch (G__35604) {\ncase 2:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,sym){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,null);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,sym,confirm){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,sym,confirm,true);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,sym,confirm,default_QMARK_){\nwhile(true){\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nif((\x22js\x22 \x3d\x3d\x3d cljs.core.namespace(sym))){\nvar symn \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar shadowed_by_local \x3d cljs.analyzer.handle_symbol_local(symn,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,symn));\nif((!((shadowed_by_local \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadowed_by_local,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nvar pre \x3d cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./)));\nif(((cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta((function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1(pre);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null))], null),(function (){var temp__5825__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ret_tag \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358),true,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag], null);\n} else {\nreturn null;\n}\n})()], 0));\n\n}\n} else {\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nvar lb \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,sym));\nvar current_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nif((!((lb \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lb,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns \x3d cljs.core.namespace(sym);\nvar ns__$1 \x3d (((\x22clojure.core\x22 \x3d\x3d\x3d ns))?\x22cljs.core\x22:ns);\nvar full_ns \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,ns__$1,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns__$1);\n}\n})());\nif((!((confirm \x3d\x3d null)))){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns)){\ncljs.analyzer.confirm_ns(env,full_ns);\n} else {\n}\n\nvar G__35668_38723 \x3d env;\nvar G__35669_38724 \x3d full_ns;\nvar G__35670_38725 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35668_38723,G__35669_38724,G__35670_38725) : confirm.call(null,G__35668_38723,G__35669_38724,G__35670_38725));\n} else {\n}\n\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif(cljs.analyzer.dotted_symbol_QMARK_(sym)){\nvar idx \x3d s.indexOf(\x22.\x22);\nvar prefix \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx));\nvar suffix \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1)));\nvar temp__5823__auto__ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,prefix,null,false);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar resolved \x3d temp__5823__auto__;\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(resolved,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),((function (env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals){\nreturn (function (p1__35593_SHARP_){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__35593_SHARP_),\x22.\x22,suffix].join(\x27\x27));\n});})(env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals))\n);\n} else {\nvar s__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__35684 \x3d s;\nif(cljs.analyzer.goog_module_dep_QMARK_(sym)){\nreturn cljs.analyzer.resolve_import(env,G__35684);\n} else {\nreturn G__35684;\n}\n})());\nvar idx__$1 \x3d s__$1.lastIndexOf(\x22.\x22);\nvar pre \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$1,(0),idx__$1);\nvar suf \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(idx__$1 + (1)));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(pre,suf),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(pre)], null);\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym) \x3d\x3d null)))){\nvar full_ns \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym);\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym);\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym__$1,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym) \x3d\x3d null)))){\nvar G__38729 \x3d env;\nvar G__38730 \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym);\nvar G__38731 \x3d confirm;\nvar G__38732 \x3d default_QMARK_;\nenv \x3d G__38729;\nsym \x3d G__38730;\nconfirm \x3d G__38731;\ndefault_QMARK_ \x3d G__38732;\ncontinue;\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)))){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nif(cljs.analyzer.core_name_QMARK_(env,sym)){\nvar sym__$1 \x3d cljs.analyzer.resolve_alias(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),sym);\nif((!((confirm \x3d\x3d null)))){\nvar G__35721_38733 \x3d env;\nvar G__35722_38734 \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\nvar G__35723_38735 \x3d sym__$1;\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35721_38733,G__35722_38734,G__35723_38735) : confirm.call(null,G__35721_38733,G__35722_38734,G__35723_38735));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null)], 0));\n} else {\nif(cljs.core.truth_(cljs.analyzer.invokeable_ns_QMARK_(s,env))){\nreturn cljs.analyzer.resolve_invokeable_ns(s,current_ns,env);\n} else {\nif(cljs.core.truth_(default_QMARK_)){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nreturn null;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.resolve_var.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve an existing var.\n * Emits a warning if no such var exists.\n */\ncljs.analyzer.resolve_existing_var \x3d (function cljs$analyzer$resolve_existing_var(env,sym){\nif(cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists);\n} else {\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,sym);\n}\n});\n/**\n * Given env, an analysis environment env, and names, a list of symbols, confirm\n * that all correspond to declared dynamic vars.\n */\ncljs.analyzer.confirm_bindings \x3d (function cljs$analyzer$confirm_bindings(env,names){\nvar seq__35752 \x3d cljs.core.seq(names);\nvar chunk__35753 \x3d null;\nvar count__35754 \x3d (0);\nvar i__35755 \x3d (0);\nwhile(true){\nif((i__35755 \x3c count__35754)){\nvar name \x3d chunk__35753.cljs$core$IIndexed$_nth$arity$2(null,i__35755);\nvar env_38737__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38738 \x3d cljs.analyzer.resolve_existing_var(env_38737__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38738;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38738));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38737__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38738,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38738)], null));\n} else {\n}\n\n\nvar G__38740 \x3d seq__35752;\nvar G__38741 \x3d chunk__35753;\nvar G__38742 \x3d count__35754;\nvar G__38743 \x3d (i__35755 + (1));\nseq__35752 \x3d G__38740;\nchunk__35753 \x3d G__38741;\ncount__35754 \x3d G__38742;\ni__35755 \x3d G__38743;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__35752);\nif(temp__5825__auto__){\nvar seq__35752__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__35752__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__35752__$1);\nvar G__38746 \x3d cljs.core.chunk_rest(seq__35752__$1);\nvar G__38747 \x3d c__5548__auto__;\nvar G__38748 \x3d cljs.core.count(c__5548__auto__);\nvar G__38749 \x3d (0);\nseq__35752 \x3d G__38746;\nchunk__35753 \x3d G__38747;\ncount__35754 \x3d G__38748;\ni__35755 \x3d G__38749;\ncontinue;\n} else {\nvar name \x3d cljs.core.first(seq__35752__$1);\nvar env_38750__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38751 \x3d cljs.analyzer.resolve_existing_var(env_38750__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38751;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38751));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38750__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38751,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38751)], null));\n} else {\n}\n\n\nvar G__38753 \x3d cljs.core.next(seq__35752__$1);\nvar G__38754 \x3d null;\nvar G__38755 \x3d (0);\nvar G__38756 \x3d (0);\nseq__35752 \x3d G__38753;\nchunk__35753 \x3d G__38754;\ncount__35754 \x3d G__38755;\ni__35755 \x3d G__38756;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve a macro.\n */\ncljs.analyzer.resolve_macro_var \x3d (function cljs$analyzer$resolve_macro_var(env,sym){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927));\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns__$1 \x3d cljs.core.namespace(sym);\nvar ns__$2 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure.core\x22,ns__$1))?\x22cljs.core\x22:ns__$1);\nvar full_ns \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$2);\nvar full_ns__$1 \x3d (((!(clojure.string.ends_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22].join(\x27\x27)):full_ns);\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null)) \x3d\x3d null)))){\nvar full_ns \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null)) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null));\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym__$1], null));\n} else {\nvar ns__$1 \x3d (((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null)) \x3d\x3d null))))?ns:((cljs.analyzer.core_name_QMARK_(env,sym))?cljs.analyzer.impl.CLJS_CORE_MACROS_SYM:null));\nif((!((ns__$1 \x3d\x3d null)))){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\n\n\ncljs.analyzer.specials \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 22, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null);\ncljs.analyzer._STAR_recur_frames_STAR_ \x3d null;\ncljs.analyzer._STAR_loop_lets_STAR_ \x3d cljs.core.List.EMPTY;\ncljs.analyzer._STAR_allow_redef_STAR_ \x3d false;\ncljs.analyzer._STAR_allow_ns_STAR_ \x3d true;\ncljs.analyzer.analyze_keyword \x3d (function cljs$analyzer$analyze_keyword(env,sym){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null)], null);\n});\ncljs.analyzer.get_tag \x3d (function cljs$analyzer$get_tag(ast){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast)));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.find_matching_method \x3d (function cljs$analyzer$find_matching_method(fn_ast,params){\nvar methods$ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fn_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n}\n})();\nvar c \x3d cljs.core.count(params);\nreturn cljs.core.some((function (m){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869).cljs$core$IFn$_invoke$arity$1(m) \x3d\x3d\x3d c);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(m);\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn m;\n} else {\nreturn and__5023__auto__;\n}\n}),methods$);\n});\ncljs.analyzer.type_QMARK_ \x3d (function cljs$analyzer$type_QMARK_(env,t){\nif((((!((t \x3d\x3d null)))) \x26\x26 ((t instanceof cljs.core.Symbol)))){\nvar var$ \x3d (function (){var _STAR_private_var_access_nowarn_STAR__orig_val__35815 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__35816 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__35816);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,t);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__35815);\n}})();\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(var$));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar temp__5827__auto____$2 \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto____$2 \x3d\x3d null)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22PersistentHashMap\x22,\x22cljs.core/PersistentHashMap\x22,-454120575,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22List\x22,\x22cljs.core/List\x22,1708954352,null),\x22null\x22], null), null),t);\n} else {\nvar proto \x3d temp__5827__auto____$2;\nreturn proto;\n}\n} else {\nvar type \x3d temp__5827__auto____$1;\nreturn type;\n}\n} else {\nvar type \x3d temp__5827__auto__;\nreturn type;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.unwrap_quote \x3d (function cljs$analyzer$unwrap_quote(p__35830){\nvar map__35833 \x3d p__35830;\nvar map__35833__$1 \x3d cljs.core.__destructure_map(map__35833);\nvar ast \x3d map__35833__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35833__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif(cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245))){\nreturn new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.infer_if \x3d (function cljs$analyzer$infer_if(env,ast){\nvar map__35844 \x3d cljs.analyzer.unwrap_quote(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__35844__$1 \x3d cljs.core.__destructure_map(map__35844);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar then_tag \x3d (function (){var G__35849 \x3d env;\nvar G__35850 \x3d new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35849,G__35850) : cljs.analyzer.infer_tag.call(null,G__35849,G__35850));\n})();\nif(((cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842))) \x26\x26 ((((!((form \x3d\x3d null)))) \x26\x26 ((!(form \x3d\x3d\x3d false))))))){\nreturn then_tag;\n} else {\nvar else_tag \x3d (function (){var G__35857 \x3d env;\nvar G__35858 \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35857,G__35858) : cljs.analyzer.infer_tag.call(null,G__35857,G__35858));\n})();\nif(((cljs.core.symbol_identical_QMARK_(then_tag,else_tag)) || (cljs.core.symbol_identical_QMARK_(else_tag,cljs.analyzer.impl.IGNORE_SYM)))){\nreturn then_tag;\n} else {\nif(cljs.core.symbol_identical_QMARK_(then_tag,cljs.analyzer.impl.IGNORE_SYM)){\nreturn else_tag;\n} else {\nif((((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,then_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,then_tag)))) \x26\x26 ((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,else_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,else_tag)))))){\nreturn new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null);\n} else {\nif((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,then_tag) \x3d\x3d null)))) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,else_tag) \x3d\x3d null)))))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nvar then_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(then_tag))?then_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([then_tag]));\nvar else_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(else_tag))?else_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([else_tag]));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(then_tag__$1,else_tag__$1);\n}\n\n}\n}\n}\n}\n});\ncljs.analyzer.js_var_QMARK_ \x3d (function cljs$analyzer$js_var_QMARK_(ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.js_var_fn_QMARK_ \x3d (function cljs$analyzer$js_var_fn_QMARK_(fn_ast){\nreturn cljs.analyzer.js_var_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n});\ncljs.analyzer.fn_ast__GT_tag \x3d (function cljs$analyzer$fn_ast__GT_tag(p__35891){\nvar map__35893 \x3d p__35891;\nvar map__35893__$1 \x3d cljs.core.__destructure_map(map__35893);\nvar fn_ast \x3d map__35893__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35893__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.analyzer.js_var_fn_QMARK_(fn_ast)){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.analyzer.infer_invoke \x3d (function cljs$analyzer$infer_invoke(env,p__35918){\nvar map__35919 \x3d p__35918;\nvar map__35919__$1 \x3d cljs.core.__destructure_map(map__35919);\nvar ast \x3d map__35919__$1;\nvar fn_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar me \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.find_matching_method(fn_ast,args),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839));\nvar temp__5827__auto__ \x3d (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,me) : cljs.analyzer.infer_tag.call(null,env,me));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d cljs.analyzer.fn_ast__GT_tag(fn_ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn cljs.analyzer.impl.ANY_SYM;\n} else {\nvar ret_tag \x3d temp__5827__auto____$1;\nreturn ret_tag;\n}\n} else {\nvar ret_tag \x3d temp__5827__auto__;\nreturn ret_tag;\n}\n});\n/**\n * Given env, an analysis environment, and e, an AST node, return the inferred\n * type of the node\n */\ncljs.analyzer.infer_tag \x3d (function cljs$analyzer$infer_tag(env,ast){\nvar temp__5827__auto__ \x3d cljs.analyzer.get_tag(ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar G__35920 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__35920__$1 \x3d (((G__35920 instanceof cljs.core.Keyword))?G__35920.fqn:null);\nswitch (G__35920__$1) {\ncase \x22recur\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22throw\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22let\x22:\nvar G__35924 \x3d env;\nvar G__35925 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35924,G__35925) : cljs.analyzer.infer_tag.call(null,G__35924,G__35925));\n\nbreak;\ncase \x22loop\x22:\nvar G__35928 \x3d env;\nvar G__35929 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35928,G__35929) : cljs.analyzer.infer_tag.call(null,G__35928,G__35929));\n\nbreak;\ncase \x22do\x22:\nvar G__35932 \x3d env;\nvar G__35933 \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35932,G__35933) : cljs.analyzer.infer_tag.call(null,G__35932,G__35933));\n\nbreak;\ncase \x22fn-method\x22:\nvar G__35935 \x3d env;\nvar G__35936 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35935,G__35936) : cljs.analyzer.infer_tag.call(null,G__35935,G__35936));\n\nbreak;\ncase \x22def\x22:\nvar G__35937 \x3d env;\nvar G__35938 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35937,G__35938) : cljs.analyzer.infer_tag.call(null,G__35937,G__35938));\n\nbreak;\ncase \x22invoke\x22:\nreturn cljs.analyzer.infer_invoke(env,ast);\n\nbreak;\ncase \x22if\x22:\nreturn cljs.analyzer.infer_if(env,ast);\n\nbreak;\ncase \x22const\x22:\nvar G__35939 \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(false,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nreturn cljs.analyzer.impl.ANY_SYM;\n\n}\n}\n\nbreak;\ncase \x22quote\x22:\nvar G__35940 \x3d env;\nvar G__35941 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35940,G__35941) : cljs.analyzer.infer_tag.call(null,G__35940,G__35941));\n\nbreak;\ncase \x22var\x22:\ncase \x22local\x22:\ncase \x22js-var\x22:\ncase \x22binding\x22:\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar G__35942 \x3d env;\nvar G__35943 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35942,G__35943) : cljs.analyzer.infer_tag.call(null,G__35942,G__35943));\n} else {\nvar init \x3d temp__5827__auto____$1;\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.infer_tag.call(null,env,init));\n}\n\nbreak;\ncase \x22host-field\x22:\ncase \x22host-call\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ncase \x22js\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.parse !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.parse \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35952 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35952.cljs$core$IFn$_invoke$arity$0 ? fexpr__35952.cljs$core$IFn$_invoke$arity$0() : fexpr__35952.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22parse\x22),(function() { \nvar G__38759__delegate \x3d function (op,rest){\nreturn op;\n};\nvar G__38759 \x3d function (op,var_args){\nvar rest \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38760__i \x3d 0, G__38760__a \x3d new Array(arguments.length - 1);\nwhile (G__38760__i \x3c G__38760__a.length) {G__38760__a[G__38760__i] \x3d arguments[G__38760__i + 1]; ++G__38760__i;}\n rest \x3d new cljs.core.IndexedSeq(G__38760__a,0,null);\n} \nreturn G__38759__delegate.call(this,op,rest);};\nG__38759.cljs$lang$maxFixedArity \x3d 1;\nG__38759.cljs$lang$applyTo \x3d (function (arglist__38761){\nvar op \x3d cljs.core.first(arglist__38761);\nvar rest \x3d cljs.core.rest(arglist__38761);\nreturn G__38759__delegate(op,rest);\n});\nG__38759.cljs$core$IFn$_invoke$arity$variadic \x3d G__38759__delegate;\nreturn G__38759;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.var_meta \x3d (function cljs$analyzer$var_meta(var_args){\nvar G__35964 \x3d arguments.length;\nswitch (G__35964) {\ncase 1:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1 \x3d (function (var$){\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,null);\n}));\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (var$,expr_env){\nvar sym \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$);\nvar ks \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095)], null);\nvar m \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var user_meta \x3d new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964).cljs$core$IFn$_invoke$arity$1(var$);\nvar uks \x3d cljs.core.keys(user_meta);\nreturn cljs.core.zipmap(uks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35957_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(user_meta,p1__35957_SHARP_),null,(1),null)),(2),null));\n}),uks));\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.zipmap(ks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35959_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(var$,p1__35959_SHARP_),null,(1),null)),(2),null));\n}),ks)),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null))))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),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(\x22cljs.core\x22,\x22when\x22,\x22cljs.core/when\x22,120293186,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(null,\x22.-cljs$lang$test\x22,\x22.-cljs$lang$test\x22,718963148,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),(function (){var arglists \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(var$);\nvar arglists_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists)))?cljs.core.second(arglists):arglists);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.with_meta,arglists_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)),(2),null));\n})()], 0))], 0));\nif(cljs.core.truth_(expr_env)){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,m) : cljs.analyzer.analyze.call(null,expr_env,m));\n} else {\nreturn m;\n}\n}));\n\n(cljs.analyzer.var_meta.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.var_ast \x3d (function cljs$analyzer$var_ast(env,sym){\nvar _STAR_private_var_access_nowarn_STAR__orig_val__36029 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__36030 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__36030);\n\ntry{var env__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar var$ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env__$1,sym,cljs.analyzer.confirm_var_exists_throw());\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar var_ns \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym)),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),(function (){var G__36055 \x3d expr_env;\nvar G__36056 \x3d 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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.name(var_ns),cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36055,G__36056) : cljs.analyzer.analyze.call(null,G__36055,G__36056));\n})(),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,expr_env)], null);\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__36029);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),(function (op,env,p__36064,_,___$1){\nvar vec__36066 \x3d p__36064;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(1),null);\nvar form \x3d vec__36066;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to var\x22);\n} else {\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Argument to var must be symbol\x22);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22the-var\x22,\x22the-var\x22,1428415613),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),cljs.analyzer.var_ast(env,sym)], 0));\n}));\ncljs.analyzer.predicate__GT_tag \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(\x22cljs.core\x22,\x22array?\x22,\x22cljs.core/array?\x22,-1655912448,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22boolean?\x22,\x22cljs.core/boolean?\x22,1400713761,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22char?\x22,\x22cljs.core/char?\x22,416405281,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22keyword?\x22,\x22cljs.core/keyword?\x22,713156450,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-symbol?\x22,\x22cljs.core/simple-symbol?\x22,-1951205629,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-symbol?\x22,\x22cljs.core/qualified-symbol?\x22,1570873476,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22var?\x22,\x22cljs.core/var?\x22,1711182854,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22map-entry?\x22,\x22cljs.core/map-entry?\x22,465406728,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22double?\x22,\x22cljs.core/double?\x22,1757455529,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-ident?\x22,\x22cljs.core/qualified-ident?\x22,-1863492566,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22inst?\x22,\x22cljs.core/inst?\x22,1216133710,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22float?\x22,\x22cljs.core/float?\x22,-941017745,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22true?\x22,\x22cljs.core/true?\x22,-77973136,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22number?\x22,\x22cljs.core/number?\x22,-811857295,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22volatile?\x22,\x22cljs.core/volatile?\x22,-1122186415,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22integer?\x22,\x22cljs.core/integer?\x22,1710697810,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22infinite?\x22,\x22cljs.core/infinite?\x22,-1069503726,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22undefined?\x22,\x22cljs.core/undefined?\x22,-1206515693,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22uuid?\x22,\x22cljs.core/uuid?\x22,-15131116,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22record?\x22,\x22cljs.core/record?\x22,1307655860,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22reduced?\x22,\x22cljs.core/reduced?\x22,-1192491371,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22tagged-literal?\x22,\x22cljs.core/tagged-literal?\x22,-1159666987,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22zero?\x22,\x22cljs.core/zero?\x22,-341242858,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22false?\x22,\x22cljs.core/false?\x22,-1660815306,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-ident?\x22,\x22cljs.core/simple-ident?\x22,1674885558,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-keyword?\x22,\x22cljs.core/simple-keyword?\x22,39474330,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seqable?\x22,\x22cljs.core/seqable?\x22,-745394886,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22symbol?\x22,\x22cljs.core/symbol?\x22,1422196122,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seq?\x22,\x22cljs.core/seq?\x22,-1302056292,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22delay?\x22,\x22cljs.core/delay?\x22,2099859324,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22regexp?\x22,\x22cljs.core/regexp?\x22,-348418979,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ident?\x22,\x22cljs.core/ident?\x22,1567441535,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22chunked-seq?\x22,\x22cljs.core/chunked-seq?\x22,-712922369,null)],[new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISequential\x22,\x22cljs.core/ISequential\x22,-950981796,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Var\x22,\x22cljs.core/Var\x22,2071014443,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMapEntry\x22,\x22cljs.core/IMapEntry\x22,535941300,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Inst\x22,\x22cljs.core/Inst\x22,959205835,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Volatile\x22,\x22cljs.core/Volatile\x22,-1098692185,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IUUID\x22,\x22cljs.core/IUUID\x22,-1606521379,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IRecord\x22,\x22cljs.core/IRecord\x22,635852000,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Reduced\x22,\x22cljs.core/Reduced\x22,971663396,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ITaggedLiteral\x22,\x22cljs.core/ITaggedLiteral\x22,-1236965094,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(\x22cljs.core\x22,\x22ISeqable\x22,\x22cljs.core/ISeqable\x22,137437203,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Delay\x22,\x22cljs.core/Delay\x22,-21574999,null),new cljs.core.Symbol(\x22js\x22,\x22RegExp\x22,\x22js/RegExp\x22,1778210562,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IChunkedSeq\x22,\x22cljs.core/IChunkedSeq\x22,-892943716,null)]);\n/**\n * Look for a predicate-induced tag when the test expression is a simple\n * application of a predicate to a local, as in (string? x).\n */\ncljs.analyzer.simple_predicate_induced_tag \x3d (function cljs$analyzer$simple_predicate_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((2) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36084 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36085 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36085);\n\ntry{var G__36086 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36087 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36086,G__36087) : cljs.analyzer.analyze.call(null,G__36086,G__36087));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36084);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nvar temp__5825__auto__ \x3d (function (){var G__36095 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nreturn (cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1(G__36095) : cljs.analyzer.predicate__GT_tag.call(null,G__36095));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto__){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Look for a type-check-induced tag when the test expression is the use of\n * instance? on a local, as in (instance? UUID x) or implements? on a local, as\n * in (implements? ICounted x).\n */\ncljs.analyzer.type_check_induced_tag \x3d (function cljs$analyzer$type_check_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((3) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.specials,cljs.core.first(test))))))))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36112 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36113 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36113);\n\ntry{var G__36115 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36116 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36115,G__36116) : cljs.analyzer.analyze.call(null,G__36115,G__36116));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36112);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nif(cljs.core.truth_((function (){var G__36118 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nvar fexpr__36117 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22implements?\x22,\x22cljs.core/implements?\x22,-251485149,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),\x22null\x22], null), null);\nreturn (fexpr__36117.cljs$core$IFn$_invoke$arity$1 ? fexpr__36117.cljs$core$IFn$_invoke$arity$1(G__36118) : fexpr__36117.call(null,G__36118));\n})())){\nvar analyzed_type \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36125 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36126 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36126);\n\ntry{var G__36130 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36131 \x3d cljs.core.second(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36130,G__36131) : cljs.analyzer.analyze.call(null,G__36130,G__36131));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36125);\n}})();\nvar tag \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_type);\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_type));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Refine a tag to exclude clj-nil if the test is a local.\n */\ncljs.analyzer.truth_induced_tag \x3d (function cljs$analyzer$truth_induced_tag(env,test){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (test instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(test) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),test], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar analyzed_symbol \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36144 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36145 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36145);\n\ntry{var G__36148 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36149 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36148,G__36149) : cljs.analyzer.analyze.call(null,G__36148,G__36149));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36144);\n}})();\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(analyzed_symbol);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nif(((cljs.core.set_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [test,cljs.analyzer.canonicalize_type(cljs.core.disj.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null)))], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Looks at the test and sets any tags which are induced by virtue\n * of the test being truthy. For example in (if (string? x) x :bar)\n * the local x in the then branch must be of string type.\n */\ncljs.analyzer.set_test_induced_tags \x3d (function cljs$analyzer$set_test_induced_tags(env,test){\nvar vec__36164 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.simple_predicate_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.type_check_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.truth_induced_tag(env,test);\n}\n}\n})();\nvar local \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(0),null);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(1),null);\nvar G__36172 \x3d env;\nif(cljs.core.truth_(local)){\nreturn cljs.core.assoc_in(G__36172,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),local,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null),tag);\n} else {\nreturn G__36172;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),(function (op,env,p__36181,name,_){\nvar vec__36183 \x3d p__36181;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(0),null);\nvar test \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(1),null);\nvar then \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(2),null);\nvar else$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(3),null);\nvar form \x3d vec__36183;\nif((cljs.core.count(form) \x3c (3))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too few arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too many arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nvar test_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36190 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36191 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36191);\n\ntry{var G__36192 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36193 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36192,G__36193) : cljs.analyzer.analyze.call(null,G__36192,G__36193));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36190);\n}})();\nvar then_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36194 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36195 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36195);\n\ntry{var G__36196 \x3d cljs.analyzer.set_test_induced_tags(env,test);\nvar G__36197 \x3d then;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36196,G__36197) : cljs.analyzer.analyze.call(null,G__36196,G__36197));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36194);\n}})();\nvar else_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36198 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36199 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36199);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,else$) : cljs.analyzer.analyze.call(null,env,else$));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36198);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test_expr,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then_expr,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),else_expr,new cljs.core.Keyword(null,\x22unchecked\x22,\x22unchecked\x22,924418378),cljs.core._STAR_unchecked_if_STAR_,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),(function (op,env,p__36215,name,_){\nvar vec__36220 \x3d p__36215;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(1),null);\nvar tests \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(2),null);\nvar thens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(3),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(4),null);\nvar form \x3d vec__36220;\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* must switch on symbol\x22,\x22\\n\x22,\x22(symbol? sym)\x22].join(\x27\x27)));\n}\n\nif(cljs.core.every_QMARK_(cljs.core.vector_QMARK_,tests)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be grouped in vectors\x22,\x22\\n\x22,\x22(every? vector? tests)\x22].join(\x27\x27)));\n}\n\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar v \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36239 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36240 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36240);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36239);\n}})();\nvar tests__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36208_SHARP_){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (t){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,t) : cljs.analyzer.analyze.call(null,expr_env,t));\n}),p1__36208_SHARP_);\n}),tests);\nvar thens__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36209_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,p1__36209_SHARP_) : cljs.analyzer.analyze.call(null,env,p1__36209_SHARP_));\n}),thens);\nvar nodes \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tests__$2,then){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-node\x22,\x22case-node\x22,1016946320),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (test){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-test\x22,\x22case-test\x22,-213512472),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(test),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),expr_env,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)], null)], null);\n}),tests__$2),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-then\x22,\x22case-then\x22,2107591745),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(then),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null);\n}),tests__$1,thens__$1);\nvar default$__$1 \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,default$) : cljs.analyzer.analyze.call(null,env,default$));\nif(cljs.core.every_QMARK_((function (t){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(t));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(t));\nif(and__5023__auto__){\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.char_QMARK_)(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(t));\n} else {\nreturn and__5023__auto__;\n}\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,tests__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be numbers, strings, or constants\x22,\x22\\n\x22,\x22(every? (fn [t] (or (-\x3e t :info :const) (and (\x3d :const (:op t)) ((some-fn number? string? char?) (:form t))))) (apply concat tests))\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case\x22,\x22case\x22,1143702196),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),v,new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),nodes,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),(function (op,env,p__36284,name,_){\nvar vec__36287 \x3d p__36284;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(0),null);\nvar throw_form \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(1),null);\nvar form \x3d vec__36287;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too few arguments to throw, throw expects a single Error instance\x22);\n} else {\nif(((2) \x3c cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to throw, throw expects a single Error instance\x22);\n} else {\n}\n}\n\nvar throw_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36297 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36298 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36298);\n\ntry{var G__36300 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36301 \x3d throw_form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36300,G__36301) : cljs.analyzer.analyze.call(null,G__36300,G__36301));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36297);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22throw\x22,\x22throw\x22,-1044625833),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),throw_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),(function (op,env,p__36324,name,_){\nvar vec__36327 \x3d p__36324;\nvar seq__36328 \x3d cljs.core.seq(vec__36327);\nvar first__36329 \x3d cljs.core.first(seq__36328);\nvar seq__36328__$1 \x3d cljs.core.next(seq__36328);\nvar ___$1 \x3d first__36329;\nvar body \x3d seq__36328__$1;\nvar form \x3d vec__36327;\nvar catchenv \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),(function (p1__36307_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),p1__36307_SHARP_)){\nreturn new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105);\n} else {\nreturn p1__36307_SHARP_;\n}\n}));\nvar catch_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36309_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36309_SHARP_),new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null));\n}));\nvar default_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(catch_QMARK_,(function (p1__36312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(p1__36312_SHARP_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\nvar finally_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36313_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36313_SHARP_),new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null));\n}));\nvar map__36334 \x3d (function (){var parser \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),body,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),null,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),null], null);\nwhile(true){\nif(cljs.core.seq_QMARK_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser))){\nvar vec__36377 \x3d new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser);\nvar seq__36378 \x3d cljs.core.seq(vec__36377);\nvar first__36379 \x3d cljs.core.first(seq__36378);\nvar seq__36378__$1 \x3d cljs.core.next(seq__36378);\nvar form__$1 \x3d first__36379;\nvar forms_STAR_ \x3d seq__36378__$1;\nvar parser_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms_STAR_);\nvar G__36383 \x3d new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__36383__$1 \x3d (((G__36383 instanceof cljs.core.Keyword))?G__36383.fqn:null);\nswitch (G__36383__$1) {\ncase \x22start\x22:\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38773 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22catches\x22,\x22catches\x22,-1478797617));\nparser \x3d G__38773;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38774 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38774;\ncontinue;\n} else {\nvar G__38775 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),cljs.core.conj,form__$1);\nparser \x3d G__38775;\ncontinue;\n\n}\n}\n\nbreak;\ncase \x22catches\x22:\nif(cljs.core.truth_(default_QMARK_(form__$1))){\nvar G__38776 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], 0));\nparser \x3d G__38776;\ncontinue;\n} else {\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38777 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138)], null),cljs.core.conj,form__$1);\nparser \x3d G__38777;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38780;\ncontinue;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid try form\x22);\n\n}\n}\n}\n\nbreak;\ncase \x22finally\x22:\nvar G__38783 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188)], 0));\nparser \x3d G__38783;\ncontinue;\n\nbreak;\ncase \x22done\x22:\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Unexpected form after finally\x22);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36383__$1)].join(\x27\x27)));\n\n}\n} else {\nreturn parser;\n}\nbreak;\n}\n})();\nvar map__36334__$1 \x3d cljs.core.__destructure_map(map__36334);\nvar body__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar cblocks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138));\nvar dblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381));\nvar fblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426));\nvar finally$ \x3d ((cljs.core.seq(fblock))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var _STAR_recur_frames_STAR__orig_val__36397 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36398 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36398);\n\ntry{var G__36399 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36400 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),cljs.core.rest(fblock))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36399,G__36400) : cljs.analyzer.analyze.call(null,G__36399,G__36400));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36397);\n}})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true):null);\nvar e \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.seq(cblocks);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn dblock;\n}\n})())?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22e\x22):null);\nvar default$ \x3d (function (){var temp__5823__auto__ \x3d dblock;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36401 \x3d temp__5823__auto__;\nvar seq__36402 \x3d cljs.core.seq(vec__36401);\nvar first__36403 \x3d cljs.core.first(seq__36402);\nvar seq__36402__$1 \x3d cljs.core.next(seq__36402);\nvar ___$2 \x3d first__36403;\nvar first__36403__$1 \x3d cljs.core.first(seq__36402__$1);\nvar seq__36402__$2 \x3d cljs.core.next(seq__36402__$1);\nvar ___$3 \x3d first__36403__$1;\nvar first__36403__$2 \x3d cljs.core.first(seq__36402__$2);\nvar seq__36402__$3 \x3d cljs.core.next(seq__36402__$2);\nvar name__$1 \x3d first__36403__$2;\nvar cb \x3d seq__36402__$3;\nreturn 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0))));\n} else {\nreturn 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,\x22throw\x22,\x22throw\x22,595905694,null),null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))));\n}\n})();\nvar cblock \x3d ((cljs.core.seq(cblocks))?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(\x22cljs.core\x22,\x22cond\x22,\x22cljs.core/cond\x22,2005388338,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__36412){\nvar vec__36413 \x3d p__36412;\nvar seq__36414 \x3d cljs.core.seq(vec__36413);\nvar first__36415 \x3d cljs.core.first(seq__36414);\nvar seq__36414__$1 \x3d cljs.core.next(seq__36414);\nvar ___$2 \x3d first__36415;\nvar first__36415__$1 \x3d cljs.core.first(seq__36414__$1);\nvar seq__36414__$2 \x3d cljs.core.next(seq__36414__$1);\nvar type \x3d first__36415__$1;\nvar first__36415__$2 \x3d cljs.core.first(seq__36414__$2);\nvar seq__36414__$3 \x3d cljs.core.next(seq__36414__$2);\nvar name__$1 \x3d first__36415__$2;\nvar cb \x3d seq__36414__$3;\nif(cljs.core.truth_(name__$1)){\nif(cljs.core.not(cljs.core.namespace(name__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t qualify symbol in catch\x22,\x22\\n\x22,\x22(not (namespace name))\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn 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,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(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),null,(1),null)),(new cljs.core.List(null,type,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,e,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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0)))),null,(1),null))))));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cblocks], 0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,(1),null)),(new cljs.core.List(null,default$,null,(1),null))], 0)))):default$);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(catchenv);\nvar locals__$1 \x3d (cljs.core.truth_(e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(e,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(e,env),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null)):locals);\nvar catch$ \x3d (cljs.core.truth_(cblock)?(function (){var _STAR_recur_frames_STAR__orig_val__36423 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36424 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36424);\n\ntry{var G__36428 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(catchenv,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1);\nvar G__36429 \x3d cblock;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36428,G__36429) : cljs.analyzer.analyze.call(null,G__36428,G__36429));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36423);\n}})():null);\nvar try$ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36432 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36433 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36433);\n\ntry{var G__36436 \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d e;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn finally$;\n}\n})())?catchenv:env);\nvar G__36437 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body__$1)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36436,G__36437) : cljs.analyzer.analyze.call(null,G__36436,G__36437));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36432);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22try\x22,\x22try\x22,1380742522),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(try$,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705),finally$,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524),catch$,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),(cljs.core.truth_(catch$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null):null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(finally$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], null):null)], 0)))], null);\n}));\ncljs.analyzer.valid_proto \x3d (function cljs$analyzer$valid_proto(x){\nif((x instanceof cljs.core.Symbol)){\nreturn x;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.elide_env \x3d (function cljs$analyzer$elide_env(env,ast,opts){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235));\n});\ncljs.analyzer.replace_env_pass \x3d (function cljs$analyzer$replace_env_pass(new_env){\nreturn (function (env,ast,opts){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new_env);\n});\n});\ncljs.analyzer.ast_children \x3d (function cljs$analyzer$ast_children(ast){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (c){\nvar g \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast,c);\nif(cljs.core.vector_QMARK_(g)){\nreturn g;\n} else {\nif(cljs.core.truth_(g)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null);\n} else {\nreturn null;\n}\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)], 0));\n});\ncljs.analyzer.constant_value_QMARK_ \x3d (function cljs$analyzer$constant_value_QMARK_(p__36477){\nvar map__36480 \x3d p__36477;\nvar map__36480__$1 \x3d cljs.core.__destructure_map(map__36480);\nvar ast \x3d map__36480__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36480__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar or__5025__auto__ \x3d (function (){var fexpr__36483 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null], null), null);\nreturn (fexpr__36483.cljs$core$IFn$_invoke$arity$1 ? fexpr__36483.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36483.call(null,op));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d (function (){var fexpr__36487 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),null], null), null);\nreturn (fexpr__36487.cljs$core$IFn$_invoke$arity$1 ? fexpr__36487.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36487.call(null,op));\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.every_QMARK_(cljs.analyzer.constant_value_QMARK_,cljs.analyzer.ast_children(ast));\n} else {\nreturn and__5023__auto__;\n}\n}\n});\ncljs.analyzer.const_expr__GT_constant_value \x3d (function cljs$analyzer$const_expr__GT_constant_value(p__36496){\nvar map__36497 \x3d p__36496;\nvar map__36497__$1 \x3d cljs.core.__destructure_map(map__36497);\nvar e \x3d map__36497__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36497__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__36500 \x3d op;\nvar G__36500__$1 \x3d (((G__36500 instanceof cljs.core.Keyword))?G__36500.fqn:null);\nswitch (G__36500__$1) {\ncase \x22quote\x22:\nvar G__36506 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(e);\nreturn (cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1(G__36506) : cljs.analyzer.const_expr__GT_constant_value.call(null,G__36506));\n\nbreak;\ncase \x22const\x22:\nreturn new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612).cljs$core$IFn$_invoke$arity$1(e);\n\nbreak;\ncase \x22map\x22:\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(e)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22set\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22vector\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36500__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.earmuffed_QMARK_ \x3d (function cljs$analyzer$earmuffed_QMARK_(sym){\nvar s \x3d cljs.core.name(sym);\nreturn (((((s).length) \x3e (2))) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22*\x22)) \x26\x26 (clojure.string.ends_with_QMARK_(s,\x22*\x22)))));\n});\ncljs.analyzer.core_ns_QMARK_ \x3d (function cljs$analyzer$core_ns_QMARK_(ns_sym){\nvar s \x3d cljs.core.name(ns_sym);\nreturn ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),ns_sym)) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22cljs.\x22)) || (clojure.string.starts_with_QMARK_(s,\x22clojure.\x22)))));\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),(function (op,env,form,_,___$1){\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n} else {\n}\n\nvar pfn \x3d (function() {\nvar G__38791 \x3d null;\nvar G__38791__2 \x3d (function (___$2,sym){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\n});\nvar G__38791__3 \x3d (function (___$2,sym,init){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nvar G__38791__4 \x3d (function (___$2,sym,doc,init){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nG__38791 \x3d function(___$2,sym,doc,init){\nswitch(arguments.length){\ncase 2:\nreturn G__38791__2.call(this,___$2,sym);\ncase 3:\nreturn G__38791__3.call(this,___$2,sym,doc);\ncase 4:\nreturn G__38791__4.call(this,___$2,sym,doc,init);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38791.cljs$core$IFn$_invoke$arity$2 \x3d G__38791__2;\nG__38791.cljs$core$IFn$_invoke$arity$3 \x3d G__38791__3;\nG__38791.cljs$core$IFn$_invoke$arity$4 \x3d G__38791__4;\nreturn G__38791;\n})()\n;\nvar args \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(pfn,form);\nvar sym \x3d new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(args);\nvar const_QMARK_ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar sym_meta \x3d cljs.core.meta(sym);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar protocol \x3d cljs.analyzer.valid_proto(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)));\nvar dynamic \x3d new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar clash_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27));\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(cljs.core.symbol_identical_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns),ns_name)));\n} else {\nreturn and__5023__auto__;\n}\n})())?(function(){throw cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t def ns-qualified name in namespace \x22,sym_ns].join(\x27\x27))})():(((!((sym_ns \x3d\x3d null))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)):sym\n));\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns], null)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)].join(\x27\x27)),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),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(sym__$1))], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t redefine a constant\x22);\n} else {\n}\n\nvar temp__5829__auto___38792 \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif((temp__5829__auto___38792 \x3d\x3d null)){\n} else {\nvar doc_38793 \x3d temp__5829__auto___38792;\nif(typeof doc_38793 \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n}\n}\n\nif(((cljs.core.not(dynamic)) \x26\x26 (((cljs.analyzer.earmuffed_QMARK_(sym__$1)) \x26\x26 ((!(cljs.analyzer.core_ns_QMARK_(ns_name)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)], null));\n} else {\n}\n\nvar temp__5829__auto___38794 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38794 \x3d\x3d null)){\n} else {\nvar v_38795 \x3d temp__5829__auto___38794;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.analyzer._STAR_allow_redef_STAR_);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta));\nif(and__5023__auto____$2){\nvar and__5023__auto____$3 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.analyzer._STAR_file_defs_STAR_),sym__$1);\n} else {\nreturn and__5023__auto____$3;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(v_38795)], null));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795)),new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null));\n} else {\n}\n}\n\nvar env__$1 \x3d ((((((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))) \x26\x26 (cljs.analyzer.core_name_QMARK_(env,sym__$1)))) || ((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym__$1], null)) \x3d\x3d null))))))?(function (){var ev \x3d cljs.analyzer.resolve_existing_var(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),cljs.core.with_meta(sym__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nvar conj_to_set \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);\nif(cljs.analyzer.public_name_QMARK_(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),sym__$1)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name], null));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym__$1], 0));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,sym__$1);\n})():env);\nvar var_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1));\nvar init_expr \x3d ((cljs.core.contains_QMARK_(args,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)))?(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),sym_meta,((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1)], 0)));\n\nvar _STAR_recur_frames_STAR__orig_val__36583 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36584 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36584);\n\ntry{var _STAR_allow_ns_STAR__orig_val__36585 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36586 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36586);\n\ntry{var G__36587 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36588 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nvar G__36589 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(G__36587,G__36588,G__36589) : cljs.analyzer.analyze.call(null,G__36587,G__36588,G__36589));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36585);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36583);\n}})()\n:null);\nvar fn_var_QMARK_ \x3d (((!((init_expr \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204))));\nvar tag__$1 \x3d ((fn_var_QMARK_)?(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(init_expr);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d tag;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347).cljs$core$IFn$_invoke$arity$1(init_expr);\n}\n}\n})():(cljs.core.truth_(tag)?tag:(cljs.core.truth_(dynamic)?cljs.analyzer.impl.ANY_SYM:new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr)\n)));\nvar export_as \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar export_val \x3d temp__5825__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,export_val)){\nreturn var_name;\n} else {\nreturn export_val;\n}\n} else {\nreturn null;\n}\n})();\nvar doc \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\n}\n})();\nvar temp__5829__auto___38800 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38800 \x3d\x3d null)){\n} else {\nvar v_38801 \x3d temp__5829__auto___38800;\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1)))) \x26\x26 (((new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(v_38801) \x3d\x3d\x3d true) \x26\x26 ((!(fn_var_QMARK_))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),env__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1], null));\n} else {\n}\n}\n\nif((((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null)) \x3d\x3d null)) || (cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta))))){\nif(cljs.core.truth_(cljs.analyzer._STAR_file_defs_STAR_)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_file_defs_STAR_,cljs.core.conj,sym__$1);\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),(function (){var G__36605 \x3d sym_meta;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36605,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),true);\n} else {\nreturn G__36605;\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(sym_meta,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878)], null),(function (f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$1)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))){\nreturn \x22cljs/core.cljs\x22;\n} else {\nreturn f;\n}\n}))], null),(cljs.core.truth_(doc)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc], null):null),(cljs.core.truth_(const_QMARK_)?(function (){var const_expr \x3d (function (){var _STAR_passes_STAR__orig_val__36606 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__36607 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__36607);\n\ntry{var G__36610 \x3d env__$1;\nvar G__36611 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36610,G__36611) : cljs.analyzer.analyze.call(null,G__36610,G__36611));\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__36606);\n}})();\nif(cljs.core.truth_(cljs.analyzer.constant_value_QMARK_(const_expr))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})():null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1),(cljs.core.truth_(protocol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),protocol], null):null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar protocol_symbol \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198),protocol_symbol,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22protocol-info\x22,\x22protocol-info\x22,1471745843).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(protocol_symbol)),new cljs.core.Keyword(null,\x22impls\x22,\x22impls\x22,-1314014853),cljs.core.PersistentHashSet.EMPTY], null);\n} else {\nreturn null;\n}\n})(),((fn_var_QMARK_)?(function (){var params \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36545_SHARP_){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(p1__36545_SHARP_)));\n}),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),cljs.core.not(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(sym_meta)),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556).cljs$core$IFn$_invoke$arity$1(init_expr)], null),(function (){var temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),params,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta),new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838),cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta)))], null);\n} else {\nvar top_fn_meta \x3d temp__5827__auto__;\nreturn top_fn_meta;\n}\n})()], 0));\n})():null),(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta);\n} else {\nreturn and__5023__auto__;\n}\n})())?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),true,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null):null),((((fn_var_QMARK_) \x26\x26 ((!((tag__$1 \x3d\x3d null))))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):(cljs.core.truth_(tag__$1)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null):null))], 0)));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns_name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36631 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)),new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377),true);\nvar G__36633 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36631,G__36633) : cljs.analyzer.analyze.call(null,G__36631,G__36633));\n})(),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516).cljs$core$IFn$_invoke$arity$1(sym_meta)], null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar goog_type \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441),goog_type], null);\n} else {\nreturn null;\n}\n})(),((new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env__$1) \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var-ast\x22,\x22var-ast\x22,1200379319),cljs.analyzer.var_ast(env__$1,sym__$1)], null):null),(function (){var temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar test \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),(function (){var G__36638 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36639 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36638,G__36639) : cljs.analyzer.analyze.call(null,G__36638,G__36639));\n})()], null);\n}\n})(),(((!((tag__$1 \x3d\x3d null))))?((fn_var_QMARK_)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null)):null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),(((!((export_as \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590),export_as], null):null),(((!((init_expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null)], null))], 0));\n}));\ncljs.analyzer.analyze_fn_method_param \x3d (function cljs$analyzer$analyze_fn_method_param(env){\nreturn (function (p__36646,p__36647){\nvar vec__36648 \x3d p__36646;\nvar locals \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(1),null);\nvar vec__36651 \x3d p__36647;\nvar arg_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(1),null);\nif(cljs.core.truth_(cljs.core.namespace(name))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t use qualified name as parameter: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar column \x3d cljs.analyzer.get_col(name,env);\nvar nmeta \x3d cljs.core.meta(name);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(nmeta);\nvar shadow__$1 \x3d (((!((locals \x3d\x3d null))))?cljs.analyzer.handle_symbol_local(name,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(name) : locals.call(null,name))):null);\nvar env__$1 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], 0));\nvar param \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,column,line,arg_id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,tag,shadow__$1,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837)]);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name,param),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(params,param)], null);\n});\n});\ncljs.analyzer.analyze_fn_method_body \x3d (function cljs$analyzer$analyze_fn_method_body(env,form,recur_frames){\nvar _STAR_recur_frames_STAR__orig_val__36674 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36675 \x3d recur_frames;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36675);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze.call(null,env,form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36674);\n}});\ncljs.analyzer.analyze_fn_method \x3d (function cljs$analyzer$analyze_fn_method(env,locals,form,type,analyze_body_QMARK_){\nvar param_names \x3d cljs.core.first(form);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar param_names__$1 \x3d cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar body \x3d cljs.core.next(form);\nvar step \x3d cljs.analyzer.analyze_fn_method_param(env);\nvar step_init \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [locals,cljs.core.PersistentVector.EMPTY], null);\nvar vec__36681 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,step_init,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,param_names__$1));\nvar locals__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(1),null);\nvar params_SINGLEQUOTE_ \x3d ((variadic \x3d\x3d\x3d true)?cljs.core.butlast(params):params);\nvar fixed_arity \x3d cljs.core.count(params_SINGLEQUOTE_);\nvar recur_frame \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY)], null);\nvar recur_frames \x3d cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_);\nvar body_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1], 0));\nvar body_form \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body)));\nvar expr \x3d (cljs.core.truth_(analyze_body_QMARK_)?cljs.analyzer.analyze_fn_method_body(body_env,body_form,recur_frames):null);\nvar recurs \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(recur_frame));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),variadic,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),fixed_arity,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22recurs\x22,\x22recurs\x22,-1959309309),recurs], null),(((!((expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235)], null)], null))], 0));\n});\ncljs.analyzer.fn_name_var \x3d (function cljs$analyzer$fn_name_var(env,locals,name){\nif((!((name \x3d\x3d null)))){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar fn_scope \x3d new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22fn-self-name\x22,\x22fn-self-name\x22,1461143531),true,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),fn_scope,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null)], null);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nvar ret_tag \x3d (((!((tag \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag], null):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([name_var,ret_tag], 0));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_fn_methods_pass2_STAR_ \x3d (function cljs$analyzer$analyze_fn_methods_pass2_STAR_(menv,locals,type,meths){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36696_SHARP_){\nreturn cljs.analyzer.analyze_fn_method(menv,locals,p1__36696_SHARP_,type,true);\n}),meths);\n});\ncljs.analyzer.analyze_fn_methods_pass2 \x3d (function cljs$analyzer$analyze_fn_methods_pass2(menv,locals,type,meths){\nreturn cljs.analyzer.analyze_fn_methods_pass2_STAR_(menv,locals,type,meths);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(function (op,env,p__36698,name,_){\nvar vec__36699 \x3d p__36698;\nvar seq__36700 \x3d cljs.core.seq(vec__36699);\nvar first__36701 \x3d cljs.core.first(seq__36700);\nvar seq__36700__$1 \x3d cljs.core.next(seq__36700);\nvar ___$1 \x3d first__36701;\nvar args \x3d seq__36700__$1;\nvar form \x3d vec__36699;\nvar named_fn_QMARK_ \x3d (cljs.core.first(args) instanceof cljs.core.Symbol);\nvar vec__36702 \x3d ((named_fn_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,cljs.core.seq(args)], null));\nvar name__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(0),null);\nvar meths \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(1),null);\nvar meths__$1 \x3d ((cljs.core.vector_QMARK_(cljs.core.first(meths)))?(new cljs.core.List(null,meths,null,(1),null)):meths);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d cljs.analyzer.fn_name_var(env,locals,name__$1);\nvar env__$1 \x3d (((!((name__$1 \x3d\x3d null))))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859)], null),cljs.core.conj,name_var):env);\nvar locals__$1 \x3d (((((!((locals \x3d\x3d null)))) \x26\x26 (named_fn_QMARK_)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name__$1,name_var):locals);\nvar form_meta \x3d cljs.core.meta(form);\nvar type \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_impl \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_inline \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar menv \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((function (){var G__36705 \x3d env__$1;\nif((cljs.core.count(meths__$1) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36705,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n} else {\nreturn G__36705;\n}\n})(),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),proto_impl,new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),proto_inline], null)], 0));\nvar methods$ \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36697_SHARP_){\nvar _STAR_allow_ns_STAR__orig_val__36706 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36707 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36707);\n\ntry{return cljs.analyzer.analyze_fn_method(menv,locals__$1,p1__36697_SHARP_,type,(name__$1 \x3d\x3d null));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36706);\n}}),meths__$1);\nvar mfa \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869)),cljs.core.max,(0),methods$);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),methods$));\nvar locals__$2 \x3d ((named_fn_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(locals__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name__$1], null),cljs.core.assoc,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([variadic,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),mfa,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),methods$)], 0)):locals__$1);\nvar methods$__$1 \x3d (((!((name__$1 \x3d\x3d null))))?(function (){var _STAR_allow_ns_STAR__orig_val__36708 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36709 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36709);\n\ntry{return cljs.analyzer.analyze_fn_methods_pass2(menv,locals__$2,type,meths__$1);\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36708);\n}})():cljs.core.vec(methods$));\nvar form__$1 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(form,cljs.core.dissoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742));\nvar js_doc \x3d ((variadic \x3d\x3d\x3d true)?\x22@param {...*} var_args\x22:null);\nvar children \x3d (((!((name_var \x3d\x3d null))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null));\nvar inferred_ret_tag \x3d (function (){var inferred_tags \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.infer_tag,env__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),methods$__$1));\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,inferred_tags))){\nreturn cljs.core.first(inferred_tags);\n} else {\nreturn null;\n}\n})();\nvar ast \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),new cljs.core.Keyword(null,\x22recur-frames\x22,\x22recur-frames\x22,-307205196),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516)],[children,proto_inline,name_var,cljs.analyzer._STAR_loop_lets_STAR_,inferred_ret_tag,proto_impl,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),env__$1,variadic,methods$__$1,cljs.analyzer._STAR_recur_frames_STAR_,mfa,form__$1,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246).cljs$core$IFn$_invoke$arity$1(env__$1),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_doc], null)]),(((!((name_var \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),name_var], null):null)], 0));\nvar variadic_methods_38806 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))),methods$__$1);\nvar variadic_params_38807 \x3d (((cljs.core.count(variadic_methods_38806) \x3e (0)))?cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(variadic_methods_38806,(0)))):(0));\nvar param_counts_38808 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.count,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235))),methods$__$1);\nif(((1) \x3c cljs.core.count(variadic_methods_38806))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif((!((((variadic_params_38807 \x3d\x3d\x3d (0))) || ((variadic_params_38807 \x3d\x3d\x3d ((1) + mfa))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(param_counts_38808),param_counts_38808)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(ast) : cljs.analyzer.analyze_wrap_meta.call(null,ast));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),(function (op,env,p__36710,name,_){\nvar vec__36711 \x3d p__36710;\nvar seq__36712 \x3d cljs.core.seq(vec__36711);\nvar first__36713 \x3d cljs.core.first(seq__36712);\nvar seq__36712__$1 \x3d cljs.core.next(seq__36712);\nvar ___$1 \x3d first__36713;\nvar first__36713__$1 \x3d cljs.core.first(seq__36712__$1);\nvar seq__36712__$2 \x3d cljs.core.next(seq__36712__$1);\nvar bindings \x3d first__36713__$1;\nvar exprs \x3d seq__36712__$2;\nvar form \x3d vec__36711;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar n__GT_fexpr \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.second),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings)));\nvar names \x3d cljs.core.keys(n__GT_fexpr);\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar vec__36714 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36720,n){\nvar vec__36721 \x3d p__36720;\nvar map__36724 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(0),null);\nvar map__36724__$1 \x3d cljs.core.__destructure_map(map__36724);\nvar env__$1 \x3d map__36724__$1;\nvar locals \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36724__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(1),null);\nvar ret_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(n));\nvar fexpr \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36725 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36726 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36726);\n\ntry{var G__36727 \x3d env__$1;\nvar G__36728 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(n) : n__GT_fexpr.call(null,n));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36727,G__36728) : cljs.analyzer.analyze.call(null,G__36727,G__36728));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36725);\n}})();\nvar be \x3d (function (){var G__36729 \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[n,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,cljs.analyzer.get_col(n,env__$1),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),cljs.analyzer.get_line(n,env__$1),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),n,true,cljs.analyzer.handle_symbol_local(n,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(n) : locals.call(null,n))),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354)]);\nif(cljs.core.truth_(ret_tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36729,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag);\n} else {\nreturn G__36729;\n}\n})();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),n], null),be),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [env,cljs.core.PersistentVector.EMPTY], null),names);\nvar meth_env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(0),null);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(1),null);\nvar meth_env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar vec__36717 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36730,p__36731){\nvar vec__36732 \x3d p__36730;\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(1),null);\nvar map__36735 \x3d p__36731;\nvar map__36735__$1 \x3d cljs.core.__destructure_map(map__36735);\nvar be \x3d map__36735__$1;\nvar name__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar shadow__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803));\nvar env__$1 \x3d cljs.core.assoc_in(meth_env__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),shadow__$1);\nvar fexpr \x3d (function (){var G__36737 \x3d env__$1;\nvar G__36738 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(name__$1) : n__GT_fexpr.call(null,name__$1));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36737,G__36738) : cljs.analyzer.analyze.call(null,G__36737,G__36738));\n})();\nvar be_SINGLEQUOTE_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(be,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),fexpr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], 0));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),be_SINGLEQUOTE_),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes__$1,be_SINGLEQUOTE_)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [meth_env__$1,cljs.core.PersistentVector.EMPTY], null),bes);\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(1),null);\nvar expr \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36743 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env__$2,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36744 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36743,G__36744) : cljs.analyzer.analyze.call(null,G__36743,G__36744));\n})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354),new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),expr,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null);\n}));\ncljs.analyzer.analyze_do_statements_STAR_ \x3d (function cljs$analyzer$analyze_do_statements_STAR_(env,exprs){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36747_SHARP_){\nvar G__36751 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36752 \x3d p1__36747_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36751,G__36752) : cljs.analyzer.analyze.call(null,G__36751,G__36752));\n}),cljs.core.butlast(exprs));\n});\ncljs.analyzer.analyze_do_statements \x3d (function cljs$analyzer$analyze_do_statements(env,exprs){\nvar _STAR_recur_frames_STAR__orig_val__36758 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36759 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36759);\n\ntry{return cljs.analyzer.analyze_do_statements_STAR_(env,exprs);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36758);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),(function (op,env,p__36763,_,___$1){\nvar vec__36765 \x3d p__36763;\nvar seq__36766 \x3d cljs.core.seq(vec__36765);\nvar first__36767 \x3d cljs.core.first(seq__36766);\nvar seq__36766__$1 \x3d cljs.core.next(seq__36766);\nvar ___$2 \x3d first__36767;\nvar exprs \x3d seq__36766__$1;\nvar form \x3d vec__36765;\nvar statements \x3d cljs.analyzer.analyze_do_statements(env,exprs);\nif((cljs.core.count(exprs) \x3c\x3d (1))){\nvar ret \x3d (function (){var G__36777 \x3d env;\nvar G__36778 \x3d cljs.core.first(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36777,G__36778) : cljs.analyzer.analyze.call(null,G__36777,G__36778));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n} else {\nvar ret_env \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105)));\nvar ret \x3d (function (){var G__36781 \x3d ret_env;\nvar G__36782 \x3d cljs.core.last(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36781,G__36782) : cljs.analyzer.analyze.call(null,G__36781,G__36782));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\n}));\ncljs.analyzer.analyze_let_binding_init \x3d (function cljs$analyzer$analyze_let_binding_init(env,init,loop_lets){\nvar _STAR_loop_lets_STAR__orig_val__36793 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_loop_lets_STAR__temp_val__36794 \x3d loop_lets;\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36794);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.analyze.call(null,env,init));\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36793);\n}});\ncljs.analyzer.get_let_tag \x3d (function cljs$analyzer$get_let_tag(name,init_expr){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(init_expr));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.analyze_let_bindings_STAR_ \x3d (function cljs$analyzer$analyze_let_bindings_STAR_(encl_env,bindings,op){\nvar bes \x3d cljs.core.PersistentVector.EMPTY;\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(encl_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar bindings__$1 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings));\nwhile(true){\nvar temp__5827__auto__ \x3d cljs.core.first(bindings__$1);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [bes,env], null);\n} else {\nvar vec__36847 \x3d temp__5827__auto__;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(1),null);\nif((((!((cljs.core.namespace(name) \x3d\x3d null)))) || (goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22.\x22)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,[\x22Invalid local name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar init_expr \x3d cljs.analyzer.analyze_let_binding_init(env,init,cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_));\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar col \x3d cljs.analyzer.get_col(name,env);\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,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,\x22locals\x22,\x22locals\x22,535295783),name], null)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar be \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null),init_expr,name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col], null),col,line,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,cljs.analyzer.get_let_tag(name,init_expr),shadow__$1,op]);\nvar be__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([be,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(((function (bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__){\nreturn (function (p1__36808_SHARP_){\nreturn cljs.core.select_keys(p1__36808_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null));\n});})(bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__))\n,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))], null)], 0)):be);\nvar G__38812 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be__$1);\nvar G__38813 \x3d cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name], null),be__$1);\nvar G__38814 \x3d cljs.core.next(bindings__$1);\nbes \x3d G__38812;\nenv \x3d G__38813;\nbindings__$1 \x3d G__38814;\ncontinue;\n}\nbreak;\n}\n});\ncljs.analyzer.analyze_let_bindings \x3d (function cljs$analyzer$analyze_let_bindings(encl_env,bindings,op){\nvar _STAR_recur_frames_STAR__orig_val__36873 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36874 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36874);\n\ntry{return cljs.analyzer.analyze_let_bindings_STAR_(encl_env,bindings,op);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36873);\n}});\ncljs.analyzer.analyze_let_body_STAR_ \x3d (function cljs$analyzer$analyze_let_body_STAR_(env,context,exprs){\nvar G__36876 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36877 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36876,G__36877) : cljs.analyzer.analyze.call(null,G__36876,G__36877));\n});\ncljs.analyzer.analyze_let_body \x3d (function cljs$analyzer$analyze_let_body(env,context,exprs,recur_frames,loop_lets){\nvar _STAR_recur_frames_STAR__orig_val__36888 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_loop_lets_STAR__orig_val__36889 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36890 \x3d recur_frames;\nvar _STAR_loop_lets_STAR__temp_val__36891 \x3d loop_lets;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36890);\n\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36891);\n\ntry{return cljs.analyzer.analyze_let_body_STAR_(env,context,exprs);\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36889);\n\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36888);\n}});\ncljs.analyzer.analyze_let \x3d (function cljs$analyzer$analyze_let(encl_env,p__36903,is_loop,widened_tags){\nwhile(true){\nvar vec__36905 \x3d p__36903;\nvar seq__36906 \x3d cljs.core.seq(vec__36905);\nvar first__36907 \x3d cljs.core.first(seq__36906);\nvar seq__36906__$1 \x3d cljs.core.next(seq__36906);\nvar _ \x3d first__36907;\nvar first__36907__$1 \x3d cljs.core.first(seq__36906__$1);\nvar seq__36906__$2 \x3d cljs.core.next(seq__36906__$1);\nvar bindings \x3d first__36907__$1;\nvar exprs \x3d seq__36906__$2;\nvar form \x3d vec__36905;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(encl_env);\nvar op \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849):new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701));\nvar bindings__$1 \x3d (cljs.core.truth_(widened_tags)?cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form){\nreturn (function (p__36918,widened_tag){\nvar vec__36919 \x3d p__36918;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),widened_tag),init], null);\n});})(encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form))\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings),widened_tags], 0))):bindings);\nvar vec__36909 \x3d cljs.analyzer.analyze_let_bindings((function (){var G__36927 \x3d encl_env;\nif(is_loop \x3d\x3d\x3d true){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36927,new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),true);\n} else {\nreturn G__36927;\n}\n})(),bindings__$1,op);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(0),null);\nvar env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(1),null);\nvar recur_frame \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),bes))], null):null);\nvar recur_frames \x3d (cljs.core.truth_(recur_frame)?cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_):cljs.analyzer._STAR_recur_frames_STAR_);\nvar loop_lets \x3d ((is_loop \x3d\x3d\x3d true)?cljs.analyzer._STAR_loop_lets_STAR_:(((!((cljs.analyzer._STAR_loop_lets_STAR_ \x3d\x3d null))))?cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_):null));\nvar warn_acc \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(widened_tags);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nvar expr \x3d (cljs.core.truth_(warn_acc)?(function (){var _STAR_cljs_warning_handlers_STAR__orig_val__36940 \x3d cljs.analyzer._STAR_cljs_warning_handlers_STAR_;\nvar _STAR_cljs_warning_handlers_STAR__temp_val__36941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.accumulating_warning_handler(warn_acc)], null);\n(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__temp_val__36941);\n\ntry{return cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets);\n}finally {(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__orig_val__36940);\n}})():cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets));\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null);\nvar nil__GT_any \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.not(widened_tags)) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(nil__GT_any,cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame))),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(nil__GT_any,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),bes))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__38819 \x3d encl_env;\nvar G__38820 \x3d form;\nvar G__38821 \x3d is_loop;\nvar G__38822 \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame));\nencl_env \x3d G__38819;\np__36903 \x3d G__38820;\nis_loop \x3d G__38821;\nwidened_tags \x3d G__38822;\ncontinue;\n} else {\nif(cljs.core.truth_(warn_acc)){\ncljs.analyzer.replay_accumulated_warnings(warn_acc);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),encl_env,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\nbreak;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,false,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,true,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),(function (op,env,p__36968,_,___$1){\nvar vec__36973 \x3d p__36968;\nvar seq__36974 \x3d cljs.core.seq(vec__36973);\nvar first__36975 \x3d cljs.core.first(seq__36974);\nvar seq__36974__$1 \x3d cljs.core.next(seq__36974);\nvar ___$2 \x3d first__36975;\nvar exprs \x3d seq__36974__$1;\nvar form \x3d vec__36973;\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar frame \x3d cljs.core.first(cljs.analyzer._STAR_recur_frames_STAR_);\nvar add_implicit_target_object_QMARK_ \x3d (function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs),(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)) - (1)));\n} else {\nreturn and__5023__auto__;\n}\n})();\nvar exprs__$1 \x3d (function (){var G__36983 \x3d exprs;\nif(cljs.core.truth_(add_implicit_target_object_QMARK_)){\nreturn cljs.core.cons(null,G__36983);\n} else {\nreturn G__36983;\n}\n})();\nvar exprs__$2 \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36991 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36992 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36992);\n\ntry{return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36965_SHARP_){\nvar G__36995 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36996 \x3d p1__36965_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36995,G__36996) : cljs.analyzer.analyze.call(null,G__36995,G__36996));\n}),exprs__$1));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36991);\n}})();\nif(cljs.core.truth_(frame)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t recur here\x22);\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs__$2),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22recur argument count mismatch, expected: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame))),\x22 args, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(exprs__$2))].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(add_implicit_target_object_QMARK_);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(cljs.core.first(exprs__$2))], null));\n} else {\n}\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(frame),true);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(frame),(function (tags){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tag,expr){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724).cljs$core$IFn$_invoke$arity$1(expr))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr));\n}\n}),tags,exprs__$2);\n}));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),new cljs.core.Keyword(null,\x22frame\x22,\x22frame\x22,-1711082588),frame,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094),exprs__$2,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094)], null)], 0));\n}));\ncljs.analyzer.analyze_const \x3d (function cljs$analyzer$analyze_const(env,form){\nvar map__37020 \x3d (function (){var G__37021 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621),true);\nvar G__37022 \x3d form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__37021,G__37022) : cljs.analyzer.analyze.call(null,G__37021,G__37022));\n})();\nvar map__37020__$1 \x3d cljs.core.__destructure_map(map__37020);\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37020__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(function (_,env,p__37023,___$1,___$2){\nvar vec__37024 \x3d p__37023;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(1),null);\nvar form \x3d vec__37024;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to quote\x22);\n} else {\n}\n\nvar expr \x3d cljs.analyzer.analyze_const(env,x);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n}));\ncljs.analyzer.js_prim_ctor__GT_tag \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(\x22js\x22,\x22Object\x22,\x22js/Object\x22,61215323,null),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(\x22js\x22,\x22String\x22,\x22js/String\x22,-2070054036,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22js\x22,\x22Array\x22,\x22js/Array\x22,-423508366,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(\x22js\x22,\x22Number\x22,\x22js/Number\x22,-508133572,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22js\x22,\x22Function\x22,\x22js/Function\x22,-749892063,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(\x22js\x22,\x22Boolean\x22,\x22js/Boolean\x22,1661145260,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n/**\n * Test whether a tag is a constructor for a JS primitive\n */\ncljs.analyzer.prim_ctor_QMARK_ \x3d (function cljs$analyzer$prim_ctor_QMARK_(t){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.js_prim_ctor__GT_tag,t);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),(function (_,env,p__37035,___$1,___$2){\nvar vec__37036 \x3d p__37035;\nvar seq__37037 \x3d cljs.core.seq(vec__37036);\nvar first__37038 \x3d cljs.core.first(seq__37037);\nvar seq__37037__$1 \x3d cljs.core.next(seq__37037);\nvar ___$3 \x3d first__37038;\nvar first__37038__$1 \x3d cljs.core.first(seq__37037__$1);\nvar seq__37037__$2 \x3d cljs.core.next(seq__37037__$1);\nvar ctor \x3d first__37038__$1;\nvar args \x3d seq__37037__$2;\nvar form \x3d vec__37036;\nvar _STAR_recur_frames_STAR__orig_val__37039 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37040 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37040);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ctorexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,ctor) : cljs.analyzer.analyze.call(null,enve,ctor));\nvar ctor_var \x3d (cljs.core.truth_((function (){var G__37042 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ctorexpr);\nvar fexpr__37041 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__37041.cljs$core$IFn$_invoke$arity$1 ? fexpr__37041.cljs$core$IFn$_invoke$arity$1(G__37042) : fexpr__37041.call(null,G__37042));\n})())?cljs.analyzer.resolve_existing_var(env,ctor):null);\nvar record_args \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((3),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,null) : cljs.analyzer.analyze.call(null,enve,null))):null);\nvar argexprs \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37034_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__37034_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__37034_SHARP_));\n}),args)),record_args);\nvar known_num_fields \x3d new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024).cljs$core$IFn$_invoke$arity$1(ctor_var);\nvar argc \x3d cljs.core.count(args);\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)))) \x26\x26 ((((!((known_num_fields \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(known_num_fields,argc);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$2 \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) + known_num_fields),argc);\n} else {\nreturn and__5023__auto____$2;\n}\n}\n})())))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802),ctor], null));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),ctorexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),(function (){var tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nif(((cljs.analyzer.js_tag_QMARK_(tag)) \x26\x26 ((!(cljs.analyzer.prim_ctor_QMARK_(tag)))))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nvar or__5025__auto__ \x3d (cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1(name) : cljs.analyzer.js_prim_ctor__GT_tag.call(null,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn name;\n}\n}\n})()], null);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37039);\n}}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),(function (_,env,p__37063,___$1,___$2){\nvar vec__37066 \x3d p__37063;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(0),null);\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(1),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(2),null);\nvar alt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(3),null);\nvar form \x3d vec__37066;\nvar vec__37070 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((4),cljs.core.count(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [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,\x22.\x22,\x22.\x22,1975675962,null),null,(1),null)),(new cljs.core.List(null,target,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,val,null,(1),null))], 0)))),alt], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,val], null));\nvar target__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(0),null);\nvar val__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(1),null);\nvar _STAR_recur_frames_STAR__orig_val__37081 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37082 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37082);\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__37088 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__37089 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__37089);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar texpr \x3d (((target__$1 instanceof cljs.core.Symbol))?(function (){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),val__$1));\n} else {\n}\n}\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),target__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! a constant\x22);\n} else {\n}\n\nvar local_38832 \x3d cljs.analyzer.handle_symbol_local(target__$1,(function (){var G__37100 \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nreturn (target__$1.cljs$core$IFn$_invoke$arity$1 ? target__$1.cljs$core$IFn$_invoke$arity$1(G__37100) : target__$1.call(null,G__37100));\n})());\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (local_38832 \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(local_38832);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! local var or non-mutable field\x22);\n}\n\nreturn (cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze_symbol.call(null,enve,target__$1));\n})()\n:((cljs.core.seq_QMARK_(target__$1))?(function (){var texpr \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22extend-type\x22,\x22extend-type\x22,-517175606).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(target__$1)))?(function (){var _STAR_cljs_warnings_STAR__orig_val__37103 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__37104 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),false);\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__37104);\n\ntry{return (cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__37103);\n}})():(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(texpr))){\nreturn texpr;\n} else {\nreturn null;\n}\n})():null)\n);\nvar vexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,val__$1) : cljs.analyzer.analyze.call(null,enve,val__$1));\nif(cljs.core.seq_QMARK_(target__$1)){\nvar sym_38833 \x3d (function (){var G__37106 \x3d target__$1;\nif((G__37106 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.second(G__37106);\n}\n})();\nvar meta_38834 \x3d cljs.core.meta(sym_38833);\nvar temp__5825__auto___38835 \x3d (function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(vexpr));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(meta_38834);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___38835)){\nvar info_38836 \x3d temp__5825__auto___38835;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym_38833,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(info_38836,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null)),cljs.core.select_keys(cljs.core.first(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(vexpr)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0))], 0));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(texpr)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22set! target must be a field or a symbol naming a var\x22);\n}\n\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env))) \x26\x26 ((!(((function (){var fexpr__37110 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null),\x22null\x22], null), null);\nreturn (fexpr__37110.cljs$core$IFn$_invoke$arity$1 ? fexpr__37110.cljs$core$IFn$_invoke$arity$1(target__$1) : fexpr__37110.call(null,target__$1));\n})() \x3d\x3d null)))))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22no-op\x22,\x22no-op\x22,-93046065)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set!\x22,\x22set!\x22,-1389817006),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),texpr,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),vexpr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612)], null)], null);\n\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__37088);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37081);\n}}));\ncljs.analyzer.foreign_dep_QMARK_ \x3d (function cljs$analyzer$foreign_dep_QMARK_(dep){\nvar js_index \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\nvar temp__5827__auto__ \x3d cljs.core.find(js_index,cljs.core.name(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep))));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar vec__37121 \x3d temp__5827__auto__;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(0),null);\nvar map__37124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(1),null);\nvar map__37124__$1 \x3d cljs.core.__destructure_map(map__37124);\nvar foreign \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37124__$1,new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149));\nreturn foreign;\n}\n});\n/**\n * Given a lib, a namespace, deps, its dependencies, env, an analysis environment\n * and opts, compiler options - analyze all of the dependencies. Required to\n * correctly analyze usage of other namespaces.\n */\ncljs.analyzer.analyze_deps \x3d (function cljs$analyzer$analyze_deps(var_args){\nvar G__37143 \x3d arguments.length;\nswitch (G__37143) {\ncase 3:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3 \x3d (function (lib,deps,env){\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(lib,deps,env,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4 \x3d (function (lib,deps,env,opts){\nvar compiler \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar _STAR_cljs_dep_set_STAR__orig_val__37156 \x3d cljs.analyzer._STAR_cljs_dep_set_STAR_;\nvar _STAR_cljs_dep_set_STAR__temp_val__37157 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_cljs_dep_set_STAR_,lib),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558)], null),cljs.core.conj,lib);\n(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__temp_val__37157);\n\ntry{if(cljs.core.every_QMARK_((function (p1__37130_SHARP_){\nreturn (!(cljs.core.contains_QMARK_(cljs.analyzer._STAR_cljs_dep_set_STAR_,p1__37130_SHARP_)));\n}),deps)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Circular dependency detected, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 -\x3e \x22,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some(cljs.analyzer._STAR_cljs_dep_set_STAR_,deps)))))].join(\x27\x27),\x22\\n\x22,\x22(every? (fn* [p1__37130#] (not (contains? *cljs-dep-set* p1__37130#))) deps)\x22].join(\x27\x27)));\n}\n\nvar seq__37168 \x3d cljs.core.seq(deps);\nvar chunk__37169 \x3d null;\nvar count__37170 \x3d (0);\nvar i__37171 \x3d (0);\nwhile(true){\nif((i__37171 \x3c count__37170)){\nvar dep \x3d chunk__37169.cljs$core$IIndexed$_nth$arity$2(null,i__37171);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38842 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38843__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38842,cljs.core.name(dep_38843__$1))){\nvar dep_name_38844 \x3d cljs.core.name(dep_38843__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38844,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38843__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38843__$1)], null)));\n}\n}\n\n\nvar G__38850 \x3d seq__37168;\nvar G__38851 \x3d chunk__37169;\nvar G__38852 \x3d count__37170;\nvar G__38853 \x3d (i__37171 + (1));\nseq__37168 \x3d G__38850;\nchunk__37169 \x3d G__38851;\ncount__37170 \x3d G__38852;\ni__37171 \x3d G__38853;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37168);\nif(temp__5825__auto__){\nvar seq__37168__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37168__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37168__$1);\nvar G__38854 \x3d cljs.core.chunk_rest(seq__37168__$1);\nvar G__38855 \x3d c__5548__auto__;\nvar G__38856 \x3d cljs.core.count(c__5548__auto__);\nvar G__38857 \x3d (0);\nseq__37168 \x3d G__38854;\nchunk__37169 \x3d G__38855;\ncount__37170 \x3d G__38856;\ni__37171 \x3d G__38857;\ncontinue;\n} else {\nvar dep \x3d cljs.core.first(seq__37168__$1);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38858 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38859__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38858,cljs.core.name(dep_38859__$1))){\nvar dep_name_38860 \x3d cljs.core.name(dep_38859__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38860,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38859__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38859__$1)], null)));\n}\n}\n\n\nvar G__38861 \x3d cljs.core.next(seq__37168__$1);\nvar G__38862 \x3d null;\nvar G__38863 \x3d (0);\nvar G__38864 \x3d (0);\nseq__37168 \x3d G__38861;\nchunk__37169 \x3d G__38862;\ncount__37170 \x3d G__38863;\ni__37171 \x3d G__38864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}finally {(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__orig_val__37156);\n}}));\n\n(cljs.analyzer.analyze_deps.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.missing_use_QMARK_ \x3d (function cljs$analyzer$missing_use_QMARK_(lib,sym,cenv){\nvar js_lib \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cenv,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.name(lib)], null));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),lib,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150))) \x26\x26 ((((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22group\x22,\x22group\x22,582596132)),new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452))))) \x26\x26 (((cljs.core.not(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22closure-lib\x22,\x22closure-lib\x22,2105917916)))) \x26\x26 ((((!(cljs.analyzer.node_module_dep_QMARK_(lib)))) \x26\x26 ((!(cljs.analyzer.dep_has_global_exports_QMARK_(lib)))))))))));\n});\ncljs.analyzer.missing_rename_QMARK_ \x3d (function cljs$analyzer$missing_rename_QMARK_(sym,cenv){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym__$1,cenv);\n});\ncljs.analyzer.missing_use_macro_QMARK_ \x3d (function cljs$analyzer$missing_use_macro_QMARK_(lib,sym){\nif((lib instanceof cljs.core.Symbol)){\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym) \x3d\x3d null)));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.missing_rename_macro_QMARK_ \x3d (function cljs$analyzer$missing_rename_macro_QMARK_(sym){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym__$1) \x3d\x3d null)));\n});\ncljs.analyzer.missing_uses \x3d (function cljs$analyzer$missing_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37220){\nvar vec__37221 \x3d p__37220;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(1),null);\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym,cenv);\n}),uses));\n});\ncljs.analyzer.missing_renames \x3d (function cljs$analyzer$missing_renames(renames,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37231){\nvar vec__37232 \x3d p__37231;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(1),null);\nreturn cljs.analyzer.missing_rename_QMARK_(qualified_sym,cenv);\n}),renames));\n});\ncljs.analyzer.missing_use_macros \x3d (function cljs$analyzer$missing_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37239){\nvar vec__37240 \x3d p__37239;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(1),null);\nreturn cljs.analyzer.missing_use_macro_QMARK_(lib,sym);\n}),use_macros));\n});\ncljs.analyzer.inferred_use_macros \x3d (function cljs$analyzer$inferred_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37246){\nvar vec__37248 \x3d p__37246;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(1),null);\nreturn cljs.core.not(cljs.analyzer.missing_use_macro_QMARK_(lib,sym));\n}),use_macros));\n});\ncljs.analyzer.inferred_rename_macros \x3d (function cljs$analyzer$inferred_rename_macros(rename_macros,env){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37260){\nvar vec__37261 \x3d p__37260;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(1),null);\nreturn (!(cljs.analyzer.missing_rename_macro_QMARK_(qualified_sym)));\n}),rename_macros));\n});\ncljs.analyzer.check_uses \x3d (function cljs$analyzer$check_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37268 \x3d cljs.core.seq(uses);\nvar chunk__37270 \x3d null;\nvar count__37271 \x3d (0);\nvar i__37272 \x3d (0);\nwhile(true){\nif((i__37272 \x3c count__37271)){\nvar vec__37312 \x3d chunk__37270.cljs$core$IIndexed$_nth$arity$2(null,i__37272);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38869 \x3d seq__37268;\nvar G__38870 \x3d chunk__37270;\nvar G__38871 \x3d count__37271;\nvar G__38872 \x3d (i__37272 + (1));\nseq__37268 \x3d G__38869;\nchunk__37270 \x3d G__38870;\ncount__37271 \x3d G__38871;\ni__37272 \x3d G__38872;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37268);\nif(temp__5825__auto__){\nvar seq__37268__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37268__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37268__$1);\nvar G__38873 \x3d cljs.core.chunk_rest(seq__37268__$1);\nvar G__38874 \x3d c__5548__auto__;\nvar G__38875 \x3d cljs.core.count(c__5548__auto__);\nvar G__38876 \x3d (0);\nseq__37268 \x3d G__38873;\nchunk__37270 \x3d G__38874;\ncount__37271 \x3d G__38875;\ni__37272 \x3d G__38876;\ncontinue;\n} else {\nvar vec__37333 \x3d cljs.core.first(seq__37268__$1);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38877 \x3d cljs.core.next(seq__37268__$1);\nvar G__38878 \x3d null;\nvar G__38879 \x3d (0);\nvar G__38880 \x3d (0);\nseq__37268 \x3d G__38877;\nchunk__37270 \x3d G__38878;\ncount__37271 \x3d G__38879;\ni__37272 \x3d G__38880;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.check_use_macros \x3d (function cljs$analyzer$check_use_macros(var_args){\nvar G__37366 \x3d arguments.length;\nswitch (G__37366) {\ncase 2:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (use_macros,env){\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,null,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3 \x3d (function (use_macros,missing_uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37390_38882 \x3d cljs.core.seq(use_macros);\nvar chunk__37392_38883 \x3d null;\nvar count__37393_38884 \x3d (0);\nvar i__37394_38885 \x3d (0);\nwhile(true){\nif((i__37394_38885 \x3c count__37393_38884)){\nvar vec__37477_38886 \x3d chunk__37392_38883.cljs$core$IIndexed$_nth$arity$2(null,i__37394_38885);\nvar sym_38887 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(0),null);\nvar lib_38888 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38888,sym_38887))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38888,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38887], null)));\n} else {\n}\n\n\nvar G__38891 \x3d seq__37390_38882;\nvar G__38892 \x3d chunk__37392_38883;\nvar G__38893 \x3d count__37393_38884;\nvar G__38894 \x3d (i__37394_38885 + (1));\nseq__37390_38882 \x3d G__38891;\nchunk__37392_38883 \x3d G__38892;\ncount__37393_38884 \x3d G__38893;\ni__37394_38885 \x3d G__38894;\ncontinue;\n} else {\nvar temp__5825__auto___38895 \x3d cljs.core.seq(seq__37390_38882);\nif(temp__5825__auto___38895){\nvar seq__37390_38896__$1 \x3d temp__5825__auto___38895;\nif(cljs.core.chunked_seq_QMARK_(seq__37390_38896__$1)){\nvar c__5548__auto___38897 \x3d cljs.core.chunk_first(seq__37390_38896__$1);\nvar G__38898 \x3d cljs.core.chunk_rest(seq__37390_38896__$1);\nvar G__38899 \x3d c__5548__auto___38897;\nvar G__38900 \x3d cljs.core.count(c__5548__auto___38897);\nvar G__38901 \x3d (0);\nseq__37390_38882 \x3d G__38898;\nchunk__37392_38883 \x3d G__38899;\ncount__37393_38884 \x3d G__38900;\ni__37394_38885 \x3d G__38901;\ncontinue;\n} else {\nvar vec__37514_38902 \x3d cljs.core.first(seq__37390_38896__$1);\nvar sym_38903 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(0),null);\nvar lib_38904 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38904,sym_38903))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38904,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38903], null)));\n} else {\n}\n\n\nvar G__38905 \x3d cljs.core.next(seq__37390_38896__$1);\nvar G__38906 \x3d null;\nvar G__38907 \x3d (0);\nvar G__38908 \x3d (0);\nseq__37390_38882 \x3d G__38905;\nchunk__37392_38883 \x3d G__38906;\ncount__37393_38884 \x3d G__38907;\ni__37394_38885 \x3d G__38908;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.analyzer.check_uses(cljs.analyzer.missing_use_macros(missing_uses,env),env);\n\nreturn cljs.analyzer.inferred_use_macros(missing_uses,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.check_use_macros_inferring_missing \x3d (function cljs$analyzer$check_use_macros_inferring_missing(p__37523,env){\nvar map__37525 \x3d p__37523;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar ast \x3d map__37525__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar missing_uses \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(uses);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_uses(uses,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,uses,cljs.core.keys(missing_uses));\nvar remove_missing_uses \x3d (function (p1__37518_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37518_SHARP_,cljs.core.keys(missing_uses));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),(function (p1__37519_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37519_SHARP_,cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,missing_uses,env)], 0)),cljs.analyzer.inferred_use_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37520_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37520_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.check_rename_macros_inferring_missing \x3d (function cljs$analyzer$check_rename_macros_inferring_missing(p__37562,env){\nvar map__37570 \x3d p__37562;\nvar map__37570__$1 \x3d cljs.core.__destructure_map(map__37570);\nvar ast \x3d map__37570__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar missing_renames \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(renames);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_renames(renames,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,renames,cljs.core.keys(missing_renames));\nvar missing_rename_macros \x3d cljs.analyzer.inferred_rename_macros(missing_renames,env);\nvar remove_missing_renames \x3d (function (p1__37550_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37550_SHARP_,cljs.core.keys(missing_renames));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),(function (p1__37552_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37552_SHARP_,missing_rename_macros], 0)),cljs.analyzer.inferred_rename_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37554_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37554_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.parse_ns_error_msg \x3d (function cljs$analyzer$parse_ns_error_msg(spec,msg){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22; offending spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0))].join(\x27\x27);\n});\ncljs.analyzer.basic_validate_ns_spec \x3d (function cljs$analyzer$basic_validate_ns_spec(env,macros_QMARK_,spec){\nif((((spec instanceof cljs.core.Symbol)) || (((typeof spec \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(spec)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns \x26 options] and lib.ns specs supported in :require / :require-macros\x22));\n}\n\nif(cljs.core.sequential_QMARK_(spec)){\nif((((cljs.core.first(spec) instanceof cljs.core.Symbol)) || (typeof cljs.core.first(spec) \x3d\x3d\x3d \x27string\x27))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Library name must be specified as a symbol in :require / :require-macros\x22));\n}\n\nif(cljs.core.odd_QMARK_(cljs.core.count(spec))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as alias, :refer (names) and :rename {from to} options supported in :require\x22));\n}\n\nif(cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as, :refer and :rename options supported in :require / :require-macros\x22));\n}\n\nif((function (){var fs \x3d cljs.core.frequencies(cljs.core.next(spec));\nreturn ((((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0))) \x3c\x3d (1))) \x26\x26 (((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0))) \x3c\x3d (1))));\n})()){\nreturn null;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :as and :refer options may only be specified once in :require / :require-macros\x22));\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.parse_ns_excludes_impl \x3d (function cljs$analyzer$parse_ns_excludes_impl(env,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__37694){\nvar vec__37695 \x3d p__37694;\nvar seq__37696 \x3d cljs.core.seq(vec__37695);\nvar first__37697 \x3d cljs.core.first(seq__37696);\nvar seq__37696__$1 \x3d cljs.core.next(seq__37696);\nvar k \x3d first__37697;\nvar filters \x3d seq__37696__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440))){\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(s))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only one :refer-clojure form is allowed per namespace definition\x22);\n} else {\n}\n\nvar valid_kws \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null);\nvar xs \x3d (function (){var fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null);\nvar err \x3d (!(cljs.core.even_QMARK_(cljs.core.count(filters))));\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported\x22);\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nif(cljs.core.truth_((valid_kws.cljs$core$IFn$_invoke$arity$1 ? valid_kws.cljs$core$IFn$_invoke$arity$1(kw) : valid_kws.call(null,kw)))){\nvar refs \x3d cljs.core.second(fs);\nif((!(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters){\nreturn (function (p1__37682_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37682_SHARP_);\n});})(fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters))\n,refs)))))))))){\nvar G__38911 \x3d fs;\nvar G__38912 \x3d ret;\nvar G__38913 \x3d true;\nfs \x3d G__38911;\nret \x3d G__38912;\nerr \x3d G__38913;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))){\nvar G__38914 \x3d cljs.core.nnext(fs);\nvar G__38915 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),cljs.core.into,refs);\nvar G__38916 \x3d false;\nfs \x3d G__38914;\nret \x3d G__38915;\nerr \x3d G__38916;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))){\nvar G__38917 \x3d cljs.core.nnext(fs);\nvar G__38918 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),cljs.core.merge,refs);\nvar G__38919 \x3d false;\nfs \x3d G__38917;\nret \x3d G__38918;\nerr \x3d G__38919;\ncontinue;\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38920 \x3d fs;\nvar G__38921 \x3d ret;\nvar G__38922 \x3d true;\nfs \x3d G__38920;\nret \x3d G__38921;\nerr \x3d G__38922;\ncontinue;\n}\n} else {\nreturn ret;\n\n}\n}\nbreak;\n}\n})();\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.into,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s,xs], 0));\n} else {\nreturn s;\n}\n}),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null),args);\n});\ncljs.analyzer.parse_ns_excludes \x3d (function cljs$analyzer$parse_ns_excludes(env,args){\nvar s \x3d cljs.analyzer.parse_ns_excludes_impl(env,args);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.into,cljs.core.keys(new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368).cljs$core$IFn$_invoke$arity$1(s)));\n});\ncljs.analyzer.use__GT_require \x3d (function cljs$analyzer$use__GT_require(env,p__37970){\nvar vec__37974 \x3d p__37970;\nvar seq__37975 \x3d cljs.core.seq(vec__37974);\nvar first__37976 \x3d cljs.core.first(seq__37975);\nvar seq__37975__$1 \x3d cljs.core.next(seq__37975);\nvar lib \x3d first__37976;\nvar filters \x3d seq__37975__$1;\nvar spec \x3d vec__37974;\nif((((lib instanceof cljs.core.Symbol)) \x26\x26 (cljs.core.odd_QMARK_(cljs.core.count(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n}\n\nvar fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null);\nvar err \x3d false;\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nvar only_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22only\x22,\x22only\x22,1907811652));\nif(((only_QMARK_) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))))){\nif((!((cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw)]),ret) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :only and :rename options may only be specified once in :use / :use-macros\x22));\n} else {\nvar refs \x3d cljs.core.second(fs);\nif((!(((((only_QMARK_) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec){\nreturn (function (p1__37952_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37952_SHARP_);\n});})(fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec))\n,refs)))))))))){\nvar G__38925 \x3d fs;\nvar G__38926 \x3d ret;\nvar G__38927 \x3d true;\nfs \x3d G__38925;\nret \x3d G__38926;\nerr \x3d G__38927;\ncontinue;\n} else {\nvar G__38928 \x3d cljs.core.nnext(fs);\nvar G__38929 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw),refs], null));\nvar G__38930 \x3d false;\nfs \x3d G__38928;\nret \x3d G__38929;\nerr \x3d G__38930;\ncontinue;\n}\n}\n} else {\nvar G__38931 \x3d fs;\nvar G__38932 \x3d ret;\nvar G__38933 \x3d true;\nfs \x3d G__38931;\nret \x3d G__38932;\nerr \x3d G__38933;\ncontinue;\n}\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),ret) \x3d\x3d null)))){\nreturn ret;\n} else {\nvar G__38934 \x3d fs;\nvar G__38935 \x3d ret;\nvar G__38936 \x3d true;\nfs \x3d G__38934;\nret \x3d G__38935;\nerr \x3d G__38936;\ncontinue;\n}\n\n}\n}\nbreak;\n}\n});\ncljs.analyzer.parse_require_spec \x3d (function cljs$analyzer$parse_require_spec(env,macros_QMARK_,deps,aliases,spec){\nwhile(true){\nif((((spec instanceof cljs.core.Symbol)) || (typeof spec \x3d\x3d\x3d \x27string\x27))){\nvar G__38937 \x3d env;\nvar G__38938 \x3d macros_QMARK_;\nvar G__38939 \x3d deps;\nvar G__38940 \x3d aliases;\nvar G__38941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\nenv \x3d G__38937;\nmacros_QMARK_ \x3d G__38938;\ndeps \x3d G__38939;\naliases \x3d G__38940;\nspec \x3d G__38941;\ncontinue;\n} else {\ncljs.analyzer.basic_validate_ns_spec(env,macros_QMARK_,spec);\n\nvar vec__38066 \x3d spec;\nvar seq__38067 \x3d cljs.core.seq(vec__38066);\nvar first__38068 \x3d cljs.core.first(seq__38067);\nvar seq__38067__$1 \x3d cljs.core.next(seq__38067);\nvar lib \x3d first__38068;\nvar opts \x3d seq__38067__$1;\nvar vec__38069 \x3d (function (){var temp__5827__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n} else {\nvar js_module_name \x3d temp__5827__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(js_module_name),lib], null);\n}\n})();\nvar lib__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(0),null);\nvar js_module_provides \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(1),null);\nvar map__38072 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,opts);\nvar map__38072__$1 \x3d cljs.core.__destructure_map(map__38072);\nvar alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38072__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),((typeof lib__$1 \x3d\x3d\x3d \x27string\x27)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(lib__$1)):lib__$1));\nvar referred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553));\nvar renamed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar referred_without_renamed \x3d cljs.core.seq(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(renamed)),referred));\nvar vec__38073 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613)], null));\nvar rk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(0),null);\nvar uk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(1),null);\nvar renk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(2),null);\nif((((alias instanceof cljs.core.Symbol)) || ((alias \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as must be followed by a symbol in :require / :require-macros\x22));\n}\n\nif((!((alias \x3d\x3d null)))){\nvar alias_type_38942 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431):new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786));\nvar lib_SINGLEQUOTE__38943 \x3d (function (){var fexpr__38085 \x3d alias_type_38942.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(aliases));\nreturn (fexpr__38085.cljs$core$IFn$_invoke$arity$1 ? fexpr__38085.cljs$core$IFn$_invoke$arity$1(alias) : fexpr__38085.call(null,alias));\n})();\nif((((!((lib_SINGLEQUOTE__38943 \x3d\x3d null)))) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,lib_SINGLEQUOTE__38943)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as alias must be unique\x22));\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(alias,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(aliases),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786):new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)))){\n} else {\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n}\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(aliases,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias_type_38942], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias,lib__$1], null),(cljs.core.truth_(js_module_provides)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_module_provides,lib__$1], null):null)], 0));\n} else {\n}\n\nif(((((cljs.core.sequential_QMARK_(referred)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,referred)))) || ((referred \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:refer must be followed by a sequence of symbols in :require / :require-macros\x22));\n}\n\nif(cljs.core.truth_(macros_QMARK_)){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,lib__$1);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((!((alias \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([rk,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib__$1]),cljs.core.PersistentArrayMap.createAsIfByAssoc([lib__$1,lib__$1]),(cljs.core.truth_(js_module_provides)?cljs.core.PersistentArrayMap.createAsIfByAssoc([js_module_provides,lib__$1]):null)], 0))]):null),(((!((referred_without_renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([uk,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(referred_without_renamed,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(lib__$1)))]):null),(((!((renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([renk,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk){\nreturn (function (m,p__38101){\nvar vec__38102 \x3d p__38101;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(0),null);\nvar renamed__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(1),null);\nif(cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([original]),referred))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Renamed symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original),\x22 not referred\x22].join(\x27\x27));\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed__$1,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n});})(env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk))\n,cljs.core.PersistentArrayMap.EMPTY,renamed)]):null)], 0));\n}\nbreak;\n}\n});\ncljs.analyzer.parse_import_spec \x3d (function cljs$analyzer$parse_import_spec(env,deps,spec){\nif(((((cljs.core.sequential_QMARK_(spec)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,spec)))) || ((((spec instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(spec) \x3d\x3d null)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import\x22));\n}\n\nvar import_map \x3d ((cljs.core.sequential_QMARK_(spec))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38105_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__38105_SHARP_,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(spec)),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__38105_SHARP_)].join(\x27\x27))],null));\n}),cljs.core.rest(spec))):(((!(((-1) \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec).indexOf(\x22.\x22)))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),/\\./))),spec]):cljs.core.PersistentArrayMap.EMPTY\n));\nvar seq__38110_38947 \x3d cljs.core.seq(import_map);\nvar chunk__38111_38948 \x3d null;\nvar count__38112_38949 \x3d (0);\nvar i__38113_38950 \x3d (0);\nwhile(true){\nif((i__38113_38950 \x3c count__38112_38949)){\nvar vec__38124_38952 \x3d chunk__38111_38948.cljs$core$IIndexed$_nth$arity$2(null,i__38113_38950);\nvar __38953 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(0),null);\nvar spec_38954__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38954__$1);\n\n\nvar G__38955 \x3d seq__38110_38947;\nvar G__38956 \x3d chunk__38111_38948;\nvar G__38957 \x3d count__38112_38949;\nvar G__38958 \x3d (i__38113_38950 + (1));\nseq__38110_38947 \x3d G__38955;\nchunk__38111_38948 \x3d G__38956;\ncount__38112_38949 \x3d G__38957;\ni__38113_38950 \x3d G__38958;\ncontinue;\n} else {\nvar temp__5825__auto___38959 \x3d cljs.core.seq(seq__38110_38947);\nif(temp__5825__auto___38959){\nvar seq__38110_38960__$1 \x3d temp__5825__auto___38959;\nif(cljs.core.chunked_seq_QMARK_(seq__38110_38960__$1)){\nvar c__5548__auto___38961 \x3d cljs.core.chunk_first(seq__38110_38960__$1);\nvar G__38962 \x3d cljs.core.chunk_rest(seq__38110_38960__$1);\nvar G__38963 \x3d c__5548__auto___38961;\nvar G__38964 \x3d cljs.core.count(c__5548__auto___38961);\nvar G__38965 \x3d (0);\nseq__38110_38947 \x3d G__38962;\nchunk__38111_38948 \x3d G__38963;\ncount__38112_38949 \x3d G__38964;\ni__38113_38950 \x3d G__38965;\ncontinue;\n} else {\nvar vec__38131_38966 \x3d cljs.core.first(seq__38110_38960__$1);\nvar __38967 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(0),null);\nvar spec_38968__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38968__$1);\n\n\nvar G__38970 \x3d cljs.core.next(seq__38110_38960__$1);\nvar G__38971 \x3d null;\nvar G__38972 \x3d (0);\nvar G__38973 \x3d (0);\nseq__38110_38947 \x3d G__38970;\nchunk__38111_38948 \x3d G__38971;\ncount__38112_38949 \x3d G__38972;\ni__38113_38950 \x3d G__38973;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),import_map,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),import_map], null);\n});\n/**\n * Given a spec form check whether the spec namespace requires a macro file\n * of the same name. If so return true.\n */\ncljs.analyzer.macro_autoload_ns_QMARK_ \x3d (function cljs$analyzer$macro_autoload_ns_QMARK_(form){\nif(cljs.core.truth_(cljs.analyzer._STAR_macro_infer_STAR_)){\nvar ns \x3d ((cljs.core.sequential_QMARK_(form))?cljs.core.first(form):form);\nvar map__38136 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null));\nvar map__38136__$1 \x3d cljs.core.__destructure_map(map__38136);\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar or__5025__auto__ \x3d cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(use_macros));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(require_macros));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a symbol that starts with clojure as the first segment return the\n * same symbol with the first segment replaced with cljs\n */\ncljs.analyzer.clj_ns__GT_cljs_ns \x3d (function cljs$analyzer$clj_ns__GT_cljs_ns(sym){\nvar segs \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure\x22,cljs.core.first(segs))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.cons(\x22cljs\x22,cljs.core.next(segs))));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.canonicalize_specs \x3d (function cljs$analyzer$canonicalize_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nvar spec \x3d cljs.core.second(quoted_spec_or_kw);\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.map_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\ncljs.analyzer.canonicalize_import_specs \x3d (function cljs$analyzer$canonicalize_import_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_import_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nreturn cljs.core.second(quoted_spec_or_kw);\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\n/**\n * Given an original set of ns specs desugar :include-macros and :refer-macros\n * usage into only primitive spec forms - :use, :require, :use-macros,\n * :require-macros. If a library includes a macro file of with the same name\n * as the namespace will also be desugared.\n */\ncljs.analyzer.desugar_ns_specs \x3d (function cljs$analyzer$desugar_ns_specs(args){\nvar map__38157 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__38158){\nvar vec__38159 \x3d p__38158;\nvar seq__38160 \x3d cljs.core.seq(vec__38159);\nvar first__38161 \x3d cljs.core.first(seq__38160);\nvar seq__38160__$1 \x3d cljs.core.next(seq__38160);\nvar k \x3d first__38161;\nvar specs \x3d seq__38160__$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,specs)], null);\n}),args));\nvar map__38157__$1 \x3d cljs.core.__destructure_map(map__38157);\nvar indexed \x3d map__38157__$1;\nvar require__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38157__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar sugar_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953),null], null), null);\nvar remove_from_spec \x3d (function (pred,spec){\nwhile(true){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(spec);\nif(and__5023__auto__){\nreturn cljs.core.some(pred,spec);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn spec;\n} else {\nvar vec__38164 \x3d cljs.core.split_with(cljs.core.complement(pred),spec);\nvar l \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(1),null);\nvar G__38975 \x3d pred;\nvar G__38976 \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),r));\npred \x3d G__38975;\nspec \x3d G__38976;\ncontinue;\n}\nbreak;\n}\n});\nvar replace_refer_macros \x3d (function (spec){\nif((!(cljs.core.sequential_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953))){\nreturn new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553);\n} else {\nreturn x;\n}\n}),spec);\n}\n});\nvar reload_spec_QMARK_ \x3d (function (p1__38155_SHARP_){\nvar fexpr__38168 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null);\nreturn (fexpr__38168.cljs$core$IFn$_invoke$arity$1 ? fexpr__38168.cljs$core$IFn$_invoke$arity$1(p1__38155_SHARP_) : fexpr__38168.call(null,p1__38155_SHARP_));\n});\nvar to_macro_specs \x3d (function (specs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nreturn replace_refer_macros(remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null], null), null),x))));\n} else {\nreturn x;\n}\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (x){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(x);\nif(and__5023__auto__){\nreturn cljs.core.some(sugar_keys,x);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d reload_spec_QMARK_(x);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.macro_autoload_ns_QMARK_(x);\n}\n}\n}),specs));\n});\nvar remove_sugar \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(remove_from_spec,sugar_keys);\nvar temp__5827__auto__ \x3d cljs.core.seq(to_macro_specs(require__$1));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn args;\n} else {\nvar require_specs \x3d temp__5827__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nvar vec__38174 \x3d x;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(1),null);\nreturn cljs.core.cons(k,cljs.core.map.cljs$core$IFn$_invoke$arity$2(remove_sugar,v));\n} else {\nreturn x;\n}\n}),cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(indexed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),require_specs));\n}\n});\ncljs.analyzer.find_def_clash \x3d (function cljs$analyzer$find_def_clash(env,ns,segments){\nvar to_check \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (xs){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.butlast(xs))),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(xs))], null);\n}),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.PersistentVector.EMPTY,segments)));\nvar seq__38181 \x3d cljs.core.seq(to_check);\nvar chunk__38182 \x3d null;\nvar count__38183 \x3d (0);\nvar i__38184 \x3d (0);\nwhile(true){\nif((i__38184 \x3c count__38183)){\nvar vec__38198 \x3d chunk__38182.cljs$core$IIndexed$_nth$arity$2(null,i__38184);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38981 \x3d seq__38181;\nvar G__38982 \x3d chunk__38182;\nvar G__38983 \x3d count__38183;\nvar G__38984 \x3d (i__38184 + (1));\nseq__38181 \x3d G__38981;\nchunk__38182 \x3d G__38982;\ncount__38183 \x3d G__38983;\ni__38184 \x3d G__38984;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38181);\nif(temp__5825__auto__){\nvar seq__38181__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38181__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38181__$1);\nvar G__38985 \x3d cljs.core.chunk_rest(seq__38181__$1);\nvar G__38986 \x3d c__5548__auto__;\nvar G__38987 \x3d cljs.core.count(c__5548__auto__);\nvar G__38988 \x3d (0);\nseq__38181 \x3d G__38985;\nchunk__38182 \x3d G__38986;\ncount__38183 \x3d G__38987;\ni__38184 \x3d G__38988;\ncontinue;\n} else {\nvar vec__38204 \x3d cljs.core.first(seq__38181__$1);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38989 \x3d cljs.core.next(seq__38181__$1);\nvar G__38990 \x3d null;\nvar G__38991 \x3d (0);\nvar G__38992 \x3d (0);\nseq__38181 \x3d G__38989;\nchunk__38182 \x3d G__38990;\ncount__38183 \x3d G__38991;\ni__38184 \x3d G__38992;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.macro_ns_name \x3d (function cljs$analyzer$macro_ns_name(name){\nvar name_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif(cljs.core.not(goog.string.endsWith(name_str,\x22$macros\x22))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([name_str,\x22$macros\x22].join(\x27\x27));\n} else {\nreturn name;\n}\n});\ncljs.analyzer.check_duplicate_aliases \x3d (function cljs$analyzer$check_duplicate_aliases(env,old,new$){\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(old);\nvar seq__38210 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null));\nvar chunk__38211 \x3d null;\nvar count__38212 \x3d (0);\nvar i__38213 \x3d (0);\nwhile(true){\nif((i__38213 \x3c count__38212)){\nvar k \x3d chunk__38211.cljs$core$IIndexed$_nth$arity$2(null,i__38213);\nvar old_aliases_38993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_38994 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___38995 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_38994)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name){\nreturn (function (p__38223){\nvar vec__38224 \x3d p__38223;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(1),null);\nvar entry \x3d vec__38224;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_38994,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name))\n,old_aliases_38993)));\nif((temp__5829__auto___38995 \x3d\x3d null)){\n} else {\nvar alias_38996 \x3d temp__5829__auto___38995;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_38996),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_38993,alias_38996))].join(\x27\x27));\n}\n\n\nvar G__38997 \x3d seq__38210;\nvar G__38998 \x3d chunk__38211;\nvar G__38999 \x3d count__38212;\nvar G__39000 \x3d (i__38213 + (1));\nseq__38210 \x3d G__38997;\nchunk__38211 \x3d G__38998;\ncount__38212 \x3d G__38999;\ni__38213 \x3d G__39000;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38210);\nif(temp__5825__auto__){\nvar seq__38210__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38210__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38210__$1);\nvar G__39001 \x3d cljs.core.chunk_rest(seq__38210__$1);\nvar G__39002 \x3d c__5548__auto__;\nvar G__39003 \x3d cljs.core.count(c__5548__auto__);\nvar G__39004 \x3d (0);\nseq__38210 \x3d G__39001;\nchunk__38211 \x3d G__39002;\ncount__38212 \x3d G__39003;\ni__38213 \x3d G__39004;\ncontinue;\n} else {\nvar k \x3d cljs.core.first(seq__38210__$1);\nvar old_aliases_39005 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_39006 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___39007 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_39006)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name){\nreturn (function (p__38227){\nvar vec__38228 \x3d p__38227;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(1),null);\nvar entry \x3d vec__38228;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_39006,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name))\n,old_aliases_39005)));\nif((temp__5829__auto___39007 \x3d\x3d null)){\n} else {\nvar alias_39010 \x3d temp__5829__auto___39007;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_39010),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_39005,alias_39010))].join(\x27\x27));\n}\n\n\nvar G__39011 \x3d cljs.core.next(seq__38210__$1);\nvar G__39012 \x3d null;\nvar G__39013 \x3d (0);\nvar G__39014 \x3d (0);\nseq__38210 \x3d G__39011;\nchunk__38211 \x3d G__39012;\ncount__38212 \x3d G__39013;\ni__38213 \x3d G__39014;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.merge_ns_info \x3d (function cljs$analyzer$merge_ns_info(old,new$,env){\nif((cljs.core.count(old) \x3e (0))){\nvar deep_merge_keys \x3d new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old,cljs.core.select_keys(new$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null)),cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(old,deep_merge_keys),cljs.core.select_keys(new$,deep_merge_keys)], 0))], 0));\n} else {\nreturn new$;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),(function (_,env,p__38243,___$1,opts){\nvar vec__38244 \x3d p__38243;\nvar seq__38245 \x3d cljs.core.seq(vec__38244);\nvar first__38246 \x3d cljs.core.first(seq__38245);\nvar seq__38245__$1 \x3d cljs.core.next(seq__38245);\nvar ___$2 \x3d first__38246;\nvar first__38246__$1 \x3d cljs.core.first(seq__38245__$1);\nvar seq__38245__$2 \x3d cljs.core.next(seq__38245__$1);\nvar name \x3d first__38246__$1;\nvar args \x3d seq__38245__$2;\nvar form \x3d vec__38244;\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespace declarations must appear at the top-level.\x22);\n}\n\nif((name instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespaces must be named by a symbol.\x22);\n}\n\nvar name__$1 \x3d (function (){var G__38249 \x3d name;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.analyzer.macro_ns_name(G__38249);\n} else {\nreturn G__38249;\n}\n})();\nvar segments_39016 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name__$1),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(segments_39016))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\nvar segment_39017 \x3d cljs.core.some(cljs.analyzer.js_reserved,segments_39016);\nif((!((segment_39017 \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\ncljs.analyzer.find_def_clash(env,name__$1,segments_39016);\n\nvar docstring \x3d ((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27)?cljs.core.first(args):null);\nvar mdocstr \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name__$1));\nvar args__$1 \x3d (((!((docstring \x3d\x3d null))))?cljs.core.next(args):args);\nvar metadata \x3d ((cljs.core.map_QMARK_(cljs.core.first(args__$1)))?cljs.core.first(args__$1):null);\nvar args__$2 \x3d cljs.analyzer.desugar_ns_specs((((!((metadata \x3d\x3d null))))?cljs.core.next(args__$1):args__$1));\nvar map__38253 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args__$2);\nvar map__38253__$1 \x3d cljs.core.__destructure_map(map__38253);\nvar args__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar name__$2 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata);\nvar map__38254 \x3d cljs.analyzer.parse_ns_excludes(env,args__$3);\nvar map__38254__$1 \x3d cljs.core.__destructure_map(map__38254);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38259){\nvar vec__38260 \x3d p__38259;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar valid_forms \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null));\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38255 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38267){\nvar vec__38268 \x3d p__38267;\nvar seq__38269 \x3d cljs.core.seq(vec__38268);\nvar first__38270 \x3d cljs.core.first(seq__38269);\nvar seq__38269__$1 \x3d cljs.core.next(seq__38269);\nvar k \x3d first__38270;\nvar libs \x3d seq__38269__$1;\nvar libspec \x3d vec__38268;\nif(cljs.core.truth_((function (){var fexpr__38272 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null);\nreturn (fexpr__38272.cljs$core$IFn$_invoke$arity$1 ? fexpr__38272.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38272.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only :refer-clojure, :require, :require-macros, :use, :use-macros, and :import libspecs supported. Got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(libspec),\x22 instead.\x22].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var fexpr__38273 \x3d cljs.core.deref(valid_forms);\nreturn (fexpr__38273.cljs$core$IFn$_invoke$arity$1 ? fexpr__38273.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38273.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only one \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 form is allowed per namespace definition\x22].join(\x27\x27));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(valid_forms,cljs.core.disj,k);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5825__auto___39019 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38241_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38241_SHARP_));\n}),libs));\nif(temp__5825__auto___39019){\nvar xs_39020 \x3d temp__5825__auto___39019;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39020),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38242_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38242_SHARP_));\n}),xs_39020)));\n} else {\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38275){\nvar vec__38276 \x3d p__38275;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38276,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$3));\nvar map__38255__$1 \x3d cljs.core.__destructure_map(map__38255);\nvar params \x3d map__38255__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\nvar vec__38256 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec_map){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2),(0),(((cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2)).length) - (7))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38280){\nvar vec__38281 \x3d p__38280;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(1),null);\nvar G__38284 \x3d m;\nif((!(cljs.core.symbol_identical_QMARK_(v,ns)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38284,k,v);\n} else {\nreturn G__38284;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,spec_map);\n} else {\nreturn spec_map;\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [require_macros,use_macros], null));\nvar require_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(0),null);\nvar use_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(1),null);\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name__$2);\n\nvar ns_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros__$1,excludes,name__$2,imports,requires,uses,require_macros__$1,(function (){var or__5025__auto__ \x3d docstring;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn mdocstr;\n}\n})(),as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name__$2], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_info], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38287 \x3d ns_info;\nvar G__38287__$1 \x3d (cljs.core.truth_((function (){var fexpr__38288 \x3d cljs.core.deref(reload);\nreturn (fexpr__38288.cljs$core$IFn$_invoke$arity$1 ? fexpr__38288.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38288.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38289 \x3d cljs.core.deref(reload);\nreturn (fexpr__38289.cljs$core$IFn$_invoke$arity$1 ? fexpr__38289.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38289.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38287);\nif(cljs.core.truth_((function (){var fexpr__38290 \x3d cljs.core.deref(reload);\nreturn (fexpr__38290.cljs$core$IFn$_invoke$arity$1 ? fexpr__38290.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38290.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38291 \x3d cljs.core.deref(reload);\nreturn (fexpr__38291.cljs$core$IFn$_invoke$arity$1 ? fexpr__38291.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38291.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38287__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),(function (_,env,p__38295,___$1,opts){\nvar vec__38296 \x3d p__38295;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(0),null);\nvar quoted_specs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(1),null);\nvar form \x3d vec__38296;\nvar temp__5825__auto___39029 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__38292_SHARP_){\nreturn ((cljs.core.seq_QMARK_(p1__38292_SHARP_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(p1__38292_SHARP_))));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,quoted_specs)));\nif(cljs.core.truth_(temp__5825__auto___39029)){\nvar not_quoted_39030 \x3d temp__5825__auto___39029;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Arguments to \x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22 must be quoted. Offending spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(not_quoted_39030)].join(\x27\x27));\n} else {\n}\n\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Calls to `\x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22` must appear at the top-level.\x22].join(\x27\x27));\n}\n\nvar specs \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.first(quoted_specs)))?cljs.analyzer.canonicalize_import_specs(quoted_specs):cljs.analyzer.canonicalize_specs(quoted_specs));\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar args \x3d cljs.analyzer.desugar_ns_specs((new cljs.core.List(null,specs,null,(1),null)));\nvar map__38300 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args);\nvar map__38300__$1 \x3d cljs.core.__destructure_map(map__38300);\nvar args__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar map__38301 \x3d cljs.analyzer.parse_ns_excludes(env,args__$1);\nvar map__38301__$1 \x3d cljs.core.__destructure_map(map__38301);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38304){\nvar vec__38306 \x3d p__38304;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38302 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38309){\nvar vec__38310 \x3d p__38309;\nvar seq__38311 \x3d cljs.core.seq(vec__38310);\nvar first__38312 \x3d cljs.core.first(seq__38311);\nvar seq__38311__$1 \x3d cljs.core.next(seq__38311);\nvar k \x3d first__38312;\nvar libs \x3d seq__38311__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5829__auto___39036 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38293_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38293_SHARP_));\n}),libs));\nif((temp__5829__auto___39036 \x3d\x3d null)){\n} else {\nvar xs_39038 \x3d temp__5829__auto___39036;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39038),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38294_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38294_SHARP_));\n}),xs_39038)));\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38317){\nvar vec__38318 \x3d p__38317;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38318,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$1));\nvar map__38302__$1 \x3d cljs.core.__destructure_map(map__38302);\nvar params \x3d map__38302__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name);\n\nvar require_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros,excludes,name,imports,requires,uses,require_macros,as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name], null),cljs.analyzer.merge_ns_info,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([require_info,env], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns*\x22,\x22ns*\x22,200417856),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38326 \x3d require_info;\nvar G__38326__$1 \x3d (cljs.core.truth_((function (){var fexpr__38327 \x3d cljs.core.deref(reload);\nreturn (fexpr__38327.cljs$core$IFn$_invoke$arity$1 ? fexpr__38327.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38327.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38328 \x3d cljs.core.deref(reload);\nreturn (fexpr__38328.cljs$core$IFn$_invoke$arity$1 ? fexpr__38328.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38328.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38326);\nif(cljs.core.truth_((function (){var fexpr__38329 \x3d cljs.core.deref(reload);\nreturn (fexpr__38329.cljs$core$IFn$_invoke$arity$1 ? fexpr__38329.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38329.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38330 \x3d cljs.core.deref(reload);\nreturn (fexpr__38330.cljs$core$IFn$_invoke$arity$1 ? fexpr__38330.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38330.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38326__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse_type \x3d (function cljs$analyzer$parse_type(op,env,p__38331){\nvar vec__38332 \x3d p__38331;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(0),null);\nvar tsym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(1),null);\nvar fields \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(2),null);\nvar pmasks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(3),null);\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(4),null);\nvar form \x3d vec__38332;\nvar t \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),tsym));\nvar locals \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,fld){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,fld,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[fld,true,cljs.analyzer.get_col(fld,env),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),cljs.analyzer.get_line(fld,env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),(m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(fld) : m.call(null,fld)),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500)]));\n}),cljs.core.PersistentArrayMap.EMPTY,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fields,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22__meta\x22,\x22__meta\x22,-946752628,null),new cljs.core.Symbol(null,\x22__extmap\x22,\x22__extmap\x22,-1435580931,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null)):fields));\nvar protocols \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tsym));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),tsym], null),(function (m){\nvar m__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),t,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),true,new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024),cljs.core.count(fields),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op)], 0));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m__$1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(tsym),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols], null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(tsym,env)], 0));\n}));\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22pmasks\x22,\x22pmasks\x22,-871416698),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22fields\x22,\x22fields\x22,-1932066230),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22t\x22,\x22t\x22,-1397832519),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),pmasks,cljs.core.disj.cljs$core$IFn$_invoke$arity$2(protocols,new cljs.core.Symbol(\x22cljs.core\x22,\x22Object\x22,\x22cljs.core/Object\x22,-345545431,null)),fields,op,env,t,form,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),(function (){var G__38338 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals);\nvar G__38339 \x3d body;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38338,G__38339) : cljs.analyzer.analyze.call(null,G__38338,G__38339));\n})()]);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22deftype\x22,\x22deftype\x22,340294561),env,form);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),env,form);\n}));\ncljs.analyzer.property_symbol_QMARK_ \x3d (function cljs$analyzer$property_symbol_QMARK_(p1__38340_SHARP_){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (p1__38340_SHARP_ instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nreturn cljs.core.re_matches(/^-.*/,cljs.core.name(p1__38340_SHARP_));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.classify_dot_form \x3d (function cljs$analyzer$classify_dot_form(p__38341){\nvar vec__38342 \x3d p__38341;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(0),null);\nvar member \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(2),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((target \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n),((cljs.analyzer.property_symbol_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886):(((member instanceof cljs.core.Symbol))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902):((cljs.core.seq_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642)\n))),(((args \x3d\x3d null))?cljs.core.List.EMPTY:new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n)], null);\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.build_dot_form !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.build_dot_form \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__38349 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__38349.cljs$core$IFn$_invoke$arity$0 ? fexpr__38349.cljs$core$IFn$_invoke$arity$0() : fexpr__38349.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22build-dot-form\x22),(function (p1__38347_SHARP_){\nreturn cljs.analyzer.classify_dot_form(p1__38347_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),cljs.core.List.EMPTY], null),(function (p__38350){\nvar vec__38351 \x3d p__38350;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(2),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22access\x22,\x22cljs.analyzer/access\x22,-1639036494),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(prop).substring((1))),cljs.core.meta(prop))], null);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923)], null),(function (p__38354){\nvar vec__38355 \x3d p__38354;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(2),null);\nthrow (new Error([\x22Cannot provide arguments \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(args),\x22 on property access \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop)].join(\x27\x27)));\n}));\n/**\n * Builds the intermediate method call map used to reason about the parsed form during\n * compilation.\n */\ncljs.analyzer.build_method_call \x3d (function cljs$analyzer$build_method_call(target,meth,args){\nif((meth instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),meth,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),cljs.core.first(meth),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n}\n});\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)], null),(function (p__38358){\nvar vec__38359 \x3d p__38358;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),cljs.core.List.EMPTY], null),(function (p__38362){\nvar vec__38363 \x3d p__38362;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923),cljs.core.List.EMPTY], null),(function (p__38366){\nvar vec__38367 \x3d p__38366;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(0),null);\nvar meth_expr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(2),null);\nreturn cljs.analyzer.build_method_call(target,cljs.core.first(meth_expr),cljs.core.rest(meth_expr));\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (dot_form){\nthrow (new Error([\x22Unknown dot form of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),dot_form)),\x22 with classification \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.classify_dot_form(dot_form))].join(\x27\x27)));\n}));\ncljs.analyzer.analyze_dot \x3d (function cljs$analyzer$analyze_dot(env,target,field,member_PLUS_,form){\nvar v \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,field,member_PLUS_], null);\nvar map__38371 \x3d cljs.analyzer.build_dot_form.cljs$core$IFn$_invoke$arity$1(v);\nvar map__38371__$1 \x3d cljs.core.__destructure_map(map__38371);\nvar dot_action \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601));\nvar target__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nvar field__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar targetexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze.call(null,enve,target__$1));\nvar form_meta \x3d cljs.core.meta(form);\nvar target_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(targetexpr);\nvar prop \x3d (function (){var or__5025__auto__ \x3d field__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn method;\n}\n})();\nvar tag \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_tag_QMARK_(target_tag);\nif(and__5023__auto__){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.analyzer.normalize_js_tag(target_tag),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null)),prop);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn null;\n}\n}\n})();\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22constructor\x22,\x22constructor\x22,-313397284,null),prop)) \x26\x26 ((((!(clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop),\x22cljs$\x22)))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22protocol-prop\x22,\x22protocol-prop\x22,-58388138).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(prop)))))))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),cljs.core.first(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),target_tag)){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (target_tag \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__38373 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22], null), null);\nreturn (fexpr__38373.cljs$core$IFn$_invoke$arity$1 ? fexpr__38373.cljs$core$IFn$_invoke$arity$1(target_tag) : fexpr__38373.call(null,target_tag));\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nvar vec__38374_39081 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.identity)(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)));\nvar pre_SINGLEQUOTE__39082 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(0),null);\nvar pre_39083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(1),null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_SINGLEQUOTE__39082);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39083));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,(function (){var G__38377 \x3d pre_SINGLEQUOTE__39082;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null),cljs.core.last(pre_SINGLEQUOTE__39082))){\nreturn cljs.core.butlast(G__38377);\n} else {\nreturn G__38377;\n}\n})())),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n} else {\n}\n} else {\n}\n\nif(cljs.analyzer.js_tag_QMARK_(tag)){\nvar pre_39089 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39089))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre_39089),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n} else {\n}\n\nvar G__38378 \x3d dot_action;\nvar G__38378__$1 \x3d (((G__38378 instanceof cljs.core.Keyword))?G__38378.fqn:null);\nswitch (G__38378__$1) {\ncase \x22cljs.analyzer/access\x22:\nvar children \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn tag;\n}\n})():tag)], null);\n\nbreak;\ncase \x22cljs.analyzer/call\x22:\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38370_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38370_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38370_SHARP_));\n}),args);\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null);\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),method,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n})():tag)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__38378__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(function (_,env,p__38379,___$1,___$2){\nvar vec__38380 \x3d p__38379;\nvar seq__38381 \x3d cljs.core.seq(vec__38380);\nvar first__38382 \x3d cljs.core.first(seq__38381);\nvar seq__38381__$1 \x3d cljs.core.next(seq__38381);\nvar ___$3 \x3d first__38382;\nvar first__38382__$1 \x3d cljs.core.first(seq__38381__$1);\nvar seq__38381__$2 \x3d cljs.core.next(seq__38381__$1);\nvar target \x3d first__38382__$1;\nvar vec__38383 \x3d seq__38381__$2;\nvar seq__38384 \x3d cljs.core.seq(vec__38383);\nvar first__38385 \x3d cljs.core.first(seq__38384);\nvar seq__38384__$1 \x3d cljs.core.next(seq__38384);\nvar field \x3d first__38385;\nvar member_PLUS_ \x3d seq__38384__$1;\nvar form \x3d vec__38380;\nvar _STAR_recur_frames_STAR__orig_val__38386 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38387 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38387);\n\ntry{return cljs.analyzer.analyze_dot(env,target,field,member_PLUS_,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38386);\n}}));\ncljs.analyzer.get_js_tag \x3d (function cljs$analyzer$get_js_tag(form){\nvar form_meta \x3d cljs.core.meta(form);\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nif(new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta) \x3d\x3d\x3d true){\nreturn new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\n} else {\nreturn null;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.js_star_interp \x3d (function cljs$analyzer$js_star_interp(env,s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nvar inner \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_existing_var(env,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,((2) + idx),end))));\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),cljs.core.cons(inner,(function (){var G__38394 \x3d env;\nvar G__38395 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2(G__38394,G__38395) : cljs.analyzer.js_star_interp.call(null,G__38394,G__38395));\n})()));\n}),null,null));\n}\n});\ncljs.analyzer.js_star_seg \x3d (function cljs$analyzer$js_star_seg(s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),(function (){var G__38398 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1(G__38398) : cljs.analyzer.js_star_seg.call(null,G__38398));\n})());\n}),null,null));\n}\n});\ncljs.analyzer.NUMERIC_SET \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null),\x22null\x22,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null),\x22null\x22,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),\x22null\x22], null), null);\ncljs.analyzer.numeric_type_QMARK_ \x3d (function cljs$analyzer$numeric_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif((((t instanceof cljs.core.Symbol)) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.NUMERIC_SET,t) \x3d\x3d null)))))){\nreturn true;\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn ((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))) || (cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))))))))));\n} else {\nreturn null;\n}\n}\n\n}\n}\n}\n});\ncljs.analyzer.array_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22,new cljs.core.Symbol(null,\x22floats\x22,\x22floats\x22,513591110,null),\x22null\x22,new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null),\x22null\x22,new cljs.core.Symbol(null,\x22objects\x22,\x22objects\x22,-554722035,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null),\x22null\x22,new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),\x22null\x22,new cljs.core.Symbol(null,\x22ints\x22,\x22ints\x22,-1761239845,null),\x22null\x22,new cljs.core.Symbol(null,\x22shorts\x22,\x22shorts\x22,107738238,null),\x22null\x22,new cljs.core.Symbol(null,\x22bytes\x22,\x22bytes\x22,-1478569089,null),\x22null\x22], null), null);\ncljs.analyzer.array_type_QMARK_ \x3d (function cljs$analyzer$array_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),t)){\nreturn true;\n} else {\nif(cljs.core.contains_QMARK_(cljs.analyzer.array_types,t)){\nreturn true;\n} else {\nreturn cljs.core.boolean$(((cljs.analyzer.impl.cljs_set_QMARK_(t))?(function (){var or__5025__auto__ \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.some(cljs.analyzer.array_types,t);\n}\n}\n})():null));\n\n}\n}\n}\n}\n}\n});\ncljs.analyzer.analyze_js_star_args \x3d (function cljs$analyzer$analyze_js_star_args(js_op,env,args){\nreturn cljs.core.first(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__38404,arg){\nvar vec__38405 \x3d p__38404;\nvar argexprs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(0),null);\nvar env__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argexprs,(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env__$1,arg) : cljs.analyzer.analyze.call(null,env__$1,arg))),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(js_op,new cljs.core.Symbol(\x22cljs.core\x22,\x22and\x22,\x22cljs.core/and\x22,-6692549,null)))?cljs.analyzer.set_test_induced_tags(env__$1,arg):env__$1)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentVector.EMPTY,env], null),args));\n});\ncljs.analyzer.analyze_js_star_STAR_ \x3d (function cljs$analyzer$analyze_js_star_STAR_(env,jsform,args,form){\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar form_meta \x3d cljs.core.meta(form);\nvar segs \x3d cljs.analyzer.js_star_seg(jsform);\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar argexprs \x3d cljs.analyzer.analyze_js_star_args(js_op,enve,args);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar validate \x3d (function (warning_type,valid_types_QMARK_){\nvar types \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38408_SHARP_){\nreturn cljs.analyzer.infer_tag(env,p1__38408_SHARP_);\n}),argexprs);\nif(cljs.core.truth_((valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1(types) : valid_types_QMARK_.call(null,types)))){\nreturn null;\n} else {\nreturn cljs.analyzer.warning(warning_type,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,types)], null));\n}\n});\nvar op_match_QMARK_ \x3d (function (sym){\nreturn cljs.core.symbol_identical_QMARK_(sym,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta));\n});\nif(numeric \x3d\x3d\x3d true){\nvalidate(new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (p1__38409_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,p1__38409_SHARP_);\n}));\n} else {\n}\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)],[argexprs,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),numeric,segs,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),env,js_op,form,tag]);\n});\ncljs.analyzer.analyze_js_star \x3d (function cljs$analyzer$analyze_js_star(env,jsform,args,form){\nvar _STAR_recur_frames_STAR__orig_val__38415 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38416 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38416);\n\ntry{return cljs.analyzer.analyze_js_star_STAR_(env,jsform,args,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38415);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),(function (op,env,p__38421,_,___$1){\nvar vec__38422 \x3d p__38421;\nvar seq__38423 \x3d cljs.core.seq(vec__38422);\nvar first__38424 \x3d cljs.core.first(seq__38423);\nvar seq__38423__$1 \x3d cljs.core.next(seq__38423);\nvar ___$2 \x3d first__38424;\nvar first__38424__$1 \x3d cljs.core.first(seq__38423__$1);\nvar seq__38423__$2 \x3d cljs.core.next(seq__38423__$1);\nvar jsform \x3d first__38424__$1;\nvar args \x3d seq__38423__$2;\nvar form \x3d vec__38422;\nif(typeof jsform \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid js* form\x22);\n}\n\nif((!((args \x3d\x3d null)))){\nreturn cljs.analyzer.analyze_js_star(env,jsform,args,form);\n} else {\nvar code \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.analyzer.js_star_interp(env,jsform));\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar form_meta \x3d cljs.core.meta(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),code,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),numeric], null);\n}\n}));\ncljs.analyzer.unsorted_map_QMARK_ \x3d (function cljs$analyzer$unsorted_map_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 ((!(cljs.core.sorted_QMARK_(x)))));\n});\n/**\n * Mark a form as being analyzed. Assumes x satisfies IMeta. Useful to suppress\n * warnings that will have been caught by a first compiler pass.\n */\ncljs.analyzer.analyzed \x3d (function cljs$analyzer$analyzed(x){\nif(cljs.analyzer.unsorted_map_QMARK_(x)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n} else {\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(x,cljs.core.assoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n\n}\n});\n/**\n * Returns boolean if the form has already been marked as analyzed.\n */\ncljs.analyzer.analyzed_QMARK_ \x3d (function cljs$analyzer$analyzed_QMARK_(x){\nreturn cljs.core.boolean$(((cljs.analyzer.unsorted_map_QMARK_(x))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(x):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x))\n));\n});\ncljs.analyzer.all_values_QMARK_ \x3d (function cljs$analyzer$all_values_QMARK_(exprs){\nreturn cljs.core.every_QMARK_((function (p1__38429_SHARP_){\nreturn (((p1__38429_SHARP_ \x3d\x3d null)) || ((((p1__38429_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27string\x27) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27number\x27) || (((p1__38429_SHARP_ \x3d\x3d\x3d true) || (p1__38429_SHARP_ \x3d\x3d\x3d false))))))))));\n}),exprs);\n});\ncljs.analyzer.valid_arity_QMARK_ \x3d (function cljs$analyzer$valid_arity_QMARK_(argc,method_params){\nreturn (((method_params \x3d\x3d null)) || (cljs.core.boolean$(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([argc]),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,method_params)))));\n});\ncljs.analyzer.record_tag_QMARK_ \x3d (function cljs$analyzer$record_tag_QMARK_(tag){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (tag instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((cljs.core.namespace(tag) \x3d\x3d null)));\nif(and__5023__auto____$1){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(tag)),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859)], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.record_basis \x3d (function cljs$analyzer$record_basis(tag){\nvar positional_factory \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22-\x3e\x22,cljs.core.name(tag)].join(\x27\x27));\nvar fields \x3d cljs.core.first(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),positional_factory,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179)], null)));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,fields);\n});\ncljs.analyzer.record_with_field_QMARK_ \x3d (function cljs$analyzer$record_with_field_QMARK_(tag,field){\nreturn ((cljs.analyzer.record_tag_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(cljs.analyzer.record_basis(tag),field)));\n});\ncljs.analyzer.invalid_arity_QMARK_ \x3d (function cljs$analyzer$invalid_arity_QMARK_(argc,method_params,variadic,max_fixed_arity){\nvar and__5023__auto__ \x3d (!(cljs.analyzer.valid_arity_QMARK_(argc,method_params)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core.not(variadic);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d variadic;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn (argc \x3c max_fixed_arity);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.parse_invoke_STAR_ \x3d (function cljs$analyzer$parse_invoke_STAR_(env,p__38437){\nvar vec__38438 \x3d p__38437;\nvar seq__38439 \x3d cljs.core.seq(vec__38438);\nvar first__38440 \x3d cljs.core.first(seq__38439);\nvar seq__38439__$1 \x3d cljs.core.next(seq__38439);\nvar f \x3d first__38440;\nvar args \x3d seq__38439__$1;\nvar form \x3d vec__38438;\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar fexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,f) : cljs.analyzer.analyze.call(null,enve,f));\nvar argc \x3d cljs.core.count(args);\nvar fn_var_QMARK_ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\n}\n})();\nvar kw_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar cur_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar HO_invoke_QMARK_ \x3d ((cljs.core.boolean$(cljs.analyzer._STAR_cljs_static_fns_STAR_)) \x26\x26 (((cljs.core.not(fn_var_QMARK_)) \x26\x26 ((((!(cljs.analyzer.js_tag_QMARK_(f)))) \x26\x26 ((((!(kw_QMARK_))) \x26\x26 ((!(cljs.analyzer.analyzed_QMARK_(f)))))))))));\nvar bind_f_expr_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!((f instanceof cljs.core.Symbol)))));\nvar bind_args_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!(cljs.analyzer.all_values_QMARK_(args)))));\nif(fn_var_QMARK_){\nvar map__38441_39147 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr);\nvar map__38441_39148__$1 \x3d cljs.core.__destructure_map(map__38441_39147);\nvar variadic_39149 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity_39150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params_39151 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar name_39152 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar ns_39153 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar macro_39154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not((function (){var and__5023__auto__ \x3d goog.string.endsWith(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cur_ns),\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.symbol_identical_QMARK_(cur_ns,ns_39153)) \x26\x26 (macro_39154 \x3d\x3d\x3d true));\n} else {\nreturn and__5023__auto__;\n}\n})());\nif(and__5023__auto__){\nreturn cljs.analyzer.invalid_arity_QMARK_(argc,method_params_39151,variadic_39149,max_fixed_arity_39150);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39152,new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n} else {\n}\n\nif(((kw_QMARK_) \x26\x26 ((!(((((1) \x3d\x3d\x3d argc)) || (((2) \x3d\x3d\x3d argc)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.first(form),new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n\nvar deprecated_QMARK__39160 \x3d new cljs.core.Keyword(null,\x22deprecated\x22,\x22deprecated\x22,1498275348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar no_warn_QMARK__39161 \x3d new cljs.core.Keyword(null,\x22deprecation-nowarn\x22,\x22deprecation-nowarn\x22,-1762828044).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nif(((cljs.core.boolean$(deprecated_QMARK__39160)) \x26\x26 ((!(cljs.core.boolean$(no_warn_QMARK__39161)))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif(((bind_args_QMARK_) || (bind_f_expr_QMARK_))){\nvar arg_syms \x3d ((bind_args_QMARK_)?cljs.core.take.cljs$core$IFn$_invoke$arity$2(argc,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym)):null);\nvar f_sym \x3d ((bind_f_expr_QMARK_)?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22fexpr__\x22):null);\nvar bindings \x3d (function (){var G__38445 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38445__$1 \x3d ((bind_args_QMARK_)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__38445,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arg_syms,args)):G__38445);\nif(bind_f_expr_QMARK_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__38445__$1,f_sym,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.analyzed(f)], 0));\n} else {\nreturn G__38445__$1;\n}\n})();\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar G__38446 \x3d env;\nvar G__38447 \x3d 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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(bindings)))),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$2((new cljs.core.List(null,cljs.analyzer.analyzed(((bind_f_expr_QMARK_)?f_sym:f)),null,(1),null)),((bind_args_QMARK_)?arg_syms:args)))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag], null)),null,(1),null))], 0))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38446,G__38447) : cljs.analyzer.analyze.call(null,G__38446,G__38447));\n} else {\nvar ana_expr \x3d (function (p1__38436_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38436_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38436_SHARP_));\n});\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(ana_expr,args);\nif((((((f instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(f) \x3d\x3d null)))) \x26\x26 (((((1) \x3d\x3d\x3d cljs.core.count(args))) \x26\x26 (cljs.analyzer.record_with_field_QMARK_(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.first(argexprs)),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(f)))))))){\nvar field_access_form \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22.-\x22,cljs.core.name(f)].join(\x27\x27)),args);\nvar _STAR_cljs_warnings_STAR__orig_val__38448 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38449 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38449);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,field_access_form) : cljs.analyzer.analyze.call(null,env,field_access_form));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38448);\n}} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null)], null);\n}\n}\n});\ncljs.analyzer.parse_invoke \x3d (function cljs$analyzer$parse_invoke(env,form){\nvar _STAR_recur_frames_STAR__orig_val__38450 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38451 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38451);\n\ntry{return cljs.analyzer.parse_invoke_STAR_(env,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38450);\n}});\ncljs.analyzer.desugar_dotted_expr \x3d (function cljs$analyzer$desugar_dotted_expr(p__38452){\nvar map__38453 \x3d p__38452;\nvar map__38453__$1 \x3d cljs.core.__destructure_map(map__38453);\nvar expr \x3d map__38453__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38453__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__38454 \x3d op;\nvar G__38454__$1 \x3d (((G__38454 instanceof cljs.core.Keyword))?G__38454.fqn:null);\nswitch (G__38454__$1) {\ncase \x22var\x22:\ncase \x22local\x22:\nif(cljs.analyzer.dotted_symbol_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr))))){\nvar s \x3d cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr));\nvar idx \x3d s.lastIndexOf(\x22.\x22);\nvar _ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((idx + (1)),((s).length)))?null:(function(){throw (new Error(\x22Assert failed: (not\x3d (inc idx) (count s))\x22))})());\nvar prefix \x3d cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx)),cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr)));\nvar field \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1))));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(expr))){\n} else {\nthrow (new Error(\x22Assert failed: (not (:const-expr expr))\x22));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(new cljs.core.List(null,prefix,(new cljs.core.List(null,field,null,(1),null)),(2),null)),(3),null)),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),(function (){var G__38455 \x3d cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(expr,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),prefix,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),prefix], 0)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)], null),prefix),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nreturn (cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1(G__38455) : cljs.analyzer.desugar_dotted_expr.call(null,G__38455));\n})(),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null)], null);\n} else {\nreturn expr;\n}\n\nbreak;\ndefault:\nreturn expr;\n\n}\n});\n/**\n * Finds the var associated with sym\n */\ncljs.analyzer.analyze_symbol \x3d (function cljs$analyzer$analyze_symbol(env,sym){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nvar G__38456 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38456) : cljs.analyzer.analyze_wrap_meta.call(null,G__38456));\n} else {\nvar map__38457 \x3d cljs.core.meta(sym);\nvar map__38457__$1 \x3d cljs.core.__destructure_map(map__38457);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar env__$1 \x3d (((!((line \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):env);\nvar env__$2 \x3d (((!((column \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column):env__$1);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$2,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym], null);\nvar lcls \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env__$2);\nvar temp__5827__auto__ \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(lcls,sym));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar sym_meta \x3d cljs.core.meta(sym);\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar cur_ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$2)));\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,\x22cljs.core\x22);\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d goog.string.endsWith(cur_ns,\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn ((cljs.core.not(goog.string.endsWith(sym_ns,\x22$macros\x22))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cur_ns,(0),(((cur_ns).length) - (7))))));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2([sym_ns,\x22$macros\x22].join(\x27\x27),cljs.core.name(sym)):sym);\nvar info \x3d (((!(cljs.core.contains_QMARK_(sym_meta,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162)))))?cljs.analyzer.resolve_existing_var(env__$2,sym__$1):cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info)),\x22\\n\x22,\x22(:op info)\x22].join(\x27\x27)));\n}\n\nreturn cljs.analyzer.desugar_dotted_expr((((!(new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377).cljs$core$IFn$_invoke$arity$1(env__$2) \x3d\x3d\x3d true)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info),cljs.core.select_keys(info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null)),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar const_expr \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})()], 0)):(function (){var info__$1 \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info__$1], 0)),cljs.core.select_keys(info__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0));\n})()));\n} else {\nvar lb \x3d temp__5827__auto__;\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),lb], 0)),((cljs.core.map_QMARK_(lb))?cljs.core.select_keys(lb,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)):null)], 0));\n}\n}\n});\ncljs.analyzer.excluded_QMARK_ \x3d (function cljs$analyzer$excluded_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.used_QMARK_ \x3d (function cljs$analyzer$used_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.get_expander_ns \x3d (function cljs$analyzer$get_expander_ns(env,nstr){\nvar res \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\n}\n})();\nvar nstr__$1 \x3d (((!((res \x3d\x3d null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(res):nstr);\nif((\x22clojure.core\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM);\n} else {\nif((\x22clojure.repl\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(new cljs.core.Symbol(null,\x22cljs.repl\x22,\x22cljs.repl\x22,1767065658,null));\n} else {\nif(cljs.core.truth_(goog.string.contains(nstr__$1,\x22.\x22))){\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n} else {\nvar or__5025__auto__ \x3d (function (){var G__38458 \x3d env;\nvar G__38458__$1 \x3d (((G__38458 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38458));\nvar G__38458__$2 \x3d (((G__38458__$1 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(G__38458__$1));\nvar G__38458__$3 \x3d (((G__38458__$2 \x3d\x3d null))?null:cljs.core.get.cljs$core$IFn$_invoke$arity$2(G__38458__$2,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1)));\nif((G__38458__$3 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.find_macros_ns(G__38458__$3);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n}\n\n}\n}\n}\n});\ncljs.analyzer.get_expander_STAR_ \x3d (function cljs$analyzer$get_expander_STAR_(sym,env){\nif((((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),sym) \x3d\x3d null)))) || (((cljs.analyzer.excluded_QMARK_(env,sym)) \x26\x26 ((!(cljs.analyzer.used_QMARK_(env,sym)))))))){\nreturn null;\n} else {\nvar nstr \x3d cljs.core.namespace(sym);\nif((!((nstr \x3d\x3d null)))){\nvar ns \x3d cljs.analyzer.get_expander_ns(env,nstr);\nif((!((ns \x3d\x3d null)))){\nreturn ns.findInternedVar(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\n} else {\nreturn null;\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym);\nvar nsym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym__$1);\n} else {\nvar nsym \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym);\nif((((!((nsym \x3d\x3d null)))) \x26\x26 ((nsym instanceof cljs.core.Symbol)))){\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym);\n} else {\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM).findInternedVar(sym);\n}\n\n}\n}\n}\n});\n/**\n * Given a sym, a symbol identifying a macro, and env, an analysis environment\n * return the corresponding Clojure macroexpander.\n */\ncljs.analyzer.get_expander \x3d (function cljs$analyzer$get_expander(sym,env){\nvar mvar \x3d cljs.analyzer.get_expander_STAR_(sym,env);\nif((((!((mvar \x3d\x3d null)))) \x26\x26 (mvar.isMacro()))){\nreturn mvar;\n} else {\nreturn null;\n}\n});\nvar cached_var_39201 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)),new cljs.core.Symbol(null,\x22macroexpand-check\x22,\x22macroexpand-check\x22,699092091,null));\n}),null));\ncljs.analyzer.get_macroexpand_check_var \x3d (function cljs$analyzer$get_macroexpand_check_var(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)) \x3d\x3d null)))){\nreturn cljs.core.deref(cached_var_39201);\n} else {\nreturn null;\n}\n});\ncljs.analyzer.var__GT_sym \x3d (function cljs$analyzer$var__GT_sym(var$){\nreturn var$.sym;\n});\ncljs.analyzer.do_macroexpand_check \x3d (function cljs$analyzer$do_macroexpand_check(env,form,mac_var){\nif(cljs.core.not(new cljs.core.Keyword(null,\x22spec-skip-macros\x22,\x22spec-skip-macros\x22,-645015958).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_))))){\nvar mchk \x3d cljs.analyzer.get_macroexpand_check_var();\nif((!((mchk \x3d\x3d null)))){\ntry{var G__38460 \x3d mac_var;\nvar G__38461 \x3d cljs.core.next(form);\nreturn (mchk.cljs$core$IFn$_invoke$arity$2 ? mchk.cljs$core$IFn$_invoke$arity$2(G__38460,G__38461) : mchk.call(null,G__38460,G__38461));\n}catch (e38459){var e \x3d e38459;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macro-syntax-check\x22,\x22macro-syntax-check\x22,2072602373),cljs.analyzer.var__GT_sym(mac_var)),e);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.check_macro_arity \x3d (function cljs$analyzer$check_macro_arity(mac_var,form){\nvar mac_sym \x3d mac_var.sym;\nvar temp__5825__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_sym)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_sym))], null));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__38463 \x3d temp__5825__auto__;\nvar map__38463__$1 \x3d cljs.core.__destructure_map(map__38463);\nvar variadic_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar argc \x3d cljs.core.count(cljs.core.rest(form));\nvar offset \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22\x26form\x22,\x22\x26form\x22,1482799337,null),cljs.core.ffirst(method_params)))?(2):(0));\nif(cljs.core.truth_(cljs.analyzer.invalid_arity_QMARK_(argc,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38462_SHARP_){\nreturn cljs.core.nthrest(p1__38462_SHARP_,offset);\n}),method_params),variadic_QMARK_,(cljs.core.truth_(max_fixed_arity)?(max_fixed_arity - offset):null)))){\nthrow (new Error(cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),mac_sym], null))));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.macroexpand_1_STAR_ \x3d (function cljs$analyzer$macroexpand_1_STAR_(env,form){\nif(cljs.core.seq_QMARK_(form)){\nvar op \x3d cljs.core.first(form);\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),op)){\ncljs.analyzer.do_macroexpand_check(env,form,cljs.analyzer.get_expander(new cljs.core.Symbol(\x22cljs.core\x22,\x22ns-special-form\x22,\x22cljs.core/ns-special-form\x22,1585185745,null),env));\n} else {\n}\n\nreturn form;\n} else {\nvar temp__5827__auto__ \x3d (((op instanceof cljs.core.Symbol))?cljs.analyzer.get_expander(op,env):null);\nif((temp__5827__auto__ \x3d\x3d null)){\nif((op instanceof cljs.core.Symbol)){\nvar opname \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(op);\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((0)))){\nvar vec__38464 \x3d cljs.core.next(form);\nvar seq__38465 \x3d cljs.core.seq(vec__38464);\nvar first__38466 \x3d cljs.core.first(seq__38465);\nvar seq__38465__$1 \x3d cljs.core.next(seq__38465);\nvar target \x3d first__38466;\nvar args \x3d seq__38465__$1;\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(cljs.analyzer.impl.DOT_SYM,target,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(opname,(1))),args),cljs.core.meta(form));\n} else {\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((opname.length - (1))))){\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.impl.NEW_SYM,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(opname,(0),(((opname).length) - (1)))),cljs.core.next(form)),cljs.core.meta(form));\n} else {\nreturn form;\n\n}\n}\n} else {\nreturn form;\n}\n} else {\nvar mac_var \x3d temp__5827__auto__;\ncljs.analyzer.do_macroexpand_check(env,form,mac_var);\n\nvar form_SINGLEQUOTE_ \x3d (function (){try{cljs.analyzer.check_macro_arity(mac_var,form);\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(mac_var),form,env,cljs.core.rest(form));\n}catch (e38467){var e \x3d e38467;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macroexpansion\x22,\x22macroexpansion\x22,706274075),cljs.analyzer.var__GT_sym(mac_var)),e);\n}})();\nif(cljs.analyzer.impl.cljs_seq_QMARK_(form_SINGLEQUOTE_)){\nvar sym_SINGLEQUOTE_ \x3d cljs.core.first(form_SINGLEQUOTE_);\nvar sym \x3d cljs.core.first(form);\nif(cljs.core.symbol_identical_QMARK_(sym_SINGLEQUOTE_,cljs.analyzer.impl.JS_STAR_SYM)){\nvar sym__$1 \x3d (((!((cljs.core.namespace(sym) \x3d\x3d null))))?sym:cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)));\nvar js_op \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),sym__$1], null);\nvar numeric \x3d (function (){var mac_var_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_var.sym));\nvar mac_var_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_var.sym));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),mac_var_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),mac_var_name,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22numeric\x22,\x22cljs.analyzer/numeric\x22,1415704188)], null));\n})();\nvar js_op__$1 \x3d ((numeric \x3d\x3d\x3d true)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),true):js_op);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(form_SINGLEQUOTE_,cljs.core.merge,js_op__$1);\n} else {\nreturn form_SINGLEQUOTE_;\n}\n} else {\nreturn form_SINGLEQUOTE_;\n}\n}\n}\n} else {\nreturn form;\n}\n});\n/**\n * Given a env, an analysis environment, and form, a ClojureScript form,\n * macroexpand the form once.\n */\ncljs.analyzer.macroexpand_1 \x3d (function cljs$analyzer$macroexpand_1(env,form){\ntry{return cljs.analyzer.macroexpand_1_STAR_(env,form);\n}catch (e38468){var err__8939__auto__ \x3d e38468;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq_STAR_ \x3d (function cljs$analyzer$analyze_seq_STAR_(op,env,form,name,opts){\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nreturn cljs.analyzer.parse.cljs$core$IFn$_invoke$arity$5(op,env,form,name,opts);\n} else {\nreturn cljs.analyzer.parse_invoke(env,form);\n}\n});\ncljs.analyzer.analyze_seq_STAR__wrap \x3d (function cljs$analyzer$analyze_seq_STAR__wrap(op,env,form,name,opts){\ntry{return cljs.analyzer.analyze_seq_STAR_(op,env,form,name,opts);\n}catch (e38469){var err__8939__auto__ \x3d e38469;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq \x3d (function cljs$analyzer$analyze_seq(var_args){\nvar G__38471 \x3d arguments.length;\nswitch (G__38471) {\ncase 3:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\nreturn (cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze_list.call(null,env,form));\n} else {\nvar line \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar line__$1 \x3d (((line \x3d\x3d null))?new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env):line);\nvar col \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar col__$1 \x3d (((col \x3d\x3d null))?new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env):col);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col__$1], 0));\nvar op \x3d cljs.core.first(form);\nif((op \x3d\x3d null)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,\x22Can\x27t call nil\x22);\n} else {\n}\n\nvar mform \x3d cljs.analyzer.macroexpand_1(env__$1,form);\nif((form \x3d\x3d\x3d mform)){\nreturn cljs.analyzer.analyze_seq_STAR__wrap(op,env__$1,form,name,opts);\n} else {\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,mform,name,opts) : cljs.analyzer.analyze.call(null,env__$1,mform,name,opts));\n}\n}\n}));\n\n(cljs.analyzer.analyze_seq.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.analyze_map \x3d (function cljs$analyzer$analyze_map(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ks \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38474 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38475 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38475);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38472_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38472_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38472_SHARP_));\n}),cljs.core.keys(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38474);\n}})();\nvar vs \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38476 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38477 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38477);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38473_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38473_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38473_SHARP_));\n}),cljs.core.vals(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38476);\n}})();\nvar G__38478 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),ks,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMap\x22,\x22cljs.core/IMap\x22,1407777598,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38478) : cljs.analyzer.analyze_wrap_meta.call(null,G__38478));\n});\ncljs.analyzer.analyze_list \x3d (function cljs$analyzer$analyze_list(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38480 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38481 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38481);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38479_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38479_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38479_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38480);\n}})();\nvar G__38482 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38482) : cljs.analyzer.analyze_wrap_meta.call(null,G__38482));\n});\ncljs.analyzer.analyze_vector \x3d (function cljs$analyzer$analyze_vector(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38484 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38485 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38485);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38483_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38483_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38483_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38484);\n}})();\nvar G__38486 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IVector\x22,\x22cljs.core/IVector\x22,1711112835,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38486) : cljs.analyzer.analyze_wrap_meta.call(null,G__38486));\n});\ncljs.analyzer.analyze_set \x3d (function cljs$analyzer$analyze_set(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38488 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38489 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38489);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38487_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38487_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38487_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38488);\n}})();\nvar G__38490 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISet\x22,\x22cljs.core/ISet\x22,2003412810,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38490) : cljs.analyzer.analyze_wrap_meta.call(null,G__38490));\n});\ncljs.analyzer.analyze_js_value \x3d (function cljs$analyzer$analyze_js_value(env,form){\nvar val \x3d form.val;\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nif(cljs.core.map_QMARK_(val)){\nvar keys \x3d cljs.core.vec(cljs.core.keys(val));\nvar vals \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38493 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38494 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38494);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38491_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38491_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38491_SHARP_));\n}),cljs.core.vals(val));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38493);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-object\x22,\x22js-object\x22,1830199158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),keys,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vals,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null)], null);\n} else {\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38495 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38496 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38496);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38492_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38492_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38492_SHARP_));\n}),val);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38495);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-array\x22,\x22js-array\x22,-1210185421),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null)], null);\n}\n});\ncljs.analyzer.record_ns_PLUS_name \x3d (function cljs$analyzer$record_ns_PLUS_name(x){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0)),/\\//));\n});\ncljs.analyzer.analyze_record \x3d (function cljs$analyzer$analyze_record(env,x){\nvar _items_ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38501 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38502 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38502);\n\ntry{var G__38503 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__38504 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38503,G__38504) : cljs.analyzer.analyze.call(null,G__38503,G__38504));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38501);\n}})();\nvar vec__38498 \x3d cljs.analyzer.record_ns_PLUS_name(x);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),x,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null);\n});\ncljs.analyzer.elide_reader_meta \x3d (function cljs$analyzer$elide_reader_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0));\n});\ncljs.analyzer.elide_analyzer_meta \x3d (function cljs$analyzer$elide_analyzer_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162));\n});\ncljs.analyzer.elide_irrelevant_meta \x3d (function cljs$analyzer$elide_irrelevant_meta(m){\nreturn cljs.analyzer.elide_analyzer_meta(cljs.analyzer.elide_reader_meta(m));\n});\ncljs.analyzer.analyze_wrap_meta \x3d (function cljs$analyzer$analyze_wrap_meta(expr){\nvar form \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr);\nvar m \x3d cljs.analyzer.elide_irrelevant_meta(cljs.core.meta(form));\nif((!((cljs.core.seq(m) \x3d\x3d null)))){\nvar env \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr);\nvar expr__$1 \x3d cljs.core.assoc_in(expr,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar meta_expr \x3d cljs.analyzer.analyze_map(new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr__$1),m);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22with-meta\x22,\x22with-meta\x22,-1566856820),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),meta_expr,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n} else {\nreturn expr;\n}\n});\ncljs.analyzer.infer_type \x3d (function cljs$analyzer$infer_type(env,p__38506,_){\nvar map__38507 \x3d p__38506;\nvar map__38507__$1 \x3d cljs.core.__destructure_map(map__38507);\nvar ast \x3d map__38507__$1;\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38507__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif((((tag \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),tag)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),(function (ms){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__38505_SHARP_){\nreturn (cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3(env,p1__38505_SHARP_,_) : cljs.analyzer.infer_type.call(null,env,p1__38505_SHARP_,_));\n})),ms);\n}));\n} else {\nvar temp__5827__auto__ \x3d cljs.analyzer.infer_tag(env,ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn ast;\n} else {\nvar tag__$1 \x3d temp__5827__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1);\n}\n}\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.repl_self_require_QMARK_ \x3d (function cljs$analyzer$repl_self_require_QMARK_(env,deps){\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22repl-env\x22,\x22repl-env\x22,-1976503928).cljs$core$IFn$_invoke$arity$1(env);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.analyzer._STAR_cljs_ns_STAR_]),deps);\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.invoke_arg_type_validators \x3d (function (){var aget_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38508_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38508_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.rest(p1__38508_SHARP_))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nvar aset_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38509_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38509_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.butlast(cljs.core.rest(p1__38509_SHARP_)))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),aset_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),aset_validator], null);\n})();\ncljs.analyzer.check_invoke_arg_types \x3d (function cljs$analyzer$check_invoke_arg_types(env,p__38510,opts){\nvar map__38511 \x3d p__38510;\nvar map__38511__$1 \x3d cljs.core.__destructure_map(map__38511);\nvar ast \x3d map__38511__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38511__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif((((!(cljs.analyzer.analyzed_QMARK_(ast)))) \x26\x26 (cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),op)))){\nvar temp__5829__auto___39264 \x3d cljs.core.find(cljs.analyzer.invoke_arg_type_validators,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(ast))));\nif((temp__5829__auto___39264 \x3d\x3d null)){\n} else {\nvar vec__38512_39271 \x3d temp__5829__auto___39264;\nvar name_39272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(0),null);\nvar map__38515_39273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(1),null);\nvar map__38515_39274__$1 \x3d cljs.core.__destructure_map(map__38515_39273);\nvar valid_QMARK__39275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379));\nvar warning_type_39276 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595));\nvar types_39277 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(ast));\nif(cljs.core.truth_((valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1(types_39277) : valid_QMARK__39275.call(null,types_39277)))){\n} else {\ncljs.analyzer.warning(warning_type_39276,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39272,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),types_39277], null));\n}\n}\n} else {\n}\n\nreturn cljs.analyzer.analyzed(ast);\n});\ncljs.analyzer.analyze_form \x3d (function cljs$analyzer$analyze_form(env,form,name,opts){\nif((form instanceof cljs.core.Symbol)){\nreturn cljs.analyzer.analyze_symbol(env,form);\n} else {\nif(((cljs.analyzer.impl.cljs_seq_QMARK_(form)) \x26\x26 ((!((cljs.core.seq(form) \x3d\x3d null)))))){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,opts);\n} else {\nif(cljs.core.record_QMARK_(form)){\nreturn cljs.analyzer.analyze_record(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_map_QMARK_(form)){\nreturn cljs.analyzer.analyze_map(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_vector_QMARK_(form)){\nreturn cljs.analyzer.analyze_vector(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(form)){\nreturn cljs.analyzer.analyze_set(env,form);\n} else {\nif((form instanceof cljs.core.Keyword)){\nreturn cljs.analyzer.analyze_keyword(env,form);\n} else {\nif((form instanceof cljs.tagged_literals.JSValue)){\nreturn cljs.analyzer.analyze_js_value(env,form);\n} else {\nvar tag \x3d (((form \x3d\x3d null))?cljs.analyzer.impl.CLJ_NIL_SYM:((typeof form \x3d\x3d\x3d \x27number\x27)?cljs.analyzer.impl.NUMBER_SYM:((typeof form \x3d\x3d\x3d \x27string\x27)?cljs.analyzer.impl.STRING_SYM:((form \x3d\x3d\x3d true)?cljs.analyzer.impl.BOOLEAN_SYM:((form \x3d\x3d\x3d false)?cljs.analyzer.impl.BOOLEAN_SYM:((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,form))?new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null):null))))));\nvar G__38516 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\nif(cljs.core.truth_(tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38516,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag);\n} else {\nreturn G__38516;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.analyzer.default_passes \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.infer_type,cljs.analyzer.passes.and_or.optimize,cljs.analyzer.check_invoke_arg_types], null);\ncljs.analyzer.analyze_STAR_ \x3d (function cljs$analyzer$analyze_STAR_(env,form,name,opts){\nvar passes \x3d cljs.analyzer._STAR_passes_STAR_;\nvar passes__$1 \x3d (((passes \x3d\x3d null))?cljs.analyzer.default_passes:passes);\nvar form__$1 \x3d (((form instanceof cljs.core.LazySeq))?((cljs.core.seq(form))?form:cljs.core.List.EMPTY):form);\nvar ast \x3d cljs.analyzer.analyze_form(env,form__$1,name,opts);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(env,ast__$1,opts) : pass.call(null,env,ast__$1,opts));\n}),ast,passes__$1);\n});\n/**\n * Given an environment, a map containing {:locals (mapping of names to bindings), :context\n * (one of :statement, :expr, :return), :ns (a symbol naming the\n * compilation ns)}, and form, returns an expression object (a map\n * containing at least :form, :op and :env keys). If expr has any (immediately)\n * nested exprs, must have a :children entry. This must be a vector of keywords naming\n * the immediately nested fields mapped to an expr or vector of exprs. This will\n * facilitate code walking without knowing the details of the op set.\n */\ncljs.analyzer.analyze \x3d (function cljs$analyzer$analyze(var_args){\nvar G__38518 \x3d arguments.length;\nswitch (G__38518) {\ncase 2:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,form){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(env,form,null);\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\ntry{if(cljs.analyzer.analyzed_QMARK_(form)){\nvar _STAR_cljs_warnings_STAR__orig_val__38520 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38521 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38521);\n\ntry{return cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38520);\n}} else {\nreturn cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}\n}catch (e38519){var err__8939__auto__ \x3d e38519;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}}));\n\n(cljs.analyzer.analyze.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a compiler state and a map from fully qualified symbols to constant\n * EDN values, update the compiler state marking these vars as const to support\n * direct substitution of these vars in source.\n */\ncljs.analyzer.add_consts \x3d (function cljs$analyzer$add_consts(compiler_state,constants_map){\nreturn cljs.core.reduce_kv((function (compiler_state__$1,sym,value){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(compiler_state__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),(function (){var _STAR_passes_STAR__orig_val__38522 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__38523 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__38523);\n\ntry{return cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.empty_env(),value);\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__38522);\n}})()], null));\n}),compiler_state,constants_map);\n});\ncljs.analyzer.resolve_symbol \x3d (function cljs$analyzer$resolve_symbol(sym){\nif(((cljs.core.not(cljs.core.namespace(sym))) \x26\x26 (cljs.analyzer.dotted_symbol_QMARK_(sym)))){\nreturn sym;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1((function (){var _STAR_private_var_access_nowarn_STAR__orig_val__38524 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38525 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38525);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_)),sym);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38524);\n}})());\n}\n});\n/**\n * Get all alias maps for a namespace.\n */\ncljs.analyzer.get_aliases \x3d (function cljs$analyzer$get_aliases(ns){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798))(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(ns)));\n});\nvar registry_ref_39290 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22registry-ref\x22,\x22registry-ref\x22,1975823941,null));\n}),null));\nvar speced_vars_39291 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22-speced-vars\x22,\x22-speced-vars\x22,1758723085,null));\n}),null));\ncljs.analyzer.get_spec_vars \x3d (function cljs$analyzer$get_spec_vars(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)) \x3d\x3d null)))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414),cljs.core.deref(registry_ref_39290),new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988),cljs.core.deref(speced_vars_39291)], null);\n} else {\nreturn null;\n}\n});\n/**\n * Dumps registered speced vars for a given namespace into the compiler\n * environment.\n */\ncljs.analyzer.dump_specs \x3d (function cljs$analyzer$dump_specs(ns){\nvar spec_vars \x3d cljs.analyzer.get_spec_vars();\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry_ref \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p__38526){\nvar vec__38527 \x3d p__38526;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(1),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(k));\n})),cljs.core.deref(cljs.core.deref(registry_ref)))], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar speced_vars \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (v){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(v))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22fdef-ns\x22,\x22fdef-ns\x22,-1602124254).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))));\n})),cljs.core.deref(cljs.core.deref(speced_vars)))], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Registers speced vars found in a namespace analysis cache.\n */\ncljs.analyzer.register_specs \x3d (function cljs$analyzer$register_specs(cached_ns){\nvar map__38530 \x3d cljs.analyzer.get_spec_vars();\nvar map__38530__$1 \x3d cljs.core.__destructure_map(map__38530);\nvar registry_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414));\nvar speced_vars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988));\nvar temp__5825__auto___39295 \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto___39295){\nvar registry_39296 \x3d temp__5825__auto___39295;\nif(cljs.core.truth_(registry_ref)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(registry_ref),cljs.core.into,registry_39296);\n} else {\n}\n} else {\n}\n\nvar temp__5825__auto__ \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto__){\nvar vars \x3d temp__5825__auto__;\nif(cljs.core.truth_(speced_vars)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(speced_vars),cljs.core.into,vars);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_form_seq \x3d (function cljs$analyzer$analyze_form_seq(var_args){\nvar G__38532 \x3d arguments.length;\nswitch (G__38532) {\ncase 1:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (forms){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2(forms,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,opts){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3(forms,opts,false);\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,opts,return_last_QMARK_){\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.empty_env(),new cljs.core.Keyword(null,\x22build-options\x22,\x22build-options\x22,1183685779),opts);\nvar _STAR_file_defs_STAR__orig_val__38533 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nvar _STAR_cljs_ns_STAR__orig_val__38534 \x3d cljs.analyzer._STAR_cljs_ns_STAR_;\nvar _STAR_cljs_file_STAR__orig_val__38535 \x3d cljs.analyzer._STAR_cljs_file_STAR_;\nvar _STAR_alias_map_STAR__orig_val__38536 \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nvar _STAR_file_defs_STAR__temp_val__38537 \x3d null;\nvar _STAR_cljs_ns_STAR__temp_val__38538 \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\nvar _STAR_cljs_file_STAR__temp_val__38539 \x3d null;\nvar _STAR_alias_map_STAR__temp_val__38540 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})();\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__temp_val__38537);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__temp_val__38538);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__temp_val__38539);\n\n(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__temp_val__38540);\n\ntry{var ns \x3d null;\nvar forms__$1 \x3d forms;\nvar last_ast \x3d null;\nwhile(true){\nif((!((forms__$1 \x3d\x3d null)))){\nvar form \x3d cljs.core.first(forms__$1);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ast \x3d cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,form,null,opts);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760))){\nvar G__39303 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__39304 \x3d cljs.core.next(forms__$1);\nvar G__39305 \x3d ast;\nns \x3d G__39303;\nforms__$1 \x3d G__39304;\nlast_ast \x3d G__39305;\ncontinue;\n} else {\nvar G__39306 \x3d ns;\nvar G__39307 \x3d cljs.core.next(forms__$1);\nvar G__39308 \x3d ast;\nns \x3d G__39306;\nforms__$1 \x3d G__39307;\nlast_ast \x3d G__39308;\ncontinue;\n}\n} else {\nif(cljs.core.truth_(return_last_QMARK_)){\nreturn last_ast;\n} else {\nreturn ns;\n}\n}\nbreak;\n}\n}finally {(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__orig_val__38536);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__orig_val__38535);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__orig_val__38534);\n\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__orig_val__38533);\n}}));\n\n(cljs.analyzer.analyze_form_seq.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Ensures that a non-nil defs map exists in the compiler state for a given\n * ns. (A non-nil defs map signifies that the namespace has been analyzed.)\n */\ncljs.analyzer.ensure_defs \x3d (function cljs$analyzer$ensure_defs(ns){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null),(function (p1__38541_SHARP_){\nvar or__5025__auto__ \x3d p1__38541_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.api.js", true, "goog.provide(\x27cljs.analyzer.api\x27);\n/**\n * Creates an empty compilation state Atom\x3cMap\x3e. The optional opts arg is a map\n * representing the compiler configuration. See the documentation\n * for details: https://clojurescript.org/reference/compiler-options\n */\ncljs.analyzer.api.empty_state \x3d (function cljs$analyzer$api$empty_state(var_args){\nvar G__38543 \x3d arguments.length;\nswitch (G__38543) {\ncase 0:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn cljs.env._STAR_compiler_STAR_;\n} else {\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n}\n}));\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(opts);\n}));\n\n(cljs.analyzer.api.empty_state.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the current compiler state atom.\n */\ncljs.analyzer.api.current_state \x3d (function cljs$analyzer$api$current_state(){\nreturn cljs.env._STAR_compiler_STAR_;\n});\n/**\n * Return the current file under analysis or compilation.\n */\ncljs.analyzer.api.current_file \x3d (function cljs$analyzer$api$current_file(){\nreturn cljs.analyzer._STAR_cljs_file_STAR_;\n});\n/**\n * Return the current ns under analysis or compilation.\n */\ncljs.analyzer.api.current_ns \x3d (function cljs$analyzer$api$current_ns(){\nreturn cljs.analyzer._STAR_cljs_ns_STAR_;\n});\n/**\n * Creates an empty analysis environment.\n */\ncljs.analyzer.api.empty_env \x3d (function cljs$analyzer$api$empty_env(){\nreturn cljs.analyzer.empty_env();\n});\n/**\n * Test if the given warning-type is enabled.\n */\ncljs.analyzer.api.warning_enabled_QMARK_ \x3d (function cljs$analyzer$api$warning_enabled_QMARK_(warning_type){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_.call(null,warning_type);\n});\n/**\n * The default warning handler.\n * \n * Outputs the warning messages to *err*.\n */\ncljs.analyzer.api.default_warning_handler \x3d (function cljs$analyzer$api$default_warning_handler(warning_type,env,extra){\nreturn cljs.analyzer.default_warning_handler(warning_type,env,extra);\n});\n/**\n * Helper for generating the standard analyzer messages for warnings. Should be\n * passed warn-type and warn-info. See with-warning-handlers.\n */\ncljs.analyzer.api.warning_message \x3d (function cljs$analyzer$api$warning_message(warn_type,warn_info){\nreturn cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warn_type,warn_info);\n});\n/**\n * Get the enabled warning types.\n */\ncljs.analyzer.api.enabled_warnings \x3d (function cljs$analyzer$api$enabled_warnings(){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_;\n});\n/**\n * Return the compiler options from compiler state.\n */\ncljs.analyzer.api.get_options \x3d (function cljs$analyzer$api$get_options(var_args){\nvar G__38546 \x3d arguments.length;\nswitch (G__38546) {\ncase 0:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n}));\n\n(cljs.analyzer.api.get_options.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the currently computed Google Closure js dependency index from the\n * compiler state.\n */\ncljs.analyzer.api.get_js_index \x3d (function cljs$analyzer$api$get_js_index(var_args){\nvar G__38567 \x3d arguments.length;\nswitch (G__38567) {\ncase 0:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131));\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * ClojureScript\x27s default analysis passes.\n */\ncljs.analyzer.api.default_passes \x3d cljs.analyzer.default_passes;\n/**\n * Given an analysis environment resolve a var. Analogous to\n * clojure.core/resolve\n */\ncljs.analyzer.api.resolve \x3d (function cljs$analyzer$api$resolve(env,sym){\nif(cljs.core.map_QMARK_(env)){\n} else {\nthrow (new Error(\x22Assert failed: (map? env)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__38601 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38602 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38602);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists_throw());\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38601);\n}}catch (e38600){var e \x3d e38600;\nreturn cljs.analyzer.resolve_macro_var(env,sym);\n}});\n/**\n * Return all namespaces. Analagous to clojure.core/all-ns but\n * returns symbols identifying namespaces not Namespace instances.\n */\ncljs.analyzer.api.all_ns \x3d (function cljs$analyzer$api$all_ns(var_args){\nvar G__38604 \x3d arguments.length;\nswitch (G__38604) {\ncase 0:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1(cljs.env._STAR_compiler_STAR_);\n}));\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.keys(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)));\n}));\n\n(cljs.analyzer.api.all_ns.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Given a namespace return the corresponding namespace analysis map. Analagous\n * to clojure.core/find-ns.\n */\ncljs.analyzer.api.find_ns \x3d (function cljs$analyzer$api$find_ns(var_args){\nvar G__38606 \x3d arguments.length;\nswitch (G__38606) {\ncase 1:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,sym);\n}));\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),sym], null));\n}));\n\n(cljs.analyzer.api.find_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return the corresponding namespace analysis map, throwing an\n * exception if not found. Analagous to clojure.core/the-ns.\n */\ncljs.analyzer.api.the_ns \x3d (function cljs$analyzer$api$the_ns(var_args){\nvar G__38608 \x3d arguments.length;\nswitch (G__38608) {\ncase 1:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nvar or__5025__auto__ \x3d cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(state,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22No namespace found: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),sym], null));\n}\n}));\n\n(cljs.analyzer.api.the_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the var analysis maps. Analagous to\n * clojure.core/ns-interns but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_interns \x3d (function cljs$analyzer$api$ns_interns(var_args){\nvar G__38613 \x3d arguments.length;\nswitch (G__38613) {\ncase 1:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nvar ns__$1 \x3d cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(state,ns);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431).cljs$core$IFn$_invoke$arity$1(ns__$1),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717).cljs$core$IFn$_invoke$arity$1(ns__$1)], 0));\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the public var analysis maps. Analagous to\n * clojure.core/ns-publics but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_publics \x3d (function cljs$analyzer$api$ns_publics(var_args){\nvar G__38616 \x3d arguments.length;\nswitch (G__38616) {\ncase 1:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38619){\nvar vec__38620 \x3d p__38619;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(1),null);\nreturn new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(v);\n}),cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(state,ns)));\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace and a symbol return the corresponding var analysis map.\n * Analagous to clojure.core/ns-resolve but returns var analysis map not Var.\n */\ncljs.analyzer.api.ns_resolve \x3d (function cljs$analyzer$api$ns_resolve(var_args){\nvar G__38624 \x3d arguments.length;\nswitch (G__38624) {\ncase 2:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,sym){\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3(cljs.env._STAR_compiler_STAR_,ns,sym);\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3 \x3d (function (state,ns,sym){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes the namespace named by the symbol.\n */\ncljs.analyzer.api.remove_ns \x3d (function cljs$analyzer$api$remove_ns(var_args){\nvar G__38640 \x3d arguments.length;\nswitch (G__38640) {\ncase 1:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns], 0));\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.macros.js", true, "goog.provide(\x27intemporal.internal.macros\x27);\nintemporal.internal.macros.cljs_available_QMARK_ \x3d false;\n"); -SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39668 \x3d arguments.length;\nvar i__5750__auto___39669 \x3d (0);\nwhile(true){\nif((i__5750__auto___39669 \x3c len__5749__auto___39668)){\nargs__5755__auto__.push((arguments[i__5750__auto___39669]));\n\nvar G__39670 \x3d (i__5750__auto___39669 + (1));\ni__5750__auto___39669 \x3d G__39670;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__39602){\nvar map__39603 \x3d p__39602;\nvar map__39603__$1 \x3d cljs.core.__destructure_map(map__39603);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39603__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39603__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__39671__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_ctx_STAR__orig_val__39604 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39605 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39605);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__39606 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39606 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39606);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39607 \x3d err;\nif((G__39607 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39607);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__39608 \x3d err;\nif((G__39608 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__39608);\n}\n})());\nif(cljs.core.truth_(existing)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], 0));\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Found existing error for activity\x22], 0));\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity was interrupted: rescheduling\x22], 0));\n} else {\n}\n\nif(rejected_QMARK_){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Activity execution was rejected: rescheduling\x22], 0));\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Scheduling activity suspension\x22], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39604);\n}};\nvar G__39671 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__39672__i \x3d 0, G__39672__a \x3d new Array(arguments.length - 0);\nwhile (G__39672__i \x3c G__39672__a.length) {G__39672__a[G__39672__i] \x3d arguments[G__39672__i + 0]; ++G__39672__i;}\n args \x3d new cljs.core.IndexedSeq(G__39672__a,0,null);\n} \nreturn G__39671__delegate.call(this,args);};\nG__39671.cljs$lang$maxFixedArity \x3d 0;\nG__39671.cljs$lang$applyTo \x3d (function (arglist__39673){\nvar args \x3d cljs.core.seq(arglist__39673);\nreturn G__39671__delegate(args);\n});\nG__39671.cljs$core$IFn$_invoke$arity$variadic \x3d G__39671__delegate;\nreturn G__39671;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq39600){\nvar G__39601 \x3d cljs.core.first(seq39600);\nvar seq39600__$1 \x3d cljs.core.next(seq39600);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39601,seq39600__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k39610,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__39614 \x3d k39610;\nvar G__39614__$1 \x3d (((G__39614 instanceof cljs.core.Keyword))?G__39614.fqn:null);\nswitch (G__39614__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k39610,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__39615){\nvar vec__39616 \x3d p__39615;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39616,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__39616,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__39609){\nvar self__ \x3d this;\nvar G__39609__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__39609__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this39611,other39612){\nvar self__ \x3d this;\nvar this39611__$1 \x3d this;\nreturn (((!((other39612 \x3d\x3d null)))) \x26\x26 ((((this39611__$1.constructor \x3d\x3d\x3d other39612.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39611__$1.seq_num,other39612.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this39611__$1.__extmap,other39612.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k39610){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__39619 \x3d k39610;\nvar G__39619__$1 \x3d (((G__39619 instanceof cljs.core.Keyword))?G__39619.fqn:null);\nswitch (G__39619__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k39610);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__39609){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__39620 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__39621 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__39620.cljs$core$IFn$_invoke$arity$2 ? pred__39620.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39621) : pred__39620.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__39621)))){\nreturn (new intemporal.core.AsyncHandle(G__39609,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__39609),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__39609){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__39609,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__39613){\nvar extmap__5365__auto__ \x3d (function (){var G__39623 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__39613,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__39613)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__39623);\n} else {\nreturn G__39623;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__39613),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__39624 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39624 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39624);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39625 \x3d err;\nif((G__39625 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39625);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already succeeded advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already failed advancing sequence number\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async already started\x22], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{intemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Invoking Async thunk\x22], 0));\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async completed successfully with result %s\x22,result], 0));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e39626){if((e39626 instanceof Error)){\nvar e \x3d e39626;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Async suspended activity %s\x22,activity_name], 0));\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nintemporal.internal.logging.tracef.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,\x22Async failed\x22], 0));\n\nthrow e;\n}\n} else {\nthrow e39626;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39689 \x3d arguments.length;\nvar i__5750__auto___39690 \x3d (0);\nwhile(true){\nif((i__5750__auto___39690 \x3c len__5749__auto___39689)){\nargs__5755__auto__.push((arguments[i__5750__auto___39690]));\n\nvar G__39691 \x3d (i__5750__auto___39690 + (1));\ni__5750__auto___39690 \x3d G__39691;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__39630){\nvar map__39631 \x3d p__39630;\nvar map__39631__$1 \x3d cljs.core.__destructure_map(map__39631);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39631__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__39632 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__39632 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__39632);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__39633 \x3d err;\nif((G__39633 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__39633);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq39627){\nvar G__39628 \x3d cljs.core.first(seq39627);\nvar seq39627__$1 \x3d cljs.core.next(seq39627);\nvar G__39629 \x3d cljs.core.first(seq39627__$1);\nvar seq39627__$2 \x3d cljs.core.next(seq39627__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39628,G__39629,seq39627__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39701 \x3d arguments.length;\nvar i__5750__auto___39702 \x3d (0);\nwhile(true){\nif((i__5750__auto___39702 \x3c len__5749__auto___39701)){\nargs__5755__auto__.push((arguments[i__5750__auto___39702]));\n\nvar G__39703 \x3d (i__5750__auto___39702 + (1));\ni__5750__auto___39702 \x3d G__39703;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq39634){\nvar G__39635 \x3d cljs.core.first(seq39634);\nvar seq39634__$1 \x3d cljs.core.next(seq39634);\nvar G__39636 \x3d cljs.core.first(seq39634__$1);\nvar seq39634__$2 \x3d cljs.core.next(seq39634__$1);\nvar G__39637 \x3d cljs.core.first(seq39634__$2);\nvar seq39634__$3 \x3d cljs.core.next(seq39634__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39635,G__39636,G__39637,seq39634__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39704 \x3d arguments.length;\nvar i__5750__auto___39705 \x3d (0);\nwhile(true){\nif((i__5750__auto___39705 \x3c len__5749__auto___39704)){\nargs__5755__auto__.push((arguments[i__5750__auto___39705]));\n\nvar G__39706 \x3d (i__5750__auto___39705 + (1));\ni__5750__auto___39705 \x3d G__39706;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39643,workflow_id,workflow_fn,args,p__39644){\nvar map__39645 \x3d p__39643;\nvar map__39645__$1 \x3d cljs.core.__destructure_map(map__39645);\nvar engine \x3d map__39645__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39645__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__39646 \x3d p__39644;\nvar map__39646__$1 \x3d cljs.core.__destructure_map(map__39646);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39646__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39646__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nintemporal.internal.logging.info.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Workflow resumed\x22], 0));\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq39638){\nvar G__39639 \x3d cljs.core.first(seq39638);\nvar seq39638__$1 \x3d cljs.core.next(seq39638);\nvar G__39640 \x3d cljs.core.first(seq39638__$1);\nvar seq39638__$2 \x3d cljs.core.next(seq39638__$1);\nvar G__39641 \x3d cljs.core.first(seq39638__$2);\nvar seq39638__$3 \x3d cljs.core.next(seq39638__$2);\nvar G__39642 \x3d cljs.core.first(seq39638__$3);\nvar seq39638__$4 \x3d cljs.core.next(seq39638__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39639,G__39640,G__39641,G__39642,seq39638__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39711 \x3d arguments.length;\nvar i__5750__auto___39712 \x3d (0);\nwhile(true){\nif((i__5750__auto___39712 \x3c len__5749__auto___39711)){\nargs__5755__auto__.push((arguments[i__5750__auto___39712]));\n\nvar G__39713 \x3d (i__5750__auto___39712 + (1));\ni__5750__auto___39712 \x3d G__39713;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__39652){\nvar map__39653 \x3d p__39652;\nvar map__39653__$1 \x3d cljs.core.__destructure_map(map__39653);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39653__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_ctx_STAR__orig_val__39654_39718 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39655_39719 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39655_39719);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Adding signal %s\x22,signal_name], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39654_39718);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq39647){\nvar G__39648 \x3d cljs.core.first(seq39647);\nvar seq39647__$1 \x3d cljs.core.next(seq39647);\nvar G__39649 \x3d cljs.core.first(seq39647__$1);\nvar seq39647__$2 \x3d cljs.core.next(seq39647__$1);\nvar G__39650 \x3d cljs.core.first(seq39647__$2);\nvar seq39647__$3 \x3d cljs.core.next(seq39647__$2);\nvar G__39651 \x3d cljs.core.first(seq39647__$3);\nvar seq39647__$4 \x3d cljs.core.next(seq39647__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39648,G__39649,G__39650,G__39651,seq39647__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_ctx_STAR__orig_val__39656_39720 \x3d taoensso.telemere._STAR_ctx_STAR_;\nvar _STAR_ctx_STAR__temp_val__39657_39721 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\n(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__temp_val__39657_39721);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nintemporal.internal.logging.debugf.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Cancelling workflow\x22], 0));\n}finally {(taoensso.telemere._STAR_ctx_STAR_ \x3d _STAR_ctx_STAR__orig_val__39656_39720);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__39658_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__39658_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___39722 \x3d arguments.length;\nvar i__5750__auto___39723 \x3d (0);\nwhile(true){\nif((i__5750__auto___39723 \x3c len__5749__auto___39722)){\nargs__5755__auto__.push((arguments[i__5750__auto___39723]));\n\nvar G__39724 \x3d (i__5750__auto___39723 + (1));\ni__5750__auto___39723 \x3d G__39724;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__39660){\nvar map__39661 \x3d p__39660;\nvar map__39661__$1 \x3d cljs.core.__destructure_map(map__39661);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__39661__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39661__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq39659){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq39659));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__39663 \x3d arguments.length;\nswitch (G__39663) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__39664){\nvar map__39665 \x3d p__39664;\nvar map__39665__$1 \x3d cljs.core.__destructure_map(map__39665);\nvar engine \x3d map__39665__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39665__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39665__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__39666,grace_period_secs){\nvar map__39667 \x3d p__39666;\nvar map__39667__$1 \x3d cljs.core.__destructure_map(map__39667);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39667__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__39667__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nintemporal.internal.logging.infof.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Shutting down engine\x22], 0));\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70174 \x3d arguments.length;\nvar i__5750__auto___70175 \x3d (0);\nwhile(true){\nif((i__5750__auto___70175 \x3c len__5749__auto___70174)){\nargs__5755__auto__.push((arguments[i__5750__auto___70175]));\n\nvar G__70176 \x3d (i__5750__auto___70175 + (1));\ni__5750__auto___70175 \x3d G__70176;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__70002){\nvar map__70004 \x3d p__70002;\nvar map__70004__$1 \x3d cljs.core.__destructure_map(map__70004);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70004__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70004__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__70177__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_xfn_STAR__orig_val__70010 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70011 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70011);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__70013 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70013 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70013);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70014 \x3d err;\nif((G__70014 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70014);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__70015 \x3d err;\nif((G__70015 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__70015);\n}\n})());\nif(cljs.core.truth_(existing)){\nvar args__69521__auto___70178 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], null);\nvar vec__70016_70179 \x3d (((cljs.core.first(args__69521__auto___70178) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70178),cljs.core.second(args__69521__auto___70178),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70178)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70178),cljs.core.rest(args__69521__auto___70178)], null));\nvar err__69522__auto___70180 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(0),null);\nvar fmt__69523__auto___70181 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(1),null);\nvar fmt_args__69524__auto___70182 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70181,fmt_args__69524__auto___70182),err__69522__auto___70180,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar args__69521__auto___70183 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing error for activity\x22], null);\nvar vec__70032_70184 \x3d (((cljs.core.first(args__69521__auto___70183) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70183),cljs.core.second(args__69521__auto___70183),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70183)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70183),cljs.core.rest(args__69521__auto___70183)], null));\nvar err__69522__auto___70185 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(0),null);\nvar fmt__69523__auto___70186 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(1),null);\nvar fmt_args__69524__auto___70187 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70186,fmt_args__69524__auto___70187),err__69522__auto___70185,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nvar args__69521__auto___70188 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity was interrupted: rescheduling\x22], null);\nvar vec__70036_70189 \x3d (((cljs.core.first(args__69521__auto___70188) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70188),cljs.core.second(args__69521__auto___70188),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70188)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70188),cljs.core.rest(args__69521__auto___70188)], null));\nvar err__69522__auto___70190 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(0),null);\nvar fmt__69523__auto___70191 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(1),null);\nvar fmt_args__69524__auto___70192 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70191,fmt_args__69524__auto___70192),err__69522__auto___70190,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nif(rejected_QMARK_){\nvar args__69521__auto___70193 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity execution was rejected: rescheduling\x22], null);\nvar vec__70040_70194 \x3d (((cljs.core.first(args__69521__auto___70193) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70193),cljs.core.second(args__69521__auto___70193),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70193)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70193),cljs.core.rest(args__69521__auto___70193)], null));\nvar err__69522__auto___70195 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(0),null);\nvar fmt__69523__auto___70196 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(1),null);\nvar fmt_args__69524__auto___70197 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70196,fmt_args__69524__auto___70197),err__69522__auto___70195,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nvar args__69521__auto___70198 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Scheduling activity suspension\x22], null);\nvar vec__70043_70199 \x3d (((cljs.core.first(args__69521__auto___70198) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70198),cljs.core.second(args__69521__auto___70198),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70198)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70198),cljs.core.rest(args__69521__auto___70198)], null));\nvar err__69522__auto___70200 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(0),null);\nvar fmt__69523__auto___70201 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(1),null);\nvar fmt_args__69524__auto___70202 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70201,fmt_args__69524__auto___70202),err__69522__auto___70200,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70010);\n}};\nvar G__70177 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__70206__i \x3d 0, G__70206__a \x3d new Array(arguments.length - 0);\nwhile (G__70206__i \x3c G__70206__a.length) {G__70206__a[G__70206__i] \x3d arguments[G__70206__i + 0]; ++G__70206__i;}\n args \x3d new cljs.core.IndexedSeq(G__70206__a,0,null);\n} \nreturn G__70177__delegate.call(this,args);};\nG__70177.cljs$lang$maxFixedArity \x3d 0;\nG__70177.cljs$lang$applyTo \x3d (function (arglist__70207){\nvar args \x3d cljs.core.seq(arglist__70207);\nreturn G__70177__delegate(args);\n});\nG__70177.cljs$core$IFn$_invoke$arity$variadic \x3d G__70177__delegate;\nreturn G__70177;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq69996){\nvar G__69997 \x3d cljs.core.first(seq69996);\nvar seq69996__$1 \x3d cljs.core.next(seq69996);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69997,seq69996__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k70052,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__70061 \x3d k70052;\nvar G__70061__$1 \x3d (((G__70061 instanceof cljs.core.Keyword))?G__70061.fqn:null);\nswitch (G__70061__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70052,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70067){\nvar vec__70068 \x3d p__70067;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70068,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70068,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__70051){\nvar self__ \x3d this;\nvar G__70051__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__70051__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this70053,other70054){\nvar self__ \x3d this;\nvar this70053__$1 \x3d this;\nreturn (((!((other70054 \x3d\x3d null)))) \x26\x26 ((((this70053__$1.constructor \x3d\x3d\x3d other70054.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70053__$1.seq_num,other70054.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70053__$1.__extmap,other70054.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k70052){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__70077 \x3d k70052;\nvar G__70077__$1 \x3d (((G__70077 instanceof cljs.core.Keyword))?G__70077.fqn:null);\nswitch (G__70077__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k70052);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__70051){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__70078 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__70079 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__70078.cljs$core$IFn$_invoke$arity$2 ? pred__70078.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__70079) : pred__70078.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__70079)))){\nreturn (new intemporal.core.AsyncHandle(G__70051,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70051),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__70051){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__70051,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__70055){\nvar extmap__5365__auto__ \x3d (function (){var G__70091 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__70055,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__70055)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70091);\n} else {\nreturn G__70091;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__70055),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__70097 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70097 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70097);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70098 \x3d err;\nif((G__70098 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70098);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nvar args__69521__auto___70225 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already succeeded advancing sequence number\x22], null);\nvar vec__70099_70226 \x3d (((cljs.core.first(args__69521__auto___70225) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70225),cljs.core.second(args__69521__auto___70225),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70225)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70225),cljs.core.rest(args__69521__auto___70225)], null));\nvar err__69522__auto___70227 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(0),null);\nvar fmt__69523__auto___70228 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(1),null);\nvar fmt_args__69524__auto___70229 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70228,fmt_args__69524__auto___70229),err__69522__auto___70227,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nvar args__69521__auto___70234 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already failed advancing sequence number\x22], null);\nvar vec__70102_70235 \x3d (((cljs.core.first(args__69521__auto___70234) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70234),cljs.core.second(args__69521__auto___70234),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70234)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70234),cljs.core.rest(args__69521__auto___70234)], null));\nvar err__69522__auto___70236 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(0),null);\nvar fmt__69523__auto___70237 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(1),null);\nvar fmt_args__69524__auto___70238 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70237,fmt_args__69524__auto___70238),err__69522__auto___70236,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nvar args__69521__auto___70243 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already started\x22], null);\nvar vec__70105_70244 \x3d (((cljs.core.first(args__69521__auto___70243) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70243),cljs.core.second(args__69521__auto___70243),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70243)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70243),cljs.core.rest(args__69521__auto___70243)], null));\nvar err__69522__auto___70245 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(0),null);\nvar fmt__69523__auto___70246 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(1),null);\nvar fmt_args__69524__auto___70247 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70246,fmt_args__69524__auto___70247),err__69522__auto___70245,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{var args__69521__auto___70252 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking Async thunk\x22], null);\nvar vec__70115_70253 \x3d (((cljs.core.first(args__69521__auto___70252) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70252),cljs.core.second(args__69521__auto___70252),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70252)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70252),cljs.core.rest(args__69521__auto___70252)], null));\nvar err__69522__auto___70254 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(0),null);\nvar fmt__69523__auto___70255 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(1),null);\nvar fmt_args__69524__auto___70256 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70255,fmt_args__69524__auto___70256),err__69522__auto___70254,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nvar args__69521__auto___70260 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async completed successfully with result %s\x22,result], null);\nvar vec__70118_70261 \x3d (((cljs.core.first(args__69521__auto___70260) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70260),cljs.core.second(args__69521__auto___70260),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70260)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70260),cljs.core.rest(args__69521__auto___70260)], null));\nvar err__69522__auto___70262 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(0),null);\nvar fmt__69523__auto___70263 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(1),null);\nvar fmt_args__69524__auto___70264 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70263,fmt_args__69524__auto___70264),err__69522__auto___70262,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e70108){if((e70108 instanceof Error)){\nvar e \x3d e70108;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nvar args__69521__auto___70269 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async suspended activity %s\x22,activity_name], null);\nvar vec__70109_70270 \x3d (((cljs.core.first(args__69521__auto___70269) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70269),cljs.core.second(args__69521__auto___70269),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70269)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70269),cljs.core.rest(args__69521__auto___70269)], null));\nvar err__69522__auto___70271 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(0),null);\nvar fmt__69523__auto___70272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(1),null);\nvar fmt_args__69524__auto___70273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70272,fmt_args__69524__auto___70273),err__69522__auto___70271,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nvar args__69521__auto___70274 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Async failed\x22], null);\nvar vec__70112_70275 \x3d (((cljs.core.first(args__69521__auto___70274) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70274),cljs.core.second(args__69521__auto___70274),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70274)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70274),cljs.core.rest(args__69521__auto___70274)], null));\nvar err__69522__auto___70276 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(0),null);\nvar fmt__69523__auto___70277 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(1),null);\nvar fmt_args__69524__auto___70278 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70277,fmt_args__69524__auto___70278),err__69522__auto___70276,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow e;\n}\n} else {\nthrow e70108;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70296 \x3d arguments.length;\nvar i__5750__auto___70297 \x3d (0);\nwhile(true){\nif((i__5750__auto___70297 \x3c len__5749__auto___70296)){\nargs__5755__auto__.push((arguments[i__5750__auto___70297]));\n\nvar G__70298 \x3d (i__5750__auto___70297 + (1));\ni__5750__auto___70297 \x3d G__70298;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__70124){\nvar map__70125 \x3d p__70124;\nvar map__70125__$1 \x3d cljs.core.__destructure_map(map__70125);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70125__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__70126 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70126 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70126);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70127 \x3d err;\nif((G__70127 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70127);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq70121){\nvar G__70122 \x3d cljs.core.first(seq70121);\nvar seq70121__$1 \x3d cljs.core.next(seq70121);\nvar G__70123 \x3d cljs.core.first(seq70121__$1);\nvar seq70121__$2 \x3d cljs.core.next(seq70121__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70122,G__70123,seq70121__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70306 \x3d arguments.length;\nvar i__5750__auto___70307 \x3d (0);\nwhile(true){\nif((i__5750__auto___70307 \x3c len__5749__auto___70306)){\nargs__5755__auto__.push((arguments[i__5750__auto___70307]));\n\nvar G__70308 \x3d (i__5750__auto___70307 + (1));\ni__5750__auto___70307 \x3d G__70308;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq70128){\nvar G__70129 \x3d cljs.core.first(seq70128);\nvar seq70128__$1 \x3d cljs.core.next(seq70128);\nvar G__70130 \x3d cljs.core.first(seq70128__$1);\nvar seq70128__$2 \x3d cljs.core.next(seq70128__$1);\nvar G__70131 \x3d cljs.core.first(seq70128__$2);\nvar seq70128__$3 \x3d cljs.core.next(seq70128__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70129,G__70130,G__70131,seq70128__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70309 \x3d arguments.length;\nvar i__5750__auto___70310 \x3d (0);\nwhile(true){\nif((i__5750__auto___70310 \x3c len__5749__auto___70309)){\nargs__5755__auto__.push((arguments[i__5750__auto___70310]));\n\nvar G__70311 \x3d (i__5750__auto___70310 + (1));\ni__5750__auto___70310 \x3d G__70311;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__70137,workflow_id,workflow_fn,args,p__70138){\nvar map__70139 \x3d p__70137;\nvar map__70139__$1 \x3d cljs.core.__destructure_map(map__70139);\nvar engine \x3d map__70139__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__70140 \x3d p__70138;\nvar map__70140__$1 \x3d cljs.core.__destructure_map(map__70140);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70140__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70140__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nvar args__69512__auto___70313 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow resumed\x22], null);\nvar vec__70141_70314 \x3d (((cljs.core.first(args__69512__auto___70313) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70313),cljs.core.rest(args__69512__auto___70313)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70313], null));\nvar err__69513__auto___70315 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70141_70314,(0),null);\nvar msgs__69514__auto___70316 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70141_70314,(1),null);\nvar msg__69515__auto___70317 \x3d ((cljs.core.seq(msgs__69514__auto___70316))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70316):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70315));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70317,err__69513__auto___70315,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq70132){\nvar G__70133 \x3d cljs.core.first(seq70132);\nvar seq70132__$1 \x3d cljs.core.next(seq70132);\nvar G__70134 \x3d cljs.core.first(seq70132__$1);\nvar seq70132__$2 \x3d cljs.core.next(seq70132__$1);\nvar G__70135 \x3d cljs.core.first(seq70132__$2);\nvar seq70132__$3 \x3d cljs.core.next(seq70132__$2);\nvar G__70136 \x3d cljs.core.first(seq70132__$3);\nvar seq70132__$4 \x3d cljs.core.next(seq70132__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70133,G__70134,G__70135,G__70136,seq70132__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70324 \x3d arguments.length;\nvar i__5750__auto___70325 \x3d (0);\nwhile(true){\nif((i__5750__auto___70325 \x3c len__5749__auto___70324)){\nargs__5755__auto__.push((arguments[i__5750__auto___70325]));\n\nvar G__70326 \x3d (i__5750__auto___70325 + (1));\ni__5750__auto___70325 \x3d G__70326;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__70149){\nvar map__70150 \x3d p__70149;\nvar map__70150__$1 \x3d cljs.core.__destructure_map(map__70150);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70150__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_xfn_STAR__orig_val__70151_70332 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70152_70333 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70152_70333);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nvar args__69521__auto___70334 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Adding signal %s\x22,signal_name], null);\nvar vec__70153_70335 \x3d (((cljs.core.first(args__69521__auto___70334) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70334),cljs.core.second(args__69521__auto___70334),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70334)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70334),cljs.core.rest(args__69521__auto___70334)], null));\nvar err__69522__auto___70336 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(0),null);\nvar fmt__69523__auto___70337 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(1),null);\nvar fmt_args__69524__auto___70338 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70337,fmt_args__69524__auto___70338),err__69522__auto___70336,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70151_70332);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq70144){\nvar G__70145 \x3d cljs.core.first(seq70144);\nvar seq70144__$1 \x3d cljs.core.next(seq70144);\nvar G__70146 \x3d cljs.core.first(seq70144__$1);\nvar seq70144__$2 \x3d cljs.core.next(seq70144__$1);\nvar G__70147 \x3d cljs.core.first(seq70144__$2);\nvar seq70144__$3 \x3d cljs.core.next(seq70144__$2);\nvar G__70148 \x3d cljs.core.first(seq70144__$3);\nvar seq70144__$4 \x3d cljs.core.next(seq70144__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70145,G__70146,G__70147,G__70148,seq70144__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_xfn_STAR__orig_val__70156_70343 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70157_70344 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70157_70344);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nvar args__69521__auto___70345 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Cancelling workflow\x22], null);\nvar vec__70158_70346 \x3d (((cljs.core.first(args__69521__auto___70345) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70345),cljs.core.second(args__69521__auto___70345),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70345)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70345),cljs.core.rest(args__69521__auto___70345)], null));\nvar err__69522__auto___70347 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(0),null);\nvar fmt__69523__auto___70348 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(1),null);\nvar fmt_args__69524__auto___70349 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70348,fmt_args__69524__auto___70349),err__69522__auto___70347,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70156_70343);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__70161_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__70161_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70354 \x3d arguments.length;\nvar i__5750__auto___70355 \x3d (0);\nwhile(true){\nif((i__5750__auto___70355 \x3c len__5749__auto___70354)){\nargs__5755__auto__.push((arguments[i__5750__auto___70355]));\n\nvar G__70356 \x3d (i__5750__auto___70355 + (1));\ni__5750__auto___70355 \x3d G__70356;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__70163){\nvar map__70164 \x3d p__70163;\nvar map__70164__$1 \x3d cljs.core.__destructure_map(map__70164);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70164__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq70162){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq70162));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__70166 \x3d arguments.length;\nswitch (G__70166) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__70167){\nvar map__70168 \x3d p__70167;\nvar map__70168__$1 \x3d cljs.core.__destructure_map(map__70168);\nvar engine \x3d map__70168__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70168__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70168__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__70169,grace_period_secs){\nvar map__70170 \x3d p__70169;\nvar map__70170__$1 \x3d cljs.core.__destructure_map(map__70170);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70170__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70170__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar args__69521__auto___70358 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Shutting down engine\x22], null);\nvar vec__70171_70359 \x3d (((cljs.core.first(args__69521__auto___70358) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70358),cljs.core.second(args__69521__auto___70358),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70358)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70358),cljs.core.rest(args__69521__auto___70358)], null));\nvar err__69522__auto___70360 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(0),null);\nvar fmt__69523__auto___70361 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(1),null);\nvar fmt_args__69524__auto___70362 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70361,fmt_args__69524__auto___70362),err__69522__auto___70360,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file diff --git a/src/intemporal/internal/logging.cljc b/src/intemporal/internal/logging.cljc index ccc5142..181f8d4 100644 --- a/src/intemporal/internal/logging.cljc +++ b/src/intemporal/internal/logging.cljc @@ -1,5 +1,6 @@ (ns intemporal.internal.logging - (:require [taoensso.telemere :as t] + (:require [clojure.string :as str] + [taoensso.telemere :as t] #?(:cljs [goog.string :as gstring]) #?(:cljs [goog.string.format]))) @@ -7,47 +8,44 @@ "Evaluates body with given map merged into telemere's signal context." [m & body] ;; (t/log! {:level :debug :data {:sym (:sym task)}} ["Found replay event for task with id" (:id task)])) - `(t/with-ctx {:data ~m} ~@body)) + `(t/with-xfn (fn [s#] (update s# :data merge ~m)) ~@body)) -(defn- fmt [s args] +(defn fmat [s args] #?(:clj (apply format s args) :cljs (apply gstring/format s args))) -;; Print-style: (info msg) or (info throwable msg) -(defn trace [& args] (t/log! :trace (last args))) -(defn debug [& args] (t/log! :debug (last args))) -(defn info [& args] (t/log! :info (last args))) -(defn warn [& args] (t/log! :warn (last args))) -(defn error [& args] (t/log! :error (last args))) -(defn fatal [& args] (t/log! :fatal (last args))) +(defmacro expand-log [level & args] + `(let [args# [~@args] + [err# msgs#] (if (instance? #?(:clj Throwable :cljs js/Error) (first args#)) + [(first args#) (rest args#)] + [nil args#]) + msg# (if (seq msgs#) + (str/join " " msgs#) + (str err#))] + (t/log! {:level ~level :msg msg# :error err#}))) + +(defmacro expand-logf [level & args] + `(let [args# [~@args] + [err# fmt# fmt-args#] (if (instance? #?(:clj Throwable :cljs js/Error) (first args#)) + [(first args#) (second args#) (drop 2 args#)] + [nil (first args#) (rest args#)])] + (t/log! {:level ~level + :msg (fmat fmt# fmt-args#) + :error err#}))) + +;; --- Print-style (Variadic) --- +(defmacro trace [& args] `(expand-log :trace ~@args)) +(defmacro debug [& args] `(expand-log :debug ~@args)) +(defmacro info [& args] `(expand-log :info ~@args)) +(defmacro warn [& args] `(expand-log :warn ~@args)) +(defmacro error [& args] `(expand-log :error ~@args)) +(defmacro fatal [& args] `(expand-log :fatal ~@args)) + +;; --- Format-style (Printf) --- +(defmacro tracef [& args] `(expand-logf :trace ~@args)) +(defmacro debugf [& args] `(expand-logf :debug ~@args)) +(defmacro infof [& args] `(expand-logf :info ~@args)) +(defmacro warnf [& args] `(expand-logf :warn ~@args)) +(defmacro errorf [& args] `(expand-logf :error ~@args)) +(defmacro fatalf [& args] `(expand-logf :fatal ~@args)) -;; Format-style: (infof fmt args...) or (infof throwable fmt args...) -(defn tracef [& args] - (if (string? (first args)) - (t/log! :trace (fmt (first args) (rest args))) - (t/log! {:level :trace :error (first args)} (fmt (second args) (nnext args))))) - -(defn debugf [& args] - (if (string? (first args)) - (t/log! :debug (fmt (first args) (rest args))) - (t/log! {:level :debug :error (first args)} (fmt (second args) (nnext args))))) - -(defn infof [& args] - (if (string? (first args)) - (t/log! :info (fmt (first args) (rest args))) - (t/log! {:level :info :error (first args)} (fmt (second args) (nnext args))))) - -(defn warnf [& args] - (if (string? (first args)) - (t/log! :warn (fmt (first args) (rest args))) - (t/log! {:level :warn :error (first args)} (fmt (second args) (nnext args))))) - -(defn errorf [& args] - (if (string? (first args)) - (t/log! :error (fmt (first args) (rest args))) - (t/log! {:level :error :error (first args)} (fmt (second args) (nnext args))))) - -(defn fatalf [& args] - (if (string? (first args)) - (t/log! :fatal (fmt (first args) (rest args))) - (t/log! {:level :fatal :error (first args)} (fmt (second args) (nnext args))))) diff --git a/src/intemporal/store/fdb.clj b/src/intemporal/store/fdb.clj index e6e0c5e..1bbb1a2 100644 --- a/src/intemporal/store/fdb.clj +++ b/src/intemporal/store/fdb.clj @@ -4,7 +4,8 @@ [me.vedang.clj-fdb.transaction :as ftr] [me.vedang.clj-fdb.subspace.subspace :as fsub] [cheshire.core :as json]) - (:import [com.apple.foundationdb.tuple Tuple])) + (:import [com.apple.foundationdb.tuple Tuple] + (java.lang AutoCloseable))) ;; ============================================================================ ;; Serialization Helpers @@ -25,6 +26,9 @@ ;; ============================================================================ (defrecord FDBStore [db root-subspace callbacks] + AutoCloseable + (close [this] + this) p/IStore (load-history [_ workflow-id] (let [history-sub (fsub/get root-subspace (->tuple ["history" workflow-id]))] diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index c91800d..4180b00 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -4,8 +4,10 @@ [next.jdbc :as jdbc] [next.jdbc.prepare :as prepare] [next.jdbc.result-set :as rs] - [cheshire.core :as json]) - (:import (org.postgresql.util PGobject) + [cheshire.core :as json] + [hikari-cp.core :as hikari]) + (:import (java.lang AutoCloseable) + (org.postgresql.util PGobject) (java.sql PreparedStatement))) (comment @@ -68,6 +70,9 @@ ;; ============================================================================ (defrecord JdbcStore [datasource callbacks] + AutoCloseable + (close [this] + (when datasource (hikari/close-datasource datasource))) p/IStore (load-history [_ workflow-id] (let [rows (jdbc/execute! datasource @@ -174,5 +179,5 @@ "Creates a new jdbc store" [jdbc-url] (migrate! jdbc-url) - (let [ds (hikari-cp.core/make-datasource {:jdbc-url jdbc-url})] + (let [ds (hikari/make-datasource {:jdbc-url jdbc-url})] (->JdbcStore ds (atom {})))) diff --git a/test/intemporal/tests/store/fdb_test.clj b/test/intemporal/tests/store/fdb_test.clj index 7b0516f..aadad6f 100644 --- a/test/intemporal/tests/store/fdb_test.clj +++ b/test/intemporal/tests/store/fdb_test.clj @@ -10,5 +10,5 @@ db (cfdb/open db)] ;; Run shared suite - (let [store (fdb-store/make-fdb-store db "intemporal-tests")] + (with-open [store (fdb-store/make-fdb-store db "intemporal-tests")] (suite/run-store-tests store))))) diff --git a/test/intemporal/tests/store/jdbc_test.clj b/test/intemporal/tests/store/jdbc_test.clj index 9150f41..c5f171d 100644 --- a/test/intemporal/tests/store/jdbc_test.clj +++ b/test/intemporal/tests/store/jdbc_test.clj @@ -19,6 +19,6 @@ (deftest jdbc-store-test (testing "JDBC Store Implementation" (ensure-database!) - (let [store (jdbc-store/make-jdbc-store db-spec)] + (with-open [store (jdbc-store/make-jdbc-store db-spec)] (suite/run-store-tests store)))) diff --git a/test/logback.xml b/test/logback.xml index 6073df6..f494a9f 100644 --- a/test/logback.xml +++ b/test/logback.xml @@ -5,7 +5,7 @@ - + From f351063a5430f432066e77c60c93eb82ce193eea Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 22:55:11 +0000 Subject: [PATCH 75/81] fix bad macro --- public/js/automata.js | 2 +- public/js/cljs-runtime/intemporal.doc.js | 334 +++++++++---------- public/js/cljs-runtime/intemporal.doc.js.map | 2 +- public/js/main.js | 2 +- public/js/shared.js | 8 +- src/intemporal/internal/context.cljc | 3 +- src/intemporal/internal/execution.cljs | 3 +- src/intemporal/internal/logging.cljc | 36 +- src/intemporal/internal/macros.cljc | 26 -- src/intemporal/store/jdbc.clj | 2 +- 10 files changed, 198 insertions(+), 220 deletions(-) diff --git a/public/js/automata.js b/public/js/automata.js index d82542d..2e4438c 100644 --- a/public/js/automata.js +++ b/public/js/automata.js @@ -1,3 +1,3 @@ SHADOW_ENV.evalLoad("intemporal.fsm.js", true, "goog.provide(\x27intemporal.fsm\x27);\nintemporal.fsm.extract \x3d (function intemporal$fsm$extract(x,k){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k);\n} else {\nif((x instanceof cljs.core.Keyword)){\nreturn x;\n} else {\nreturn null;\n}\n}\n});\n/**\n * Given a set of rules for states, a current state and event,\n * figure out the next state and potential side effects to perform.\n * \n * Transit can either be called on a *machine*, i.e: a map containing\n * the current state and rules. In this case, an updated machine map\n * will be returned, with a potentially new state and potential actions\n * to perform if any.\n * \n * When called with the three-arity version, transition rules, state,\n * and event are provided separately. The output is then a transition.\n * \n * Both arities throw when no possible transition was (found\n */\nintemporal.fsm.transit \x3d (function intemporal$fsm$transit(var_args){\nvar G__48191 \x3d arguments.length;\nswitch (G__48191) {\ncase 2:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__48194,event){\nvar map__48195 \x3d p__48194;\nvar map__48195__$1 \x3d cljs.core.__destructure_map(map__48195);\nvar machine \x3d map__48195__$1;\nvar rules \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\nvar state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48195__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\nvar map__48199 \x3d intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3(rules,state,event);\nvar map__48199__$1 \x3d cljs.core.__destructure_map(map__48199);\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741));\nvar to \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__48199__$1,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\nvar G__48201 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(machine,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),to);\nif((!((actions \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__48201,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions);\n} else {\nreturn G__48201;\n}\n}));\n\n(intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$3 \x3d (function (rules,state,event){\nvar transitions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(rules,intemporal.fsm.extract(state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)));\nvar e \x3d intemporal.fsm.extract(event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([state,event], 0));\n\nvar or__5025__auto__ \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__48186_SHARP_,p2__48185_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633).cljs$core$IFn$_invoke$arity$1(p2__48185_SHARP_),e)){\nreturn cljs.core.reduced(p2__48185_SHARP_);\n} else {\nreturn null;\n}\n}),null,transitions);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22cannot find transition\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22not-found\x22,\x22exoscale.ex/not-found\x22,684973639),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event], null));\n}\n}));\n\n(intemporal.fsm.transit.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a collection of invalid target states used in\n * \n * Predicate to check whether a given valid ruleset provides\n * a functioning set of rules. Rules are deemed functioning if\n * all target states are known.\n */\nintemporal.fsm.invalid_states \x3d (function intemporal$fsm$invalid_states(rules){\nvar valid_states \x3d cljs.core.set(cljs.core.keys(rules));\nreturn cljs.core.not_empty(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(cljs.core.val),cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)),cljs.core.distinct.cljs$core$IFn$_invoke$arity$0(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.remove.cljs$core$IFn$_invoke$arity$1(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.contains_QMARK_,valid_states))], 0)),rules));\n});\n/**\n * Perform sanity checks on a rule set, intended to be ran when loading rules.\n * Throws on badly formulated rules\n */\nintemporal.fsm.validate_rules \x3d (function intemporal$fsm$validate_rules(rules){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_str(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378)], null));\n}\n\nvar temp__5825__auto___48496 \x3d intemporal.fsm.invalid_states(rules);\nif(cljs.core.truth_(temp__5825__auto___48496)){\nvar states_48497 \x3d temp__5825__auto___48496;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x22transitions contain invalid states: \x22,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.name,states_48497))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(\x22exoscale.ex\x22,\x22incorrect\x22,\x22exoscale.ex/incorrect\x22,-1592182378),new cljs.core.Keyword(null,\x22states\x22,\x22states\x22,1389013542),states_48497], null));\n} else {\n}\n\nreturn rules;\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),cljs.core.qualified_keyword_QMARK_);\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22action\x22,\x22intemporal.fsm/action\x22,749777745)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48221){\nreturn cljs.core.coll_QMARK_(G__48221);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48238){\nreturn cljs.core.map_QMARK_(G__48238);\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633));\n}),(function (G__48238){\nreturn cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634));\n})], null),(function (G__48238){\nreturn ((cljs.core.map_QMARK_(G__48238)) \x26\x26 (((cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))) \x26\x26 (cljs.core.contains_QMARK_(G__48238,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22coll-of\x22,\x22cljs.spec.alpha/coll-of\x22,1019430407,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transition\x22,\x22intemporal.fsm/transition\x22,-1631683072)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48282){\nreturn cljs.core.coll_QMARK_(G__48282);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)], null)),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897),(function (i__13429__auto__,v__13430__auto__){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v__13430__auto__,(0));\n}),new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917),true,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803),cljs.core.map_QMARK_,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22map-of\x22,\x22cljs.spec.alpha/map-of\x22,153715093,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22transitions\x22,\x22intemporal.fsm/transitions\x22,83111518)),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218),(function (G__48299){\nreturn cljs.core.map_QMARK_(G__48299);\n})], null),null));\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22machine\x22,\x22intemporal.fsm/machine\x22,774176589),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395),new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739),new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261),new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313),new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221),new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450),new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832),new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369)],[null,null,null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (G__48318){\nreturn cljs.core.map_QMARK_(G__48318);\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885));\n}),(function (G__48318){\nreturn cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216));\n})], null),(function (G__48318){\nreturn ((cljs.core.map_QMARK_(G__48318)) \x26\x26 (((cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))) \x26\x26 (cljs.core.contains_QMARK_(G__48318,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216))))));\n}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22contains?\x22,\x22cljs.core/contains?\x22,-976526835,null),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216)))], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741)], null)])));\n/**\n * A helper to define a ruleset\n */\nintemporal.fsm.ruleset \x3d (function intemporal$fsm$ruleset(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48509 \x3d arguments.length;\nvar i__5750__auto___48510 \x3d (0);\nwhile(true){\nif((i__5750__auto___48510 \x3c len__5749__auto___48509)){\nargs__5755__auto__.push((arguments[i__5750__auto___48510]));\n\nvar G__48512 \x3d (i__5750__auto___48510 + (1));\ni__5750__auto___48510 \x3d G__48512;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.ruleset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (rules){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,rules);\n}));\n\n(intemporal.fsm.ruleset.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.ruleset.cljs$lang$applyTo \x3d (function (seq48411){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48411));\n}));\n\n/**\n * Within the context of a ruleset definition, define transitions from\n * a particular state\n */\nintemporal.fsm.with_state \x3d (function intemporal$fsm$with_state(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48517 \x3d arguments.length;\nvar i__5750__auto___48518 \x3d (0);\nwhile(true){\nif((i__5750__auto___48518 \x3c len__5749__auto___48517)){\nargs__5755__auto__.push((arguments[i__5750__auto___48518]));\n\nvar G__48520 \x3d (i__5750__auto___48518 + (1));\ni__5750__auto___48518 \x3d G__48520;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.with_state.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,transitions){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [state,transitions], null);\n}));\n\n(intemporal.fsm.with_state.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.fsm.with_state.cljs$lang$applyTo \x3d (function (seq48414){\nvar G__48415 \x3d cljs.core.first(seq48414);\nvar seq48414__$1 \x3d cljs.core.next(seq48414);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48415,seq48414__$1);\n}));\n\n/**\n * Within the context of a state transition definition, add an event\n * transition definition.\n */\nintemporal.fsm.upon \x3d (function intemporal$fsm$upon(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48526 \x3d arguments.length;\nvar i__5750__auto___48527 \x3d (0);\nwhile(true){\nif((i__5750__auto___48527 \x3c len__5749__auto___48526)){\nargs__5755__auto__.push((arguments[i__5750__auto___48527]));\n\nvar G__48529 \x3d (i__5750__auto___48527 + (1));\ni__5750__auto___48527 \x3d G__48529;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.fsm.upon.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event,new_state,p__48439){\nvar vec__48441 \x3d p__48439;\nvar actions \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48441,(0),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),event,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new_state,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),actions], null);\n}));\n\n(intemporal.fsm.upon.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.fsm.upon.cljs$lang$applyTo \x3d (function (seq48429){\nvar G__48430 \x3d cljs.core.first(seq48429);\nvar seq48429__$1 \x3d cljs.core.next(seq48429);\nvar G__48431 \x3d cljs.core.first(seq48429__$1);\nvar seq48429__$2 \x3d cljs.core.next(seq48429__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__48430,G__48431,seq48429__$2);\n}));\n\n/**\n * Define the target state for a state transition\n */\nintemporal.fsm.transit_to \x3d (function intemporal$fsm$transit_to(x){\nreturn x;\n});\n/**\n * Define effects for a state transition\n */\nintemporal.fsm.and_execute \x3d (function intemporal$fsm$and_execute(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___48531 \x3d arguments.length;\nvar i__5750__auto___48532 \x3d (0);\nwhile(true){\nif((i__5750__auto___48532 \x3c len__5749__auto___48531)){\nargs__5755__auto__.push((arguments[i__5750__auto___48532]));\n\nvar G__48533 \x3d (i__5750__auto___48532 + (1));\ni__5750__auto___48532 \x3d G__48533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.fsm.and_execute.cljs$core$IFn$_invoke$arity$variadic \x3d (function (effects){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,effects);\n}));\n\n(intemporal.fsm.and_execute.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.fsm.and_execute.cljs$lang$applyTo \x3d (function (seq48461){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq48461));\n}));\n\n/**\n * Yields the next state for a transition\n */\nintemporal.fsm.nxt \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634);\n/**\n * Yields all actions for a transition\n */\nintemporal.fsm.actions \x3d new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741);\n/**\n * Yields the first action for a transition\n */\nintemporal.fsm.action \x3d cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.first,intemporal.fsm.actions);\n"); -SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__70203 \x3d cljs.core._EQ_;\nvar expr__70204 \x3d event;\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__70203.cljs$core$IFn$_invoke$arity$2 ? pred__70203.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__70204) : pred__70203.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__70204)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_70213,reject_fn_70212){\nvar loop_fn_70209 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_70209(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_70210,err_70211){\nif((!((err_70211 \x3d\x3d null)))){\nreturn (reject_fn_70212.cljs$core$IFn$_invoke$arity$1 ? reject_fn_70212.cljs$core$IFn$_invoke$arity$1(err_70211) : reject_fn_70212.call(null,err_70211));\n} else {\nif(promesa.core.recur_QMARK_(res_70210)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_70209,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_70210));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_70213.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_70213.cljs$core$IFn$_invoke$arity$1(res_70210) : resolve_fn_70213.call(null,res_70210));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_70209(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__70230(s__70231){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70231__$1 \x3d s__70231;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70231__$1);\nif(temp__5825__auto__){\nvar s__70231__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70231__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70231__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70233 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70232 \x3d (0);\nwhile(true){\nif((i__70232 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70232);\ncljs.core.chunk_append(b__70233,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__70312 \x3d (i__70232 + (1));\ni__70232 \x3d G__70312;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70233),intemporal$automata$render_table_BANG__$_iter__70230(cljs.core.chunk_rest(s__70231__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70233),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70231__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__70230(cljs.core.rest(s__70231__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__70239(s__70240){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70240__$1 \x3d s__70240;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70240__$1);\nif(temp__5825__auto__){\nvar s__70240__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70240__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70240__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70242 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70241 \x3d (0);\nwhile(true){\nif((i__70241 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__70241);\ncljs.core.chunk_append(b__70242,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(s__70249){\nreturn (new cljs.core.LazySeq(null,((function (i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__70249__$1 \x3d s__70249;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70249__$1);\nif(temp__5825__auto____$1){\nvar s__70249__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70249__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__70249__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__70251 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__70250 \x3d (0);\nwhile(true){\nif((i__70250 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__70250);\ncljs.core.chunk_append(b__70251,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70322 \x3d (i__70250 + (1));\ni__70250 \x3d G__70322;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70251),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(cljs.core.chunk_rest(s__70249__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70251),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70249__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70248(cljs.core.rest(s__70249__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__70241,r,c__5501__auto__,size__5502__auto__,b__70242,s__70240__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__70323 \x3d (i__70241 + (1));\ni__70241 \x3d G__70323;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70242),intemporal$automata$render_table_BANG__$_iter__70239(cljs.core.chunk_rest(s__70240__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70242),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__70240__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__70240__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(s__70266){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70266__$1 \x3d s__70266;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70266__$1);\nif(temp__5825__auto____$1){\nvar s__70266__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70266__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70266__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70268 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70267 \x3d (0);\nwhile(true){\nif((i__70267 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70267);\ncljs.core.chunk_append(b__70268,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70327 \x3d (i__70267 + (1));\ni__70267 \x3d G__70327;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70268),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(cljs.core.chunk_rest(s__70266__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70268),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70266__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__70239_$_iter__70265(cljs.core.rest(s__70266__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__70240__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__70239(cljs.core.rest(s__70240__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx70283 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70284 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70285 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70285);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70284);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70289 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70290 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70290);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70289);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70291 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70292 \x3d workflow_ctx70283;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70292);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70293 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__70294 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70295 \x3d workflow_ctx70293;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70295);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70294);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70291);\n}})());\n}));\n}));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.automata.js", true, "goog.provide(\x27intemporal.automata\x27);\nintemporal.automata.resource_rules \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22create\x22,\x22action/create\x22,1832728658)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22creating\x22,\x22state/creating\x22,-518318091),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22start\x22,\x22action/start\x22,906325809)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22starting\x22,\x22state/starting\x22,674059467),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22down\x22,\x22state/down\x22,1337490481)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22up\x22,\x22state/up\x22,-110768032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22stopping\x22,\x22state/stopping\x22,859893266),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22stop\x22,\x22action/stop\x22,1397999688)], null)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22actions\x22,\x22intemporal.fsm/actions\x22,1353370741),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22action\x22,\x22kill\x22,\x22action/kill\x22,1956070515)], null)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22event\x22,\x22intemporal.fsm/event\x22,-1861445633),new cljs.core.Keyword(\x22event\x22,\x22error\x22,\x22event/error\x22,-1159804082),new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22to\x22,\x22intemporal.fsm/to\x22,-1962402634),new cljs.core.Keyword(\x22state\x22,\x22killing\x22,\x22state/killing\x22,600859092)], null)], null),new cljs.core.Keyword(\x22state\x22,\x22killed\x22,\x22state/killed\x22,860727406),cljs.core.PersistentVector.EMPTY], null);\nintemporal.automata.process_event \x3d (function intemporal$automata$process_event(event){\nconsole.log(\x22Going to process event\x22,event);\n\nvar nxt \x3d (function (){var pred__75643 \x3d cljs.core._EQ_;\nvar expr__75644 \x3d event;\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22created\x22,\x22event/created\x22,-814408574),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22start\x22,\x22event/start\x22,-811699307),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22started\x22,\x22event/started\x22,531610038),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22stop\x22,\x22event/stop\x22,-2027762516),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22stopped\x22,\x22event/stopped\x22,-1603032798),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871);\n} else {\nif(cljs.core.truth_((pred__75643.cljs$core$IFn$_invoke$arity$2 ? pred__75643.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__75644) : pred__75643.call(null,new cljs.core.Keyword(\x22event\x22,\x22kill\x22,\x22event/kill\x22,167622871),expr__75644)))){\nreturn new cljs.core.Keyword(\x22event\x22,\x22killed\x22,\x22event/killed\x22,874658407);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n})();\nreturn nxt;\n});\nintemporal.automata.run_fsm_workflow \x3d (function intemporal$automata$run_fsm_workflow(rules,init_state,init_event){\nvar stub \x3d intemporal.core.stub(intemporal.automata.process_event);\nvar initstate \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22rules\x22,\x22intemporal.fsm/rules\x22,-933040885),rules,new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216),init_state], null);\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_75660,reject_fn_75659){\nvar loop_fn_75656 \x3d (function intemporal$automata$run_fsm_workflow_$_loop_fn_75656(state,evt){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_75657,err_75658){\nif((!((err_75658 \x3d\x3d null)))){\nreturn (reject_fn_75659.cljs$core$IFn$_invoke$arity$1 ? reject_fn_75659.cljs$core$IFn$_invoke$arity$1(err_75658) : reject_fn_75659.call(null,err_75658));\n} else {\nif(promesa.core.recur_QMARK_(res_75657)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$automata$run_fsm_workflow_$_loop_fn_75656,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_75657));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_75660.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_75660.cljs$core$IFn$_invoke$arity$1(res_75657) : resolve_fn_75660.call(null,res_75657));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(state),(function (state__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise(evt),(function (evt__$1){\nreturn promesa.protocols._promise((cljs.core.truth_(evt__$1)?promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.fsm.transit.cljs$core$IFn$_invoke$arity$2(state__$1,evt__$1),stub(evt__$1)], null)):new cljs.core.Keyword(\x22intemporal.fsm\x22,\x22state\x22,\x22intemporal.fsm/state\x22,143854216).cljs$core$IFn$_invoke$arity$1(state__$1)));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_75656(initstate,init_event);\n})));\n}));\n});\nintemporal.automata.set_html_BANG_ \x3d (function intemporal$automata$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.automata.render_table_BANG_ \x3d (function intemporal$automata$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__75681(s__75682){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75682__$1 \x3d s__75682;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__75682__$1);\nif(temp__5825__auto__){\nvar s__75682__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__75682__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75682__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75684 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75683 \x3d (0);\nwhile(true){\nif((i__75683 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__75683);\ncljs.core.chunk_append(b__75684,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__75761 \x3d (i__75683 + (1));\ni__75683 \x3d G__75761;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75684),intemporal$automata$render_table_BANG__$_iter__75681(cljs.core.chunk_rest(s__75682__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75684),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75682__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$automata$render_table_BANG__$_iter__75681(cljs.core.rest(s__75682__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$automata$render_table_BANG__$_iter__75689(s__75690){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75690__$1 \x3d s__75690;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__75690__$1);\nif(temp__5825__auto__){\nvar s__75690__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__75690__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75690__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75692 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75691 \x3d (0);\nwhile(true){\nif((i__75691 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__75691);\ncljs.core.chunk_append(b__75692,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__75691,r,c__5501__auto__,size__5502__auto__,b__75692,s__75690__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75697(s__75698){\nreturn (new cljs.core.LazySeq(null,((function (i__75691,r,c__5501__auto__,size__5502__auto__,b__75692,s__75690__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__75698__$1 \x3d s__75698;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__75698__$1);\nif(temp__5825__auto____$1){\nvar s__75698__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__75698__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__75698__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__75700 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__75699 \x3d (0);\nwhile(true){\nif((i__75699 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__75699);\ncljs.core.chunk_append(b__75700,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__75763 \x3d (i__75699 + (1));\ni__75699 \x3d G__75763;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75700),intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75697(cljs.core.chunk_rest(s__75698__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75700),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75698__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75697(cljs.core.rest(s__75698__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__75691,r,c__5501__auto__,size__5502__auto__,b__75692,s__75690__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__75691,r,c__5501__auto__,size__5502__auto__,b__75692,s__75690__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__75764 \x3d (i__75691 + (1));\ni__75691 \x3d G__75764;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75692),intemporal$automata$render_table_BANG__$_iter__75689(cljs.core.chunk_rest(s__75690__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75692),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__75690__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__75690__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75707(s__75708){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75708__$1 \x3d s__75708;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__75708__$1);\nif(temp__5825__auto____$1){\nvar s__75708__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__75708__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75708__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75710 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75709 \x3d (0);\nwhile(true){\nif((i__75709 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__75709);\ncljs.core.chunk_append(b__75710,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__75769 \x3d (i__75709 + (1));\ni__75709 \x3d G__75769;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75710),intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75707(cljs.core.chunk_rest(s__75708__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75710),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75708__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$automata$render_table_BANG__$_iter__75689_$_iter__75707(cljs.core.rest(s__75708__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__75690__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$automata$render_table_BANG__$_iter__75689(cljs.core.rest(s__75690__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.automata.set_html_BANG_(id,tbl);\n});\nintemporal.automata.render_tables_BANG_ \x3d (function intemporal$automata$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.automata.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.automata.init \x3d (function intemporal$automata$init(){\nvar workflow_ctx75724 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75730 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75731 \x3d workflow_ctx75724;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75731);\n\ntry{return intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75730);\n}})()),(function (engine){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75732 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75733 \x3d workflow_ctx75724;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75733);\n\ntry{return intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.automata.run_fsm_workflow,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [intemporal.automata.resource_rules,new cljs.core.Keyword(\x22state\x22,\x22init\x22,\x22state/init\x22,-2036161781),new cljs.core.Keyword(\x22event\x22,\x22create\x22,\x22event/create\x22,-1323031250)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75732);\n}})()),(function (res){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75734 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75735 \x3d workflow_ctx75724;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75735);\n\ntry{return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx75736 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(res),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__75737 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75738 \x3d workflow_ctx75736;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75738);\n\ntry{return (function (r){\nreturn console.log(\x22res\x22,cljs.core.clj__GT_js(r));\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75737);\n}}));\n})(),(function (r){\nreturn console.error(\x22error\x22,r);\n}));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75734);\n}})());\n}));\n}));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.automata.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27automata\x27);\n\ntry { intemporal.automata.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.automata/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.fsm.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.automata.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.automata.append.js\x22);"); \ No newline at end of file diff --git a/public/js/cljs-runtime/intemporal.doc.js b/public/js/cljs-runtime/intemporal.doc.js index 1956185..a2cfa32 100644 --- a/public/js/cljs-runtime/intemporal.doc.js +++ b/public/js/cljs-runtime/intemporal.doc.js @@ -11,7 +11,7 @@ return (1); */ intemporal.doc.MyActivities = function(){}; -var intemporal$doc$MyActivities$foo$dyn_70366 = (function (this$,a){ +var intemporal$doc$MyActivities$foo$dyn_75815 = (function (this$,a){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ @@ -29,7 +29,7 @@ intemporal.doc.foo = (function intemporal$doc$foo(this$,a){ if((((!((this$ == null)))) && ((!((this$.intemporal$doc$MyActivities$foo$arity$2 == null)))))){ return this$.intemporal$doc$MyActivities$foo$arity$2(this$,a); } else { -return intemporal$doc$MyActivities$foo$dyn_70366(this$,a); +return intemporal$doc$MyActivities$foo$dyn_75815(this$,a); } }); @@ -66,13 +66,13 @@ var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k70215,else__5326__auto__){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k75672,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; -var G__70220 = k70215; -switch (G__70220) { +var G__75688 = k75672; +switch (G__75688) { default: -return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70215,else__5326__auto__); +return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k75672,else__5326__auto__); } })); @@ -80,10 +80,10 @@ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70215,else__ (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; -return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70221){ -var vec__70222 = p__70221; -var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(0),null); -var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(1),null); +return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__75693){ +var vec__75694 = p__75693; +var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75694,(0),null); +var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75694,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); @@ -97,10 +97,10 @@ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer," return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#intemporal.doc.MyActivitiesImpl{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__70214){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__75671){ var self__ = this; -var G__70214__$1 = this; -return (new cljs.core.RecordIter((0),G__70214__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); +var G__75671__$1 = this; +return (new cljs.core.RecordIter((0),G__75671__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ @@ -137,10 +137,10 @@ return h__5134__auto____$1; } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this70216,other70217){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this75673,other75674){ var self__ = this; -var this70216__$1 = this; -return (((!((other70217 == null)))) && ((((this70216__$1.constructor === other70217.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70216__$1.__extmap,other70217.__extmap))))); +var this75673__$1 = this; +return (((!((other75674 == null)))) && ((((this75673__$1.constructor === other75674.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this75673__$1.__extmap,other75674.__extmap))))); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ @@ -153,18 +153,18 @@ return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cl } })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k70215){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k75672){ var self__ = this; var this__5330__auto____$1 = this; -return cljs.core.contains_QMARK_(self__.__extmap,k70215); +return cljs.core.contains_QMARK_(self__.__extmap,k75672); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__70214){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__75671){ var self__ = this; var this__5331__auto____$1 = this; -var pred__70257 = cljs.core.keyword_identical_QMARK_; -var expr__70258 = k__5332__auto__; -return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70214),null)); +var pred__75721 = cljs.core.keyword_identical_QMARK_; +var expr__75722 = k__5332__auto__; +return (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__75671),null)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ @@ -173,10 +173,10 @@ var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap)); })); -(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__70214){ +(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__75671){ var self__ = this; var this__5322__auto____$1 = this; -return (new intemporal.doc.MyActivitiesImpl(G__70214,self__.__extmap,self__.__hash)); +return (new intemporal.doc.MyActivitiesImpl(G__75671,self__.__extmap,self__.__hash)); })); (intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ @@ -223,12 +223,12 @@ return (new intemporal.doc.MyActivitiesImpl(null,null,null)); /** * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values. */ -intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__70218){ -var extmap__5365__auto__ = (function (){var G__70279 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__70218); -if(cljs.core.record_QMARK_(G__70218)){ -return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70279); +intemporal.doc.map__GT_MyActivitiesImpl = (function intemporal$doc$map__GT_MyActivitiesImpl(G__75680){ +var extmap__5365__auto__ = (function (){var G__75739 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__75680); +if(cljs.core.record_QMARK_(G__75680)){ +return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__75739); } else { -return G__70279; +return G__75739; } })(); return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null)); @@ -241,113 +241,113 @@ return (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__536 * @implements {cljs.core.IMeta} * @implements {cljs.core.IWithMeta} */ -intemporal.doc.t_intemporal$doc70286 = (function (i,sf,protocols70280,registry70281,meta70287){ +intemporal.doc.t_intemporal$doc75753 = (function (i,sf,protocols75745,registry75746,meta75754){ this.i = i; this.sf = sf; -this.protocols70280 = protocols70280; -this.registry70281 = registry70281; -this.meta70287 = meta70287; +this.protocols75745 = protocols75745; +this.registry75746 = registry75746; +this.meta75754 = meta75754; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }); -(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_70288,meta70287__$1){ +(intemporal.doc.t_intemporal$doc75753.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_75755,meta75754__$1){ var self__ = this; -var _70288__$1 = this; -return (new intemporal.doc.t_intemporal$doc70286(self__.i,self__.sf,self__.protocols70280,self__.registry70281,meta70287__$1)); +var _75755__$1 = this; +return (new intemporal.doc.t_intemporal$doc75753(self__.i,self__.sf,self__.protocols75745,self__.registry75746,meta75754__$1)); })); -(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_70288){ +(intemporal.doc.t_intemporal$doc75753.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_75755){ var self__ = this; -var _70288__$1 = this; -return self__.meta70287; +var _75755__$1 = this; +return self__.meta75754; })); -(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); +(intemporal.doc.t_intemporal$doc75753.prototype.intemporal$doc$MyActivities$ = cljs.core.PROTOCOL_SENTINEL); -(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__38237__auto__,a){ +(intemporal.doc.t_intemporal$doc75753.prototype.intemporal$doc$MyActivities$foo$arity$2 = (function (this__71480__auto__,a){ var self__ = this; -var this__38237__auto____$1 = this; -var f__38238__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); -return f__38238__auto__(a); +var this__71480__auto____$1 = this; +var f__71481__auto__ = intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol("intemporal.doc","foo","intemporal.doc/foo",778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"protocol","protocol",652470118),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("intemporal.doc","MyActivities","intemporal.doc/MyActivities",-1471127805,null),new cljs.core.Symbol(null,"intemporal.doc","intemporal.doc",-889985538,null),new cljs.core.Symbol(null,"foo","foo",-1385541733,null),"intemporal/doc.cljs",7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"this","this",1028897902,null),new cljs.core.Symbol(null,"a","a",-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)]))); +return f__71481__auto__(a); })); -(intemporal.doc.t_intemporal$doc70286.getBasis = (function (){ -return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols70280","protocols70280",1546016350,null),new cljs.core.Symbol(null,"registry70281","registry70281",473331259,null),new cljs.core.Symbol(null,"meta70287","meta70287",793116919,null)], null); +(intemporal.doc.t_intemporal$doc75753.getBasis = (function (){ +return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"sf","sf",-308960211,null),new cljs.core.Symbol(null,"protocols75745","protocols75745",-223572470,null),new cljs.core.Symbol(null,"registry75746","registry75746",2111238098,null),new cljs.core.Symbol(null,"meta75754","meta75754",1754897619,null)], null); })); -(intemporal.doc.t_intemporal$doc70286.cljs$lang$type = true); +(intemporal.doc.t_intemporal$doc75753.cljs$lang$type = true); -(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc70286"); +(intemporal.doc.t_intemporal$doc75753.cljs$lang$ctorStr = "intemporal.doc/t_intemporal$doc75753"); -(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ -return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc70286"); +(intemporal.doc.t_intemporal$doc75753.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ +return cljs.core._write(writer__5311__auto__,"intemporal.doc/t_intemporal$doc75753"); })); /** - * Positional factory function for intemporal.doc/t_intemporal$doc70286. + * Positional factory function for intemporal.doc/t_intemporal$doc75753. */ -intemporal.doc.__GT_t_intemporal$doc70286 = (function intemporal$doc$__GT_t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287){ -return (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287)); +intemporal.doc.__GT_t_intemporal$doc75753 = (function intemporal$doc$__GT_t_intemporal$doc75753(i,sf,protocols75745,registry75746,meta75754){ +return (new intemporal.doc.t_intemporal$doc75753(i,sf,protocols75745,registry75746,meta75754)); }); intemporal.doc.my_workflow = (function intemporal$doc$my_workflow(i){ var sf = intemporal.core.stub(intemporal.doc.activity_fn); -var pr = (function (){var protocols70280 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var registry70281 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); -var temp__5825__auto___70368 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols70280,intemporal.doc.MyActivities); -if(cljs.core.truth_(temp__5825__auto___70368)){ -var impl70282_70369 = temp__5825__auto___70368; -intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry70281,(function() { -var G__70370__delegate = function (args__38236__auto__){ -return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl70282_70369,args__38236__auto__); +var pr = (function (){var protocols75745 = new cljs.core.Keyword(null,"protocols","protocols",-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var registry75746 = new cljs.core.Keyword(null,"registry","registry",1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context()); +var temp__5825__auto___75824 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols75745,intemporal.doc.MyActivities); +if(cljs.core.truth_(temp__5825__auto___75824)){ +var impl75747_75825 = temp__5825__auto___75824; +intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry75746,(function() { +var G__75826__delegate = function (args__71479__auto__){ +return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl75747_75825,args__71479__auto__); }; -var G__70370 = function (var_args){ -var args__38236__auto__ = null; +var G__75826 = function (var_args){ +var args__71479__auto__ = null; if (arguments.length > 0) { -var G__70371__i = 0, G__70371__a = new Array(arguments.length - 0); -while (G__70371__i < G__70371__a.length) {G__70371__a[G__70371__i] = arguments[G__70371__i + 0]; ++G__70371__i;} - args__38236__auto__ = new cljs.core.IndexedSeq(G__70371__a,0,null); +var G__75827__i = 0, G__75827__a = new Array(arguments.length - 0); +while (G__75827__i < G__75827__a.length) {G__75827__a[G__75827__i] = arguments[G__75827__i + 0]; ++G__75827__i;} + args__71479__auto__ = new cljs.core.IndexedSeq(G__75827__a,0,null); } -return G__70370__delegate.call(this,args__38236__auto__);}; -G__70370.cljs$lang$maxFixedArity = 0; -G__70370.cljs$lang$applyTo = (function (arglist__70372){ -var args__38236__auto__ = cljs.core.seq(arglist__70372); -return G__70370__delegate(args__38236__auto__); +return G__75826__delegate.call(this,args__71479__auto__);}; +G__75826.cljs$lang$maxFixedArity = 0; +G__75826.cljs$lang$applyTo = (function (arglist__75828){ +var args__71479__auto__ = cljs.core.seq(arglist__75828); +return G__75826__delegate(args__71479__auto__); }); -G__70370.cljs$core$IFn$_invoke$arity$variadic = G__70370__delegate; -return G__70370; +G__75826.cljs$core$IFn$_invoke$arity$variadic = G__75826__delegate; +return G__75826; })() ,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),"intemporal.doc/foo"], 0)); } else { } -return (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,null)); +return (new intemporal.doc.t_intemporal$doc75753(i,sf,protocols75745,registry75746,null)); })(); var sres = sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null)); var pres = pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,"X","X",1705996313)); -var workflow_ctx70299 = intemporal.internal.context._STAR_workflow_context_STAR_; +var workflow_ctx75762 = intemporal.internal.context._STAR_workflow_context_STAR_; return promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70300 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__70301 = workflow_ctx70299; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70301); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75765 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__75766 = workflow_ctx75762; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__75766); try{return sres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70300); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__75765); }})()),(function (v1){ -return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70302 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__70303 = workflow_ctx70299; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70303); +return promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75767 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__75768 = workflow_ctx75762; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__75768); try{return pres; -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70302); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__75767); }})()),(function (v2){ -return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70304 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__70305 = workflow_ctx70299; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70305); +return promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75770 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__75771 = workflow_ctx75762; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__75771); try{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"root","root",-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0)); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70304); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__75770); }})()); })); })); @@ -361,25 +361,25 @@ return intemporal.doc.set_html_BANG_("results",html); }); intemporal.doc.render_table_BANG_ = (function intemporal$doc$render_table_BANG_(id,rows){ var header = new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"event-type","event-type",319722813),new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),new cljs.core.Keyword(null,"args","args",1315556576),new cljs.core.Keyword(null,"timestamp","timestamp",579478971),new cljs.core.Keyword(null,"seq","seq",-1817803783),new cljs.core.Keyword(null,"activity-name","activity-name",-294600638),new cljs.core.Keyword(null,"result","result",1415092211)], null); -var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__70318(s__70319){ +var thead = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"thead","thead",-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__75772(s__75773){ return (new cljs.core.LazySeq(null,(function (){ -var s__70319__$1 = s__70319; +var s__75773__$1 = s__75773; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__70319__$1); +var temp__5825__auto__ = cljs.core.seq(s__75773__$1); if(temp__5825__auto__){ -var s__70319__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__70319__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__70319__$2); +var s__75773__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__75773__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__75773__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__70321 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__70320 = (0); +var b__75775 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__75774 = (0); while(true){ -if((i__70320 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__70320); -cljs.core.chunk_append(b__70321,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); +if((i__75774 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__75774); +cljs.core.chunk_append(b__75775,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null)); -var G__70373 = (i__70320 + (1)); -i__70320 = G__70373; +var G__75832 = (i__75774 + (1)); +i__75774 = G__75832; continue; } else { return true; @@ -387,13 +387,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__70321),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.chunk_rest(s__70319__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__75775),intemporal$doc$render_table_BANG__$_iter__75772(cljs.core.chunk_rest(s__75773__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__70321),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__75775),null); } } else { -var h = cljs.core.first(s__70319__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.rest(s__70319__$2))); +var h = cljs.core.first(s__75773__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__75772(cljs.core.rest(s__75773__$2))); } } else { return null; @@ -404,42 +404,42 @@ break; }); return iter__5503__auto__(header); })()], null)], null); -var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__70328(s__70329){ +var tbody = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tbody","tbody",-80678300),(function (){var iter__5503__auto__ = (function intemporal$doc$render_table_BANG__$_iter__75776(s__75777){ return (new cljs.core.LazySeq(null,(function (){ -var s__70329__$1 = s__70329; +var s__75777__$1 = s__75777; while(true){ -var temp__5825__auto__ = cljs.core.seq(s__70329__$1); +var temp__5825__auto__ = cljs.core.seq(s__75777__$1); if(temp__5825__auto__){ -var s__70329__$2 = temp__5825__auto__; -if(cljs.core.chunked_seq_QMARK_(s__70329__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__70329__$2); +var s__75777__$2 = temp__5825__auto__; +if(cljs.core.chunked_seq_QMARK_(s__75777__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__75777__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__70331 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__70330 = (0); +var b__75779 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__75778 = (0); while(true){ -if((i__70330 < size__5502__auto__)){ -var r = cljs.core._nth(c__5501__auto__,i__70330); -cljs.core.chunk_append(b__70331,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(s__70340){ -return (new cljs.core.LazySeq(null,((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){ +if((i__75778 < size__5502__auto__)){ +var r = cljs.core._nth(c__5501__auto__,i__75778); +cljs.core.chunk_append(b__75779,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(s__75784){ +return (new cljs.core.LazySeq(null,((function (i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead){ return (function (){ -var s__70340__$1 = s__70340; +var s__75784__$1 = s__75784; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__70340__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__75784__$1); if(temp__5825__auto____$1){ -var s__70340__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__70340__$2)){ -var c__5501__auto____$1 = cljs.core.chunk_first(s__70340__$2); +var s__75784__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__75784__$2)){ +var c__5501__auto____$1 = cljs.core.chunk_first(s__75784__$2); var size__5502__auto____$1 = cljs.core.count(c__5501__auto____$1); -var b__70342 = cljs.core.chunk_buffer(size__5502__auto____$1); -if((function (){var i__70341 = (0); +var b__75786 = cljs.core.chunk_buffer(size__5502__auto____$1); +if((function (){var i__75785 = (0); while(true){ -if((i__70341 < size__5502__auto____$1)){ -var h = cljs.core._nth(c__5501__auto____$1,i__70341); -cljs.core.chunk_append(b__70342,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__75785 < size__5502__auto____$1)){ +var h = cljs.core._nth(c__5501__auto____$1,i__75785); +cljs.core.chunk_append(b__75786,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__70374 = (i__70341 + (1)); -i__70341 = G__70374; +var G__75834 = (i__75785 + (1)); +i__75785 = G__75834; continue; } else { return true; @@ -447,28 +447,28 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__70342),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.chunk_rest(s__70340__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__75786),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(cljs.core.chunk_rest(s__75784__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__70342),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__75786),null); } } else { -var h = cljs.core.first(s__70340__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.rest(s__70340__$2))); +var h = cljs.core.first(s__75784__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(cljs.core.rest(s__75784__$2))); } } else { return null; } break; } -});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead)) +});})(i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead)) ,null,null)); -});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead)) +});})(i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); })()], null)); -var G__70375 = (i__70330 + (1)); -i__70330 = G__70375; +var G__75835 = (i__75778 + (1)); +i__75778 = G__75835; continue; } else { return true; @@ -476,32 +476,32 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__70331),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.chunk_rest(s__70329__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__75779),intemporal$doc$render_table_BANG__$_iter__75776(cljs.core.chunk_rest(s__75777__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__70331),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__75779),null); } } else { -var r = cljs.core.first(s__70329__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__70329__$2,temp__5825__auto__,header,thead){ -return (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(s__70351){ +var r = cljs.core.first(s__75777__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tr","tr",-1424774646),(function (){var iter__5503__auto__ = ((function (r,s__75777__$2,temp__5825__auto__,header,thead){ +return (function intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(s__75788){ return (new cljs.core.LazySeq(null,(function (){ -var s__70351__$1 = s__70351; +var s__75788__$1 = s__75788; while(true){ -var temp__5825__auto____$1 = cljs.core.seq(s__70351__$1); +var temp__5825__auto____$1 = cljs.core.seq(s__75788__$1); if(temp__5825__auto____$1){ -var s__70351__$2 = temp__5825__auto____$1; -if(cljs.core.chunked_seq_QMARK_(s__70351__$2)){ -var c__5501__auto__ = cljs.core.chunk_first(s__70351__$2); +var s__75788__$2 = temp__5825__auto____$1; +if(cljs.core.chunked_seq_QMARK_(s__75788__$2)){ +var c__5501__auto__ = cljs.core.chunk_first(s__75788__$2); var size__5502__auto__ = cljs.core.count(c__5501__auto__); -var b__70353 = cljs.core.chunk_buffer(size__5502__auto__); -if((function (){var i__70352 = (0); +var b__75790 = cljs.core.chunk_buffer(size__5502__auto__); +if((function (){var i__75789 = (0); while(true){ -if((i__70352 < size__5502__auto__)){ -var h = cljs.core._nth(c__5501__auto__,i__70352); -cljs.core.chunk_append(b__70353,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); +if((i__75789 < size__5502__auto__)){ +var h = cljs.core._nth(c__5501__auto__,i__75789); +cljs.core.chunk_append(b__75790,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null)); -var G__70376 = (i__70352 + (1)); -i__70352 = G__70376; +var G__75841 = (i__75789 + (1)); +i__75789 = G__75841; continue; } else { return true; @@ -509,13 +509,13 @@ return true; break; } })()){ -return cljs.core.chunk_cons(cljs.core.chunk(b__70353),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.chunk_rest(s__70351__$2))); +return cljs.core.chunk_cons(cljs.core.chunk(b__75790),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(cljs.core.chunk_rest(s__75788__$2))); } else { -return cljs.core.chunk_cons(cljs.core.chunk(b__70353),null); +return cljs.core.chunk_cons(cljs.core.chunk(b__75790),null); } } else { -var h = cljs.core.first(s__70351__$2); -return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.rest(s__70351__$2))); +var h = cljs.core.first(s__75788__$2); +return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"td","td",1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(cljs.core.rest(s__75788__$2))); } } else { return null; @@ -523,10 +523,10 @@ return null; break; } }),null,null)); -});})(r,s__70329__$2,temp__5825__auto__,header,thead)) +});})(r,s__75777__$2,temp__5825__auto__,header,thead)) ; return iter__5503__auto__(header); -})()], null),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.rest(s__70329__$2))); +})()], null),intemporal$doc$render_table_BANG__$_iter__75776(cljs.core.rest(s__75777__$2))); } } else { return null; @@ -549,11 +549,11 @@ return console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$a intemporal.doc.init = (function intemporal$doc$init(){ var engine = intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threads","threads",-1717798734),(4),new cljs.core.Keyword(null,"enable-logging","enable-logging",-1075137859),true], 0)); var res = intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"workflow-id","workflow-id",-199003646),"my-wflow",new cljs.core.Keyword(null,"protocols","protocols",-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0)); -return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70363 = intemporal.internal.context._STAR_workflow_context_STAR_; -return promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){ -var _STAR_workflow_context_STAR__orig_val__70364 = intemporal.internal.context._STAR_workflow_context_STAR_; -var _STAR_workflow_context_STAR__temp_val__70365 = workflow_ctx70363; -(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__70365); +return promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx75802 = intemporal.internal.context._STAR_workflow_context_STAR_; +return promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__75154__auto__){ +var _STAR_workflow_context_STAR__orig_val__75803 = intemporal.internal.context._STAR_workflow_context_STAR_; +var _STAR_workflow_context_STAR__temp_val__75804 = workflow_ctx75802; +(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__temp_val__75804); try{return (function (r){ console.log("res",cljs.core.clj__GT_js(r)); @@ -561,8 +561,8 @@ console.log("res",cljs.core.clj__GT_js(r)); intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0))); return intemporal.doc.render_tables_BANG_(engine,"my-wflow"); -})(res__37297__auto__); -}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__70364); +})(res__75154__auto__); +}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ = _STAR_workflow_context_STAR__orig_val__75803); }})); })(),(function (r){ console.error("error",r); diff --git a/public/js/cljs-runtime/intemporal.doc.js.map b/public/js/cljs-runtime/intemporal.doc.js.map index 9f42139..cafe4d9 100644 --- a/public/js/cljs-runtime/intemporal.doc.js.map +++ b/public/js/cljs-runtime/intemporal.doc.js.map @@ -1 +1 @@ -{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k70215","else__5326__auto__","G__70220","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__70221","vec__70222","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__70214","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this70216","other70217","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__70257","cljs.core/keyword-identical?","expr__70258","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__70218","extmap__5365__auto__","G__70279","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols70280","intemporal.internal.context/current-context","registry70281","temp__5825__auto__","impl70282","intemporal.internal.activity.register_activity_BANG_","args__38236__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc70286","sres","pres","workflow-ctx70299","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__70300","*workflow-context*-temp-val__70301","*workflow-context*-orig-val__70302","*workflow-context*-temp-val__70303","*workflow-context*-orig-val__70304","*workflow-context*-temp-val__70305","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__70319","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__70321","cljs.core/chunk-buffer","i__70320","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__70318","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__70329","b__70331","i__70330","iter__70328","r","s__70340","b__70342","i__70341","iter__70339","s__70351","b__70353","i__70352","iter__70350","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx70363","promesa.core.then","res__37297__auto__","*workflow-context*-orig-val__70364","*workflow-context*-temp-val__70365","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file +{"version":3,"sources":["intemporal/doc.cljs"],"mappings":";AAUA,2BAAA,3BAAMA,8DAAWC;AAAjB,AAAA,4FAAA,FACGA;;AAEH,6BAAA,7BAAMC,kEAAaD;AAAnB,AAAA;;AAKA,AAAA;AAAA;;;8BAAA,9BAAaS;;AAAb,IAAAP,4CAAA,WACQQ,MAAKV;AADb,AAAA,IAAAG,kBAAA,EAAA,UAAA,OAAA,hBACQO,qBAAAA;IADRN,kBAAA,CAAAC,mBAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQM,qCAAAA,/BAAKV,qCAAAA;;AADb,IAAAO,kBAAA,CAAAF,mBAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,yDAAAA,XACQG,qCAAAA,/BAAKV,qCAAAA;;AADb,MAAA,AAAAQ,2BAAA,mBACQE;;;;AADR,AAAA,qBAAA,rBACGL,kDAAKK,MAAKV;AADb,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,iDAAA,3EACQU,0BAAAA;AADR,OACQA,8CAAAA,MAAKV;;AADb,OAAAE,0CACQQ,MAAKV;;;;AADb,AAGA,AAAA,AAAA,AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAAA,CAAA,AAAA,8EAAA,WAAAW,mBAAAC,5GAAWgE;;AAAX,AAAA,IAAAjE,yBAAA;AAAA,AAAA,OAAAA,8DAAAC,gBAAA;;;AAAA,CAAA,AAAA,8EAAA,WAAAC,mBAAAC,OAAAC,nHAAW6D;;AAAX,AAAA,IAAA/D,yBAAA;AAAA,AAAA,IAAAG,WAAAF;AAAA,AAAA,QAAAE;;AAAA,OAAAC,4CAAAC,gBAAAJ,OAAAC;;;;;AAAA,CAAA,AAAA,mFAAA,WAAAI,mBAAAC,gBAAAC,jIAAWuD;;AAAX,AAAA,IAAAzD,yBAAA;AAAA,AAAA,OAAAG,+CAAA,WAAAC,kBAAAC;AAAA,AAAA,IAAAC,aAAAD;IAAAE,kBAAA,AAAAC,4CAAAF,WAAA,IAAA;IAAAG,kBAAA,AAAAD,4CAAAF,WAAA,IAAA;AAAA,AAAA,QAAAL,gDAAAA,8CAAAG,kBAAAG,gBAAAE,mBAAAR,0BAAAG,kBAAAG,gBAAAE;GAAAP,mBAAAF;;;AAAA,CAAA,AAAA,0FAAA,WAAAU,mBAAAC,qBAAAC,7IAAW6C;;AAAX,AAAA,IAAA/C,yBAAA;AAAA,AAAA,IAAAG,wBAAA,WAAAC;AAAA,AAAA,OAAAC,+BAAAJ,qBAAA,oBAAA,GAAA,IAAA,GAAAC,mBAAAE;;AAAA,AAAA,OAAAC,+BAAAJ,qBAAAE,sBAAA,oCAAA,KAAA,IAAAD,mBAAA,AAAAI,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,kFAAA,WAAAkB,7FAAWwC;;AAAX,AAAA,IAAAxC,eAAA;AAAA,AAAA,YAAAC,qBAAA,IAAAD,aAAA,EAAA,iCAAA,kBAAAlB,iBAAA,AAAAoB,oBAAApB,iBAAA,AAAAqB;;;AAAA,CAAA,AAAA,0EAAA,WAAAC,rFAAWoC;;AAAX,AAAA,IAAApC,yBAAA;AAAA,AAAAC;;;AAAA,CAAA,AAAA,gFAAA,WAAAC,3FAAWkC;;AAAX,AAAA,IAAAlC,yBAAA;AAAA,AAAA,4CAAAD,cAAAvB,gBAAAyB,9DAAWiC;;;AAAX,CAAA,AAAA,8EAAA,WAAAhC,zFAAWgC;;AAAX,AAAA,IAAAhC,yBAAA;AAAA,AAAA,QAAA,IAAA,AAAAC,gBAAA3B;;;AAAA,CAAA,AAAA,0EAAA,WAAA4B,rFAAW8B;;AAAX,AAAA,IAAA9B,yBAAA;AAAA,AAAA,IAAAC,kBAAAJ;AAAA,AAAA,GAAA,GAAA,CAAAI,mBAAA;AAAAA;;AAAA,IAAAA,sBAAA,AAAA,WAAAC;AAAA,AAAA,QAAA,cAAA,AAAAC,8BAAAD;GAAAF;AAAA,AAAA,CAAAH,gBAAAI;;AAAAA;;;;AAAA,CAAA,AAAA,4EAAA,WAAAG,UAAAC,jGAAWyB;;AAAX,AAAA,IAAA1B,gBAAA;AAAA,AAAA,SAAA,GAAA,CAAAC,cAAA,aAAA,EAAA,CAAA,AAAAD,8BAAA,AAAAC,6BAAA,AAAAC,6CAAA,AAAAF,uBAAA,AAAAC;;;AAAA,CAAA,AAAA,2EAAA,WAAAE,mBAAAC,zGAAWsB;;AAAX,AAAA,IAAAvB,yBAAA;AAAA,AAAA,GAAA,AAAAE,0BAAA,kCAAAD;AAAA,OAAAE,+CAAA,AAAAC,qBAAA,AAAAC,6CAAA,mCAAAL,wBAAAZ,eAAAa;;AAAA,4CAAAb,cAAA,AAAAkB,oBAAA,AAAAH,+CAAAtC,gBAAAoC,kBAAA,nJAAWsB;;;;AAAX,CAAA,AAAA,gGAAA,WAAAhB,mBAAA9C,9HAAW8D;;AAAX,AAAA,IAAAhB,yBAAA;AAAA,AAAA,OAAAL,0BAAArC,gBAAAJ;;;AAAA,CAAA,AAAA,kFAAA,WAAA+C,mBAAAC,gBAAA1B,hIAAWwC;;AAAX,AAAA,IAAAf,yBAAA;AAAA,AAAA,IAAAE,cAAAC;IAAAC,cAAAH;AAAA,AAAA,4CAAArB,cAAA,AAAAyB,8CAAAhD,gBAAA4C,gBAAA1B,UAAA,tIAAWwC;;;AAAX,CAAA,AAAA,4EAAA,WAAAT,vFAAWS;;AAAX,AAAA,IAAAT,yBAAA;AAAA,AAAA,OAAAC,cAAA,AAAAjC,+CAAA,iCAAAjB;;;AAAA,CAAA,AAAA,mFAAA,WAAAmD,mBAAAjC,jHAAWwC;;AAAX,AAAA,IAAAP,yBAAA;AAAA,AAAA,4CAAAjC,SAAAlB,gBAAAyB,zDAAWiC;;;AAAX,CAAA,AAAA,gFAAA,WAAAN,mBAAAC,9GAAWK;;AAAX,AAAA,IAAAN,yBAAA;AAAA,AAAA,GAAA,AAAAE,wBAAAD;AAAA,OAAAD,kEAAA,AAAAG,eAAAF,oBAAA,KAAA,AAAAE,eAAAF,oBAAA;;AAAA,OAAAjD,+CAAAoD,gBAAAJ,uBAAAC;;;;AAAA,CAAA,AAAA,yEAAAI,zEAAWC;;AAAX,CAAA,AAAA,oFAAA,pFAAWA,+FAEHlE,MAAKV;;AAFb,AAAA,gBAAA,ZAEQU;AAFR,AAEgB,yGAAA,zGAAC6E;;AAFjB,4FAAA,FAEiDvF;;;AAFjD,CAAA,AAAA4E,2CAAA;AAAA,AAAA,AAAA;;;AAAA,CAAA,AAAAA,iDAAA;;AAAA,CAAA,AAAAA,sDAAA,WAAAC;AAAA,AAAA,YAAAC,eAAA,KAAA,kCAAA,KAAA,IAAA;;;AAAA,CAAA,AAAAF,yDAAA,WAAAC,mBAAAE;AAAA,AAAA,OAAAC,iBAAAD,qBAAA;;;AAAA;;;uCAAA,vCAAWM;AAAX,AAAA,YAAAT,gCAAA,KAAA,KAAA;;;AAAA;;;0CAAA,kDAAAK,5FAAWK;AAAX,AAAA,IAAAJ,uBAAA,iBAAAC,WAAA,AAAA3B,+CAAAyB;AAAA,AAAA,GAAA,AAAAG,wBAAAH;AAAA,OAAAvB,6CAAA,mCAAAyB;;AAAAA;;;AAAA,AAAA,YAAAP,gCAAA,KAAA,AAAAjB,oBAAAuB,sBAAA;;;AAAAN;;;;;;;;;;;;;;;;;;;iDAImBa,SACXC;;;;;;;;;;;yHAPK1F;;;;wBAAAA;;;;;;;;;;;;;;;;;;gGAMMyF,EACXC;iDADWD,EACXC;;;;AADR,6BAAA,7BAAMF,kEAAaC;AAAnB,AACE,IAAMC,KAAG,AAACC,qBAAgB1F;IACpB2F,KAAG,iBAAAC,iBAAA,AAAA,2FAAA,AAAAC;IAAAC,gBAAA,AAAA,2FAAA,AAAAD;AAAA,AAAA,IAAAE,2BAAA,AAAA/E,4CAAA4E,eAA0BpF;AAA1B,AAAA,oBAAAuF;AAAA,AAAA,IAAAC,kBAAAD;AAAA,AAAA,AAAAE,0FAAAH,cAAA;mCAAAI;AAAA,AAAA,OAAAC,8CAAA/F,mBAAA4F,gBAAAE;;;IAAAA;;;;EAAAA;;oCAAAA;;;IAAAA;0BAAAA;;;;;mDAAA,qDAAA;;AAAA;;iDAFQV,EACXC,nDACG,YAAAW,0CAAAR,eAAAE,cAAA;;IAEHO,OAAK,GAAA,mFAAA,tFAACZ;IACNa,OAAK,gDAAA,hDAAKX;AAJhB,AAKE,IAAAY,oBAAAC;AAAA,AAAA,OAAAC,wBAAA,AAAAC,2BAAA,MAAA,WAAAC;AAAA,AAAA,OAAAF,wBAAA,AAAAC,2BAAA,iBAAAE,+CAAAJ;IAAAK,+CAAAN;AAAA,AAAA,CAAAC,2DAAAK;;AAAA,IAAA,AAAUR;UAAV,AAAA,CAAAG,2DAAAI;OAAA,WAAOM;AAAP,AAAA,OAAAT,wBAAA,AAAAC,2BAAA,iBAAAI,+CAAAN;IAAAO,+CAAAR;AAAA,AAAA,CAAAC,2DAAAO;;AAAA,IAAA,AACWT;UADX,AAAA,CAAAE,2DAAAM;OAAA,WACQK;AADR,AAAA,OAAAT,2BAAA,iBAAAM,+CAAAR;IAAAS,+CAAAV;AAAA,AAAA,CAAAC,2DAAAS;;AAAA,IAAA,AAEE,2DAAA,mFAAA,vIAACG,oMACKF,qDACAC;UAJR,AAAA,CAAAX,2DAAAQ;;;;;;AASJ,gCAAA,hCAAMK,wEAAWC,GAAGC;AAApB,QACMC,AACA,wBAAiBF,xBACjB,RACA,gDAAMC;;AAEZ,mCAAA,nCAAME,8EAAcF;AAApB,AACE,qCAAA,9BAACF,wCAAoBE;;AAEvB,oCAAA,pCAAMG,gFAAeJ,GAAGK;AAAxB,AACE,aAAA,mFAAA,gEAAA,mEAAA,qDAAA,8DAAA,oDAAA,uEAAA,7cAAMC;YAAN,mFAAA,uDAAA,mFAAA,rOACMC,uRAEQ,iBAAAC,qBAAA,0DAAAC;AAAA,AAAA,YAAAC,kBAAA,KAAA;AAAA,AAAA,IAAAD,eAAAA;;AAAA,AAAA,IAAAhC,qBAAA,AAAA5B,cAAA4D;AAAA,AAAA,GAAAhC;AAAA,AAAA,IAAAgC,eAAAhC;AAAA,AAAA,GAAA,AAAAkC,6BAAAF;AAAA,IAAAG,kBAg6EmC,AAAAoD,sBAAAvD;IAh6EnCI,qBAAA,AAAAvF,gBAAAsF;IAAAE,WAAA,AAAAC,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAG,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAH;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAI,nCAAMS;AAAN,AAAA,AAAA,AAAAR,uBAAAH,SAAA,mFAAA,iDAAqBW;;AAArB,eAAA,CAAAT,WAAA;;;;AAAA;;;;;AAAA,OAAAE,qBAAA,AAAAC,gBAAAL,UAAA,AAAAM,gDAAA,AAAAC,qBAAAZ;;AAAA,OAAAS,qBAAA,AAAAC,gBAAAL,UAAA;;;AAAA,QAAA,AAAAQ,gBAAAb,pBAAMgB;AAAN,AAAA,OAAAF,eAAA,mFAAA,2DAAA,AAAAH,gDAAA,AAAAI,eAAAf,zEAAqBgB;;;AAArB;;;;GAAA,KAAA;;AAAA,AAAA,OAAAjB,mBAAQF;;YAHtB,mFAAA,3FAIMoB,iJACO,iBAAAlB,qBAAA,0DAAAmB;AAAA,AAAA,YAAAjB,kBAAA,KAAA;AAAA,AAAA,IAAAiB,eAAAA;;AAAA,AAAA,IAAAlD,qBAAA,AAAA5B,cAAA8E;AAAA,AAAA,GAAAlD;AAAA,AAAA,IAAAkD,eAAAlD;AAAA,AAAA,GAAA,AAAAkC,6BAAAgB;AAAA,IAAAf,kBA85EoC,AAAAoD,sBAAArC;IA95EpCd,qBAAA,AAAAvF,gBAAAsF;IAAAgB,WAAA,AAAAb,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAgB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAhB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAAiB,nCAAME;AAAN,AAAA,AAAA,AAAAd,uBAAAW,SAAA,mFAAA,kDAEG,iBAAApB,qBAAA;+EAAAwB;AAAA,AAAA,YAAAtB,kBAAA,KAAA;;AAAA,AAAA,IAAAsB,eAAAA;;AAAA,AAAA,IAAAvD,yBAAA,AAAA5B,cAAAmF;AAAA,AAAA,GAAAvD;AAAA,AAAA,IAAAuD,eAAAvD;AAAA,AAAA,GAAA,AAAAkC,6BAAAqB;AAAA,IAAApB,sBA45EiC,AAAAoD,sBAAAhC;IA55EjCnB,yBAAA,AAAAvF,gBAAAsF;IAAAqB,WAAA,AAAAlB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAqB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAArB;AAAA,QAAA,AAAA3D,eAAA0D,oBAAAsB,vCAAMT;AAAN,AAAA,AAAA,AAAAR,uBAAAgB,SAAA,mFAAA,iDACO,AAACO,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAS,WAAA;;;;AAAA;;;;;AAAA,OAAAhB,qBAAA,AAAAC,gBAAAc,UAAA,AAAAE,8DAAA,AAAAd,qBAAAW;;AAAA,OAAAd,qBAAA,AAAAC,gBAAAc,UAAA;;;AAAA,QAAA,AAAAX,gBAAAU,pBAAMP;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAY,8DAAA,AAAAX,eAAAQ,pPACO,AAACQ,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;;CAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;;;AAFX,eAAA,CAAAuB,WAAA;;;;AAAA;;;;;AAAA,OAAAX,qBAAA,AAAAC,gBAAAS,UAAA,AAAAE,gDAAA,AAAAT,qBAAAM;;AAAA,OAAAT,qBAAA,AAAAC,gBAAAS,UAAA;;;AAAA,QAAA,AAAAN,gBAAAK,pBAAMI;AAAN,AAAA,OAAAR,eAAA,mFAAA,kDAEG,iBAAAf,qBAAA;+EAAA4B;AAAA,AAAA,YAAA1B,kBAAA,KAAA;AAAA,AAAA,IAAA0B,eAAAA;;AAAA,AAAA,IAAA3D,yBAAA,AAAA5B,cAAAuF;AAAA,AAAA,GAAA3D;AAAA,AAAA,IAAA2D,eAAA3D;AAAA,AAAA,GAAA,AAAAkC,6BAAAyB;AAAA,IAAAxB,kBA45EiC,AAAAoD,sBAAA5B;IA55EjCvB,qBAAA,AAAAvF,gBAAAsF;IAAAyB,WAAA,AAAAtB,uBAAAF;AAAA,AAAA,GAAA,AAAA,iBAAAyB,WAAA;;AAAA,AAAA,GAAA,CAAAA,WAAAzB;AAAA,QAAA,AAAA3D,eAAA0D,gBAAA0B,nCAAMb;AAAN,AAAA,AAAA,AAAAR,uBAAAoB,SAAA,mFAAA,iDACO,AAACG,wGAAO,AAAC9I,4CAAIqI,EAAEN;;AADtB,eAAA,CAAAa,WAAA;;;;AAAA;;;;;AAAA,OAAApB,qBAAA,AAAAC,gBAAAkB,UAAA,AAAAE,8DAAA,AAAAlB,qBAAAe;;AAAA,OAAAlB,qBAAA,AAAAC,gBAAAkB,UAAA;;;AAAA,QAAA,AAAAf,gBAAAc,pBAAMX;AAAN,AAAA,OAAAF,eAAA,mFAAA,wNAAA,AAAAgB,8DAAA,AAAAf,eAAAY,pPACO,AAACI,wGAAO,AAAC9I,4CAAIqI,EAAEN;;;AADtB;;;;GAAA,KAAA;;;AAAA,AAAA,OAAAjB,mBAAQF;aAFX,AAAAwB,gDAAA,AAAAN,eAAAG;;;AAAA;;;;GAAA,KAAA;;AAAA,AAAA,OAAAnB,mBAAQH;;IAIfoC,MAAM,CAAA,SAAA,iBAAA,gDAAA,AAAAC,gFAAA,AAAAA,oCAAA,xFAEGnC,gFACAmB;AAZf,AAaE,OAAC3B,8BAAUC,GAAGyC;;AAElB,qCAAA,rCAAME,kFAAgBC,OAAOC;AAA7B,AACE,IAAMC,cAAQ,AAACC,qCAAgC,AAAA,qFAAQH,QAAQC;AAA/D,AACE,kCAAA,lCAACzC,2CAAuB0C;;AACxB,OAACE,cAAiB,AAACC,qBAAQ,AAACC,6CAAKD,qBAAQH;;AAI7C,sBAAA,tBAAMK;AAAN,AACE,IAAMP,SAAO,4HAAA,4DAAA,IAAA,0EAAA,tQAACQ;IACRC,MAAO,sGAAA,mFAAA,8DAAA,mEAAA,WAAA,6DAAA,lYAACC,oEAA0BV,OAAO3E,uWACK/E,4BAAa,AAAC4E;AAFlE,yDAMM,iBAAAyF,oBAAArE,9FAKA,OAAC4E;uDANDT,vDACA,AAAA,OAAAG,oDAAA,WAAAC;AAAA,AAAA,IAAAC,+CAAAxE;IAAAyE,+CAAAJ;AAAA,AAAA,CAAArE,2DAAAyE;;AAAA,IAAA,AAAA,OAAO,WAAK5B;AAAL,AACG,YAAA,ZAAC6B,kBAAqB,AAACX,qBAAQlB;;AAC/B,AAAC5B,iCAAa,AAAC0D,yGAAQ9B;;AACvB,iDAAA,1CAACY,mCAAeC;GAH1Ba;UAAA,AAAA,CAAAvE,2DAAAwE;;KAKS,WAAK3B;AAAL,AACE,cAAA,dAACgC,sBAAyBhC;;AAC1B,OAAC5B,iCAAa,AAAC0D,yGAAQ9B;;;AAE1C","names":["intemporal.doc/nested-fn","a","intemporal.doc/activity-fn","intemporal$doc$MyActivities$foo$dyn","x__5373__auto__","m__5374__auto__","intemporal.doc/foo","goog/typeOf","m__5372__auto__","cljs.core/missing-protocol","intemporal.doc/MyActivities","this","this__5323__auto__","k__5324__auto__","this__5325__auto__","k75672","else__5326__auto__","G__75688","cljs.core.get","__extmap","this__5343__auto__","f__5344__auto__","init__5345__auto__","cljs.core.reduce","ret__5346__auto__","p__75693","vec__75694","k__5347__auto__","cljs.core.nth","v__5348__auto__","this__5338__auto__","writer__5339__auto__","opts__5340__auto__","pr-pair__5341__auto__","keyval__5342__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","G__75671","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5321__auto__","__meta","this__5318__auto__","__hash","this__5327__auto__","cljs.core/count","this__5319__auto__","h__5134__auto__","coll__5320__auto__","cljs.core/hash-unordered-coll","this75673","other75674","cljs.core._EQ_","this__5333__auto__","k__5334__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__5330__auto__","this__5331__auto__","k__5332__auto__","pred__75721","cljs.core/keyword-identical?","expr__75722","cljs.core.assoc","this__5336__auto__","cljs.core/seq","this__5322__auto__","this__5328__auto__","entry__5329__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs.core/PROTOCOL_SENTINEL","intemporal.doc/MyActivitiesImpl","this__5369__auto__","cljs.core/List","writer__5370__auto__","cljs.core/-write","G__75680","extmap__5365__auto__","G__75739","cljs.core/record?","intemporal.doc/->MyActivitiesImpl","intemporal.doc/map->MyActivitiesImpl","cljs.core.println","intemporal.doc/my-workflow","i","sf","intemporal.core/stub","pr","protocols75745","intemporal.internal.context/current-context","registry75746","temp__5825__auto__","impl75747","intemporal.internal.activity.register_activity_BANG_","args__71479__auto__","cljs.core.apply","intemporal.doc/t_intemporal$doc75753","sres","pres","workflow-ctx75762","intemporal.internal.context/*workflow-context*","promesa.protocols/-mcat","promesa.protocols/-promise","___30238__auto__","*workflow-context*-orig-val__75765","*workflow-context*-temp-val__75766","*workflow-context*-orig-val__75767","*workflow-context*-temp-val__75768","*workflow-context*-orig-val__75770","*workflow-context*-temp-val__75771","v1","v2","cljs.core.conj","intemporal.doc/set-html!","id","html","js/document","intemporal.doc/set-results!","intemporal.doc/render-table!","rows","header","thead","iter__5503__auto__","s__75773","cljs.core/LazySeq","cljs.core/chunked-seq?","c__5501__auto__","size__5502__auto__","b__75775","cljs.core/chunk-buffer","i__75774","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__75772","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","h","tbody","s__75777","b__75779","i__75778","iter__75776","r","s__75784","b__75786","i__75785","iter__75783","s__75788","b__75790","i__75789","iter__75787","cljs.core.pr_str","tbl","hiccups.runtime/render-html","intemporal.doc/render-tables!","engine","wf-id","history","intemporal.core/get-workflow-history","js/console.table","cljs.core/clj->js","cljs.core.mapv","intemporal.doc/init","intemporal.core.make_workflow_engine","res","intemporal.core.start_workflow","workflow-ctx75802","promesa.core.then","res__75154__auto__","*workflow-context*-orig-val__75803","*workflow-context*-temp-val__75804","js/console.log","cljs.core.prn_str","promesa.core.catch$","js/console.error","cljs.core/chunk-first"],"sourcesContent":["(ns intemporal.doc\n (:require [intemporal.core :as intemporal]\n [promesa.core :as p]\n [hiccups.runtime :as hiccupsrt])\n (:require-macros [hiccups.core :as hiccups :refer [html]]\n [intemporal.core :refer [stub-protocol]]\n [intemporal.internal.context :refer [blet bthen]]))\n;;;;\n;; main code\n\n(defn nested-fn [a]\n [a :nested])\n\n(defn activity-fn [a]\n 1\n #_(let [f (intemporal/stub nested-fn)]\n (f :sub)))\n\n(defprotocol MyActivities\n (foo [this a]))\n\n(defrecord MyActivitiesImpl []\n MyActivities\n (foo [this a] (println \"record was called:\" ) [a :child]))\n\n(defn my-workflow [i]\n (let [sf (intemporal/stub activity-fn)\n pr (intemporal/stub-protocol MyActivities)\n\n sres (sf [1])\n pres (foo pr :X)]\n (blet [v1 sres\n v2 pres]\n (conj [:root]\n v1\n v2))))\n\n;;;;\n;; workflow registration\n\n(defn set-html! [id html]\n (-> js/document\n (.getElementById id)\n (.-innerHTML)\n (set! html)))\n\n(defn set-results! [html]\n (set-html! \"results\" html))\n\n(defn render-table! [id rows]\n (let [header [:event-type :workflow-id :args :timestamp :seq :activity-name :result]\n thead [:thead\n [:tr\n (for [h header] [:td h])]]\n tbody [:tbody\n (for [r rows]\n [:tr ;{:class (get r :type)}\n (for [h header]\n [:td (pr-str (get r h))])])]\n tbl (html\n [:table {:role \"grid\"}\n thead\n tbody])]\n (set-html! id tbl)))\n\n(defn render-tables! [engine wf-id]\n (let [history (intemporal/get-workflow-history (:store engine) wf-id)]\n (render-table! \"events\" history)\n (js/console.table (clj->js (mapv clj->js history)))))\n\n;;;;\n;; bootstrap\n(defn init []\n (let [engine (intemporal/make-workflow-engine :threads 4 :enable-logging true)\n res (intemporal/start-workflow engine my-workflow [1] :workflow-id \"my-wflow\"\n :protocols {MyActivities (->MyActivitiesImpl)})]\n\n ;; set-results!\n (-> res\n (bthen (fn [r]\n (js/console.log \"res\" (clj->js r))\n (set-results! (prn-str r))\n (render-tables! engine \"my-wflow\")))\n\n (p/catch (fn [r]\n (js/console.error \"error\" r)\n (set-results! (prn-str r)))))))\n\n(comment\n (require '[shadow.cljs.devtools.api :as shadow])\n (require '[shadow.cljs.devtools.server :as server])\n (server/start!)\n (shadow/watch :doc)\n (shadow/browser-repl :doc)\n \"\")\n"]} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 93bb431..7658386 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,2 +1,2 @@ -SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_70366 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_70366(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k70215,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__70220 \x3d k70215;\nswitch (G__70220) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70215,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70221){\nvar vec__70222 \x3d p__70221;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70222,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__70214){\nvar self__ \x3d this;\nvar G__70214__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__70214__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this70216,other70217){\nvar self__ \x3d this;\nvar this70216__$1 \x3d this;\nreturn (((!((other70217 \x3d\x3d null)))) \x26\x26 ((((this70216__$1.constructor \x3d\x3d\x3d other70217.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70216__$1.__extmap,other70217.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k70215){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k70215);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__70214){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__70257 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__70258 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70214),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__70214){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__70214,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__70218){\nvar extmap__5365__auto__ \x3d (function (){var G__70279 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__70218);\nif(cljs.core.record_QMARK_(G__70218)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70279);\n} else {\nreturn G__70279;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc70286 \x3d (function (i,sf,protocols70280,registry70281,meta70287){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols70280 \x3d protocols70280;\nthis.registry70281 \x3d registry70281;\nthis.meta70287 \x3d meta70287;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_70288,meta70287__$1){\nvar self__ \x3d this;\nvar _70288__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc70286(self__.i,self__.sf,self__.protocols70280,self__.registry70281,meta70287__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc70286.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_70288){\nvar self__ \x3d this;\nvar _70288__$1 \x3d this;\nreturn self__.meta70287;\n}));\n\n(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc70286.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__38237__auto__,a){\nvar self__ \x3d this;\nvar this__38237__auto____$1 \x3d this;\nvar f__38238__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__38238__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc70286.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols70280\x22,\x22protocols70280\x22,1546016350,null),new cljs.core.Symbol(null,\x22registry70281\x22,\x22registry70281\x22,473331259,null),new cljs.core.Symbol(null,\x22meta70287\x22,\x22meta70287\x22,793116919,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc70286\x22);\n\n(intemporal.doc.t_intemporal$doc70286.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc70286\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc70286.\n */\nintemporal.doc.__GT_t_intemporal$doc70286 \x3d (function intemporal$doc$__GT_t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287){\nreturn (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,meta70287));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols70280 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry70281 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___70368 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols70280,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___70368)){\nvar impl70282_70369 \x3d temp__5825__auto___70368;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry70281,(function() { \nvar G__70370__delegate \x3d function (args__38236__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl70282_70369,args__38236__auto__);\n};\nvar G__70370 \x3d function (var_args){\nvar args__38236__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__70371__i \x3d 0, G__70371__a \x3d new Array(arguments.length - 0);\nwhile (G__70371__i \x3c G__70371__a.length) {G__70371__a[G__70371__i] \x3d arguments[G__70371__i + 0]; ++G__70371__i;}\n args__38236__auto__ \x3d new cljs.core.IndexedSeq(G__70371__a,0,null);\n} \nreturn G__70370__delegate.call(this,args__38236__auto__);};\nG__70370.cljs$lang$maxFixedArity \x3d 0;\nG__70370.cljs$lang$applyTo \x3d (function (arglist__70372){\nvar args__38236__auto__ \x3d cljs.core.seq(arglist__70372);\nreturn G__70370__delegate(args__38236__auto__);\n});\nG__70370.cljs$core$IFn$_invoke$arity$variadic \x3d G__70370__delegate;\nreturn G__70370;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc70286(i,sf,protocols70280,registry70281,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx70299 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70300 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70301 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70301);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70300);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70302 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70303 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70303);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70302);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__70304 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70305 \x3d workflow_ctx70299;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70305);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70304);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__70318(s__70319){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70319__$1 \x3d s__70319;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70319__$1);\nif(temp__5825__auto__){\nvar s__70319__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70319__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70319__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70321 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70320 \x3d (0);\nwhile(true){\nif((i__70320 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70320);\ncljs.core.chunk_append(b__70321,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__70373 \x3d (i__70320 + (1));\ni__70320 \x3d G__70373;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70321),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.chunk_rest(s__70319__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70321),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70319__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__70318(cljs.core.rest(s__70319__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__70328(s__70329){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70329__$1 \x3d s__70329;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__70329__$1);\nif(temp__5825__auto__){\nvar s__70329__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__70329__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70329__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70331 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70330 \x3d (0);\nwhile(true){\nif((i__70330 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__70330);\ncljs.core.chunk_append(b__70331,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(s__70340){\nreturn (new cljs.core.LazySeq(null,((function (i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__70340__$1 \x3d s__70340;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70340__$1);\nif(temp__5825__auto____$1){\nvar s__70340__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70340__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__70340__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__70342 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__70341 \x3d (0);\nwhile(true){\nif((i__70341 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__70341);\ncljs.core.chunk_append(b__70342,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70374 \x3d (i__70341 + (1));\ni__70341 \x3d G__70374;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70342),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.chunk_rest(s__70340__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70342),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70340__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70339(cljs.core.rest(s__70340__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__70330,r,c__5501__auto__,size__5502__auto__,b__70331,s__70329__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__70375 \x3d (i__70330 + (1));\ni__70330 \x3d G__70375;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70331),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.chunk_rest(s__70329__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70331),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__70329__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__70329__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(s__70351){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__70351__$1 \x3d s__70351;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__70351__$1);\nif(temp__5825__auto____$1){\nvar s__70351__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__70351__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__70351__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__70353 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__70352 \x3d (0);\nwhile(true){\nif((i__70352 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__70352);\ncljs.core.chunk_append(b__70353,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__70376 \x3d (i__70352 + (1));\ni__70352 \x3d G__70376;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70353),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.chunk_rest(s__70351__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__70353),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__70351__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__70328_$_iter__70350(cljs.core.rest(s__70351__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__70329__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__70328(cljs.core.rest(s__70329__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx70363 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__70364 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__70365 \x3d workflow_ctx70363;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__70365);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__70364);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.doc.js", true, "goog.provide(\x27intemporal.doc\x27);\nintemporal.doc.nested_fn \x3d (function intemporal$doc$nested_fn(a){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22nested\x22,\x22nested\x22,18943849)], null);\n});\nintemporal.doc.activity_fn \x3d (function intemporal$doc$activity_fn(a){\nreturn (1);\n});\n\n/**\n * @interface\n */\nintemporal.doc.MyActivities \x3d function(){};\n\nvar intemporal$doc$MyActivities$foo$dyn_75815 \x3d (function (this$,a){\nvar x__5373__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5374__auto__ \x3d (intemporal.doc.foo[goog.typeOf(x__5373__auto__)]);\nif((!((m__5374__auto__ \x3d\x3d null)))){\nreturn (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5374__auto__.call(null,this$,a));\n} else {\nvar m__5372__auto__ \x3d (intemporal.doc.foo[\x22_\x22]);\nif((!((m__5372__auto__ \x3d\x3d null)))){\nreturn (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5372__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22MyActivities.foo\x22,this$);\n}\n}\n});\nintemporal.doc.foo \x3d (function intemporal$doc$foo(this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.intemporal$doc$MyActivities$foo$arity$2 \x3d\x3d null)))))){\nreturn this$.intemporal$doc$MyActivities$foo$arity$2(this$,a);\n} else {\nreturn intemporal$doc$MyActivities$foo$dyn_75815(this$,a);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.doc.MyActivitiesImpl \x3d (function (__meta,__extmap,__hash){\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k75672,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__75688 \x3d k75672;\nswitch (G__75688) {\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k75672,else__5326__auto__);\n\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__75693){\nvar vec__75694 \x3d p__75693;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75694,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75694,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.doc.MyActivitiesImpl{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__75671){\nvar self__ \x3d this;\nvar G__75671__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__75671__$1,0,cljs.core.PersistentVector.EMPTY,(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (0 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1767160363 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this75673,other75674){\nvar self__ \x3d this;\nvar this75673__$1 \x3d this;\nreturn (((!((other75674 \x3d\x3d null)))) \x26\x26 ((((this75673__$1.constructor \x3d\x3d\x3d other75674.constructor)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this75673__$1.__extmap,other75674.__extmap)))));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(cljs.core.PersistentHashSet.EMPTY,k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k75672){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nreturn cljs.core.contains_QMARK_(self__.__extmap,k75672);\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__75671){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__75721 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__75722 \x3d k__5332__auto__;\nreturn (new intemporal.doc.MyActivitiesImpl(self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__75671),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,self__.__extmap));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__75671){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.doc.MyActivitiesImpl(G__75671,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.MyActivitiesImpl.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this$,a){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22record was called:\x22], 0));\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,new cljs.core.Keyword(null,\x22child\x22,\x22child\x22,623967545)], null);\n}));\n\n(intemporal.doc.MyActivitiesImpl.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$type \x3d true);\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.doc/MyActivitiesImpl\x22,null,(1),null));\n}));\n\n(intemporal.doc.MyActivitiesImpl.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.doc/MyActivitiesImpl\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/MyActivitiesImpl.\n */\nintemporal.doc.__GT_MyActivitiesImpl \x3d (function intemporal$doc$__GT_MyActivitiesImpl(){\nreturn (new intemporal.doc.MyActivitiesImpl(null,null,null));\n});\n\n/**\n * Factory function for intemporal.doc/MyActivitiesImpl, taking a map of keywords to field values.\n */\nintemporal.doc.map__GT_MyActivitiesImpl \x3d (function intemporal$doc$map__GT_MyActivitiesImpl(G__75680){\nvar extmap__5365__auto__ \x3d (function (){var G__75739 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(G__75680);\nif(cljs.core.record_QMARK_(G__75680)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__75739);\n} else {\nreturn G__75739;\n}\n})();\nreturn (new intemporal.doc.MyActivitiesImpl(null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {intemporal.doc.MyActivities}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.doc.t_intemporal$doc75753 \x3d (function (i,sf,protocols75745,registry75746,meta75754){\nthis.i \x3d i;\nthis.sf \x3d sf;\nthis.protocols75745 \x3d protocols75745;\nthis.registry75746 \x3d registry75746;\nthis.meta75754 \x3d meta75754;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.doc.t_intemporal$doc75753.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_75755,meta75754__$1){\nvar self__ \x3d this;\nvar _75755__$1 \x3d this;\nreturn (new intemporal.doc.t_intemporal$doc75753(self__.i,self__.sf,self__.protocols75745,self__.registry75746,meta75754__$1));\n}));\n\n(intemporal.doc.t_intemporal$doc75753.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_75755){\nvar self__ \x3d this;\nvar _75755__$1 \x3d this;\nreturn self__.meta75754;\n}));\n\n(intemporal.doc.t_intemporal$doc75753.prototype.intemporal$doc$MyActivities$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.doc.t_intemporal$doc75753.prototype.intemporal$doc$MyActivities$foo$arity$2 \x3d (function (this__71480__auto__,a){\nvar self__ \x3d this;\nvar this__71480__auto____$1 \x3d this;\nvar f__71481__auto__ \x3d intemporal.core.stub(new cljs.core.Var(function(){return intemporal.doc.foo;},new cljs.core.Symbol(\x22intemporal.doc\x22,\x22foo\x22,\x22intemporal.doc/foo\x22,778009994,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[new cljs.core.Symbol(\x22intemporal.doc\x22,\x22MyActivities\x22,\x22intemporal.doc/MyActivities\x22,-1471127805,null),new cljs.core.Symbol(null,\x22intemporal.doc\x22,\x22intemporal.doc\x22,-889985538,null),new cljs.core.Symbol(null,\x22foo\x22,\x22foo\x22,-1385541733,null),\x22intemporal/doc.cljs\x22,7,1,19,20,cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22this\x22,\x22this\x22,1028897902,null),new cljs.core.Symbol(null,\x22a\x22,\x22a\x22,-482876059,null)], null)),null,(cljs.core.truth_(intemporal.doc.foo)?intemporal.doc.foo.cljs$lang$test:null)])));\nreturn f__71481__auto__(a);\n}));\n\n(intemporal.doc.t_intemporal$doc75753.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22sf\x22,\x22sf\x22,-308960211,null),new cljs.core.Symbol(null,\x22protocols75745\x22,\x22protocols75745\x22,-223572470,null),new cljs.core.Symbol(null,\x22registry75746\x22,\x22registry75746\x22,2111238098,null),new cljs.core.Symbol(null,\x22meta75754\x22,\x22meta75754\x22,1754897619,null)], null);\n}));\n\n(intemporal.doc.t_intemporal$doc75753.cljs$lang$type \x3d true);\n\n(intemporal.doc.t_intemporal$doc75753.cljs$lang$ctorStr \x3d \x22intemporal.doc/t_intemporal$doc75753\x22);\n\n(intemporal.doc.t_intemporal$doc75753.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.doc/t_intemporal$doc75753\x22);\n}));\n\n/**\n * Positional factory function for intemporal.doc/t_intemporal$doc75753.\n */\nintemporal.doc.__GT_t_intemporal$doc75753 \x3d (function intemporal$doc$__GT_t_intemporal$doc75753(i,sf,protocols75745,registry75746,meta75754){\nreturn (new intemporal.doc.t_intemporal$doc75753(i,sf,protocols75745,registry75746,meta75754));\n});\n\n\nintemporal.doc.my_workflow \x3d (function intemporal$doc$my_workflow(i){\nvar sf \x3d intemporal.core.stub(intemporal.doc.activity_fn);\nvar pr \x3d (function (){var protocols75745 \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar registry75746 \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nvar temp__5825__auto___75824 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(protocols75745,intemporal.doc.MyActivities);\nif(cljs.core.truth_(temp__5825__auto___75824)){\nvar impl75747_75825 \x3d temp__5825__auto___75824;\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry75746,(function() { \nvar G__75826__delegate \x3d function (args__71479__auto__){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(intemporal.doc.foo,impl75747_75825,args__71479__auto__);\n};\nvar G__75826 \x3d function (var_args){\nvar args__71479__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__75827__i \x3d 0, G__75827__a \x3d new Array(arguments.length - 0);\nwhile (G__75827__i \x3c G__75827__a.length) {G__75827__a[G__75827__i] \x3d arguments[G__75827__i + 0]; ++G__75827__i;}\n args__71479__auto__ \x3d new cljs.core.IndexedSeq(G__75827__a,0,null);\n} \nreturn G__75826__delegate.call(this,args__71479__auto__);};\nG__75826.cljs$lang$maxFixedArity \x3d 0;\nG__75826.cljs$lang$applyTo \x3d (function (arglist__75828){\nvar args__71479__auto__ \x3d cljs.core.seq(arglist__75828);\nreturn G__75826__delegate(args__71479__auto__);\n});\nG__75826.cljs$core$IFn$_invoke$arity$variadic \x3d G__75826__delegate;\nreturn G__75826;\n})()\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),\x22intemporal.doc/foo\x22], 0));\n} else {\n}\n\nreturn (new intemporal.doc.t_intemporal$doc75753(i,sf,protocols75745,registry75746,null));\n})();\nvar sres \x3d sf(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null));\nvar pres \x3d pr.intemporal$doc$MyActivities$foo$arity$2(null,new cljs.core.Keyword(null,\x22X\x22,\x22X\x22,1705996313));\nvar workflow_ctx75762 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75765 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75766 \x3d workflow_ctx75762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75766);\n\ntry{return sres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75765);\n}})()),(function (v1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75767 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75768 \x3d workflow_ctx75762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75768);\n\ntry{return pres;\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75767);\n}})()),(function (v2){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75770 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75771 \x3d workflow_ctx75762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75771);\n\ntry{return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root\x22,\x22root\x22,-448657453)], null),v1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v2], 0));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75770);\n}})());\n}));\n}));\n}));\n});\nintemporal.doc.set_html_BANG_ \x3d (function intemporal$doc$set_html_BANG_(id,html){\nreturn (document.getElementById(id).innerHTML \x3d html);\n});\nintemporal.doc.set_results_BANG_ \x3d (function intemporal$doc$set_results_BANG_(html){\nreturn intemporal.doc.set_html_BANG_(\x22results\x22,html);\n});\nintemporal.doc.render_table_BANG_ \x3d (function intemporal$doc$render_table_BANG_(id,rows){\nvar header \x3d new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211)], null);\nvar thead \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22thead\x22,\x22thead\x22,-291875296),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__75772(s__75773){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75773__$1 \x3d s__75773;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__75773__$1);\nif(temp__5825__auto__){\nvar s__75773__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__75773__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75773__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75775 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75774 \x3d (0);\nwhile(true){\nif((i__75774 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__75774);\ncljs.core.chunk_append(b__75775,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null));\n\nvar G__75832 \x3d (i__75774 + (1));\ni__75774 \x3d G__75832;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75775),intemporal$doc$render_table_BANG__$_iter__75772(cljs.core.chunk_rest(s__75773__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75775),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75773__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),h], null),intemporal$doc$render_table_BANG__$_iter__75772(cljs.core.rest(s__75773__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(header);\n})()], null)], null);\nvar tbody \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tbody\x22,\x22tbody\x22,-80678300),(function (){var iter__5503__auto__ \x3d (function intemporal$doc$render_table_BANG__$_iter__75776(s__75777){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75777__$1 \x3d s__75777;\nwhile(true){\nvar temp__5825__auto__ \x3d cljs.core.seq(s__75777__$1);\nif(temp__5825__auto__){\nvar s__75777__$2 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__75777__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75777__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75779 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75778 \x3d (0);\nwhile(true){\nif((i__75778 \x3c size__5502__auto__)){\nvar r \x3d cljs.core._nth(c__5501__auto__,i__75778);\ncljs.core.chunk_append(b__75779,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(s__75784){\nreturn (new cljs.core.LazySeq(null,((function (i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead){\nreturn (function (){\nvar s__75784__$1 \x3d s__75784;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__75784__$1);\nif(temp__5825__auto____$1){\nvar s__75784__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__75784__$2)){\nvar c__5501__auto____$1 \x3d cljs.core.chunk_first(s__75784__$2);\nvar size__5502__auto____$1 \x3d cljs.core.count(c__5501__auto____$1);\nvar b__75786 \x3d cljs.core.chunk_buffer(size__5502__auto____$1);\nif((function (){var i__75785 \x3d (0);\nwhile(true){\nif((i__75785 \x3c size__5502__auto____$1)){\nvar h \x3d cljs.core._nth(c__5501__auto____$1,i__75785);\ncljs.core.chunk_append(b__75786,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__75834 \x3d (i__75785 + (1));\ni__75785 \x3d G__75834;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75786),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(cljs.core.chunk_rest(s__75784__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75786),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75784__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75783(cljs.core.rest(s__75784__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead))\n,null,null));\n});})(i__75778,r,c__5501__auto__,size__5502__auto__,b__75779,s__75777__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null));\n\nvar G__75835 \x3d (i__75778 + (1));\ni__75778 \x3d G__75835;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75779),intemporal$doc$render_table_BANG__$_iter__75776(cljs.core.chunk_rest(s__75777__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75779),null);\n}\n} else {\nvar r \x3d cljs.core.first(s__75777__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),(function (){var iter__5503__auto__ \x3d ((function (r,s__75777__$2,temp__5825__auto__,header,thead){\nreturn (function intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(s__75788){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__75788__$1 \x3d s__75788;\nwhile(true){\nvar temp__5825__auto____$1 \x3d cljs.core.seq(s__75788__$1);\nif(temp__5825__auto____$1){\nvar s__75788__$2 \x3d temp__5825__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__75788__$2)){\nvar c__5501__auto__ \x3d cljs.core.chunk_first(s__75788__$2);\nvar size__5502__auto__ \x3d cljs.core.count(c__5501__auto__);\nvar b__75790 \x3d cljs.core.chunk_buffer(size__5502__auto__);\nif((function (){var i__75789 \x3d (0);\nwhile(true){\nif((i__75789 \x3c size__5502__auto__)){\nvar h \x3d cljs.core._nth(c__5501__auto__,i__75789);\ncljs.core.chunk_append(b__75790,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null));\n\nvar G__75841 \x3d (i__75789 + (1));\ni__75789 \x3d G__75841;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75790),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(cljs.core.chunk_rest(s__75788__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__75790),null);\n}\n} else {\nvar h \x3d cljs.core.first(s__75788__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get.cljs$core$IFn$_invoke$arity$2(r,h)], 0))], null),intemporal$doc$render_table_BANG__$_iter__75776_$_iter__75787(cljs.core.rest(s__75788__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});})(r,s__75777__$2,temp__5825__auto__,header,thead))\n;\nreturn iter__5503__auto__(header);\n})()], null),intemporal$doc$render_table_BANG__$_iter__75776(cljs.core.rest(s__75777__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5503__auto__(rows);\n})()], null);\nvar tbl \x3d [\x22\x3ctable\x22,\x22 role\x3d\\\x22grid\\\x22\x22,\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(thead)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_html(tbody)),\x22\x3c/table\x3e\x22].join(\x27\x27);\nreturn intemporal.doc.set_html_BANG_(id,tbl);\n});\nintemporal.doc.render_tables_BANG_ \x3d (function intemporal$doc$render_tables_BANG_(engine,wf_id){\nvar history__$1 \x3d intemporal.core.get_workflow_history(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(engine),wf_id);\nintemporal.doc.render_table_BANG_(\x22events\x22,history__$1);\n\nreturn console.table(cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.clj__GT_js,history__$1)));\n});\nintemporal.doc.init \x3d (function intemporal$doc$init(){\nvar engine \x3d intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4),new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),true], 0));\nvar res \x3d intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic(engine,intemporal.doc.my_workflow,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),\x22my-wflow\x22,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),cljs.core.PersistentArrayMap.createAsIfByAssoc([intemporal.doc.MyActivities,intemporal.doc.__GT_MyActivitiesImpl()])], 0));\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx75802 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(res,(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__75803 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75804 \x3d workflow_ctx75802;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75804);\n\ntry{return (function (r){\nconsole.log(\x22res\x22,cljs.core.clj__GT_js(r));\n\nintemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n\nreturn intemporal.doc.render_tables_BANG_(engine,\x22my-wflow\x22);\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75803);\n}}));\n})(),(function (r){\nconsole.error(\x22error\x22,r);\n\nreturn intemporal.doc.set_results_BANG_(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([r], 0)));\n}));\n});\n"); SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { intemporal.doc.init(); } catch (e) { console.error(\x22An error occurred when calling (intemporal.doc/init)\x22); console.error(e); };\nSHADOW_ENV.setLoaded(\x22intemporal.doc.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.main.append.js\x22);"); \ No newline at end of file diff --git a/public/js/shared.js b/public/js/shared.js index d5f5cc2..3844c45 100644 --- a/public/js/shared.js +++ b/public/js/shared.js @@ -1543,7 +1543,7 @@ SHADOW_ENV.evalLoad("promesa.impl.promise.js", true, "goog.provide(\x22promesa.i SHADOW_ENV.evalLoad("promesa.exec.js", true, "goog.provide(\x27promesa.exec\x27);\ngoog.scope(function(){\n promesa.exec.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\npromesa.exec._STAR_default_scheduler_STAR_ \x3d null;\npromesa.exec._STAR_default_executor_STAR_ \x3d null;\n/**\n * Var that indicates the availability of virtual threads.\n */\npromesa.exec.virtual_threads_available_QMARK_ \x3d false;\n/**\n * backward compatibility alias for `virtual-threads-available?`\n */\npromesa.exec.vthread_supported_QMARK_ \x3d promesa.exec.virtual_threads_available_QMARK_;\npromesa.exec.noop \x3d cljs.core.constantly(null);\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_scheduler !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default scheduled executor instance.\n */\npromesa.exec.default_scheduler \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.scheduled_executor.call(null));\n}),null));\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Default executor instance, ForkJoinPool/commonPool in JVM, MicrotaskExecutor on JS.\n */\npromesa.exec.default_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.microtask_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.microtask_executor.call(null));\n}),null));\n}\n/**\n * Default Executor instance that runs the task in the same thread.\n */\npromesa.exec.default_current_thread_executor \x3d (new cljs.core.Delay((function (){\nreturn (promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0 ? promesa.exec.current_thread_executor.cljs$core$IFn$_invoke$arity$0() : promesa.exec.current_thread_executor.call(null));\n}),null));\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_cached_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, cached thread executor service.\n */\npromesa.exec.default_cached_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_thread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, thread per task executor service.\n */\npromesa.exec.default_thread_executor \x3d promesa.exec.default_executor;\n}\nif((typeof promesa !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof promesa.exec.default_vthread_executor !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * A global, virtual thread per task executor service.\n */\npromesa.exec.default_vthread_executor \x3d promesa.exec.default_executor;\n}\n/**\n * Returns true if `o` is an instane of Executor or satisfies IExecutor protocol.\n */\npromesa.exec.executor_QMARK_ \x3d (function promesa$exec$executor_QMARK_(o){\nif((!((o \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.promesa$protocols$IExecutor$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IExecutor,o);\n}\n});\npromesa.exec.resolve_executor \x3d (function promesa$exec$resolve_executor(var_args){\nvar G__43337 \x3d arguments.length;\nswitch (G__43337) {\ncase 0:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1 \x3d (function (executor){\nif((executor \x3d\x3d null)){\nreturn cljs.core.deref(promesa.exec.default_executor);\n} else {\nif(promesa.exec.executor_QMARK_(executor)){\nreturn executor;\n} else {\nif(cljs.core.delay_QMARK_(executor)){\nreturn promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(executor));\n} else {\nvar G__43340 \x3d executor;\nvar G__43340__$1 \x3d (((G__43340 instanceof cljs.core.Keyword))?G__43340.fqn:null);\nswitch (G__43340__$1) {\ncase \x22default\x22:\nreturn cljs.core.deref(promesa.exec.default_executor);\n\nbreak;\ncase \x22cached\x22:\nreturn cljs.core.deref(promesa.exec.default_cached_executor);\n\nbreak;\ncase \x22thread\x22:\nreturn cljs.core.deref(promesa.exec.default_thread_executor);\n\nbreak;\ncase \x22vthread\x22:\nreturn cljs.core.deref(promesa.exec.default_vthread_executor);\n\nbreak;\ncase \x22same-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ncase \x22current-thread\x22:\nreturn cljs.core.deref(promesa.exec.default_current_thread_executor);\n\nbreak;\ndefault:\nthrow (new TypeError(\x22invalid executor\x22));\n\n}\n\n}\n}\n}\n}));\n\n(promesa.exec.resolve_executor.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.resolve_scheduler \x3d (function promesa$exec$resolve_scheduler(var_args){\nvar G__43342 \x3d arguments.length;\nswitch (G__43342) {\ncase 0:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1 \x3d (function (scheduler){\nif((((scheduler \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),scheduler)))){\nreturn cljs.core.deref(promesa.exec.default_scheduler);\n} else {\nreturn promesa.util.maybe_deref(scheduler);\n}\n}));\n\n(promesa.exec.resolve_scheduler.cljs$lang$maxFixedArity \x3d 1);\n\npromesa.exec.wrap_bindings \x3d (function promesa$exec$wrap_bindings(f){\nreturn f;\n});\n/**\n * Run the task in the provided executor, returns `nil`. Analogous to\n * the `(.execute executor f)`. Fire and forget.\n */\npromesa.exec.exec_BANG_ \x3d (function promesa$exec$exec_BANG_(var_args){\nvar G__43364 \x3d arguments.length;\nswitch (G__43364) {\ncase 1:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._exec_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.exec_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Run the task in the provided executor.\n */\npromesa.exec.run_BANG_ \x3d (function promesa$exec$run_BANG_(var_args){\nvar G__43366 \x3d arguments.length;\nswitch (G__43366) {\ncase 1:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._run_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.run_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Submit a task to be executed in a provided executor\n * and return a promise that will be completed with\n * the return value of a task.\n * \n * A task is a plain clojure function.\n */\npromesa.exec.submit_BANG_ \x3d (function promesa$exec$submit_BANG_(var_args){\nvar G__43374 \x3d arguments.length;\nswitch (G__43374) {\ncase 1:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(promesa.exec._STAR_default_executor_STAR_),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.protocols._submit_BANG_(promesa.exec.resolve_executor.cljs$core$IFn$_invoke$arity$1(executor),f);\n}));\n\n(promesa.exec.submit_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Schedule a callable to be executed after the `ms` delay\n * is reached.\n * \n * In JVM it uses a scheduled executor service and in JS\n * it uses the `setTimeout` function.\n */\npromesa.exec.schedule_BANG_ \x3d (function promesa$exec$schedule_BANG_(var_args){\nvar G__43393 \x3d arguments.length;\nswitch (G__43393) {\ncase 2:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$0(),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (scheduler,ms,f){\nreturn promesa.protocols._schedule_BANG_(promesa.exec.resolve_scheduler.cljs$core$IFn$_invoke$arity$1(scheduler),ms,f);\n}));\n\n(promesa.exec.schedule_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43427 \x3d (function (meta43428){\nthis.meta43428 \x3d meta43428;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43429,meta43428__$1){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43427(meta43428__$1));\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43429){\nvar self__ \x3d this;\nvar _43429__$1 \x3d this;\nreturn self__.meta43428;\n}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n\nreturn null;\n}catch (e43431){var _ \x3d e43431;\nreturn null;\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.exec.noop,f));\n}catch (e43433){var cause \x3d e43433;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ntry{return promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43437){var cause \x3d e43437;\nreturn promesa.protocols._promise(cause);\n}}));\n\n(promesa.exec.t_promesa$exec43427.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43428\x22,\x22meta43428\x22,-1718288763,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43427\x22);\n\n(promesa.exec.t_promesa$exec43427.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43427\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43427.\n */\npromesa.exec.__GT_t_promesa$exec43427 \x3d (function promesa$exec$__GT_t_promesa$exec43427(meta43428){\nreturn (new promesa.exec.t_promesa$exec43427(meta43428));\n});\n\n\n/**\n * Creates an executor instance that run tasks in the same thread.\n */\npromesa.exec.current_thread_executor \x3d (function promesa$exec$current_thread_executor(){\nreturn (new promesa.exec.t_promesa$exec43427(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IExecutor}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\npromesa.exec.t_promesa$exec43463 \x3d (function (meta43464){\nthis.meta43464 \x3d meta43464;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_43465,meta43464__$1){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn (new promesa.exec.t_promesa$exec43463(meta43464__$1));\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_43465){\nvar self__ \x3d this;\nvar _43465__$1 \x3d this;\nreturn self__.meta43464;\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_exec_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.impl.promise.nextTick(f);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_run_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}catch (e43481){var ___$1 \x3d e43481;\nreturn null;\n}})),promesa.exec.noop);\n}));\n\n(promesa.exec.t_promesa$exec43463.prototype.promesa$protocols$IExecutor$_submit_BANG_$arity$2 \x3d (function (this$,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn promesa.protocols._fmap(promesa.protocols._promise(null),(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}));\n}));\n\n(promesa.exec.t_promesa$exec43463.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta43464\x22,\x22meta43464\x22,1950487186,null)], null);\n}));\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$type \x3d true);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorStr \x3d \x22promesa.exec/t_promesa$exec43463\x22);\n\n(promesa.exec.t_promesa$exec43463.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/t_promesa$exec43463\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/t_promesa$exec43463.\n */\npromesa.exec.__GT_t_promesa$exec43463 \x3d (function promesa$exec$__GT_t_promesa$exec43463(meta43464){\nreturn (new promesa.exec.t_promesa$exec43463(meta43464));\n});\n\n\n/**\n * An IExecutor that schedules tasks to be executed in the MicrotasksQueue.\n */\npromesa.exec.microtask_executor \x3d (function promesa$exec$microtask_executor(){\nreturn (new promesa.exec.t_promesa$exec43463(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {promesa.protocols.IScheduler}\n*/\npromesa.exec.Scheduler \x3d (function (){\n});\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.exec.Scheduler.prototype.promesa$protocols$IScheduler$_schedule_BANG_$arity$3 \x3d (function (_,ms,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar df \x3d promesa.impl.promise.deferred();\nvar tid \x3d setTimeout((function (){\ntry{return promesa.protocols._resolve_BANG_(df,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)));\n}catch (e43487){var cause \x3d e43487;\nreturn promesa.protocols._reject_BANG_(df,cause);\n}}),ms);\npromesa.protocols._fnly(df,(function (___$2,c){\nif(cljs.core.truth_(promesa.impl.promise.isCancellationError(c))){\nreturn clearTimeout(tid);\n} else {\nreturn null;\n}\n}));\n\nreturn df;\n}));\n\n(promesa.exec.Scheduler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(promesa.exec.Scheduler.cljs$lang$type \x3d true);\n\n(promesa.exec.Scheduler.cljs$lang$ctorStr \x3d \x22promesa.exec/Scheduler\x22);\n\n(promesa.exec.Scheduler.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22promesa.exec/Scheduler\x22);\n}));\n\n/**\n * Positional factory function for promesa.exec/Scheduler.\n */\npromesa.exec.__GT_Scheduler \x3d (function promesa$exec$__GT_Scheduler(){\nreturn (new promesa.exec.Scheduler());\n});\n\n/**\n * A scheduled thread pool constructor. A ScheduledExecutor (IScheduler\n * in CLJS) instance allows execute asynchronous tasks some time later.\n */\npromesa.exec.scheduled_executor \x3d (function promesa$exec$scheduled_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___43563 \x3d arguments.length;\nvar i__5750__auto___43564 \x3d (0);\nwhile(true){\nif((i__5750__auto___43564 \x3c len__5749__auto___43563)){\nargs__5755__auto__.push((arguments[i__5750__auto___43564]));\n\nvar G__43565 \x3d (i__5750__auto___43564 + (1));\ni__5750__auto___43564 \x3d G__43565;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.exec.scheduled_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__43504){\nvar map__43505 \x3d p__43504;\nvar map__43505__$1 \x3d cljs.core.__destructure_map(map__43505);\nvar parallelism \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__43505__$1,new cljs.core.Keyword(null,\x22parallelism\x22,\x22parallelism\x22,-930922333),(1));\nvar factory \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__43505__$1,new cljs.core.Keyword(null,\x22factory\x22,\x22factory\x22,63933746));\nreturn promesa.exec.__GT_Scheduler();\n}));\n\n(promesa.exec.scheduled_executor.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.exec.scheduled_executor.cljs$lang$applyTo \x3d (function (seq43495){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq43495));\n}));\n\n"); SHADOW_ENV.evalLoad("promesa.impl.js", true, "goog.provide(\x27promesa.impl\x27);\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.impl.promise_QMARK_ \x3d (function promesa$impl$promise_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$IPromise$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.IPromise,v);\n}\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.impl.deferred_QMARK_ \x3d (function promesa$impl$deferred_QMARK_(v){\nif((!((v \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.promesa$protocols$ICompletable$)))){\nreturn true;\n} else {\nif((!v.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(promesa.protocols.ICompletable,v);\n}\n});\npromesa.impl.resolved \x3d (function promesa$impl$resolved(v){\nreturn promesa.impl.promise.resolved(v);\n});\npromesa.impl.rejected \x3d (function promesa$impl$rejected(v){\nreturn promesa.impl.promise.rejected(v);\n});\n/**\n * Coerce a thenable to built-in promise impl type.\n */\npromesa.impl.coerce \x3d (function promesa$impl$coerce(v){\nreturn promesa.impl.promise.coerce(v);\n});\npromesa.impl.all \x3d (function promesa$impl$all(promises){\nreturn promesa.protocols._fmap(promesa.impl.promise.all(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(promises)),cljs.core.vec);\n});\npromesa.impl.race \x3d (function promesa$impl$race(promises){\nreturn promesa.impl.promise.race(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,promises)));\n});\npromesa.impl.deferred \x3d (function promesa$impl$deferred(){\nreturn promesa.impl.promise.deferred();\n});\npromesa.impl.extend_promise_BANG_ \x3d (function promesa$impl$extend_promise_BANG_(t){\n(t.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\nreturn (t.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn promesa.impl.promise.coerce(p__$1);\n}));\n});\npromesa.impl.extend_promise_BANG_(Promise);\npromesa.impl.extend_promise_BANG_(promesa.impl.promise.PromiseImpl);\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (p){\nvar p__$1 \x3d this;\nreturn p__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43584_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43584_SHARP_) : f.call(null,p1__43584_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43585_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43585_SHARP_) : f.call(null,p1__43585_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43586_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43586_SHARP_) : f.call(null,p1__43586_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_mcat$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.fbind((function (p1__43587_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43587_SHARP_) : f.call(null,p1__43587_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43588_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43588_SHARP_,null) : f.call(null,p1__43588_SHARP_,null));\n}),(function (p1__43589_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43589_SHARP_) : f.call(null,null,p1__43589_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_hmap$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fmap((function (p1__43590_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(p1__43590_SHARP_,null) : f.call(null,p1__43590_SHARP_,null));\n}),(function (p1__43591_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(null,p1__43591_SHARP_) : f.call(null,null,p1__43591_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43592_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43592_SHARP_) : f.call(null,p1__43592_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_merr$arity$3 \x3d (function (it,f,e){\nvar it__$1 \x3d this;\nreturn it__$1.fbind(promesa.protocols._promise,(function (p1__43593_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43593_SHARP_) : f.call(null,p1__43593_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_fnly$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nit__$1.handle(f);\n\nreturn it__$1;\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$2 \x3d (function (it,f){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43594_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43594_SHARP_) : f.call(null,p1__43594_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IPromise$_then$arity$3 \x3d (function (it,f,executor){\nvar it__$1 \x3d this;\nreturn it__$1.then((function (p1__43595_SHARP_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__43595_SHARP_) : f.call(null,p1__43595_SHARP_));\n}));\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_resolve_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.resolve(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICompletable$_reject_BANG_$arity$2 \x3d (function (it,v){\nvar it__$1 \x3d this;\nreturn it__$1.reject(v);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancel_BANG_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.cancel();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$ICancellable$_cancelled_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isCancelled();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nvar value \x3d (it__$1[\x22value\x22]);\nif(cljs.core.truth_(it__$1.isRejected())){\nthrow value;\n} else {\nreturn value;\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn (it__$1[\x22value\x22]);\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_extract$arity$2 \x3d (function (it,default$){\nvar it__$1 \x3d this;\nif(cljs.core.truth_(it__$1.isPending())){\nreturn default$;\n} else {\nreturn (it__$1[\x22value\x22]);\n}\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_resolved_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isResolved();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_rejected_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isRejected();\n}));\n\n(promesa.impl.promise.PromiseImpl.prototype.promesa$protocols$IState$_pending_QMARK_$arity$1 \x3d (function (it){\nvar it__$1 \x3d this;\nreturn it__$1.isPending();\n}));\npromesa.impl.unwrap \x3d (function promesa$impl$unwrap(var_args){\nvar G__43650 \x3d arguments.length;\nswitch (G__43650) {\ncase 1:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nif(promesa.impl.promise_QMARK_(v)){\nreturn promesa.protocols._mcat(v,promesa.impl.unwrap,executor);\n} else {\nreturn promesa.protocols._promise(v);\n}\n}));\n\n(promesa.impl.unwrap.cljs$lang$maxFixedArity \x3d 2);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.promesa$protocols$IPromiseFactory$_promise$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nreturn promesa.impl.rejected(e__$1);\n}));\n\n(promesa.protocols.IPromiseFactory[\x22_\x22] \x3d true);\n\n(promesa.protocols._promise[\x22_\x22] \x3d (function (v){\nreturn promesa.impl.resolved(v);\n}));\npromesa.impl.promise__GT_str \x3d (function promesa$impl$promise__GT_str(p){\nreturn \x22#\x3cjs/Promise[~]\x3e\x22;\n});\n(Promise.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Promise.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,\x22#\x3cjs/Promise[~]\x3e\x22);\n}));\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(promesa.impl.promise.PromiseImpl.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (p,writer,opts){\nvar p__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cPromise[\x22,(cljs.core.truth_(promesa.protocols._pending_QMARK_(p__$1))?\x22pending\x22:(cljs.core.truth_(promesa.protocols._cancelled_QMARK_(p__$1))?\x22cancelled\x22:(cljs.core.truth_(promesa.protocols._rejected_QMARK_(p__$1))?\x22rejected\x22:\x22resolved\x22\n))),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.hash(p__$1)),\x22]\x3e\x22].join(\x27\x27));\n}));\n"); SHADOW_ENV.evalLoad("promesa.core.js", true, "goog.provide(\x27promesa.core\x27);\n/**\n * Return a resolved promise with provided value.\n */\npromesa.core.resolved \x3d (function promesa$core$resolved(v){\nreturn promesa.impl.resolved(v);\n});\n/**\n * Return a rejected promise with provided reason.\n */\npromesa.core.rejected \x3d (function promesa$core$rejected(v){\nreturn promesa.impl.rejected(v);\n});\n/**\n * Creates an empty promise instance.\n */\npromesa.core.deferred \x3d (function promesa$core$deferred(){\nreturn promesa.impl.deferred();\n});\n/**\n * The coerce based promise constructor. Creates an appropriate promise\n * instance depending on the provided value.\n * \n * If an executor is provided, it will be used to resolve this\n * promise.\n */\npromesa.core.promise \x3d (function promesa$core$promise(var_args){\nvar G__50163 \x3d arguments.length;\nswitch (G__50163) {\ncase 1:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.promise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$1 \x3d (function (v){\nreturn promesa.protocols._promise(v);\n}));\n\n(promesa.core.promise.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(v),cljs.core.identity,executor);\n}));\n\n(promesa.core.promise.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A convenience alias for `promise` coercion function that only accepts\n * a single argument.\n */\npromesa.core.wrap \x3d (function promesa$core$wrap(v){\nreturn promesa.protocols._promise(v);\n});\n/**\n * Create a promise instance from a factory function. If an executor is\n * provided, the factory will be executed in the provided executor.\n * \n * A factory function looks like `(fn [resolve reject] (resolve 1))`.\n */\npromesa.core.create \x3d (function promesa$core$create(var_args){\nvar G__50171 \x3d arguments.length;\nswitch (G__50171) {\ncase 1:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nvar d \x3d promesa.impl.deferred();\ntry{var G__50173_50345 \x3d (function (p1__50166_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50166_SHARP_);\n});\nvar G__50174_50346 \x3d (function (p1__50167_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50167_SHARP_);\n});\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50173_50345,G__50174_50346) : f.call(null,G__50173_50345,G__50174_50346));\n}catch (e50172){var e_50347 \x3d e50172;\npromesa.protocols._reject_BANG_(d,e_50347);\n}\nreturn d;\n}));\n\n(promesa.core.create.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,executor){\nvar d \x3d promesa.impl.deferred();\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(executor,(function (){\ntry{var G__50176 \x3d (function (p1__50168_SHARP_){\nreturn promesa.protocols._resolve_BANG_(d,p1__50168_SHARP_);\n});\nvar G__50177 \x3d (function (p1__50169_SHARP_){\nreturn promesa.protocols._reject_BANG_(d,p1__50169_SHARP_);\n});\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__50176,G__50177) : f.call(null,G__50176,G__50177));\n}catch (e50175){var e \x3d e50175;\nreturn promesa.protocols._reject_BANG_(d,e);\n}}));\n\nreturn d;\n}));\n\n(promesa.core.create.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return true if `v` is a promise instance.\n */\npromesa.core.promise_QMARK_ \x3d (function promesa$core$promise_QMARK_(v){\nreturn promesa.impl.promise_QMARK_(v);\n});\n/**\n * Return true if `v` is a deferred instance.\n */\npromesa.core.deferred_QMARK_ \x3d (function promesa$core$deferred_QMARK_(v){\nreturn promesa.impl.deferred_QMARK_(v);\n});\n/**\n * Returns true if `v` is a promise like object.\n */\npromesa.core.thenable_QMARK_ \x3d (function promesa$core$thenable_QMARK_(v){\nreturn ((cljs.core.object_QMARK_(v)) \x26\x26 (cljs.core.fn_QMARK_((v[\x22then\x22]))));\n});\n/**\n * Returns true if promise `p` is already fulfilled.\n */\npromesa.core.resolved_QMARK_ \x3d (function promesa$core$resolved_QMARK_(p){\nreturn promesa.protocols._resolved_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is already rejected.\n */\npromesa.core.rejected_QMARK_ \x3d (function promesa$core$rejected_QMARK_(p){\nreturn promesa.protocols._rejected_QMARK_(p);\n});\n/**\n * Returns true if promise `p` is stil pending.\n */\npromesa.core.pending_QMARK_ \x3d (function promesa$core$pending_QMARK_(p){\nreturn promesa.protocols._pending_QMARK_(p);\n});\n/**\n * Returns the current promise value.\n */\npromesa.core.extract \x3d (function promesa$core$extract(var_args){\nvar G__50181 \x3d arguments.length;\nswitch (G__50181) {\ncase 1:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.extract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn promesa.protocols._extract(p);\n}));\n\n(promesa.core.extract.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,default$){\nreturn promesa.protocols._extract(p,default$);\n}));\n\n(promesa.core.extract.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if promise `p` is already done.\n */\npromesa.core.done_QMARK_ \x3d (function promesa$core$done_QMARK_(p){\nreturn cljs.core.not(promesa.protocols._pending_QMARK_(p));\n});\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * can return a plain value or promise instance, an automatic\n * unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then \x3d (function promesa$core$then(var_args){\nvar G__50183 \x3d arguments.length;\nswitch (G__50183) {\ncase 2:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._then(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument; `f`\n * should return a plain value, no automatic unwrapping will be\n * performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.then_SINGLEQUOTE_ \x3d (function promesa$core$then_SINGLEQUOTE_(var_args){\nvar G__50187 \x3d arguments.length;\nswitch (G__50187) {\ncase 2:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.then_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed with when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n */\npromesa.core.bind \x3d (function promesa$core$bind(var_args){\nvar G__50190 \x3d arguments.length;\nswitch (G__50190) {\ncase 2:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.bind.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.bind.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.bind.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will be resolved with\n * the return value of calling `f` with value as single argument.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This function is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.map \x3d (function promesa$core$map(var_args){\nvar G__50192 \x3d arguments.length;\nswitch (G__50192) {\ncase 2:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `map`.\n */\npromesa.core.fmap \x3d (function promesa$core$fmap(var_args){\nvar G__50196 \x3d arguments.length;\nswitch (G__50196) {\ncase 2:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * successfully resolved. Returns a promise that will mirror the\n * promise instance returned by calling `f` with the value as single\n * argument; `f` **must** return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This funciton is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.mapcat \x3d (function promesa$core$mapcat(var_args){\nvar G__50200 \x3d arguments.length;\nswitch (G__50200) {\ncase 2:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mapcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mapcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * A convenience alias for `mapcat`.\n */\npromesa.core.mcat \x3d (function promesa$core$mcat(var_args){\nvar G__50203 \x3d arguments.length;\nswitch (G__50203) {\ncase 2:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.mcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.mcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.mcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chain variable number of functions to be executed serially using\n * `then`.\n */\npromesa.core.chain \x3d (function promesa$core$chain(var_args){\nvar G__50208 \x3d arguments.length;\nswitch (G__50208) {\ncase 2:\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50365 \x3d arguments.length;\nvar i__5750__auto___50366 \x3d (0);\nwhile(true){\nif((i__5750__auto___50366 \x3c len__5749__auto___50365)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50366]));\n\nvar G__50367 \x3d (i__5750__auto___50366 + (1));\ni__5750__auto___50366 \x3d G__50367;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(promesa.core.then,p,cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain.cljs$lang$applyTo \x3d (function (seq50205){\nvar G__50206 \x3d cljs.core.first(seq50205);\nvar seq50205__$1 \x3d cljs.core.next(seq50205);\nvar G__50207 \x3d cljs.core.first(seq50205__$1);\nvar seq50205__$2 \x3d cljs.core.next(seq50205__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50206,G__50207,seq50205__$2);\n}));\n\n(promesa.core.chain.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chain variable number of functions to be executed serially using\n * `map`.\n */\npromesa.core.chain_SINGLEQUOTE_ \x3d (function promesa$core$chain_SINGLEQUOTE_(var_args){\nvar G__50216 \x3d arguments.length;\nswitch (G__50216) {\ncase 2:\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___50371 \x3d arguments.length;\nvar i__5750__auto___50372 \x3d (0);\nwhile(true){\nif((i__5750__auto___50372 \x3c len__5749__auto___50371)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___50372]));\n\nvar G__50373 \x3d (i__5750__auto___50372 + (1));\ni__5750__auto___50372 \x3d G__50373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.core.then_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p,f,fs){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50210_SHARP_,p2__50209_SHARP_){\nreturn promesa.core.map.cljs$core$IFn$_invoke$arity$2(p2__50209_SHARP_,p1__50210_SHARP_);\n}),promesa.protocols._promise(p),cljs.core.cons(f,fs));\n}));\n\n/** @this {Function} */\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq50213){\nvar G__50214 \x3d cljs.core.first(seq50213);\nvar seq50213__$1 \x3d cljs.core.next(seq50213);\nvar G__50215 \x3d cljs.core.first(seq50213__$1);\nvar seq50213__$2 \x3d cljs.core.next(seq50213__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50214,G__50215,seq50213__$2);\n}));\n\n(promesa.core.chain_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception; `f` can return a new plain value or promise instance,\n * and automatic unwrapping will be performed.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * For performance sensitive code, look at `hmap` and `hcat`.\n */\npromesa.core.handle \x3d (function promesa$core$handle(var_args){\nvar G__50219 \x3d arguments.length;\nswitch (G__50219) {\ncase 2:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.handle.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f)),cljs.core.identity);\n}));\n\n(promesa.core.handle.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(promesa.protocols._promise,f),executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.handle.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Like `handle` but ignores the return value. Returns a promise that\n * will mirror the original one.\n */\npromesa.core.finally$ \x3d (function promesa$core$finally(var_args){\nvar G__50221 \x3d arguments.length;\nswitch (G__50221) {\ncase 2:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.finally$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.finally$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,f,executor){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.finally$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise completed (resolving or\n * rejecting) with the return value of calling `f` with both: value and\n * the exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hmap \x3d (function promesa$core$hmap(var_args){\nvar G__50223 \x3d arguments.length;\nswitch (G__50223) {\ncase 2:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hmap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.hmap.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._hmap(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.hmap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is completed\n * (resolved or rejected) and returns a promise that will mirror the\n * promise instance returned by calling `f` with both: value and the\n * exception. The `f` function must return a promise instance.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * Intended to be used with `-\x3e\x3e`.\n */\npromesa.core.hcat \x3d (function promesa$core$hcat(var_args){\nvar G__50225 \x3d arguments.length;\nswitch (G__50225) {\ncase 2:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.hcat.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f),cljs.core.identity);\n}));\n\n(promesa.core.hcat.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._mcat(promesa.protocols._hmap(promesa.protocols._promise(p),f,executor),cljs.core.identity,executor);\n}));\n\n(promesa.core.hcat.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Inverted arguments version of `finally`; intended to be used with\n * `-\x3e\x3e`.\n */\npromesa.core.fnly \x3d (function promesa$core$fnly(var_args){\nvar G__50227 \x3d arguments.length;\nswitch (G__50227) {\ncase 2:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f);\n}));\n\n(promesa.core.fnly.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._fnly(promesa.protocols._promise(p),f,executor);\n}));\n\n(promesa.core.fnly.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will be resolved with the return\n * value of calling `f` with exception as single argument; `f` can\n * return a plain value or promise instance, an automatic unwrapping\n * will be performed.\n * \n * The computation will be executed in the completion thread, look at\n * `merr` if you want the ability to schedule the computation to other\n * thread.\n */\npromesa.core.catch$ \x3d (function promesa$core$catch(var_args){\nvar G__50233 \x3d arguments.length;\nswitch (G__50233) {\ncase 2:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,f){\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (p1__50230_SHARP_){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__50230_SHARP_) : f.call(null,p1__50230_SHARP_)));\n}));\n}));\n\n(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,pred_or_type,f){\nvar accept_QMARK_ \x3d ((cljs.core.ifn_QMARK_(pred_or_type))?pred_or_type:(function (p1__50231_SHARP_){\nreturn (p1__50231_SHARP_ instanceof pred_or_type);\n}));\nreturn promesa.protocols._merr(promesa.protocols._promise(p),(function (e){\nif(cljs.core.truth_((accept_QMARK_.cljs$core$IFn$_invoke$arity$1 ? accept_QMARK_.cljs$core$IFn$_invoke$arity$1(e) : accept_QMARK_.call(null,e)))){\nreturn promesa.protocols._promise((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e)));\n} else {\nreturn promesa.impl.rejected(e);\n}\n}));\n}));\n\n(promesa.core.catch$.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Chains a function `f` to be executed when the promise `p` is\n * rejected. Returns a promise that will mirror the promise returned by\n * calling `f` with exception as single argument; `f` **must** return a\n * promise instance or throw an exception.\n * \n * The computation will be executed in the completion thread by\n * default; you also can provide a custom executor.\n * \n * This is intended to be used with `-\x3e\x3e`.\n */\npromesa.core.merr \x3d (function promesa$core$merr(var_args){\nvar G__50245 \x3d arguments.length;\nswitch (G__50245) {\ncase 2:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.merr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.protocols._merr(p,f);\n}));\n\n(promesa.core.merr.cljs$core$IFn$_invoke$arity$3 \x3d (function (executor,f,p){\nreturn promesa.protocols._merr(p,f,executor);\n}));\n\n(promesa.core.merr.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Same as `catch` but with parameters inverted.\n * \n * DEPRECATED\n */\npromesa.core.error \x3d (function promesa$core$error(var_args){\nvar G__50247 \x3d arguments.length;\nswitch (G__50247) {\ncase 2:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2(p,f);\n}));\n\n(promesa.core.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,type,p){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3(p,type,f);\n}));\n\n(promesa.core.error.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are fulfilled.\n * \n * Example:\n * \n * ```\n * (-\x3e (p/all [(promise :first-promise)\n * (promise :second-promise)])\n * (then (fn [[first-result second-result]])\n * (println (str first-result \x22, \x22 second-result))))\n * ```\n * \n * Will print to out `:first-promise, :second-promise`.\n * \n * If at least one of the promises is rejected, the resulting promise\n * will be rejected.\n */\npromesa.core.all \x3d (function promesa$core$all(promises){\nreturn promesa.impl.all(promises);\n});\npromesa.core.race \x3d (function promesa$core$race(promises){\nreturn promesa.impl.race(promises);\n});\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * first one item in the array is fulfilled.\n */\npromesa.core.any \x3d (function promesa$core$any(var_args){\nvar G__50250 \x3d arguments.length;\nswitch (G__50250) {\ncase 1:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$1 \x3d (function (promises){\nreturn promesa.core.any.cljs$core$IFn$_invoke$arity$2(promises,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826));\n}));\n\n(promesa.core.any.cljs$core$IFn$_invoke$arity$2 \x3d (function (promises,default$){\nvar items \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises);\nvar state \x3d cljs.core.volatile_BANG_(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),items,new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),false], null));\nvar lock \x3d promesa.util.mutex();\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar seq__50251 \x3d cljs.core.seq(promises);\nvar chunk__50252 \x3d null;\nvar count__50253 \x3d (0);\nvar i__50254 \x3d (0);\nwhile(true){\nif((i__50254 \x3c count__50253)){\nvar p \x3d chunk__50252.cljs$core$IIndexed$_nth$arity$2(null,i__50254);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50269 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50269) : reject.call(null,G__50269));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50270 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50270__$1 \x3d cljs.core.__destructure_map(map__50270);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50270__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,items,state,lock))\n);\n\n\nvar G__50391 \x3d seq__50251;\nvar G__50392 \x3d chunk__50252;\nvar G__50393 \x3d count__50253;\nvar G__50394 \x3d (i__50254 + (1));\nseq__50251 \x3d G__50391;\nchunk__50252 \x3d G__50392;\ncount__50253 \x3d G__50393;\ni__50254 \x3d G__50394;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__50251);\nif(temp__5825__auto__){\nvar seq__50251__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__50251__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__50251__$1);\nvar G__50395 \x3d cljs.core.chunk_rest(seq__50251__$1);\nvar G__50396 \x3d c__5548__auto__;\nvar G__50397 \x3d cljs.core.count(c__5548__auto__);\nvar G__50398 \x3d (0);\nseq__50251 \x3d G__50395;\nchunk__50252 \x3d G__50396;\ncount__50253 \x3d G__50397;\ni__50254 \x3d G__50398;\ncontinue;\n} else {\nvar p \x3d cljs.core.first(seq__50251__$1);\npromesa.protocols._fnly(promesa.protocols._promise(p),((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (v,exception){\nlock.promesa$protocols$ILock$_lock_BANG_$arity$1(null);\n\ntry{if(cljs.core.truth_(exception)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar state__$1 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),cljs.core.conj,exception);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727).cljs$core$IFn$_invoke$arity$1(state__$1))){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nvar G__50273 \x3d cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22No promises resolved\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911),new cljs.core.Keyword(null,\x22rejections\x22,\x22rejections\x22,-1620899911).cljs$core$IFn$_invoke$arity$1(state__$1)], null));\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(G__50273) : reject.call(null,G__50273));\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(default$) : resolve.call(null,default$));\n}\n}\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state)))){\nreturn null;\n} else {\nvar map__50274 \x3d state.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,((function (seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock){\nreturn (function (state__$1){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state__$1,new cljs.core.Keyword(null,\x22resolved?\x22,\x22resolved?\x22,862515389),true),new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727),cljs.core.disj,p);\n});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n(state.cljs$core$IDeref$_deref$arity$1(null)));\nvar map__50274__$1 \x3d cljs.core.__destructure_map(map__50274);\nvar pending \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50274__$1,new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727));\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(v) : resolve.call(null,v));\n}\n}\n}finally {lock.promesa$protocols$ILock$_unlock_BANG_$arity$1(null);\n}});})(seq__50251,chunk__50252,count__50253,i__50254,p,seq__50251__$1,temp__5825__auto__,items,state,lock))\n);\n\n\nvar G__50399 \x3d cljs.core.next(seq__50251__$1);\nvar G__50400 \x3d null;\nvar G__50401 \x3d (0);\nvar G__50402 \x3d (0);\nseq__50251 \x3d G__50399;\nchunk__50252 \x3d G__50400;\ncount__50253 \x3d G__50401;\ni__50254 \x3d G__50402;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n}));\n\n(promesa.core.any.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given an array of promises, return a promise that is fulfilled when\n * all the items in the array are resolved (independently if\n * successfully or exceptionally).\n * \n * Example:\n * \n * ```\n * (-\x3e\x3e (p/wait-all* [(promise :first-promise)\n * (promise :second-promise)])\n * (p/fmap (fn [_]\n * (println \x22done\x22))))\n * ```\n * \n * Rejected promises also counts as resolved.\n */\npromesa.core.wait_all_STAR_ \x3d (function promesa$core$wait_all_STAR_(promises){\nvar promises__$1 \x3d cljs.core.set(promises);\nvar total \x3d cljs.core.count(promises__$1);\nvar prom \x3d promesa.core.deferred();\nif((total \x3e (0))){\nvar counter_50403 \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(total);\ncljs.core.run_BANG_((function (p1__50275_SHARP_){\nreturn promesa.protocols._fnly(p1__50275_SHARP_,(function (_,___$1){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(counter_50403,cljs.core.dec))){\nreturn promesa.protocols._resolve_BANG_(prom,null);\n} else {\nreturn null;\n}\n}));\n}),promises__$1);\n} else {\npromesa.protocols._resolve_BANG_(prom,null);\n}\n\nreturn prom;\n});\n/**\n * Given a variable number of promises, returns a promise which resolves\n * to `nil` when all provided promises complete (rejected or resolved).\n * \n * **EXPERIMENTAL**\n */\npromesa.core.wait_all \x3d (function promesa$core$wait_all(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50405 \x3d arguments.length;\nvar i__5750__auto___50406 \x3d (0);\nwhile(true){\nif((i__5750__auto___50406 \x3c len__5749__auto___50405)){\nargs__5755__auto__.push((arguments[i__5750__auto___50406]));\n\nvar G__50407 \x3d (i__5750__auto___50406 + (1));\ni__5750__auto___50406 \x3d G__50407;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(promesa.core.wait_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (promises){\nreturn promesa.core.wait_all_STAR_(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,promises));\n}));\n\n(promesa.core.wait_all.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(promesa.core.wait_all.cljs$lang$applyTo \x3d (function (seq50276){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50276));\n}));\n\n/**\n * A promise aware run! function. Executed in terms of `then` rules.\n */\npromesa.core.run_BANG_ \x3d (function promesa$core$run_BANG_(var_args){\nvar G__50282 \x3d arguments.length;\nswitch (G__50282) {\ncase 2:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50277_SHARP_,p2__50278_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(p1__50277_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50278_SHARP_) : f.call(null,p2__50278_SHARP_));\n}));\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,coll,executor){\nreturn promesa.protocols._fmap(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__50279_SHARP_,p2__50280_SHARP_){\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$3(p1__50279_SHARP_,(function (_){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p2__50280_SHARP_) : f.call(null,p2__50280_SHARP_));\n}),executor);\n}),promesa.impl.resolved(null),coll),cljs.core.constantly(null));\n}));\n\n(promesa.core.run_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Cancel the promise.\n */\npromesa.core.cancel_BANG_ \x3d (function promesa$core$cancel_BANG_(p){\npromesa.protocols._cancel_BANG_(p);\n\nreturn p;\n});\n/**\n * Return true if `v` is a cancelled promise.\n */\npromesa.core.cancelled_QMARK_ \x3d (function promesa$core$cancelled_QMARK_(v){\nreturn promesa.protocols._cancelled_QMARK_(v);\n});\n/**\n * Resolve a completable promise with a value.\n */\npromesa.core.resolve_BANG_ \x3d (function promesa$core$resolve_BANG_(var_args){\nvar G__50284 \x3d arguments.length;\nswitch (G__50284) {\ncase 1:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (o){\nreturn promesa.protocols._resolve_BANG_(o,null);\n}));\n\n(promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,v){\nreturn promesa.protocols._resolve_BANG_(o,v);\n}));\n\n(promesa.core.resolve_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Reject a completable promise with an error.\n */\npromesa.core.reject_BANG_ \x3d (function promesa$core$reject_BANG_(p,e){\nreturn promesa.protocols._reject_BANG_(p,e);\n});\n/**\n * Given a function that accepts a callback as the last argument, return a\n * function that returns a promise. Callback is expected to take one\n * parameter (result of a computation).\n */\npromesa.core.promisify \x3d (function promesa$core$promisify(callable){\nreturn (function() { \nvar G__50410__delegate \x3d function (args){\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve,reject){\nvar args__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(args),resolve);\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(callable,args__$1);\n}catch (e50291){if((e50291 instanceof Error)){\nvar e \x3d e50291;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e50291;\n\n}\n}}));\n};\nvar G__50410 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__50411__i \x3d 0, G__50411__a \x3d new Array(arguments.length - 0);\nwhile (G__50411__i \x3c G__50411__a.length) {G__50411__a[G__50411__i] \x3d arguments[G__50411__i + 0]; ++G__50411__i;}\n args \x3d new cljs.core.IndexedSeq(G__50411__a,0,null);\n} \nreturn G__50410__delegate.call(this,args);};\nG__50410.cljs$lang$maxFixedArity \x3d 0;\nG__50410.cljs$lang$applyTo \x3d (function (arglist__50412){\nvar args \x3d cljs.core.seq(arglist__50412);\nreturn G__50410__delegate(args);\n});\nG__50410.cljs$core$IFn$_invoke$arity$variadic \x3d G__50410__delegate;\nreturn G__50410;\n})()\n;\n});\n/**\n * @constructor\n */\npromesa.core.TimeoutException \x3d (function promesa$core$TimeoutException(message){\nvar it \x3d this;\nError.call(it,message,cljs.core.PersistentArrayMap.EMPTY,null);\n\nreturn it;\n});\ngoog.inherits(promesa.core.TimeoutException,Error);\n/**\n * Returns a cancellable promise that will be fulfilled with this\n * promise\x27s fulfillment value or rejection reason. However, if this\n * promise is not fulfilled or rejected within `ms` milliseconds, the\n * returned promise is cancelled with a TimeoutError.\n */\npromesa.core.timeout \x3d (function promesa$core$timeout(var_args){\nvar G__50295 \x3d arguments.length;\nswitch (G__50295) {\ncase 2:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,t){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,t,v){\nreturn promesa.core.timeout.cljs$core$IFn$_invoke$arity$4(p,t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.timeout.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,t,v,scheduler){\nvar timeout \x3d promesa.core.deferred();\nvar tid \x3d promesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,new cljs.core.Keyword(\x22promesa.core\x22,\x22default\x22,\x22promesa.core/default\x22,1773193826))){\nreturn promesa.core.reject_BANG_(timeout,(new promesa.core.TimeoutException(\x22Operation timed out.\x22)));\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(timeout,v);\n}\n}));\nreturn promesa.core.race(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (_,___$1){\nreturn promesa.protocols._cancel_BANG_(tid);\n}),p),timeout], null));\n}));\n\n(promesa.core.timeout.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a timeout in miliseconds and optional value, returns a promise\n * that will be fulfilled with provided value (or nil) after the time is\n * reached.\n */\npromesa.core.delay \x3d (function promesa$core$delay(var_args){\nvar G__50299 \x3d arguments.length;\nswitch (G__50299) {\ncase 1:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$1 \x3d (function (t){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$2 \x3d (function (t,v){\nreturn promesa.core.delay.cljs$core$IFn$_invoke$arity$3(t,v,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\n\n(promesa.core.delay.cljs$core$IFn$_invoke$arity$3 \x3d (function (t,v,scheduler){\nvar d \x3d promesa.core.deferred();\npromesa.exec.schedule_BANG_.cljs$core$IFn$_invoke$arity$3(scheduler,t,(function (){\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,v);\n}));\n\nreturn d;\n}));\n\n(promesa.core.delay.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Analogous to `clojure.core.async/thread` that returns a promise\n * instance instead of the `Future`. Useful for executing synchronous\n * code in a separate thread (also works in cljs).\n */\npromesa.core.thread_call \x3d (function promesa$core$thread_call(var_args){\nvar G__50307 \x3d arguments.length;\nswitch (G__50307) {\ncase 1:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22thread\x22,\x22thread\x22,947001524),promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2 \x3d (function (executor,f){\nreturn promesa.exec.submit_BANG_.cljs$core$IFn$_invoke$arity$2(executor,promesa.exec.wrap_bindings(f));\n}));\n\n(promesa.core.thread_call.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * A shortcut for `(p/thread-call :vthread f)`.\n */\npromesa.core.vthread_call \x3d (function promesa$core$vthread_call(f){\nreturn promesa.core.thread_call.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),f);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\npromesa.core.Recur \x3d (function (bindings,__meta,__extmap,__hash){\nthis.bindings \x3d bindings;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50310,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50316 \x3d k50310;\nvar G__50316__$1 \x3d (((G__50316 instanceof cljs.core.Keyword))?G__50316.fqn:null);\nswitch (G__50316__$1) {\ncase \x22bindings\x22:\nreturn self__.bindings;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50310,else__5326__auto__);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50324){\nvar vec__50325 \x3d p__50324;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50325,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#promesa.core.Recur{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings],null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50309){\nvar self__ \x3d this;\nvar G__50309__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50309__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-404494900 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50311,other50312){\nvar self__ \x3d this;\nvar this50311__$1 \x3d this;\nreturn (((!((other50312 \x3d\x3d null)))) \x26\x26 ((((this50311__$1.constructor \x3d\x3d\x3d other50312.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.bindings,other50312.bindings)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50311__$1.__extmap,other50312.__extmap)))))));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50310){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50328 \x3d k50310;\nvar G__50328__$1 \x3d (((G__50328 instanceof cljs.core.Keyword))?G__50328.fqn:null);\nswitch (G__50328__$1) {\ncase \x22bindings\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50310);\n\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50329 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50330 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50329.cljs$core$IFn$_invoke$arity$2 ? pred__50329.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330) : pred__50329.call(null,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),expr__50330)))){\nreturn (new promesa.core.Recur(G__50309,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new promesa.core.Recur(self__.bindings,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50309),null));\n}\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),self__.bindings,null))], null),self__.__extmap));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50309){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new promesa.core.Recur(self__.bindings,G__50309,self__.__extmap,self__.__hash));\n}));\n\n(promesa.core.Recur.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(promesa.core.Recur.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22bindings\x22,\x22bindings\x22,-1383038577,null)], null);\n}));\n\n(promesa.core.Recur.cljs$lang$type \x3d true);\n\n(promesa.core.Recur.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22promesa.core/Recur\x22,null,(1),null));\n}));\n\n(promesa.core.Recur.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22promesa.core/Recur\x22);\n}));\n\n/**\n * Positional factory function for promesa.core/Recur.\n */\npromesa.core.__GT_Recur \x3d (function promesa$core$__GT_Recur(bindings){\nreturn (new promesa.core.Recur(bindings,null,null,null));\n});\n\n/**\n * Factory function for promesa.core/Recur, taking a map of keywords to field values.\n */\npromesa.core.map__GT_Recur \x3d (function promesa$core$map__GT_Recur(G__50313){\nvar extmap__5365__auto__ \x3d (function (){var G__50334 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__50313,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192));\nif(cljs.core.record_QMARK_(G__50313)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50334);\n} else {\nreturn G__50334;\n}\n})();\nreturn (new promesa.core.Recur(new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(G__50313),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\npromesa.core.recur_QMARK_ \x3d (function promesa$core$recur_QMARK_(o){\nreturn (o instanceof promesa.core.Recur);\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__30608 \x3d (_ + (1));\n_ \x3d G__30608;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__30473_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__30473_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__30473_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___30627 \x3d arguments.length;\nvar i__5750__auto___30632 \x3d (0);\nwhile(true){\nif((i__5750__auto___30632 \x3c len__5749__auto___30627)){\nargs__5755__auto__.push((arguments[i__5750__auto___30632]));\n\nvar G__30637 \x3d (i__5750__auto___30632 + (1));\ni__5750__auto___30632 \x3d G__30637;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e30516){if((e30516 instanceof Error)){\nvar e \x3d e30516;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e30516;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq30481){\nvar G__30483 \x3d cljs.core.first(seq30481);\nvar seq30481__$1 \x3d cljs.core.next(seq30481);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__30483,seq30481__$1);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.context.js", true, "goog.provide(\x27intemporal.internal.context\x27);\nintemporal.internal.context._STAR_workflow_context_STAR_ \x3d null;\n/**\n * Has the following keys:\n * \n * :history (atom history)\n * :workflow-id workflow-id\n * :seq-counter (atom 0)\n * :pending-events pending-events\n * :pending-asyncs pending-asyncs\n * :store store\n * :registry registry\n * :observer observer\n * \n */\nintemporal.internal.context.current_context \x3d (function intemporal$internal$context$current_context(){\nvar or__5025__auto__ \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Not in workflow context\x22,cljs.core.PersistentArrayMap.EMPTY);\n}\n});\nintemporal.internal.context.current_workflow_id \x3d (function intemporal$internal$context$current_workflow_id(){\nreturn new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.current_store \x3d (function intemporal$internal$context$current_store(){\nreturn new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\n});\nintemporal.internal.context.check_cancelled_BANG_ \x3d (function intemporal$internal$context$check_cancelled_BANG_(){\nvar ctx \x3d intemporal.internal.context.current_context();\nif(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022).cljs$core$IFn$_invoke$arity$1(ctx),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)))){\nthrow intemporal.internal.error.workflow_cancelled_exception();\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.next_seq_BANG_ \x3d (function intemporal$internal$context$next_seq_BANG_(){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.inc);\n\nreturn seq;\n});\nintemporal.internal.context.update_seq_BANG_ \x3d (function intemporal$internal$context$update_seq_BANG_(event){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187).cljs$core$IFn$_invoke$arity$1(event);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar last_seq \x3d temp__5825__auto__;\nvar current_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nif((last_seq \x3e current_seq)){\nvar n__5616__auto__ \x3d (last_seq - current_seq);\nvar _ \x3d (0);\nwhile(true){\nif((_ \x3c n__5616__auto__)){\nintemporal.internal.context.next_seq_BANG_();\n\nvar G__75172 \x3d (_ + (1));\n_ \x3d G__75172;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nintemporal.internal.context.find_event \x3d (function intemporal$internal$context$find_event(history,event_type,seq_num){\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__75166_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__75166_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__75166_SHARP_),seq_num)));\n}),history));\n});\nintemporal.internal.context.add_pending_event_BANG_ \x3d (function intemporal$internal$context$add_pending_event_BANG_(event){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,event);\n});\nintemporal.internal.context.add_pending_async_BANG_ \x3d (function intemporal$internal$context$add_pending_async_BANG_(async_info){\nvar ctx \x3d intemporal.internal.context.current_context();\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.conj,async_info);\n});\nintemporal.internal.context.notify_observer \x3d (function intemporal$internal$context$notify_observer(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___75173 \x3d arguments.length;\nvar i__5750__auto___75174 \x3d (0);\nwhile(true){\nif((i__5750__auto___75174 \x3c len__5749__auto___75173)){\nargs__5755__auto__.push((arguments[i__5750__auto___75174]));\n\nvar G__75175 \x3d (i__5750__auto___75174 + (1));\ni__5750__auto___75174 \x3d G__75175;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (event_fn,args){\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context());\nif(cljs.core.truth_(temp__5825__auto__)){\nvar observer \x3d temp__5825__auto__;\ntry{return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(event_fn,observer,args);\n}catch (e75169){if((e75169 instanceof Error)){\nvar e \x3d e75169;\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Observer error:\x22,cljs.core.ex_message(e)], 0));\n} else {\nthrow e75169;\n\n}\n}} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.context.notify_observer.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.context.notify_observer.cljs$lang$applyTo \x3d (function (seq75167){\nvar G__75168 \x3d cljs.core.first(seq75167);\nvar seq75167__$1 \x3d cljs.core.next(seq75167);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75168,seq75167__$1);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.activity.js", true, "goog.provide(\x27intemporal.internal.activity\x27);\n/**\n * Get a stable, qualified name string from a function.\n * On JVM: uses var metadata when available, otherwise class name.\n * On CLJS: demangles the JS function .name property (e.g. ns$fn_name -\x3e ns/fn-name).\n */\nintemporal.internal.activity.fn_name \x3d (function intemporal$internal$activity$fn_name(f){\nvar raw \x3d f.name;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d raw;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(clojure.string.blank_QMARK_(raw)));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar parts \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(raw,/\\$/);\nif((cljs.core.count(parts) \x3e (1))){\nvar ns_parts \x3d cljs.core.butlast(parts);\nvar fn_part \x3d cljs.core.last(parts);\nvar ns_str \x3d clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__50103_SHARP_){\nreturn clojure.string.replace(p1__50103_SHARP_,\x22_\x22,\x22-\x22);\n}),ns_parts));\nvar fn_str \x3d clojure.string.replace(fn_part,\x22_\x22,\x22-\x22);\nreturn [ns_str,\x22/\x22,fn_str].join(\x27\x27);\n} else {\nreturn clojure.string.replace(raw,\x22_\x22,\x22-\x22);\n}\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22activity-\x22));\n}\n});\n/**\n * Create a new activity registry\n */\nintemporal.internal.activity.make_registry \x3d (function intemporal$internal$activity$make_registry(){\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n});\n/**\n * Register an activity function in a registry\n */\nintemporal.internal.activity.register_activity_BANG_ \x3d (function intemporal$internal$activity$register_activity_BANG_(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50128 \x3d arguments.length;\nvar i__5750__auto___50129 \x3d (0);\nwhile(true){\nif((i__5750__auto___50129 \x3c len__5749__auto___50128)){\nargs__5755__auto__.push((arguments[i__5750__auto___50129]));\n\nvar G__50130 \x3d (i__5750__auto___50129 + (1));\ni__5750__auto___50129 \x3d G__50130;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (registry,f,p__50107){\nvar map__50108 \x3d p__50107;\nvar map__50108__$1 \x3d cljs.core.__destructure_map(map__50108);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50108__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar activity_name \x3d (function (){var or__5025__auto__ \x3d name;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.var_QMARK_(f)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f));\n} else {\nreturn intemporal.internal.activity.fn_name(f);\n}\n}\n})();\nvar resolved_fn \x3d ((cljs.core.var_QMARK_(f))?cljs.core.deref(f):f);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(registry,cljs.core.assoc,activity_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),resolved_fn,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),retry_policy], null));\n\nreturn activity_name;\n}));\n\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.internal.activity.register_activity_BANG_.cljs$lang$applyTo \x3d (function (seq50104){\nvar G__50105 \x3d cljs.core.first(seq50104);\nvar seq50104__$1 \x3d cljs.core.next(seq50104);\nvar G__50106 \x3d cljs.core.first(seq50104__$1);\nvar seq50104__$2 \x3d cljs.core.next(seq50104__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__50105,G__50106,seq50104__$2);\n}));\n\n/**\n * Register all methods of a protocol as activities, using the provided implementation.\n */\nintemporal.internal.activity.register_protocol_activities_BANG_ \x3d (function intemporal$internal$activity$register_protocol_activities_BANG_(registry,protocol,implementation){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22register-protocol-activities! not needed in CLJS. Use stub-protocol macro.\x22,cljs.core.PersistentArrayMap.EMPTY);\n});\nintemporal.internal.activity.get_activity_info \x3d (function intemporal$internal$activity$get_activity_info(registry,activity_name){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(registry),activity_name);\n});\nintemporal.internal.activity.get_activity_fn \x3d (function intemporal$internal$activity$get_activity_fn(registry,activity_name){\nreturn new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(intemporal.internal.activity.get_activity_info(registry,activity_name));\n});\nintemporal.internal.activity.ensure_registered_BANG_ \x3d (function intemporal$internal$activity$ensure_registered_BANG_(registry,f){\nvar activity_name \x3d ((cljs.core.var_QMARK_(f))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(f)):intemporal.internal.activity.fn_name(f));\nif(cljs.core.contains_QMARK_(cljs.core.deref(registry),activity_name)){\n} else {\nintemporal.internal.activity.register_activity_BANG_.cljs$core$IFn$_invoke$arity$variadic(registry,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),activity_name], 0));\n}\n\nreturn activity_name;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.activity.RetryPolicy \x3d (function (max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,__meta,__extmap,__hash){\nthis.max_attempts \x3d max_attempts;\nthis.backoff_ms \x3d backoff_ms;\nthis.max_backoff_ms \x3d max_backoff_ms;\nthis.backoff_multiplier \x3d backoff_multiplier;\nthis.retryable_fn \x3d retryable_fn;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k50110,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__50114 \x3d k50110;\nvar G__50114__$1 \x3d (((G__50114 instanceof cljs.core.Keyword))?G__50114.fqn:null);\nswitch (G__50114__$1) {\ncase \x22max-attempts\x22:\nreturn self__.max_attempts;\n\nbreak;\ncase \x22backoff-ms\x22:\nreturn self__.backoff_ms;\n\nbreak;\ncase \x22max-backoff-ms\x22:\nreturn self__.max_backoff_ms;\n\nbreak;\ncase \x22backoff-multiplier\x22:\nreturn self__.backoff_multiplier;\n\nbreak;\ncase \x22retryable-fn\x22:\nreturn self__.retryable_fn;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k50110,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__50115){\nvar vec__50116 \x3d p__50115;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50116,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.activity.RetryPolicy{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__50109){\nvar self__ \x3d this;\nvar G__50109__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__50109__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (434457415 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this50111,other50112){\nvar self__ \x3d this;\nvar this50111__$1 \x3d this;\nreturn (((!((other50112 \x3d\x3d null)))) \x26\x26 ((((this50111__$1.constructor \x3d\x3d\x3d other50112.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_attempts,other50112.max_attempts)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_ms,other50112.backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.max_backoff_ms,other50112.max_backoff_ms)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.backoff_multiplier,other50112.backoff_multiplier)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.retryable_fn,other50112.retryable_fn)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this50111__$1.__extmap,other50112.__extmap)))))))))))))));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k50110){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__50119 \x3d k50110;\nvar G__50119__$1 \x3d (((G__50119 instanceof cljs.core.Keyword))?G__50119.fqn:null);\nswitch (G__50119__$1) {\ncase \x22max-attempts\x22:\ncase \x22backoff-ms\x22:\ncase \x22max-backoff-ms\x22:\ncase \x22backoff-multiplier\x22:\ncase \x22retryable-fn\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k50110);\n\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__50120 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__50121 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(G__50109,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,G__50109,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,G__50109,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,G__50109,self__.retryable_fn,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__50120.cljs$core$IFn$_invoke$arity$2 ? pred__50120.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121) : pred__50120.call(null,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),expr__50121)))){\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,G__50109,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__50109),null));\n}\n}\n}\n}\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),self__.max_attempts,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),self__.backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),self__.max_backoff_ms,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),self__.backoff_multiplier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),self__.retryable_fn,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__50109){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.activity.RetryPolicy(self__.max_attempts,self__.backoff_ms,self__.max_backoff_ms,self__.backoff_multiplier,self__.retryable_fn,G__50109,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.activity.RetryPolicy.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.activity.RetryPolicy.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22max-attempts\x22,\x22max-attempts\x22,-967871472,null),new cljs.core.Symbol(null,\x22backoff-ms\x22,\x22backoff-ms\x22,-975154262,null),new cljs.core.Symbol(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,-570662135,null),new cljs.core.Symbol(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-200564171,null),new cljs.core.Symbol(null,\x22retryable-fn\x22,\x22retryable-fn\x22,-2084944186,null)], null);\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$type \x3d true);\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.activity/RetryPolicy\x22,null,(1),null));\n}));\n\n(intemporal.internal.activity.RetryPolicy.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.activity/RetryPolicy\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.activity/RetryPolicy.\n */\nintemporal.internal.activity.__GT_RetryPolicy \x3d (function intemporal$internal$activity$__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn){\nreturn (new intemporal.internal.activity.RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.activity/RetryPolicy, taking a map of keywords to field values.\n */\nintemporal.internal.activity.map__GT_RetryPolicy \x3d (function intemporal$internal$activity$map__GT_RetryPolicy(G__50113){\nvar extmap__5365__auto__ \x3d (function (){var G__50123 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__50113,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583)], 0));\nif(cljs.core.record_QMARK_(G__50113)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__50123);\n} else {\nreturn G__50123;\n}\n})();\nreturn (new intemporal.internal.activity.RetryPolicy(new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(G__50113),new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(G__50113),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a retry policy\n */\nintemporal.internal.activity.make_retry_policy \x3d (function intemporal$internal$activity$make_retry_policy(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___50133 \x3d arguments.length;\nvar i__5750__auto___50134 \x3d (0);\nwhile(true){\nif((i__5750__auto___50134 \x3c len__5749__auto___50133)){\nargs__5755__auto__.push((arguments[i__5750__auto___50134]));\n\nvar G__50135 \x3d (i__5750__auto___50134 + (1));\ni__5750__auto___50134 \x3d G__50135;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.activity.make_retry_policy.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__50125){\nvar map__50126 \x3d p__50125;\nvar map__50126__$1 \x3d cljs.core.__destructure_map(map__50126);\nvar max_attempts \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),(3));\nvar backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),(1000));\nvar max_backoff_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634),(60000));\nvar backoff_multiplier \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698),2.0);\nvar retryable_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__50126__$1,new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583),cljs.core.constantly(true));\nreturn intemporal.internal.activity.__GT_RetryPolicy(max_attempts,backoff_ms,max_backoff_ms,backoff_multiplier,retryable_fn);\n}));\n\n(intemporal.internal.activity.make_retry_policy.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.activity.make_retry_policy.cljs$lang$applyTo \x3d (function (seq50124){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq50124));\n}));\n\nintemporal.internal.activity.calculate_backoff \x3d (function intemporal$internal$activity$calculate_backoff(policy,attempt){\nvar base \x3d new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(policy);\nvar multiplier \x3d new cljs.core.Keyword(null,\x22backoff-multiplier\x22,\x22backoff-multiplier\x22,-1841095698).cljs$core$IFn$_invoke$arity$1(policy);\nvar max_backoff \x3d new cljs.core.Keyword(null,\x22max-backoff-ms\x22,\x22max-backoff-ms\x22,2083773634).cljs$core$IFn$_invoke$arity$1(policy);\nvar backoff \x3d (base * Math.pow(multiplier,(attempt - (1))));\nreturn cljs.core.long$((function (){var x__5113__auto__ \x3d backoff;\nvar y__5114__auto__ \x3d max_backoff;\nreturn ((x__5113__auto__ \x3c y__5114__auto__) ? x__5113__auto__ : y__5114__auto__);\n})());\n});\nintemporal.internal.activity.should_retry_QMARK_ \x3d (function intemporal$internal$activity$should_retry_QMARK_(policy,error,attempt){\nvar and__5023__auto__ \x3d (attempt \x3c new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(policy));\nif(and__5023__auto__){\nvar fexpr__50127 \x3d new cljs.core.Keyword(null,\x22retryable-fn\x22,\x22retryable-fn\x22,569491583).cljs$core$IFn$_invoke$arity$1(policy);\nreturn (fexpr__50127.cljs$core$IFn$_invoke$arity$1 ? fexpr__50127.cljs$core$IFn$_invoke$arity$1(error) : fexpr__50127.call(null,error));\n} else {\nreturn and__5023__auto__;\n}\n});\n"); SHADOW_ENV.evalLoad("taoensso.truss.impl.js", true, "goog.provide(\x27taoensso.truss.impl\x27);\ntaoensso.truss.impl.re_pattern_QMARK_ \x3d (function taoensso$truss$impl$re_pattern_QMARK_(x){\nreturn (x instanceof RegExp);\n});\ntaoensso.truss.impl.str_contains_QMARK_ \x3d (function taoensso$truss$impl$str_contains_QMARK_(s,substr){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((-1),s.indexOf(substr));\n});\ntaoensso.truss.impl.revery_QMARK_ \x3d (function taoensso$truss$impl$revery_QMARK_(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,coll);\n});\ntaoensso.truss.impl.revery \x3d (function taoensso$truss$impl$revery(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$)))){\nreturn coll;\n} else {\nreturn cljs.core.reduced(null);\n}\n}),coll,coll);\n});\ntaoensso.truss.impl.rsome \x3d (function taoensso$truss$impl$rsome(pred,coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,in$){\nvar temp__5825__auto__ \x3d (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(in$) : pred.call(null,in$));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar p \x3d temp__5825__auto__;\nreturn cljs.core.reduced(p);\n} else {\nreturn null;\n}\n}),null,coll);\n});\ntaoensso.truss.impl.assoc_some \x3d (function taoensso$truss$impl$assoc_some(var_args){\nvar G__28598 \x3d arguments.length;\nswitch (G__28598) {\ncase 3:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,v){\nif((!((v \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n} else {\nreturn m;\n}\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,m_kvs){\nreturn cljs.core.reduce_kv(taoensso.truss.impl.assoc_some,m,m_kvs);\n}));\n\n(taoensso.truss.impl.assoc_some.cljs$lang$maxFixedArity \x3d 3);\n\ntaoensso.truss.impl.ensure_set \x3d (function taoensso$truss$impl$ensure_set(x){\nif(cljs.core.set_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.set(x);\n}\n});\ntaoensso.truss.impl.ks_nnil_QMARK_ \x3d (function taoensso$truss$impl$ks_nnil_QMARK_(ks,m){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28613_SHARP_){\nreturn (!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,p1__28613_SHARP_) \x3d\x3d null)));\n}),ks);\n});\ntaoensso.truss.impl.ks_EQ_ \x3d (function taoensso$truss$impl$ks_EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3d\x3d\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28617_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28617_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_GT__EQ_ \x3d (function taoensso$truss$impl$ks_GT__EQ_(ks,m){\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3e\x3d cljs.core.count(ks));\nif(and__5023__auto__){\nreturn taoensso.truss.impl.revery_QMARK_((function (p1__28622_SHARP_){\nreturn cljs.core.contains_QMARK_(m,p1__28622_SHARP_);\n}),ks);\n} else {\nreturn and__5023__auto__;\n}\n});\ntaoensso.truss.impl.ks_LT__EQ_ \x3d (function taoensso$truss$impl$ks_LT__EQ_(ks,m){\nvar counted_ks \x3d ((cljs.core.counted_QMARK_(ks))?ks:cljs.core.set(ks));\nvar and__5023__auto__ \x3d (cljs.core.count(m) \x3c\x3d cljs.core.count(counted_ks));\nif(and__5023__auto__){\nvar ks_set \x3d taoensso.truss.impl.ensure_set(counted_ks);\nreturn cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core.contains_QMARK_(ks_set,k)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,m);\n} else {\nreturn and__5023__auto__;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ntaoensso.truss.impl.FailedAssertionInfo \x3d (function (ns,coords,pred,arg_form,arg_val,data,error,__meta,__extmap,__hash){\nthis.ns \x3d ns;\nthis.coords \x3d coords;\nthis.pred \x3d pred;\nthis.arg_form \x3d arg_form;\nthis.arg_val \x3d arg_val;\nthis.data \x3d data;\nthis.error \x3d error;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28631,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28648 \x3d k28631;\nvar G__28648__$1 \x3d (((G__28648 instanceof cljs.core.Keyword))?G__28648.fqn:null);\nswitch (G__28648__$1) {\ncase \x22ns\x22:\nreturn self__.ns;\n\nbreak;\ncase \x22coords\x22:\nreturn self__.coords;\n\nbreak;\ncase \x22pred\x22:\nreturn self__.pred;\n\nbreak;\ncase \x22arg-form\x22:\nreturn self__.arg_form;\n\nbreak;\ncase \x22arg-val\x22:\nreturn self__.arg_val;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22error\x22:\nreturn self__.error;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28631,else__5326__auto__);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28656){\nvar vec__28657 \x3d p__28656;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28657,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#taoensso.truss.impl.FailedAssertionInfo{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error],null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28630){\nvar self__ \x3d this;\nvar G__28630__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28630__$1,7,new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (7 + cljs.core.count(self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-352893736 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28632,other28633){\nvar self__ \x3d this;\nvar this28632__$1 \x3d this;\nreturn (((!((other28633 \x3d\x3d null)))) \x26\x26 ((((this28632__$1.constructor \x3d\x3d\x3d other28633.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.ns,other28633.ns)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.coords,other28633.coords)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.pred,other28633.pred)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_form,other28633.arg_form)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.arg_val,other28633.arg_val)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.data,other28633.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.error,other28633.error)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28632__$1.__extmap,other28633.__extmap)))))))))))))))))));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28631){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__28678 \x3d k28631;\nvar G__28678__$1 \x3d (((G__28678 instanceof cljs.core.Keyword))?G__28678.fqn:null);\nswitch (G__28678__$1) {\ncase \x22ns\x22:\ncase \x22coords\x22:\ncase \x22pred\x22:\ncase \x22arg-form\x22:\ncase \x22arg-val\x22:\ncase \x22data\x22:\ncase \x22error\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28631);\n\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__28679 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28680 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(G__28630,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,G__28630,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,G__28630,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,G__28630,self__.arg_val,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,G__28630,self__.data,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,G__28630,self__.error,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28679.cljs$core$IFn$_invoke$arity$2 ? pred__28679.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680) : pred__28679.call(null,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),expr__28680)))){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,G__28630,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28630),null));\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),self__.ns,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),self__.coords,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.pred,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),self__.arg_form,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),self__.arg_val,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),self__.error,null))], null),self__.__extmap));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28630){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new taoensso.truss.impl.FailedAssertionInfo(self__.ns,self__.coords,self__.pred,self__.arg_form,self__.arg_val,self__.data,self__.error,G__28630,self__.__extmap,self__.__hash));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22coords\x22,\x22coords\x22,1041102415,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22arg-form\x22,\x22arg-form\x22,-1253871756,null),new cljs.core.Symbol(null,\x22arg-val\x22,\x22arg-val\x22,-852016489,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22error\x22,\x22error\x22,661562495,null)], null);\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22taoensso.truss.impl/FailedAssertionInfo\x22,null,(1),null));\n}));\n\n(taoensso.truss.impl.FailedAssertionInfo.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22taoensso.truss.impl/FailedAssertionInfo\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/FailedAssertionInfo.\n */\ntaoensso.truss.impl.__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$__GT_FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error){\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,coords,pred,arg_form,arg_val,data,error,null,null,null));\n});\n\n/**\n * Factory function for taoensso.truss.impl/FailedAssertionInfo, taking a map of keywords to field values.\n */\ntaoensso.truss.impl.map__GT_FailedAssertionInfo \x3d (function taoensso$truss$impl$map__GT_FailedAssertionInfo(G__28640){\nvar extmap__5365__auto__ \x3d (function (){var G__28682 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28640,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032)], 0));\nif(cljs.core.record_QMARK_(G__28640)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28682);\n} else {\nreturn G__28682;\n}\n})();\nreturn (new taoensso.truss.impl.FailedAssertionInfo(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__28640),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(G__28640),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n\n/**\n* @constructor\n*/\ntaoensso.truss.impl.ArgEvalError \x3d (function (ex){\nthis.ex \x3d ex;\n});\n\n(taoensso.truss.impl.ArgEvalError.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ex\x22,\x22ex\x22,226760186,null)], null);\n}));\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$type \x3d true);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorStr \x3d \x22taoensso.truss.impl/ArgEvalError\x22);\n\n(taoensso.truss.impl.ArgEvalError.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22taoensso.truss.impl/ArgEvalError\x22);\n}));\n\n/**\n * Positional factory function for taoensso.truss.impl/ArgEvalError.\n */\ntaoensso.truss.impl.__GT_ArgEvalError \x3d (function taoensso$truss$impl$__GT_ArgEvalError(ex){\nreturn (new taoensso.truss.impl.ArgEvalError(ex));\n});\n\ntaoensso.truss.impl.FalsePredError \x3d ({});\n"); SHADOW_ENV.evalLoad("taoensso.truss.js", true, "goog.provide(\x27taoensso.truss\x27);\n/**\n * Returns true iff `sub-map` is a (possibly nested) submap of `super-map`,\n * i.e. iff every (nested) value in `sub-map` has the same (nested) value in `super-map`.\n * \n * `sub-map` may contain special values:\n * `:submap/nx` - Matches iff `super-map` does not contain key\n * `:submap/ex` - Matches iff `super-map` does contain key (any val)\n * `:submap/some` - Matches iff `super-map` does contain key (non-nil val)\n * (fn [super-val]) - Matches iff given unary predicate returns truthy\n * \n * Uses stack recursion so supports only limited nesting.\n */\ntaoensso.truss.submap_QMARK_ \x3d (function taoensso$truss$submap_QMARK_(super_map,sub_map){\nreturn cljs.core.reduce_kv((function (_,sub_key,sub_val){\nif(cljs.core.map_QMARK_(sub_val)){\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(super_map,sub_key);\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.map_QMARK_(super_val);\nif(and__5023__auto__){\nreturn (taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2 ? taoensso.truss.submap_QMARK_.cljs$core$IFn$_invoke$arity$2(super_val,sub_val) : taoensso.truss.submap_QMARK_.call(null,super_val,sub_val));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n} else {\nvar super_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(super_map,sub_key,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\nvar temp__5823__auto__ \x3d (function (){var temp__5823__auto__ \x3d ((cljs.core.fn_QMARK_(sub_val))?sub_val:null);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar pred_fn \x3d temp__5823__auto__;\nreturn (pred_fn.cljs$core$IFn$_invoke$arity$1 ? pred_fn.cljs$core$IFn$_invoke$arity$1(super_val) : pred_fn.call(null,super_val));\n} else {\nvar G__28967 \x3d sub_val;\nvar G__28967__$1 \x3d (((G__28967 instanceof cljs.core.Keyword))?G__28967.fqn:null);\nswitch (G__28967__$1) {\ncase \x22submap/nx\x22:\nreturn cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303));\n\nbreak;\ncase \x22submap/ex\x22:\nreturn (!(cljs.core.keyword_identical_QMARK_(super_val,new cljs.core.Keyword(\x22taoensso.truss\x22,\x22nx\x22,\x22taoensso.truss/nx\x22,1464090303))));\n\nbreak;\ncase \x22submap/some\x22:\nreturn (!((super_val \x3d\x3d null)));\n\nbreak;\ndefault:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sub_val,super_val);\n\n}\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}\n}),true,sub_map);\n});\n/**\n * Context map to assoc to `:truss/ctx` key of `truss/ex-info` data map.\n * \n * Re/bind dynamic value using `with-ctx`, `with-ctx+`, or `binding`.\n * Modify root (default) value using `set-ctx!`.\n * \n * As with all dynamic Clojure vars, \x22binding conveyance\x22 applies when\n * using futures, agents, etc.\n */\ntaoensso.truss._STAR_ctx_STAR_ \x3d null;\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.ex_info_STAR_ \x3d (function taoensso$truss$ex_info_STAR_(ns,coords,msg,data_map,cause){\nvar data_map__$1 \x3d (((ns \x3d\x3d null))?data_map:(cljs.core.truth_(coords)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords], null),data_map):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null),data_map)\n));\nvar data_map__$2 \x3d (function (){var temp__5823__auto__ \x3d taoensso.truss._STAR_ctx_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar ctx \x3d temp__5823__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data_map__$1,new cljs.core.Keyword(\x22truss\x22,\x22ctx\x22,\x22truss/ctx\x22,-336831129),ctx);\n} else {\nreturn data_map__$1;\n}\n})();\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data_map__$2,cause);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.unexpected_arg_BANG__STAR_ \x3d (function taoensso$truss$unexpected_arg_BANG__STAR_(ns,coords,arg,kvs){\nthrow taoensso.truss.ex_info_STAR_(ns,coords,(function (){var or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [\x22Unexpected argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((arg \x3d\x3d null))?\x22\x3cnil\x3e\x22:arg))].join(\x27\x27);\n}\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(kvs,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444)),new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg)], null)),null);\n});\n/**\n * Set `*ctx*` var\x27s default (root) value. See `*ctx*` for details.\n */\ntaoensso.truss.set_ctx_BANG_ \x3d (function taoensso$truss$set_ctx_BANG_(root_ctx_val){\nreturn (taoensso.truss._STAR_ctx_STAR_ \x3d root_ctx_val);\n});\n/**\n * Returns `new-ctx` given `old-ctx` and an update map or fn.\n */\ntaoensso.truss.update_ctx \x3d (function taoensso$truss$update_ctx(old_ctx,update_map_or_fn){\nif((update_map_or_fn \x3d\x3d null)){\nreturn old_ctx;\n} else {\nif(cljs.core.map_QMARK_(update_map_or_fn)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ \x3d old_ctx;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),update_map_or_fn);\n} else {\nif(cljs.core.ifn_QMARK_(update_map_or_fn)){\nreturn (update_map_or_fn.cljs$core$IFn$_invoke$arity$1 ? update_map_or_fn.cljs$core$IFn$_invoke$arity$1(old_ctx) : update_map_or_fn.call(null,old_ctx));\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [195,5], null),update_map_or_fn,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22update-map-or-fn\x22,\x22update-map-or-fn\x22,1067081399,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22update-ctx\x22,\x22taoensso.truss/update-ctx\x22,2138642429,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [null,\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n});\n/**\n * Returns true iff given platform error (`Throwable` or `js/Error`).\n */\ntaoensso.truss.error_QMARK_ \x3d (function taoensso$truss$error_QMARK_(x){\nreturn (x instanceof Error);\n});\n/**\n * Private, don\x27t use.\n * Returns root cause of given platform error.\n */\ntaoensso.truss.ex_root \x3d (function taoensso$truss$ex_root(x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29702 \x3d cause;\nerror \x3d G__29702;\ncontinue;\n} else {\nreturn error;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns class symbol of given platform error.\n */\ntaoensso.truss.ex_type \x3d (function taoensso$truss$ex_type(x){\nif((x instanceof cljs.core.ExceptionInfo)){\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null);\n} else {\nif((x instanceof Error)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,x.name);\n} else {\nreturn null;\n}\n}\n});\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data]} for given platform error.\n */\ntaoensso.truss.ex_map_STAR_ \x3d (function taoensso$truss$ex_map_STAR_(x){\nvar temp__5825__auto__ \x3d cljs.core.ex_message(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar msg \x3d temp__5825__auto__;\nvar temp__5823__auto__ \x3d cljs.core.not_empty(cljs.core.ex_data(x));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar data \x3d temp__5823__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),taoensso.truss.ex_type(x),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Private, don\x27t use.\n * Returns vector cause chain of given platform error.\n */\ntaoensso.truss.ex_chain \x3d (function taoensso$truss$ex_chain(var_args){\nvar G__29025 \x3d arguments.length;\nswitch (G__29025) {\ncase 1:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2(false,x);\n}));\n\n(taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$2 \x3d (function (as_maps_QMARK_,x){\nif(cljs.core.truth_(taoensso.truss.error_QMARK_(x))){\nvar xf \x3d (cljs.core.truth_(as_maps_QMARK_)?taoensso.truss.ex_map_STAR_:cljs.core.identity);\nvar acc \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(x) : xf.call(null,x))], null);\nvar error \x3d x;\nwhile(true){\nvar temp__5823__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar cause \x3d temp__5823__auto__;\nvar G__29732 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,(xf.cljs$core$IFn$_invoke$arity$1 ? xf.cljs$core$IFn$_invoke$arity$1(cause) : xf.call(null,cause)));\nvar G__29733 \x3d cause;\nacc \x3d G__29732;\nerror \x3d G__29733;\ncontinue;\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.ex_chain.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Private, don\x27t use.\n * Returns ?{:keys [type msg data chain trace]} for given platform error.\n */\ntaoensso.truss.ex_map \x3d (function taoensso$truss$ex_map(x){\nvar temp__5825__auto__ \x3d taoensso.truss.ex_chain.cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar chain \x3d temp__5825__auto__;\nvar maps \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(taoensso.truss.ex_map_STAR_,chain);\nvar root \x3d cljs.core.peek(chain);\nvar root_map \x3d cljs.core.peek(maps);\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(root_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22chain\x22,\x22chain\x22,15631029),maps,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),(function (){var temp__5825__auto____$1 \x3d root.stack;\nif(cljs.core.truth_(temp__5825__auto____$1)){\nvar st \x3d temp__5825__auto____$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(st,\x22\x22)){\nreturn null;\n} else {\nreturn st;\n}\n} else {\nreturn null;\n}\n})()], null));\n} else {\nreturn null;\n}\n});\n/**\n * Given a platform error and criteria for matching, returns the error if it\n * matches all criteria. Otherwise returns nil.\n * \n * `kind` may be:\n * - A class (`ArithmeticException`, `AssertionError`, etc.)\n * - A special keyword as given to `try*` (`:default`, `:common`, `:ex-info`, `:all`)\n * - A set of `kind`s as above, at least one of which must match\n * - A predicate function, (fn match? [x]) -\x3e bool\n * \n * `pattern` may be:\n * - A string or Regex against which `ex-message` must match\n * - A map against which `ex-data` must match using `submap?`\n * - A set of `pattern`s as above, at least one of which must match\n * \n * When an error with (nested) causes doesn\x27t match, a match will be attempted\n * against its (nested) causes.\n * \n * This is a low-level util, see also `throws`, `throws?`.\n */\ntaoensso.truss.matching_error \x3d (function taoensso$truss$matching_error(var_args){\nvar G__29188 \x3d arguments.length;\nswitch (G__29188) {\ncase 1:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$1 \x3d (function (error){\nreturn error;\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2 \x3d (function (kind,error){\nvar temp__5825__auto__ \x3d (((kind instanceof cljs.core.Keyword))?(function (){var G__29198 \x3d kind;\nvar G__29198__$1 \x3d (((G__29198 instanceof cljs.core.Keyword))?G__29198.fqn:null);\nswitch (G__29198__$1) {\ncase \x22default\x22:\ncase \x22all-but-critical\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ncase \x22common\x22:\nreturn (error instanceof Error);\n\nbreak;\ncase \x22ex-info\x22:\nreturn (error instanceof cljs.core.ExceptionInfo);\n\nbreak;\ncase \x22all\x22:\ncase \x22any\x22:\nreturn (!((error \x3d\x3d null)));\n\nbreak;\ndefault:\nthrow taoensso.truss.ex_info_STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [406,21], null),\x22Unexpected Truss `matching-error` `kind` keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22given\x22,\x22given\x22,716253602),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),kind,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(kind)], null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),\x22null\x22,new cljs.core.Keyword(null,\x22all\x22,\x22all\x22,892129742),\x22null\x22,new cljs.core.Keyword(null,\x22common\x22,\x22common\x22,-1822281391),\x22null\x22,new cljs.core.Keyword(null,\x22ex-info\x22,\x22ex-info\x22,2114560529),\x22null\x22], null), null)], null),null);\n\n}\n})():(cljs.core.truth_(taoensso.truss.error_QMARK_(kind))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kind,error):((cljs.core.fn_QMARK_(kind))?(kind.cljs$core$IFn$_invoke$arity$1 ? kind.cljs$core$IFn$_invoke$arity$1(error) : kind.call(null,error)):((cljs.core.set_QMARK_(kind))?taoensso.truss.impl.rsome((function (p1__29172_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(p1__29172_SHARP_,error);\n}),kind):(error instanceof kind)\n))));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar match_QMARK_ \x3d temp__5825__auto__;\nreturn error;\n} else {\nreturn null;\n}\n}));\n\n(taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3 \x3d (function (kind,pattern,error){\nvar temp__5823__auto__ \x3d (function (){var and__5023__auto__ \x3d taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$2(kind,error);\nif(cljs.core.truth_(and__5023__auto__)){\nif((pattern \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.set_QMARK_(pattern)){\nreturn taoensso.truss.impl.rsome((function (p1__29175_SHARP_){\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,p1__29175_SHARP_,error);\n}),pattern);\n} else {\nif(typeof pattern \x3d\x3d\x3d \x27string\x27){\nreturn taoensso.truss.impl.str_contains_QMARK_(cljs.core.ex_message(error),pattern);\n} else {\nif(taoensso.truss.impl.re_pattern_QMARK_(pattern)){\nreturn cljs.core.re_find(pattern,cljs.core.ex_message(error));\n} else {\nif(cljs.core.map_QMARK_(pattern)){\nvar temp__5825__auto__ \x3d cljs.core.ex_data(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar data \x3d temp__5825__auto__;\nreturn taoensso.truss.submap_QMARK_(data,pattern);\n} else {\nreturn null;\n}\n} else {\nreturn taoensso.truss.unexpected_arg_BANG__STAR_(\x22taoensso.truss\x22,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [428,17], null),pattern,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22param\x22,\x22param\x22,2013631823),new cljs.core.Symbol(null,\x22pattern\x22,\x22pattern\x22,1882666950,null),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Symbol(\x22taoensso.truss\x22,\x22matching-error\x22,\x22taoensso.truss/matching-error\x22,557680092,null),new cljs.core.Keyword(null,\x22expected\x22,\x22expected\x22,1583670997),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [null,\x22null\x22,new cljs.core.Symbol(null,\x22set\x22,\x22set\x22,1945134081,null),\x22null\x22,new cljs.core.Symbol(null,\x22map\x22,\x22map\x22,-1282745308,null),\x22null\x22,new cljs.core.Symbol(null,\x22re-pattern\x22,\x22re-pattern\x22,1047705161,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null)], null));\n\n}\n}\n}\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5823__auto__)){\nvar match_QMARK_ \x3d temp__5823__auto__;\nreturn error;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.ex_cause(error);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar cause \x3d temp__5825__auto__;\nreturn taoensso.truss.matching_error.cljs$core$IFn$_invoke$arity$3(kind,pattern,cause);\n} else {\nreturn null;\n}\n}\n}));\n\n(taoensso.truss.matching_error.cljs$lang$maxFixedArity \x3d 3);\n\nvar get_default_error_fn_29781 \x3d (function (base_data){\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468),\x22Error thrown during reduction\x22);\nvar base_data__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(base_data,new cljs.core.Keyword(\x22error\x22,\x22msg\x22,\x22error/msg\x22,-1549923468));\nreturn (function taoensso$truss$default_error_fn(data,cause){\nthrow taoensso.truss.ex_info_STAR_(null,null,msg,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(base_data__$1,data),cause);\n});\n});\n/**\n * Returns wrapper around given reducing function `rf` so that if `rf`\n * throws, (error-fn \x3cthrown-error\x3e \x3ccontextual-data\x3e) will be called.\n * \n * The default `error-fn` will rethrow the original error, wrapped in\n * extra contextual information to aid debugging.\n * \n * Helps make reducing fns easier to debug!\n * See also `catching-xform`.\n */\ntaoensso.truss.catching_rf \x3d (function taoensso$truss$catching_rf(var_args){\nvar G__29301 \x3d arguments.length;\nswitch (G__29301) {\ncase 1:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d (function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(get_default_error_fn_29781(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf], null)),rf);\n}));\n\n(taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,rf){\nvar error_fn__$1 \x3d ((cljs.core.map_QMARK_(error_fn))?get_default_error_fn_29781(error_fn):error_fn);\nreturn (function() {\nvar taoensso$truss$catching_rf \x3d null;\nvar taoensso$truss$catching_rf__0 \x3d (function (){\ntry{return (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null));\n}catch (e29328){var t \x3d e29328;\nvar G__29332 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null))], null);\nvar G__29333 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29332,G__29333) : error_fn__$1.call(null,G__29332,G__29333));\n}});\nvar taoensso$truss$catching_rf__1 \x3d (function (acc){\ntry{return (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(acc) : rf.call(null,acc));\n}catch (e29345){var t \x3d e29345;\nvar G__29349 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null)], null)], null);\nvar G__29350 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29349,G__29350) : error_fn__$1.call(null,G__29349,G__29350));\n}});\nvar taoensso$truss$catching_rf__2 \x3d (function (acc,in$){\ntry{return (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(acc,in$) : rf.call(null,acc,in$));\n}catch (e29364){var t \x3d e29364;\nvar G__29368 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22in\x22,\x22in\x22,109346662,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),in$,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(in$)], null)], null)], null);\nvar G__29369 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29368,G__29369) : error_fn__$1.call(null,G__29368,G__29369));\n}});\nvar taoensso$truss$catching_rf__3 \x3d (function (acc,k,v){\ntry{return (rf.cljs$core$IFn$_invoke$arity$3 ? rf.cljs$core$IFn$_invoke$arity$3(acc,k,v) : rf.call(null,acc,k,v));\n}catch (e29374){var t \x3d e29374;\nvar G__29375 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22rf\x22,\x22rf\x22,2002878243),rf,new cljs.core.Keyword(null,\x22call\x22,\x22call\x22,-519999866),cljs.core.list(new cljs.core.Symbol(null,\x22rf\x22,\x22rf\x22,-651557526,null),new cljs.core.Symbol(null,\x22acc\x22,\x22acc\x22,-1815869457,null),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22acc\x22,\x22acc\x22,838566312),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),acc,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(acc)], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),k,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(k)], null),new cljs.core.Keyword(null,\x22v\x22,\x22v\x22,21465059),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),v,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(v)], null)], null)], null);\nvar G__29376 \x3d t;\nreturn (error_fn__$1.cljs$core$IFn$_invoke$arity$2 ? error_fn__$1.cljs$core$IFn$_invoke$arity$2(G__29375,G__29376) : error_fn__$1.call(null,G__29375,G__29376));\n}});\ntaoensso$truss$catching_rf \x3d function(acc,k,v){\nswitch(arguments.length){\ncase 0:\nreturn taoensso$truss$catching_rf__0.call(this);\ncase 1:\nreturn taoensso$truss$catching_rf__1.call(this,acc);\ncase 2:\nreturn taoensso$truss$catching_rf__2.call(this,acc,k);\ncase 3:\nreturn taoensso$truss$catching_rf__3.call(this,acc,k,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$0 \x3d taoensso$truss$catching_rf__0;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$1 \x3d taoensso$truss$catching_rf__1;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$2 \x3d taoensso$truss$catching_rf__2;\ntaoensso$truss$catching_rf.cljs$core$IFn$_invoke$arity$3 \x3d taoensso$truss$catching_rf__3;\nreturn taoensso$truss$catching_rf;\n})()\n}));\n\n(taoensso.truss.catching_rf.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Like `catching-rf`, but applies to a transducer (`xform`).\n * \n * Helps make transductions much easier to debug by greatly improving\n * the info provided in any errors thrown by `xform` or the reducing fn:\n * \n * (transduce\n * (catching-xform (comp (filter even?) (map inc))) ; Modified xform\n * \x3creducing-fn\x3e\n * \x3c...\x3e)\n */\ntaoensso.truss.catching_xform \x3d (function taoensso$truss$catching_xform(var_args){\nvar G__29395 \x3d arguments.length;\nswitch (G__29395) {\ncase 2:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$2 \x3d (function (error_fn,xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((function (rf){\nreturn taoensso.truss.catching_rf.cljs$core$IFn$_invoke$arity$2(error_fn,rf);\n}),xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(taoensso.truss.catching_rf,xform);\n}));\n\n(taoensso.truss.catching_xform.cljs$lang$maxFixedArity \x3d 2);\n\ntaoensso.truss.sys_newline \x3d \x22\\n\x22;\nvar legacy_ex_data_QMARK__29853 \x3d false;\n/**\n * Returns an appropriate `truss/ex-info` for given failed assertion info map.\n */\ntaoensso.truss.failed_assertion_ex_info \x3d (function taoensso$truss$failed_assertion_ex_info(var_args){\nvar G__29442 \x3d arguments.length;\nswitch (G__29442) {\ncase 1:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (failed_assertion_info){\nreturn taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2(legacy_ex_data_QMARK__29853,failed_assertion_info);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (legacy_ex_data_QMARK___$1,failed_assertion_info){\nvar map__29454 \x3d failed_assertion_info;\nvar map__29454__$1 \x3d cljs.core.__destructure_map(map__29454);\nvar inst \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29454__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar undefined_arg_QMARK_ \x3d cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181));\nvar coords_str \x3d (function (){var temp__5825__auto__ \x3d coords;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__29471 \x3d temp__5825__auto__;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29471,(1),null);\nif(cljs.core.truth_(column)){\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column),\x22]\x22].join(\x27\x27);\n} else {\nreturn [\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),\x22]\x22].join(\x27\x27);\n}\n} else {\nreturn null;\n}\n})();\nvar msg \x3d [\x22Truss assertion failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),coords_str,\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nvar msg__$1 \x3d (cljs.core.truth_(error)?(function (){var error_msg \x3d cljs.core.ex_message(error);\nif(undefined_arg_QMARK_){\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n})():msg);\nreturn taoensso.truss.ex_info_STAR_(null,null,msg__$1,(cljs.core.truth_(legacy_ex_data_QMARK___$1)?new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),(function (){var vec__29490 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29490,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null);\n})(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null):taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22inst\x22,\x22inst\x22,645962501),(new Date()),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):cljs.core.type(arg_val))], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112),coords,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null))),error);\n}));\n\n(taoensso.truss.failed_assertion_ex_info.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Unary handler fn to call with failed assertion info map when a Truss\n * assertion (`have`, `have?`, `have!`, `have!?`) fails.\n * \n * Will by default throw an appropriate `truss/ex-info`.\n * This is a decent place to inject logging for assertion failures, etc.\n * \n * Arg given to handler is a map with keys:\n * \n * `:ns` ----------- ?str namespace of assertion callsite\n * `:coords` ------- ?[line column] of assertion callsite\n * \n * `:pred` --------- Assertion predicate form (e.g. `clojure.core/string?` sym)\n * `:arg-form` ----- Assertion argument form given to predicate (e.g. `x` sym)\n * `:arg-val` ------ Runtime value of argument given to predicate\n * \n * `:data` --------- Optional arbitrary data map provided to assertion macro\n * `:error` -------- `Throwable` or `js/Error` thrown evaluating predicate\n */\ntaoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d (function taoensso$truss$_STAR_failed_assertion_handler_STAR_(failed_assertion_info){\nthrow taoensso.truss.failed_assertion_ex_info.cljs$core$IFn$_invoke$arity$1(failed_assertion_info);\n});\n/**\n * Private, don\x27t use.\n */\ntaoensso.truss.failed_assertion_BANG_ \x3d (function taoensso$truss$failed_assertion_BANG_(ns,line,column,pred,arg_form,arg_val,data_fn,error){\nvar temp__5823__auto__ \x3d taoensso.truss._STAR_failed_assertion_handler_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar handler \x3d temp__5823__auto__;\nvar G__29554 \x3d (function (){var undefined_arg_QMARK_ \x3d (arg_val instanceof taoensso.truss.impl.ArgEvalError);\nreturn (new taoensso.truss.impl.FailedAssertionInfo(ns,(cljs.core.truth_(line)?(cljs.core.truth_(column)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,column], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line], null)):null),pred,arg_form,((undefined_arg_QMARK_)?new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181):arg_val),(function (){var temp__5825__auto__ \x3d data_fn;\nif(cljs.core.truth_(temp__5825__auto__)){\nvar df \x3d temp__5825__auto__;\ntry{return (df.cljs$core$IFn$_invoke$arity$0 ? df.cljs$core$IFn$_invoke$arity$0() : df.call(null));\n}catch (e29557){var _ \x3d e29557;\nreturn new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181);\n}} else {\nreturn null;\n}\n})(),(((error \x3d\x3d\x3d taoensso.truss.impl.FalsePredError))?null:((undefined_arg_QMARK_)?error.ex:error\n)),null,null,null));\n})();\nreturn (handler.cljs$core$IFn$_invoke$arity$1 ? handler.cljs$core$IFn$_invoke$arity$1(G__29554) : handler.call(null,G__29554));\n} else {\nreturn arg_val;\n}\n});\n/**\n * Private, don\x27t use. Wraps given Truss v1 `error-fn` to convert\n * Truss v2 `*failed-assertion-handler*` arg.\n */\ntaoensso.truss.legacy_error_fn \x3d (function taoensso$truss$legacy_error_fn(f){\nif(cljs.core.truth_(f)){\nreturn (function (failed_assertion_info){\nvar G__29581 \x3d (new cljs.core.Delay((function (){\nvar map__29588 \x3d failed_assertion_info;\nvar map__29588__$1 \x3d cljs.core.__destructure_map(map__29588);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar coords \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22coords\x22,\x22coords\x22,-599429112));\nvar pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar arg_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-form\x22,\x22arg-form\x22,1400564013));\nvar arg_val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22arg-val\x22,\x22arg-val\x22,1802419280));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar error \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29588__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032));\nvar vec__29589 \x3d coords;\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(0),null);\nvar column \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29589,(1),null);\nvar msg_ \x3d (new cljs.core.Delay((function (){\nvar msg \x3d [\x22Invariant failed at \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),(cljs.core.truth_(line)?[\x22[\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[\x22,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):null),\x22]\x22].join(\x27\x27):null),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,pred,(new cljs.core.List(null,arg_form,null,(1),null)),(2),null)))].join(\x27\x27);\nif(cljs.core.truth_(error)){\nvar error_msg \x3d cljs.core.ex_message(error);\nif(cljs.core.keyword_identical_QMARK_(arg_val,new cljs.core.Keyword(\x22truss\x22,\x22exception\x22,\x22truss/exception\x22,1369199181))){\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n} else {\nreturn [msg,taoensso.truss.sys_newline,taoensso.truss.sys_newline,\x22Error evaluating pred: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error_msg)].join(\x27\x27);\n}\n} else {\nreturn msg;\n}\n}),null));\nreturn taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22msg_\x22,\x22msg_\x22,-1925147000),msg_,new cljs.core.Keyword(null,\x22dt\x22,\x22dt\x22,-368444759),(new Date()),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),pred,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),arg_form,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),arg_val,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.type(arg_val)], null),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22*assert*\x22,\x22*assert*\x22,-160895053),cljs.core._STAR_assert_STAR_], null),new cljs.core.Keyword(null,\x22loc\x22,\x22loc\x22,-584284901),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),taoensso.truss.impl.assoc_some.cljs$core$IFn$_invoke$arity$2(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),taoensso.truss._STAR_ctx_STAR_,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837),data], null)),new cljs.core.Keyword(null,\x22err\x22,\x22err\x22,-2089457205),error], null));\n}),null));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__29581) : f.call(null,G__29581));\n});\n} else {\nreturn null;\n}\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_dynamic_assertion_data \x3d (function taoensso$truss$get_dynamic_assertion_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*ctx*`\n */\ntaoensso.truss.get_data \x3d (function taoensso$truss$get_data(){\nreturn taoensso.truss._STAR_ctx_STAR_;\n});\n/**\n * Prefer `*failed-assertion-handler*` (note breaking changes to argument).\n */\ntaoensso.truss.set_error_fn_BANG_ \x3d (function taoensso$truss$set_error_fn_BANG_(f){\nreturn (taoensso.truss._STAR_failed_assertion_handler_STAR_ \x3d taoensso.truss.legacy_error_fn(f));\n});\n"); @@ -1610,8 +1610,8 @@ SHADOW_ENV.evalLoad("taoensso.telemere.js", true, "goog.provide(\x27taoensso.tel SHADOW_ENV.evalLoad("intemporal.internal.logging.js", true, "goog.provide(\x27intemporal.internal.logging\x27);\nintemporal.internal.logging.fmat \x3d (function intemporal$internal$logging$fmat(s,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,s,args);\n});\n"); SHADOW_ENV.evalLoad("intemporal.utils.js", true, "goog.provide(\x27intemporal.utils\x27);\nintemporal.utils.current_time_ms \x3d (function intemporal$utils$current_time_ms(){\nreturn Date.now();\n});\n"); SHADOW_ENV.evalLoad("intemporal.internal.runtime.js", true, "goog.provide(\x27intemporal.internal.runtime\x27);\n/**\n * Execute promise-fn with optional timeout. If timeout-ms is provided,\n * races the promise against a timeout promise.\n * Clears the timeout timer when the race settles to avoid keeping the\n * Node.js event loop alive.\n */\nintemporal.internal.runtime.promise_with_timeout \x3d (function intemporal$internal$runtime$promise_with_timeout(promise_fn,timeout_ms){\nif(cljs.core.truth_(timeout_ms)){\nvar timer_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar timeout_p \x3d (new Promise((function (resolve,_){\nreturn cljs.core.reset_BANG_(timer_id,setTimeout((function (){\nvar G__69599 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232),true], null);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__69599) : resolve.call(null,G__69599));\n}),timeout_ms));\n})));\nreturn Promise.race([promise_fn,timeout_p]).then((function (result){\nvar temp__5825__auto___69755 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___69755)){\nvar id_69756 \x3d temp__5825__auto___69755;\nclearTimeout(id_69756);\n} else {\n}\n\nreturn result;\n})).catch((function (err){\nvar temp__5825__auto___69757 \x3d cljs.core.deref(timer_id);\nif(cljs.core.truth_(temp__5825__auto___69757)){\nvar id_69758 \x3d temp__5825__auto___69757;\nclearTimeout(id_69758);\n} else {\n}\n\nthrow err;\n}));\n} else {\nreturn promise_fn;\n}\n});\n/**\n * Promise-based sleep for retry backoff\n */\nintemporal.internal.runtime.async_sleep \x3d (function intemporal$internal$runtime$async_sleep(ms){\nreturn (new Promise((function (resolve,_reject){\nreturn setTimeout(resolve,ms);\n})));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IScheduler}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.DefaultScheduler \x3d (function (pending_timers,__meta,__extmap,__hash){\nthis.pending_timers \x3d pending_timers;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k69604,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__69611 \x3d k69604;\nvar G__69611__$1 \x3d (((G__69611 instanceof cljs.core.Keyword))?G__69611.fqn:null);\nswitch (G__69611__$1) {\ncase \x22pending-timers\x22:\nreturn self__.pending_timers;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k69604,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__69612){\nvar vec__69613 \x3d p__69612;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69613,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69613,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.DefaultScheduler{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__69603){\nvar self__ \x3d this;\nvar G__69603__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__69603__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-116778544 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this69605,other69606){\nvar self__ \x3d this;\nvar this69605__$1 \x3d this;\nreturn (((!((other69606 \x3d\x3d null)))) \x26\x26 ((((this69605__$1.constructor \x3d\x3d\x3d other69606.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69605__$1.pending_timers,other69606.pending_timers)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69605__$1.__extmap,other69606.__extmap)))))));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k69604){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__69619 \x3d k69604;\nvar G__69619__$1 \x3d (((G__69619 instanceof cljs.core.Keyword))?G__69619.fqn:null);\nswitch (G__69619__$1) {\ncase \x22pending-timers\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k69604);\n\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__69603){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__69621 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__69622 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__69621.cljs$core$IFn$_invoke$arity$2 ? pred__69621.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__69622) : pred__69621.call(null,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),expr__69622)))){\nreturn (new intemporal.internal.runtime.DefaultScheduler(G__69603,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__69603),null));\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107),self__.pending_timers,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__69603){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.DefaultScheduler(self__.pending_timers,G__69603,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$schedule_timer$arity$5 \x3d (function (_,workflow_id,seq_num,fire_at,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar delay_ms \x3d (function (){var x__5110__auto__ \x3d (0);\nvar y__5111__auto__ \x3d (fire_at - intemporal.utils.current_time_ms());\nreturn ((x__5110__auto__ \x3e y__5111__auto__) ? x__5110__auto__ : y__5111__auto__);\n})();\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar timer_id \x3d setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n\nreturn (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null));\n}),delay_ms);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.pending_timers,cljs.core.assoc,timer_key,timer_id);\n\nreturn timer_key;\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$cancel_timer$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar timer_key \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [workflow_id,seq_num], null);\nvar temp__5825__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.pending_timers),timer_key);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar timer_id \x3d temp__5825__auto__;\nclearTimeout(timer_id);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.pending_timers,cljs.core.dissoc,timer_key);\n} else {\nreturn null;\n}\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar seq__69633_69768 \x3d cljs.core.seq(cljs.core.deref(self__.pending_timers));\nvar chunk__69634_69769 \x3d null;\nvar count__69635_69770 \x3d (0);\nvar i__69636_69771 \x3d (0);\nwhile(true){\nif((i__69636_69771 \x3c count__69635_69770)){\nvar vec__69643_69772 \x3d chunk__69634_69769.cljs$core$IIndexed$_nth$arity$2(null,i__69636_69771);\nvar __69773__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69643_69772,(0),null);\nvar timer_id_69774 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69643_69772,(1),null);\nclearTimeout(timer_id_69774);\n\n\nvar G__69775 \x3d seq__69633_69768;\nvar G__69776 \x3d chunk__69634_69769;\nvar G__69777 \x3d count__69635_69770;\nvar G__69778 \x3d (i__69636_69771 + (1));\nseq__69633_69768 \x3d G__69775;\nchunk__69634_69769 \x3d G__69776;\ncount__69635_69770 \x3d G__69777;\ni__69636_69771 \x3d G__69778;\ncontinue;\n} else {\nvar temp__5825__auto___69779 \x3d cljs.core.seq(seq__69633_69768);\nif(temp__5825__auto___69779){\nvar seq__69633_69780__$1 \x3d temp__5825__auto___69779;\nif(cljs.core.chunked_seq_QMARK_(seq__69633_69780__$1)){\nvar c__5548__auto___69781 \x3d cljs.core.chunk_first(seq__69633_69780__$1);\nvar G__69783 \x3d cljs.core.chunk_rest(seq__69633_69780__$1);\nvar G__69784 \x3d c__5548__auto___69781;\nvar G__69785 \x3d cljs.core.count(c__5548__auto___69781);\nvar G__69786 \x3d (0);\nseq__69633_69768 \x3d G__69783;\nchunk__69634_69769 \x3d G__69784;\ncount__69635_69770 \x3d G__69785;\ni__69636_69771 \x3d G__69786;\ncontinue;\n} else {\nvar vec__69646_69792 \x3d cljs.core.first(seq__69633_69780__$1);\nvar __69793__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69646_69792,(0),null);\nvar timer_id_69794 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69646_69792,(1),null);\nclearTimeout(timer_id_69794);\n\n\nvar G__69795 \x3d cljs.core.next(seq__69633_69780__$1);\nvar G__69796 \x3d null;\nvar G__69797 \x3d (0);\nvar G__69798 \x3d (0);\nseq__69633_69768 \x3d G__69795;\nchunk__69634_69769 \x3d G__69796;\ncount__69635_69770 \x3d G__69797;\ni__69636_69771 \x3d G__69798;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reset_BANG_(self__.pending_timers,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.prototype.intemporal$protocol$IScheduler$shutdown_scheduler_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.empty_QMARK_(cljs.core.deref(self__.pending_timers));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22pending-timers\x22,\x22pending-timers\x22,904694420,null)], null);\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/DefaultScheduler\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.DefaultScheduler.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/DefaultScheduler\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/DefaultScheduler.\n */\nintemporal.internal.runtime.__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$__GT_DefaultScheduler(pending_timers){\nreturn (new intemporal.internal.runtime.DefaultScheduler(pending_timers,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/DefaultScheduler, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_DefaultScheduler \x3d (function intemporal$internal$runtime$map__GT_DefaultScheduler(G__69608){\nvar extmap__5365__auto__ \x3d (function (){var G__69652 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__69608,new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107));\nif(cljs.core.record_QMARK_(G__69608)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__69652);\n} else {\nreturn G__69652;\n}\n})();\nreturn (new intemporal.internal.runtime.DefaultScheduler(new cljs.core.Keyword(null,\x22pending-timers\x22,\x22pending-timers\x22,-735837107).cljs$core$IFn$_invoke$arity$1(G__69608),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create a new scheduler (threads option ignored in ClojureScript)\n */\nintemporal.internal.runtime.make_scheduler \x3d (function intemporal$internal$runtime$make_scheduler(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69799 \x3d arguments.length;\nvar i__5750__auto___69800 \x3d (0);\nwhile(true){\nif((i__5750__auto___69800 \x3c len__5749__auto___69799)){\nargs__5755__auto__.push((arguments[i__5750__auto___69800]));\n\nvar G__69801 \x3d (i__5750__auto___69800 + (1));\ni__5750__auto___69800 \x3d G__69801;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69654){\nvar map__69655 \x3d p__69654;\nvar map__69655__$1 \x3d cljs.core.__destructure_map(map__69655);\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69655__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(2));\nreturn intemporal.internal.runtime.__GT_DefaultScheduler(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(intemporal.internal.runtime.make_scheduler.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_scheduler.cljs$lang$applyTo \x3d (function (seq69653){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq69653));\n}));\n\n/**\n * Execute activity function with optional retry policy.\n * Returns a promise that resolves with {:result ... :duration ... :attempts ...}\n */\nintemporal.internal.runtime.execute_activity_with_retry \x3d (function intemporal$internal$runtime$execute_activity_with_retry(activity_fn,args,timeout_ms,retry_policy,activity_name){\nvar attempt \x3d (function intemporal$internal$runtime$execute_activity_with_retry_$_attempt(attempt_num,start_time){\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(activity_fn,args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e69674){if((e69674 instanceof Error)){\nvar e \x3d e69674;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e69674;\n\n}\n}}))),timeout_ms).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout_ms);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),(intemporal.utils.current_time_ms() - start_time),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt_num], null);\n}\n})).catch((function (e){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d retry_policy;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn intemporal.internal.activity.should_retry_QMARK_(retry_policy,e,attempt_num);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar backoff_ms \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt_num);\nvar args__69521__auto___69805 \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity %s failed, retrying after %dms (attempt %d)\x22,activity_name,backoff_ms,attempt_num], null);\nvar vec__69678_69806 \x3d (((cljs.core.first(args__69521__auto___69805) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69805),cljs.core.second(args__69521__auto___69805),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69805)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69805),cljs.core.rest(args__69521__auto___69805)], null));\nvar err__69522__auto___69807 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(0),null);\nvar fmt__69523__auto___69808 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(1),null);\nvar fmt_args__69524__auto___69809 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69678_69806,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.runtime\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69808,fmt_args__69524__auto___69809),err__69522__auto___69807,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.runtime.async_sleep(backoff_ms).then((function (_){\nreturn intemporal$internal$runtime$execute_activity_with_retry_$_attempt((attempt_num + (1)),start_time);\n}));\n} else {\nthrow e;\n}\n}));\n});\nvar start_time \x3d intemporal.utils.current_time_ms();\nreturn attempt((1),start_time);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IActivityExecutor}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.internal.runtime.ParallelActivityExecutor \x3d (function (registry_atom,default_timeout_ms,__meta,__extmap,__hash){\nthis.registry_atom \x3d registry_atom;\nthis.default_timeout_ms \x3d default_timeout_ms;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k69688,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__69704 \x3d k69688;\nvar G__69704__$1 \x3d (((G__69704 instanceof cljs.core.Keyword))?G__69704.fqn:null);\nswitch (G__69704__$1) {\ncase \x22registry-atom\x22:\nreturn self__.registry_atom;\n\nbreak;\ncase \x22default-timeout-ms\x22:\nreturn self__.default_timeout_ms;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k69688,else__5326__auto__);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__69705){\nvar vec__69706 \x3d p__69705;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69706,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69706,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activity$arity$4 \x3d (function (_,activity_name,args,timeout_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Activity not found\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name], null));\n} else {\nreturn intemporal.internal.runtime.promise_with_timeout((new Promise((function (resolve,reject){\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args);\nif((result instanceof Promise)){\nreturn result.then(resolve,reject);\n} else {\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(result) : resolve.call(null,result));\n}\n}catch (e69709){if((e69709 instanceof Error)){\nvar e \x3d e69709;\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(e) : reject.call(null,e));\n} else {\nthrow e69709;\n\n}\n}}))),timeout).then((function (result){\nif(cljs.core.truth_(new cljs.core.Keyword(\x22intemporal.internal.runtime\x22,\x22timeout\x22,\x22intemporal.internal.runtime/timeout\x22,856660232).cljs$core$IFn$_invoke$arity$1(result))){\nthrow intemporal.internal.error.activity_timeout_exception(activity_name,timeout);\n} else {\nreturn result;\n}\n})).catch((function (e){\nthrow intemporal.internal.error.activity_failed_exception(activity_name,e);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$execute_activities_parallel$arity$2 \x3d (function (_,activities){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.empty_QMARK_(activities)){\nreturn Promise.resolve([]);\n} else {\nvar promises \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p__69715){\nvar map__69716 \x3d p__69715;\nvar map__69716__$1 \x3d cljs.core.__destructure_map(map__69716);\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69716__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar act \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.registry_atom),activity_name);\nvar timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn self__.default_timeout_ms;\n}\n})();\nif((act \x3d\x3d null)){\nreturn Promise.reject(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Activity xxx not found \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(cljs.core.deref(self__.registry_atom)))].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22known-activities\x22,\x22known-activities\x22,2020133803),cljs.core.keys(cljs.core.deref(self__.registry_atom))], null)));\n} else {\nreturn intemporal.internal.runtime.execute_activity_with_retry(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(act),args,timeout,retry_policy,activity_name);\n}\n}),activities);\nreturn Promise.allSettled(cljs.core.to_array(promises)).then((function (results){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(result.status,\x22fulfilled\x22)){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result.value),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result.value)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(result.reason)], null);\n}\n}),results);\n}));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_executor$arity$2 \x3d (function (_,grace_period_secs){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.intemporal$protocol$IActivityExecutor$shutdown_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.internal.runtime.ParallelActivityExecutor{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms],null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__69687){\nvar self__ \x3d this;\nvar G__69687__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__69687__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-814744594 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this69689,other69690){\nvar self__ \x3d this;\nvar this69689__$1 \x3d this;\nreturn (((!((other69690 \x3d\x3d null)))) \x26\x26 ((((this69689__$1.constructor \x3d\x3d\x3d other69690.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.registry_atom,other69690.registry_atom)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.default_timeout_ms,other69690.default_timeout_ms)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this69689__$1.__extmap,other69690.__extmap)))))))));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k69688){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__69732 \x3d k69688;\nvar G__69732__$1 \x3d (((G__69732 instanceof cljs.core.Keyword))?G__69732.fqn:null);\nswitch (G__69732__$1) {\ncase \x22registry-atom\x22:\ncase \x22default-timeout-ms\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k69688);\n\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__69687){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__69735 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__69736 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__69735.cljs$core$IFn$_invoke$arity$2 ? pred__69735.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__69736) : pred__69735.call(null,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),expr__69736)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(G__69687,self__.default_timeout_ms,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__69735.cljs$core$IFn$_invoke$arity$2 ? pred__69735.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__69736) : pred__69735.call(null,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),expr__69736)))){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,G__69687,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__69687),null));\n}\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),self__.registry_atom,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),self__.default_timeout_ms,null))], null),self__.__extmap));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__69687){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(self__.registry_atom,self__.default_timeout_ms,G__69687,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22registry-atom\x22,\x22registry-atom\x22,1987076764,null),new cljs.core.Symbol(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,-2042979716,null)], null);\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$type \x3d true);\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22,null,(1),null));\n}));\n\n(intemporal.internal.runtime.ParallelActivityExecutor.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.internal.runtime/ParallelActivityExecutor\x22);\n}));\n\n/**\n * Positional factory function for intemporal.internal.runtime/ParallelActivityExecutor.\n */\nintemporal.internal.runtime.__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$__GT_ParallelActivityExecutor(registry_atom,default_timeout_ms){\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(registry_atom,default_timeout_ms,null,null,null));\n});\n\n/**\n * Factory function for intemporal.internal.runtime/ParallelActivityExecutor, taking a map of keywords to field values.\n */\nintemporal.internal.runtime.map__GT_ParallelActivityExecutor \x3d (function intemporal$internal$runtime$map__GT_ParallelActivityExecutor(G__69691){\nvar extmap__5365__auto__ \x3d (function (){var G__69744 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__69691,new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053)], 0));\nif(cljs.core.record_QMARK_(G__69691)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__69744);\n} else {\nreturn G__69744;\n}\n})();\nreturn (new intemporal.internal.runtime.ParallelActivityExecutor(new cljs.core.Keyword(null,\x22registry-atom\x22,\x22registry-atom\x22,346545237).cljs$core$IFn$_invoke$arity$1(G__69691),new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053).cljs$core$IFn$_invoke$arity$1(G__69691),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an executor that runs activities using promises.\n * Note: max-concurrent is ignored in ClojureScript - all activities\n * run concurrently via the event loop (no true parallelism).\n */\nintemporal.internal.runtime.make_vthreads_executor \x3d (function intemporal$internal$runtime$make_vthreads_executor(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69819 \x3d arguments.length;\nvar i__5750__auto___69820 \x3d (0);\nwhile(true){\nif((i__5750__auto___69820 \x3c len__5749__auto___69819)){\nargs__5755__auto__.push((arguments[i__5750__auto___69820]));\n\nvar G__69822 \x3d (i__5750__auto___69820 + (1));\ni__5750__auto___69820 \x3d G__69822;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_registry_atom,p__69747){\nvar map__69748 \x3d p__69747;\nvar map__69748__$1 \x3d cljs.core.__destructure_map(map__69748);\nvar max_concurrent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69748__$1,new cljs.core.Keyword(null,\x22max-concurrent\x22,\x22max-concurrent\x22,-1515985451));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69748__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nif(cljs.core.truth_(max_concurrent)){\nvar args__69512__auto___69824 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22max-concurrent is not supported in ClojureScript - all activities run concurrently via event loop\x22], null);\nvar vec__69749_69825 \x3d (((cljs.core.first(args__69512__auto___69824) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___69824),cljs.core.rest(args__69512__auto___69824)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___69824], null));\nvar err__69513__auto___69826 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69749_69825,(0),null);\nvar msgs__69514__auto___69827 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69749_69825,(1),null);\nvar msg__69515__auto___69828 \x3d ((cljs.core.seq(msgs__69514__auto___69827))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___69827):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___69826));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.runtime\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___69828,err__69513__auto___69826,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nreturn intemporal.internal.runtime.__GT_ParallelActivityExecutor(activity_registry_atom,default_timeout_ms);\n}));\n\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.internal.runtime.make_vthreads_executor.cljs$lang$applyTo \x3d (function (seq69745){\nvar G__69746 \x3d cljs.core.first(seq69745);\nvar seq69745__$1 \x3d cljs.core.next(seq69745);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69746,seq69745__$1);\n}));\n\n"); -SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__69600 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69601 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69601);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69600);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx69607 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69609 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69610 \x3d workflow_ctx69607;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69610);\n\ntry{return (function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69609);\n}}));\n})(),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e69602){if((e69602 instanceof Error)){\nvar e \x3d e69602;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e69602;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nvar args__69521__auto___69894 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity via executor %s\x22,executor], null);\nvar vec__69616_69895 \x3d (((cljs.core.first(args__69521__auto___69894) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69894),cljs.core.second(args__69521__auto___69894),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69894)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69894),cljs.core.rest(args__69521__auto___69894)], null));\nvar err__69522__auto___69896 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(0),null);\nvar fmt__69523__auto___69897 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(1),null);\nvar fmt_args__69524__auto___69898 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69616_69895,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69897,fmt_args__69524__auto___69898),err__69522__auto___69896,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69620 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69624 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69625 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69625);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69624);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69626 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69627 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69627);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69626);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69628 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69629 \x3d workflow_ctx69620;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69629);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___69904 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded, result: %s\x22,result], null);\nvar vec__69630_69905 \x3d (((cljs.core.first(args__69521__auto___69904) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69904),cljs.core.second(args__69521__auto___69904),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69904)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69904),cljs.core.rest(args__69521__auto___69904)], null));\nvar err__69522__auto___69906 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(0),null);\nvar fmt__69523__auto___69907 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(1),null);\nvar fmt_args__69524__auto___69908 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69630_69905,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69907,fmt_args__69524__auto___69908),err__69522__auto___69906,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69628);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___69912 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed\x22], null);\nvar vec__69649_69913 \x3d (((cljs.core.first(args__69521__auto___69912) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69912),cljs.core.second(args__69521__auto___69912),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69912)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69912),cljs.core.rest(args__69521__auto___69912)], null));\nvar err__69522__auto___69914 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(0),null);\nvar fmt__69523__auto___69915 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(1),null);\nvar fmt_args__69524__auto___69916 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69649_69913,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69915,fmt_args__69524__auto___69916),err__69522__auto___69914,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nvar args__69521__auto___69918 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity (attempt %d)\x22,attempt], null);\nvar vec__69656_69919 \x3d (((cljs.core.first(args__69521__auto___69918) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69918),cljs.core.second(args__69521__auto___69918),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69918)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69918),cljs.core.rest(args__69521__auto___69918)], null));\nvar err__69522__auto___69920 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(0),null);\nvar fmt__69523__auto___69921 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(1),null);\nvar fmt_args__69524__auto___69922 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69656_69919,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69921,fmt_args__69524__auto___69922),err__69522__auto___69920,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar start \x3d intemporal.utils.current_time_ms();\nvar workflow_ctx69660 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69661 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69662 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69663 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69663);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69662);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69664 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69665 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69665);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69664);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69669 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69670 \x3d workflow_ctx69661;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69670);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___69928 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], null);\nvar vec__69671_69929 \x3d (((cljs.core.first(args__69521__auto___69928) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69928),cljs.core.second(args__69521__auto___69928),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69928)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69928),cljs.core.rest(args__69521__auto___69928)], null));\nvar err__69522__auto___69930 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(0),null);\nvar fmt__69523__auto___69931 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(1),null);\nvar fmt_args__69524__auto___69932 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69671_69929,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69931,fmt_args__69524__auto___69932),err__69522__auto___69930,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69669);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___69937 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed (attempt %d)\x22,attempt], null);\nvar vec__69675_69938 \x3d (((cljs.core.first(args__69521__auto___69937) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69937),cljs.core.second(args__69521__auto___69937),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69937)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69937),cljs.core.rest(args__69521__auto___69937)], null));\nvar err__69522__auto___69939 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(0),null);\nvar fmt__69523__auto___69940 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(1),null);\nvar fmt_args__69524__auto___69941 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69675_69938,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69940,fmt_args__69524__auto___69941),err__69522__auto___69939,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69681 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69682 \x3d workflow_ctx69660;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69682);\n\ntry{return (function (exec_result){\nvar G__69683 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__69683__$1 \x3d (((G__69683 instanceof cljs.core.Keyword))?G__69683.fqn:null);\nswitch (G__69683__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nvar args__69521__auto___69948 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], null);\nvar vec__69684_69949 \x3d (((cljs.core.first(args__69521__auto___69948) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69948),cljs.core.second(args__69521__auto___69948),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69948)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69948),cljs.core.rest(args__69521__auto___69948)], null));\nvar err__69522__auto___69950 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(0),null);\nvar fmt__69523__auto___69951 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(1),null);\nvar fmt_args__69524__auto___69952 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69684_69949,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69951,fmt_args__69524__auto___69952),err__69522__auto___69950,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx69692 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (res__37297__auto____$1){\nvar _STAR_workflow_context_STAR__orig_val__69693 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69694 \x3d workflow_ctx69692;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69694);\n\ntry{return (function (_){\nvar G__69695 \x3d executor;\nvar G__69696 \x3d activity_name;\nvar G__69697 \x3d args;\nvar G__69698 \x3d timeout_ms;\nvar G__69699 \x3d retry_policy;\nvar G__69700 \x3d observer;\nvar G__69701 \x3d workflow_id;\nvar G__69702 \x3d seq_num;\nvar G__69703 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__69695,G__69696,G__69697,G__69698,G__69699,G__69700,G__69701,G__69702,G__69703) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__69695,G__69696,G__69697,G__69698,G__69699,G__69700,G__69701,G__69702,G__69703));\n})(res__37297__auto____$1);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69693);\n}}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69683__$1)].join(\x27\x27)));\n\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69681);\n}}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__69710,pending_events,observer){\nvar map__69711 \x3d p__69710;\nvar map__69711__$1 \x3d cljs.core.__destructure_map(map__69711);\nvar suspension_data \x3d map__69711__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69711__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_xfn_STAR__orig_val__69712 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69713 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69713);\n\ntry{var workflow_ctx69714 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69717 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69718 \x3d workflow_ctx69714;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69718);\n\ntry{return intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69717);\n}})()),(function (exec_result){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69719 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69720 \x3d workflow_ctx69714;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69720);\n\ntry{intemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__69721 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__69721__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69721,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__69721);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69721__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__69721__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69719);\n}})());\n}));\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69712);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar args__69521__auto___69967 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], null);\nvar vec__69722_69968 \x3d (((cljs.core.first(args__69521__auto___69967) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69967),cljs.core.second(args__69521__auto___69967),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69967)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69967),cljs.core.rest(args__69521__auto___69967)], null));\nvar err__69522__auto___69969 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(0),null);\nvar fmt__69523__auto___69970 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(1),null);\nvar fmt_args__69524__auto___69971 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69722_69968,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69970,fmt_args__69524__auto___69971),err__69522__auto___69969,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx69725 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69726 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69727 \x3d workflow_ctx69725;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69727);\n\ntry{return intemporal.protocol.execute_activities_parallel(executor,pending_asyncs);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69726);\n}})()),(function (results){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69728 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69729 \x3d workflow_ctx69725;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69729);\n\ntry{var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__69730,result){\nvar map__69731 \x3d p__69730;\nvar map__69731__$1 \x3d cljs.core.__destructure_map(map__69731);\nvar async_info \x3d map__69731__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69731__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69731__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_xfn_STAR__orig_val__69733 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69734 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69734);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___69978 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity succeeded, result: %s\x22,result], null);\nvar vec__69738_69979 \x3d (((cljs.core.first(args__69521__auto___69978) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69978),cljs.core.second(args__69521__auto___69978),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69978)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69978),cljs.core.rest(args__69521__auto___69978)], null));\nvar err__69522__auto___69980 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(0),null);\nvar fmt__69523__auto___69981 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(1),null);\nvar fmt_args__69524__auto___69982 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69738_69979,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69981,fmt_args__69524__auto___69982),err__69522__auto___69980,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___69983 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__69741_69984 \x3d (((cljs.core.first(args__69521__auto___69983) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___69983),cljs.core.second(args__69521__auto___69983),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___69983)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___69983),cljs.core.rest(args__69521__auto___69983)], null));\nvar err__69522__auto___69985 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(0),null);\nvar fmt__69523__auto___69986 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(1),null);\nvar fmt_args__69524__auto___69987 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69741_69984,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___69986,fmt_args__69524__auto___69987),err__69522__auto___69985,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69733);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69728);\n}})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69752 \x3d suspension_data;\nvar map__69752__$1 \x3d cljs.core.__destructure_map(map__69752);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69752__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69752__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69753 \x3d suspension_data;\nvar map__69753__$1 \x3d cljs.core.__destructure_map(map__69753);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69753__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69753__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___69998 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___69998)){\nvar signal_data_69999 \x3d temp__5825__auto___69998;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_69999),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_69999),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_69999));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__69754 \x3d suspension_data;\nvar map__69754__$1 \x3d cljs.core.__destructure_map(map__69754);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69754__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__70012 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__69759 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__70012 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__70012 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69759,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__70012));\n} else {\nreturn G__69759;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__69761 \x3d suspension_data;\nvar map__69761__$1 \x3d cljs.core.__destructure_map(map__69761);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69761__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nvar workflow_ctx69762 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69763 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69764 \x3d workflow_ctx69762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69764);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69763);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69766 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69767 \x3d workflow_ctx69762;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69767);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69766);\n}})());\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70019 \x3d arguments.length;\nvar i__5750__auto___70020 \x3d (0);\nwhile(true){\nif((i__5750__auto___70020 \x3c len__5749__auto___70019)){\nargs__5755__auto__.push((arguments[i__5750__auto___70020]));\n\nvar G__70021 \x3d (i__5750__auto___70020 + (1));\ni__5750__auto___70020 \x3d G__70021;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__69802){\nvar map__69803 \x3d p__69802;\nvar map__69803__$1 \x3d cljs.core.__destructure_map(map__69803);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69803__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__69804 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69804,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69804;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq69782){\nvar G__69787 \x3d cljs.core.first(seq69782);\nvar seq69782__$1 \x3d cljs.core.next(seq69782);\nvar G__69788 \x3d cljs.core.first(seq69782__$1);\nvar seq69782__$2 \x3d cljs.core.next(seq69782__$1);\nvar G__69789 \x3d cljs.core.first(seq69782__$2);\nvar seq69782__$3 \x3d cljs.core.next(seq69782__$2);\nvar G__69790 \x3d cljs.core.first(seq69782__$3);\nvar seq69782__$4 \x3d cljs.core.next(seq69782__$3);\nvar G__69791 \x3d cljs.core.first(seq69782__$4);\nvar seq69782__$5 \x3d cljs.core.next(seq69782__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69787,G__69788,G__69789,G__69790,G__69791,seq69782__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nvar workflow_ctx69810 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69811 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69812 \x3d workflow_ctx69810;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69812);\n\ntry{if(cljs.core.seq(pending_asyncs)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69811);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69814 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69815 \x3d workflow_ctx69810;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69815);\n\ntry{intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_completed(observer,workflow_id,result);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69814);\n}})());\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__69816 \x3d action;\nvar G__69816__$1 \x3d (((G__69816 instanceof cljs.core.Keyword))?G__69816.fqn:null);\nswitch (G__69816__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__69818 \x3d engine;\nvar map__69818__$1 \x3d cljs.core.__destructure_map(map__69818);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69818__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__69821 \x3d suspension_type;\nvar G__69821__$1 \x3d (((G__69821 instanceof cljs.core.Keyword))?G__69821.fqn:null);\nswitch (G__69821__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nvar workflow_ctx69823 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69829 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69830 \x3d workflow_ctx69823;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69830);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69829);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69831 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69832 \x3d workflow_ctx69823;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69832);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69831);\n}})());\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nvar workflow_ctx69833 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69834 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69835 \x3d workflow_ctx69833;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69835);\n\ntry{if(cljs.core.seq(pending_asyncs_list)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n} else {\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69834);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69836 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69837 \x3d workflow_ctx69833;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69837);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69836);\n}})());\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69821__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__69838,workflow_id,workflow_fn,args,p__69839){\nvar map__69840 \x3d p__69838;\nvar map__69840__$1 \x3d cljs.core.__destructure_map(map__69840);\nvar engine \x3d map__69840__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69840__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__69841 \x3d p__69839;\nvar map__69841__$1 \x3d cljs.core.__destructure_map(map__69841);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69841__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69841__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69841__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_69846,reject_fn_69845){\nvar loop_fn_69842 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_69842(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_69843,err_69844){\nif((!((err_69844 \x3d\x3d null)))){\nreturn (reject_fn_69845.cljs$core$IFn$_invoke$arity$1 ? reject_fn_69845.cljs$core$IFn$_invoke$arity$1(err_69844) : reject_fn_69845.call(null,err_69844));\n} else {\nif(promesa.core.recur_QMARK_(res_69843)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_69842,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_69843));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_69846.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_69846.cljs$core$IFn$_invoke$arity$1(res_69843) : resolve_fn_69846.call(null,res_69843));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30206__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var args__69521__auto__ \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], null);\nvar vec__69847 \x3d (((cljs.core.first(args__69521__auto__) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto__),cljs.core.second(args__69521__auto__),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto__)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto__),cljs.core.rest(args__69521__auto__)], null));\nvar err__69522__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(0),null);\nvar fmt__69523__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(1),null);\nvar fmt_args__69524__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69847,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto__,fmt_args__69524__auto__),err__69522__auto__,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n})()),(function (___30206__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nvar args__69521__auto___70046 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executor shutting down, suspending workflow\x22], null);\nvar vec__69850_70047 \x3d (((cljs.core.first(args__69521__auto___70046) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70046),cljs.core.second(args__69521__auto___70046),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70046)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70046),cljs.core.rest(args__69521__auto___70046)], null));\nvar err__69522__auto___70048 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(0),null);\nvar fmt__69523__auto___70049 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(1),null);\nvar fmt_args__69524__auto___70050 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69850_70047,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70049,fmt_args__69524__auto___70050),err__69522__auto___70048,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69512__auto___70056 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow cancelled, failing\x22], null);\nvar vec__69853_70057 \x3d (((cljs.core.first(args__69512__auto___70056) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70056),cljs.core.rest(args__69512__auto___70056)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70056], null));\nvar err__69513__auto___70058 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69853_70057,(0),null);\nvar msgs__69514__auto___70059 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69853_70057,(1),null);\nvar msg__69515__auto___70060 \x3d ((cljs.core.seq(msgs__69514__auto___70059))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70059):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70058));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70060,err__69513__auto___70058,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__69856 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69857 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69857);\n\ntry{var args__69521__auto___70062 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing workflow function %s...\x22,workflow_fn], null);\nvar vec__69858_70063 \x3d (((cljs.core.first(args__69521__auto___70062) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70062),cljs.core.second(args__69521__auto___70062),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70062)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70062),cljs.core.rest(args__69521__auto___70062)], null));\nvar err__69522__auto___70064 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(0),null);\nvar fmt__69523__auto___70065 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(1),null);\nvar fmt_args__69524__auto___70066 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69858_70063,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70065,fmt_args__69524__auto___70066),err__69522__auto___70064,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69856);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nvar args__69521__auto___70071 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], null);\nvar vec__69861_70072 \x3d (((cljs.core.first(args__69521__auto___70071) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70071),cljs.core.second(args__69521__auto___70071),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70071)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70071),cljs.core.rest(args__69521__auto___70071)], null));\nvar err__69522__auto___70073 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(0),null);\nvar fmt__69523__auto___70074 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(1),null);\nvar fmt_args__69524__auto___70075 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69861_70072,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70074,fmt_args__69524__auto___70075),err__69522__auto___70073,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar G__69864 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__69864__$1 \x3d (((G__69864 instanceof cljs.core.Keyword))?G__69864.fqn:null);\nswitch (G__69864__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nvar workflow_ctx69865 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69866 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69867 \x3d workflow_ctx69865;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69867);\n\ntry{return intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69866);\n}})()),(function (action){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__69868 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69869 \x3d workflow_ctx69865;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69869);\n\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553))){\nreturn promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null));\n} else {\nreturn intemporal.internal.execution.action__GT_result(action,workflow_id);\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69868);\n}})());\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__69864__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nvar workflow_ctx69870 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69871 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69872 \x3d workflow_ctx69870;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69872);\n\ntry{return dispatch(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69871);\n}}));\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_69842((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__69873,workflow_id,suspension_data,pending_events,observer){\nvar map__69874 \x3d p__69873;\nvar map__69874__$1 \x3d cljs.core.__destructure_map(map__69874);\nvar engine \x3d map__69874__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69874__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__69875 \x3d suspension_data;\nvar map__69875__$1 \x3d cljs.core.__destructure_map(map__69875);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69875__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69876 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69877 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69878 \x3d workflow_ctx69876;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69878);\n\ntry{return (function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70081 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s completed\x22,child_workflow_id], null);\nvar vec__69879_70082 \x3d (((cljs.core.first(args__69521__auto___70081) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70081),cljs.core.second(args__69521__auto___70081),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70081)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70081),cljs.core.rest(args__69521__auto___70081)], null));\nvar err__69522__auto___70083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(0),null);\nvar fmt__69523__auto___70084 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(1),null);\nvar fmt_args__69524__auto___70085 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69879_70082,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70084,fmt_args__69524__auto___70085),err__69522__auto___70083,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70086 \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__69882_70087 \x3d (((cljs.core.first(args__69521__auto___70086) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70086),cljs.core.second(args__69521__auto___70086),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70086)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70086),cljs.core.rest(args__69521__auto___70086)], null));\nvar err__69522__auto___70088 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(0),null);\nvar fmt__69523__auto___70089 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(1),null);\nvar fmt_args__69524__auto___70090 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69882_70087,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70089,fmt_args__69524__auto___70090),err__69522__auto___70088,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69877);\n}}));\n})(),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___70092 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], null);\nvar vec__69885_70093 \x3d (((cljs.core.first(args__69521__auto___70092) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70092),cljs.core.second(args__69521__auto___70092),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70092)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70092),cljs.core.rest(args__69521__auto___70092)], null));\nvar err__69522__auto___70094 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(0),null);\nvar fmt__69523__auto___70095 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(1),null);\nvar fmt_args__69524__auto___70096 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69885_70093,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70095,fmt_args__69524__auto___70096),err__69522__auto___70094,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); -SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__69889 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__69888 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__69888.cljs$core$IFn$_invoke$arity$1 ? fexpr__69888.cljs$core$IFn$_invoke$arity$1(G__69889) : fexpr__69888.call(null,G__69889));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___69988 \x3d arguments.length;\nvar i__5750__auto___69989 \x3d (0);\nwhile(true){\nif((i__5750__auto___69989 \x3c len__5749__auto___69988)){\nargs__5755__auto__.push((arguments[i__5750__auto___69989]));\n\nvar G__69990 \x3d (i__5750__auto___69989 + (1));\ni__5750__auto___69989 \x3d G__69990;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69899,workflow_fn,args,p__69900){\nvar map__69901 \x3d p__69899;\nvar map__69901__$1 \x3d cljs.core.__destructure_map(map__69901);\nvar engine \x3d map__69901__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69901__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__69902 \x3d p__69900;\nvar map__69902__$1 \x3d cljs.core.__destructure_map(map__69902);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69902__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69902__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__69903 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69903,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69903;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___69991 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started\x22], null);\nvar vec__69909_69992 \x3d (((cljs.core.first(args__69512__auto___69991) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___69991),cljs.core.rest(args__69512__auto___69991)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___69991], null));\nvar err__69513__auto___69993 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69909_69992,(0),null);\nvar msgs__69514__auto___69994 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69909_69992,(1),null);\nvar msg__69515__auto___69995 \x3d ((cljs.core.seq(msgs__69514__auto___69994))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___69994):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___69993));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___69995,err__69513__auto___69993,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69925 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69926 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69927 \x3d workflow_ctx69925;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69927);\n\ntry{return (function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69926);\n}}));\n})(),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq69890){\nvar G__69891 \x3d cljs.core.first(seq69890);\nvar seq69890__$1 \x3d cljs.core.next(seq69890);\nvar G__69892 \x3d cljs.core.first(seq69890__$1);\nvar seq69890__$2 \x3d cljs.core.next(seq69890__$1);\nvar G__69893 \x3d cljs.core.first(seq69890__$2);\nvar seq69890__$3 \x3d cljs.core.next(seq69890__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69891,G__69892,G__69893,seq69890__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70000 \x3d arguments.length;\nvar i__5750__auto___70001 \x3d (0);\nwhile(true){\nif((i__5750__auto___70001 \x3c len__5749__auto___70000)){\nargs__5755__auto__.push((arguments[i__5750__auto___70001]));\n\nvar G__70003 \x3d (i__5750__auto___70001 + (1));\ni__5750__auto___70001 \x3d G__70003;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__69942,workflow_fn,args,p__69943){\nvar map__69944 \x3d p__69942;\nvar map__69944__$1 \x3d cljs.core.__destructure_map(map__69944);\nvar engine \x3d map__69944__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69944__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__69945 \x3d p__69943;\nvar map__69945__$1 \x3d cljs.core.__destructure_map(map__69945);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__69945__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__69945__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__69946 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__69946,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__69946;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_xfn_STAR__orig_val__69953 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69954 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69954);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nvar args__69521__auto___70005 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Waking workflow for resume\x22], null);\nvar vec__69955_70006 \x3d (((cljs.core.first(args__69521__auto___70005) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70005),cljs.core.second(args__69521__auto___70005),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70005)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70005),cljs.core.rest(args__69521__auto___70005)], null));\nvar err__69522__auto___70007 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(0),null);\nvar fmt__69523__auto___70008 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(1),null);\nvar fmt_args__69524__auto___70009 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69955_70006,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70008,fmt_args__69524__auto___70009),err__69522__auto___70007,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69958 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69959 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69960 \x3d workflow_ctx69958;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69960);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69959);\n}}));\n})(),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__69961 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__69961) : on_complete.call(null,G__69961));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69953);\n}});\nvar _STAR_xfn_STAR__orig_val__69962 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__69963 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__69963);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___70022 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started (async)\x22], null);\nvar vec__69964_70023 \x3d (((cljs.core.first(args__69512__auto___70022) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70022),cljs.core.rest(args__69512__auto___70022)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70022], null));\nvar err__69513__auto___70024 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69964_70023,(0),null);\nvar msgs__69514__auto___70025 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69964_70023,(1),null);\nvar msg__69515__auto___70026 \x3d ((cljs.core.seq(msgs__69514__auto___70025))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70025):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70024));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70026,err__69513__auto___70024,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx69972 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (res__37297__auto__){\nvar _STAR_workflow_context_STAR__orig_val__69973 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__69974 \x3d workflow_ctx69972;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__69974);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})(res__37297__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__69973);\n}}));\n})(),Error,(function (e){\nvar args__69521__auto___70027 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Caught exception during async workflow start\x22], null);\nvar vec__69975_70028 \x3d (((cljs.core.first(args__69521__auto___70027) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70027),cljs.core.second(args__69521__auto___70027),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70027)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70027),cljs.core.rest(args__69521__auto___70027)], null));\nvar err__69522__auto___70029 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(0),null);\nvar fmt__69523__auto___70030 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(1),null);\nvar fmt_args__69524__auto___70031 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__69975_70028,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70030,fmt_args__69524__auto___70031),err__69522__auto___70029,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__69962);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq69933){\nvar G__69934 \x3d cljs.core.first(seq69933);\nvar seq69933__$1 \x3d cljs.core.next(seq69933);\nvar G__69935 \x3d cljs.core.first(seq69933__$1);\nvar seq69933__$2 \x3d cljs.core.next(seq69933__$1);\nvar G__69936 \x3d cljs.core.first(seq69933__$2);\nvar seq69933__$3 \x3d cljs.core.next(seq69933__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69934,G__69935,G__69936,seq69933__$3);\n}));\n\n"); +SHADOW_ENV.evalLoad("intemporal.internal.execution.js", true, "goog.provide(\x27intemporal.internal.execution\x27);\nintemporal.internal.execution.execute_workflow_fn \x3d (function intemporal$internal$execution$execute_workflow_fn(workflow_fn,args){\nvar ctx \x3d intemporal.internal.context.current_context();\nvar pending_asyncs \x3d new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(ctx);\nvar pending_events \x3d new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(ctx);\nvar wrap_ctx \x3d (function (f){\nreturn (function (v){\nvar _STAR_workflow_context_STAR__orig_val__75842 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75843 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75843);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null,v));\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75842);\n}});\n});\ntry{var result \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(workflow_fn,args);\nif(promesa.core.promise_QMARK_(result)){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$2((function (){var workflow_ctx75845 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(result,(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__75846 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75847 \x3d workflow_ctx75845;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75847);\n\ntry{return (function (resolved){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),resolved,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75846);\n}}));\n})(),wrap_ctx((function (e){\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n})));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n}\n}catch (e75844){if((e75844 instanceof Error)){\nvar e \x3d e75844;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),intemporal.internal.error.suspension_type(e),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931),intemporal.internal.error.suspension_data(e),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.deref(pending_asyncs),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nif(cljs.core.truth_(intemporal.internal.error.cancelled_exception_QMARK_(e))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.deref(pending_events)], null);\n\n}\n}\n} else {\nthrow e75844;\n\n}\n}});\n/**\n * Execute activity once, returns a promise of result map.\n */\nintemporal.internal.execution.execute_once \x3d (function intemporal$internal$execution$execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num){\nvar start \x3d intemporal.utils.current_time_ms();\nvar args__69521__auto___76016 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity via executor %s\x22,executor], null);\nvar vec__75848_76017 \x3d (((cljs.core.first(args__69521__auto___76016) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76016),cljs.core.second(args__69521__auto___76016),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76016)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76016),cljs.core.rest(args__69521__auto___76016)], null));\nvar err__69522__auto___76018 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75848_76017,(0),null);\nvar fmt__69523__auto___76019 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75848_76017,(1),null);\nvar fmt_args__69524__auto___76020 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75848_76017,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76019,fmt_args__69524__auto___76020),err__69522__auto___76018,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx75851 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75852 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75853 \x3d workflow_ctx75851;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75853);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75852);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75854 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75855 \x3d workflow_ctx75851;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75855);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75854);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75856 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75857 \x3d workflow_ctx75851;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75857);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___76025 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded, result: %s\x22,result], null);\nvar vec__75858_76026 \x3d (((cljs.core.first(args__69521__auto___76025) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76025),cljs.core.second(args__69521__auto___76025),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76025)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76025),cljs.core.rest(args__69521__auto___76025)], null));\nvar err__69522__auto___76027 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75858_76026,(0),null);\nvar fmt__69523__auto___76028 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75858_76026,(1),null);\nvar fmt_args__69524__auto___76029 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75858_76026,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76028,fmt_args__69524__auto___76029),err__69522__auto___76027,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75856);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___76030 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed\x22], null);\nvar vec__75861_76031 \x3d (((cljs.core.first(args__69521__auto___76030) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76030),cljs.core.second(args__69521__auto___76030),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76030)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76030),cljs.core.rest(args__69521__auto___76030)], null));\nvar err__69522__auto___76032 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75861_76031,(0),null);\nvar fmt__69523__auto___76033 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75861_76031,(1),null);\nvar fmt_args__69524__auto___76034 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75861_76031,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76033,fmt_args__69524__auto___76034),err__69522__auto___76032,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n}));\n});\n/**\n * Recursive promise-based retry loop.\n */\nintemporal.internal.execution.execute_with_retry_loop \x3d (function intemporal$internal$execution$execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,attempt){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_started(observer,workflow_id,seq_num,activity_name);\n} else {\n}\n\nvar args__69521__auto___76040 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing activity (attempt %d)\x22,attempt], null);\nvar vec__75864_76041 \x3d (((cljs.core.first(args__69521__auto___76040) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76040),cljs.core.second(args__69521__auto___76040),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76040)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76040),cljs.core.rest(args__69521__auto___76040)], null));\nvar err__69522__auto___76042 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75864_76041,(0),null);\nvar fmt__69523__auto___76043 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75864_76041,(1),null);\nvar fmt_args__69524__auto___76044 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75864_76041,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76043,fmt_args__69524__auto___76044),err__69522__auto___76042,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar start \x3d intemporal.utils.current_time_ms();\nvar workflow_ctx75867 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx75868 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75869 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75870 \x3d workflow_ctx75868;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75870);\n\ntry{return intemporal.protocol.execute_activity(executor,activity_name,args,timeout_ms);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75869);\n}})()),(function (result){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75871 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75872 \x3d workflow_ctx75868;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75872);\n\ntry{return (intemporal.utils.current_time_ms() - start);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75871);\n}})()),(function (duration){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75873 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75874 \x3d workflow_ctx75868;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75874);\n\ntry{if(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_completed(observer,workflow_id,seq_num,activity_name,result,duration);\n} else {\n}\n\nvar args__69521__auto___76048 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity succeeded (attempt %d), result: %s\x22,attempt,result], null);\nvar vec__75875_76049 \x3d (((cljs.core.first(args__69521__auto___76048) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76048),cljs.core.second(args__69521__auto___76048),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76048)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76048),cljs.core.rest(args__69521__auto___76048)], null));\nvar err__69522__auto___76050 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75875_76049,(0),null);\nvar fmt__69523__auto___76051 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75875_76049,(1),null);\nvar fmt_args__69524__auto___76052 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75875_76049,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76051,fmt_args__69524__auto___76052),err__69522__auto___76050,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration,new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75873);\n}})());\n}));\n}));\n}));\n})(),Error,(function (e){\nvar duration \x3d (intemporal.utils.current_time_ms() - start);\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(e);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_activity_failed(observer,workflow_id,seq_num,activity_name,error_map,duration);\n} else {\n}\n\nvar args__69521__auto___76053 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Activity failed (attempt %d)\x22,attempt], null);\nvar vec__75878_76054 \x3d (((cljs.core.first(args__69521__auto___76053) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76053),cljs.core.second(args__69521__auto___76053),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76053)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76053),cljs.core.rest(args__69521__auto___76053)], null));\nvar err__69522__auto___76055 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75878_76054,(0),null);\nvar fmt__69523__auto___76056 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75878_76054,(1),null);\nvar fmt_args__69524__auto___76057 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75878_76054,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76056,fmt_args__69524__auto___76057),err__69522__auto___76055,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22retry-or-fail\x22,\x22retry-or-fail\x22,1497249774),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),e,new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),duration], null);\n})),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__75881 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75882 \x3d workflow_ctx75867;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75882);\n\ntry{return (function (exec_result){\nvar G__75883 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result);\nvar G__75883__$1 \x3d (((G__75883 instanceof cljs.core.Keyword))?G__75883.fqn:null);\nswitch (G__75883__$1) {\ncase \x22success\x22:\nreturn exec_result;\n\nbreak;\ncase \x22retry-or-fail\x22:\nif(cljs.core.truth_(intemporal.internal.activity.should_retry_QMARK_(retry_policy,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064).cljs$core$IFn$_invoke$arity$1(exec_result),attempt))){\nvar backoff \x3d intemporal.internal.activity.calculate_backoff(retry_policy,attempt);\nvar args__69521__auto___76059 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity sleeping %s before retrying (attempt %d)\x22,backoff,attempt], null);\nvar vec__75884_76060 \x3d (((cljs.core.first(args__69521__auto___76059) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76059),cljs.core.second(args__69521__auto___76059),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76059)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76059),cljs.core.rest(args__69521__auto___76059)], null));\nvar err__69522__auto___76061 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75884_76060,(0),null);\nvar fmt__69523__auto___76062 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75884_76060,(1),null);\nvar fmt_args__69524__auto___76063 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75884_76060,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76062,fmt_args__69524__auto___76063),err__69522__auto___76061,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx75887 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(promesa.core.delay.cljs$core$IFn$_invoke$arity$1(backoff),(function (res__75154__auto____$1){\nvar _STAR_workflow_context_STAR__orig_val__75888 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75889 \x3d workflow_ctx75887;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75889);\n\ntry{return (function (_){\nvar G__75890 \x3d executor;\nvar G__75891 \x3d activity_name;\nvar G__75892 \x3d args;\nvar G__75893 \x3d timeout_ms;\nvar G__75894 \x3d retry_policy;\nvar G__75895 \x3d observer;\nvar G__75896 \x3d workflow_id;\nvar G__75897 \x3d seq_num;\nvar G__75898 \x3d (attempt + (1));\nreturn (intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9 ? intemporal.internal.execution.execute_with_retry_loop.cljs$core$IFn$_invoke$arity$9(G__75890,G__75891,G__75892,G__75893,G__75894,G__75895,G__75896,G__75897,G__75898) : intemporal.internal.execution.execute_with_retry_loop.call(null,G__75890,G__75891,G__75892,G__75893,G__75894,G__75895,G__75896,G__75897,G__75898));\n})(res__75154__auto____$1);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75888);\n}}));\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),attempt], null);\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75883__$1)].join(\x27\x27)));\n\n}\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75881);\n}}));\n});\n/**\n * Execute an activity with retry policy. Returns a promise of result map.\n */\nintemporal.internal.execution.execute_with_retry \x3d (function intemporal$internal$execution$execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num){\nif((retry_policy \x3d\x3d null)){\nreturn intemporal.internal.execution.execute_once(executor,activity_name,args,timeout_ms,observer,workflow_id,seq_num);\n} else {\nreturn intemporal.internal.execution.execute_with_retry_loop(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq_num,(1));\n}\n});\nintemporal.internal.execution.process_pending_activity \x3d (function intemporal$internal$execution$process_pending_activity(store,executor,workflow_id,p__75899,pending_events,observer){\nvar map__75900 \x3d p__75899;\nvar map__75900__$1 \x3d cljs.core.__destructure_map(map__75900);\nvar suspension_data \x3d map__75900__$1;\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75900__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75900__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75900__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75900__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75900__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar _STAR_xfn_STAR__orig_val__75901 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__75902 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__75902);\n\ntry{var workflow_ctx75903 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75904 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75905 \x3d workflow_ctx75903;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75905);\n\ntry{return intemporal.internal.execution.execute_with_retry(executor,activity_name,args,timeout_ms,retry_policy,observer,workflow_id,seq);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75904);\n}})()),(function (exec_result){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75906 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75907 \x3d workflow_ctx75903;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75907);\n\ntry{intemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar success_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result));\nvar event \x3d (function (){var G__75908 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),((success_QMARK_)?new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845):new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731)),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729),new cljs.core.Keyword(null,\x22attempts\x22,\x22attempts\x22,1024246729).cljs$core$IFn$_invoke$arity$1(exec_result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar G__75908__$1 \x3d ((success_QMARK_)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75908,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result)):G__75908);\nif((!(success_QMARK_))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75908__$1,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result));\n} else {\nreturn G__75908__$1;\n}\n})();\nintemporal.protocol.save_event(store,workflow_id,event);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75906);\n}})());\n}));\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__75901);\n}});\n/**\n * Process all pending async operations in parallel. Returns a promise of :continue.\n */\nintemporal.internal.execution.process_pending_asyncs_parallel \x3d (function intemporal$internal$execution$process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer){\nif(cljs.core.not(cljs.core.seq(pending_asyncs))){\nreturn promesa.core.resolved(new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar args__69521__auto___76070 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing %d activities in parallel via executor %s\x22,cljs.core.count(pending_asyncs),executor], null);\nvar vec__75909_76071 \x3d (((cljs.core.first(args__69521__auto___76070) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76070),cljs.core.second(args__69521__auto___76070),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76070)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76070),cljs.core.rest(args__69521__auto___76070)], null));\nvar err__69522__auto___76072 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75909_76071,(0),null);\nvar fmt__69523__auto___76073 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75909_76071,(1),null);\nvar fmt_args__69524__auto___76074 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75909_76071,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76073,fmt_args__69524__auto___76074),err__69522__auto___76072,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar workflow_ctx75912 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75913 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75914 \x3d workflow_ctx75912;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75914);\n\ntry{return intemporal.protocol.execute_activities_parallel(executor,pending_asyncs);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75913);\n}})()),(function (results){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75915 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75916 \x3d workflow_ctx75912;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75916);\n\ntry{var now \x3d intemporal.utils.current_time_ms();\nvar completion_events \x3d cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__75917,result){\nvar map__75918 \x3d p__75917;\nvar map__75918__$1 \x3d cljs.core.__destructure_map(map__75918);\nvar async_info \x3d map__75918__$1;\nvar activity_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75918__$1,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638));\nvar activity_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75918__$1,new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031));\nvar _STAR_xfn_STAR__orig_val__75919 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__75920 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),activity_seq], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__75920);\n\ntry{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_completed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___76075 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity succeeded, result: %s\x22,result], null);\nvar vec__75921_76076 \x3d (((cljs.core.first(args__69521__auto___76075) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76075),cljs.core.second(args__69521__auto___76075),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76075)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76075),cljs.core.rest(args__69521__auto___76075)], null));\nvar err__69522__auto___76077 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75921_76076,(0),null);\nvar fmt__69523__auto___76078 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75921_76076,(1),null);\nvar fmt_args__69524__auto___76079 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75921_76076,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76078,fmt_args__69524__auto___76079),err__69522__auto___76077,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_async_failed(observer,workflow_id,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result));\n} else {\n}\n\nvar args__69521__auto___76084 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Got completion event: activity failed, error: %s\x22,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__75924_76085 \x3d (((cljs.core.first(args__69521__auto___76084) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76084),cljs.core.second(args__69521__auto___76084),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76084)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76084),cljs.core.rest(args__69521__auto___76084)], null));\nvar err__69522__auto___76086 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75924_76085,(0),null);\nvar fmt__69523__auto___76087 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75924_76085,(1),null);\nvar fmt_args__69524__auto___76088 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75924_76085,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76087,fmt_args__69524__auto___76088),err__69522__auto___76086,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22success\x22,\x22success\x22,1890645906),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),new cljs.core.Keyword(null,\x22duration\x22,\x22duration\x22,1444101068).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031).cljs$core$IFn$_invoke$arity$1(async_info),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null)], null);\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__75919);\n}}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pending_asyncs,results], 0));\nintemporal.protocol.save_events(store,workflow_id,completion_events);\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75915);\n}})());\n}));\n}));\n}\n});\nintemporal.internal.execution.process_timer \x3d (function intemporal$internal$execution$process_timer(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75927 \x3d suspension_data;\nvar map__75927__$1 \x3d cljs.core.__destructure_map(map__75927);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75927__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar fire_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75927__$1,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nif((now \x3e\x3d fire_at)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,fire_at,(function (){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_timer_fired(observer,workflow_id,seq);\n} else {\n}\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-timer\x22,\x22wait-timer\x22,-1267004115);\n}\n});\nintemporal.internal.execution.process_signal \x3d (function intemporal$internal$execution$process_signal(store,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75928 \x3d suspension_data;\nvar map__75928__$1 \x3d cljs.core.__destructure_map(map__75928);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75928__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75928__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.register_signal_callback(store,workflow_id,signal_name,(function (){\nvar temp__5825__auto___76096 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5825__auto___76096)){\nvar signal_data_76097 \x3d temp__5825__auto___76096;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092).cljs$core$IFn$_invoke$arity$1(signal_data_76097),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_76097),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_76097));\n} else {\n}\n} else {\n}\n\nintemporal.protocol.unregister_signal_callback(store,workflow_id,signal_name);\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622);\n}\n});\nintemporal.internal.execution.process_signal_with_timeout \x3d (function intemporal$internal$execution$process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events,wake_fn,observer){\nvar map__75929 \x3d suspension_data;\nvar map__75929__$1 \x3d cljs.core.__destructure_map(map__75929);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75929__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar signal_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75929__$1,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404));\nvar deadline \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75929__$1,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572));\nvar now \x3d intemporal.utils.current_time_ms();\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar temp__5823__auto__ \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar signal_data \x3d temp__5823__auto__;\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_signal_received(observer,workflow_id,signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data));\n} else {\n}\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nif((now \x3e\x3d deadline)){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),now], null));\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.schedule_timer(scheduler,workflow_id,seq,deadline,(function (){\nvar signal_data_QMARK__76101 \x3d intemporal.protocol.consume_signal(store,workflow_id,signal_name);\nintemporal.protocol.save_event(store,workflow_id,(function (){var G__75930 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),(!((signal_data_QMARK__76101 \x3d\x3d null))),new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif((!((signal_data_QMARK__76101 \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75930,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(signal_data_QMARK__76101));\n} else {\nreturn G__75930;\n}\n})());\n\nif(cljs.core.truth_(wake_fn)){\nreturn (wake_fn.cljs$core$IFn$_invoke$arity$0 ? wake_fn.cljs$core$IFn$_invoke$arity$0() : wake_fn.call(null));\n} else {\nreturn null;\n}\n}));\n\nreturn new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114);\n}\n}\n});\nintemporal.internal.execution.process_join_pending \x3d (function intemporal$internal$execution$process_join_pending(store,executor,workflow_id,suspension_data,pending_events,pending_asyncs,observer){\nvar map__75931 \x3d suspension_data;\nvar map__75931__$1 \x3d cljs.core.__destructure_map(map__75931);\nvar handle_seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75931__$1,new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605));\nif(cljs.core.seq(pending_asyncs)){\nvar workflow_ctx75932 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75933 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75934 \x3d workflow_ctx75932;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75934);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75933);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75935 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75936 \x3d workflow_ctx75932;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75936);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75935);\n}})());\n}));\n}));\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nvar store__$1 \x3d intemporal.internal.context.current_store();\nvar workflow_id__$1 \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store__$1,workflow_id__$1,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d completed;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn failed;\n}\n})())){\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nreturn new cljs.core.Keyword(null,\x22wait-async\x22,\x22wait-async\x22,-259133724);\n}\n}\n});\n/**\n * Create workflow execution context from history.\n */\nintemporal.internal.execution.make_workflow_context \x3d (function intemporal$internal$execution$make_workflow_context(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76102 \x3d arguments.length;\nvar i__5750__auto___76103 \x3d (0);\nwhile(true){\nif((i__5750__auto___76103 \x3c len__5749__auto___76102)){\nargs__5755__auto__.push((arguments[i__5750__auto___76103]));\n\nvar G__76104 \x3d (i__5750__auto___76103 + (1));\ni__5750__auto___76103 \x3d G__76104;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((5) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((5)),(0),null)):null);\nreturn intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic \x3d (function (workflow_id,history,store,registry,observer,p__75943){\nvar map__75944 \x3d p__75943;\nvar map__75944__$1 \x3d cljs.core.__destructure_map(map__75944);\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75944__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar G__75945 \x3d new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(history),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer], null);\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__75945,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__75945;\n}\n}));\n\n(intemporal.internal.execution.make_workflow_context.cljs$lang$maxFixedArity \x3d (5));\n\n/** @this {Function} */\n(intemporal.internal.execution.make_workflow_context.cljs$lang$applyTo \x3d (function (seq75937){\nvar G__75938 \x3d cljs.core.first(seq75937);\nvar seq75937__$1 \x3d cljs.core.next(seq75937);\nvar G__75939 \x3d cljs.core.first(seq75937__$1);\nvar seq75937__$2 \x3d cljs.core.next(seq75937__$1);\nvar G__75940 \x3d cljs.core.first(seq75937__$2);\nvar seq75937__$3 \x3d cljs.core.next(seq75937__$2);\nvar G__75941 \x3d cljs.core.first(seq75937__$3);\nvar seq75937__$4 \x3d cljs.core.next(seq75937__$3);\nvar G__75942 \x3d cljs.core.first(seq75937__$4);\nvar seq75937__$5 \x3d cljs.core.next(seq75937__$4);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__75938,G__75939,G__75940,G__75941,G__75942,seq75937__$5);\n}));\n\n/**\n * Save completion events and return result. Returns a promise.\n */\nintemporal.internal.execution.finalize_completed \x3d (function intemporal$internal$execution$finalize_completed(store,executor,workflow_id,pending_asyncs,pending_events,result,observer){\nvar workflow_ctx75946 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75947 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75948 \x3d workflow_ctx75946;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75948);\n\ntry{if(cljs.core.seq(pending_asyncs)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs,pending_events,observer);\n} else {\nif(cljs.core.seq(pending_events)){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n} else {\n}\n\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75947);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75949 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75950 \x3d workflow_ctx75946;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75950);\n\ntry{intemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_completed(observer,workflow_id,result);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75949);\n}})());\n}));\n}));\n});\n/**\n * Save cancellation event and return result as failed.\n */\nintemporal.internal.execution.finalize_cancelled \x3d (function intemporal$internal$execution$finalize_cancelled(store,workflow_id,pending_events,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Save failure event and return result.\n */\nintemporal.internal.execution.finalize_failed \x3d (function intemporal$internal$execution$finalize_failed(store,workflow_id,pending_events,error,observer){\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nvar error_map \x3d intemporal.internal.error.throwable__GT_map(error);\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n});\n/**\n * Convert action keyword to workflow result map.\n */\nintemporal.internal.execution.action__GT_result \x3d (function intemporal$internal$execution$action__GT_result(action,workflow_id){\nvar G__75951 \x3d action;\nvar G__75951__$1 \x3d (((G__75951 instanceof cljs.core.Keyword))?G__75951.fqn:null);\nswitch (G__75951__$1) {\ncase \x22wait-signal\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-timer\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ncase \x22wait-async\x22:\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n\nbreak;\ndefault:\nreturn null;\n\n}\n});\n/**\n * Dispatch suspension to appropriate handler based on type.\n * Returns a promise of action keyword: :continue or :wait-*\n */\nintemporal.internal.execution.handle_suspension \x3d (function intemporal$internal$execution$handle_suspension(engine,workflow_id,suspension_type,suspension_data,pending_asyncs,pending_events,wake_fn,observer){\nvar map__75952 \x3d engine;\nvar map__75952__$1 \x3d cljs.core.__destructure_map(map__75952);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75952__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75952__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75952__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar pending_asyncs_list \x3d pending_asyncs;\nvar pending_events_list \x3d pending_events;\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_suspended(observer,workflow_id,suspension_type);\n} else {\n}\n\nvar G__75953 \x3d suspension_type;\nvar G__75953__$1 \x3d (((G__75953 instanceof cljs.core.Keyword))?G__75953.fqn:null);\nswitch (G__75953__$1) {\ncase \x22activity\x22:\nif(cljs.core.seq(pending_asyncs_list)){\nvar workflow_ctx75954 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75955 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75956 \x3d workflow_ctx75954;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75956);\n\ntry{return intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75955);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75957 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75958 \x3d workflow_ctx75954;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75958);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75957);\n}})());\n}));\n}));\n} else {\nreturn intemporal.internal.execution.process_pending_activity(store,executor,workflow_id,suspension_data,pending_events_list,observer);\n}\n\nbreak;\ncase \x22timer\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_timer(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal(store,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22wait-signal-timeout\x22:\nreturn promesa.core.resolved(intemporal.internal.execution.process_signal_with_timeout(store,scheduler,workflow_id,suspension_data,pending_events_list,wake_fn,observer));\n\nbreak;\ncase \x22join-pending\x22:\nreturn intemporal.internal.execution.process_join_pending(store,executor,workflow_id,suspension_data,pending_events_list,pending_asyncs_list,observer);\n\nbreak;\ncase \x22join-any-pending\x22:\nvar workflow_ctx75959 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75960 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75961 \x3d workflow_ctx75959;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75961);\n\ntry{if(cljs.core.seq(pending_asyncs_list)){\nreturn intemporal.internal.execution.process_pending_asyncs_parallel(store,executor,workflow_id,pending_asyncs_list,pending_events_list,observer);\n} else {\nreturn null;\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75960);\n}})()),(function (_){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75962 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75963 \x3d workflow_ctx75959;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75963);\n\ntry{return new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75962);\n}})());\n}));\n}));\n\nbreak;\ncase \x22child-workflow\x22:\nreturn (intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5 ? intemporal.internal.execution.process_child_workflow.cljs$core$IFn$_invoke$arity$5(engine,workflow_id,suspension_data,pending_events_list,observer) : intemporal.internal.execution.process_child_workflow.call(null,engine,workflow_id,suspension_data,pending_events_list,observer));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75953__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * Internal: Execute a side-effect thunk only once (not on replay).\n * Uses a special event marker to track execution.\n * \n * This is an internal implementation detail and should not be exposed to users.\n * Users should wrap side effects in activities for proper determinism.\n * \n * This can be used to eg run logging statements, etc\n */\nintemporal.internal.execution.run_once \x3d (function intemporal$internal$execution$run_once(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22run-once-completed\x22,\x22run-once-completed\x22,-1250510463),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn result;\n}\n});\n/**\n * Main workflow execution loop - orchestrates replay and execution.\n * \n * Refactored for clarity into three concerns:\n * 1. Execution: Run workflow function with context (execute-workflow-fn)\n * 2. Suspension handling: Dispatch to appropriate handlers (handle-suspension)\n * 3. Finalization: Save events and return results (finalize-* functions)\n * \n * Returns a promise of a map with :status and :workflow-id, plus :result (on success) or :error (on failure).\n */\nintemporal.internal.execution.run_workflow_internal \x3d (function intemporal$internal$execution$run_workflow_internal(p__75964,workflow_id,workflow_fn,args,p__75965){\nvar map__75966 \x3d p__75964;\nvar map__75966__$1 \x3d cljs.core.__destructure_map(map__75966);\nvar engine \x3d map__75966__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75966__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75966__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75966__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75966__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__75967 \x3d p__75965;\nvar map__75967__$1 \x3d cljs.core.__destructure_map(map__75967);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75967__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__75967__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar wake_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__75967__$1,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441));\nreturn promesa.core.create.cljs$core$IFn$_invoke$arity$1((function (resolve_fn_75972,reject_fn_75971){\nvar loop_fn_75968 \x3d (function intemporal$internal$execution$run_workflow_internal_$_loop_fn_75968(iteration){\nreturn promesa.core.fnly.cljs$core$IFn$_invoke$arity$2((function (res_75969,err_75970){\nif((!((err_75970 \x3d\x3d null)))){\nreturn (reject_fn_75971.cljs$core$IFn$_invoke$arity$1 ? reject_fn_75971.cljs$core$IFn$_invoke$arity$1(err_75970) : reject_fn_75971.call(null,err_75970));\n} else {\nif(promesa.core.recur_QMARK_(res_75969)){\npromesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(intemporal$internal$execution$run_workflow_internal_$_loop_fn_75968,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192).cljs$core$IFn$_invoke$arity$1(res_75969));\n})));\n\nreturn null;\n} else {\nreturn (resolve_fn_75972.cljs$core$IFn$_invoke$arity$1 ? resolve_fn_75972.cljs$core$IFn$_invoke$arity$1(res_75969) : resolve_fn_75972.call(null,res_75969));\n}\n}\n}),promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise(iteration),(function (iteration__$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((((iteration__$1 \x3e\x3d max_iterations))?(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22Max iterations exceeded\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22iterations\x22,\x22iterations\x22,-1402710890),iteration__$1], null))})():null)),(function (___30206__auto__){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var args__69521__auto__ \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Internal loop %d of %d\x22,iteration__$1,max_iterations], null);\nvar vec__75973 \x3d (((cljs.core.first(args__69521__auto__) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto__),cljs.core.second(args__69521__auto__),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto__)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto__),cljs.core.rest(args__69521__auto__)], null));\nvar err__69522__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75973,(0),null);\nvar fmt__69523__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75973,(1),null);\nvar fmt_args__69524__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75973,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto__,fmt_args__69524__auto__),err__69522__auto__,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\nreturn null;\n})()),(function (___30206__auto____$1){\nreturn promesa.protocols._promise((cljs.core.truth_(intemporal.protocol.shutdown_QMARK_(executor))?(function (){\nvar args__69521__auto___76122 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executor shutting down, suspending workflow\x22], null);\nvar vec__75976_76123 \x3d (((cljs.core.first(args__69521__auto___76122) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76122),cljs.core.second(args__69521__auto___76122),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76122)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76122),cljs.core.rest(args__69521__auto___76122)], null));\nvar err__69522__auto___76124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75976_76123,(0),null);\nvar fmt__69523__auto___76125 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75976_76123,(1),null);\nvar fmt_args__69524__auto___76126 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75976_76123,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76125,fmt_args__69524__auto___76126),err__69522__auto___76124,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22suspended\x22,\x22suspended\x22,-753628113),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n})()\n:(cljs.core.truth_(intemporal.protocol.is_cancelled_QMARK_(store,workflow_id))?(function (){var error_map \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22clojure.lang.ExceptionInfo\x22,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),\x22Workflow cancelled\x22,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null)], null);\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_cancelled(observer,workflow_id);\n} else {\n}\n\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69512__auto___76127 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow cancelled, failing\x22], null);\nvar vec__75979_76128 \x3d (((cljs.core.first(args__69512__auto___76127) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___76127),cljs.core.rest(args__69512__auto___76127)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___76127], null));\nvar err__69513__auto___76129 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75979_76128,(0),null);\nvar msgs__69514__auto___76130 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75979_76128,(1),null);\nvar msg__69515__auto___76131 \x3d ((cljs.core.seq(msgs__69514__auto___76130))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___76130):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___76129));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___76131,err__69513__auto___76129,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_failed(observer,workflow_id,error_map);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error_map], null);\n})():(function (){var history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar ctx \x3d intemporal.internal.execution.make_workflow_context.cljs$core$IFn$_invoke$arity$variadic(workflow_id,history__$1,store,registry,observer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(engine)], 0));\nvar exec_result \x3d (function (){var _STAR_workflow_context_STAR__orig_val__75982 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75983 \x3d ctx;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75983);\n\ntry{var args__69521__auto___76135 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Executing workflow function %s...\x22,workflow_fn], null);\nvar vec__75984_76136 \x3d (((cljs.core.first(args__69521__auto___76135) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76135),cljs.core.second(args__69521__auto___76135),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76135)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76135),cljs.core.rest(args__69521__auto___76135)], null));\nvar err__69522__auto___76137 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75984_76136,(0),null);\nvar fmt__69523__auto___76138 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75984_76136,(1),null);\nvar fmt_args__69524__auto___76139 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75984_76136,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76138,fmt_args__69524__auto___76139),err__69522__auto___76137,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.execute_workflow_fn(workflow_fn,args);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75982);\n}})();\nvar dispatch \x3d (function (exec_result__$1){\nvar args__69521__auto___76145 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow function executed, got: %s\x22,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1)], null);\nvar vec__75987_76146 \x3d (((cljs.core.first(args__69521__auto___76145) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76145),cljs.core.second(args__69521__auto___76145),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76145)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76145),cljs.core.rest(args__69521__auto___76145)], null));\nvar err__69522__auto___76147 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75987_76146,(0),null);\nvar fmt__69523__auto___76148 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75987_76146,(1),null);\nvar fmt_args__69524__auto___76149 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__75987_76146,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76148,fmt_args__69524__auto___76149),err__69522__auto___76147,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar G__75990 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(exec_result__$1);\nvar G__75990__$1 \x3d (((G__75990 instanceof cljs.core.Keyword))?G__75990.fqn:null);\nswitch (G__75990__$1) {\ncase \x22completed\x22:\nreturn intemporal.internal.execution.finalize_completed(store,executor,workflow_id,new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22cancelled\x22:\nreturn intemporal.internal.execution.finalize_cancelled(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ncase \x22suspended\x22:\nvar workflow_ctx75991 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.protocols._mcat(promesa.protocols._promise(null),(function (___30238__auto____$1){\nreturn promesa.protocols._mcat(promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75992 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75993 \x3d workflow_ctx75991;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75993);\n\ntry{return intemporal.internal.execution.handle_suspension(engine,workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22suspension-data\x22,\x22suspension-data\x22,-501723931).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-asyncs\x22,\x22pending-asyncs\x22,-1921658168).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),wake_fn,observer);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75992);\n}})()),(function (action){\nreturn promesa.protocols._promise((function (){var _STAR_workflow_context_STAR__orig_val__75994 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75995 \x3d workflow_ctx75991;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75995);\n\ntry{if(cljs.core.truth_((function (){var and__5023__auto__ \x3d observer;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(action,new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553))){\nreturn promesa.core.__GT_Recur(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(iteration__$1 + (1))], null));\n} else {\nreturn intemporal.internal.execution.action__GT_result(action,workflow_id);\n}\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75994);\n}})());\n}));\n}));\n\nbreak;\ncase \x22failed\x22:\nreturn intemporal.internal.execution.finalize_failed(store,workflow_id,new cljs.core.Keyword(null,\x22pending-events\x22,\x22pending-events\x22,1019210762).cljs$core$IFn$_invoke$arity$1(exec_result__$1),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(exec_result__$1),observer);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__75990__$1)].join(\x27\x27)));\n\n}\n});\nif(promesa.core.promise_QMARK_(exec_result)){\nvar workflow_ctx75996 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(exec_result,(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__75997 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__75998 \x3d workflow_ctx75996;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__75998);\n\ntry{return dispatch(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__75997);\n}}));\n} else {\nreturn dispatch(exec_result);\n}\n})())));\n}));\n}));\n}));\n})));\n});\nreturn promesa.exec.run_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22vthread\x22,\x22vthread\x22,441141075),promesa.exec.wrap_bindings((function (){\nreturn loop_fn_75968((0));\n})));\n}));\n});\nintemporal.internal.execution.process_child_workflow \x3d (function intemporal$internal$execution$process_child_workflow(p__75999,workflow_id,suspension_data,pending_events,observer){\nvar map__76000 \x3d p__75999;\nvar map__76000__$1 \x3d cljs.core.__destructure_map(map__76000);\nvar engine \x3d map__76000__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76000__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76000__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76000__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76000__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__76001 \x3d suspension_data;\nvar map__76001__$1 \x3d cljs.core.__destructure_map(map__76001);\nvar seq \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76001__$1,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\nvar child_workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76001__$1,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950));\nvar workflow_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76001__$1,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76001__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nintemporal.protocol.save_events(store,workflow_id,pending_events);\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx76002 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine,child_workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000)], null)),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__76003 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__76004 \x3d workflow_ctx76002;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__76004);\n\ntry{return (function (result){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___76159 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s completed\x22,child_workflow_id], null);\nvar vec__76005_76160 \x3d (((cljs.core.first(args__69521__auto___76159) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76159),cljs.core.second(args__69521__auto___76159),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76159)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76159),cljs.core.rest(args__69521__auto___76159)], null));\nvar err__69522__auto___76161 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76005_76160,(0),null);\nvar fmt__69523__auto___76162 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76005_76160,(1),null);\nvar fmt_args__69524__auto___76163 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76005_76160,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76162,fmt_args__69524__auto___76163),err__69522__auto___76161,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n} else {\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),[\x22Child workflow ended with status: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result))].join(\x27\x27)], null);\n}\n})(),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___76164 \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Child workflow with id %s failed, status: %s, error: %s\x22,child_workflow_id,new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(result)], null);\nvar vec__76008_76165 \x3d (((cljs.core.first(args__69521__auto___76164) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76164),cljs.core.second(args__69521__auto___76164),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76164)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76164),cljs.core.rest(args__69521__auto___76164)], null));\nvar err__69522__auto___76166 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76008_76165,(0),null);\nvar fmt__69523__auto___76167 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76008_76165,(1),null);\nvar fmt_args__69524__auto___76168 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76008_76165,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76167,fmt_args__69524__auto___76168),err__69522__auto___76166,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__76003);\n}}));\n})(),Error,(function (e){\nintemporal.protocol.save_event(store,workflow_id,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),intemporal.internal.error.throwable__GT_map(e),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nvar args__69521__auto___76174 \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Error while executing child workflow with id %s\x22,child_workflow_id], null);\nvar vec__76011_76175 \x3d (((cljs.core.first(args__69521__auto___76174) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76174),cljs.core.second(args__69521__auto___76174),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76174)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76174),cljs.core.rest(args__69521__auto___76174)], null));\nvar err__69522__auto___76176 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76011_76175,(0),null);\nvar fmt__69523__auto___76177 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76011_76175,(1),null);\nvar fmt_args__69524__auto___76178 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76011_76175,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.execution\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76177,fmt_args__69524__auto___76178),err__69522__auto___76176,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22continue\x22,\x22continue\x22,-207346553);\n}));\n});\n"); +SHADOW_ENV.evalLoad("intemporal.internal.fns.start_workflow.js", true, "goog.provide(\x27intemporal.internal.fns.start_workflow\x27);\nintemporal.internal.fns.start_workflow.waiting_status_QMARK_ \x3d (function intemporal$internal$fns$start_workflow$waiting_status_QMARK_(result){\nvar G__76015 \x3d new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413).cljs$core$IFn$_invoke$arity$1(result);\nvar fexpr__76014 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22waiting-timer\x22,\x22waiting-timer\x22,1321606976),null,new cljs.core.Keyword(null,\x22waiting-signal-timeout\x22,\x22waiting-signal-timeout\x22,1840225094),null,new cljs.core.Keyword(null,\x22waiting-signal\x22,\x22waiting-signal\x22,1178776855),null,new cljs.core.Keyword(null,\x22waiting-async\x22,\x22waiting-async\x22,-1738027335),null], null), null);\nreturn (fexpr__76014.cljs$core$IFn$_invoke$arity$1 ? fexpr__76014.cljs$core$IFn$_invoke$arity$1(G__76015) : fexpr__76014.call(null,G__76015));\n});\n/**\n * Start a workflow execution. Returns a js/Promise that resolves with the result map.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n */\nintemporal.internal.fns.start_workflow.start_workflow \x3d (function intemporal$internal$fns$start_workflow$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76132 \x3d arguments.length;\nvar i__5750__auto___76133 \x3d (0);\nwhile(true){\nif((i__5750__auto___76133 \x3c len__5749__auto___76132)){\nargs__5755__auto__.push((arguments[i__5750__auto___76133]));\n\nvar G__76134 \x3d (i__5750__auto___76133 + (1));\ni__5750__auto___76133 \x3d G__76134;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76035,workflow_fn,args,p__76036){\nvar map__76037 \x3d p__76035;\nvar map__76037__$1 \x3d cljs.core.__destructure_map(map__76037);\nvar engine \x3d map__76037__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76037__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__76038 \x3d p__76036;\nvar map__76038__$1 \x3d cljs.core.__destructure_map(map__76038);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76038__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76038__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76038__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76038__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__76039 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__76039,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__76039;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nintemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___76140 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started\x22], null);\nvar vec__76045_76141 \x3d (((cljs.core.first(args__69512__auto___76140) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___76140),cljs.core.rest(args__69512__auto___76140)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___76140], null));\nvar err__69513__auto___76142 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76045_76141,(0),null);\nvar msgs__69514__auto___76143 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76045_76141,(1),null);\nvar msg__69515__auto___76144 \x3d ((cljs.core.seq(msgs__69514__auto___76143))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___76143):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___76142));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___76144,err__69513__auto___76142,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar d \x3d promesa.core.deferred();\nvar run_step \x3d (function intemporal$internal$fns$start_workflow$run_step(){\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx76067 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$run_step], null)),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__76068 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__76069 \x3d workflow_ctx76067;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__76069);\n\ntry{return (function (result){\nif(cljs.core.truth_(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result))){\nreturn null;\n} else {\nreturn promesa.core.resolve_BANG_.cljs$core$IFn$_invoke$arity$2(d,result);\n}\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__76068);\n}}));\n})(),Error,(function (e){\nreturn promesa.core.reject_BANG_(d,e);\n}));\n});\nrun_step();\n\nreturn d;\n}));\n\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow.cljs$lang$applyTo \x3d (function (seq76021){\nvar G__76022 \x3d cljs.core.first(seq76021);\nvar seq76021__$1 \x3d cljs.core.next(seq76021);\nvar G__76023 \x3d cljs.core.first(seq76021__$1);\nvar seq76021__$2 \x3d cljs.core.next(seq76021__$1);\nvar G__76024 \x3d cljs.core.first(seq76021__$2);\nvar seq76021__$3 \x3d cljs.core.next(seq76021__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76022,G__76023,G__76024,seq76021__$3);\n}));\n\n/**\n * Start a workflow execution without blocking.\n * CLJS-compatible: returns immediately after the first execution step.\n * \n * When the workflow eventually completes (possibly after multiple\n * timer/signal wake cycles), calls on-complete with the result map.\n * \n * Arguments:\n * - engine: same as start-workflow\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options (same as start-workflow, plus):\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * - :on-complete - fn of one arg [result], called when workflow finishes.\n * If nil, result is silently discarded on completion.\n * \n * Returns the initial execution result (may be :waiting-* if suspended).\n */\nintemporal.internal.fns.start_workflow.start_workflow_async \x3d (function intemporal$internal$fns$start_workflow$start_workflow_async(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76151 \x3d arguments.length;\nvar i__5750__auto___76152 \x3d (0);\nwhile(true){\nif((i__5750__auto___76152 \x3c len__5749__auto___76151)){\nargs__5755__auto__.push((arguments[i__5750__auto___76152]));\n\nvar G__76153 \x3d (i__5750__auto___76152 + (1));\ni__5750__auto___76152 \x3d G__76153;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76089,workflow_fn,args,p__76090){\nvar map__76091 \x3d p__76089;\nvar map__76091__$1 \x3d cljs.core.__destructure_map(map__76091);\nvar engine \x3d map__76091__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76091__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar map__76092 \x3d p__76090;\nvar map__76092__$1 \x3d cljs.core.__destructure_map(map__76092);\nvar workflow_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76092__$1,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646));\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76092__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76092__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nvar on_complete \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76092__$1,new cljs.core.Keyword(null,\x22on-complete\x22,\x22on-complete\x22,-1531183971));\nvar protocols \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76092__$1,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896));\nvar engine__$1 \x3d (function (){var G__76093 \x3d engine;\nif(cljs.core.truth_(protocols)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__76093,new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols);\n} else {\nreturn G__76093;\n}\n})();\nvar wf_id \x3d (function (){var or__5025__auto__ \x3d workflow_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar observer__$1 \x3d (function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(engine__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\n}\n})();\nvar wake_fn \x3d (function intemporal$internal$fns$start_workflow$wake_fn_impl(){\nvar _STAR_xfn_STAR__orig_val__76094 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__76095 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__76095);\n\ntry{if(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_resumed(observer__$1,wf_id);\n} else {\n}\n\nvar args__69521__auto___76154 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Waking workflow for resume\x22], null);\nvar vec__76098_76155 \x3d (((cljs.core.first(args__69521__auto___76154) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76154),cljs.core.second(args__69521__auto___76154),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76154)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76154),cljs.core.rest(args__69521__auto___76154)], null));\nvar err__69522__auto___76156 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76098_76155,(0),null);\nvar fmt__69523__auto___76157 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76098_76155,(1),null);\nvar fmt_args__69524__auto___76158 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76098_76155,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76157,fmt_args__69524__auto___76158),err__69522__auto___76156,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx76105 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),intemporal$internal$fns$start_workflow$wake_fn_impl], null)),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__76106 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__76107 \x3d workflow_ctx76105;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__76107);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\nreturn null;\n}\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__76106);\n}}));\n})(),Error,(function (e){\nif(cljs.core.truth_(on_complete)){\nvar G__76108 \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nreturn (on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(G__76108) : on_complete.call(null,G__76108));\n} else {\nreturn null;\n}\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__76094);\n}});\nvar _STAR_xfn_STAR__orig_val__76109 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__76110 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__76110);\n\ntry{intemporal.protocol.save_event(store,wf_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nif(cljs.core.truth_(observer__$1)){\nintemporal.protocol.on_workflow_started(observer__$1,wf_id,args);\n} else {\n}\n\nvar args__69512__auto___76169 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow started (async)\x22], null);\nvar vec__76111_76170 \x3d (((cljs.core.first(args__69512__auto___76169) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___76169),cljs.core.rest(args__69512__auto___76169)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___76169], null));\nvar err__69513__auto___76171 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76111_76170,(0),null);\nvar msgs__69514__auto___76172 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76111_76170,(1),null);\nvar msg__69515__auto___76173 \x3d ((cljs.core.seq(msgs__69514__auto___76172))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___76172):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___76171));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___76173,err__69513__auto___76171,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn promesa.core.catch$.cljs$core$IFn$_invoke$arity$3((function (){var workflow_ctx76116 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nreturn promesa.core.then.cljs$core$IFn$_invoke$arity$2(intemporal.internal.execution.run_workflow_internal(engine__$1,wf_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations,new cljs.core.Keyword(null,\x22wake-fn\x22,\x22wake-fn\x22,1296659441),wake_fn], null)),(function (res__75154__auto__){\nvar _STAR_workflow_context_STAR__orig_val__76117 \x3d intemporal.internal.context._STAR_workflow_context_STAR_;\nvar _STAR_workflow_context_STAR__temp_val__76118 \x3d workflow_ctx76116;\n(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__temp_val__76118);\n\ntry{return (function (result){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d on_complete;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(intemporal.internal.fns.start_workflow.waiting_status_QMARK_(result));\n} else {\nreturn and__5023__auto__;\n}\n})())){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(result) : on_complete.call(null,result));\n} else {\n}\n\nreturn result;\n})(res__75154__auto__);\n}finally {(intemporal.internal.context._STAR_workflow_context_STAR_ \x3d _STAR_workflow_context_STAR__orig_val__76117);\n}}));\n})(),Error,(function (e){\nvar args__69521__auto___76179 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Caught exception during async workflow start\x22], null);\nvar vec__76119_76180 \x3d (((cljs.core.first(args__69521__auto___76179) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76179),cljs.core.second(args__69521__auto___76179),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76179)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76179),cljs.core.rest(args__69521__auto___76179)], null));\nvar err__69522__auto___76181 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76119_76180,(0),null);\nvar fmt__69523__auto___76182 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76119_76180,(1),null);\nvar fmt_args__69524__auto___76183 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76119_76180,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.internal.fns.start-workflow\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76182,fmt_args__69524__auto___76183),err__69522__auto___76181,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar err_result \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),e], null);\nif(cljs.core.truth_(on_complete)){\n(on_complete.cljs$core$IFn$_invoke$arity$1 ? on_complete.cljs$core$IFn$_invoke$arity$1(err_result) : on_complete.call(null,err_result));\n} else {\n}\n\nreturn promesa.core.rejected(e);\n}));\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__76109);\n}}));\n\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.internal.fns.start_workflow.start_workflow_async.cljs$lang$applyTo \x3d (function (seq76080){\nvar G__76081 \x3d cljs.core.first(seq76080);\nvar seq76080__$1 \x3d cljs.core.next(seq76080);\nvar G__76082 \x3d cljs.core.first(seq76080__$1);\nvar seq76080__$2 \x3d cljs.core.next(seq76080__$1);\nvar G__76083 \x3d cljs.core.first(seq76080__$2);\nvar seq76080__$3 \x3d cljs.core.next(seq76080__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76081,G__76082,G__76083,seq76080__$3);\n}));\n\n"); SHADOW_ENV.evalLoad("intemporal.store.js", true, "goog.provide(\x27intemporal.store\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {intemporal.protocol.IStore}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.store.InMemoryStore \x3d (function (state,__meta,__extmap,__hash){\nthis.state \x3d state;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28969,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28978 \x3d k28969;\nvar G__28978__$1 \x3d (((G__28978 instanceof cljs.core.Keyword))?G__28978.fqn:null);\nswitch (G__28978__$1) {\ncase \x22state\x22:\nreturn self__.state;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28969,else__5326__auto__);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28980){\nvar vec__28983 \x3d p__28980;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28983,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$load_history$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.PersistentVector.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$unregister_signal_callback$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_name], 0));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$is_cancelled_QMARK_$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),false);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$consume_signal$arity$3 \x3d (function (_,workflow_id,signal_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar result \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.state,(function (s){\nvar signals \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null));\nif(cljs.core.seq(signals)){\ncljs.core.reset_BANG_(result,cljs.core.first(signals));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.vec,cljs.core.rest));\n} else {\nreturn s;\n}\n}));\n\nreturn cljs.core.deref(result);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$find_event$arity$4 \x3d (function (this$,worfklow_id,event_type,seq_num){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar history__$1 \x3d this$__$1.intemporal$protocol$IStore$load_history$arity$2(null,worfklow_id);\nreturn cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28966_SHARP_){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),event_type)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(p1__28966_SHARP_),seq_num)));\n}),history__$1));\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$register_signal_callback$arity$4 \x3d (function (_,workflow_id,signal_name,callback){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null),callback);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_pending_signals$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021)], null),cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_events$arity$3 \x3d (function (_,workflow_id,events){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.seq(events)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([events], 0));\n} else {\n}\n\nreturn events;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$add_signal$arity$4 \x3d (function (this$,workflow_id,signal_name,signal_data){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signals\x22,\x22signals\x22,1732137021),signal_name], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([signal_data], 0));\n\nvar temp__5825__auto___29275 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22signal-callbacks\x22,\x22signal-callbacks\x22,-89555556),signal_name], null));\nif(cljs.core.truth_(temp__5825__auto___29275)){\nvar callback_29278 \x3d temp__5825__auto___29275;\nsetTimeout(callback_29278,(0));\n} else {\n}\n\nreturn signal_data;\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$mark_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224)], null),true);\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$get_workflow_status$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar wf \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id], null));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224);\n} else {\nif(cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf))){\nreturn new cljs.core.Keyword(null,\x22not-found\x22,\x22not-found\x22,-629079980);\n} else {\nvar last_event \x3d cljs.core.last(new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220).cljs$core$IFn$_invoke$arity$1(wf));\nvar G__29001 \x3d new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(last_event);\nvar G__29001__$1 \x3d (((G__29001 instanceof cljs.core.Keyword))?G__29001.fqn:null);\nswitch (G__29001__$1) {\ncase \x22workflow-completed\x22:\nreturn new cljs.core.Keyword(null,\x22completed\x22,\x22completed\x22,-486056503);\n\nbreak;\ncase \x22workflow-failed\x22:\nreturn new cljs.core.Keyword(null,\x22failed\x22,\x22failed\x22,-1397425762);\n\nbreak;\ndefault:\nreturn new cljs.core.Keyword(null,\x22running\x22,\x22running\x22,1554969103);\n\n}\n\n}\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.intemporal$protocol$IStore$save_event$arity$3 \x3d (function (_,workflow_id,event){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22workflows\x22,\x22workflows\x22,1533711151),workflow_id,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([event], 0));\n\nreturn event;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.store.InMemoryStore{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state],null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28968){\nvar self__ \x3d this;\nvar G__28968__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28968__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1391424603 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28970,other28971){\nvar self__ \x3d this;\nvar this28970__$1 \x3d this;\nreturn (((!((other28971 \x3d\x3d null)))) \x26\x26 ((((this28970__$1.constructor \x3d\x3d\x3d other28971.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.state,other28971.state)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28970__$1.__extmap,other28971.__extmap)))))));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28969){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29104 \x3d k28969;\nvar G__29104__$1 \x3d (((G__29104 instanceof cljs.core.Keyword))?G__29104.fqn:null);\nswitch (G__29104__$1) {\ncase \x22state\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28969);\n\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29126 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29127 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29126.cljs$core$IFn$_invoke$arity$2 ? pred__29126.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127) : pred__29126.call(null,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),expr__29127)))){\nreturn (new intemporal.store.InMemoryStore(G__28968,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.store.InMemoryStore(self__.state,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28968),null));\n}\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),self__.state,null))], null),self__.__extmap));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28968){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.store.InMemoryStore(self__.state,G__28968,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.store.InMemoryStore.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.store.InMemoryStore.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null)], null);\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$type \x3d true);\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.store/InMemoryStore\x22,null,(1),null));\n}));\n\n(intemporal.store.InMemoryStore.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.store/InMemoryStore\x22);\n}));\n\n/**\n * Positional factory function for intemporal.store/InMemoryStore.\n */\nintemporal.store.__GT_InMemoryStore \x3d (function intemporal$store$__GT_InMemoryStore(state){\nreturn (new intemporal.store.InMemoryStore(state,null,null,null));\n});\n\n/**\n * Factory function for intemporal.store/InMemoryStore, taking a map of keywords to field values.\n */\nintemporal.store.map__GT_InMemoryStore \x3d (function intemporal$store$map__GT_InMemoryStore(G__28972){\nvar extmap__5365__auto__ \x3d (function (){var G__29201 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28972,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099));\nif(cljs.core.record_QMARK_(G__28972)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29201);\n} else {\nreturn G__29201;\n}\n})();\nreturn (new intemporal.store.InMemoryStore(new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(G__28972),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n"); SHADOW_ENV.evalLoad("intemporal.observer.js", true, "goog.provide(\x27intemporal.observer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.observer.LoggingObserver \x3d (function (log_atom,__meta,__extmap,__hash){\nthis.log_atom \x3d log_atom;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k28974,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__28979 \x3d k28974;\nvar G__28979__$1 \x3d (((G__28979 instanceof cljs.core.Keyword))?G__28979.fqn:null);\nswitch (G__28979__$1) {\ncase \x22log-atom\x22:\nreturn self__.log_atom;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28974,else__5326__auto__);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__28981){\nvar vec__28982 \x3d p__28981;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28982,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.observer.LoggingObserver{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom],null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28973){\nvar self__ \x3d this;\nvar G__28973__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28973__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (-1356941522 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28975,other28976){\nvar self__ \x3d this;\nvar this28975__$1 \x3d this;\nreturn (((!((other28976 \x3d\x3d null)))) \x26\x26 ((((this28975__$1.constructor \x3d\x3d\x3d other28976.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.log_atom,other28976.log_atom)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28975__$1.__extmap,other28976.__extmap)))))));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,workflow_id,seq_num,activity_name,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,workflow_id,args){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-started\x22,\x22workflow-started\x22,-1951533423),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,result,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-resumed\x22,\x22workflow-resumed\x22,-1165962528),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,workflow_id,seq_num,fire_at){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,workflow_id,seq_num,activity_name,error,duration_ms){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),duration_ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,workflow_id,seq_num,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,workflow_id,seq_num,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,workflow_id,result){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,workflow_id,seq_num){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,workflow_id,signal_name,payload){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,workflow_id,error){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-failed\x22,\x22workflow-failed\x22,1740167166),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),error,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,workflow_id){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-cancelled\x22,\x22workflow-cancelled\x22,696539230),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,workflow_id,seq_num,activity_name){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22activity-started\x22,\x22activity-started\x22,-1116606589),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,workflow_id,suspension_type){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.log_atom,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),new cljs.core.Keyword(null,\x22workflow-suspended\x22,\x22workflow-suspended\x22,1316626574),new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id,new cljs.core.Keyword(null,\x22suspension-type\x22,\x22suspension-type\x22,1720873224),suspension_type,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k28974){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__29063 \x3d k28974;\nvar G__29063__$1 \x3d (((G__29063 instanceof cljs.core.Keyword))?G__29063.fqn:null);\nswitch (G__29063__$1) {\ncase \x22log-atom\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28974);\n\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__29080 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__29081 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__29080.cljs$core$IFn$_invoke$arity$2 ? pred__29080.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081) : pred__29080.call(null,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),expr__29081)))){\nreturn (new intemporal.observer.LoggingObserver(G__28973,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__28973),null));\n}\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157),self__.log_atom,null))], null),self__.__extmap));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__28973){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.observer.LoggingObserver(self__.log_atom,G__28973,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.observer.LoggingObserver.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.observer.LoggingObserver.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22log-atom\x22,\x22log-atom\x22,-1250409612,null)], null);\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$type \x3d true);\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.observer/LoggingObserver\x22,null,(1),null));\n}));\n\n(intemporal.observer.LoggingObserver.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.observer/LoggingObserver\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/LoggingObserver.\n */\nintemporal.observer.__GT_LoggingObserver \x3d (function intemporal$observer$__GT_LoggingObserver(log_atom){\nreturn (new intemporal.observer.LoggingObserver(log_atom,null,null,null));\n});\n\n/**\n * Factory function for intemporal.observer/LoggingObserver, taking a map of keywords to field values.\n */\nintemporal.observer.map__GT_LoggingObserver \x3d (function intemporal$observer$map__GT_LoggingObserver(G__28977){\nvar extmap__5365__auto__ \x3d (function (){var G__29148 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28977,new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157));\nif(cljs.core.record_QMARK_(G__28977)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__29148);\n} else {\nreturn G__29148;\n}\n})();\nreturn (new intemporal.observer.LoggingObserver(new cljs.core.Keyword(null,\x22log-atom\x22,\x22log-atom\x22,1404026157).cljs$core$IFn$_invoke$arity$1(G__28977),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Create an observer that logs all events to an atom\n */\nintemporal.observer.make_logging_observer \x3d (function intemporal$observer$make_logging_observer(var_args){\nvar G__29166 \x3d arguments.length;\nswitch (G__29166) {\ncase 0:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY));\n}));\n\n(intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1 \x3d (function (log_atom){\nreturn intemporal.observer.__GT_LoggingObserver(log_atom);\n}));\n\n(intemporal.observer.make_logging_observer.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {intemporal.protocol.IWorkflowObserver}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nintemporal.observer.t_intemporal$observer29169 \x3d (function (meta29170){\nthis.meta29170 \x3d meta29170;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_29171,meta29170__$1){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170__$1));\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_29171){\nvar self__ \x3d this;\nvar _29171__$1 \x3d this;\nreturn self__.meta29170;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_scheduled$arity$5 \x3d (function (_,___$1,___$2,___$3,___$4){\nvar self__ \x3d this;\nvar ___$5 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_completed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_resumed$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_scheduled$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_failed$arity$6 \x3d (function (_,___$1,___$2,___$3,___$4,___$5){\nvar self__ \x3d this;\nvar ___$6 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_completed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_failed$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_async_started$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_completed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_timer_fired$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_signal_received$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_failed$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_cancelled$arity$2 \x3d (function (_,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_activity_started$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.prototype.intemporal$protocol$IWorkflowObserver$on_workflow_suspended$arity$3 \x3d (function (_,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nreturn null;\n}));\n\n(intemporal.observer.t_intemporal$observer29169.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta29170\x22,\x22meta29170\x22,-945651366,null)], null);\n}));\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$type \x3d true);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorStr \x3d \x22intemporal.observer/t_intemporal$observer29169\x22);\n\n(intemporal.observer.t_intemporal$observer29169.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22intemporal.observer/t_intemporal$observer29169\x22);\n}));\n\n/**\n * Positional factory function for intemporal.observer/t_intemporal$observer29169.\n */\nintemporal.observer.__GT_t_intemporal$observer29169 \x3d (function intemporal$observer$__GT_t_intemporal$observer29169(meta29170){\nreturn (new intemporal.observer.t_intemporal$observer29169(meta29170));\n});\n\n\n/**\n * Create an observer that does nothing\n */\nintemporal.observer.noop_observer \x3d (function intemporal$observer$noop_observer(){\nreturn (new intemporal.observer.t_intemporal$observer29169(cljs.core.PersistentArrayMap.EMPTY));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.impl.js", true, "goog.provide(\x27cljs.analyzer.impl\x27);\ncljs.analyzer.impl.ANY_SYM \x3d new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\ncljs.analyzer.impl.BOOLEAN_OR_SEQ \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),\x22null\x22,new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22], null), null);\ncljs.analyzer.impl.BOOLEAN_SYM \x3d new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null);\ncljs.analyzer.impl.CLJ_NIL_SYM \x3d new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null);\ncljs.analyzer.impl.CLJS_CORE_MACROS_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null);\ncljs.analyzer.impl.CLJS_CORE_SYM \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\ncljs.analyzer.impl.DOT_SYM \x3d new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null);\ncljs.analyzer.impl.IGNORE_SYM \x3d new cljs.core.Symbol(null,\x22ignore\x22,\x22ignore\x22,8989494,null);\ncljs.analyzer.impl.JS_STAR_SYM \x3d new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null);\ncljs.analyzer.impl.NEW_SYM \x3d new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null);\ncljs.analyzer.impl.NOT_NATIVE \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null),\x22null\x22,new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null),\x22null\x22], null), null);\ncljs.analyzer.impl.NUMBER_SYM \x3d new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\ncljs.analyzer.impl.STRING_SYM \x3d new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null);\ncljs.analyzer.impl.cljs_map_QMARK_ \x3d (function cljs$analyzer$impl$cljs_map_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_seq_QMARK_ \x3d (function cljs$analyzer$impl$cljs_seq_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISeq$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_vector_QMARK_ \x3d (function cljs$analyzer$impl$cljs_vector_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IVector$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.analyzer.impl.cljs_set_QMARK_ \x3d (function cljs$analyzer$impl$cljs_set_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n"); @@ -1623,6 +1623,6 @@ SHADOW_ENV.evalLoad("cljs.tagged_literals.js", true, "goog.provide(\x27cljs.tagg SHADOW_ENV.evalLoad("cljs.analyzer.js", true, "goog.provide(\x27cljs.analyzer\x27);\ncljs.analyzer._STAR_cljs_ns_STAR_ \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\ncljs.analyzer._STAR_cljs_file_STAR_ \x3d null;\ncljs.analyzer._STAR_checked_arrays_STAR_ \x3d false;\ncljs.analyzer._STAR_check_alias_dupes_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_static_fns_STAR_ \x3d false;\ncljs.analyzer._STAR_fn_invoke_direct_STAR_ \x3d false;\ncljs.analyzer._STAR_cljs_macros_path_STAR_ \x3d \x22/cljs/core\x22;\ncljs.analyzer._STAR_cljs_macros_is_classpath_STAR_ \x3d true;\ncljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d cljs.core.with_meta(cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558),cljs.core.PersistentVector.EMPTY], null));\ncljs.analyzer._STAR_analyze_deps_STAR_ \x3d true;\ncljs.analyzer._STAR_load_tests_STAR_ \x3d true;\ncljs.analyzer._STAR_load_macros_STAR_ \x3d true;\ncljs.analyzer._STAR_reload_macros_STAR_ \x3d false;\ncljs.analyzer._STAR_macro_infer_STAR_ \x3d true;\ncljs.analyzer._STAR_passes_STAR_ \x3d null;\ncljs.analyzer._STAR_file_defs_STAR_ \x3d null;\ncljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d false;\n/**\n * The namespace of the constants table as a symbol.\n */\ncljs.analyzer.constants_ns_sym \x3d new cljs.core.Symbol(null,\x22cljs.core.constants\x22,\x22cljs.core.constants\x22,2057417066,null);\ncljs.analyzer._STAR_verbose_STAR_ \x3d false;\ncljs.analyzer._cljs_macros_loaded \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\ncljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217)],[true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);\ncljs.analyzer.unchecked_arrays_QMARK_ \x3d (function cljs$analyzer$unchecked_arrays_QMARK_(){\nreturn cljs.core._STAR_unchecked_arrays_STAR_;\n});\ncljs.analyzer.compiler_options \x3d (function cljs$analyzer$compiler_options(){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n});\ncljs.analyzer.get_externs \x3d (function cljs$analyzer$get_externs(){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22externs\x22,\x22cljs.analyzer/externs\x22,893359239).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n});\n/**\n * Returns false-y, :warn, or :error based on configuration and the\n * current value of *unchecked-arrays*.\n */\ncljs.analyzer.checked_arrays \x3d (function cljs$analyzer$checked_arrays(){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22advanced\x22,\x22advanced\x22,-451287892),new cljs.core.Keyword(null,\x22optimizations\x22,\x22optimizations\x22,-2047476854).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options()))) \x26\x26 ((!(cljs.core._STAR_unchecked_arrays_STAR_))))){\nreturn cljs.analyzer._STAR_checked_arrays_STAR_;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.js_reserved \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 63, [\x22typeof\x22,null,\x22float\x22,null,\x22implements\x22,null,\x22else\x22,null,\x22boolean\x22,null,\x22abstract\x22,null,\x22int\x22,null,\x22static\x22,null,\x22package\x22,null,\x22this\x22,null,\x22await\x22,null,\x22yield\x22,null,\x22interface\x22,null,\x22void\x22,null,\x22delete\x22,null,\x22class\x22,null,\x22export\x22,null,\x22var\x22,null,\x22try\x22,null,\x22long\x22,null,\x22null\x22,null,\x22return\x22,null,\x22methods\x22,null,\x22native\x22,null,\x22private\x22,null,\x22new\x22,null,\x22for\x22,null,\x22catch\x22,null,\x22extends\x22,null,\x22short\x22,null,\x22protected\x22,null,\x22throws\x22,null,\x22synchronized\x22,null,\x22transient\x22,null,\x22super\x22,null,\x22if\x22,null,\x22let\x22,null,\x22import\x22,null,\x22char\x22,null,\x22switch\x22,null,\x22const\x22,null,\x22case\x22,null,\x22break\x22,null,\x22volatile\x22,null,\x22function\x22,null,\x22continue\x22,null,\x22final\x22,null,\x22do\x22,null,\x22double\x22,null,\x22while\x22,null,\x22public\x22,null,\x22arguments\x22,null,\x22debugger\x22,null,\x22with\x22,null,\x22instanceof\x22,null,\x22default\x22,null,\x22throw\x22,null,\x22goto\x22,null,\x22finally\x22,null,\x22byte\x22,null,\x22constructor\x22,null,\x22in\x22,null,\x22enum\x22,null], null), null);\ncljs.analyzer.es5_allowed \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [\x22default\x22,null], null), null);\ncljs.analyzer.SENTINEL \x3d ({});\ncljs.analyzer.gets \x3d (function cljs$analyzer$gets(var_args){\nvar G__34418 \x3d arguments.length;\nswitch (G__34418) {\ncase 3:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k0,k1){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,k1);\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k0,k1,k2){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$2,k2);\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k0,k1,k2,k3){\nvar m__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,k0,cljs.analyzer.SENTINEL);\nif((m__$1 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,k1,cljs.analyzer.SENTINEL);\nif((m__$2 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nvar m__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$2,k2,cljs.analyzer.SENTINEL);\nif((m__$3 \x3d\x3d\x3d cljs.analyzer.SENTINEL)){\nreturn null;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$3,k3);\n}\n}\n}\n}));\n\n(cljs.analyzer.gets.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.analyzer.munge_path \x3d (function cljs$analyzer$munge_path(ss){\nreturn cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ss));\n});\n/**\n * Given a namespace as a symbol return the relative path. May optionally\n * provide the file extension, defaults to :cljs.\n */\ncljs.analyzer.ns__GT_relpath \x3d (function cljs$analyzer$ns__GT_relpath(var_args){\nvar G__34433 \x3d arguments.length;\nswitch (G__34433) {\ncase 1:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629));\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,ext){\nreturn [clojure.string.replace(cljs.analyzer.munge_path(ns),\x22.\x22,\x22/\x22),\x22.\x22,cljs.core.name(ext)].join(\x27\x27);\n}));\n\n(cljs.analyzer.ns__GT_relpath.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.topo_sort \x3d (function cljs$analyzer$topo_sort(var_args){\nvar G__34450 \x3d arguments.length;\nswitch (G__34450) {\ncase 2:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,get_deps){\nreturn cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(x,(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.sorted_map()),cljs.core.memoize(get_deps));\n}));\n\n(cljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,depth,state,memo_get_deps){\nvar deps \x3d (memo_get_deps.cljs$core$IFn$_invoke$arity$1 ? memo_get_deps.cljs$core$IFn$_invoke$arity$1(x) : memo_get_deps.call(null,x));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [depth], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\nvar seq__34465_38549 \x3d cljs.core.seq(deps);\nvar chunk__34466_38550 \x3d null;\nvar count__34467_38551 \x3d (0);\nvar i__34468_38552 \x3d (0);\nwhile(true){\nif((i__34468_38552 \x3c count__34467_38551)){\nvar dep_38553 \x3d chunk__34466_38550.cljs$core$IIndexed$_nth$arity$2(null,i__34468_38552);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38553,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38555 \x3d seq__34465_38549;\nvar G__38556 \x3d chunk__34466_38550;\nvar G__38557 \x3d count__34467_38551;\nvar G__38558 \x3d (i__34468_38552 + (1));\nseq__34465_38549 \x3d G__38555;\nchunk__34466_38550 \x3d G__38556;\ncount__34467_38551 \x3d G__38557;\ni__34468_38552 \x3d G__38558;\ncontinue;\n} else {\nvar temp__5825__auto___38559 \x3d cljs.core.seq(seq__34465_38549);\nif(temp__5825__auto___38559){\nvar seq__34465_38560__$1 \x3d temp__5825__auto___38559;\nif(cljs.core.chunked_seq_QMARK_(seq__34465_38560__$1)){\nvar c__5548__auto___38561 \x3d cljs.core.chunk_first(seq__34465_38560__$1);\nvar G__38562 \x3d cljs.core.chunk_rest(seq__34465_38560__$1);\nvar G__38563 \x3d c__5548__auto___38561;\nvar G__38564 \x3d cljs.core.count(c__5548__auto___38561);\nvar G__38565 \x3d (0);\nseq__34465_38549 \x3d G__38562;\nchunk__34466_38550 \x3d G__38563;\ncount__34467_38551 \x3d G__38564;\ni__34468_38552 \x3d G__38565;\ncontinue;\n} else {\nvar dep_38566 \x3d cljs.core.first(seq__34465_38560__$1);\ncljs.analyzer.topo_sort.cljs$core$IFn$_invoke$arity$4(dep_38566,(depth + (1)),state,memo_get_deps);\n\n\nvar G__38568 \x3d cljs.core.next(seq__34465_38560__$1);\nvar G__38569 \x3d null;\nvar G__38570 \x3d (0);\nvar G__38571 \x3d (0);\nseq__34465_38549 \x3d G__38568;\nchunk__34466_38550 \x3d G__38569;\ncount__34467_38551 \x3d G__38570;\ni__34468_38552 \x3d G__38571;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__34477_38572 \x3d cljs.core.seq(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(state),cljs.core._LT_,depth));\nvar chunk__34478_38573 \x3d null;\nvar count__34479_38574 \x3d (0);\nvar i__34480_38575 \x3d (0);\nwhile(true){\nif((i__34480_38575 \x3c count__34479_38574)){\nvar vec__34492_38576 \x3d chunk__34478_38573.cljs$core$IIndexed$_nth$arity$2(null,i__34480_38575);\nvar _LT_depth_38577 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(0),null);\nvar __38578 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34492_38576,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38577], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38579 \x3d seq__34477_38572;\nvar G__38580 \x3d chunk__34478_38573;\nvar G__38581 \x3d count__34479_38574;\nvar G__38582 \x3d (i__34480_38575 + (1));\nseq__34477_38572 \x3d G__38579;\nchunk__34478_38573 \x3d G__38580;\ncount__34479_38574 \x3d G__38581;\ni__34480_38575 \x3d G__38582;\ncontinue;\n} else {\nvar temp__5825__auto___38583 \x3d cljs.core.seq(seq__34477_38572);\nif(temp__5825__auto___38583){\nvar seq__34477_38584__$1 \x3d temp__5825__auto___38583;\nif(cljs.core.chunked_seq_QMARK_(seq__34477_38584__$1)){\nvar c__5548__auto___38585 \x3d cljs.core.chunk_first(seq__34477_38584__$1);\nvar G__38586 \x3d cljs.core.chunk_rest(seq__34477_38584__$1);\nvar G__38587 \x3d c__5548__auto___38585;\nvar G__38588 \x3d cljs.core.count(c__5548__auto___38585);\nvar G__38589 \x3d (0);\nseq__34477_38572 \x3d G__38586;\nchunk__34478_38573 \x3d G__38587;\ncount__34479_38574 \x3d G__38588;\ni__34480_38575 \x3d G__38589;\ncontinue;\n} else {\nvar vec__34497_38590 \x3d cljs.core.first(seq__34477_38584__$1);\nvar _LT_depth_38591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(0),null);\nvar __38592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34497_38590,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [_LT_depth_38591], null),clojure.set.difference,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([deps], 0));\n\n\nvar G__38593 \x3d cljs.core.next(seq__34477_38584__$1);\nvar G__38594 \x3d null;\nvar G__38595 \x3d (0);\nvar G__38596 \x3d (0);\nseq__34477_38572 \x3d G__38593;\nchunk__34478_38573 \x3d G__38594;\ncount__34479_38574 \x3d G__38595;\ni__34480_38575 \x3d G__38596;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(depth,(0))){\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.vals(cljs.core.deref(state))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.topo_sort.cljs$lang$maxFixedArity \x3d 4);\n\n\ncljs.analyzer.ast_QMARK_ \x3d (function cljs$analyzer$ast_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 (cljs.core.contains_QMARK_(x,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955))));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.error_message !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.error_message \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__34508 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__34508.cljs$core$IFn$_invoke$arity$0 ? fexpr__34508.cljs$core$IFn$_invoke$arity$0() : fexpr__34508.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22error-message\x22),(function() { \nvar G__38597__delegate \x3d function (warning_type,_){\nreturn warning_type;\n};\nvar G__38597 \x3d function (warning_type,var_args){\nvar _ \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38598__i \x3d 0, G__38598__a \x3d new Array(arguments.length - 1);\nwhile (G__38598__i \x3c G__38598__a.length) {G__38598__a[G__38598__i] \x3d arguments[G__38598__i + 1]; ++G__38598__i;}\n _ \x3d new cljs.core.IndexedSeq(G__38598__a,0,null);\n} \nreturn G__38597__delegate.call(this,warning_type,_);};\nG__38597.cljs$lang$maxFixedArity \x3d 1;\nG__38597.cljs$lang$applyTo \x3d (function (arglist__38599){\nvar warning_type \x3d cljs.core.first(arglist__38599);\nvar _ \x3d cljs.core.rest(arglist__38599);\nreturn G__38597__delegate(warning_type,_);\n});\nG__38597.cljs$core$IFn$_invoke$arity$variadic \x3d G__38597__delegate;\nreturn G__38597;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22preamble-missing\x22,\x22preamble-missing\x22,220974801),(function (warning_type,info){\nreturn [\x22Preamble resource file not found: \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22missing\x22,\x22missing\x22,362507769).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764),(function (warning_type,info){\nreturn [\x22Required namespace not provided for \x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,new cljs.core.Keyword(null,\x22unprovided\x22,\x22unprovided\x22,-652330764).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),(function (warning_type,info){\nreturn [(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205).cljs$core$IFn$_invoke$arity$1(info))?\x22Can\x27t take value of macro \x22:\x22Use of undeclared Var \x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),(function (warning_type,info){\nreturn [\x22var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not public\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),(function (warning_type,p__34523){\nvar map__34525 \x3d p__34523;\nvar map__34525__$1 \x3d cljs.core.__destructure_map(map__34525);\nvar info \x3d map__34525__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34525__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629)),\x22, \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583)),\x22, or JavaScript source providing \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_provide),\x22\\\x22\x22,((clojure.string.includes_QMARK_(cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22_\x22))?\x22 (Please check that namespaces with dashes use underscores in the ClojureScript file name)\x22:null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-macros-ns\x22,\x22undeclared-macros-ns\x22,-438029430),(function (warning_type,p__34547){\nvar map__34550 \x3d p__34547;\nvar map__34550__$1 \x3d cljs.core.__destructure_map(map__34550);\nvar info \x3d map__34550__$1;\nvar ns_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605));\nvar js_provide \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34550__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493));\nreturn [\x22No such macros namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_sym),\x22, could not locate \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22clj\x22,\x22clj\x22,-660495428)),\x22 or \x22,cljs.analyzer.ns__GT_relpath.cljs$core$IFn$_invoke$arity$2(ns_sym,new cljs.core.Keyword(null,\x22cljc\x22,\x22cljc\x22,-1728400583))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 not declared ^:dynamic\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 already refers to: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 being replaced by: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info))))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(info)),\x22 is being replaced\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 no longer fn, references are stale\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),(function (warning_type,info){\nreturn [\x22Wrong number of args (\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519).cljs$core$IFn$_invoke$arity$1(info)),\x22) passed to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info);\n}\n})())].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323).cljs$core$IFn$_invoke$arity$1(info)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)))),\x22 declared arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(info)),\x22 mismatch defined arglists \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),(function (warning_type,info){\nreturn [\x22Invalid :refer, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726).cljs$core$IFn$_invoke$arity$1(info)),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not exist\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-deprecated\x22,\x22protocol-deprecated\x22,103233497),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is deprecated\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22undeclared-protocol-symbol\x22,\x22undeclared-protocol-symbol\x22,462882867),(function (warning_type,info){\nreturn [\x22Can\x27t resolve protocol symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-protocol-symbol\x22,\x22invalid-protocol-symbol\x22,86246948),(function (warning_type,info){\nreturn [\x22Symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is not a protocol\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-invalid-method\x22,\x22protocol-invalid-method\x22,522647516),(function (warning_type,info){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22no-such-method\x22,\x22no-such-method\x22,1087422840).cljs$core$IFn$_invoke$arity$1(info))){\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare method called \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n} else {\nreturn [\x22Bad method signature in protocol implementation, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info)),\x22 does not declare arity \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22invalid-arity\x22,\x22invalid-arity\x22,1335461949).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-duped-method\x22,\x22protocol-duped-method\x22,15128166),(function (warning_type,info){\nreturn [\x22Duplicated methods in protocol implementation \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fname\x22,\x22fname\x22,1500291491).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-multiple-impls\x22,\x22protocol-multiple-impls\x22,794179260),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implemented multiple times\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-variadic-method\x22,\x22protocol-with-variadic-method\x22,-693368178),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 declares method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-with-overwriting-method\x22,\x22protocol-with-overwriting-method\x22,319993011),(function (warning_type,info){\nvar overwritten_protocol \x3d new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22existing\x22,\x22existing\x22,-340796094).cljs$core$IFn$_invoke$arity$1(info));\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 is overwriting \x22,(cljs.core.truth_(overwritten_protocol)?\x22method\x22:\x22function\x22),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),(cljs.core.truth_(overwritten_protocol)?[\x22 of protocol \x22,cljs.core.name(overwritten_protocol)].join(\x27\x27):null)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-with-variadic-method\x22,\x22protocol-impl-with-variadic-method\x22,-319321217),(function (warning_type,info){\nreturn [\x22Protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(info)),\x22 implements method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 with variadic signature (\x26)\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),(function (warning_type,info){\nreturn [\x22Ignoring target object \\\x22\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(info)], 0)),\x22\\\x22 passed in recur to protocol method head\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have more than 1 variadic overload\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have fixed arity function with more params than variadic function\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22: Can\x27t have 2 overloads with same arity\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extending-base-js-type\x22,\x22extending-base-js-type\x22,432787264),(function (warning_type,info){\nreturn [\x22Extending an existing JavaScript type - use a different symbol name \x22,\x22instead of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22current-symbol\x22,\x22current-symbol\x22,-932381075).cljs$core$IFn$_invoke$arity$1(info)),\x22 e.g \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22suggested-symbol\x22,\x22suggested-symbol\x22,-1329631875).cljs$core$IFn$_invoke$arity$1(info))].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(info)),\x22, all arguments must be numbers, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639).cljs$core$IFn$_invoke$arity$1(info)),\x22 instead\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236),(function (warning_type,p__34616){\nvar map__34617 \x3d p__34616;\nvar map__34617__$1 \x3d cljs.core.__destructure_map(map__34617);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar types \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34617__$1,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639));\nvar G__34618 \x3d name;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),G__34618)){\nreturn [\x22cljs.core/aget, arguments must be an array followed by numeric indices, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.rest(types)))))?[\x22 (consider \x22,((((2) \x3d\x3d\x3d cljs.core.count(types)))?\x22goog.object/get\x22:\x22goog.object/getValueByKeys\x22),\x22 for object access)\x22].join(\x27\x27):null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),G__34618)){\nreturn [\x22cljs.core/aset, arguments must be an array, followed by numeric indices, followed by a value, got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(types),\x22 instead\x22,((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),cljs.core.first(types))) || (cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),null], null), null),cljs.core.butlast(cljs.core.rest(types))))))?\x22 (consider goog.object/set for object access)\x22:null)].join(\x27\x27);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34618)].join(\x27\x27)));\n\n}\n}\n}\n}\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),(function (warning_type,info){\nreturn [\x22Cannot invoke type constructor \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150).cljs$core$IFn$_invoke$arity$1(info)))),\x22 as function \x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),(function (warning_type,info){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(info)),\x22 is a single segment namespace\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),(function (warning_type,p__34651){\nvar map__34652 \x3d p__34651;\nvar map__34652__$1 \x3d cljs.core.__destructure_map(map__34652);\nvar info \x3d map__34652__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34652__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar munged \x3d cljs.core.munge(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34650_SHARP_){\nif(cljs.core.truth_((cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_reserved.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_) : cljs.analyzer.js_reserved.call(null,p1__34650_SHARP_)))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__34650_SHARP_),\x22$\x22].join(\x27\x27);\n} else {\nreturn p1__34650_SHARP_;\n}\n}),clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name),/\\./))));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 contains a reserved JavaScript keyword,\x22,\x22 the corresponding Google Closure namespace will be munged to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),(function (warning_type,p__34662){\nvar map__34663 \x3d p__34662;\nvar map__34663__$1 \x3d cljs.core.__destructure_map(map__34663);\nvar info \x3d map__34663__$1;\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34663__$1,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401));\nreturn [\x22In \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0)),\x22, the alias name js is reserved for JavaScript interop\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),(function (warning_type,p__34669){\nvar map__34670 \x3d p__34669;\nvar map__34670__$1 \x3d cljs.core.__destructure_map(map__34670);\nvar info \x3d map__34670__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34670__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [\x22Namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22 clashes with var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$)].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),(function (warning_type,p__34677){\nvar map__34678 \x3d p__34677;\nvar map__34678__$1 \x3d cljs.core.__destructure_map(map__34678);\nvar info \x3d map__34678__$1;\nvar var$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34678__$1,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 not declared dynamic and thus is not dynamically rebindable, but its name \x22,\x22suggests otherwise. Please either indicate ^:dynamic \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(var$),\x22 or change the name\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22extend-type-invalid-method-shape\x22,\x22extend-type-invalid-method-shape\x22,1424103549),(function (warning_type,p__34684){\nvar map__34686 \x3d p__34684;\nvar map__34686__$1 \x3d cljs.core.__destructure_map(map__34686);\nvar info \x3d map__34686__$1;\nvar protocol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34686__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nreturn [\x22Bad extend-type method shape for protocol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(protocol),\x22 method \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(method),\x22, method arities must be grouped together\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-js-module-type\x22,\x22unsupported-js-module-type\x22,1806206180),(function (warning_type,p__34692){\nvar map__34693 \x3d p__34692;\nvar map__34693__$1 \x3d cljs.core.__destructure_map(map__34693);\nvar info \x3d map__34693__$1;\nvar module_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22module-type\x22,\x22module-type\x22,1392760304));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34693__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported JavaScript module type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(module_type),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22unsupported-preprocess-value\x22,\x22unsupported-preprocess-value\x22,1635147105),(function (warning_type,p__34698){\nvar map__34699 \x3d p__34698;\nvar map__34699__$1 \x3d cljs.core.__destructure_map(map__34699);\nvar preprocess \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22preprocess\x22,\x22preprocess\x22,1208285012));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34699__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nreturn [\x22Unsupported preprocess value \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(preprocess),\x22 for foreign library \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),\x22.\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),(function (warning_type,p__34702){\nvar map__34703 \x3d p__34702;\nvar map__34703__$1 \x3d cljs.core.__destructure_map(map__34703);\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34703__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22 is shadowed by a local\x22].join(\x27\x27);\n}));\ncljs.analyzer.error_message.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),(function (warning_type,p__34704){\nvar map__34705 \x3d p__34704;\nvar map__34705__$1 \x3d cljs.core.__destructure_map(map__34705);\nvar warn_type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar property \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34705__$1,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232));\nvar G__34707 \x3d warn_type;\nvar G__34707__$1 \x3d (((G__34707 instanceof cljs.core.Keyword))?G__34707.fqn:null);\nswitch (G__34707__$1) {\ncase \x22target\x22:\nreturn [\x22Cannot infer target type in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form),\x22\x22].join(\x27\x27);\n\nbreak;\ncase \x22property\x22:\nreturn [\x22Cannot resolve property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 for inferred type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type),\x22 in expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ncase \x22object\x22:\nreturn [\x22Adding extern to Object for property \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(property),\x22 due to \x22,\x22ambiguous expression \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(form)].join(\x27\x27);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__34707__$1)].join(\x27\x27)));\n\n}\n}));\ncljs.analyzer.default_warning_handler \x3d (function cljs$analyzer$default_warning_handler(warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nvar temp__5825__auto__ \x3d cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warning_type,extra);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar s \x3d temp__5825__auto__;\nvar _STAR_print_fn_STAR__orig_val__34716 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_fn_STAR__temp_val__34717 \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__34717);\n\ntry{return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var G__34719 \x3d env;\nvar G__34720 \x3d [\x22WARNING: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join(\x27\x27);\nreturn (cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.message.cljs$core$IFn$_invoke$arity$2(G__34719,G__34720) : cljs.analyzer.message.call(null,G__34719,G__34720));\n})()], 0));\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__34716);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.default_warning_handler], null);\ncljs.analyzer.repeat_char \x3d (function cljs$analyzer$repeat_char(c,n){\nvar ret \x3d c;\nvar n__$1 \x3d n;\nwhile(true){\nif((n__$1 \x3e (0))){\nvar G__38610 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ret),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\nvar G__38611 \x3d (n__$1 - (1));\nret \x3d G__38610;\nn__$1 \x3d G__38611;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\ncljs.analyzer.hex_format \x3d (function cljs$analyzer$hex_format(s,pad){\nvar hex \x3d s.charCodeAt((0)).toString((16));\nvar len \x3d hex.length;\nvar hex__$1 \x3d (((len \x3c pad))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.repeat_char(\x220\x22,(pad - len))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex)].join(\x27\x27):hex);\nreturn [\x22_u\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(hex__$1),\x22_\x22].join(\x27\x27);\n});\ncljs.analyzer.gen_constant_id \x3d (function cljs$analyzer$gen_constant_id(value){\nvar prefix \x3d (((value instanceof cljs.core.Keyword))?\x22cst$kw$\x22:(((value instanceof cljs.core.Symbol))?\x22cst$sym$\x22:(function(){throw (new Error([\x22constant type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(value)),\x22 not supported\x22].join(\x27\x27)))})()\n));\nvar name \x3d (((value instanceof cljs.core.Keyword))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),(1)):cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\nvar name__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22.\x22,name))?\x22_DOT_\x22:clojure.string.replace(clojure.string.replace(cljs.core.munge(clojure.string.replace(clojure.string.replace(clojure.string.replace(name,\x22_\x22,\x22__\x22),\x22$\x22,\x22$$\x22),\x22-\x22,\x22_DASH_\x22)),\x22.\x22,\x22$\x22),/[^a-z0-9$_]/i,(function (p1__34743_SHARP_){\nreturn cljs.analyzer.hex_format(p1__34743_SHARP_,(4));\n})));\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([prefix,name__$1].join(\x27\x27));\n});\ncljs.analyzer.register_constant_BANG_ \x3d (function cljs$analyzer$register_constant_BANG_(var_args){\nvar G__34747 \x3d arguments.length;\nswitch (G__34747) {\ncase 1:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (val){\nreturn cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(null,val);\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (cenv){\nvar G__34766 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constant-table\x22,\x22cljs.analyzer/constant-table\x22,-114131889)], null),(function (table){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(table,val))){\nreturn table;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(table,val,cljs.analyzer.gen_constant_id(val));\n}\n}));\nif(cljs.core.truth_(env)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__34766,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22constants\x22,\x22cljs.analyzer/constants\x22,1697083770)], null),(function (p__34767){\nvar map__34768 \x3d p__34767;\nvar map__34768__$1 \x3d cljs.core.__destructure_map(map__34768);\nvar constants \x3d map__34768__$1;\nvar seen \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.PersistentHashSet.EMPTY);\nvar order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__34768__$1,new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.PersistentVector.EMPTY);\nvar G__34769 \x3d constants;\nif((!(cljs.core.contains_QMARK_(seen,val)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(G__34769,new cljs.core.Keyword(null,\x22seen\x22,\x22seen\x22,-518999789),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen,val),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22order\x22,\x22order\x22,-1254677256),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(order,val)], 0));\n} else {\nreturn G__34769;\n}\n}));\n} else {\nreturn G__34766;\n}\n}));\n}));\n\n(cljs.analyzer.register_constant_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.default_namespaces \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null)], null);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.analyzer.t_cljs$analyzer34770 \x3d (function (meta34771){\nthis.meta34771 \x3d meta34771;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_34772,meta34771__$1){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771__$1));\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_34772){\nvar self__ \x3d this;\nvar _34772__$1 \x3d this;\nreturn self__.meta34771;\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\n} else {\nreturn cljs.analyzer.default_namespaces;\n}\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta34771\x22,\x22meta34771\x22,-699077853,null)], null);\n}));\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$type \x3d true);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorStr \x3d \x22cljs.analyzer/t_cljs$analyzer34770\x22);\n\n(cljs.analyzer.t_cljs$analyzer34770.cljs$lang$ctorPrWriter \x3d (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){\nreturn cljs.core._write(writer__5311__auto__,\x22cljs.analyzer/t_cljs$analyzer34770\x22);\n}));\n\n/**\n * Positional factory function for cljs.analyzer/t_cljs$analyzer34770.\n */\ncljs.analyzer.__GT_t_cljs$analyzer34770 \x3d (function cljs$analyzer$__GT_t_cljs$analyzer34770(meta34771){\nreturn (new cljs.analyzer.t_cljs$analyzer34770(meta34771));\n});\n\n\ncljs.analyzer.namespaces \x3d (new cljs.analyzer.t_cljs$analyzer34770(cljs.core.PersistentArrayMap.EMPTY));\ncljs.analyzer.get_namespace \x3d (function cljs$analyzer$get_namespace(var_args){\nvar G__34797 \x3d arguments.length;\nswitch (G__34797) {\ncase 1:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nreturn cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,key);\n}));\n\n(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$2 \x3d (function (cenv,key){\nvar temp__5827__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cenv),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),key], null));\nif((temp__5827__auto__ \x3d\x3d null)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),key)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null);\n} else {\nreturn null;\n}\n} else {\nvar ns \x3d temp__5827__auto__;\nreturn ns;\n}\n}));\n\n(cljs.analyzer.get_namespace.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.get_line \x3d (function cljs$analyzer$get_line(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\ncljs.analyzer.get_col \x3d (function cljs$analyzer$get_col(x,env){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env);\n}\n});\n/**\n * Given a Clojure namespace intern all macros into the ambient ClojureScript\n * analysis environment.\n */\ncljs.analyzer.intern_macros \x3d (function cljs$analyzer$intern_macros(var_args){\nvar G__34799 \x3d arguments.length;\nswitch (G__34799) {\ncase 1:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2(ns,false);\n}));\n\n(cljs.analyzer.intern_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,reload){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)) \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn reload;\n}\n})())){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)], null),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__34800){\nvar vec__34801 \x3d p__34800;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34801,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(function (){var vm \x3d cljs.core.meta(v);\nvar ns__$1 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(vm).getName();\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(vm,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)),new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404),true], 0));\n})()], null);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__34804){\nvar vec__34805 \x3d p__34804;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34805,(1),null);\nreturn v.isMacro();\n}),cljs.core.ns_interns_STAR_(ns)))));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.intern_macros.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Construct an empty analysis environment. Required to analyze forms.\n */\ncljs.analyzer.empty_env \x3d (function cljs$analyzer$empty_env(){\nvar val__9407__auto__ \x3d cljs.env._STAR_compiler_STAR_;\nif((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0());\n} else {\n}\n\ntry{return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22js-globals\x22,\x22js-globals\x22,1670394727),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__34808_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__34808_SHARP_,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),p1__34808_SHARP_,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)],null));\n}),cljs.core.list(new cljs.core.Symbol(null,\x22alert\x22,\x22alert\x22,1068580947,null),new cljs.core.Symbol(null,\x22window\x22,\x22window\x22,-1929916235,null),new cljs.core.Symbol(null,\x22document\x22,\x22document\x22,311342840,null),new cljs.core.Symbol(null,\x22console\x22,\x22console\x22,-1426363712,null),new cljs.core.Symbol(null,\x22escape\x22,\x22escape\x22,648929575,null),new cljs.core.Symbol(null,\x22unescape\x22,\x22unescape\x22,-2037730561,null),new cljs.core.Symbol(null,\x22screen\x22,\x22screen\x22,-664376021,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22navigator\x22,\x22navigator\x22,-604431588,null),new cljs.core.Symbol(null,\x22history\x22,\x22history\x22,1393136307,null),new cljs.core.Symbol(null,\x22location\x22,\x22location\x22,-838836381,null),new cljs.core.Symbol(null,\x22global\x22,\x22global\x22,1734126574,null),new cljs.core.Symbol(null,\x22process\x22,\x22process\x22,-1011242831,null),new cljs.core.Symbol(null,\x22require\x22,\x22require\x22,1172530194,null),new cljs.core.Symbol(null,\x22module\x22,\x22module\x22,-1229817578,null),new cljs.core.Symbol(null,\x22exports\x22,\x22exports\x22,895523255,null))))], null);\n}finally {if((val__9407__auto__ \x3d\x3d null)){\n(cljs.env._STAR_compiler_STAR_ \x3d null);\n} else {\n}\n}});\ncljs.analyzer.source_info__GT_error_data \x3d (function cljs$analyzer$source_info__GT_error_data(p__34809){\nvar map__34810 \x3d p__34809;\nvar map__34810__$1 \x3d cljs.core.__destructure_map(map__34810);\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__34810__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553),column], null);\n});\ncljs.analyzer.source_info \x3d (function cljs$analyzer$source_info(var_args){\nvar G__34812 \x3d arguments.length;\nswitch (G__34812) {\ncase 1:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1 \x3d (function (env){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(null,env);\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (name,env){\nvar G__34813 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)))?\x22cljs/core.cljs\x22:cljs.analyzer._STAR_cljs_file_STAR_),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(name,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(name,env)], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912).cljs$core$IFn$_invoke$arity$1(env))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__34813,cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22root-source-info\x22,\x22root-source-info\x22,-1436144912)], null))], 0));\n} else {\nreturn G__34813;\n}\n}));\n\n(cljs.analyzer.source_info.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.message \x3d (function cljs$analyzer$message(env,s){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),(cljs.core.truth_(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env))?[\x22 at line \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env)),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):(cljs.core.truth_(cljs.analyzer._STAR_cljs_file_STAR_)?[\x22 in file \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_file_STAR_)].join(\x27\x27):null))].join(\x27\x27);\n});\ncljs.analyzer.warning \x3d (function cljs$analyzer$warning(warning_type,env,extra){\nvar seq__34814 \x3d cljs.core.seq(cljs.analyzer._STAR_cljs_warning_handlers_STAR_);\nvar chunk__34815 \x3d null;\nvar count__34816 \x3d (0);\nvar i__34817 \x3d (0);\nwhile(true){\nif((i__34817 \x3c count__34816)){\nvar handler \x3d chunk__34815.cljs$core$IIndexed$_nth$arity$2(null,i__34817);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38626 \x3d seq__34814;\nvar G__38627 \x3d chunk__34815;\nvar G__38628 \x3d count__34816;\nvar G__38629 \x3d (i__34817 + (1));\nseq__34814 \x3d G__38626;\nchunk__34815 \x3d G__38627;\ncount__34816 \x3d G__38628;\ni__34817 \x3d G__38629;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__34814);\nif(temp__5825__auto__){\nvar seq__34814__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__34814__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__34814__$1);\nvar G__38630 \x3d cljs.core.chunk_rest(seq__34814__$1);\nvar G__38631 \x3d c__5548__auto__;\nvar G__38632 \x3d cljs.core.count(c__5548__auto__);\nvar G__38633 \x3d (0);\nseq__34814 \x3d G__38630;\nchunk__34815 \x3d G__38631;\ncount__34816 \x3d G__38632;\ni__34817 \x3d G__38633;\ncontinue;\n} else {\nvar handler \x3d cljs.core.first(seq__34814__$1);\n(handler.cljs$core$IFn$_invoke$arity$3 ? handler.cljs$core$IFn$_invoke$arity$3(warning_type,env,extra) : handler.call(null,warning_type,env,extra));\n\n\nvar G__38634 \x3d cljs.core.next(seq__34814__$1);\nvar G__38635 \x3d null;\nvar G__38636 \x3d (0);\nvar G__38637 \x3d (0);\nseq__34814 \x3d G__38634;\nchunk__34815 \x3d G__38635;\ncount__34816 \x3d G__38636;\ni__34817 \x3d G__38637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.accumulating_warning_handler \x3d (function cljs$analyzer$accumulating_warning_handler(warn_acc){\nreturn (function (warning_type,env,extra){\nif(cljs.core.truth_((warning_type.cljs$core$IFn$_invoke$arity$1 ? warning_type.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_warnings_STAR_) : warning_type.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_)))){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(warn_acc,cljs.core.conj,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [warning_type,env,extra], null));\n} else {\nreturn null;\n}\n});\n});\ncljs.analyzer.replay_accumulated_warnings \x3d (function cljs$analyzer$replay_accumulated_warnings(warn_acc){\nreturn cljs.core.run_BANG_((function (p1__34834_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.warning,p1__34834_SHARP_);\n}),cljs.core.deref(warn_acc));\n});\ncljs.analyzer.error_data \x3d (function cljs$analyzer$error_data(var_args){\nvar G__34840 \x3d arguments.length;\nswitch (G__34840) {\ncase 2:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,phase){\nreturn cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,phase,null);\n}));\n\n(cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,phase,symbol){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.source_info__GT_error_data(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase], null),(cljs.core.truth_(symbol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),symbol], null):null)], 0));\n}));\n\n(cljs.analyzer.error_data.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.compile_syntax_error \x3d (function cljs$analyzer$compile_syntax_error(env,msg,symbol){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22compile-syntax-check\x22,\x22compile-syntax-check\x22,-1865080468),symbol),(new Error(msg)));\n});\ncljs.analyzer.error \x3d (function cljs$analyzer$error(var_args){\nvar G__34868 \x3d arguments.length;\nswitch (G__34868) {\ncase 2:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,msg){\nreturn cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,msg,null);\n}));\n\n(cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,msg,cause){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.message(env,msg),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349)),cause);\n}));\n\n(cljs.analyzer.error.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.analysis_error_QMARK_ \x3d (function cljs$analyzer$analysis_error_QMARK_(ex){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs\x22,\x22analysis-error\x22,\x22cljs/analysis-error\x22,-420526349),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(ex)));\n});\ncljs.analyzer.has_error_data_QMARK_ \x3d (function cljs$analyzer$has_error_data_QMARK_(ex){\nreturn cljs.core.contains_QMARK_(cljs.core.ex_data(ex),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\n});\ncljs.analyzer.implicit_nses \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.string\x22,\x22goog.string\x22,-2055533048,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog\x22,\x22goog\x22,-70603925,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.object\x22,\x22goog.object\x22,678593132,null),\x22null\x22,new cljs.core.Symbol(null,\x22Math\x22,\x22Math\x22,2033287572,null),\x22null\x22,new cljs.core.Symbol(null,\x22goog.array\x22,\x22goog.array\x22,-671977860,null),\x22null\x22], null), null);\ncljs.analyzer.implicit_import_QMARK_ \x3d (function cljs$analyzer$implicit_import_QMARK_(env,prefix,suffix){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.implicit_nses,prefix);\n});\ncljs.analyzer.confirm_var_exist_warning \x3d (function cljs$analyzer$confirm_var_exist_warning(env,prefix,suffix){\nreturn (function (env__$1,prefix__$1,suffix__$1){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-var\x22,\x22undeclared-var\x22,-1624364944),env__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),prefix__$1,new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),suffix__$1,new cljs.core.Keyword(null,\x22macro-present?\x22,\x22macro-present?\x22,-1397713205),(!(((function (){var G__34919 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1));\nvar G__34920 \x3d env__$1;\nreturn (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(G__34919,G__34920) : cljs.analyzer.get_expander.call(null,G__34919,G__34920));\n})() \x3d\x3d null)))], null));\n});\n});\n/**\n * If a library name has the form foo$bar, return a vector of the library and\n * the sublibrary property.\n */\ncljs.analyzer.lib_AMPERSAND_sublib \x3d (function cljs$analyzer$lib_AMPERSAND_sublib(lib){\nvar temp__5823__auto__ \x3d cljs.core.re_matches(/(.*)\\$(.*)/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib));\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xs \x3d temp__5823__auto__;\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),xs);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n}\n});\n/**\n * Check if a JavaScript namespace has been loaded. JavaScript vars are\n * not currently checked.\n */\ncljs.analyzer.loaded_js_ns_QMARK_ \x3d (function cljs$analyzer$loaded_js_ns_QMARK_(env,prefix){\nif(cljs.core.truth_(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix))){\nreturn null;\n} else {\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nreturn (((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))) || ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394).cljs$core$IFn$_invoke$arity$1(ns),prefix) \x3d\x3d null)))));\n}\n});\ncljs.analyzer.internal_js_module_exists_QMARK_ \x3d (function cljs$analyzer$internal_js_module_exists_QMARK_(js_module_index,module){\nreturn cljs.core.contains_QMARK_(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((function (p__34963){\nvar vec__34964 \x3d p__34963;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__34964,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(v)], null);\n})),js_module_index),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\n});\ncljs.analyzer.js_module_exists_QMARK__STAR_ \x3d cljs.core.memoize(cljs.analyzer.internal_js_module_exists_QMARK_);\ncljs.analyzer.js_module_exists_QMARK_ \x3d (function cljs$analyzer$js_module_exists_QMARK_(module){\nreturn cljs.analyzer.js_module_exists_QMARK__STAR_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931)], null)),module);\n});\ncljs.analyzer.node_module_dep_QMARK_ \x3d (function cljs$analyzer$node_module_dep_QMARK_(module){\ntry{return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._STAR_target_STAR_,\x22nodejs\x22)) \x26\x26 (cljs.core.boolean$((function (){var or__5025__auto__ \x3d require.resolve(cljs.core.str.cljs$core$IFn$_invoke$arity$1(module));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn require.resolve(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(module)));\n}\n})())));\n}catch (e34976){var _ \x3d e34976;\nreturn false;\n}});\ncljs.analyzer.dep_has_global_exports_QMARK_ \x3d (function cljs$analyzer$dep_has_global_exports_QMARK_(module){\nvar vec__35000 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35000,(1),null);\nvar global_exports \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1),new cljs.core.Keyword(null,\x22global-exports\x22,\x22global-exports\x22,-1644865592)], null));\nreturn ((cljs.core.contains_QMARK_(global_exports,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(module__$1))) || (cljs.core.contains_QMARK_(global_exports,cljs.core.name(module__$1))));\n});\ncljs.analyzer.goog_module_dep_QMARK_ \x3d (function cljs$analyzer$goog_module_dep_QMARK_(module){\nvar vec__35013 \x3d cljs.analyzer.lib_AMPERSAND_sublib(module);\nvar module__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35013,(1),null);\nvar module_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(module__$1);\nvar options \x3d cljs.analyzer.compiler_options();\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22global-goog-object\x26array\x22,\x22global-goog-object\x26array\x22,907046210).cljs$core$IFn$_invoke$arity$1(options);\nif(cljs.core.truth_(and__5023__auto__)){\nvar fexpr__35025 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22goog.array\x22,null,\x22goog.object\x22,null], null), null);\nreturn (fexpr__35025.cljs$core$IFn$_invoke$arity$1 ? fexpr__35025.cljs$core$IFn$_invoke$arity$1(module_str) : fexpr__35025.call(null,module_str));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn false;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),module_str,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191)], null)));\n}\n});\ncljs.analyzer.confirm_var_exists \x3d (function cljs$analyzer$confirm_var_exists(var_args){\nvar G__35052 \x3d arguments.length;\nswitch (G__35052) {\ncase 3:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,prefix,suffix){\nvar warn \x3d cljs.analyzer.confirm_var_exist_warning(env,prefix,suffix);\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,warn);\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,prefix,suffix,missing_fn){\nvar sufstr \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix);\nvar suffix_str \x3d (((((!((\x22..\x22 \x3d\x3d\x3d sufstr)))) \x26\x26 (/\\./.test(sufstr))))?cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(sufstr,/\\./)):suffix);\nvar suffix__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(suffix_str);\nif((((!(cljs.analyzer.implicit_import_QMARK_(env,prefix,suffix__$1)))) \x26\x26 ((((!(cljs.analyzer.loaded_js_ns_QMARK_(env,prefix)))) \x26\x26 ((((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),prefix)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22unquote\x22,\x22unquote\x22,-1004694737,null),suffix__$1)))))) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),prefix,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),suffix__$1) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(prefix))))))))))){\nreturn (missing_fn.cljs$core$IFn$_invoke$arity$3 ? missing_fn.cljs$core$IFn$_invoke$arity$3(env,prefix,suffix__$1) : missing_fn.call(null,env,prefix,suffix__$1));\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.confirm_var_exists.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.confirm_var_exists_throw \x3d (function cljs$analyzer$confirm_var_exists_throw(){\nreturn (function (env,prefix,suffix){\nreturn cljs.analyzer.confirm_var_exists.cljs$core$IFn$_invoke$arity$4(env,prefix,suffix,(function (env__$1,prefix__$1,suffix__$1){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,[\x22Unable to resolve var: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(suffix__$1),\x22 in this context\x22].join(\x27\x27));\n}));\n});\n});\ncljs.analyzer.resolve_ns_alias \x3d (function cljs$analyzer$resolve_ns_alias(var_args){\nvar G__35093 \x3d arguments.length;\nswitch (G__35093) {\ncase 2:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nvar map__35105 \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env);\nvar map__35105__$1 \x3d cljs.core.__destructure_map(map__35105);\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35105__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar or__5025__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(requires,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(as_aliases,sym);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.analyzer.resolve_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.resolve_macro_ns_alias \x3d (function cljs$analyzer$resolve_macro_ns_alias(var_args){\nvar G__35113 \x3d arguments.length;\nswitch (G__35113) {\ncase 2:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,name){\nreturn cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,name,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name));\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,name,not_found){\nvar sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym,not_found);\n}));\n\n(cljs.analyzer.resolve_macro_ns_alias.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Given env, an analysis environment, and ns-sym, a symbol identifying a\n * namespace, confirm that the namespace exists. Warn if not found.\n */\ncljs.analyzer.confirm_ns \x3d (function cljs$analyzer$confirm_ns(env,ns_sym){\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns_sym)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.implicit_nses,ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),ns_sym) \x3d\x3d null)) \x26\x26 ((((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_sym) \x3d\x3d null)) \x26\x26 (cljs.core.not(cljs.analyzer.js_module_exists_QMARK_(ns_sym))))))))))){\nreturn cljs.analyzer.warning(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),ns_sym,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),ns_sym], null));\n} else {\nreturn null;\n}\n});\n/**\n * Is sym visible from core in the current compilation namespace?\n */\ncljs.analyzer.core_name_QMARK_ \x3d (function cljs$analyzer$core_name_QMARK_(env,sym){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar temp__5827__auto__ \x3d (cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.get_expander.cljs$core$IFn$_invoke$arity$2(sym,env) : cljs.analyzer.get_expander.call(null,sym,env));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar mac \x3d temp__5827__auto__;\nvar ns \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(mac));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns.getName(),new cljs.core.Symbol(null,\x22cljs.core$macros\x22,\x22cljs.core$macros\x22,-2057787548,null));\n}\n}\n})();\nif(and__5023__auto__){\nreturn (!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),sym)));\n} else {\nreturn and__5023__auto__;\n}\n});\n/**\n * Is sym public?\n */\ncljs.analyzer.public_name_QMARK_ \x3d (function cljs$analyzer$public_name_QMARK_(ns,sym){\nvar var_ast \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.name(ns),\x22$macros\x22].join(\x27\x27)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym);\n}\n})();\nreturn (((!((var_ast \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(var_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22anonymous\x22,\x22anonymous\x22,447897231).cljs$core$IFn$_invoke$arity$1(var_ast);\n}\n})())));\n});\ncljs.analyzer.js_tag_QMARK_ \x3d (function cljs$analyzer$js_tag_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.namespace(x))))));\n});\ncljs.analyzer.normalize_js_tag \x3d (function cljs$analyzer$normalize_js_tag(x){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),x)))){\nreturn cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),/\\./))),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null))], null));\n} else {\nreturn x;\n}\n});\n/**\n * Ensures that a type tag is a set.\n */\ncljs.analyzer.__GT_type_set \x3d (function cljs$analyzer$__GT_type_set(t){\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn t;\n} else {\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc([t]);\n}\n});\ncljs.analyzer.canonicalize_type \x3d (function cljs$analyzer$canonicalize_type(t){\n\nif((t instanceof cljs.core.Symbol)){\nreturn t;\n} else {\nif(cljs.core.empty_QMARK_(t)){\nreturn null;\n} else {\nif(((1) \x3d\x3d\x3d cljs.core.count(t))){\nreturn cljs.core.first(t);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nif(cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null))){\nvar res \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null));\nif(((1) \x3d\x3d\x3d cljs.core.count(res))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nreturn res;\n}\n} else {\nreturn t;\n\n}\n}\n}\n}\n}\n});\n/**\n * Produces a union of types.\n */\ncljs.analyzer.add_types \x3d (function cljs$analyzer$add_types(var_args){\nvar G__35198 \x3d arguments.length;\nswitch (G__35198) {\ncase 0:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5774__auto__ \x3d [];\nvar len__5749__auto___38656 \x3d arguments.length;\nvar i__5750__auto___38657 \x3d (0);\nwhile(true){\nif((i__5750__auto___38657 \x3c len__5749__auto___38656)){\nargs_arr__5774__auto__.push((arguments[i__5750__auto___38657]));\n\nvar G__38659 \x3d (i__5750__auto___38657 + (1));\ni__5750__auto___38657 \x3d G__38659;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5775__auto__ \x3d ((((2) \x3c args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);\n\n}\n});\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$1 \x3d (function (t1){\nreturn t1;\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2 \x3d (function (t1,t2){\nif((((t1 \x3d\x3d null)) || ((t2 \x3d\x3d null)))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.canonicalize_type(clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.__GT_type_set(t1),cljs.analyzer.__GT_type_set(t2)));\n}\n}));\n\n(cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$variadic \x3d (function (t1,t2,ts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.add_types,cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(t1,t2),ts);\n}));\n\n/** @this {Function} */\n(cljs.analyzer.add_types.cljs$lang$applyTo \x3d (function (seq35193){\nvar G__35194 \x3d cljs.core.first(seq35193);\nvar seq35193__$1 \x3d cljs.core.next(seq35193);\nvar G__35196 \x3d cljs.core.first(seq35193__$1);\nvar seq35193__$2 \x3d cljs.core.next(seq35193__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__35194,G__35196,seq35193__$2);\n}));\n\n(cljs.analyzer.add_types.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.analyzer.alias__GT_type \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(null,\x22String\x22,\x22String\x22,-2070057435,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22Array\x22,\x22Array\x22,-423496279,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22Boolean\x22,\x22Boolean\x22,1661141587,null),new cljs.core.Symbol(null,\x22symbol\x22,\x22symbol\x22,601958831,null),new cljs.core.Symbol(null,\x22Symbol\x22,\x22Symbol\x22,716452869,null)], null);\ncljs.analyzer.has_extern_QMARK__STAR_ \x3d (function cljs$analyzer$has_extern_QMARK__STAR_(var_args){\nvar G__35222 \x3d arguments.length;\nswitch (G__35222) {\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar pre__$1 \x3d (function (){var temp__5827__auto__ \x3d cljs.core.find(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null)),cljs.core.first(pre));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn pre;\n} else {\nvar me \x3d temp__5827__auto__;\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.core.first(me)));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn pre;\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre));\n}\n}\n})();\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(pre__$1,externs,externs);\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,externs,top){\nwhile(true){\nif(cljs.core.empty_QMARK_(pre)){\nreturn true;\n} else {\nvar x \x3d cljs.core.first(pre);\nvar me \x3d cljs.core.find(externs,x);\nif(cljs.core.not(me)){\nreturn false;\n} else {\nvar vec__35245 \x3d me;\nvar x_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35245,(1),null);\nvar xmeta \x3d cljs.core.meta(x_SINGLEQUOTE_);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Function\x22,\x22Function\x22,-749895448,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(xmeta));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802).cljs$core$IFn$_invoke$arity$1(xmeta);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.next(pre),externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22super\x22,\x22super\x22,840752938).cljs$core$IFn$_invoke$arity$1(xmeta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar super$ \x3d temp__5825__auto__;\nreturn cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$3(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [super$], null),cljs.core.next(pre)),externs,top);\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38669 \x3d cljs.core.next(pre);\nvar G__38670 \x3d externs_SINGLEQUOTE_;\nvar G__38671 \x3d top;\npre \x3d G__38669;\nexterns \x3d G__38670;\ntop \x3d G__38671;\ncontinue;\n}\n\n}\n\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK__STAR_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.has_extern_QMARK_ \x3d (function cljs$analyzer$has_extern_QMARK_(var_args){\nvar G__35283 \x3d arguments.length;\nswitch (G__35283) {\ncase 1:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2(pre,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,externs){\nvar or__5025__auto__ \x3d cljs.analyzer.has_extern_QMARK__STAR_.cljs$core$IFn$_invoke$arity$2(pre,externs);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pre)))?(function (){var x \x3d cljs.core.first(pre);\nvar or__5025__auto____$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Window\x22,\x22Window\x22,-138860255,null),new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),x));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(externs,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Number\x22,\x22Number\x22,-508146185,null)], null),x));\n}\n})():null);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(pre)),\x22cljs$\x22);\n}\n}\n}));\n\n(cljs.analyzer.has_extern_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.js_tag \x3d (function cljs$analyzer$js_tag(var_args){\nvar G__35322 \x3d arguments.length;\nswitch (G__35322) {\ncase 1:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1 \x3d (function (pre){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (pre,tag_type){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3(pre,tag_type,cljs.analyzer.get_externs());\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (pre,tag_type,externs){\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(pre,tag_type,externs,externs);\n}));\n\n(cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4 \x3d (function (pre,tag_type,externs,top){\nvar temp__5825__auto__ \x3d cljs.core.find(externs,cljs.core.first(pre));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar vec__35336 \x3d temp__5825__auto__;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(0),null);\nvar externs_SINGLEQUOTE_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__35336,(1),null);\nvar me \x3d vec__35336;\nvar tag \x3d (function (){var G__35341 \x3d cljs.core.meta(p);\nreturn (tag_type.cljs$core$IFn$_invoke$arity$1 ? tag_type.cljs$core$IFn$_invoke$arity$1(G__35341) : tag_type.call(null,G__35341));\n})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),(1))){\nif(cljs.core.truth_(tag)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.alias__GT_type.cljs$core$IFn$_invoke$arity$2(tag,tag) : cljs.analyzer.alias__GT_type.call(null,tag,tag))));\n} else {\nreturn null;\n}\n} else {\nvar or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.next(pre),tag_type,externs_SINGLEQUOTE_,top);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$4(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null)], null),cljs.core.next(pre)),tag_type,cljs.core.get.cljs$core$IFn$_invoke$arity$2(top,tag),top);\n}\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.analyzer.js_tag.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.dotted_symbol_QMARK_ \x3d (function cljs$analyzer$dotted_symbol_QMARK_(sym){\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nreturn ((goog.string.contains(s,\x22.\x22)) \x26\x26 ((!(goog.string.contains(s,\x22..\x22)))));\n});\ncljs.analyzer.munge_node_lib \x3d (function cljs$analyzer$munge_node_lib(name){\nreturn [\x22node$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\ncljs.analyzer.munge_goog_module_lib \x3d (function cljs$analyzer$munge_goog_module_lib(var_args){\nvar G__35368 \x3d arguments.length;\nswitch (G__35368) {\ncase 1:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nreturn [\x22goog$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(ns)),\x22.\x22,cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27);\n}));\n\n(cljs.analyzer.munge_goog_module_lib.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.munge_global_export \x3d (function cljs$analyzer$munge_global_export(name){\nreturn [\x22global$module$\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(clojure.string.replace(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),/[.\\\\/]/,\x22$$\x22)))].join(\x27\x27);\n});\n/**\n * Takes a namespace and an unqualified symbol and potentially returns a new\n * symbol to be used in lieu of the original.\n */\ncljs.analyzer.resolve_alias \x3d (function cljs$analyzer$resolve_alias(ns,sym){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (function (){var fexpr__35421 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),\x22null\x22,new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),\x22null\x22], null), null);\nreturn (fexpr__35421.cljs$core$IFn$_invoke$arity$1 ? fexpr__35421.cljs$core$IFn$_invoke$arity$1(sym) : fexpr__35421.call(null,sym));\n})();\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.analyzer.checked_arrays();\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22warn\x22,\x22warn\x22,-436710552),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x22,\x22checked-aget\x22,950823006,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x22,\x22checked-aset\x22,1556136760,null)], null),new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(null,\x22aget\x22,\x22aget\x22,1491056546,null),new cljs.core.Symbol(null,\x22checked-aget\x27\x22,\x22checked-aget\x27\x22,212330530,null),new cljs.core.Symbol(null,\x22aset\x22,\x22aset\x22,900773178,null),new cljs.core.Symbol(null,\x22checked-aset\x27\x22,\x22checked-aset\x27\x22,-510930777,null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.checked_arrays(),sym], null));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.ns__GT_module_type \x3d (function cljs$analyzer$ns__GT_module_type(ns){\nif(cljs.analyzer.goog_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656);\n} else {\nif(cljs.core.truth_(cljs.analyzer.js_module_exists_QMARK_(ns))){\nreturn new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579);\n} else {\nif(cljs.analyzer.node_module_dep_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198);\n} else {\nif(cljs.analyzer.dep_has_global_exports_QMARK_(ns)){\nreturn new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047);\n} else {\nreturn null;\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.resolve_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.resolve_STAR_ \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35446 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35446.cljs$core$IFn$_invoke$arity$0 ? fexpr__35446.cljs$core$IFn$_invoke$arity$0() : fexpr__35446.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22resolve*\x22),(function (env,sym,full_ns,current_ns){\nreturn cljs.analyzer.ns__GT_module_type(full_ns);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null);\n}));\ncljs.analyzer.extern_pre \x3d (function cljs$analyzer$extern_pre(sym,current_ns){\nvar pre \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./))));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n\nreturn pre;\n});\ncljs.analyzer.node_like_QMARK_ \x3d (function cljs$analyzer$node_like_QMARK_(var_args){\nvar G__35484 \x3d arguments.length;\nswitch (G__35484) {\ncase 0:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.compiler_options());\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22nodejs\x22,\x22nodejs\x22,321212524),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721).cljs$core$IFn$_invoke$arity$1(opts))) \x26\x26 (new cljs.core.Keyword(null,\x22nodejs-rt\x22,\x22nodejs-rt\x22,-512437071).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d false));\n}));\n\n(cljs.analyzer.node_like_QMARK_.cljs$lang$maxFixedArity \x3d 1);\n\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),(function (env,sym,full_ns,current_ns){\nif(cljs.core.truth_(cljs.analyzer.node_like_QMARK_.cljs$core$IFn$_invoke$arity$0())){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_node_lib(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22goog-module\x22,\x22goog-module\x22,-767061656),(function (env,sym,full_ns,current_ns){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$1(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null);\n}));\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22global\x22,\x22global\x22,93595047),(function (env,sym,full_ns,current_ns){\nvar pre \x3d cljs.analyzer.extern_pre(sym,current_ns);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),[cljs.analyzer.munge_global_export(full_ns),\x22.\x22,cljs.core.name(sym)].join(\x27\x27)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null)),new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149),true], null);\n}));\n/**\n * Specially-treated symbols for which we don\x27t trigger :private-var-access warnings.\n */\ncljs.analyzer.private_var_access_exceptions \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),\x22null\x22], null), null);\ncljs.analyzer.resolve_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (env,sym,full_ns,current_ns){\nvar sym_ast \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),full_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\nvar sym_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),cljs.core.name(sym));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(sym_ast);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn ((cljs.core.not(cljs.analyzer._STAR_private_var_access_nowarn_STAR_)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.private_var_access_exceptions,sym_name)))));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22private-var-access\x22,\x22private-var-access\x22,967536101),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_name], null));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym_ast,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym_name,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),full_ns], null)], 0));\n}));\ncljs.analyzer.required_QMARK_ \x3d (function cljs$analyzer$required_QMARK_(ns,env){\nreturn ((cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)))),ns)) || (cljs.core.contains_QMARK_(cljs.core.set(cljs.core.vals(cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)))),ns)));\n});\n/**\n * Returns true if ns is a required namespace and a JavaScript module that\n * might be invokeable as a function.\n */\ncljs.analyzer.invokeable_ns_QMARK_ \x3d (function cljs$analyzer$invokeable_ns_QMARK_(ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar and__5023__auto__ \x3d cljs.analyzer.required_QMARK_(ns__$1,env);\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn ((cljs.analyzer.node_module_dep_QMARK_(ns__$1)) || (cljs.analyzer.dep_has_global_exports_QMARK_(ns__$1)));\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.resolve_invokeable_ns \x3d (function cljs$analyzer$resolve_invokeable_ns(ns,current_ns,env){\nvar ns__$1 \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns);\nvar module_type \x3d cljs.analyzer.ns__GT_module_type(ns__$1);\nvar G__35560 \x3d module_type;\nvar G__35560__$1 \x3d (((G__35560 instanceof cljs.core.Keyword))?G__35560.fqn:null);\nswitch (G__35560__$1) {\ncase \x22js\x22:\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((function (){var or__5025__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1);\n}\n})()),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22node\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_node_lib(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ncase \x22global\x22:\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.analyzer.munge_global_export(cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$1))),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__35560__$1)].join(\x27\x27)));\n\n}\n});\n/**\n * goog.modules are deterministically assigned to a property of the namespace,\n * we cannot expect the reference will be globally available, so we resolve to\n * namespace local reference.\n */\ncljs.analyzer.resolve_import \x3d (function cljs$analyzer$resolve_import(env,import$){\nif(cljs.analyzer.goog_module_dep_QMARK_(import$)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.munge_goog_module_lib.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),import$));\n} else {\nreturn import$;\n}\n});\ncljs.analyzer.handle_symbol_local \x3d (function cljs$analyzer$handle_symbol_local(sym,lb){\nif((lb instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null);\n} else {\nreturn lb;\n}\n});\n/**\n * Resolve a var. Accepts a side-effecting confirm fn for producing\n * warnings about unresolved vars.\n */\ncljs.analyzer.resolve_var \x3d (function cljs$analyzer$resolve_var(var_args){\nvar G__35604 \x3d arguments.length;\nswitch (G__35604) {\ncase 2:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,sym){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,null);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,sym,confirm){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,sym,confirm,true);\n}));\n\n(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,sym,confirm,default_QMARK_){\nwhile(true){\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nif((\x22js\x22 \x3d\x3d\x3d cljs.core.namespace(sym))){\nvar symn \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar shadowed_by_local \x3d cljs.analyzer.handle_symbol_local(symn,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,symn));\nif((!((shadowed_by_local \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-shadowed-by-local\x22,\x22js-shadowed-by-local\x22,198048291),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym], null));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadowed_by_local,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nvar pre \x3d cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./)));\nif(((cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),sym,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.with_meta((function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$1(pre);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),pre], null))], null),(function (){var temp__5825__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(pre,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar ret_tag \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358),true,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag], null);\n} else {\nreturn null;\n}\n})()], 0));\n\n}\n} else {\nvar s \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym);\nvar lb \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,sym));\nvar current_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nif((!((lb \x3d\x3d null)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lb,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724));\n} else {\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns \x3d cljs.core.namespace(sym);\nvar ns__$1 \x3d (((\x22clojure.core\x22 \x3d\x3d\x3d ns))?\x22cljs.core\x22:ns);\nvar full_ns \x3d cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,ns__$1,(function (){var or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_module_exists_QMARK_(ns__$1);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),ns__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns__$1);\n}\n})());\nif((!((confirm \x3d\x3d null)))){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(current_ns,full_ns)){\ncljs.analyzer.confirm_ns(env,full_ns);\n} else {\n}\n\nvar G__35668_38723 \x3d env;\nvar G__35669_38724 \x3d full_ns;\nvar G__35670_38725 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35668_38723,G__35669_38724,G__35670_38725) : confirm.call(null,G__35668_38723,G__35669_38724,G__35670_38725));\n} else {\n}\n\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif(cljs.analyzer.dotted_symbol_QMARK_(sym)){\nvar idx \x3d s.indexOf(\x22.\x22);\nvar prefix \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx));\nvar suffix \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1)));\nvar temp__5823__auto__ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$4(env,prefix,null,false);\nif(cljs.core.truth_(temp__5823__auto__)){\nvar resolved \x3d temp__5823__auto__;\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(resolved,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),((function (env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals){\nreturn (function (p1__35593_SHARP_){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__35593_SHARP_),\x22.\x22,suffix].join(\x27\x27));\n});})(env,sym,confirm,default_QMARK_,resolved,temp__5823__auto__,idx,prefix,suffix,s,lb,current_ns,locals))\n);\n} else {\nvar s__$1 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__35684 \x3d s;\nif(cljs.analyzer.goog_module_dep_QMARK_(sym)){\nreturn cljs.analyzer.resolve_import(env,G__35684);\n} else {\nreturn G__35684;\n}\n})());\nvar idx__$1 \x3d s__$1.lastIndexOf(\x22.\x22);\nvar pre \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$1,(0),idx__$1);\nvar suf \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(idx__$1 + (1)));\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(pre,suf),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(pre)], null);\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym) \x3d\x3d null)))){\nvar full_ns \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym);\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),sym);\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.analyzer.resolve_STAR_.cljs$core$IFn$_invoke$arity$4(env,sym__$1,full_ns,current_ns);\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym) \x3d\x3d null)))){\nvar G__38729 \x3d env;\nvar G__38730 \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),sym);\nvar G__38731 \x3d confirm;\nvar G__38732 \x3d default_QMARK_;\nenv \x3d G__38729;\nsym \x3d G__38730;\nconfirm \x3d G__38731;\ndefault_QMARK_ \x3d G__38732;\ncontinue;\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym) \x3d\x3d null)))){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nif(cljs.analyzer.core_name_QMARK_(env,sym)){\nvar sym__$1 \x3d cljs.analyzer.resolve_alias(new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),sym);\nif((!((confirm \x3d\x3d null)))){\nvar G__35721_38733 \x3d env;\nvar G__35722_38734 \x3d new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null);\nvar G__35723_38735 \x3d sym__$1;\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(G__35721_38733,G__35722_38734,G__35723_38735) : confirm.call(null,G__35721_38733,G__35722_38734,G__35723_38735));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null)], null)], 0));\n} else {\nif(cljs.core.truth_(cljs.analyzer.invokeable_ns_QMARK_(s,env))){\nreturn cljs.analyzer.resolve_invokeable_ns(s,current_ns,env);\n} else {\nif(cljs.core.truth_(default_QMARK_)){\nif((!((confirm \x3d\x3d null)))){\n(confirm.cljs$core$IFn$_invoke$arity$3 ? confirm.cljs$core$IFn$_invoke$arity$3(env,current_ns,sym) : confirm.call(null,env,current_ns,sym));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),current_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(current_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),current_ns], null)], 0));\n} else {\nreturn null;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.analyzer.resolve_var.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve an existing var.\n * Emits a warning if no such var exists.\n */\ncljs.analyzer.resolve_existing_var \x3d (function cljs$analyzer$resolve_existing_var(env,sym){\nif(cljs.core.not(new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)))){\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists);\n} else {\nreturn cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,sym);\n}\n});\n/**\n * Given env, an analysis environment env, and names, a list of symbols, confirm\n * that all correspond to declared dynamic vars.\n */\ncljs.analyzer.confirm_bindings \x3d (function cljs$analyzer$confirm_bindings(env,names){\nvar seq__35752 \x3d cljs.core.seq(names);\nvar chunk__35753 \x3d null;\nvar count__35754 \x3d (0);\nvar i__35755 \x3d (0);\nwhile(true){\nif((i__35755 \x3c count__35754)){\nvar name \x3d chunk__35753.cljs$core$IIndexed$_nth$arity$2(null,i__35755);\nvar env_38737__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38738 \x3d cljs.analyzer.resolve_existing_var(env_38737__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38738;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38738));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38737__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38738,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38738)], null));\n} else {\n}\n\n\nvar G__38740 \x3d seq__35752;\nvar G__38741 \x3d chunk__35753;\nvar G__38742 \x3d count__35754;\nvar G__38743 \x3d (i__35755 + (1));\nseq__35752 \x3d G__38740;\nchunk__35753 \x3d G__38741;\ncount__35754 \x3d G__38742;\ni__35755 \x3d G__38743;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__35752);\nif(temp__5825__auto__){\nvar seq__35752__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__35752__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__35752__$1);\nvar G__38746 \x3d cljs.core.chunk_rest(seq__35752__$1);\nvar G__38747 \x3d c__5548__auto__;\nvar G__38748 \x3d cljs.core.count(c__5548__auto__);\nvar G__38749 \x3d (0);\nseq__35752 \x3d G__38746;\nchunk__35753 \x3d G__38747;\ncount__35754 \x3d G__38748;\ni__35755 \x3d G__38749;\ncontinue;\n} else {\nvar name \x3d cljs.core.first(seq__35752__$1);\nvar env_38750__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ev_38751 \x3d cljs.analyzer.resolve_existing_var(env_38750__$1,name);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d ev_38751;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(ev_38751));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),env_38750__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ev\x22,\x22ev\x22,-406827324),ev_38751,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ev_38751)], null));\n} else {\n}\n\n\nvar G__38753 \x3d cljs.core.next(seq__35752__$1);\nvar G__38754 \x3d null;\nvar G__38755 \x3d (0);\nvar G__38756 \x3d (0);\nseq__35752 \x3d G__38753;\nchunk__35753 \x3d G__38754;\ncount__35754 \x3d G__38755;\ni__35755 \x3d G__38756;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n/**\n * Given env, an analysis environment, and sym, a symbol, resolve a macro.\n */\ncljs.analyzer.resolve_macro_var \x3d (function cljs$analyzer$resolve_macro_var(env,sym){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927));\nif((!((cljs.core.namespace(sym) \x3d\x3d null)))){\nvar ns__$1 \x3d cljs.core.namespace(sym);\nvar ns__$2 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure.core\x22,ns__$1))?\x22cljs.core\x22:ns__$1);\nvar full_ns \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$2(env,ns__$2);\nvar full_ns__$1 \x3d (((!(clojure.string.ends_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(full_ns),\x22$macros\x22].join(\x27\x27)):full_ns);\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null)) \x3d\x3d null)))){\nvar full_ns \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym], null));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null));\n} else {\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null)) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym], null));\nvar full_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [full_ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym__$1], null));\n} else {\nvar ns__$1 \x3d (((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),sym], null)) \x3d\x3d null))))?ns:((cljs.analyzer.core_name_QMARK_(env,sym))?cljs.analyzer.impl.CLJS_CORE_MACROS_SYM:null));\nif((!((ns__$1 \x3d\x3d null)))){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(namespaces,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$1,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\n\n\ncljs.analyzer.specials \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 22, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null);\ncljs.analyzer._STAR_recur_frames_STAR_ \x3d null;\ncljs.analyzer._STAR_loop_lets_STAR_ \x3d cljs.core.List.EMPTY;\ncljs.analyzer._STAR_allow_redef_STAR_ \x3d false;\ncljs.analyzer._STAR_allow_ns_STAR_ \x3d true;\ncljs.analyzer.analyze_keyword \x3d (function cljs$analyzer$analyze_keyword(env,sym){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null)], null);\n});\ncljs.analyzer.get_tag \x3d (function cljs$analyzer$get_tag(ast){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast)));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.find_matching_method \x3d (function cljs$analyzer$find_matching_method(fn_ast,params){\nvar methods$ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fn_ast);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n}\n})();\nvar c \x3d cljs.core.count(params);\nreturn cljs.core.some((function (m){\nvar and__5023__auto__ \x3d (function (){var or__5025__auto__ \x3d (new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869).cljs$core$IFn$_invoke$arity$1(m) \x3d\x3d\x3d c);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(m);\n}\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn m;\n} else {\nreturn and__5023__auto__;\n}\n}),methods$);\n});\ncljs.analyzer.type_QMARK_ \x3d (function cljs$analyzer$type_QMARK_(env,t){\nif((((!((t \x3d\x3d null)))) \x26\x26 ((t instanceof cljs.core.Symbol)))){\nvar var$ \x3d (function (){var _STAR_private_var_access_nowarn_STAR__orig_val__35815 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__35816 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__35816);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env,t);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__35815);\n}})();\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(var$));\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar temp__5827__auto____$2 \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5827__auto____$2 \x3d\x3d null)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22PersistentHashMap\x22,\x22cljs.core/PersistentHashMap\x22,-454120575,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22List\x22,\x22cljs.core/List\x22,1708954352,null),\x22null\x22], null), null),t);\n} else {\nvar proto \x3d temp__5827__auto____$2;\nreturn proto;\n}\n} else {\nvar type \x3d temp__5827__auto____$1;\nreturn type;\n}\n} else {\nvar type \x3d temp__5827__auto__;\nreturn type;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.unwrap_quote \x3d (function cljs$analyzer$unwrap_quote(p__35830){\nvar map__35833 \x3d p__35830;\nvar map__35833__$1 \x3d cljs.core.__destructure_map(map__35833);\nvar ast \x3d map__35833__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35833__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif(cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245))){\nreturn new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.infer_if \x3d (function cljs$analyzer$infer_if(env,ast){\nvar map__35844 \x3d cljs.analyzer.unwrap_quote(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(ast));\nvar map__35844__$1 \x3d cljs.core.__destructure_map(map__35844);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35844__$1,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471));\nvar then_tag \x3d (function (){var G__35849 \x3d env;\nvar G__35850 \x3d new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35849,G__35850) : cljs.analyzer.infer_tag.call(null,G__35849,G__35850));\n})();\nif(((cljs.core.keyword_identical_QMARK_(op,new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842))) \x26\x26 ((((!((form \x3d\x3d null)))) \x26\x26 ((!(form \x3d\x3d\x3d false))))))){\nreturn then_tag;\n} else {\nvar else_tag \x3d (function (){var G__35857 \x3d env;\nvar G__35858 \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35857,G__35858) : cljs.analyzer.infer_tag.call(null,G__35857,G__35858));\n})();\nif(((cljs.core.symbol_identical_QMARK_(then_tag,else_tag)) || (cljs.core.symbol_identical_QMARK_(else_tag,cljs.analyzer.impl.IGNORE_SYM)))){\nreturn then_tag;\n} else {\nif(cljs.core.symbol_identical_QMARK_(then_tag,cljs.analyzer.impl.IGNORE_SYM)){\nreturn else_tag;\n} else {\nif((((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,then_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,then_tag)))) \x26\x26 ((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.NOT_NATIVE,else_tag) \x3d\x3d null)))) || (cljs.analyzer.type_QMARK_(env,else_tag)))))){\nreturn new cljs.core.Symbol(null,\x22clj\x22,\x22clj\x22,980036099,null);\n} else {\nif((((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,then_tag) \x3d\x3d null)))) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.impl.BOOLEAN_OR_SEQ,else_tag) \x3d\x3d null)))))){\nreturn new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null);\n} else {\nvar then_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(then_tag))?then_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([then_tag]));\nvar else_tag__$1 \x3d ((cljs.analyzer.impl.cljs_set_QMARK_(else_tag))?else_tag:cljs.core.PersistentHashSet.createAsIfByAssoc([else_tag]));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(then_tag__$1,else_tag__$1);\n}\n\n}\n}\n}\n}\n});\ncljs.analyzer.js_var_QMARK_ \x3d (function cljs$analyzer$js_var_QMARK_(ast){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast));\n});\ncljs.analyzer.js_var_fn_QMARK_ \x3d (function cljs$analyzer$js_var_fn_QMARK_(fn_ast){\nreturn cljs.analyzer.js_var_QMARK_(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fn_ast));\n});\ncljs.analyzer.fn_ast__GT_tag \x3d (function cljs$analyzer$fn_ast__GT_tag(p__35891){\nvar map__35893 \x3d p__35891;\nvar map__35893__$1 \x3d cljs.core.__destructure_map(map__35893);\nvar fn_ast \x3d map__35893__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35893__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(info);\n} else {\nif(cljs.analyzer.js_var_fn_QMARK_(fn_ast)){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.analyzer.infer_invoke \x3d (function cljs$analyzer$infer_invoke(env,p__35918){\nvar map__35919 \x3d p__35918;\nvar map__35919__$1 \x3d cljs.core.__destructure_map(map__35919);\nvar ast \x3d map__35919__$1;\nvar fn_ast \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__35919__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar me \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.find_matching_method(fn_ast,args),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839));\nvar temp__5827__auto__ \x3d (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,me) : cljs.analyzer.infer_tag.call(null,env,me));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d cljs.analyzer.fn_ast__GT_tag(fn_ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn cljs.analyzer.impl.ANY_SYM;\n} else {\nvar ret_tag \x3d temp__5827__auto____$1;\nreturn ret_tag;\n}\n} else {\nvar ret_tag \x3d temp__5827__auto__;\nreturn ret_tag;\n}\n});\n/**\n * Given env, an analysis environment, and e, an AST node, return the inferred\n * type of the node\n */\ncljs.analyzer.infer_tag \x3d (function cljs$analyzer$infer_tag(env,ast){\nvar temp__5827__auto__ \x3d cljs.analyzer.get_tag(ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nvar G__35920 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__35920__$1 \x3d (((G__35920 instanceof cljs.core.Keyword))?G__35920.fqn:null);\nswitch (G__35920__$1) {\ncase \x22recur\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22throw\x22:\nreturn cljs.analyzer.impl.IGNORE_SYM;\n\nbreak;\ncase \x22let\x22:\nvar G__35924 \x3d env;\nvar G__35925 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35924,G__35925) : cljs.analyzer.infer_tag.call(null,G__35924,G__35925));\n\nbreak;\ncase \x22loop\x22:\nvar G__35928 \x3d env;\nvar G__35929 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35928,G__35929) : cljs.analyzer.infer_tag.call(null,G__35928,G__35929));\n\nbreak;\ncase \x22do\x22:\nvar G__35932 \x3d env;\nvar G__35933 \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35932,G__35933) : cljs.analyzer.infer_tag.call(null,G__35932,G__35933));\n\nbreak;\ncase \x22fn-method\x22:\nvar G__35935 \x3d env;\nvar G__35936 \x3d new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35935,G__35936) : cljs.analyzer.infer_tag.call(null,G__35935,G__35936));\n\nbreak;\ncase \x22def\x22:\nvar G__35937 \x3d env;\nvar G__35938 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35937,G__35938) : cljs.analyzer.infer_tag.call(null,G__35937,G__35938));\n\nbreak;\ncase \x22invoke\x22:\nreturn cljs.analyzer.infer_invoke(env,ast);\n\nbreak;\ncase \x22if\x22:\nreturn cljs.analyzer.infer_if(env,ast);\n\nbreak;\ncase \x22const\x22:\nvar G__35939 \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(ast);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(false,G__35939)){\nreturn cljs.analyzer.impl.BOOLEAN_SYM;\n} else {\nreturn cljs.analyzer.impl.ANY_SYM;\n\n}\n}\n\nbreak;\ncase \x22quote\x22:\nvar G__35940 \x3d env;\nvar G__35941 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35940,G__35941) : cljs.analyzer.infer_tag.call(null,G__35940,G__35941));\n\nbreak;\ncase \x22var\x22:\ncase \x22local\x22:\ncase \x22js-var\x22:\ncase \x22binding\x22:\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(ast);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nvar G__35942 \x3d env;\nvar G__35943 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ast);\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(G__35942,G__35943) : cljs.analyzer.infer_tag.call(null,G__35942,G__35943));\n} else {\nvar init \x3d temp__5827__auto____$1;\nreturn (cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.infer_tag.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.infer_tag.call(null,env,init));\n}\n\nbreak;\ncase \x22host-field\x22:\ncase \x22host-call\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ncase \x22js\x22:\nreturn cljs.analyzer.impl.ANY_SYM;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.parse !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.parse \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__35952 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__35952.cljs$core$IFn$_invoke$arity$0 ? fexpr__35952.cljs$core$IFn$_invoke$arity$0() : fexpr__35952.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22parse\x22),(function() { \nvar G__38759__delegate \x3d function (op,rest){\nreturn op;\n};\nvar G__38759 \x3d function (op,var_args){\nvar rest \x3d null;\nif (arguments.length \x3e 1) {\nvar G__38760__i \x3d 0, G__38760__a \x3d new Array(arguments.length - 1);\nwhile (G__38760__i \x3c G__38760__a.length) {G__38760__a[G__38760__i] \x3d arguments[G__38760__i + 1]; ++G__38760__i;}\n rest \x3d new cljs.core.IndexedSeq(G__38760__a,0,null);\n} \nreturn G__38759__delegate.call(this,op,rest);};\nG__38759.cljs$lang$maxFixedArity \x3d 1;\nG__38759.cljs$lang$applyTo \x3d (function (arglist__38761){\nvar op \x3d cljs.core.first(arglist__38761);\nvar rest \x3d cljs.core.rest(arglist__38761);\nreturn G__38759__delegate(op,rest);\n});\nG__38759.cljs$core$IFn$_invoke$arity$variadic \x3d G__38759__delegate;\nreturn G__38759;\n})()\n,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.var_meta \x3d (function cljs$analyzer$var_meta(var_args){\nvar G__35964 \x3d arguments.length;\nswitch (G__35964) {\ncase 1:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$1 \x3d (function (var$){\nreturn cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,null);\n}));\n\n(cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (var$,expr_env){\nvar sym \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$);\nvar ks \x3d new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095)], null);\nvar m \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var user_meta \x3d new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964).cljs$core$IFn$_invoke$arity$1(var$);\nvar uks \x3d cljs.core.keys(user_meta);\nreturn cljs.core.zipmap(uks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35957_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(user_meta,p1__35957_SHARP_),null,(1),null)),(2),null));\n}),uks));\n})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.zipmap(ks,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__35959_SHARP_){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.get.cljs$core$IFn$_invoke$arity$2(var$,p1__35959_SHARP_),null,(1),null)),(2),null));\n}),ks)),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null))))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),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(\x22cljs.core\x22,\x22when\x22,\x22cljs.core/when\x22,120293186,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(null,\x22.-cljs$lang$test\x22,\x22.-cljs$lang$test\x22,718963148,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),(function (){var arglists \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(var$);\nvar arglists_SINGLEQUOTE_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists)))?cljs.core.second(arglists):arglists);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(new cljs.core.List(null,cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.with_meta,arglists_SINGLEQUOTE_,new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)),(2),null));\n})()], 0))], 0));\nif(cljs.core.truth_(expr_env)){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,m) : cljs.analyzer.analyze.call(null,expr_env,m));\n} else {\nreturn m;\n}\n}));\n\n(cljs.analyzer.var_meta.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.analyzer.var_ast \x3d (function cljs$analyzer$var_ast(env,sym){\nvar _STAR_private_var_access_nowarn_STAR__orig_val__36029 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__36030 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__36030);\n\ntry{var env__$1 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar var$ \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env__$1,sym,cljs.analyzer.confirm_var_exists_throw());\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(var$);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar var_ns \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym)),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),(function (){var G__36055 \x3d expr_env;\nvar G__36056 \x3d 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,\x22quote\x22,\x22quote\x22,1377916282,null),null,(1),null)),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.name(var_ns),cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(var$))),null,(1),null)))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36055,G__36056) : cljs.analyzer.analyze.call(null,G__36055,G__36056));\n})(),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.analyzer.var_meta.cljs$core$IFn$_invoke$arity$2(var$,expr_env)], null);\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__36029);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),(function (op,env,p__36064,_,___$1){\nvar vec__36066 \x3d p__36064;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36066,(1),null);\nvar form \x3d vec__36066;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to var\x22);\n} else {\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Argument to var must be symbol\x22);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22the-var\x22,\x22the-var\x22,1428415613),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)], null),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),cljs.analyzer.var_ast(env,sym)], 0));\n}));\ncljs.analyzer.predicate__GT_tag \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(\x22cljs.core\x22,\x22array?\x22,\x22cljs.core/array?\x22,-1655912448,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22boolean?\x22,\x22cljs.core/boolean?\x22,1400713761,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22char?\x22,\x22cljs.core/char?\x22,416405281,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22keyword?\x22,\x22cljs.core/keyword?\x22,713156450,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-symbol?\x22,\x22cljs.core/simple-symbol?\x22,-1951205629,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-symbol?\x22,\x22cljs.core/qualified-symbol?\x22,1570873476,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22var?\x22,\x22cljs.core/var?\x22,1711182854,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22map-entry?\x22,\x22cljs.core/map-entry?\x22,465406728,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22double?\x22,\x22cljs.core/double?\x22,1757455529,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22string?\x22,\x22cljs.core/string?\x22,-2072921719,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-ident?\x22,\x22cljs.core/qualified-ident?\x22,-1863492566,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22qualified-keyword?\x22,\x22cljs.core/qualified-keyword?\x22,-308091478,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22inst?\x22,\x22cljs.core/inst?\x22,1216133710,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22float?\x22,\x22cljs.core/float?\x22,-941017745,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22true?\x22,\x22cljs.core/true?\x22,-77973136,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22number?\x22,\x22cljs.core/number?\x22,-811857295,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22volatile?\x22,\x22cljs.core/volatile?\x22,-1122186415,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22integer?\x22,\x22cljs.core/integer?\x22,1710697810,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22infinite?\x22,\x22cljs.core/infinite?\x22,-1069503726,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22undefined?\x22,\x22cljs.core/undefined?\x22,-1206515693,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22uuid?\x22,\x22cljs.core/uuid?\x22,-15131116,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22record?\x22,\x22cljs.core/record?\x22,1307655860,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22reduced?\x22,\x22cljs.core/reduced?\x22,-1192491371,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22tagged-literal?\x22,\x22cljs.core/tagged-literal?\x22,-1159666987,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22zero?\x22,\x22cljs.core/zero?\x22,-341242858,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22false?\x22,\x22cljs.core/false?\x22,-1660815306,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-ident?\x22,\x22cljs.core/simple-ident?\x22,1674885558,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22simple-keyword?\x22,\x22cljs.core/simple-keyword?\x22,39474330,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seqable?\x22,\x22cljs.core/seqable?\x22,-745394886,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22symbol?\x22,\x22cljs.core/symbol?\x22,1422196122,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22seq?\x22,\x22cljs.core/seq?\x22,-1302056292,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22delay?\x22,\x22cljs.core/delay?\x22,2099859324,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22regexp?\x22,\x22cljs.core/regexp?\x22,-348418979,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ident?\x22,\x22cljs.core/ident?\x22,1567441535,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22chunked-seq?\x22,\x22cljs.core/chunked-seq?\x22,-712922369,null)],[new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISequential\x22,\x22cljs.core/ISequential\x22,-950981796,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Var\x22,\x22cljs.core/Var\x22,2071014443,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMapEntry\x22,\x22cljs.core/IMapEntry\x22,535941300,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Inst\x22,\x22cljs.core/Inst\x22,959205835,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Volatile\x22,\x22cljs.core/Volatile\x22,-1098692185,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IUUID\x22,\x22cljs.core/IUUID\x22,-1606521379,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IRecord\x22,\x22cljs.core/IRecord\x22,635852000,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Reduced\x22,\x22cljs.core/Reduced\x22,971663396,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22ITaggedLiteral\x22,\x22cljs.core/ITaggedLiteral\x22,-1236965094,null),new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(\x22cljs.core\x22,\x22ISeqable\x22,\x22cljs.core/ISeqable\x22,137437203,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(\x22cljs.core\x22,\x22Delay\x22,\x22cljs.core/Delay\x22,-21574999,null),new cljs.core.Symbol(\x22js\x22,\x22RegExp\x22,\x22js/RegExp\x22,1778210562,null),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null),\x22null\x22], null), null),new cljs.core.Symbol(\x22cljs.core\x22,\x22IChunkedSeq\x22,\x22cljs.core/IChunkedSeq\x22,-892943716,null)]);\n/**\n * Look for a predicate-induced tag when the test expression is a simple\n * application of a predicate to a local, as in (string? x).\n */\ncljs.analyzer.simple_predicate_induced_tag \x3d (function cljs$analyzer$simple_predicate_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((2) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36084 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36085 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36085);\n\ntry{var G__36086 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36087 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36086,G__36087) : cljs.analyzer.analyze.call(null,G__36086,G__36087));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36084);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nvar temp__5825__auto__ \x3d (function (){var G__36095 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nreturn (cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.predicate__GT_tag.cljs$core$IFn$_invoke$arity$1(G__36095) : cljs.analyzer.predicate__GT_tag.call(null,G__36095));\n})();\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto__){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Look for a type-check-induced tag when the test expression is the use of\n * instance? on a local, as in (instance? UUID x) or implements? on a local, as\n * in (implements? ICounted x).\n */\ncljs.analyzer.type_check_induced_tag \x3d (function cljs$analyzer$type_check_induced_tag(env,test){\nif(((cljs.core.list_QMARK_(test)) \x26\x26 (((((3) \x3d\x3d\x3d cljs.core.count(test))) \x26\x26 (((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,test)) \x26\x26 ((!(cljs.core.contains_QMARK_(cljs.analyzer.specials,cljs.core.first(test))))))))))){\nvar analyzed_fn \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36112 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36113 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36113);\n\ntry{var G__36115 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36116 \x3d cljs.core.first(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36115,G__36116) : cljs.analyzer.analyze.call(null,G__36115,G__36116));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36112);\n}})();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_fn))){\nif(cljs.core.truth_((function (){var G__36118 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_fn);\nvar fexpr__36117 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol(\x22cljs.core\x22,\x22implements?\x22,\x22cljs.core/implements?\x22,-251485149,null),\x22null\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),\x22null\x22], null), null);\nreturn (fexpr__36117.cljs$core$IFn$_invoke$arity$1 ? fexpr__36117.cljs$core$IFn$_invoke$arity$1(G__36118) : fexpr__36117.call(null,G__36118));\n})())){\nvar analyzed_type \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36125 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36126 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36126);\n\ntry{var G__36130 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36131 \x3d cljs.core.second(test);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36130,G__36131) : cljs.analyzer.analyze.call(null,G__36130,G__36131));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36125);\n}})();\nvar tag \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(analyzed_type);\nvar sym \x3d cljs.core.last(test);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(analyzed_type));\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(sym) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),sym], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym,tag], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Refine a tag to exclude clj-nil if the test is a local.\n */\ncljs.analyzer.truth_induced_tag \x3d (function cljs$analyzer$truth_induced_tag(env,test){\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d (test instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (cljs.core.namespace(test) \x3d\x3d null);\nif(and__5023__auto____$1){\nreturn 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,\x22locals\x22,\x22locals\x22,535295783),test], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar analyzed_symbol \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36144 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36145 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36145);\n\ntry{var G__36148 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36149 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36148,G__36149) : cljs.analyzer.analyze.call(null,G__36148,G__36149));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36144);\n}})();\nvar temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(analyzed_symbol);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar tag \x3d temp__5825__auto__;\nif(((cljs.core.set_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [test,cljs.analyzer.canonicalize_type(cljs.core.disj.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null)))], null);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\n/**\n * Looks at the test and sets any tags which are induced by virtue\n * of the test being truthy. For example in (if (string? x) x :bar)\n * the local x in the then branch must be of string type.\n */\ncljs.analyzer.set_test_induced_tags \x3d (function cljs$analyzer$set_test_induced_tags(env,test){\nvar vec__36164 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.simple_predicate_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.type_check_induced_tag(env,test);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.truth_induced_tag(env,test);\n}\n}\n})();\nvar local \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(0),null);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36164,(1),null);\nvar G__36172 \x3d env;\nif(cljs.core.truth_(local)){\nreturn cljs.core.assoc_in(G__36172,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),local,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null),tag);\n} else {\nreturn G__36172;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),(function (op,env,p__36181,name,_){\nvar vec__36183 \x3d p__36181;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(0),null);\nvar test \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(1),null);\nvar then \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(2),null);\nvar else$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36183,(3),null);\nvar form \x3d vec__36183;\nif((cljs.core.count(form) \x3c (3))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too few arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.compile_syntax_error(env,\x22Too many arguments to if\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null));\n} else {\n}\n\nvar test_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36190 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36191 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36191);\n\ntry{var G__36192 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36193 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36192,G__36193) : cljs.analyzer.analyze.call(null,G__36192,G__36193));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36190);\n}})();\nvar then_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36194 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36195 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36195);\n\ntry{var G__36196 \x3d cljs.analyzer.set_test_induced_tags(env,test);\nvar G__36197 \x3d then;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36196,G__36197) : cljs.analyzer.analyze.call(null,G__36196,G__36197));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36194);\n}})();\nvar else_expr \x3d (function (){var _STAR_allow_redef_STAR__orig_val__36198 \x3d cljs.analyzer._STAR_allow_redef_STAR_;\nvar _STAR_allow_redef_STAR__temp_val__36199 \x3d true;\n(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__temp_val__36199);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,else$) : cljs.analyzer.analyze.call(null,env,else$));\n}finally {(cljs.analyzer._STAR_allow_redef_STAR_ \x3d _STAR_allow_redef_STAR__orig_val__36198);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22if\x22,\x22if\x22,-458814265),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test_expr,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then_expr,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),else_expr,new cljs.core.Keyword(null,\x22unchecked\x22,\x22unchecked\x22,924418378),cljs.core._STAR_unchecked_if_STAR_,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),(function (op,env,p__36215,name,_){\nvar vec__36220 \x3d p__36215;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(0),null);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(1),null);\nvar tests \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(2),null);\nvar thens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(3),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36220,(4),null);\nvar form \x3d vec__36220;\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* must switch on symbol\x22,\x22\\n\x22,\x22(symbol? sym)\x22].join(\x27\x27)));\n}\n\nif(cljs.core.every_QMARK_(cljs.core.vector_QMARK_,tests)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be grouped in vectors\x22,\x22\\n\x22,\x22(every? vector? tests)\x22].join(\x27\x27)));\n}\n\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar v \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36239 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36240 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36240);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,sym) : cljs.analyzer.analyze.call(null,expr_env,sym));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36239);\n}})();\nvar tests__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36208_SHARP_){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (t){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,t) : cljs.analyzer.analyze.call(null,expr_env,t));\n}),p1__36208_SHARP_);\n}),tests);\nvar thens__$1 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36209_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,p1__36209_SHARP_) : cljs.analyzer.analyze.call(null,env,p1__36209_SHARP_));\n}),thens);\nvar nodes \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tests__$2,then){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-node\x22,\x22case-node\x22,1016946320),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (test){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-test\x22,\x22case-test\x22,-213512472),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(test),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),expr_env,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),test,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)], null)], null);\n}),tests__$2),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case-then\x22,\x22case-then\x22,2107591745),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(then),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070),then,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tests\x22,\x22tests\x22,-1041085625),new cljs.core.Keyword(null,\x22then\x22,\x22then\x22,460598070)], null)], null);\n}),tests__$1,thens__$1);\nvar default$__$1 \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,default$) : cljs.analyzer.analyze.call(null,env,default$));\nif(cljs.core.every_QMARK_((function (t){\nvar or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(t));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(t));\nif(and__5023__auto__){\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.char_QMARK_)(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(t));\n} else {\nreturn and__5023__auto__;\n}\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,tests__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22case* tests must be numbers, strings, or constants\x22,\x22\\n\x22,\x22(every? (fn [t] (or (-\x3e t :info :const) (and (\x3d :const (:op t)) ((some-fn number? string? char?) (:form t))))) (apply concat tests))\x22].join(\x27\x27)));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22case\x22,\x22case\x22,1143702196),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),v,new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),nodes,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),default$__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),new cljs.core.Keyword(null,\x22nodes\x22,\x22nodes\x22,-2099585805),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),(function (op,env,p__36284,name,_){\nvar vec__36287 \x3d p__36284;\nvar ___$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(0),null);\nvar throw_form \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36287,(1),null);\nvar form \x3d vec__36287;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too few arguments to throw, throw expects a single Error instance\x22);\n} else {\nif(((2) \x3c cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to throw, throw expects a single Error instance\x22);\n} else {\n}\n}\n\nvar throw_expr \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36297 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36298 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36298);\n\ntry{var G__36300 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36301 \x3d throw_form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36300,G__36301) : cljs.analyzer.analyze.call(null,G__36300,G__36301));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36297);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22throw\x22,\x22throw\x22,-1044625833),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064),throw_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exception\x22,\x22exception\x22,-335277064)], null)], null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),(function (op,env,p__36324,name,_){\nvar vec__36327 \x3d p__36324;\nvar seq__36328 \x3d cljs.core.seq(vec__36327);\nvar first__36329 \x3d cljs.core.first(seq__36328);\nvar seq__36328__$1 \x3d cljs.core.next(seq__36328);\nvar ___$1 \x3d first__36329;\nvar body \x3d seq__36328__$1;\nvar form \x3d vec__36327;\nvar catchenv \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),(function (p1__36307_SHARP_){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),p1__36307_SHARP_)){\nreturn new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105);\n} else {\nreturn p1__36307_SHARP_;\n}\n}));\nvar catch_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36309_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36309_SHARP_),new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null));\n}));\nvar default_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(catch_QMARK_,(function (p1__36312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(p1__36312_SHARP_),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328));\n}));\nvar finally_QMARK_ \x3d cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,(function (p1__36313_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__36313_SHARP_),new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null));\n}));\nvar map__36334 \x3d (function (){var parser \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),body,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),null,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),null], null);\nwhile(true){\nif(cljs.core.seq_QMARK_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser))){\nvar vec__36377 \x3d new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(parser);\nvar seq__36378 \x3d cljs.core.seq(vec__36377);\nvar first__36379 \x3d cljs.core.first(seq__36378);\nvar seq__36378__$1 \x3d cljs.core.next(seq__36378);\nvar form__$1 \x3d first__36379;\nvar forms_STAR_ \x3d seq__36378__$1;\nvar parser_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms_STAR_);\nvar G__36383 \x3d new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099).cljs$core$IFn$_invoke$arity$1(parser);\nvar G__36383__$1 \x3d (((G__36383 instanceof cljs.core.Keyword))?G__36383.fqn:null);\nswitch (G__36383__$1) {\ncase \x22start\x22:\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38773 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22catches\x22,\x22catches\x22,-1478797617));\nparser \x3d G__38773;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38774 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38774;\ncontinue;\n} else {\nvar G__38775 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),cljs.core.conj,form__$1);\nparser \x3d G__38775;\ncontinue;\n\n}\n}\n\nbreak;\ncase \x22catches\x22:\nif(cljs.core.truth_(default_QMARK_(form__$1))){\nvar G__38776 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], 0));\nparser \x3d G__38776;\ncontinue;\n} else {\nif(cljs.core.truth_(catch_QMARK_(form__$1))){\nvar G__38777 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(parser_STAR_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138)], null),cljs.core.conj,form__$1);\nparser \x3d G__38777;\ncontinue;\n} else {\nif(cljs.core.truth_(finally_QMARK_(form__$1))){\nvar G__38780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parser,new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705));\nparser \x3d G__38780;\ncontinue;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid try form\x22);\n\n}\n}\n}\n\nbreak;\ncase \x22finally\x22:\nvar G__38783 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(parser_STAR_,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426),form__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188)], 0));\nparser \x3d G__38783;\ncontinue;\n\nbreak;\ncase \x22done\x22:\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Unexpected form after finally\x22);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36383__$1)].join(\x27\x27)));\n\n}\n} else {\nreturn parser;\n}\nbreak;\n}\n})();\nvar map__36334__$1 \x3d cljs.core.__destructure_map(map__36334);\nvar body__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669));\nvar cblocks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22cblocks\x22,\x22cblocks\x22,-1769978138));\nvar dblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22dblock\x22,\x22dblock\x22,-1325623381));\nvar fblock \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36334__$1,new cljs.core.Keyword(null,\x22fblock\x22,\x22fblock\x22,-1236607426));\nvar finally$ \x3d ((cljs.core.seq(fblock))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var _STAR_recur_frames_STAR__orig_val__36397 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36398 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36398);\n\ntry{var G__36399 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36400 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),cljs.core.rest(fblock))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36399,G__36400) : cljs.analyzer.analyze.call(null,G__36399,G__36400));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36397);\n}})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true):null);\nvar e \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d cljs.core.seq(cblocks);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nreturn dblock;\n}\n})())?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22e\x22):null);\nvar default$ \x3d (function (){var temp__5823__auto__ \x3d dblock;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar vec__36401 \x3d temp__5823__auto__;\nvar seq__36402 \x3d cljs.core.seq(vec__36401);\nvar first__36403 \x3d cljs.core.first(seq__36402);\nvar seq__36402__$1 \x3d cljs.core.next(seq__36402);\nvar ___$2 \x3d first__36403;\nvar first__36403__$1 \x3d cljs.core.first(seq__36402__$1);\nvar seq__36402__$2 \x3d cljs.core.next(seq__36402__$1);\nvar ___$3 \x3d first__36403__$1;\nvar first__36403__$2 \x3d cljs.core.first(seq__36402__$2);\nvar seq__36402__$3 \x3d cljs.core.next(seq__36402__$2);\nvar name__$1 \x3d first__36403__$2;\nvar cb \x3d seq__36402__$3;\nreturn 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0))));\n} else {\nreturn 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,\x22throw\x22,\x22throw\x22,595905694,null),null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))));\n}\n})();\nvar cblock \x3d ((cljs.core.seq(cblocks))?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(\x22cljs.core\x22,\x22cond\x22,\x22cljs.core/cond\x22,2005388338,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__36412){\nvar vec__36413 \x3d p__36412;\nvar seq__36414 \x3d cljs.core.seq(vec__36413);\nvar first__36415 \x3d cljs.core.first(seq__36414);\nvar seq__36414__$1 \x3d cljs.core.next(seq__36414);\nvar ___$2 \x3d first__36415;\nvar first__36415__$1 \x3d cljs.core.first(seq__36414__$1);\nvar seq__36414__$2 \x3d cljs.core.next(seq__36414__$1);\nvar type \x3d first__36415__$1;\nvar first__36415__$2 \x3d cljs.core.first(seq__36414__$2);\nvar seq__36414__$3 \x3d cljs.core.next(seq__36414__$2);\nvar name__$1 \x3d first__36415__$2;\nvar cb \x3d seq__36414__$3;\nif(cljs.core.truth_(name__$1)){\nif(cljs.core.not(cljs.core.namespace(name__$1))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t qualify symbol in catch\x22,\x22\\n\x22,\x22(not (namespace name))\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn 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,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(\x22cljs.core\x22,\x22instance?\x22,\x22cljs.core/instance?\x22,2044751870,null),null,(1),null)),(new cljs.core.List(null,type,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,e,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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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,name__$1,null,(1),null)),(new cljs.core.List(null,e,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cb], 0)))),null,(1),null))))));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cblocks], 0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,(1),null)),(new cljs.core.List(null,default$,null,(1),null))], 0)))):default$);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(catchenv);\nvar locals__$1 \x3d (cljs.core.truth_(e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),cljs.analyzer.get_line(e,env),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),cljs.analyzer.get_col(e,env),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null)):locals);\nvar catch$ \x3d (cljs.core.truth_(cblock)?(function (){var _STAR_recur_frames_STAR__orig_val__36423 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36424 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36424);\n\ntry{var G__36428 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(catchenv,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1);\nvar G__36429 \x3d cblock;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36428,G__36429) : cljs.analyzer.analyze.call(null,G__36428,G__36429));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36423);\n}})():null);\nvar try$ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36432 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36433 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36433);\n\ntry{var G__36436 \x3d (cljs.core.truth_((function (){var or__5025__auto__ \x3d e;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn finally$;\n}\n})())?catchenv:env);\nvar G__36437 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body__$1)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36436,G__36437) : cljs.analyzer.analyze.call(null,G__36436,G__36437));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36432);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22try\x22,\x22try\x22,1380742522),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(try$,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705),finally$,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e,new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524),catch$,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),(cljs.core.truth_(catch$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22catch\x22,\x22catch\x22,1038065524)], null):null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(finally$)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22finally\x22,\x22finally\x22,1589088705)], null):null)], 0)))], null);\n}));\ncljs.analyzer.valid_proto \x3d (function cljs$analyzer$valid_proto(x){\nif((x instanceof cljs.core.Symbol)){\nreturn x;\n} else {\nreturn null;\n}\n});\ncljs.analyzer.elide_env \x3d (function cljs$analyzer$elide_env(env,ast,opts){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235));\n});\ncljs.analyzer.replace_env_pass \x3d (function cljs$analyzer$replace_env_pass(new_env){\nreturn (function (env,ast,opts){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new_env);\n});\n});\ncljs.analyzer.ast_children \x3d (function cljs$analyzer$ast_children(ast){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (c){\nvar g \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ast,c);\nif(cljs.core.vector_QMARK_(g)){\nreturn g;\n} else {\nif(cljs.core.truth_(g)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null);\n} else {\nreturn null;\n}\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982).cljs$core$IFn$_invoke$arity$1(ast)], 0));\n});\ncljs.analyzer.constant_value_QMARK_ \x3d (function cljs$analyzer$constant_value_QMARK_(p__36477){\nvar map__36480 \x3d p__36477;\nvar map__36480__$1 \x3d cljs.core.__destructure_map(map__36480);\nvar ast \x3d map__36480__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36480__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar or__5025__auto__ \x3d (function (){var fexpr__36483 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),null,new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),null], null), null);\nreturn (fexpr__36483.cljs$core$IFn$_invoke$arity$1 ? fexpr__36483.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36483.call(null,op));\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d (function (){var fexpr__36487 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),null,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),null,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),null], null), null);\nreturn (fexpr__36487.cljs$core$IFn$_invoke$arity$1 ? fexpr__36487.cljs$core$IFn$_invoke$arity$1(op) : fexpr__36487.call(null,op));\n})();\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.every_QMARK_(cljs.analyzer.constant_value_QMARK_,cljs.analyzer.ast_children(ast));\n} else {\nreturn and__5023__auto__;\n}\n}\n});\ncljs.analyzer.const_expr__GT_constant_value \x3d (function cljs$analyzer$const_expr__GT_constant_value(p__36496){\nvar map__36497 \x3d p__36496;\nvar map__36497__$1 \x3d cljs.core.__destructure_map(map__36497);\nvar e \x3d map__36497__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36497__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__36500 \x3d op;\nvar G__36500__$1 \x3d (((G__36500 instanceof cljs.core.Keyword))?G__36500.fqn:null);\nswitch (G__36500__$1) {\ncase \x22quote\x22:\nvar G__36506 \x3d new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291).cljs$core$IFn$_invoke$arity$1(e);\nreturn (cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.const_expr__GT_constant_value.cljs$core$IFn$_invoke$arity$1(G__36506) : cljs.analyzer.const_expr__GT_constant_value.call(null,G__36506));\n\nbreak;\ncase \x22const\x22:\nreturn new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612).cljs$core$IFn$_invoke$arity$1(e);\n\nbreak;\ncase \x22map\x22:\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698).cljs$core$IFn$_invoke$arity$1(e)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22set\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ncase \x22vector\x22:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.const_expr__GT_constant_value,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938).cljs$core$IFn$_invoke$arity$1(e)));\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__36500__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.earmuffed_QMARK_ \x3d (function cljs$analyzer$earmuffed_QMARK_(sym){\nvar s \x3d cljs.core.name(sym);\nreturn (((((s).length) \x3e (2))) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22*\x22)) \x26\x26 (clojure.string.ends_with_QMARK_(s,\x22*\x22)))));\n});\ncljs.analyzer.core_ns_QMARK_ \x3d (function cljs$analyzer$core_ns_QMARK_(ns_sym){\nvar s \x3d cljs.core.name(ns_sym);\nreturn ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null),ns_sym)) \x26\x26 (((clojure.string.starts_with_QMARK_(s,\x22cljs.\x22)) || (clojure.string.starts_with_QMARK_(s,\x22clojure.\x22)))));\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),(function (op,env,form,_,___$1){\nif((cljs.core.count(form) \x3e (4))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n} else {\n}\n\nvar pfn \x3d (function() {\nvar G__38791 \x3d null;\nvar G__38791__2 \x3d (function (___$2,sym){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null);\n});\nvar G__38791__3 \x3d (function (___$2,sym,init){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nvar G__38791__4 \x3d (function (___$2,sym,doc,init){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init], null);\n});\nG__38791 \x3d function(___$2,sym,doc,init){\nswitch(arguments.length){\ncase 2:\nreturn G__38791__2.call(this,___$2,sym);\ncase 3:\nreturn G__38791__3.call(this,___$2,sym,doc);\ncase 4:\nreturn G__38791__4.call(this,___$2,sym,doc,init);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__38791.cljs$core$IFn$_invoke$arity$2 \x3d G__38791__2;\nG__38791.cljs$core$IFn$_invoke$arity$3 \x3d G__38791__3;\nG__38791.cljs$core$IFn$_invoke$arity$4 \x3d G__38791__4;\nreturn G__38791;\n})()\n;\nvar args \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(pfn,form);\nvar sym \x3d new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305).cljs$core$IFn$_invoke$arity$1(args);\nvar const_QMARK_ \x3d new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar sym_meta \x3d cljs.core.meta(sym);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar protocol \x3d cljs.analyzer.valid_proto(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym)));\nvar dynamic \x3d new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym));\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar clash_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27));\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (!(cljs.core.symbol_identical_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns),ns_name)));\n} else {\nreturn and__5023__auto__;\n}\n})())?(function(){throw cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t def ns-qualified name in namespace \x22,sym_ns].join(\x27\x27))})():(((!((sym_ns \x3d\x3d null))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)):sym\n));\nif((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns], null)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)].join(\x27\x27)),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),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(sym__$1))], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t redefine a constant\x22);\n} else {\n}\n\nvar temp__5829__auto___38792 \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif((temp__5829__auto___38792 \x3d\x3d null)){\n} else {\nvar doc_38793 \x3d temp__5829__auto___38792;\nif(typeof doc_38793 \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Too many arguments to def\x22);\n}\n}\n\nif(((cljs.core.not(dynamic)) \x26\x26 (((cljs.analyzer.earmuffed_QMARK_(sym__$1)) \x26\x26 ((!(cljs.analyzer.core_ns_QMARK_(ns_name)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22non-dynamic-earmuffed-var\x22,\x22non-dynamic-earmuffed-var\x22,-202005643),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym__$1)], null));\n} else {\n}\n\nvar temp__5829__auto___38794 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38794 \x3d\x3d null)){\n} else {\nvar v_38795 \x3d temp__5829__auto___38794;\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not(cljs.analyzer._STAR_allow_redef_STAR_);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795));\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta));\nif(and__5023__auto____$2){\nvar and__5023__auto____$3 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nif(cljs.core.truth_(and__5023__auto____$3)){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.analyzer._STAR_file_defs_STAR_),sym__$1);\n} else {\nreturn and__5023__auto____$3;\n}\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef-in-file\x22,\x22redef-in-file\x22,-476530788),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(v_38795)], null));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795);\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22declared-arglists-mismatch\x22,\x22declared-arglists-mismatch\x22,-496878383),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(v_38795)),new cljs.core.Keyword(null,\x22defined\x22,\x22defined\x22,-1805032318),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null));\n} else {\n}\n}\n\nvar env__$1 \x3d ((((((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))) \x26\x26 (cljs.analyzer.core_name_QMARK_(env,sym__$1)))) || ((!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),sym__$1], null)) \x3d\x3d null))))))?(function (){var ev \x3d cljs.analyzer.resolve_existing_var(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),cljs.core.with_meta(sym__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nvar conj_to_set \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);\nif(cljs.analyzer.public_name_QMARK_(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),sym__$1)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22redef\x22,\x22redef\x22,1032704258),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(ev),new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name], null));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym__$1], 0));\n\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),conj_to_set,sym__$1);\n})():env);\nvar var_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),sym__$1));\nvar init_expr \x3d ((cljs.core.contains_QMARK_(args,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)))?(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),sym_meta,((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1)], 0)));\n\nvar _STAR_recur_frames_STAR__orig_val__36583 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36584 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36584);\n\ntry{var _STAR_allow_ns_STAR__orig_val__36585 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36586 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36586);\n\ntry{var G__36587 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36588 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nvar G__36589 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(G__36587,G__36588,G__36589) : cljs.analyzer.analyze.call(null,G__36587,G__36588,G__36589));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36585);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36583);\n}})()\n:null);\nvar fn_var_QMARK_ \x3d (((!((init_expr \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204))));\nvar tag__$1 \x3d ((fn_var_QMARK_)?(function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990).cljs$core$IFn$_invoke$arity$1(init_expr);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d tag;\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347).cljs$core$IFn$_invoke$arity$1(init_expr);\n}\n}\n})():(cljs.core.truth_(tag)?tag:(cljs.core.truth_(dynamic)?cljs.analyzer.impl.ANY_SYM:new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr)\n)));\nvar export_as \x3d (function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar export_val \x3d temp__5825__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(true,export_val)){\nreturn var_name;\n} else {\nreturn export_val;\n}\n} else {\nreturn null;\n}\n})();\nvar doc \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\n}\n})();\nvar temp__5829__auto___38800 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null));\nif((temp__5829__auto___38800 \x3d\x3d null)){\n} else {\nvar v_38801 \x3d temp__5829__auto___38800;\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1)))) \x26\x26 (((new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(v_38801) \x3d\x3d\x3d true) \x26\x26 ((!(fn_var_QMARK_))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),env__$1,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-name\x22,\x22ns-name\x22,-2077346323),ns_name,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym__$1], null));\n} else {\n}\n}\n\nif((((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null)) \x3d\x3d null)) || (cljs.core.not(new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta))))){\nif(cljs.core.truth_(cljs.analyzer._STAR_file_defs_STAR_)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_file_defs_STAR_,cljs.core.conj,sym__$1);\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns_name,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym__$1], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name], null),(function (){var G__36605 \x3d sym_meta;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36605,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),true);\n} else {\nreturn G__36605;\n}\n})(),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(sym_meta,new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878)], null),(function (f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$1)),new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null))){\nreturn \x22cljs/core.cljs\x22;\n} else {\nreturn f;\n}\n}))], null),(cljs.core.truth_(doc)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc], null):null),(cljs.core.truth_(const_QMARK_)?(function (){var const_expr \x3d (function (){var _STAR_passes_STAR__orig_val__36606 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__36607 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__36607);\n\ntry{var G__36610 \x3d env__$1;\nvar G__36611 \x3d new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434).cljs$core$IFn$_invoke$arity$1(args);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36610,G__36611) : cljs.analyzer.analyze.call(null,G__36610,G__36611));\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__36606);\n}})();\nif(cljs.core.truth_(cljs.analyzer.constant_value_QMARK_(const_expr))){\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})():null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(var_name,env__$1),(cljs.core.truth_(protocol)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118),protocol], null):null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(sym__$1));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar protocol_symbol \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22protocol-symbol\x22,\x22protocol-symbol\x22,1279552198),protocol_symbol,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22protocol-info\x22,\x22protocol-info\x22,1471745843).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(protocol_symbol)),new cljs.core.Keyword(null,\x22impls\x22,\x22impls\x22,-1314014853),cljs.core.PersistentHashSet.EMPTY], null);\n} else {\nreturn null;\n}\n})(),((fn_var_QMARK_)?(function (){var params \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36545_SHARP_){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(p1__36545_SHARP_)));\n}),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),cljs.core.not(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(sym_meta)),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556).cljs$core$IFn$_invoke$arity$1(init_expr)], null),(function (){var temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),params,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta),new cljs.core.Keyword(null,\x22arglists-meta\x22,\x22arglists-meta\x22,1944829838),cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta)))], null);\n} else {\nvar top_fn_meta \x3d temp__5827__auto__;\nreturn top_fn_meta;\n}\n})()], 0));\n})():null),(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta);\n} else {\nreturn and__5023__auto__;\n}\n})())?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22declared\x22,\x22declared\x22,92336021),true,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.second(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(sym_meta))], null):null),((((fn_var_QMARK_) \x26\x26 ((!((tag__$1 \x3d\x3d null))))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):(cljs.core.truth_(tag__$1)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null):null))], 0)));\n} else {\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns_name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),var_name,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36631 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)),new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377),true);\nvar G__36633 \x3d sym__$1;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36631,G__36633) : cljs.analyzer.analyze.call(null,G__36631,G__36633));\n})(),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),doc,new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516).cljs$core$IFn$_invoke$arity$1(sym_meta)], null),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar goog_type \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22goog-define\x22,\x22goog-define\x22,-1048305441),goog_type], null);\n} else {\nreturn null;\n}\n})(),((new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env__$1) \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22var-ast\x22,\x22var-ast\x22,1200379319),cljs.analyzer.var_ast(env__$1,sym__$1)], null):null),(function (){var temp__5829__auto__ \x3d new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877).cljs$core$IFn$_invoke$arity$1(sym_meta);\nif((temp__5829__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar test \x3d temp__5829__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877),(function (){var G__36638 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36639 \x3d test;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36638,G__36639) : cljs.analyzer.analyze.call(null,G__36638,G__36639));\n})()], null);\n}\n})(),(((!((tag__$1 \x3d\x3d null))))?((fn_var_QMARK_)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag__$1], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1], null)):null),((dynamic \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22dynamic\x22,\x22dynamic\x22,704819571),true], null):null),(((!((export_as \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22export\x22,\x22export\x22,214356590),export_as], null):null),(((!((init_expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),init_expr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797)], null)], null))], 0));\n}));\ncljs.analyzer.analyze_fn_method_param \x3d (function cljs$analyzer$analyze_fn_method_param(env){\nreturn (function (p__36646,p__36647){\nvar vec__36648 \x3d p__36646;\nvar locals \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36648,(1),null);\nvar vec__36651 \x3d p__36647;\nvar arg_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36651,(1),null);\nif(cljs.core.truth_(cljs.core.namespace(name))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Can\x27t use qualified name as parameter: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar column \x3d cljs.analyzer.get_col(name,env);\nvar nmeta \x3d cljs.core.meta(name);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(nmeta);\nvar shadow__$1 \x3d (((!((locals \x3d\x3d null))))?cljs.analyzer.handle_symbol_local(name,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(name) : locals.call(null,name))):null);\nvar env__$1 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null)], 0));\nvar param \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,column,line,arg_id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,tag,shadow__$1,new cljs.core.Keyword(null,\x22arg\x22,\x22arg\x22,-1747261837)]);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name,param),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(params,param)], null);\n});\n});\ncljs.analyzer.analyze_fn_method_body \x3d (function cljs$analyzer$analyze_fn_method_body(env,form,recur_frames){\nvar _STAR_recur_frames_STAR__orig_val__36674 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36675 \x3d recur_frames;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36675);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze.call(null,env,form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36674);\n}});\ncljs.analyzer.analyze_fn_method \x3d (function cljs$analyzer$analyze_fn_method(env,locals,form,type,analyze_body_QMARK_){\nvar param_names \x3d cljs.core.first(form);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar param_names__$1 \x3d cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22], null), null),param_names));\nvar body \x3d cljs.core.next(form);\nvar step \x3d cljs.analyzer.analyze_fn_method_param(env);\nvar step_init \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [locals,cljs.core.PersistentVector.EMPTY], null);\nvar vec__36681 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,step_init,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,param_names__$1));\nvar locals__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(0),null);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36681,(1),null);\nvar params_SINGLEQUOTE_ \x3d ((variadic \x3d\x3d\x3d true)?cljs.core.butlast(params):params);\nvar fixed_arity \x3d cljs.core.count(params_SINGLEQUOTE_);\nvar recur_frame \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(env),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY)], null);\nvar recur_frames \x3d cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_);\nvar body_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals__$1], 0));\nvar body_form \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),body)));\nvar expr \x3d (cljs.core.truth_(analyze_body_QMARK_)?cljs.analyzer.analyze_fn_method_body(body_env,body_form,recur_frames):null);\nvar recurs \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(recur_frame));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22fn-method\x22,\x22fn-method\x22,236100839),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),variadic,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),params,new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),fixed_arity,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22recurs\x22,\x22recurs\x22,-1959309309),recurs], null),(((!((expr \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null):new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235)], null)], null))], 0));\n});\ncljs.analyzer.fn_name_var \x3d (function cljs$analyzer$fn_name_var(env,locals,name){\nif((!((name \x3d\x3d null)))){\nvar ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,cljs.core.get.cljs$core$IFn$_invoke$arity$2(locals,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar fn_scope \x3d new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),name,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22fn-self-name\x22,\x22fn-self-name\x22,1461143531),true,new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859),fn_scope,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null)], null);\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nvar ret_tag \x3d (((!((tag \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),tag], null):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([name_var,ret_tag], 0));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_fn_methods_pass2_STAR_ \x3d (function cljs$analyzer$analyze_fn_methods_pass2_STAR_(menv,locals,type,meths){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36696_SHARP_){\nreturn cljs.analyzer.analyze_fn_method(menv,locals,p1__36696_SHARP_,type,true);\n}),meths);\n});\ncljs.analyzer.analyze_fn_methods_pass2 \x3d (function cljs$analyzer$analyze_fn_methods_pass2(menv,locals,type,meths){\nreturn cljs.analyzer.analyze_fn_methods_pass2_STAR_(menv,locals,type,meths);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),(function (op,env,p__36698,name,_){\nvar vec__36699 \x3d p__36698;\nvar seq__36700 \x3d cljs.core.seq(vec__36699);\nvar first__36701 \x3d cljs.core.first(seq__36700);\nvar seq__36700__$1 \x3d cljs.core.next(seq__36700);\nvar ___$1 \x3d first__36701;\nvar args \x3d seq__36700__$1;\nvar form \x3d vec__36699;\nvar named_fn_QMARK_ \x3d (cljs.core.first(args) instanceof cljs.core.Symbol);\nvar vec__36702 \x3d ((named_fn_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args),cljs.core.next(args)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,cljs.core.seq(args)], null));\nvar name__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(0),null);\nvar meths \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36702,(1),null);\nvar meths__$1 \x3d ((cljs.core.vector_QMARK_(cljs.core.first(meths)))?(new cljs.core.List(null,meths,null,(1),null)):meths);\nvar locals \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nvar name_var \x3d cljs.analyzer.fn_name_var(env,locals,name__$1);\nvar env__$1 \x3d (((!((name__$1 \x3d\x3d null))))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn-scope\x22,\x22fn-scope\x22,-865664859)], null),cljs.core.conj,name_var):env);\nvar locals__$1 \x3d (((((!((locals \x3d\x3d null)))) \x26\x26 (named_fn_QMARK_)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(locals,name__$1,name_var):locals);\nvar form_meta \x3d cljs.core.meta(form);\nvar type \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_impl \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar proto_inline \x3d new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar menv \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((function (){var G__36705 \x3d env__$1;\nif((cljs.core.count(meths__$1) \x3e (1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36705,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\n} else {\nreturn G__36705;\n}\n})(),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),proto_impl,new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),proto_inline], null)], 0));\nvar methods$ \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36697_SHARP_){\nvar _STAR_allow_ns_STAR__orig_val__36706 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36707 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36707);\n\ntry{return cljs.analyzer.analyze_fn_method(menv,locals__$1,p1__36697_SHARP_,type,(name__$1 \x3d\x3d null));\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36706);\n}}),meths__$1);\nvar mfa \x3d cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869)),cljs.core.max,(0),methods$);\nvar variadic \x3d cljs.core.boolean$(cljs.core.some(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),methods$));\nvar locals__$2 \x3d ((named_fn_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(locals__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name__$1], null),cljs.core.assoc,new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([variadic,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),mfa,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),methods$)], 0)):locals__$1);\nvar methods$__$1 \x3d (((!((name__$1 \x3d\x3d null))))?(function (){var _STAR_allow_ns_STAR__orig_val__36708 \x3d cljs.analyzer._STAR_allow_ns_STAR_;\nvar _STAR_allow_ns_STAR__temp_val__36709 \x3d false;\n(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__temp_val__36709);\n\ntry{return cljs.analyzer.analyze_fn_methods_pass2(menv,locals__$2,type,meths__$1);\n}finally {(cljs.analyzer._STAR_allow_ns_STAR_ \x3d _STAR_allow_ns_STAR__orig_val__36708);\n}})():cljs.core.vec(methods$));\nvar form__$1 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(form,cljs.core.dissoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-impl\x22,\x22cljs.analyzer/protocol-impl\x22,-1523935409),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22protocol-inline\x22,\x22cljs.analyzer/protocol-inline\x22,-1611519026),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22type\x22,\x22cljs.analyzer/type\x22,478749742));\nvar js_doc \x3d ((variadic \x3d\x3d\x3d true)?\x22@param {...*} var_args\x22:null);\nvar children \x3d (((!((name_var \x3d\x3d null))))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null));\nvar inferred_ret_tag \x3d (function (){var inferred_tags \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.infer_tag,env__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),methods$__$1));\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,inferred_tags))){\nreturn cljs.core.first(inferred_tags);\n} else {\nreturn null;\n}\n})();\nvar ast \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22protocol-inline\x22,\x22protocol-inline\x22,1550487556),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22loop-lets\x22,\x22loop-lets\x22,2036794185),new cljs.core.Keyword(null,\x22inferred-ret-tag\x22,\x22inferred-ret-tag\x22,798934347),new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),new cljs.core.Keyword(null,\x22recur-frames\x22,\x22recur-frames\x22,-307205196),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),new cljs.core.Keyword(null,\x22jsdoc\x22,\x22jsdoc\x22,1745183516)],[children,proto_inline,name_var,cljs.analyzer._STAR_loop_lets_STAR_,inferred_ret_tag,proto_impl,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),env__$1,variadic,methods$__$1,cljs.analyzer._STAR_recur_frames_STAR_,mfa,form__$1,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246).cljs$core$IFn$_invoke$arity$1(env__$1),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_doc], null)]),(((!((name_var \x3d\x3d null))))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),name_var], null):null)], 0));\nvar variadic_methods_38806 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)),cljs.core.take.cljs$core$IFn$_invoke$arity$1((1))),methods$__$1);\nvar variadic_params_38807 \x3d (((cljs.core.count(variadic_methods_38806) \x3e (0)))?cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(variadic_methods_38806,(0)))):(0));\nvar param_counts_38808 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.count,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235))),methods$__$1);\nif(((1) \x3c cljs.core.count(variadic_methods_38806))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22multiple-variadic-overloads\x22,\x22multiple-variadic-overloads\x22,1110059837),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif((!((((variadic_params_38807 \x3d\x3d\x3d (0))) || ((variadic_params_38807 \x3d\x3d\x3d ((1) + mfa))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22variadic-max-arity\x22,\x22variadic-max-arity\x22,-14288402),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(param_counts_38808),param_counts_38808)){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22overload-arity\x22,\x22overload-arity\x22,823206044),env__$1,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_var], null));\n} else {\n}\n\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(ast) : cljs.analyzer.analyze_wrap_meta.call(null,ast));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),(function (op,env,p__36710,name,_){\nvar vec__36711 \x3d p__36710;\nvar seq__36712 \x3d cljs.core.seq(vec__36711);\nvar first__36713 \x3d cljs.core.first(seq__36712);\nvar seq__36712__$1 \x3d cljs.core.next(seq__36712);\nvar ___$1 \x3d first__36713;\nvar first__36713__$1 \x3d cljs.core.first(seq__36712__$1);\nvar seq__36712__$2 \x3d cljs.core.next(seq__36712__$1);\nvar bindings \x3d first__36713__$1;\nvar exprs \x3d seq__36712__$2;\nvar form \x3d vec__36711;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar n__GT_fexpr \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.second),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings)));\nvar names \x3d cljs.core.keys(n__GT_fexpr);\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar vec__36714 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36720,n){\nvar vec__36721 \x3d p__36720;\nvar map__36724 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(0),null);\nvar map__36724__$1 \x3d cljs.core.__destructure_map(map__36724);\nvar env__$1 \x3d map__36724__$1;\nvar locals \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36724__$1,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783));\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36721,(1),null);\nvar ret_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(n));\nvar fexpr \x3d (function (){var _STAR_cljs_warnings_STAR__orig_val__36725 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__36726 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__36726);\n\ntry{var G__36727 \x3d env__$1;\nvar G__36728 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(n) : n__GT_fexpr.call(null,n));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36727,G__36728) : cljs.analyzer.analyze.call(null,G__36727,G__36728));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__36725);\n}})();\nvar be \x3d (function (){var G__36729 \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[n,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),env__$1,cljs.analyzer.get_col(n,env__$1),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),cljs.analyzer.get_line(n,env__$1),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),n,true,cljs.analyzer.handle_symbol_local(n,(locals.cljs$core$IFn$_invoke$arity$1 ? locals.cljs$core$IFn$_invoke$arity$1(n) : locals.call(null,n))),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354)]);\nif(cljs.core.truth_(ret_tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36729,new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990),ret_tag);\n} else {\nreturn G__36729;\n}\n})();\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),n], null),be),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [env,cljs.core.PersistentVector.EMPTY], null),names);\nvar meth_env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(0),null);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36714,(1),null);\nvar meth_env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar vec__36717 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__36730,p__36731){\nvar vec__36732 \x3d p__36730;\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36732,(1),null);\nvar map__36735 \x3d p__36731;\nvar map__36735__$1 \x3d cljs.core.__destructure_map(map__36735);\nvar be \x3d map__36735__$1;\nvar name__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar shadow__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__36735__$1,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803));\nvar env__$1 \x3d cljs.core.assoc_in(meth_env__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),shadow__$1);\nvar fexpr \x3d (function (){var G__36737 \x3d env__$1;\nvar G__36738 \x3d (n__GT_fexpr.cljs$core$IFn$_invoke$arity$1 ? n__GT_fexpr.cljs$core$IFn$_invoke$arity$1(name__$1) : n__GT_fexpr.call(null,name__$1));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36737,G__36738) : cljs.analyzer.analyze.call(null,G__36737,G__36738));\n})();\nvar be_SINGLEQUOTE_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(be,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),fexpr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(fexpr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(fexpr)),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)], 0));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name__$1], null),be_SINGLEQUOTE_),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes__$1,be_SINGLEQUOTE_)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [meth_env__$1,cljs.core.PersistentVector.EMPTY], null),bes);\nvar meth_env__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(0),null);\nvar bes__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36717,(1),null);\nvar expr \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__36743 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meth_env__$2,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36744 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36743,G__36744) : cljs.analyzer.analyze.call(null,G__36743,G__36744));\n})(),new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22letfn\x22,\x22letfn\x22,-2121022354),new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes__$1,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),expr,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null)], null);\n}));\ncljs.analyzer.analyze_do_statements_STAR_ \x3d (function cljs$analyzer$analyze_do_statements_STAR_(env,exprs){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__36747_SHARP_){\nvar G__36751 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863));\nvar G__36752 \x3d p1__36747_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36751,G__36752) : cljs.analyzer.analyze.call(null,G__36751,G__36752));\n}),cljs.core.butlast(exprs));\n});\ncljs.analyzer.analyze_do_statements \x3d (function cljs$analyzer$analyze_do_statements(env,exprs){\nvar _STAR_recur_frames_STAR__orig_val__36758 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36759 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36759);\n\ntry{return cljs.analyzer.analyze_do_statements_STAR_(env,exprs);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36758);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),(function (op,env,p__36763,_,___$1){\nvar vec__36765 \x3d p__36763;\nvar seq__36766 \x3d cljs.core.seq(vec__36765);\nvar first__36767 \x3d cljs.core.first(seq__36766);\nvar seq__36766__$1 \x3d cljs.core.next(seq__36766);\nvar ___$2 \x3d first__36767;\nvar exprs \x3d seq__36766__$1;\nvar form \x3d vec__36765;\nvar statements \x3d cljs.analyzer.analyze_do_statements(env,exprs);\nif((cljs.core.count(exprs) \x3c\x3d (1))){\nvar ret \x3d (function (){var G__36777 \x3d env;\nvar G__36778 \x3d cljs.core.first(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36777,G__36778) : cljs.analyzer.analyze.call(null,G__36777,G__36778));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n} else {\nvar ret_env \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22statement\x22,\x22statement\x22,-32780863)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105)));\nvar ret \x3d (function (){var G__36781 \x3d ret_env;\nvar G__36782 \x3d cljs.core.last(exprs);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36781,G__36782) : cljs.analyzer.analyze.call(null,G__36781,G__36782));\n})();\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)], null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22do\x22,\x22do\x22,46310725),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22statements\x22,\x22statements\x22,600349855),statements,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\n}));\ncljs.analyzer.analyze_let_binding_init \x3d (function cljs$analyzer$analyze_let_binding_init(env,init,loop_lets){\nvar _STAR_loop_lets_STAR__orig_val__36793 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_loop_lets_STAR__temp_val__36794 \x3d loop_lets;\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36794);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,init) : cljs.analyzer.analyze.call(null,env,init));\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36793);\n}});\ncljs.analyzer.get_let_tag \x3d (function cljs$analyzer$get_let_tag(name,init_expr){\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar temp__5827__auto____$1 \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(init_expr);\nif((temp__5827__auto____$1 \x3d\x3d null)){\nreturn new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(init_expr));\n} else {\nvar tag \x3d temp__5827__auto____$1;\nreturn tag;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.analyze_let_bindings_STAR_ \x3d (function cljs$analyzer$analyze_let_bindings_STAR_(encl_env,bindings,op){\nvar bes \x3d cljs.core.PersistentVector.EMPTY;\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(encl_env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar bindings__$1 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings));\nwhile(true){\nvar temp__5827__auto__ \x3d cljs.core.first(bindings__$1);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [bes,env], null);\n} else {\nvar vec__36847 \x3d temp__5827__auto__;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36847,(1),null);\nif((((!((cljs.core.namespace(name) \x3d\x3d null)))) || (goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22.\x22)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,[\x22Invalid local name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27));\n} else {\n}\n\nvar init_expr \x3d cljs.analyzer.analyze_let_binding_init(env,init,cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_));\nvar line \x3d cljs.analyzer.get_line(name,env);\nvar col \x3d cljs.analyzer.get_col(name,env);\nvar shadow__$1 \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.handle_symbol_local(name,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,\x22locals\x22,\x22locals\x22,535295783),name], null)));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn 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,\x22js-globals\x22,\x22js-globals\x22,1670394727),name], null));\n}\n})();\nvar be \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22binding-form?\x22,\x22binding-form?\x22,1728940169),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null),init_expr,name,true,new cljs.core.Keyword(null,\x22binding\x22,\x22binding\x22,539932593),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col], null),col,line,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name,new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),shadow__$1], null),name,cljs.analyzer.get_let_tag(name,init_expr),shadow__$1,op]);\nvar be__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(init_expr)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([be,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730),true,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(((function (bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__){\nreturn (function (p1__36808_SHARP_){\nreturn cljs.core.select_keys(p1__36808_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null));\n});})(bes,env,bindings__$1,init_expr,line,col,shadow__$1,be,vec__36847,name,init,temp__5827__auto__))\n,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543),new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543).cljs$core$IFn$_invoke$arity$1(init_expr),new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(init_expr))], null)], 0)):be);\nvar G__38812 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bes,be__$1);\nvar G__38813 \x3d cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),name], null),be__$1);\nvar G__38814 \x3d cljs.core.next(bindings__$1);\nbes \x3d G__38812;\nenv \x3d G__38813;\nbindings__$1 \x3d G__38814;\ncontinue;\n}\nbreak;\n}\n});\ncljs.analyzer.analyze_let_bindings \x3d (function cljs$analyzer$analyze_let_bindings(encl_env,bindings,op){\nvar _STAR_recur_frames_STAR__orig_val__36873 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36874 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36874);\n\ntry{return cljs.analyzer.analyze_let_bindings_STAR_(encl_env,bindings,op);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36873);\n}});\ncljs.analyzer.analyze_let_body_STAR_ \x3d (function cljs$analyzer$analyze_let_body_STAR_(env,context,exprs){\nvar G__36876 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),context))?new cljs.core.Keyword(null,\x22return\x22,\x22return\x22,-1891502105):context));\nvar G__36877 \x3d 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,\x22do\x22,\x22do\x22,1686842252,null),null,(1),null)),exprs)));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36876,G__36877) : cljs.analyzer.analyze.call(null,G__36876,G__36877));\n});\ncljs.analyzer.analyze_let_body \x3d (function cljs$analyzer$analyze_let_body(env,context,exprs,recur_frames,loop_lets){\nvar _STAR_recur_frames_STAR__orig_val__36888 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_loop_lets_STAR__orig_val__36889 \x3d cljs.analyzer._STAR_loop_lets_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36890 \x3d recur_frames;\nvar _STAR_loop_lets_STAR__temp_val__36891 \x3d loop_lets;\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36890);\n\n(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__temp_val__36891);\n\ntry{return cljs.analyzer.analyze_let_body_STAR_(env,context,exprs);\n}finally {(cljs.analyzer._STAR_loop_lets_STAR_ \x3d _STAR_loop_lets_STAR__orig_val__36889);\n\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36888);\n}});\ncljs.analyzer.analyze_let \x3d (function cljs$analyzer$analyze_let(encl_env,p__36903,is_loop,widened_tags){\nwhile(true){\nvar vec__36905 \x3d p__36903;\nvar seq__36906 \x3d cljs.core.seq(vec__36905);\nvar first__36907 \x3d cljs.core.first(seq__36906);\nvar seq__36906__$1 \x3d cljs.core.next(seq__36906);\nvar _ \x3d first__36907;\nvar first__36907__$1 \x3d cljs.core.first(seq__36906__$1);\nvar seq__36906__$2 \x3d cljs.core.next(seq__36906__$1);\nvar bindings \x3d first__36907__$1;\nvar exprs \x3d seq__36906__$2;\nvar form \x3d vec__36905;\nif(((cljs.core.vector_QMARK_(bindings)) \x26\x26 (cljs.core.even_QMARK_(cljs.core.count(bindings))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(encl_env,\x22bindings must be vector of even number of elements\x22);\n}\n\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(encl_env);\nvar op \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849):new cljs.core.Keyword(null,\x22let\x22,\x22let\x22,-1282412701));\nvar bindings__$1 \x3d (cljs.core.truth_(widened_tags)?cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form){\nreturn (function (p__36918,widened_tag){\nvar vec__36919 \x3d p__36918;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(0),null);\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36919,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),widened_tag),init], null);\n});})(encl_env,p__36903,is_loop,widened_tags,context,op,vec__36905,seq__36906,first__36907,seq__36906__$1,_,first__36907__$1,seq__36906__$2,bindings,exprs,form))\n,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings),widened_tags], 0))):bindings);\nvar vec__36909 \x3d cljs.analyzer.analyze_let_bindings((function (){var G__36927 \x3d encl_env;\nif(is_loop \x3d\x3d\x3d true){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__36927,new cljs.core.Keyword(null,\x22in-loop\x22,\x22in-loop\x22,-187298246),true);\n} else {\nreturn G__36927;\n}\n})(),bindings__$1,op);\nvar bes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(0),null);\nvar env \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__36909,(1),null);\nvar recur_frame \x3d ((is_loop \x3d\x3d\x3d true)?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes,new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null),new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),bes))], null):null);\nvar recur_frames \x3d (cljs.core.truth_(recur_frame)?cljs.core.cons(recur_frame,cljs.analyzer._STAR_recur_frames_STAR_):cljs.analyzer._STAR_recur_frames_STAR_);\nvar loop_lets \x3d ((is_loop \x3d\x3d\x3d true)?cljs.analyzer._STAR_loop_lets_STAR_:(((!((cljs.analyzer._STAR_loop_lets_STAR_ \x3d\x3d null))))?cljs.core.cons(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),bes], null),cljs.analyzer._STAR_loop_lets_STAR_):null));\nvar warn_acc \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(widened_tags);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nvar expr \x3d (cljs.core.truth_(warn_acc)?(function (){var _STAR_cljs_warning_handlers_STAR__orig_val__36940 \x3d cljs.analyzer._STAR_cljs_warning_handlers_STAR_;\nvar _STAR_cljs_warning_handlers_STAR__temp_val__36941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.accumulating_warning_handler(warn_acc)], null);\n(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__temp_val__36941);\n\ntry{return cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets);\n}finally {(cljs.analyzer._STAR_cljs_warning_handlers_STAR_ \x3d _STAR_cljs_warning_handlers_STAR__orig_val__36940);\n}})():cljs.analyzer.analyze_let_body(env,context,exprs,recur_frames,loop_lets));\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null);\nvar nil__GT_any \x3d cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d is_loop;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.not(widened_tags)) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(nil__GT_any,cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame))),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(nil__GT_any,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),bes))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar G__38819 \x3d encl_env;\nvar G__38820 \x3d form;\nvar G__38821 \x3d is_loop;\nvar G__38822 \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(recur_frame));\nencl_env \x3d G__38819;\np__36903 \x3d G__38820;\nis_loop \x3d G__38821;\nwidened_tags \x3d G__38822;\ncontinue;\n} else {\nif(cljs.core.truth_(warn_acc)){\ncljs.analyzer.replay_accumulated_warnings(warn_acc);\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),encl_env,new cljs.core.Keyword(null,\x22bindings\x22,\x22bindings\x22,1271397192),bes,new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(expr,new cljs.core.Keyword(null,\x22body?\x22,\x22body?\x22,-1333761917),true),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children], null);\n}\nbreak;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,false,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),(function (op,encl_env,form,_,___$1){\nreturn cljs.analyzer.analyze_let(encl_env,form,true,null);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),(function (op,env,p__36968,_,___$1){\nvar vec__36973 \x3d p__36968;\nvar seq__36974 \x3d cljs.core.seq(vec__36973);\nvar first__36975 \x3d cljs.core.first(seq__36974);\nvar seq__36974__$1 \x3d cljs.core.next(seq__36974);\nvar ___$2 \x3d first__36975;\nvar exprs \x3d seq__36974__$1;\nvar form \x3d vec__36973;\nvar context \x3d new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113).cljs$core$IFn$_invoke$arity$1(env);\nvar frame \x3d cljs.core.first(cljs.analyzer._STAR_recur_frames_STAR_);\nvar add_implicit_target_object_QMARK_ \x3d (function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs),(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)) - (1)));\n} else {\nreturn and__5023__auto__;\n}\n})();\nvar exprs__$1 \x3d (function (){var G__36983 \x3d exprs;\nif(cljs.core.truth_(add_implicit_target_object_QMARK_)){\nreturn cljs.core.cons(null,G__36983);\n} else {\nreturn G__36983;\n}\n})();\nvar exprs__$2 \x3d (function (){var _STAR_recur_frames_STAR__orig_val__36991 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__36992 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__36992);\n\ntry{return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__36965_SHARP_){\nvar G__36995 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__36996 \x3d p1__36965_SHARP_;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__36995,G__36996) : cljs.analyzer.analyze.call(null,G__36995,G__36996));\n}),exprs__$1));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__36991);\n}})();\nif(cljs.core.truth_(frame)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t recur here\x22);\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(exprs__$2),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22recur argument count mismatch, expected: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(frame))),\x22 args, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(exprs__$2))].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22protocol-impl\x22,\x22protocol-impl\x22,2101328365).cljs$core$IFn$_invoke$arity$1(frame);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(add_implicit_target_object_QMARK_);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22protocol-impl-recur-with-target\x22,\x22protocol-impl-recur-with-target\x22,-1648321574),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(cljs.core.first(exprs__$2))], null));\n} else {\n}\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22flag\x22,\x22flag\x22,1088647881).cljs$core$IFn$_invoke$arity$1(frame),true);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tags\x22,\x22tags\x22,1771418977).cljs$core$IFn$_invoke$arity$1(frame),(function (tags){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((function (tag,expr){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22loop\x22,\x22loop\x22,-395552849),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724).cljs$core$IFn$_invoke$arity$1(expr))){\nreturn new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null);\n} else {\nreturn cljs.analyzer.add_types.cljs$core$IFn$_invoke$arity$2(tag,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr));\n}\n}),tags,exprs__$2);\n}));\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null),new cljs.core.Keyword(null,\x22frame\x22,\x22frame\x22,-1711082588),frame,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094),exprs__$2,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22exprs\x22,\x22exprs\x22,1795829094)], null)], 0));\n}));\ncljs.analyzer.analyze_const \x3d (function cljs$analyzer$analyze_const(env,form){\nvar map__37020 \x3d (function (){var G__37021 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621),true);\nvar G__37022 \x3d form;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__37021,G__37022) : cljs.analyzer.analyze.call(null,G__37021,G__37022));\n})();\nvar map__37020__$1 \x3d cljs.core.__destructure_map(map__37020);\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37020__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),(function (_,env,p__37023,___$1,___$2){\nvar vec__37024 \x3d p__37023;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37024,(1),null);\nvar form \x3d vec__37024;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Wrong number of args to quote\x22);\n} else {\n}\n\nvar expr \x3d cljs.analyzer.analyze_const(env,x);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22quote\x22,\x22quote\x22,-262615245),new cljs.core.Keyword(null,\x22literal?\x22,\x22literal?\x22,352485871),true,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n}));\ncljs.analyzer.js_prim_ctor__GT_tag \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(\x22js\x22,\x22Object\x22,\x22js/Object\x22,61215323,null),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null),new cljs.core.Symbol(\x22js\x22,\x22String\x22,\x22js/String\x22,-2070054036,null),new cljs.core.Symbol(null,\x22string\x22,\x22string\x22,-349010059,null),new cljs.core.Symbol(\x22js\x22,\x22Array\x22,\x22js/Array\x22,-423508366,null),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),new cljs.core.Symbol(\x22js\x22,\x22Number\x22,\x22js/Number\x22,-508133572,null),new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),new cljs.core.Symbol(\x22js\x22,\x22Function\x22,\x22js/Function\x22,-749892063,null),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Symbol(\x22js\x22,\x22Boolean\x22,\x22js/Boolean\x22,1661145260,null),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null);\n/**\n * Test whether a tag is a constructor for a JS primitive\n */\ncljs.analyzer.prim_ctor_QMARK_ \x3d (function cljs$analyzer$prim_ctor_QMARK_(t){\nreturn cljs.core.contains_QMARK_(cljs.analyzer.js_prim_ctor__GT_tag,t);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),(function (_,env,p__37035,___$1,___$2){\nvar vec__37036 \x3d p__37035;\nvar seq__37037 \x3d cljs.core.seq(vec__37036);\nvar first__37038 \x3d cljs.core.first(seq__37037);\nvar seq__37037__$1 \x3d cljs.core.next(seq__37037);\nvar ___$3 \x3d first__37038;\nvar first__37038__$1 \x3d cljs.core.first(seq__37037__$1);\nvar seq__37037__$2 \x3d cljs.core.next(seq__37037__$1);\nvar ctor \x3d first__37038__$1;\nvar args \x3d seq__37037__$2;\nvar form \x3d vec__37036;\nvar _STAR_recur_frames_STAR__orig_val__37039 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37040 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37040);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ctorexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,ctor) : cljs.analyzer.analyze.call(null,enve,ctor));\nvar ctor_var \x3d (cljs.core.truth_((function (){var G__37042 \x3d new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ctorexpr);\nvar fexpr__37041 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),null,new cljs.core.Keyword(null,\x22js-var\x22,\x22js-var\x22,-1177899142),null,new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),null], null), null);\nreturn (fexpr__37041.cljs$core$IFn$_invoke$arity$1 ? fexpr__37041.cljs$core$IFn$_invoke$arity$1(G__37042) : fexpr__37041.call(null,G__37042));\n})())?cljs.analyzer.resolve_existing_var(env,ctor):null);\nvar record_args \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)));\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((3),(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,null) : cljs.analyzer.analyze.call(null,enve,null))):null);\nvar argexprs \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37034_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__37034_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__37034_SHARP_));\n}),args)),record_args);\nvar known_num_fields \x3d new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024).cljs$core$IFn$_invoke$arity$1(ctor_var);\nvar argc \x3d cljs.core.count(args);\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22internal-ctor\x22,\x22internal-ctor\x22,937392560).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(ctor)))) \x26\x26 ((((!((known_num_fields \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var or__5025__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(known_num_fields,argc);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$2 \x3d new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859).cljs$core$IFn$_invoke$arity$1(ctor_var);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(((2) + known_num_fields),argc);\n} else {\nreturn and__5023__auto____$2;\n}\n}\n})())))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22ctor\x22,\x22ctor\x22,1750864802),ctor], null));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22new\x22,\x22new\x22,-2085437848),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),ctorexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),(function (){var tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nif(((cljs.analyzer.js_tag_QMARK_(tag)) \x26\x26 ((!(cljs.analyzer.prim_ctor_QMARK_(tag)))))){\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n} else {\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(ctorexpr));\nvar or__5025__auto__ \x3d (cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_prim_ctor__GT_tag.cljs$core$IFn$_invoke$arity$1(name) : cljs.analyzer.js_prim_ctor__GT_tag.call(null,name));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn name;\n}\n}\n})()], null);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37039);\n}}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),(function (_,env,p__37063,___$1,___$2){\nvar vec__37066 \x3d p__37063;\nvar ___$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(0),null);\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(1),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(2),null);\nvar alt \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37066,(3),null);\nvar form \x3d vec__37066;\nvar vec__37070 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((4),cljs.core.count(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [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,\x22.\x22,\x22.\x22,1975675962,null),null,(1),null)),(new cljs.core.List(null,target,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,val,null,(1),null))], 0)))),alt], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,val], null));\nvar target__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(0),null);\nvar val__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37070,(1),null);\nvar _STAR_recur_frames_STAR__orig_val__37081 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__37082 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__37082);\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__37088 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__37089 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__37089);\n\ntry{var enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar texpr \x3d (((target__$1 instanceof cljs.core.Symbol))?(function (){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(target__$1,new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null))) \x26\x26 (((val__$1 \x3d\x3d\x3d true) || (val__$1 \x3d\x3d\x3d false))))){\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),val__$1));\n} else {\n}\n}\n}\n\nif((!((new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),target__$1)) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! a constant\x22);\n} else {\n}\n\nvar local_38832 \x3d cljs.analyzer.handle_symbol_local(target__$1,(function (){var G__37100 \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env);\nreturn (target__$1.cljs$core$IFn$_invoke$arity$1 ? target__$1.cljs$core$IFn$_invoke$arity$1(G__37100) : target__$1.call(null,G__37100));\n})());\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (local_38832 \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(and__5023__auto__)){\nvar or__5025__auto____$1 \x3d new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nvar or__5025__auto____$2 \x3d new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(local_38832);\nif(cljs.core.truth_(or__5025__auto____$2)){\nreturn or__5025__auto____$2;\n} else {\nreturn new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(local_38832);\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n}\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Can\x27t set! local var or non-mutable field\x22);\n}\n\nreturn (cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_symbol.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze_symbol.call(null,enve,target__$1));\n})()\n:((cljs.core.seq_QMARK_(target__$1))?(function (){var texpr \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22extend-type\x22,\x22extend-type\x22,-517175606).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(target__$1)))?(function (){var _STAR_cljs_warnings_STAR__orig_val__37103 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__37104 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer._STAR_cljs_warnings_STAR_,new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),false);\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__37104);\n\ntry{return (cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__37103);\n}})():(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3(enve,target__$1,null) : cljs.analyzer.analyze_seq.call(null,enve,target__$1,null)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500).cljs$core$IFn$_invoke$arity$1(texpr))){\nreturn texpr;\n} else {\nreturn null;\n}\n})():null)\n);\nvar vexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,val__$1) : cljs.analyzer.analyze.call(null,enve,val__$1));\nif(cljs.core.seq_QMARK_(target__$1)){\nvar sym_38833 \x3d (function (){var G__37106 \x3d target__$1;\nif((G__37106 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.second(G__37106);\n}\n})();\nvar meta_38834 \x3d cljs.core.meta(sym_38833);\nvar temp__5825__auto___38835 \x3d (function (){var and__5023__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(vexpr));\nif(and__5023__auto__){\nreturn new cljs.core.Keyword(null,\x22top-fn\x22,\x22top-fn\x22,-2056129173).cljs$core$IFn$_invoke$arity$1(meta_38834);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5825__auto___38835)){\nvar info_38836 \x3d temp__5825__auto___38835;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym_38833,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(info_38836,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fixed-arity\x22,\x22fixed-arity\x22,1586445869),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762)], null)),cljs.core.select_keys(cljs.core.first(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(vexpr)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0))], 0));\n} else {\n}\n} else {\n}\n\nif(cljs.core.truth_(texpr)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22set! target must be a field or a symbol naming a var\x22);\n}\n\nif(((cljs.core.not(new cljs.core.Keyword(null,\x22def-emits-var\x22,\x22def-emits-var\x22,-1551927320).cljs$core$IFn$_invoke$arity$1(env))) \x26\x26 ((!(((function (){var fexpr__37110 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Symbol(null,\x22*warn-on-infer*\x22,\x22*warn-on-infer*\x22,1890277318,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-arrays*\x22,\x22*unchecked-arrays*\x22,-381849911,null),\x22null\x22,new cljs.core.Symbol(null,\x22*unchecked-if*\x22,\x22*unchecked-if*\x22,1542408350,null),\x22null\x22], null), null);\nreturn (fexpr__37110.cljs$core$IFn$_invoke$arity$1 ? fexpr__37110.cljs$core$IFn$_invoke$arity$1(target__$1) : fexpr__37110.call(null,target__$1));\n})() \x3d\x3d null)))))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22no-op\x22,\x22no-op\x22,-93046065)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set!\x22,\x22set!\x22,-1389817006),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),texpr,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),vexpr,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612)], null)], null);\n\n}\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__37088);\n}}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__37081);\n}}));\ncljs.analyzer.foreign_dep_QMARK_ \x3d (function cljs$analyzer$foreign_dep_QMARK_(dep){\nvar js_index \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_));\nvar temp__5827__auto__ \x3d cljs.core.find(js_index,cljs.core.name(cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep))));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn false;\n} else {\nvar vec__37121 \x3d temp__5827__auto__;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(0),null);\nvar map__37124 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37121,(1),null);\nvar map__37124__$1 \x3d cljs.core.__destructure_map(map__37124);\nvar foreign \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37124__$1,new cljs.core.Keyword(null,\x22foreign\x22,\x22foreign\x22,990521149));\nreturn foreign;\n}\n});\n/**\n * Given a lib, a namespace, deps, its dependencies, env, an analysis environment\n * and opts, compiler options - analyze all of the dependencies. Required to\n * correctly analyze usage of other namespaces.\n */\ncljs.analyzer.analyze_deps \x3d (function cljs$analyzer$analyze_deps(var_args){\nvar G__37143 \x3d arguments.length;\nswitch (G__37143) {\ncase 3:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3 \x3d (function (lib,deps,env){\nreturn cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(lib,deps,env,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4 \x3d (function (lib,deps,env,opts){\nvar compiler \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar _STAR_cljs_dep_set_STAR__orig_val__37156 \x3d cljs.analyzer._STAR_cljs_dep_set_STAR_;\nvar _STAR_cljs_dep_set_STAR__temp_val__37157 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_cljs_dep_set_STAR_,lib),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558)], null),cljs.core.conj,lib);\n(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__temp_val__37157);\n\ntry{if(cljs.core.every_QMARK_((function (p1__37130_SHARP_){\nreturn (!(cljs.core.contains_QMARK_(cljs.analyzer._STAR_cljs_dep_set_STAR_,p1__37130_SHARP_)));\n}),deps)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22Circular dependency detected, \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22 -\x3e \x22,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22dep-path\x22,\x22dep-path\x22,723826558).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some(cljs.analyzer._STAR_cljs_dep_set_STAR_,deps)))))].join(\x27\x27),\x22\\n\x22,\x22(every? (fn* [p1__37130#] (not (contains? *cljs-dep-set* p1__37130#))) deps)\x22].join(\x27\x27)));\n}\n\nvar seq__37168 \x3d cljs.core.seq(deps);\nvar chunk__37169 \x3d null;\nvar count__37170 \x3d (0);\nvar i__37171 \x3d (0);\nwhile(true){\nif((i__37171 \x3c count__37170)){\nvar dep \x3d chunk__37169.cljs$core$IIndexed$_nth$arity$2(null,i__37171);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38842 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38843__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38842,cljs.core.name(dep_38843__$1))){\nvar dep_name_38844 \x3d cljs.core.name(dep_38843__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38844,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38843__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38843__$1)], null)));\n}\n}\n\n\nvar G__38850 \x3d seq__37168;\nvar G__38851 \x3d chunk__37169;\nvar G__38852 \x3d count__37170;\nvar G__38853 \x3d (i__37171 + (1));\nseq__37168 \x3d G__38850;\nchunk__37169 \x3d G__38851;\ncount__37170 \x3d G__38852;\ni__37171 \x3d G__38853;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37168);\nif(temp__5825__auto__){\nvar seq__37168__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37168__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37168__$1);\nvar G__38854 \x3d cljs.core.chunk_rest(seq__37168__$1);\nvar G__38855 \x3d c__5548__auto__;\nvar G__38856 \x3d cljs.core.count(c__5548__auto__);\nvar G__38857 \x3d (0);\nseq__37168 \x3d G__38854;\nchunk__37169 \x3d G__38855;\ncount__37170 \x3d G__38856;\ni__37171 \x3d G__38857;\ncontinue;\n} else {\nvar dep \x3d cljs.core.first(seq__37168__$1);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (!((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(compiler,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),dep,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null)) \x3d\x3d null)));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.analyzer.node_module_dep_QMARK_(dep);\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.js_module_exists_QMARK_(cljs.core.name(dep));\n}\n}\n})())){\n} else {\nvar idx_38858 \x3d new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131).cljs$core$IFn$_invoke$arity$1(compiler);\nvar dep_38859__$1 \x3d cljs.core.first(cljs.analyzer.lib_AMPERSAND_sublib(dep));\nif(cljs.core.contains_QMARK_(idx_38858,cljs.core.name(dep_38859__$1))){\nvar dep_name_38860 \x3d cljs.core.name(dep_38859__$1);\nif(clojure.string.starts_with_QMARK_(dep_name_38860,\x22goog.\x22)){\n} else {\n}\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns\x22,\x22undeclared-ns\x22,-1589012812),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns-sym\x22,\x22ns-sym\x22,-1696101605),dep_38859__$1,new cljs.core.Keyword(null,\x22js-provide\x22,\x22js-provide\x22,1052912493),cljs.core.name(dep_38859__$1)], null)));\n}\n}\n\n\nvar G__38861 \x3d cljs.core.next(seq__37168__$1);\nvar G__38862 \x3d null;\nvar G__38863 \x3d (0);\nvar G__38864 \x3d (0);\nseq__37168 \x3d G__38861;\nchunk__37169 \x3d G__38862;\ncount__37170 \x3d G__38863;\ni__37171 \x3d G__38864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}finally {(cljs.analyzer._STAR_cljs_dep_set_STAR_ \x3d _STAR_cljs_dep_set_STAR__orig_val__37156);\n}}));\n\n(cljs.analyzer.analyze_deps.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.missing_use_QMARK_ \x3d (function cljs$analyzer$missing_use_QMARK_(lib,sym,cenv){\nvar js_lib \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cenv,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131),cljs.core.name(lib)], null));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cenv,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),lib,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150)),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22not-found\x22,\x22cljs.analyzer/not-found\x22,427220150))) \x26\x26 ((((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22group\x22,\x22group\x22,582596132)),new cljs.core.Keyword(null,\x22goog\x22,\x22goog\x22,-1711135452))))) \x26\x26 (((cljs.core.not(cljs.core.get.cljs$core$IFn$_invoke$arity$2(js_lib,new cljs.core.Keyword(null,\x22closure-lib\x22,\x22closure-lib\x22,2105917916)))) \x26\x26 ((((!(cljs.analyzer.node_module_dep_QMARK_(lib)))) \x26\x26 ((!(cljs.analyzer.dep_has_global_exports_QMARK_(lib)))))))))));\n});\ncljs.analyzer.missing_rename_QMARK_ \x3d (function cljs$analyzer$missing_rename_QMARK_(sym,cenv){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym__$1,cenv);\n});\ncljs.analyzer.missing_use_macro_QMARK_ \x3d (function cljs$analyzer$missing_use_macro_QMARK_(lib,sym){\nif((lib instanceof cljs.core.Symbol)){\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym) \x3d\x3d null)));\n} else {\nreturn null;\n}\n});\ncljs.analyzer.missing_rename_macro_QMARK_ \x3d (function cljs$analyzer$missing_rename_macro_QMARK_(sym){\nvar lib \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));\nvar the_ns \x3d cljs.core.find_macros_ns(lib);\nreturn (((the_ns \x3d\x3d null)) || ((the_ns.findInternedVar(sym__$1) \x3d\x3d null)));\n});\ncljs.analyzer.missing_uses \x3d (function cljs$analyzer$missing_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37220){\nvar vec__37221 \x3d p__37220;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37221,(1),null);\nreturn cljs.analyzer.missing_use_QMARK_(lib,sym,cenv);\n}),uses));\n});\ncljs.analyzer.missing_renames \x3d (function cljs$analyzer$missing_renames(renames,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37231){\nvar vec__37232 \x3d p__37231;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37232,(1),null);\nreturn cljs.analyzer.missing_rename_QMARK_(qualified_sym,cenv);\n}),renames));\n});\ncljs.analyzer.missing_use_macros \x3d (function cljs$analyzer$missing_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37239){\nvar vec__37240 \x3d p__37239;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37240,(1),null);\nreturn cljs.analyzer.missing_use_macro_QMARK_(lib,sym);\n}),use_macros));\n});\ncljs.analyzer.inferred_use_macros \x3d (function cljs$analyzer$inferred_use_macros(use_macros,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37246){\nvar vec__37248 \x3d p__37246;\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37248,(1),null);\nreturn cljs.core.not(cljs.analyzer.missing_use_macro_QMARK_(lib,sym));\n}),use_macros));\n});\ncljs.analyzer.inferred_rename_macros \x3d (function cljs$analyzer$inferred_rename_macros(rename_macros,env){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__37260){\nvar vec__37261 \x3d p__37260;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(0),null);\nvar qualified_sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37261,(1),null);\nreturn (!(cljs.analyzer.missing_rename_macro_QMARK_(qualified_sym)));\n}),rename_macros));\n});\ncljs.analyzer.check_uses \x3d (function cljs$analyzer$check_uses(uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37268 \x3d cljs.core.seq(uses);\nvar chunk__37270 \x3d null;\nvar count__37271 \x3d (0);\nvar i__37272 \x3d (0);\nwhile(true){\nif((i__37272 \x3c count__37271)){\nvar vec__37312 \x3d chunk__37270.cljs$core$IIndexed$_nth$arity$2(null,i__37272);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37312,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38869 \x3d seq__37268;\nvar G__38870 \x3d chunk__37270;\nvar G__38871 \x3d count__37271;\nvar G__38872 \x3d (i__37272 + (1));\nseq__37268 \x3d G__38869;\nchunk__37270 \x3d G__38870;\ncount__37271 \x3d G__38871;\ni__37272 \x3d G__38872;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__37268);\nif(temp__5825__auto__){\nvar seq__37268__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__37268__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__37268__$1);\nvar G__38873 \x3d cljs.core.chunk_rest(seq__37268__$1);\nvar G__38874 \x3d c__5548__auto__;\nvar G__38875 \x3d cljs.core.count(c__5548__auto__);\nvar G__38876 \x3d (0);\nseq__37268 \x3d G__38873;\nchunk__37270 \x3d G__38874;\ncount__37271 \x3d G__38875;\ni__37272 \x3d G__38876;\ncontinue;\n} else {\nvar vec__37333 \x3d cljs.core.first(seq__37268__$1);\nvar sym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(0),null);\nvar lib \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37333,(1),null);\nif(cljs.analyzer.missing_use_QMARK_(lib,sym,cenv)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22var\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym], null)));\n} else {\n}\n\n\nvar G__38877 \x3d cljs.core.next(seq__37268__$1);\nvar G__38878 \x3d null;\nvar G__38879 \x3d (0);\nvar G__38880 \x3d (0);\nseq__37268 \x3d G__38877;\nchunk__37270 \x3d G__38878;\ncount__37271 \x3d G__38879;\ni__37272 \x3d G__38880;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.check_use_macros \x3d (function cljs$analyzer$check_use_macros(var_args){\nvar G__37366 \x3d arguments.length;\nswitch (G__37366) {\ncase 2:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$2 \x3d (function (use_macros,env){\nreturn cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,null,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3 \x3d (function (use_macros,missing_uses,env){\nvar cenv \x3d cljs.core.deref(cljs.env._STAR_compiler_STAR_);\nvar seq__37390_38882 \x3d cljs.core.seq(use_macros);\nvar chunk__37392_38883 \x3d null;\nvar count__37393_38884 \x3d (0);\nvar i__37394_38885 \x3d (0);\nwhile(true){\nif((i__37394_38885 \x3c count__37393_38884)){\nvar vec__37477_38886 \x3d chunk__37392_38883.cljs$core$IIndexed$_nth$arity$2(null,i__37394_38885);\nvar sym_38887 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(0),null);\nvar lib_38888 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37477_38886,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38888,sym_38887))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38888,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38887], null)));\n} else {\n}\n\n\nvar G__38891 \x3d seq__37390_38882;\nvar G__38892 \x3d chunk__37392_38883;\nvar G__38893 \x3d count__37393_38884;\nvar G__38894 \x3d (i__37394_38885 + (1));\nseq__37390_38882 \x3d G__38891;\nchunk__37392_38883 \x3d G__38892;\ncount__37393_38884 \x3d G__38893;\ni__37394_38885 \x3d G__38894;\ncontinue;\n} else {\nvar temp__5825__auto___38895 \x3d cljs.core.seq(seq__37390_38882);\nif(temp__5825__auto___38895){\nvar seq__37390_38896__$1 \x3d temp__5825__auto___38895;\nif(cljs.core.chunked_seq_QMARK_(seq__37390_38896__$1)){\nvar c__5548__auto___38897 \x3d cljs.core.chunk_first(seq__37390_38896__$1);\nvar G__38898 \x3d cljs.core.chunk_rest(seq__37390_38896__$1);\nvar G__38899 \x3d c__5548__auto___38897;\nvar G__38900 \x3d cljs.core.count(c__5548__auto___38897);\nvar G__38901 \x3d (0);\nseq__37390_38882 \x3d G__38898;\nchunk__37392_38883 \x3d G__38899;\ncount__37393_38884 \x3d G__38900;\ni__37394_38885 \x3d G__38901;\ncontinue;\n} else {\nvar vec__37514_38902 \x3d cljs.core.first(seq__37390_38896__$1);\nvar sym_38903 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(0),null);\nvar lib_38904 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37514_38902,(1),null);\nif(cljs.core.truth_(cljs.analyzer.missing_use_macro_QMARK_(lib_38904,sym_38903))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22undeclared-ns-form\x22,\x22undeclared-ns-form\x22,-248024137),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22macro\x22,new cljs.core.Keyword(null,\x22lib\x22,\x22lib\x22,191808726),lib_38904,new cljs.core.Keyword(null,\x22sym\x22,\x22sym\x22,-1444860305),sym_38903], null)));\n} else {\n}\n\n\nvar G__38905 \x3d cljs.core.next(seq__37390_38896__$1);\nvar G__38906 \x3d null;\nvar G__38907 \x3d (0);\nvar G__38908 \x3d (0);\nseq__37390_38882 \x3d G__38905;\nchunk__37392_38883 \x3d G__38906;\ncount__37393_38884 \x3d G__38907;\ni__37394_38885 \x3d G__38908;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.analyzer.check_uses(cljs.analyzer.missing_use_macros(missing_uses,env),env);\n\nreturn cljs.analyzer.inferred_use_macros(missing_uses,env);\n}));\n\n(cljs.analyzer.check_use_macros.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.analyzer.check_use_macros_inferring_missing \x3d (function cljs$analyzer$check_use_macros_inferring_missing(p__37523,env){\nvar map__37525 \x3d p__37523;\nvar map__37525__$1 \x3d cljs.core.__destructure_map(map__37525);\nvar ast \x3d map__37525__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37525__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar missing_uses \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(uses);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_uses(uses,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,uses,cljs.core.keys(missing_uses));\nvar remove_missing_uses \x3d (function (p1__37518_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37518_SHARP_,cljs.core.keys(missing_uses));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),(function (p1__37519_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37519_SHARP_,cljs.analyzer.check_use_macros.cljs$core$IFn$_invoke$arity$3(use_macros,missing_uses,env)], 0)),cljs.analyzer.inferred_use_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37520_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37520_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),remove_missing_uses);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.check_rename_macros_inferring_missing \x3d (function cljs$analyzer$check_rename_macros_inferring_missing(p__37562,env){\nvar map__37570 \x3d p__37562;\nvar map__37570__$1 \x3d cljs.core.__destructure_map(map__37570);\nvar ast \x3d map__37570__$1;\nvar name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37570__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar missing_renames \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer._STAR_analyze_deps_STAR_;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.seq(renames);\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.analyzer.missing_renames(renames,env):null);\nvar maybe_macros \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,renames,cljs.core.keys(missing_renames));\nvar missing_rename_macros \x3d cljs.analyzer.inferred_rename_macros(missing_renames,env);\nvar remove_missing_renames \x3d (function (p1__37550_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,p1__37550_SHARP_,cljs.core.keys(missing_renames));\n});\nvar ast_SINGLEQUOTE_ \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),(function (p1__37552_SHARP_){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__37552_SHARP_,missing_rename_macros], 0)),cljs.analyzer.inferred_rename_macros(maybe_macros,env)], 0));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,(function (p1__37554_SHARP_){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(p1__37554_SHARP_,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null),cljs.core.merge,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512).cljs$core$IFn$_invoke$arity$1(ast_SINGLEQUOTE_)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),remove_missing_renames);\n}));\n\nreturn ast_SINGLEQUOTE_;\n});\ncljs.analyzer.parse_ns_error_msg \x3d (function cljs$analyzer$parse_ns_error_msg(spec,msg){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg),\x22; offending spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec], 0))].join(\x27\x27);\n});\ncljs.analyzer.basic_validate_ns_spec \x3d (function cljs$analyzer$basic_validate_ns_spec(env,macros_QMARK_,spec){\nif((((spec instanceof cljs.core.Symbol)) || (((typeof spec \x3d\x3d\x3d \x27string\x27) || (cljs.core.sequential_QMARK_(spec)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns \x26 options] and lib.ns specs supported in :require / :require-macros\x22));\n}\n\nif(cljs.core.sequential_QMARK_(spec)){\nif((((cljs.core.first(spec) instanceof cljs.core.Symbol)) || (typeof cljs.core.first(spec) \x3d\x3d\x3d \x27string\x27))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Library name must be specified as a symbol in :require / :require-macros\x22));\n}\n\nif(cljs.core.odd_QMARK_(cljs.core.count(spec))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as alias, :refer (names) and :rename {from to} options supported in :require\x22));\n}\n\nif(cljs.core.every_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only :as, :refer and :rename options supported in :require / :require-macros\x22));\n}\n\nif((function (){var fs \x3d cljs.core.frequencies(cljs.core.next(spec));\nreturn ((((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),(0))) \x3c\x3d (1))) \x26\x26 (((fs.cljs$core$IFn$_invoke$arity$2 ? fs.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0)) : fs.call(null,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),(0))) \x3c\x3d (1))));\n})()){\nreturn null;\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :as and :refer options may only be specified once in :require / :require-macros\x22));\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.parse_ns_excludes_impl \x3d (function cljs$analyzer$parse_ns_excludes_impl(env,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__37694){\nvar vec__37695 \x3d p__37694;\nvar seq__37696 \x3d cljs.core.seq(vec__37695);\nvar first__37697 \x3d cljs.core.first(seq__37696);\nvar seq__37696__$1 \x3d cljs.core.next(seq__37696);\nvar k \x3d first__37697;\nvar filters \x3d seq__37696__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440))){\nif(cljs.core.seq(new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945).cljs$core$IFn$_invoke$arity$1(s))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only one :refer-clojure form is allowed per namespace definition\x22);\n} else {\n}\n\nvar valid_kws \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334),null,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null);\nvar xs \x3d (function (){var fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null);\nvar err \x3d (!(cljs.core.even_QMARK_(cljs.core.count(filters))));\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported\x22);\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nif(cljs.core.truth_((valid_kws.cljs$core$IFn$_invoke$arity$1 ? valid_kws.cljs$core$IFn$_invoke$arity$1(kw) : valid_kws.call(null,kw)))){\nvar refs \x3d cljs.core.second(fs);\nif((!(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters){\nreturn (function (p1__37682_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37682_SHARP_);\n});})(fs,ret,err,refs,kw,valid_kws,vec__37695,seq__37696,first__37697,seq__37696__$1,k,filters))\n,refs)))))))))){\nvar G__38911 \x3d fs;\nvar G__38912 \x3d ret;\nvar G__38913 \x3d true;\nfs \x3d G__38911;\nret \x3d G__38912;\nerr \x3d G__38913;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22exclude\x22,\x22exclude\x22,-1230250334))){\nvar G__38914 \x3d cljs.core.nnext(fs);\nvar G__38915 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null),cljs.core.into,refs);\nvar G__38916 \x3d false;\nfs \x3d G__38914;\nret \x3d G__38915;\nerr \x3d G__38916;\ncontinue;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))){\nvar G__38917 \x3d cljs.core.nnext(fs);\nvar G__38918 \x3d cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(ret,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368)], null),cljs.core.merge,refs);\nvar G__38919 \x3d false;\nfs \x3d G__38917;\nret \x3d G__38918;\nerr \x3d G__38919;\ncontinue;\n} else {\nreturn null;\n}\n}\n}\n} else {\nvar G__38920 \x3d fs;\nvar G__38921 \x3d ret;\nvar G__38922 \x3d true;\nfs \x3d G__38920;\nret \x3d G__38921;\nerr \x3d G__38922;\ncontinue;\n}\n} else {\nreturn ret;\n\n}\n}\nbreak;\n}\n})();\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.into,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s,xs], 0));\n} else {\nreturn s;\n}\n}),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),cljs.core.PersistentArrayMap.EMPTY], null),args);\n});\ncljs.analyzer.parse_ns_excludes \x3d (function cljs$analyzer$parse_ns_excludes(env,args){\nvar s \x3d cljs.analyzer.parse_ns_excludes_impl(env,args);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),cljs.core.into,cljs.core.keys(new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368).cljs$core$IFn$_invoke$arity$1(s)));\n});\ncljs.analyzer.use__GT_require \x3d (function cljs$analyzer$use__GT_require(env,p__37970){\nvar vec__37974 \x3d p__37970;\nvar seq__37975 \x3d cljs.core.seq(vec__37974);\nvar first__37976 \x3d cljs.core.first(seq__37975);\nvar seq__37975__$1 \x3d cljs.core.next(seq__37975);\nvar lib \x3d first__37976;\nvar filters \x3d seq__37975__$1;\nvar spec \x3d vec__37974;\nif((((lib instanceof cljs.core.Symbol)) \x26\x26 (cljs.core.odd_QMARK_(cljs.core.count(spec))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n}\n\nvar fs \x3d cljs.core.seq(filters);\nvar ret \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib], null);\nvar err \x3d false;\nwhile(true){\nif(err \x3d\x3d\x3d true){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros\x22));\n} else {\nif((!((fs \x3d\x3d null)))){\nvar kw \x3d cljs.core.first(fs);\nvar only_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22only\x22,\x22only\x22,1907811652));\nif(((only_QMARK_) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))))){\nif((!((cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw)]),ret) \x3d\x3d null)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Each of :only and :rename options may only be specified once in :use / :use-macros\x22));\n} else {\nvar refs \x3d cljs.core.second(fs);\nif((!(((((only_QMARK_) \x26\x26 (((cljs.core.sequential_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,refs)))))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(kw,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613))) \x26\x26 (((cljs.core.map_QMARK_(refs)) \x26\x26 (cljs.core.every_QMARK_(((function (fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec){\nreturn (function (p1__37952_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,p1__37952_SHARP_);\n});})(fs,ret,err,refs,kw,only_QMARK_,vec__37974,seq__37975,first__37976,seq__37975__$1,lib,filters,spec))\n,refs)))))))))){\nvar G__38925 \x3d fs;\nvar G__38926 \x3d ret;\nvar G__38927 \x3d true;\nfs \x3d G__38925;\nret \x3d G__38926;\nerr \x3d G__38927;\ncontinue;\n} else {\nvar G__38928 \x3d cljs.core.nnext(fs);\nvar G__38929 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((only_QMARK_)?new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553):kw),refs], null));\nvar G__38930 \x3d false;\nfs \x3d G__38928;\nret \x3d G__38929;\nerr \x3d G__38930;\ncontinue;\n}\n}\n} else {\nvar G__38931 \x3d fs;\nvar G__38932 \x3d ret;\nvar G__38933 \x3d true;\nfs \x3d G__38931;\nret \x3d G__38932;\nerr \x3d G__38933;\ncontinue;\n}\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),ret) \x3d\x3d null)))){\nreturn ret;\n} else {\nvar G__38934 \x3d fs;\nvar G__38935 \x3d ret;\nvar G__38936 \x3d true;\nfs \x3d G__38934;\nret \x3d G__38935;\nerr \x3d G__38936;\ncontinue;\n}\n\n}\n}\nbreak;\n}\n});\ncljs.analyzer.parse_require_spec \x3d (function cljs$analyzer$parse_require_spec(env,macros_QMARK_,deps,aliases,spec){\nwhile(true){\nif((((spec instanceof cljs.core.Symbol)) || (typeof spec \x3d\x3d\x3d \x27string\x27))){\nvar G__38937 \x3d env;\nvar G__38938 \x3d macros_QMARK_;\nvar G__38939 \x3d deps;\nvar G__38940 \x3d aliases;\nvar G__38941 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\nenv \x3d G__38937;\nmacros_QMARK_ \x3d G__38938;\ndeps \x3d G__38939;\naliases \x3d G__38940;\nspec \x3d G__38941;\ncontinue;\n} else {\ncljs.analyzer.basic_validate_ns_spec(env,macros_QMARK_,spec);\n\nvar vec__38066 \x3d spec;\nvar seq__38067 \x3d cljs.core.seq(vec__38066);\nvar first__38068 \x3d cljs.core.first(seq__38067);\nvar seq__38067__$1 \x3d cljs.core.next(seq__38067);\nvar lib \x3d first__38068;\nvar opts \x3d seq__38067__$1;\nvar vec__38069 \x3d (function (){var temp__5827__auto__ \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22js-module-index\x22,\x22js-module-index\x22,2072061931),cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lib,null], null);\n} else {\nvar js_module_name \x3d temp__5827__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(js_module_name),lib], null);\n}\n})();\nvar lib__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(0),null);\nvar js_module_provides \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38069,(1),null);\nvar map__38072 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,opts);\nvar map__38072__$1 \x3d cljs.core.__destructure_map(map__38072);\nvar alias \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__38072__$1,new cljs.core.Keyword(null,\x22as\x22,\x22as\x22,1148689641),((typeof lib__$1 \x3d\x3d\x3d \x27string\x27)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.munge(lib__$1)):lib__$1));\nvar referred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553));\nvar renamed \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38072__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar referred_without_renamed \x3d cljs.core.seq(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(renamed)),referred));\nvar vec__38073 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613)], null));\nvar rk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(0),null);\nvar uk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(1),null);\nvar renk \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38073,(2),null);\nif((((alias instanceof cljs.core.Symbol)) || ((alias \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as must be followed by a symbol in :require / :require-macros\x22));\n}\n\nif((!((alias \x3d\x3d null)))){\nvar alias_type_38942 \x3d (cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431):new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786));\nvar lib_SINGLEQUOTE__38943 \x3d (function (){var fexpr__38085 \x3d alias_type_38942.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(aliases));\nreturn (fexpr__38085.cljs$core$IFn$_invoke$arity$1 ? fexpr__38085.cljs$core$IFn$_invoke$arity$1(alias) : fexpr__38085.call(null,alias));\n})();\nif((((!((lib_SINGLEQUOTE__38943 \x3d\x3d null)))) \x26\x26 (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,lib_SINGLEQUOTE__38943)))){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:as alias must be unique\x22));\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(alias,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(lib__$1,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(aliases),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(macros_QMARK_)?new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786):new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431)),new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null)], null)))){\n} else {\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22js-used-as-alias\x22,\x22js-used-as-alias\x22,-887918056),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n}\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(aliases,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias_type_38942], null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [alias,lib__$1], null),(cljs.core.truth_(js_module_provides)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [js_module_provides,lib__$1], null):null)], 0));\n} else {\n}\n\nif(((((cljs.core.sequential_QMARK_(referred)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,referred)))) || ((referred \x3d\x3d null)))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22:refer must be followed by a sequence of symbols in :require / :require-macros\x22));\n}\n\nif(cljs.core.truth_(macros_QMARK_)){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,lib__$1);\n}\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((!((alias \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([rk,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([alias,lib__$1]),cljs.core.PersistentArrayMap.createAsIfByAssoc([lib__$1,lib__$1]),(cljs.core.truth_(js_module_provides)?cljs.core.PersistentArrayMap.createAsIfByAssoc([js_module_provides,lib__$1]):null)], 0))]):null),(((!((referred_without_renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([uk,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(referred_without_renamed,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(lib__$1)))]):null),(((!((renamed \x3d\x3d null))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([renk,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk){\nreturn (function (m,p__38101){\nvar vec__38102 \x3d p__38101;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(0),null);\nvar renamed__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38102,(1),null);\nif(cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([original]),referred))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Renamed symbol \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original),\x22 not referred\x22].join(\x27\x27));\n}\n\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed__$1,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n});})(env,macros_QMARK_,deps,aliases,spec,vec__38066,seq__38067,first__38068,seq__38067__$1,lib,opts,vec__38069,lib__$1,js_module_provides,map__38072,map__38072__$1,alias,referred,renamed,referred_without_renamed,vec__38073,rk,uk,renk))\n,cljs.core.PersistentArrayMap.EMPTY,renamed)]):null)], 0));\n}\nbreak;\n}\n});\ncljs.analyzer.parse_import_spec \x3d (function cljs$analyzer$parse_import_spec(env,deps,spec){\nif(((((cljs.core.sequential_QMARK_(spec)) \x26\x26 (cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,spec)))) || ((((spec instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(spec) \x3d\x3d null)))))){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,cljs.analyzer.parse_ns_error_msg(spec,\x22Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import\x22));\n}\n\nvar import_map \x3d ((cljs.core.sequential_QMARK_(spec))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38105_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__38105_SHARP_,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(spec)),\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__38105_SHARP_)].join(\x27\x27))],null));\n}),cljs.core.rest(spec))):(((!(((-1) \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec).indexOf(\x22.\x22)))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),/\\./))),spec]):cljs.core.PersistentArrayMap.EMPTY\n));\nvar seq__38110_38947 \x3d cljs.core.seq(import_map);\nvar chunk__38111_38948 \x3d null;\nvar count__38112_38949 \x3d (0);\nvar i__38113_38950 \x3d (0);\nwhile(true){\nif((i__38113_38950 \x3c count__38112_38949)){\nvar vec__38124_38952 \x3d chunk__38111_38948.cljs$core$IIndexed$_nth$arity$2(null,i__38113_38950);\nvar __38953 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(0),null);\nvar spec_38954__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38124_38952,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38954__$1);\n\n\nvar G__38955 \x3d seq__38110_38947;\nvar G__38956 \x3d chunk__38111_38948;\nvar G__38957 \x3d count__38112_38949;\nvar G__38958 \x3d (i__38113_38950 + (1));\nseq__38110_38947 \x3d G__38955;\nchunk__38111_38948 \x3d G__38956;\ncount__38112_38949 \x3d G__38957;\ni__38113_38950 \x3d G__38958;\ncontinue;\n} else {\nvar temp__5825__auto___38959 \x3d cljs.core.seq(seq__38110_38947);\nif(temp__5825__auto___38959){\nvar seq__38110_38960__$1 \x3d temp__5825__auto___38959;\nif(cljs.core.chunked_seq_QMARK_(seq__38110_38960__$1)){\nvar c__5548__auto___38961 \x3d cljs.core.chunk_first(seq__38110_38960__$1);\nvar G__38962 \x3d cljs.core.chunk_rest(seq__38110_38960__$1);\nvar G__38963 \x3d c__5548__auto___38961;\nvar G__38964 \x3d cljs.core.count(c__5548__auto___38961);\nvar G__38965 \x3d (0);\nseq__38110_38947 \x3d G__38962;\nchunk__38111_38948 \x3d G__38963;\ncount__38112_38949 \x3d G__38964;\ni__38113_38950 \x3d G__38965;\ncontinue;\n} else {\nvar vec__38131_38966 \x3d cljs.core.first(seq__38110_38960__$1);\nvar __38967 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(0),null);\nvar spec_38968__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38131_38966,(1),null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(deps,cljs.core.conj,spec_38968__$1);\n\n\nvar G__38970 \x3d cljs.core.next(seq__38110_38960__$1);\nvar G__38971 \x3d null;\nvar G__38972 \x3d (0);\nvar G__38973 \x3d (0);\nseq__38110_38947 \x3d G__38970;\nchunk__38111_38948 \x3d G__38971;\ncount__38112_38949 \x3d G__38972;\ni__38113_38950 \x3d G__38973;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),import_map,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),import_map], null);\n});\n/**\n * Given a spec form check whether the spec namespace requires a macro file\n * of the same name. If so return true.\n */\ncljs.analyzer.macro_autoload_ns_QMARK_ \x3d (function cljs$analyzer$macro_autoload_ns_QMARK_(form){\nif(cljs.core.truth_(cljs.analyzer._STAR_macro_infer_STAR_)){\nvar ns \x3d ((cljs.core.sequential_QMARK_(form))?cljs.core.first(form):form);\nvar map__38136 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null));\nvar map__38136__$1 \x3d cljs.core.__destructure_map(map__38136);\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38136__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar or__5025__auto__ \x3d cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(use_macros));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([ns]),cljs.core.vals(require_macros));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a symbol that starts with clojure as the first segment return the\n * same symbol with the first segment replaced with cljs\n */\ncljs.analyzer.clj_ns__GT_cljs_ns \x3d (function cljs$analyzer$clj_ns__GT_cljs_ns(sym){\nvar segs \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(sym),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22clojure\x22,cljs.core.first(segs))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.cons(\x22cljs\x22,cljs.core.next(segs))));\n} else {\nreturn sym;\n}\n});\ncljs.analyzer.canonicalize_specs \x3d (function cljs$analyzer$canonicalize_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nvar spec \x3d cljs.core.second(quoted_spec_or_kw);\nif(((cljs.core.vector_QMARK_(spec)) || (cljs.core.map_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec], null);\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\ncljs.analyzer.canonicalize_import_specs \x3d (function cljs$analyzer$canonicalize_import_specs(specs){\nvar canonicalize \x3d (function cljs$analyzer$canonicalize_import_specs_$_canonicalize(quoted_spec_or_kw){\nif((quoted_spec_or_kw instanceof cljs.core.Keyword)){\nreturn quoted_spec_or_kw;\n} else {\nreturn cljs.core.second(quoted_spec_or_kw);\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(canonicalize,specs);\n});\n/**\n * Given an original set of ns specs desugar :include-macros and :refer-macros\n * usage into only primitive spec forms - :use, :require, :use-macros,\n * :require-macros. If a library includes a macro file of with the same name\n * as the namespace will also be desugared.\n */\ncljs.analyzer.desugar_ns_specs \x3d (function cljs$analyzer$desugar_ns_specs(args){\nvar map__38157 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__38158){\nvar vec__38159 \x3d p__38158;\nvar seq__38160 \x3d cljs.core.seq(vec__38159);\nvar first__38161 \x3d cljs.core.first(seq__38160);\nvar seq__38160__$1 \x3d cljs.core.next(seq__38160);\nvar k \x3d first__38161;\nvar specs \x3d seq__38160__$1;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,specs)], null);\n}),args));\nvar map__38157__$1 \x3d cljs.core.__destructure_map(map__38157);\nvar indexed \x3d map__38157__$1;\nvar require__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38157__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar sugar_keys \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953),null], null), null);\nvar remove_from_spec \x3d (function (pred,spec){\nwhile(true){\nif(cljs.core.not((function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(spec);\nif(and__5023__auto__){\nreturn cljs.core.some(pred,spec);\n} else {\nreturn and__5023__auto__;\n}\n})())){\nreturn spec;\n} else {\nvar vec__38164 \x3d cljs.core.split_with(cljs.core.complement(pred),spec);\nvar l \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(0),null);\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38164,(1),null);\nvar G__38975 \x3d pred;\nvar G__38976 \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),r));\npred \x3d G__38975;\nspec \x3d G__38976;\ncontinue;\n}\nbreak;\n}\n});\nvar replace_refer_macros \x3d (function (spec){\nif((!(cljs.core.sequential_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,\x22refer-macros\x22,\x22refer-macros\x22,-1906841953))){\nreturn new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553);\n} else {\nreturn x;\n}\n}),spec);\n}\n});\nvar reload_spec_QMARK_ \x3d (function (p1__38155_SHARP_){\nvar fexpr__38168 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null);\nreturn (fexpr__38168.cljs$core$IFn$_invoke$arity$1 ? fexpr__38168.cljs$core$IFn$_invoke$arity$1(p1__38155_SHARP_) : fexpr__38168.call(null,p1__38155_SHARP_));\n});\nvar to_macro_specs \x3d (function (specs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nreturn replace_refer_macros(remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22refer\x22,\x22refer\x22,-964295553),null], null), null),remove_from_spec(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22include-macros\x22,\x22include-macros\x22,1228110289),null], null), null),x))));\n} else {\nreturn x;\n}\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (x){\nvar or__5025__auto__ \x3d (function (){var and__5023__auto__ \x3d cljs.core.sequential_QMARK_(x);\nif(and__5023__auto__){\nreturn cljs.core.some(sugar_keys,x);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d reload_spec_QMARK_(x);\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.analyzer.macro_autoload_ns_QMARK_(x);\n}\n}\n}),specs));\n});\nvar remove_sugar \x3d cljs.core.partial.cljs$core$IFn$_invoke$arity$2(remove_from_spec,sugar_keys);\nvar temp__5827__auto__ \x3d cljs.core.seq(to_macro_specs(require__$1));\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn args;\n} else {\nvar require_specs \x3d temp__5827__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){\nif(cljs.core.not(reload_spec_QMARK_(x))){\nvar vec__38174 \x3d x;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38174,(1),null);\nreturn cljs.core.cons(k,cljs.core.map.cljs$core$IFn$_invoke$arity$2(remove_sugar,v));\n} else {\nreturn x;\n}\n}),cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(indexed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentVector.EMPTY),require_specs));\n}\n});\ncljs.analyzer.find_def_clash \x3d (function cljs$analyzer$find_def_clash(env,ns,segments){\nvar to_check \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (xs){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,cljs.core.butlast(xs))),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.last(xs))], null);\n}),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.PersistentVector.EMPTY,segments)));\nvar seq__38181 \x3d cljs.core.seq(to_check);\nvar chunk__38182 \x3d null;\nvar count__38183 \x3d (0);\nvar i__38184 \x3d (0);\nwhile(true){\nif((i__38184 \x3c count__38183)){\nvar vec__38198 \x3d chunk__38182.cljs$core$IIndexed$_nth$arity$2(null,i__38184);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38198,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38981 \x3d seq__38181;\nvar G__38982 \x3d chunk__38182;\nvar G__38983 \x3d count__38183;\nvar G__38984 \x3d (i__38184 + (1));\nseq__38181 \x3d G__38981;\nchunk__38182 \x3d G__38982;\ncount__38183 \x3d G__38983;\ni__38184 \x3d G__38984;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38181);\nif(temp__5825__auto__){\nvar seq__38181__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38181__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38181__$1);\nvar G__38985 \x3d cljs.core.chunk_rest(seq__38181__$1);\nvar G__38986 \x3d c__5548__auto__;\nvar G__38987 \x3d cljs.core.count(c__5548__auto__);\nvar G__38988 \x3d (0);\nseq__38181 \x3d G__38985;\nchunk__38182 \x3d G__38986;\ncount__38183 \x3d G__38987;\ni__38184 \x3d G__38988;\ncontinue;\n} else {\nvar vec__38204 \x3d cljs.core.first(seq__38181__$1);\nvar clash_ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38204,(1),null);\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),clash_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),name], null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22ns-var-clash\x22,\x22ns-var-clash\x22,-280494668),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns,new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(clash_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null));\n} else {\n}\n\n\nvar G__38989 \x3d cljs.core.next(seq__38181__$1);\nvar G__38990 \x3d null;\nvar G__38991 \x3d (0);\nvar G__38992 \x3d (0);\nseq__38181 \x3d G__38989;\nchunk__38182 \x3d G__38990;\ncount__38183 \x3d G__38991;\ni__38184 \x3d G__38992;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.macro_ns_name \x3d (function cljs$analyzer$macro_ns_name(name){\nvar name_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif(cljs.core.not(goog.string.endsWith(name_str,\x22$macros\x22))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([name_str,\x22$macros\x22].join(\x27\x27));\n} else {\nreturn name;\n}\n});\ncljs.analyzer.check_duplicate_aliases \x3d (function cljs$analyzer$check_duplicate_aliases(env,old,new$){\nvar ns_name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(old);\nvar seq__38210 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416)], null));\nvar chunk__38211 \x3d null;\nvar count__38212 \x3d (0);\nvar i__38213 \x3d (0);\nwhile(true){\nif((i__38213 \x3c count__38212)){\nvar k \x3d chunk__38211.cljs$core$IIndexed$_nth$arity$2(null,i__38213);\nvar old_aliases_38993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_38994 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___38995 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_38994)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name){\nreturn (function (p__38223){\nvar vec__38224 \x3d p__38223;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38224,(1),null);\nvar entry \x3d vec__38224;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_38994,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_38993,new_aliases_38994,k,ns_name))\n,old_aliases_38993)));\nif((temp__5829__auto___38995 \x3d\x3d null)){\n} else {\nvar alias_38996 \x3d temp__5829__auto___38995;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_38996),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_38993,alias_38996))].join(\x27\x27));\n}\n\n\nvar G__38997 \x3d seq__38210;\nvar G__38998 \x3d chunk__38211;\nvar G__38999 \x3d count__38212;\nvar G__39000 \x3d (i__38213 + (1));\nseq__38210 \x3d G__38997;\nchunk__38211 \x3d G__38998;\ncount__38212 \x3d G__38999;\ni__38213 \x3d G__39000;\ncontinue;\n} else {\nvar temp__5825__auto__ \x3d cljs.core.seq(seq__38210);\nif(temp__5825__auto__){\nvar seq__38210__$1 \x3d temp__5825__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__38210__$1)){\nvar c__5548__auto__ \x3d cljs.core.chunk_first(seq__38210__$1);\nvar G__39001 \x3d cljs.core.chunk_rest(seq__38210__$1);\nvar G__39002 \x3d c__5548__auto__;\nvar G__39003 \x3d cljs.core.count(c__5548__auto__);\nvar G__39004 \x3d (0);\nseq__38210 \x3d G__39001;\nchunk__38211 \x3d G__39002;\ncount__38212 \x3d G__39003;\ni__38213 \x3d G__39004;\ncontinue;\n} else {\nvar k \x3d cljs.core.first(seq__38210__$1);\nvar old_aliases_39005 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(old,k);\nvar new_aliases_39006 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(new$,k);\nvar temp__5829__auto___39007 \x3d cljs.core.some(cljs.core.set(cljs.core.keys(new_aliases_39006)),cljs.core.keys(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(((function (seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name){\nreturn (function (p__38227){\nvar vec__38228 \x3d p__38227;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38228,(1),null);\nvar entry \x3d vec__38228;\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k__$1,v)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(entry,cljs.core.find(new_aliases_39006,k__$1))));\n});})(seq__38210,chunk__38211,count__38212,i__38213,old_aliases_39005,new_aliases_39006,k,seq__38210__$1,temp__5825__auto__,ns_name))\n,old_aliases_39005)));\nif((temp__5829__auto___39007 \x3d\x3d null)){\n} else {\nvar alias_39010 \x3d temp__5829__auto___39007;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Alias \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(alias_39010),\x22 already exists in namespace \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),\x22, aliasing \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(old_aliases_39005,alias_39010))].join(\x27\x27));\n}\n\n\nvar G__39011 \x3d cljs.core.next(seq__38210__$1);\nvar G__39012 \x3d null;\nvar G__39013 \x3d (0);\nvar G__39014 \x3d (0);\nseq__38210 \x3d G__39011;\nchunk__38211 \x3d G__39012;\ncount__38212 \x3d G__39013;\ni__38213 \x3d G__39014;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.analyzer.merge_ns_info \x3d (function cljs$analyzer$merge_ns_info(old,new$,env){\nif((cljs.core.count(old) \x3e (0))){\nvar deep_merge_keys \x3d new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old,cljs.core.select_keys(new$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945)], null)),cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(old,deep_merge_keys),cljs.core.select_keys(new$,deep_merge_keys)], 0))], 0));\n} else {\nreturn new$;\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),(function (_,env,p__38243,___$1,opts){\nvar vec__38244 \x3d p__38243;\nvar seq__38245 \x3d cljs.core.seq(vec__38244);\nvar first__38246 \x3d cljs.core.first(seq__38245);\nvar seq__38245__$1 \x3d cljs.core.next(seq__38245);\nvar ___$2 \x3d first__38246;\nvar first__38246__$1 \x3d cljs.core.first(seq__38245__$1);\nvar seq__38245__$2 \x3d cljs.core.next(seq__38245__$1);\nvar name \x3d first__38246__$1;\nvar args \x3d seq__38245__$2;\nvar form \x3d vec__38244;\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespace declarations must appear at the top-level.\x22);\n}\n\nif((name instanceof cljs.core.Symbol)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Namespaces must be named by a symbol.\x22);\n}\n\nvar name__$1 \x3d (function (){var G__38249 \x3d name;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.analyzer.macro_ns_name(G__38249);\n} else {\nreturn G__38249;\n}\n})();\nvar segments_39016 \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(name__$1),/\\./);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(segments_39016))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22single-segment-namespace\x22,\x22single-segment-namespace\x22,-491924469),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\nvar segment_39017 \x3d cljs.core.some(cljs.analyzer.js_reserved,segments_39016);\nif((!((segment_39017 \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22munged-namespace\x22,\x22munged-namespace\x22,-101986199),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name__$1], null));\n} else {\n}\n\ncljs.analyzer.find_def_clash(env,name__$1,segments_39016);\n\nvar docstring \x3d ((typeof cljs.core.first(args) \x3d\x3d\x3d \x27string\x27)?cljs.core.first(args):null);\nvar mdocstr \x3d new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(name__$1));\nvar args__$1 \x3d (((!((docstring \x3d\x3d null))))?cljs.core.next(args):args);\nvar metadata \x3d ((cljs.core.map_QMARK_(cljs.core.first(args__$1)))?cljs.core.first(args__$1):null);\nvar args__$2 \x3d cljs.analyzer.desugar_ns_specs((((!((metadata \x3d\x3d null))))?cljs.core.next(args__$1):args__$1));\nvar map__38253 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args__$2);\nvar map__38253__$1 \x3d cljs.core.__destructure_map(map__38253);\nvar args__$3 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38253__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar name__$2 \x3d cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata);\nvar map__38254 \x3d cljs.analyzer.parse_ns_excludes(env,args__$3);\nvar map__38254__$1 \x3d cljs.core.__destructure_map(map__38254);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38254__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38259){\nvar vec__38260 \x3d p__38259;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38260,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar valid_forms \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null));\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38255 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38267){\nvar vec__38268 \x3d p__38267;\nvar seq__38269 \x3d cljs.core.seq(vec__38268);\nvar first__38270 \x3d cljs.core.first(seq__38269);\nvar seq__38269__$1 \x3d cljs.core.next(seq__38269);\nvar k \x3d first__38270;\nvar libs \x3d seq__38269__$1;\nvar libspec \x3d vec__38268;\nif(cljs.core.truth_((function (){var fexpr__38272 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),null], null), null);\nreturn (fexpr__38272.cljs$core$IFn$_invoke$arity$1 ? fexpr__38272.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38272.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only :refer-clojure, :require, :require-macros, :use, :use-macros, and :import libspecs supported. Got \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(libspec),\x22 instead.\x22].join(\x27\x27));\n}\n\nif(cljs.core.truth_((function (){var fexpr__38273 \x3d cljs.core.deref(valid_forms);\nreturn (fexpr__38273.cljs$core$IFn$_invoke$arity$1 ? fexpr__38273.cljs$core$IFn$_invoke$arity$1(k) : fexpr__38273.call(null,k));\n})())){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Only one \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 form is allowed per namespace definition\x22].join(\x27\x27));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(valid_forms,cljs.core.disj,k);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5825__auto___39019 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38241_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38241_SHARP_));\n}),libs));\nif(temp__5825__auto___39019){\nvar xs_39020 \x3d temp__5825__auto___39019;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39020),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38242_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38242_SHARP_));\n}),xs_39020)));\n} else {\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38275){\nvar vec__38276 \x3d p__38275;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38276,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$3));\nvar map__38255__$1 \x3d cljs.core.__destructure_map(map__38255);\nvar params \x3d map__38255__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38255__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\nvar vec__38256 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec_map){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macros-ns\x22,\x22macros-ns\x22,1626844933).cljs$core$IFn$_invoke$arity$1(opts))){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2),(0),(((cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$2)).length) - (7))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38280){\nvar vec__38281 \x3d p__38280;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38281,(1),null);\nvar G__38284 \x3d m;\nif((!(cljs.core.symbol_identical_QMARK_(v,ns)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38284,k,v);\n} else {\nreturn G__38284;\n}\n}),cljs.core.PersistentArrayMap.EMPTY,spec_map);\n} else {\nreturn spec_map;\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [require_macros,use_macros], null));\nvar require_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(0),null);\nvar use_macros__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38256,(1),null);\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name__$2);\n\nvar ns_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros__$1,excludes,name__$2,imports,requires,uses,require_macros__$1,(function (){var or__5025__auto__ \x3d docstring;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn mdocstr;\n}\n})(),as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name__$2], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_info], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38287 \x3d ns_info;\nvar G__38287__$1 \x3d (cljs.core.truth_((function (){var fexpr__38288 \x3d cljs.core.deref(reload);\nreturn (fexpr__38288.cljs$core$IFn$_invoke$arity$1 ? fexpr__38288.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38288.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38289 \x3d cljs.core.deref(reload);\nreturn (fexpr__38289.cljs$core$IFn$_invoke$arity$1 ? fexpr__38289.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38289.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38287);\nif(cljs.core.truth_((function (){var fexpr__38290 \x3d cljs.core.deref(reload);\nreturn (fexpr__38290.cljs$core$IFn$_invoke$arity$1 ? fexpr__38290.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38290.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38287__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38291 \x3d cljs.core.deref(reload);\nreturn (fexpr__38291.cljs$core$IFn$_invoke$arity$1 ? fexpr__38291.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38291.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38287__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),(function (_,env,p__38295,___$1,opts){\nvar vec__38296 \x3d p__38295;\nvar ___$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(0),null);\nvar quoted_specs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38296,(1),null);\nvar form \x3d vec__38296;\nvar temp__5825__auto___39029 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__38292_SHARP_){\nreturn ((cljs.core.seq_QMARK_(p1__38292_SHARP_)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(p1__38292_SHARP_))));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,quoted_specs)));\nif(cljs.core.truth_(temp__5825__auto___39029)){\nvar not_quoted_39030 \x3d temp__5825__auto___39029;\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Arguments to \x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22 must be quoted. Offending spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(not_quoted_39030)].join(\x27\x27));\n} else {\n}\n\nif(cljs.core.truth_(cljs.analyzer._STAR_allow_ns_STAR_)){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,[\x22Calls to `\x22,cljs.core.name(cljs.core.first(quoted_specs)),\x22` must appear at the top-level.\x22].join(\x27\x27));\n}\n\nvar specs \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.first(quoted_specs)))?cljs.analyzer.canonicalize_import_specs(quoted_specs):cljs.analyzer.canonicalize_specs(quoted_specs));\nvar name \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar args \x3d cljs.analyzer.desugar_ns_specs((new cljs.core.List(null,specs,null,(1),null)));\nvar map__38300 \x3d cljs.analyzer.impl.namespaces.elide_aliases_from_ns_specs(args);\nvar map__38300__$1 \x3d cljs.core.__destructure_map(map__38300);\nvar args__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22libspecs\x22,\x22libspecs\x22,59807195));\nvar as_aliases \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38300__$1,new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798));\nvar map__38301 \x3d cljs.analyzer.parse_ns_excludes(env,args__$1);\nvar map__38301__$1 \x3d cljs.core.__destructure_map(map__38301);\nvar excludes \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945));\nvar core_renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38301__$1,new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368));\nvar core_renames__$1 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38304){\nvar vec__38306 \x3d p__38304;\nvar original \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(0),null);\nvar renamed \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38306,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,renamed,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(original)));\n}),cljs.core.PersistentArrayMap.EMPTY,core_renames);\nvar deps \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY);\nvar aliases \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22fns\x22,\x22fns\x22,1185138786),as_aliases,new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431),as_aliases], null));\nvar spec_parsers \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,false,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(cljs.analyzer.parse_require_spec,env,true,deps,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aliases], 0)),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.use__GT_require,env)),new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),cljs.core.partial.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.parse_import_spec,env,deps)], null);\nvar reload \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424),null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333),null,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),null,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),null], null));\nvar reloads \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar map__38302 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__38309){\nvar vec__38310 \x3d p__38309;\nvar seq__38311 \x3d cljs.core.seq(vec__38310);\nvar first__38312 \x3d cljs.core.first(seq__38311);\nvar seq__38311__$1 \x3d cljs.core.next(seq__38311);\nvar k \x3d first__38312;\nvar libs \x3d seq__38311__$1;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709),k)){\n} else {\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807));\n} else {\n}\n\nif((!((cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs) \x3d\x3d null)))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reload,cljs.core.assoc,k,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200));\n} else {\n}\n}\n\nvar temp__5829__auto___39036 \x3d cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__38293_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38293_SHARP_));\n}),libs));\nif((temp__5829__auto___39036 \x3d\x3d null)){\n} else {\nvar xs_39038 \x3d temp__5829__auto___39036;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reloads,cljs.core.assoc,k,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,xs_39038),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38294_SHARP_){\nreturn new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__38294_SHARP_));\n}),xs_39038)));\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.merge_with,cljs.core.merge,m,cljs.core.map.cljs$core$IFn$_invoke$arity$2((spec_parsers.cljs$core$IFn$_invoke$arity$1 ? spec_parsers.cljs$core$IFn$_invoke$arity$1(k) : spec_parsers.call(null,k)),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),null,new cljs.core.Keyword(null,\x22reload-all\x22,\x22reload-all\x22,761570200),null], null), null),libs)));\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38317){\nvar vec__38318 \x3d p__38317;\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38318,(0),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,new cljs.core.Keyword(null,\x22refer-clojure\x22,\x22refer-clojure\x22,813784440));\n}),args__$1));\nvar map__38302__$1 \x3d cljs.core.__destructure_map(map__38302);\nvar params \x3d map__38302__$1;\nvar uses \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424));\nvar requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333));\nvar renames \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename\x22,\x22rename\x22,1508157613));\nvar use_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393));\nvar require_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416));\nvar rename_macros \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512));\nvar imports \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38302__$1,new cljs.core.Keyword(null,\x22import\x22,\x22import\x22,-1399500709));\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d name);\n\nvar require_info \x3d cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),new cljs.core.Keyword(null,\x22renames\x22,\x22renames\x22,343278368),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22imports\x22,\x22imports\x22,-1249933394),new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798)],[rename_macros,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([renames,core_renames__$1], 0)),use_macros,excludes,name,imports,requires,uses,require_macros,as_aliases]);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),name], null),cljs.analyzer.merge_ns_info,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([require_info,env], 0));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22ns*\x22,\x22ns*\x22,200417856),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(deps))),new cljs.core.Keyword(null,\x22reload\x22,\x22reload\x22,863702807),cljs.core.deref(reload),new cljs.core.Keyword(null,\x22reloads\x22,\x22reloads\x22,610698522),cljs.core.deref(reloads)], null),(function (){var G__38326 \x3d require_info;\nvar G__38326__$1 \x3d (cljs.core.truth_((function (){var fexpr__38327 \x3d cljs.core.deref(reload);\nreturn (fexpr__38327.cljs$core$IFn$_invoke$arity$1 ? fexpr__38327.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38327.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22uses\x22,\x22uses\x22,232664692)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38328 \x3d cljs.core.deref(reload);\nreturn (fexpr__38328.cljs$core$IFn$_invoke$arity$1 ? fexpr__38328.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)) : fexpr__38328.call(null,new cljs.core.Keyword(null,\x22use\x22,\x22use\x22,-1846382424)));\n})(),true]));\n})):G__38326);\nif(cljs.core.truth_((function (){var fexpr__38329 \x3d cljs.core.deref(reload);\nreturn (fexpr__38329.cljs$core$IFn$_invoke$arity$1 ? fexpr__38329.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38329.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})())){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__38326__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927)], null),(function (m){\nreturn cljs.core.with_meta(m,cljs.core.PersistentArrayMap.createAsIfByAssoc([(function (){var fexpr__38330 \x3d cljs.core.deref(reload);\nreturn (fexpr__38330.cljs$core$IFn$_invoke$arity$1 ? fexpr__38330.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)) : fexpr__38330.call(null,new cljs.core.Keyword(null,\x22require\x22,\x22require\x22,-468001333)));\n})(),true]));\n}));\n} else {\nreturn G__38326__$1;\n}\n})()], 0));\n}));\ncljs.analyzer.parse_type \x3d (function cljs$analyzer$parse_type(op,env,p__38331){\nvar vec__38332 \x3d p__38331;\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(0),null);\nvar tsym \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(1),null);\nvar fields \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(2),null);\nvar pmasks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(3),null);\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38332,(4),null);\nvar form \x3d vec__38332;\nvar t \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783)),tsym));\nvar locals \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,fld){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,fld,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411),new cljs.core.Keyword(null,\x22shadow\x22,\x22shadow\x22,873231803),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724)],[fld,true,cljs.analyzer.get_col(fld,env),new cljs.core.Keyword(null,\x22unsynchronized-mutable\x22,\x22unsynchronized-mutable\x22,-164143950).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),cljs.analyzer.get_line(fld,env),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),new cljs.core.Keyword(null,\x22volatile-mutable\x22,\x22volatile-mutable\x22,1731728411).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(fld)),(m.cljs$core$IFn$_invoke$arity$1 ? m.cljs$core$IFn$_invoke$arity$1(fld) : m.call(null,fld)),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500)]));\n}),cljs.core.PersistentArrayMap.EMPTY,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fields,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22__meta\x22,\x22__meta\x22,-946752628,null),new cljs.core.Symbol(null,\x22__extmap\x22,\x22__extmap\x22,-1435580931,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null)):fields));\nvar protocols \x3d new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tsym));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),tsym], null),(function (m){\nvar m__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((function (){var or__5025__auto__ \x3d m;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),t,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),true,new cljs.core.Keyword(null,\x22num-fields\x22,\x22num-fields\x22,1529154024),cljs.core.count(fields),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),op)], 0));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m__$1,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(tsym),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),protocols], null),cljs.analyzer.source_info.cljs$core$IFn$_invoke$arity$2(tsym,env)], 0));\n}));\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22pmasks\x22,\x22pmasks\x22,-871416698),new cljs.core.Keyword(null,\x22protocols\x22,\x22protocols\x22,-5615896),new cljs.core.Keyword(null,\x22fields\x22,\x22fields\x22,-1932066230),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22t\x22,\x22t\x22,-1397832519),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)],[new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22body\x22,\x22body\x22,-2049205669)], null),pmasks,cljs.core.disj.cljs$core$IFn$_invoke$arity$2(protocols,new cljs.core.Symbol(\x22cljs.core\x22,\x22Object\x22,\x22cljs.core/Object\x22,-345545431,null)),fields,op,env,t,form,new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),(function (){var G__38338 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),locals);\nvar G__38339 \x3d body;\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38338,G__38339) : cljs.analyzer.analyze.call(null,G__38338,G__38339));\n})()]);\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22deftype\x22,\x22deftype\x22,340294561),env,form);\n}));\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),(function (_,env,form,___$1,___$2){\nreturn cljs.analyzer.parse_type(new cljs.core.Keyword(null,\x22defrecord\x22,\x22defrecord\x22,-1367493418),env,form);\n}));\ncljs.analyzer.property_symbol_QMARK_ \x3d (function cljs$analyzer$property_symbol_QMARK_(p1__38340_SHARP_){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (p1__38340_SHARP_ instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nreturn cljs.core.re_matches(/^-.*/,cljs.core.name(p1__38340_SHARP_));\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.classify_dot_form \x3d (function cljs$analyzer$classify_dot_form(p__38341){\nvar vec__38342 \x3d p__38341;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(0),null);\nvar member \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38342,(2),null);\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(((target \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n),((cljs.analyzer.property_symbol_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886):(((member instanceof cljs.core.Symbol))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902):((cljs.core.seq_QMARK_(member))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22error\x22,\x22cljs.analyzer/error\x22,-65289642)\n))),(((args \x3d\x3d null))?cljs.core.List.EMPTY:new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)\n)], null);\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.analyzer.build_dot_form !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.analyzer.build_dot_form \x3d (function (){var method_table__5622__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5623__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5624__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5625__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5626__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__38349 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__38349.cljs$core$IFn$_invoke$arity$0 ? fexpr__38349.cljs$core$IFn$_invoke$arity$0() : fexpr__38349.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.analyzer\x22,\x22build-dot-form\x22),(function (p1__38347_SHARP_){\nreturn cljs.analyzer.classify_dot_form(p1__38347_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));\n})();\n}\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),cljs.core.List.EMPTY], null),(function (p__38350){\nvar vec__38351 \x3d p__38350;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38351,(2),null);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22access\x22,\x22cljs.analyzer/access\x22,-1639036494),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(prop).substring((1))),cljs.core.meta(prop))], null);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22property\x22,\x22cljs.analyzer/property\x22,1113330886),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923)], null),(function (p__38354){\nvar vec__38355 \x3d p__38354;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(0),null);\nvar prop \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38355,(2),null);\nthrow (new Error([\x22Cannot provide arguments \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(args),\x22 on property access \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop)].join(\x27\x27)));\n}));\n/**\n * Builds the intermediate method call map used to reason about the parsed form during\n * compilation.\n */\ncljs.analyzer.build_method_call \x3d (function cljs$analyzer$build_method_call(target,meth,args){\nif((meth instanceof cljs.core.Symbol)){\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),meth,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22call\x22,\x22cljs.analyzer/call\x22,964149800),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),target,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),cljs.core.first(meth),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null);\n}\n});\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889)], null),(function (p__38358){\nvar vec__38359 \x3d p__38358;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38359,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22symbol\x22,\x22cljs.analyzer/symbol\x22,933248902),cljs.core.List.EMPTY], null),(function (p__38362){\nvar vec__38363 \x3d p__38362;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(0),null);\nvar meth \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(1),null);\nvar args \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38363,(2),null);\nreturn cljs.analyzer.build_method_call(target,meth,args);\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22expr\x22,\x22cljs.analyzer/expr\x22,1708655889),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22list\x22,\x22cljs.analyzer/list\x22,-539585923),cljs.core.List.EMPTY], null),(function (p__38366){\nvar vec__38367 \x3d p__38366;\nvar target \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(0),null);\nvar meth_expr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(1),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38367,(2),null);\nreturn cljs.analyzer.build_method_call(target,cljs.core.first(meth_expr),cljs.core.rest(meth_expr));\n}));\ncljs.analyzer.build_dot_form.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),(function (dot_form){\nthrow (new Error([\x22Unknown dot form of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),dot_form)),\x22 with classification \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.classify_dot_form(dot_form))].join(\x27\x27)));\n}));\ncljs.analyzer.analyze_dot \x3d (function cljs$analyzer$analyze_dot(env,target,field,member_PLUS_,form){\nvar v \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [target,field,member_PLUS_], null);\nvar map__38371 \x3d cljs.analyzer.build_dot_form.cljs$core$IFn$_invoke$arity$1(v);\nvar map__38371__$1 \x3d cljs.core.__destructure_map(map__38371);\nvar dot_action \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22dot-action\x22,\x22dot-action\x22,-1460119601));\nvar target__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721));\nvar method \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592));\nvar field__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500));\nvar args \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38371__$1,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576));\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar targetexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,target__$1) : cljs.analyzer.analyze.call(null,enve,target__$1));\nvar form_meta \x3d cljs.core.meta(form);\nvar target_tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(targetexpr);\nvar prop \x3d (function (){var or__5025__auto__ \x3d field__$1;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn method;\n}\n})();\nvar tag \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d (function (){var and__5023__auto__ \x3d cljs.analyzer.js_tag_QMARK_(target_tag);\nif(and__5023__auto__){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(cljs.analyzer.normalize_js_tag(target_tag),cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null)], null)),prop);\n} else {\nreturn and__5023__auto__;\n}\n})();\nif(cljs.core.truth_(or__5025__auto____$1)){\nreturn or__5025__auto____$1;\n} else {\nreturn null;\n}\n}\n})();\nif(((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22constructor\x22,\x22constructor\x22,-313397284,null),prop)) \x26\x26 ((((!(clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(prop),\x22cljs$\x22)))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22protocol-prop\x22,\x22protocol-prop\x22,-58388138).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(prop)))))))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22Object\x22,\x22Object\x22,61210754,null),cljs.core.first(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22object\x22,\x22object\x22,1474613949),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null),target_tag)){\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d (target_tag \x3d\x3d null);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar fexpr__38373 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22], null), null);\nreturn (fexpr__38373.cljs$core$IFn$_invoke$arity$1 ? fexpr__38373.cljs$core$IFn$_invoke$arity$1(target_tag) : fexpr__38373.call(null,target_tag));\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n\nvar vec__38374_39081 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.identity)(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)));\nvar pre_SINGLEQUOTE__39082 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(0),null);\nvar pre_39083 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38374_39081,(1),null);\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_SINGLEQUOTE__39082);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.not(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39083));\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22infer-warning\x22,\x22infer-warning\x22,-1600671410),env,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22warn-type\x22,\x22warn-type\x22,-790105219),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,(function (){var G__38377 \x3d pre_SINGLEQUOTE__39082;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22prototype\x22,\x22prototype\x22,519166522,null),cljs.core.last(pre_SINGLEQUOTE__39082))){\nreturn cljs.core.butlast(G__38377);\n} else {\nreturn G__38377;\n}\n})())),new cljs.core.Keyword(null,\x22property\x22,\x22property\x22,-1114278232),prop], null));\n} else {\n}\n} else {\n}\n} else {\n}\n\nif(cljs.analyzer.js_tag_QMARK_(tag)){\nvar pre_39089 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag));\nif(cljs.core.truth_(cljs.analyzer.has_extern_QMARK_.cljs$core$IFn$_invoke$arity$1(pre_39089))){\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env)),new cljs.core.Keyword(null,\x22externs\x22,\x22externs\x22,221720677)], null),pre_39089),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.EMPTY], 0));\n}\n} else {\n}\n\nvar G__38378 \x3d dot_action;\nvar G__38378__$1 \x3d (((G__38378 instanceof cljs.core.Keyword))?G__38378.fqn:null);\nswitch (G__38378__$1) {\ncase \x22cljs.analyzer/access\x22:\nvar children \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn tag;\n}\n})():tag)], null);\n\nbreak;\ncase \x22cljs.analyzer/call\x22:\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38370_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38370_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38370_SHARP_));\n}),args);\nvar children \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null);\nreturn new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-call\x22,\x22host-call\x22,1059629755),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),targetexpr,new cljs.core.Keyword(null,\x22method\x22,\x22method\x22,55703592),method,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),children,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),((cljs.analyzer.js_tag_QMARK_(tag))?(function (){var or__5025__auto__ \x3d cljs.analyzer.js_tag.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(tag)),new cljs.core.Keyword(null,\x22ret-tag\x22,\x22ret-tag\x22,1705919990));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null);\n}\n})():tag)], null);\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__38378__$1)].join(\x27\x27)));\n\n}\n});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(function (_,env,p__38379,___$1,___$2){\nvar vec__38380 \x3d p__38379;\nvar seq__38381 \x3d cljs.core.seq(vec__38380);\nvar first__38382 \x3d cljs.core.first(seq__38381);\nvar seq__38381__$1 \x3d cljs.core.next(seq__38381);\nvar ___$3 \x3d first__38382;\nvar first__38382__$1 \x3d cljs.core.first(seq__38381__$1);\nvar seq__38381__$2 \x3d cljs.core.next(seq__38381__$1);\nvar target \x3d first__38382__$1;\nvar vec__38383 \x3d seq__38381__$2;\nvar seq__38384 \x3d cljs.core.seq(vec__38383);\nvar first__38385 \x3d cljs.core.first(seq__38384);\nvar seq__38384__$1 \x3d cljs.core.next(seq__38384);\nvar field \x3d first__38385;\nvar member_PLUS_ \x3d seq__38384__$1;\nvar form \x3d vec__38380;\nvar _STAR_recur_frames_STAR__orig_val__38386 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38387 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38387);\n\ntry{return cljs.analyzer.analyze_dot(env,target,field,member_PLUS_,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38386);\n}}));\ncljs.analyzer.get_js_tag \x3d (function cljs$analyzer$get_js_tag(form){\nvar form_meta \x3d cljs.core.meta(form);\nvar temp__5827__auto__ \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(form_meta);\nif((temp__5827__auto__ \x3d\x3d null)){\nif(new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta) \x3d\x3d\x3d true){\nreturn new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null);\n} else {\nreturn null;\n}\n} else {\nvar tag \x3d temp__5827__auto__;\nreturn tag;\n}\n});\ncljs.analyzer.js_star_interp \x3d (function cljs$analyzer$js_star_interp(env,s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nvar inner \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_existing_var(env,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,((2) + idx),end))));\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),cljs.core.cons(inner,(function (){var G__38394 \x3d env;\nvar G__38395 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.js_star_interp.cljs$core$IFn$_invoke$arity$2(G__38394,G__38395) : cljs.analyzer.js_star_interp.call(null,G__38394,G__38395));\n})()));\n}),null,null));\n}\n});\ncljs.analyzer.js_star_seg \x3d (function cljs$analyzer$js_star_seg(s){\nvar idx \x3d s.indexOf(\x22~{\x22);\nif(((-1) \x3d\x3d\x3d idx)){\nreturn (new cljs.core.List(null,s,null,(1),null));\n} else {\nvar end \x3d s.indexOf(\x22}\x22,idx);\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx),(function (){var G__38398 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(end + (1)));\nreturn (cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.js_star_seg.cljs$core$IFn$_invoke$arity$1(G__38398) : cljs.analyzer.js_star_seg.call(null,G__38398));\n})());\n}),null,null));\n}\n});\ncljs.analyzer.NUMERIC_SET \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),\x22null\x22,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null),\x22null\x22,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null),\x22null\x22,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null),\x22null\x22], null), null);\ncljs.analyzer.numeric_type_QMARK_ \x3d (function cljs$analyzer$numeric_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif((((t instanceof cljs.core.Symbol)) \x26\x26 ((!((cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.NUMERIC_SET,t) \x3d\x3d null)))))){\nreturn true;\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(t)){\nreturn ((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22number\x22,\x22number\x22,-1084057331,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22long\x22,\x22long\x22,1469079434,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22double\x22,\x22double\x22,-1769548886,null))) || (((cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null))) || (cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null))))))))));\n} else {\nreturn null;\n}\n}\n\n}\n}\n}\n});\ncljs.analyzer.array_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),\x22null\x22,new cljs.core.Symbol(null,\x22floats\x22,\x22floats\x22,513591110,null),\x22null\x22,new cljs.core.Symbol(null,\x22longs\x22,\x22longs\x22,-1017696020,null),\x22null\x22,new cljs.core.Symbol(null,\x22objects\x22,\x22objects\x22,-554722035,null),\x22null\x22,new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null),\x22null\x22,new cljs.core.Symbol(null,\x22doubles\x22,\x22doubles\x22,-1517872169,null),\x22null\x22,new cljs.core.Symbol(null,\x22chars\x22,\x22chars\x22,545901210,null),\x22null\x22,new cljs.core.Symbol(null,\x22ints\x22,\x22ints\x22,-1761239845,null),\x22null\x22,new cljs.core.Symbol(null,\x22shorts\x22,\x22shorts\x22,107738238,null),\x22null\x22,new cljs.core.Symbol(null,\x22bytes\x22,\x22bytes\x22,-1478569089,null),\x22null\x22], null), null);\ncljs.analyzer.array_type_QMARK_ \x3d (function cljs$analyzer$array_type_QMARK_(t){\nif((t \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22clj-nil\x22,\x22clj-nil\x22,1321798654,null),t)){\nreturn true;\n} else {\nif(cljs.analyzer.js_tag_QMARK_(t)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null),t)){\nreturn true;\n} else {\nif(cljs.core.contains_QMARK_(cljs.analyzer.array_types,t)){\nreturn true;\n} else {\nreturn cljs.core.boolean$(((cljs.analyzer.impl.cljs_set_QMARK_(t))?(function (){var or__5025__auto__ \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null));\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar or__5025__auto____$1 \x3d cljs.core.contains_QMARK_(t,new cljs.core.Symbol(null,\x22js\x22,\x22js\x22,-886355190,null));\nif(or__5025__auto____$1){\nreturn or__5025__auto____$1;\n} else {\nreturn cljs.core.some(cljs.analyzer.array_types,t);\n}\n}\n})():null));\n\n}\n}\n}\n}\n}\n});\ncljs.analyzer.analyze_js_star_args \x3d (function cljs$analyzer$analyze_js_star_args(js_op,env,args){\nreturn cljs.core.first(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__38404,arg){\nvar vec__38405 \x3d p__38404;\nvar argexprs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(0),null);\nvar env__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38405,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argexprs,(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env__$1,arg) : cljs.analyzer.analyze.call(null,env__$1,arg))),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(js_op,new cljs.core.Symbol(\x22cljs.core\x22,\x22and\x22,\x22cljs.core/and\x22,-6692549,null)))?cljs.analyzer.set_test_induced_tags(env__$1,arg):env__$1)], null);\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.PersistentVector.EMPTY,env], null),args));\n});\ncljs.analyzer.analyze_js_star_STAR_ \x3d (function cljs$analyzer$analyze_js_star_STAR_(env,jsform,args,form){\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar form_meta \x3d cljs.core.meta(form);\nvar segs \x3d cljs.analyzer.js_star_seg(jsform);\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar argexprs \x3d cljs.analyzer.analyze_js_star_args(js_op,enve,args);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar validate \x3d (function (warning_type,valid_types_QMARK_){\nvar types \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38408_SHARP_){\nreturn cljs.analyzer.infer_tag(env,p1__38408_SHARP_);\n}),argexprs);\nif(cljs.core.truth_((valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1 ? valid_types_QMARK_.cljs$core$IFn$_invoke$arity$1(types) : valid_types_QMARK_.call(null,types)))){\nreturn null;\n} else {\nreturn cljs.analyzer.warning(warning_type,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,types)], null));\n}\n});\nvar op_match_QMARK_ \x3d (function (sym){\nreturn cljs.core.symbol_identical_QMARK_(sym,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta));\n});\nif(numeric \x3d\x3d\x3d true){\nvalidate(new cljs.core.Keyword(null,\x22invalid-arithmetic\x22,\x22invalid-arithmetic\x22,1917075065),(function (p1__38409_SHARP_){\nreturn cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,p1__38409_SHARP_);\n}));\n} else {\n}\n\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),new cljs.core.Keyword(null,\x22segs\x22,\x22segs\x22,-1940299576),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)],[argexprs,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null),numeric,segs,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),env,js_op,form,tag]);\n});\ncljs.analyzer.analyze_js_star \x3d (function cljs$analyzer$analyze_js_star(env,jsform,args,form){\nvar _STAR_recur_frames_STAR__orig_val__38415 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38416 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38416);\n\ntry{return cljs.analyzer.analyze_js_star_STAR_(env,jsform,args,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38415);\n}});\ncljs.analyzer.parse.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),(function (op,env,p__38421,_,___$1){\nvar vec__38422 \x3d p__38421;\nvar seq__38423 \x3d cljs.core.seq(vec__38422);\nvar first__38424 \x3d cljs.core.first(seq__38423);\nvar seq__38423__$1 \x3d cljs.core.next(seq__38423);\nvar ___$2 \x3d first__38424;\nvar first__38424__$1 \x3d cljs.core.first(seq__38423__$1);\nvar seq__38423__$2 \x3d cljs.core.next(seq__38423__$1);\nvar jsform \x3d first__38424__$1;\nvar args \x3d seq__38423__$2;\nvar form \x3d vec__38422;\nif(typeof jsform \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env,\x22Invalid js* form\x22);\n}\n\nif((!((args \x3d\x3d null)))){\nreturn cljs.analyzer.analyze_js_star(env,jsform,args,form);\n} else {\nvar code \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.analyzer.js_star_interp(env,jsform));\nvar tag \x3d cljs.analyzer.get_js_tag(form);\nvar form_meta \x3d cljs.core.meta(form);\nvar js_op \x3d new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897).cljs$core$IFn$_invoke$arity$1(form_meta);\nvar numeric \x3d new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714).cljs$core$IFn$_invoke$arity$1(form_meta);\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),code,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag,new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),numeric], null);\n}\n}));\ncljs.analyzer.unsorted_map_QMARK_ \x3d (function cljs$analyzer$unsorted_map_QMARK_(x){\nreturn ((cljs.core.map_QMARK_(x)) \x26\x26 ((!(cljs.core.sorted_QMARK_(x)))));\n});\n/**\n * Mark a form as being analyzed. Assumes x satisfies IMeta. Useful to suppress\n * warnings that will have been caught by a first compiler pass.\n */\ncljs.analyzer.analyzed \x3d (function cljs$analyzer$analyzed(x){\nif(cljs.analyzer.unsorted_map_QMARK_(x)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n} else {\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(x,cljs.core.assoc,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162),true);\n\n}\n});\n/**\n * Returns boolean if the form has already been marked as analyzed.\n */\ncljs.analyzer.analyzed_QMARK_ \x3d (function cljs$analyzer$analyzed_QMARK_(x){\nreturn cljs.core.boolean$(((cljs.analyzer.unsorted_map_QMARK_(x))?new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(x):new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(x))\n));\n});\ncljs.analyzer.all_values_QMARK_ \x3d (function cljs$analyzer$all_values_QMARK_(exprs){\nreturn cljs.core.every_QMARK_((function (p1__38429_SHARP_){\nreturn (((p1__38429_SHARP_ \x3d\x3d null)) || ((((p1__38429_SHARP_ instanceof cljs.core.Symbol)) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27string\x27) || (((typeof p1__38429_SHARP_ \x3d\x3d\x3d \x27number\x27) || (((p1__38429_SHARP_ \x3d\x3d\x3d true) || (p1__38429_SHARP_ \x3d\x3d\x3d false))))))))));\n}),exprs);\n});\ncljs.analyzer.valid_arity_QMARK_ \x3d (function cljs$analyzer$valid_arity_QMARK_(argc,method_params){\nreturn (((method_params \x3d\x3d null)) || (cljs.core.boolean$(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([argc]),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,method_params)))));\n});\ncljs.analyzer.record_tag_QMARK_ \x3d (function cljs$analyzer$record_tag_QMARK_(tag){\nreturn cljs.core.boolean$((function (){var and__5023__auto__ \x3d (tag instanceof cljs.core.Symbol);\nif(and__5023__auto__){\nvar and__5023__auto____$1 \x3d (!((cljs.core.namespace(tag) \x3d\x3d null)));\nif(and__5023__auto____$1){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(tag)),new cljs.core.Keyword(null,\x22record\x22,\x22record\x22,-779106859)], null));\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})());\n});\ncljs.analyzer.record_basis \x3d (function cljs$analyzer$record_basis(tag){\nvar positional_factory \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22-\x3e\x22,cljs.core.name(tag)].join(\x27\x27));\nvar fields \x3d cljs.core.first(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(tag)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),positional_factory,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179)], null)));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,fields);\n});\ncljs.analyzer.record_with_field_QMARK_ \x3d (function cljs$analyzer$record_with_field_QMARK_(tag,field){\nreturn ((cljs.analyzer.record_tag_QMARK_(tag)) \x26\x26 (cljs.core.contains_QMARK_(cljs.analyzer.record_basis(tag),field)));\n});\ncljs.analyzer.invalid_arity_QMARK_ \x3d (function cljs$analyzer$invalid_arity_QMARK_(argc,method_params,variadic,max_fixed_arity){\nvar and__5023__auto__ \x3d (!(cljs.analyzer.valid_arity_QMARK_(argc,method_params)));\nif(and__5023__auto__){\nvar or__5025__auto__ \x3d cljs.core.not(variadic);\nif(or__5025__auto__){\nreturn or__5025__auto__;\n} else {\nvar and__5023__auto____$1 \x3d variadic;\nif(cljs.core.truth_(and__5023__auto____$1)){\nreturn (argc \x3c max_fixed_arity);\n} else {\nreturn and__5023__auto____$1;\n}\n}\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.parse_invoke_STAR_ \x3d (function cljs$analyzer$parse_invoke_STAR_(env,p__38437){\nvar vec__38438 \x3d p__38437;\nvar seq__38439 \x3d cljs.core.seq(vec__38438);\nvar first__38440 \x3d cljs.core.first(seq__38439);\nvar seq__38439__$1 \x3d cljs.core.next(seq__38439);\nvar f \x3d first__38440;\nvar args \x3d seq__38439__$1;\nvar form \x3d vec__38438;\nvar enve \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar fexpr \x3d (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,f) : cljs.analyzer.analyze.call(null,enve,f));\nvar argc \x3d cljs.core.count(args);\nvar fn_var_QMARK_ \x3d (function (){var or__5025__auto__ \x3d new cljs.core.Keyword(null,\x22fn-var\x22,\x22fn-var\x22,1086204730).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22js-fn-var\x22,\x22js-fn-var\x22,-565665358).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\n}\n})();\nvar kw_QMARK_ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(\x22cljs.core\x22,\x22Keyword\x22,\x22cljs.core/Keyword\x22,-451434488,null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar cur_ns \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env));\nvar HO_invoke_QMARK_ \x3d ((cljs.core.boolean$(cljs.analyzer._STAR_cljs_static_fns_STAR_)) \x26\x26 (((cljs.core.not(fn_var_QMARK_)) \x26\x26 ((((!(cljs.analyzer.js_tag_QMARK_(f)))) \x26\x26 ((((!(kw_QMARK_))) \x26\x26 ((!(cljs.analyzer.analyzed_QMARK_(f)))))))))));\nvar bind_f_expr_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!((f instanceof cljs.core.Symbol)))));\nvar bind_args_QMARK_ \x3d ((HO_invoke_QMARK_) \x26\x26 ((!(cljs.analyzer.all_values_QMARK_(args)))));\nif(fn_var_QMARK_){\nvar map__38441_39147 \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr);\nvar map__38441_39148__$1 \x3d cljs.core.__destructure_map(map__38441_39147);\nvar variadic_39149 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity_39150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params_39151 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar name_39152 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\nvar ns_39153 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar macro_39154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38441_39148__$1,new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404));\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d cljs.core.not((function (){var and__5023__auto__ \x3d goog.string.endsWith(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cur_ns),\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn ((cljs.core.symbol_identical_QMARK_(cur_ns,ns_39153)) \x26\x26 (macro_39154 \x3d\x3d\x3d true));\n} else {\nreturn and__5023__auto__;\n}\n})());\nif(and__5023__auto__){\nreturn cljs.analyzer.invalid_arity_QMARK_(argc,method_params_39151,variadic_39149,max_fixed_arity_39150);\n} else {\nreturn and__5023__auto__;\n}\n})())){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39152,new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n} else {\n}\n\nif(((kw_QMARK_) \x26\x26 ((!(((((1) \x3d\x3d\x3d argc)) || (((2) \x3d\x3d\x3d argc)))))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),cljs.core.first(form),new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc], null));\n} else {\n}\n\nvar deprecated_QMARK__39160 \x3d new cljs.core.Keyword(null,\x22deprecated\x22,\x22deprecated\x22,1498275348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr));\nvar no_warn_QMARK__39161 \x3d new cljs.core.Keyword(null,\x22deprecation-nowarn\x22,\x22deprecation-nowarn\x22,-1762828044).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nif(((cljs.core.boolean$(deprecated_QMARK__39160)) \x26\x26 ((!(cljs.core.boolean$(no_warn_QMARK__39161)))))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22fn-deprecated\x22,\x22fn-deprecated\x22,626877647),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif((!((new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(fexpr)) \x3d\x3d null)))){\ncljs.analyzer.warning(new cljs.core.Keyword(null,\x22invoke-ctor\x22,\x22invoke-ctor\x22,-756052704),env,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fexpr\x22,\x22fexpr\x22,-122857150),fexpr], null));\n} else {\n}\n\nif(((bind_args_QMARK_) || (bind_f_expr_QMARK_))){\nvar arg_syms \x3d ((bind_args_QMARK_)?cljs.core.take.cljs$core$IFn$_invoke$arity$2(argc,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(cljs.core.gensym)):null);\nvar f_sym \x3d ((bind_f_expr_QMARK_)?cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22fexpr__\x22):null);\nvar bindings \x3d (function (){var G__38445 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__38445__$1 \x3d ((bind_args_QMARK_)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(G__38445,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arg_syms,args)):G__38445);\nif(bind_f_expr_QMARK_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__38445__$1,f_sym,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.analyzer.analyzed(f)], 0));\n} else {\nreturn G__38445__$1;\n}\n})();\nvar tag \x3d new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar G__38446 \x3d env;\nvar G__38447 \x3d 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(\x22cljs.core\x22,\x22let\x22,\x22cljs.core/let\x22,-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(bindings)))),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$2((new cljs.core.List(null,cljs.analyzer.analyzed(((bind_f_expr_QMARK_)?f_sym:f)),null,(1),null)),((bind_args_QMARK_)?arg_syms:args)))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag], null)),null,(1),null))], 0))));\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38446,G__38447) : cljs.analyzer.analyze.call(null,G__38446,G__38447));\n} else {\nvar ana_expr \x3d (function (p1__38436_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(enve,p1__38436_SHARP_) : cljs.analyzer.analyze.call(null,enve,p1__38436_SHARP_));\n});\nvar argexprs \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(ana_expr,args);\nif((((((f instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(f) \x3d\x3d null)))) \x26\x26 (((((1) \x3d\x3d\x3d cljs.core.count(args))) \x26\x26 (cljs.analyzer.record_with_field_QMARK_(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.first(argexprs)),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(f)))))))){\nvar field_access_form \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([\x22.-\x22,cljs.core.name(f)].join(\x27\x27)),args);\nvar _STAR_cljs_warnings_STAR__orig_val__38448 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38449 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38449);\n\ntry{return (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(env,field_access_form) : cljs.analyzer.analyze.call(null,env,field_access_form));\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38448);\n}} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fexpr,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argexprs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576)], null)], null);\n}\n}\n});\ncljs.analyzer.parse_invoke \x3d (function cljs$analyzer$parse_invoke(env,form){\nvar _STAR_recur_frames_STAR__orig_val__38450 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38451 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38451);\n\ntry{return cljs.analyzer.parse_invoke_STAR_(env,form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38450);\n}});\ncljs.analyzer.desugar_dotted_expr \x3d (function cljs$analyzer$desugar_dotted_expr(p__38452){\nvar map__38453 \x3d p__38452;\nvar map__38453__$1 \x3d cljs.core.__destructure_map(map__38453);\nvar expr \x3d map__38453__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38453__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar G__38454 \x3d op;\nvar G__38454__$1 \x3d (((G__38454 instanceof cljs.core.Keyword))?G__38454.fqn:null);\nswitch (G__38454__$1) {\ncase \x22var\x22:\ncase \x22local\x22:\nif(cljs.analyzer.dotted_symbol_QMARK_(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr))))){\nvar s \x3d cljs.core.name(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr));\nvar idx \x3d s.lastIndexOf(\x22.\x22);\nvar _ \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((idx + (1)),((s).length)))?null:(function(){throw (new Error(\x22Assert failed: (not\x3d (inc idx) (count s))\x22))})());\nvar prefix \x3d cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(expr)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),idx)),cljs.core.meta(new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr)));\nvar field \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(idx + (1))));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(expr))){\n} else {\nthrow (new Error(\x22Assert failed: (not (:const-expr expr))\x22));\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22host-field\x22,\x22host-field\x22,-72662140),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),(new cljs.core.List(null,prefix,(new cljs.core.List(null,field,null,(1),null)),(2),null)),(3),null)),new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721),(function (){var G__38455 \x3d cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(expr,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),prefix,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),prefix], 0)),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)], null),prefix),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nreturn (cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.desugar_dotted_expr.cljs$core$IFn$_invoke$arity$1(G__38455) : cljs.analyzer.desugar_dotted_expr.call(null,G__38455));\n})(),new cljs.core.Keyword(null,\x22field\x22,\x22field\x22,-1302436500),field,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(expr),new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22target\x22,\x22target\x22,253001721)], null)], null);\n} else {\nreturn expr;\n}\n\nbreak;\ndefault:\nreturn expr;\n\n}\n});\n/**\n * Finds the var associated with sym\n */\ncljs.analyzer.analyze_symbol \x3d (function cljs$analyzer$analyze_symbol(env,sym){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\ncljs.analyzer.register_constant_BANG_.cljs$core$IFn$_invoke$arity$2(env,sym);\n\nvar G__38456 \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),sym,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22Symbol\x22,\x22cljs.core/Symbol\x22,292989338,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38456) : cljs.analyzer.analyze_wrap_meta.call(null,G__38456));\n} else {\nvar map__38457 \x3d cljs.core.meta(sym);\nvar map__38457__$1 \x3d cljs.core.__destructure_map(map__38457);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38457__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar env__$1 \x3d (((!((line \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):env);\nvar env__$2 \x3d (((!((column \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column):env__$1);\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env__$2,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),sym], null);\nvar lcls \x3d new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783).cljs$core$IFn$_invoke$arity$1(env__$2);\nvar temp__5827__auto__ \x3d cljs.analyzer.handle_symbol_local(sym,cljs.core.get.cljs$core$IFn$_invoke$arity$2(lcls,sym));\nif((temp__5827__auto__ \x3d\x3d null)){\nvar sym_meta \x3d cljs.core.meta(sym);\nvar sym_ns \x3d cljs.core.namespace(sym);\nvar cur_ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(env__$2)));\nvar sym__$1 \x3d (cljs.core.truth_((function (){var and__5023__auto__ \x3d sym_ns;\nif(cljs.core.truth_(and__5023__auto__)){\nvar and__5023__auto____$1 \x3d cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,\x22cljs.core\x22);\nif(and__5023__auto____$1){\nvar and__5023__auto____$2 \x3d goog.string.endsWith(cur_ns,\x22$macros\x22);\nif(cljs.core.truth_(and__5023__auto____$2)){\nreturn ((cljs.core.not(goog.string.endsWith(sym_ns,\x22$macros\x22))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(sym_ns,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cur_ns,(0),(((cur_ns).length) - (7))))));\n} else {\nreturn and__5023__auto____$2;\n}\n} else {\nreturn and__5023__auto____$1;\n}\n} else {\nreturn and__5023__auto__;\n}\n})())?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2([sym_ns,\x22$macros\x22].join(\x27\x27),cljs.core.name(sym)):sym);\nvar info \x3d (((!(cljs.core.contains_QMARK_(sym_meta,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162)))))?cljs.analyzer.resolve_existing_var(env__$2,sym__$1):cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(info)),\x22\\n\x22,\x22(:op info)\x22].join(\x27\x27)));\n}\n\nreturn cljs.analyzer.desugar_dotted_expr((((!(new cljs.core.Keyword(null,\x22def-var\x22,\x22def-var\x22,-698214377).cljs$core$IFn$_invoke$arity$1(env__$2) \x3d\x3d\x3d true)))?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info),cljs.core.select_keys(info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null)),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292).cljs$core$IFn$_invoke$arity$1(info);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar const_expr \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),const_expr], null);\n} else {\nreturn null;\n}\n})()], 0)):(function (){var info__$1 \x3d cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(env__$2,sym__$1);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22var\x22,\x22var\x22,-769682797),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),info__$1], 0)),cljs.core.select_keys(info__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223)], null))], 0));\n})()));\n} else {\nvar lb \x3d temp__5827__auto__;\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),lb], 0)),((cljs.core.map_QMARK_(lb))?cljs.core.select_keys(lb,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22local\x22,\x22local\x22,-1497766724),new cljs.core.Keyword(null,\x22arg-id\x22,\x22arg-id\x22,-767177868),new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762),new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434)], null)):null)], 0));\n}\n}\n});\ncljs.analyzer.excluded_QMARK_ \x3d (function cljs$analyzer$excluded_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22excludes\x22,\x22excludes\x22,-1791725945),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.used_QMARK_ \x3d (function cljs$analyzer$used_QMARK_(env,sym){\nreturn (((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))) || ((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$5(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177)),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym) \x3d\x3d null)))));\n});\ncljs.analyzer.get_expander_ns \x3d (function cljs$analyzer$get_expander_ns(env,nstr){\nvar res \x3d (function (){var or__5025__auto__ \x3d cljs.analyzer.resolve_macro_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.analyzer.resolve_ns_alias.cljs$core$IFn$_invoke$arity$3(env,nstr,null);\n}\n})();\nvar nstr__$1 \x3d (((!((res \x3d\x3d null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(res):nstr);\nif((\x22clojure.core\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM);\n} else {\nif((\x22clojure.repl\x22 \x3d\x3d\x3d nstr__$1)){\nreturn cljs.core.find_macros_ns(new cljs.core.Symbol(null,\x22cljs.repl\x22,\x22cljs.repl\x22,1767065658,null));\n} else {\nif(cljs.core.truth_(goog.string.contains(nstr__$1,\x22.\x22))){\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n} else {\nvar or__5025__auto__ \x3d (function (){var G__38458 \x3d env;\nvar G__38458__$1 \x3d (((G__38458 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(G__38458));\nvar G__38458__$2 \x3d (((G__38458__$1 \x3d\x3d null))?null:new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416).cljs$core$IFn$_invoke$arity$1(G__38458__$1));\nvar G__38458__$3 \x3d (((G__38458__$2 \x3d\x3d null))?null:cljs.core.get.cljs$core$IFn$_invoke$arity$2(G__38458__$2,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1)));\nif((G__38458__$3 \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.find_macros_ns(G__38458__$3);\n}\n})();\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.find_macros_ns(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(nstr__$1));\n}\n\n}\n}\n}\n});\ncljs.analyzer.get_expander_STAR_ \x3d (function cljs$analyzer$get_expander_STAR_(sym,env){\nif((((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22locals\x22,\x22locals\x22,535295783),sym) \x3d\x3d null)))) || (((cljs.analyzer.excluded_QMARK_(env,sym)) \x26\x26 ((!(cljs.analyzer.used_QMARK_(env,sym)))))))){\nreturn null;\n} else {\nvar nstr \x3d cljs.core.namespace(sym);\nif((!((nstr \x3d\x3d null)))){\nvar ns \x3d cljs.analyzer.get_expander_ns(env,nstr);\nif((!((ns \x3d\x3d null)))){\nreturn ns.findInternedVar(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym)));\n} else {\nreturn null;\n}\n} else {\nif((!((cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym) \x3d\x3d null)))){\nvar qualified_symbol \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22rename-macros\x22,\x22rename-macros\x22,1076432512),sym);\nvar nsym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(qualified_symbol));\nvar sym__$1 \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(qualified_symbol));\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym__$1);\n} else {\nvar nsym \x3d cljs.analyzer.gets.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22use-macros\x22,\x22use-macros\x22,-905638393),sym);\nif((((!((nsym \x3d\x3d null)))) \x26\x26 ((nsym instanceof cljs.core.Symbol)))){\nreturn cljs.core.find_macros_ns(nsym).findInternedVar(sym);\n} else {\nreturn cljs.core.find_macros_ns(cljs.analyzer.impl.CLJS_CORE_MACROS_SYM).findInternedVar(sym);\n}\n\n}\n}\n}\n});\n/**\n * Given a sym, a symbol identifying a macro, and env, an analysis environment\n * return the corresponding Clojure macroexpander.\n */\ncljs.analyzer.get_expander \x3d (function cljs$analyzer$get_expander(sym,env){\nvar mvar \x3d cljs.analyzer.get_expander_STAR_(sym,env);\nif((((!((mvar \x3d\x3d null)))) \x26\x26 (mvar.isMacro()))){\nreturn mvar;\n} else {\nreturn null;\n}\n});\nvar cached_var_39201 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)),new cljs.core.Symbol(null,\x22macroexpand-check\x22,\x22macroexpand-check\x22,699092091,null));\n}),null));\ncljs.analyzer.get_macroexpand_check_var \x3d (function cljs$analyzer$get_macroexpand_check_var(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha\x22,\x22cljs.spec.alpha\x22,505122844,null)) \x3d\x3d null)))){\nreturn cljs.core.deref(cached_var_39201);\n} else {\nreturn null;\n}\n});\ncljs.analyzer.var__GT_sym \x3d (function cljs$analyzer$var__GT_sym(var$){\nreturn var$.sym;\n});\ncljs.analyzer.do_macroexpand_check \x3d (function cljs$analyzer$do_macroexpand_check(env,form,mac_var){\nif(cljs.core.not(new cljs.core.Keyword(null,\x22spec-skip-macros\x22,\x22spec-skip-macros\x22,-645015958).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_))))){\nvar mchk \x3d cljs.analyzer.get_macroexpand_check_var();\nif((!((mchk \x3d\x3d null)))){\ntry{var G__38460 \x3d mac_var;\nvar G__38461 \x3d cljs.core.next(form);\nreturn (mchk.cljs$core$IFn$_invoke$arity$2 ? mchk.cljs$core$IFn$_invoke$arity$2(G__38460,G__38461) : mchk.call(null,G__38460,G__38461));\n}catch (e38459){var e \x3d e38459;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macro-syntax-check\x22,\x22macro-syntax-check\x22,2072602373),cljs.analyzer.var__GT_sym(mac_var)),e);\n}} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.check_macro_arity \x3d (function cljs$analyzer$check_macro_arity(mac_var,form){\nvar mac_sym \x3d mac_var.sym;\nvar temp__5825__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_sym)),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_sym))], null));\nif(cljs.core.truth_(temp__5825__auto__)){\nvar map__38463 \x3d temp__5825__auto__;\nvar map__38463__$1 \x3d cljs.core.__destructure_map(map__38463);\nvar variadic_QMARK_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22variadic?\x22,\x22variadic?\x22,584179762));\nvar max_fixed_arity \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22max-fixed-arity\x22,\x22max-fixed-arity\x22,-690205543));\nvar method_params \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38463__$1,new cljs.core.Keyword(null,\x22method-params\x22,\x22method-params\x22,-980792179));\nvar argc \x3d cljs.core.count(cljs.core.rest(form));\nvar offset \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22\x26form\x22,\x22\x26form\x22,1482799337,null),cljs.core.ffirst(method_params)))?(2):(0));\nif(cljs.core.truth_(cljs.analyzer.invalid_arity_QMARK_(argc,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__38462_SHARP_){\nreturn cljs.core.nthrest(p1__38462_SHARP_,offset);\n}),method_params),variadic_QMARK_,(cljs.core.truth_(max_fixed_arity)?(max_fixed_arity - offset):null)))){\nthrow (new Error(cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn-arity\x22,\x22fn-arity\x22,-403576501),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22argc\x22,\x22argc\x22,-1452839519),argc,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),mac_sym], null))));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.macroexpand_1_STAR_ \x3d (function cljs$analyzer$macroexpand_1_STAR_(env,form){\nif(cljs.core.seq_QMARK_(form)){\nvar op \x3d cljs.core.first(form);\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),op)){\ncljs.analyzer.do_macroexpand_check(env,form,cljs.analyzer.get_expander(new cljs.core.Symbol(\x22cljs.core\x22,\x22ns-special-form\x22,\x22cljs.core/ns-special-form\x22,1585185745,null),env));\n} else {\n}\n\nreturn form;\n} else {\nvar temp__5827__auto__ \x3d (((op instanceof cljs.core.Symbol))?cljs.analyzer.get_expander(op,env):null);\nif((temp__5827__auto__ \x3d\x3d null)){\nif((op instanceof cljs.core.Symbol)){\nvar opname \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(op);\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((0)))){\nvar vec__38464 \x3d cljs.core.next(form);\nvar seq__38465 \x3d cljs.core.seq(vec__38464);\nvar first__38466 \x3d cljs.core.first(seq__38465);\nvar seq__38465__$1 \x3d cljs.core.next(seq__38465);\nvar target \x3d first__38466;\nvar args \x3d seq__38465__$1;\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(cljs.analyzer.impl.DOT_SYM,target,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(opname,(1))),args),cljs.core.meta(form));\n} else {\nif((\x22.\x22 \x3d\x3d\x3d opname.charAt((opname.length - (1))))){\nreturn cljs.core.with_meta(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.impl.NEW_SYM,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(opname,(0),(((opname).length) - (1)))),cljs.core.next(form)),cljs.core.meta(form));\n} else {\nreturn form;\n\n}\n}\n} else {\nreturn form;\n}\n} else {\nvar mac_var \x3d temp__5827__auto__;\ncljs.analyzer.do_macroexpand_check(env,form,mac_var);\n\nvar form_SINGLEQUOTE_ \x3d (function (){try{cljs.analyzer.check_macro_arity(mac_var,form);\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(mac_var),form,env,cljs.core.rest(form));\n}catch (e38467){var e \x3d e38467;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22macroexpansion\x22,\x22macroexpansion\x22,706274075),cljs.analyzer.var__GT_sym(mac_var)),e);\n}})();\nif(cljs.analyzer.impl.cljs_seq_QMARK_(form_SINGLEQUOTE_)){\nvar sym_SINGLEQUOTE_ \x3d cljs.core.first(form_SINGLEQUOTE_);\nvar sym \x3d cljs.core.first(form);\nif(cljs.core.symbol_identical_QMARK_(sym_SINGLEQUOTE_,cljs.analyzer.impl.JS_STAR_SYM)){\nvar sym__$1 \x3d (((!((cljs.core.namespace(sym) \x3d\x3d null))))?sym:cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.core\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)));\nvar js_op \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-op\x22,\x22js-op\x22,-1046277897),sym__$1], null);\nvar numeric \x3d (function (){var mac_var_ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(mac_var.sym));\nvar mac_var_name \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(mac_var.sym));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),mac_var_ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),mac_var_name,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22numeric\x22,\x22cljs.analyzer/numeric\x22,1415704188)], null));\n})();\nvar js_op__$1 \x3d ((numeric \x3d\x3d\x3d true)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(js_op,new cljs.core.Keyword(null,\x22numeric\x22,\x22numeric\x22,-1495594714),true):js_op);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(form_SINGLEQUOTE_,cljs.core.merge,js_op__$1);\n} else {\nreturn form_SINGLEQUOTE_;\n}\n} else {\nreturn form_SINGLEQUOTE_;\n}\n}\n}\n} else {\nreturn form;\n}\n});\n/**\n * Given a env, an analysis environment, and form, a ClojureScript form,\n * macroexpand the form once.\n */\ncljs.analyzer.macroexpand_1 \x3d (function cljs$analyzer$macroexpand_1(env,form){\ntry{return cljs.analyzer.macroexpand_1_STAR_(env,form);\n}catch (e38468){var err__8939__auto__ \x3d e38468;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq_STAR_ \x3d (function cljs$analyzer$analyze_seq_STAR_(op,env,form,name,opts){\nif(cljs.core.contains_QMARK_(cljs.analyzer.specials,op)){\nreturn cljs.analyzer.parse.cljs$core$IFn$_invoke$arity$5(op,env,form,name,opts);\n} else {\nreturn cljs.analyzer.parse_invoke(env,form);\n}\n});\ncljs.analyzer.analyze_seq_STAR__wrap \x3d (function cljs$analyzer$analyze_seq_STAR__wrap(op,env,form,name,opts){\ntry{return cljs.analyzer.analyze_seq_STAR_(op,env,form,name,opts);\n}catch (e38469){var err__8939__auto__ \x3d e38469;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}});\ncljs.analyzer.analyze_seq \x3d (function cljs$analyzer$analyze_seq(var_args){\nvar G__38471 \x3d arguments.length;\nswitch (G__38471) {\ncase 3:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\nif(new cljs.core.Keyword(null,\x22quoted?\x22,\x22quoted?\x22,1464649621).cljs$core$IFn$_invoke$arity$1(env)){\nreturn (cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze_list.cljs$core$IFn$_invoke$arity$2(env,form) : cljs.analyzer.analyze_list.call(null,env,form));\n} else {\nvar line \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar line__$1 \x3d (((line \x3d\x3d null))?new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(env):line);\nvar col \x3d new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(form));\nvar col__$1 \x3d (((col \x3d\x3d null))?new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095).cljs$core$IFn$_invoke$arity$1(env):col);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(env,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),col__$1], 0));\nvar op \x3d cljs.core.first(form);\nif((op \x3d\x3d null)){\nthrow cljs.analyzer.error.cljs$core$IFn$_invoke$arity$2(env__$1,\x22Can\x27t call nil\x22);\n} else {\n}\n\nvar mform \x3d cljs.analyzer.macroexpand_1(env__$1,form);\nif((form \x3d\x3d\x3d mform)){\nreturn cljs.analyzer.analyze_seq_STAR__wrap(op,env__$1,form,name,opts);\n} else {\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,mform,name,opts) : cljs.analyzer.analyze.call(null,env__$1,mform,name,opts));\n}\n}\n}));\n\n(cljs.analyzer.analyze_seq.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.analyzer.analyze_map \x3d (function cljs$analyzer$analyze_map(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar ks \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38474 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38475 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38475);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38472_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38472_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38472_SHARP_));\n}),cljs.core.keys(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38474);\n}})();\nvar vs \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38476 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38477 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38477);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38473_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38473_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38473_SHARP_));\n}),cljs.core.vals(form));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38476);\n}})();\nvar G__38478 \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),ks,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vs,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IMap\x22,\x22cljs.core/IMap\x22,1407777598,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38478) : cljs.analyzer.analyze_wrap_meta.call(null,G__38478));\n});\ncljs.analyzer.analyze_list \x3d (function cljs$analyzer$analyze_list(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38480 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38481 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38481);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38479_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38479_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38479_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38480);\n}})();\nvar G__38482 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38482) : cljs.analyzer.analyze_wrap_meta.call(null,G__38482));\n});\ncljs.analyzer.analyze_vector \x3d (function cljs$analyzer$analyze_vector(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38484 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38485 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38485);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38483_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38483_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38483_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38484);\n}})();\nvar G__38486 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22IVector\x22,\x22cljs.core/IVector\x22,1711112835,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38486) : cljs.analyzer.analyze_wrap_meta.call(null,G__38486));\n});\ncljs.analyzer.analyze_set \x3d (function cljs$analyzer$analyze_set(env,form){\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38488 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38489 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38489);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38487_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38487_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38487_SHARP_));\n}),form);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38488);\n}})();\nvar G__38490 \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core\x22,\x22ISet\x22,\x22cljs.core/ISet\x22,2003412810,null)], null);\nreturn (cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1 ? cljs.analyzer.analyze_wrap_meta.cljs$core$IFn$_invoke$arity$1(G__38490) : cljs.analyzer.analyze_wrap_meta.call(null,G__38490));\n});\ncljs.analyzer.analyze_js_value \x3d (function cljs$analyzer$analyze_js_value(env,form){\nvar val \x3d form.val;\nvar expr_env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nif(cljs.core.map_QMARK_(val)){\nvar keys \x3d cljs.core.vec(cljs.core.keys(val));\nvar vals \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38493 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38494 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38494);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38491_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38491_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38491_SHARP_));\n}),cljs.core.vals(val));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38493);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-object\x22,\x22js-object\x22,1830199158),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22keys\x22,\x22keys\x22,1068423698),keys,new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733),vals,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22vals\x22,\x22vals\x22,768058733)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22object\x22,\x22object\x22,-1179821820,null)], null);\n} else {\nvar items \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38495 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38496 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38496);\n\ntry{return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__38492_SHARP_){\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(expr_env,p1__38492_SHARP_) : cljs.analyzer.analyze.call(null,expr_env,p1__38492_SHARP_));\n}),val);\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38495);\n}})();\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22js-array\x22,\x22js-array\x22,-1210185421),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938),items,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22items\x22,\x22items\x22,1031954938)], null),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22array\x22,\x22array\x22,-440182315,null)], null);\n}\n});\ncljs.analyzer.record_ns_PLUS_name \x3d (function cljs$analyzer$record_ns_PLUS_name(x){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.symbol,clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(x)], 0)),/\\//));\n});\ncljs.analyzer.analyze_record \x3d (function cljs$analyzer$analyze_record(env,x){\nvar _items_ \x3d (function (){var _STAR_recur_frames_STAR__orig_val__38501 \x3d cljs.analyzer._STAR_recur_frames_STAR_;\nvar _STAR_recur_frames_STAR__temp_val__38502 \x3d cljs.core.cons(null,cljs.analyzer._STAR_recur_frames_STAR_);\n(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__temp_val__38502);\n\ntry{var G__38503 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar G__38504 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,x);\nreturn (cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 ? cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(G__38503,G__38504) : cljs.analyzer.analyze.call(null,G__38503,G__38504));\n}finally {(cljs.analyzer._STAR_recur_frames_STAR_ \x3d _STAR_recur_frames_STAR__orig_val__38501);\n}})();\nvar vec__38498 \x3d cljs.analyzer.record_ns_PLUS_name(x);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(0),null);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38498,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),x,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name))], null);\n});\ncljs.analyzer.elide_reader_meta \x3d (function cljs$analyzer$elide_reader_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22source\x22,\x22source\x22,-433931539)], 0));\n});\ncljs.analyzer.elide_analyzer_meta \x3d (function cljs$analyzer$elide_analyzer_meta(m){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22analyzed\x22,\x22cljs.analyzer/analyzed\x22,-735094162));\n});\ncljs.analyzer.elide_irrelevant_meta \x3d (function cljs$analyzer$elide_irrelevant_meta(m){\nreturn cljs.analyzer.elide_analyzer_meta(cljs.analyzer.elide_reader_meta(m));\n});\ncljs.analyzer.analyze_wrap_meta \x3d (function cljs$analyzer$analyze_wrap_meta(expr){\nvar form \x3d new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471).cljs$core$IFn$_invoke$arity$1(expr);\nvar m \x3d cljs.analyzer.elide_irrelevant_meta(cljs.core.meta(form));\nif((!((cljs.core.seq(m) \x3d\x3d null)))){\nvar env \x3d new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr);\nvar expr__$1 \x3d cljs.core.assoc_in(expr,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113)], null),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291));\nvar meta_expr \x3d cljs.analyzer.analyze_map(new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235).cljs$core$IFn$_invoke$arity$1(expr__$1),m);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22with-meta\x22,\x22with-meta\x22,-1566856820),new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),meta_expr,new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291),expr__$1,new cljs.core.Keyword(null,\x22children\x22,\x22children\x22,-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)], null);\n} else {\nreturn expr;\n}\n});\ncljs.analyzer.infer_type \x3d (function cljs$analyzer$infer_type(env,p__38506,_){\nvar map__38507 \x3d p__38506;\nvar map__38507__$1 \x3d cljs.core.__destructure_map(map__38507);\nvar ast \x3d map__38507__$1;\nvar tag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38507__$1,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223));\nif((((tag \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22function\x22,\x22function\x22,-486723946,null),tag)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866),(function (ms){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__38505_SHARP_){\nreturn (cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3 ? cljs.analyzer.infer_type.cljs$core$IFn$_invoke$arity$3(env,p1__38505_SHARP_,_) : cljs.analyzer.infer_type.call(null,env,p1__38505_SHARP_,_));\n})),ms);\n}));\n} else {\nvar temp__5827__auto__ \x3d cljs.analyzer.infer_tag(env,ast);\nif((temp__5827__auto__ \x3d\x3d null)){\nreturn ast;\n} else {\nvar tag__$1 \x3d temp__5827__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ast,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag__$1);\n}\n}\n} else {\nreturn ast;\n}\n});\ncljs.analyzer.repl_self_require_QMARK_ \x3d (function cljs$analyzer$repl_self_require_QMARK_(env,deps){\nvar and__5023__auto__ \x3d new cljs.core.Keyword(null,\x22repl-env\x22,\x22repl-env\x22,-1976503928).cljs$core$IFn$_invoke$arity$1(env);\nif(cljs.core.truth_(and__5023__auto__)){\nreturn cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.analyzer._STAR_cljs_ns_STAR_]),deps);\n} else {\nreturn and__5023__auto__;\n}\n});\ncljs.analyzer.invoke_arg_type_validators \x3d (function (){var aget_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38508_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38508_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.rest(p1__38508_SHARP_))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nvar aset_validator \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379),(function (p1__38509_SHARP_){\nreturn ((cljs.analyzer.array_type_QMARK_(cljs.core.first(p1__38509_SHARP_))) \x26\x26 (cljs.core.every_QMARK_(cljs.analyzer.numeric_type_QMARK_,cljs.core.butlast(cljs.core.rest(p1__38509_SHARP_)))));\n}),new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595),new cljs.core.Keyword(null,\x22invalid-array-access\x22,\x22invalid-array-access\x22,-1747132236)], null);\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x22,\x22cljs.core/checked-aget\x22,24024561,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x22,\x22cljs.core/checked-aset\x22,-2080232353,null),aset_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aget\x27\x22,\x22cljs.core/checked-aget\x27\x22,1960922245,null),aget_validator,new cljs.core.Symbol(\x22cljs.core\x22,\x22checked-aset\x27\x22,\x22cljs.core/checked-aset\x27\x22,163859714,null),aset_validator], null);\n})();\ncljs.analyzer.check_invoke_arg_types \x3d (function cljs$analyzer$check_invoke_arg_types(env,p__38510,opts){\nvar map__38511 \x3d p__38510;\nvar map__38511__$1 \x3d cljs.core.__destructure_map(map__38511);\nvar ast \x3d map__38511__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38511__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nif((((!(cljs.analyzer.analyzed_QMARK_(ast)))) \x26\x26 (cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(null,\x22invoke\x22,\x22invoke\x22,1145927159),op)))){\nvar temp__5829__auto___39264 \x3d cljs.core.find(cljs.analyzer.invoke_arg_type_validators,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(ast))));\nif((temp__5829__auto___39264 \x3d\x3d null)){\n} else {\nvar vec__38512_39271 \x3d temp__5829__auto___39264;\nvar name_39272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(0),null);\nvar map__38515_39273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38512_39271,(1),null);\nvar map__38515_39274__$1 \x3d cljs.core.__destructure_map(map__38515_39273);\nvar valid_QMARK__39275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22valid?\x22,\x22valid?\x22,-212412379));\nvar warning_type_39276 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38515_39274__$1,new cljs.core.Keyword(null,\x22warning-type\x22,\x22warning-type\x22,1711103595));\nvar types_39277 \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(ast));\nif(cljs.core.truth_((valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1 ? valid_QMARK__39275.cljs$core$IFn$_invoke$arity$1(types_39277) : valid_QMARK__39275.call(null,types_39277)))){\n} else {\ncljs.analyzer.warning(warning_type_39276,env,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),name_39272,new cljs.core.Keyword(null,\x22types\x22,\x22types\x22,590030639),types_39277], null));\n}\n}\n} else {\n}\n\nreturn cljs.analyzer.analyzed(ast);\n});\ncljs.analyzer.analyze_form \x3d (function cljs$analyzer$analyze_form(env,form,name,opts){\nif((form instanceof cljs.core.Symbol)){\nreturn cljs.analyzer.analyze_symbol(env,form);\n} else {\nif(((cljs.analyzer.impl.cljs_seq_QMARK_(form)) \x26\x26 ((!((cljs.core.seq(form) \x3d\x3d null)))))){\nreturn cljs.analyzer.analyze_seq.cljs$core$IFn$_invoke$arity$4(env,form,name,opts);\n} else {\nif(cljs.core.record_QMARK_(form)){\nreturn cljs.analyzer.analyze_record(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_map_QMARK_(form)){\nreturn cljs.analyzer.analyze_map(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_vector_QMARK_(form)){\nreturn cljs.analyzer.analyze_vector(env,form);\n} else {\nif(cljs.analyzer.impl.cljs_set_QMARK_(form)){\nreturn cljs.analyzer.analyze_set(env,form);\n} else {\nif((form instanceof cljs.core.Keyword)){\nreturn cljs.analyzer.analyze_keyword(env,form);\n} else {\nif((form instanceof cljs.tagged_literals.JSValue)){\nreturn cljs.analyzer.analyze_js_value(env,form);\n} else {\nvar tag \x3d (((form \x3d\x3d null))?cljs.analyzer.impl.CLJ_NIL_SYM:((typeof form \x3d\x3d\x3d \x27number\x27)?cljs.analyzer.impl.NUMBER_SYM:((typeof form \x3d\x3d\x3d \x27string\x27)?cljs.analyzer.impl.STRING_SYM:((form \x3d\x3d\x3d true)?cljs.analyzer.impl.BOOLEAN_SYM:((form \x3d\x3d\x3d false)?cljs.analyzer.impl.BOOLEAN_SYM:((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,form))?new cljs.core.Symbol(\x22cljs.core\x22,\x22IList\x22,\x22cljs.core/IList\x22,1015168964,null):null))))));\nvar G__38516 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22const\x22,\x22const\x22,1709929842),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),form,new cljs.core.Keyword(null,\x22env\x22,\x22env\x22,-1815813235),env,new cljs.core.Keyword(null,\x22form\x22,\x22form\x22,-1624062471),form], null);\nif(cljs.core.truth_(tag)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__38516,new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),tag);\n} else {\nreturn G__38516;\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.analyzer.default_passes \x3d new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.analyzer.infer_type,cljs.analyzer.passes.and_or.optimize,cljs.analyzer.check_invoke_arg_types], null);\ncljs.analyzer.analyze_STAR_ \x3d (function cljs$analyzer$analyze_STAR_(env,form,name,opts){\nvar passes \x3d cljs.analyzer._STAR_passes_STAR_;\nvar passes__$1 \x3d (((passes \x3d\x3d null))?cljs.analyzer.default_passes:passes);\nvar form__$1 \x3d (((form instanceof cljs.core.LazySeq))?((cljs.core.seq(form))?form:cljs.core.List.EMPTY):form);\nvar ast \x3d cljs.analyzer.analyze_form(env,form__$1,name,opts);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ast__$1,pass){\nreturn (pass.cljs$core$IFn$_invoke$arity$3 ? pass.cljs$core$IFn$_invoke$arity$3(env,ast__$1,opts) : pass.call(null,env,ast__$1,opts));\n}),ast,passes__$1);\n});\n/**\n * Given an environment, a map containing {:locals (mapping of names to bindings), :context\n * (one of :statement, :expr, :return), :ns (a symbol naming the\n * compilation ns)}, and form, returns an expression object (a map\n * containing at least :form, :op and :env keys). If expr has any (immediately)\n * nested exprs, must have a :children entry. This must be a vector of keywords naming\n * the immediately nested fields mapped to an expr or vector of exprs. This will\n * facilitate code walking without knowing the details of the op set.\n */\ncljs.analyzer.analyze \x3d (function cljs$analyzer$analyze(var_args){\nvar G__38518 \x3d arguments.length;\nswitch (G__38518) {\ncase 2:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2 \x3d (function (env,form){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3(env,form,null);\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$3 \x3d (function (env,form,name){\nreturn cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env,form,name,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4 \x3d (function (env,form,name,opts){\ntry{if(cljs.analyzer.analyzed_QMARK_(form)){\nvar _STAR_cljs_warnings_STAR__orig_val__38520 \x3d cljs.analyzer._STAR_cljs_warnings_STAR_;\nvar _STAR_cljs_warnings_STAR__temp_val__38521 \x3d cljs.core.zipmap(cljs.core.keys(cljs.analyzer._STAR_cljs_warnings_STAR_),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(false));\n(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__temp_val__38521);\n\ntry{return cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}finally {(cljs.analyzer._STAR_cljs_warnings_STAR_ \x3d _STAR_cljs_warnings_STAR__orig_val__38520);\n}} else {\nreturn cljs.analyzer.analyze_STAR_(env,form,name,opts);\n}\n}catch (e38519){var err__8939__auto__ \x3d e38519;\nif(cljs.analyzer.has_error_data_QMARK_(err__8939__auto__)){\nthrow err__8939__auto__;\n} else {\nif(cljs.analyzer.analysis_error_QMARK_(err__8939__auto__)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),err__8939__auto__);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(null,cljs.analyzer.error_data.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.Keyword(null,\x22compilation\x22,\x22compilation\x22,-1328774561)),cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3(env,err__8939__auto__.message,err__8939__auto__));\n\n}\n}\n}}));\n\n(cljs.analyzer.analyze.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a compiler state and a map from fully qualified symbols to constant\n * EDN values, update the compiler state marking these vars as const to support\n * direct substitution of these vars in source.\n */\ncljs.analyzer.add_consts \x3d (function cljs$analyzer$add_consts(compiler_state,constants_map){\nreturn cljs.core.reduce_kv((function (compiler_state__$1,sym,value){\nvar ns \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(compiler_state__$1,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym))], null),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22const-expr\x22,\x22const-expr\x22,-1379382292),(function (){var _STAR_passes_STAR__orig_val__38522 \x3d cljs.analyzer._STAR_passes_STAR_;\nvar _STAR_passes_STAR__temp_val__38523 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.analyzer._STAR_passes_STAR_,cljs.analyzer.replace_env_pass(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22context\x22,\x22context\x22,-830191113),new cljs.core.Keyword(null,\x22expr\x22,\x22expr\x22,745722291)], null)));\n(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__temp_val__38523);\n\ntry{return cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$2(cljs.analyzer.empty_env(),value);\n}finally {(cljs.analyzer._STAR_passes_STAR_ \x3d _STAR_passes_STAR__orig_val__38522);\n}})()], null));\n}),compiler_state,constants_map);\n});\ncljs.analyzer.resolve_symbol \x3d (function cljs$analyzer$resolve_symbol(sym){\nif(((cljs.core.not(cljs.core.namespace(sym))) \x26\x26 (cljs.analyzer.dotted_symbol_QMARK_(sym)))){\nreturn sym;\n} else {\nreturn new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1((function (){var _STAR_private_var_access_nowarn_STAR__orig_val__38524 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38525 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38525);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$2(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.env._STAR_compiler_STAR_),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_)),sym);\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38524);\n}})());\n}\n});\n/**\n * Get all alias maps for a namespace.\n */\ncljs.analyzer.get_aliases \x3d (function cljs$analyzer$get_aliases(ns){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22requires\x22,\x22requires\x22,-1201390927),new cljs.core.Keyword(null,\x22require-macros\x22,\x22require-macros\x22,707947416),new cljs.core.Keyword(null,\x22as-aliases\x22,\x22as-aliases\x22,1485064798))(cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(ns)));\n});\nvar registry_ref_39290 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22registry-ref\x22,\x22registry-ref\x22,1975823941,null));\n}),null));\nvar speced_vars_39291 \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.ns_interns_STAR_(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)),new cljs.core.Symbol(null,\x22-speced-vars\x22,\x22-speced-vars\x22,1758723085,null));\n}),null));\ncljs.analyzer.get_spec_vars \x3d (function cljs$analyzer$get_spec_vars(){\nif((!((cljs.core.find_ns_obj(new cljs.core.Symbol(null,\x22cljs.spec.alpha$macros\x22,\x22cljs.spec.alpha$macros\x22,-896343615,null)) \x3d\x3d null)))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414),cljs.core.deref(registry_ref_39290),new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988),cljs.core.deref(speced_vars_39291)], null);\n} else {\nreturn null;\n}\n});\n/**\n * Dumps registered speced vars for a given namespace into the compiler\n * environment.\n */\ncljs.analyzer.dump_specs \x3d (function cljs$analyzer$dump_specs(ns){\nvar spec_vars \x3d cljs.analyzer.get_spec_vars();\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar registry_ref \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (p__38526){\nvar vec__38527 \x3d p__38526;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38527,(1),null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(k));\n})),cljs.core.deref(cljs.core.deref(registry_ref)))], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5825__auto__ \x3d new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988).cljs$core$IFn$_invoke$arity$1(spec_vars);\nif(cljs.core.truth_(temp__5825__auto__)){\nvar speced_vars \x3d temp__5825__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (v){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_str,cljs.core.namespace(v))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns,new cljs.core.Keyword(null,\x22fdef-ns\x22,\x22fdef-ns\x22,-1602124254).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))));\n})),cljs.core.deref(cljs.core.deref(speced_vars)))], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Registers speced vars found in a namespace analysis cache.\n */\ncljs.analyzer.register_specs \x3d (function cljs$analyzer$register_specs(cached_ns){\nvar map__38530 \x3d cljs.analyzer.get_spec_vars();\nvar map__38530__$1 \x3d cljs.core.__destructure_map(map__38530);\nvar registry_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22registry-ref\x22,\x22registry-ref\x22,335292414));\nvar speced_vars \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38530__$1,new cljs.core.Keyword(null,\x22speced-vars\x22,\x22speced-vars\x22,-1813125988));\nvar temp__5825__auto___39295 \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22registry-ref\x22,\x22cljs.spec/registry-ref\x22,-71711915).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto___39295){\nvar registry_39296 \x3d temp__5825__auto___39295;\nif(cljs.core.truth_(registry_ref)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(registry_ref),cljs.core.into,registry_39296);\n} else {\n}\n} else {\n}\n\nvar temp__5825__auto__ \x3d cljs.core.seq(new cljs.core.Keyword(\x22cljs.spec\x22,\x22speced-vars\x22,\x22cljs.spec/speced-vars\x22,1010010387).cljs$core$IFn$_invoke$arity$1(cached_ns));\nif(temp__5825__auto__){\nvar vars \x3d temp__5825__auto__;\nif(cljs.core.truth_(speced_vars)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(speced_vars),cljs.core.into,vars);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.analyzer.analyze_form_seq \x3d (function cljs$analyzer$analyze_form_seq(var_args){\nvar G__38532 \x3d arguments.length;\nswitch (G__38532) {\ncase 1:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (forms){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2(forms,(cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.env._STAR_compiler_STAR_)):null));\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,opts){\nreturn cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3(forms,opts,false);\n}));\n\n(cljs.analyzer.analyze_form_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,opts,return_last_QMARK_){\nvar env \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.analyzer.empty_env(),new cljs.core.Keyword(null,\x22build-options\x22,\x22build-options\x22,1183685779),opts);\nvar _STAR_file_defs_STAR__orig_val__38533 \x3d cljs.analyzer._STAR_file_defs_STAR_;\nvar _STAR_cljs_ns_STAR__orig_val__38534 \x3d cljs.analyzer._STAR_cljs_ns_STAR_;\nvar _STAR_cljs_file_STAR__orig_val__38535 \x3d cljs.analyzer._STAR_cljs_file_STAR_;\nvar _STAR_alias_map_STAR__orig_val__38536 \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nvar _STAR_file_defs_STAR__temp_val__38537 \x3d null;\nvar _STAR_cljs_ns_STAR__temp_val__38538 \x3d new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null);\nvar _STAR_cljs_file_STAR__temp_val__38539 \x3d null;\nvar _STAR_alias_map_STAR__temp_val__38540 \x3d (function (){var or__5025__auto__ \x3d cljs.tools.reader._STAR_alias_map_STAR_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})();\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__temp_val__38537);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__temp_val__38538);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__temp_val__38539);\n\n(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__temp_val__38540);\n\ntry{var ns \x3d null;\nvar forms__$1 \x3d forms;\nvar last_ast \x3d null;\nwhile(true){\nif((!((forms__$1 \x3d\x3d null)))){\nvar form \x3d cljs.core.first(forms__$1);\nvar env__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.analyzer.get_namespace.cljs$core$IFn$_invoke$arity$1(cljs.analyzer._STAR_cljs_ns_STAR_));\nvar ast \x3d cljs.analyzer.analyze.cljs$core$IFn$_invoke$arity$4(env__$1,form,null,opts);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(ast),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760))){\nvar G__39303 \x3d new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(ast);\nvar G__39304 \x3d cljs.core.next(forms__$1);\nvar G__39305 \x3d ast;\nns \x3d G__39303;\nforms__$1 \x3d G__39304;\nlast_ast \x3d G__39305;\ncontinue;\n} else {\nvar G__39306 \x3d ns;\nvar G__39307 \x3d cljs.core.next(forms__$1);\nvar G__39308 \x3d ast;\nns \x3d G__39306;\nforms__$1 \x3d G__39307;\nlast_ast \x3d G__39308;\ncontinue;\n}\n} else {\nif(cljs.core.truth_(return_last_QMARK_)){\nreturn last_ast;\n} else {\nreturn ns;\n}\n}\nbreak;\n}\n}finally {(cljs.tools.reader._STAR_alias_map_STAR_ \x3d _STAR_alias_map_STAR__orig_val__38536);\n\n(cljs.analyzer._STAR_cljs_file_STAR_ \x3d _STAR_cljs_file_STAR__orig_val__38535);\n\n(cljs.analyzer._STAR_cljs_ns_STAR_ \x3d _STAR_cljs_ns_STAR__orig_val__38534);\n\n(cljs.analyzer._STAR_file_defs_STAR_ \x3d _STAR_file_defs_STAR__orig_val__38533);\n}}));\n\n(cljs.analyzer.analyze_form_seq.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Ensures that a non-nil defs map exists in the compiler state for a given\n * ns. (A non-nil defs map signifies that the namespace has been analyzed.)\n */\ncljs.analyzer.ensure_defs \x3d (function cljs$analyzer$ensure_defs(ns){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.env._STAR_compiler_STAR_,cljs.core.update_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717)], null),(function (p1__38541_SHARP_){\nvar or__5025__auto__ \x3d p1__38541_SHARP_;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}));\n});\n"); SHADOW_ENV.evalLoad("cljs.analyzer.api.js", true, "goog.provide(\x27cljs.analyzer.api\x27);\n/**\n * Creates an empty compilation state Atom\x3cMap\x3e. The optional opts arg is a map\n * representing the compiler configuration. See the documentation\n * for details: https://clojurescript.org/reference/compiler-options\n */\ncljs.analyzer.api.empty_state \x3d (function cljs$analyzer$api$empty_state(var_args){\nvar G__38543 \x3d arguments.length;\nswitch (G__38543) {\ncase 0:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nif((!((cljs.env._STAR_compiler_STAR_ \x3d\x3d null)))){\nreturn cljs.env._STAR_compiler_STAR_;\n} else {\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$0();\n}\n}));\n\n(cljs.analyzer.api.empty_state.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\nreturn cljs.env.default_compiler_env.cljs$core$IFn$_invoke$arity$1(opts);\n}));\n\n(cljs.analyzer.api.empty_state.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the current compiler state atom.\n */\ncljs.analyzer.api.current_state \x3d (function cljs$analyzer$api$current_state(){\nreturn cljs.env._STAR_compiler_STAR_;\n});\n/**\n * Return the current file under analysis or compilation.\n */\ncljs.analyzer.api.current_file \x3d (function cljs$analyzer$api$current_file(){\nreturn cljs.analyzer._STAR_cljs_file_STAR_;\n});\n/**\n * Return the current ns under analysis or compilation.\n */\ncljs.analyzer.api.current_ns \x3d (function cljs$analyzer$api$current_ns(){\nreturn cljs.analyzer._STAR_cljs_ns_STAR_;\n});\n/**\n * Creates an empty analysis environment.\n */\ncljs.analyzer.api.empty_env \x3d (function cljs$analyzer$api$empty_env(){\nreturn cljs.analyzer.empty_env();\n});\n/**\n * Test if the given warning-type is enabled.\n */\ncljs.analyzer.api.warning_enabled_QMARK_ \x3d (function cljs$analyzer$api$warning_enabled_QMARK_(warning_type){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_.call(null,warning_type);\n});\n/**\n * The default warning handler.\n * \n * Outputs the warning messages to *err*.\n */\ncljs.analyzer.api.default_warning_handler \x3d (function cljs$analyzer$api$default_warning_handler(warning_type,env,extra){\nreturn cljs.analyzer.default_warning_handler(warning_type,env,extra);\n});\n/**\n * Helper for generating the standard analyzer messages for warnings. Should be\n * passed warn-type and warn-info. See with-warning-handlers.\n */\ncljs.analyzer.api.warning_message \x3d (function cljs$analyzer$api$warning_message(warn_type,warn_info){\nreturn cljs.analyzer.error_message.cljs$core$IFn$_invoke$arity$2(warn_type,warn_info);\n});\n/**\n * Get the enabled warning types.\n */\ncljs.analyzer.api.enabled_warnings \x3d (function cljs$analyzer$api$enabled_warnings(){\nreturn cljs.analyzer._STAR_cljs_warnings_STAR_;\n});\n/**\n * Return the compiler options from compiler state.\n */\ncljs.analyzer.api.get_options \x3d (function cljs$analyzer$api$get_options(var_args){\nvar G__38546 \x3d arguments.length;\nswitch (G__38546) {\ncase 0:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_options.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22options\x22,\x22options\x22,99638489));\n}));\n\n(cljs.analyzer.api.get_options.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return the currently computed Google Closure js dependency index from the\n * compiler state.\n */\ncljs.analyzer.api.get_js_index \x3d (function cljs$analyzer$api$get_js_index(var_args){\nvar G__38567 \x3d arguments.length;\nswitch (G__38567) {\ncase 0:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.api.current_state());\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(null,\x22js-dependency-index\x22,\x22js-dependency-index\x22,-1887042131));\n}));\n\n(cljs.analyzer.api.get_js_index.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * ClojureScript\x27s default analysis passes.\n */\ncljs.analyzer.api.default_passes \x3d cljs.analyzer.default_passes;\n/**\n * Given an analysis environment resolve a var. Analogous to\n * clojure.core/resolve\n */\ncljs.analyzer.api.resolve \x3d (function cljs$analyzer$api$resolve(env,sym){\nif(cljs.core.map_QMARK_(env)){\n} else {\nthrow (new Error(\x22Assert failed: (map? env)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\ntry{var _STAR_private_var_access_nowarn_STAR__orig_val__38601 \x3d cljs.analyzer._STAR_private_var_access_nowarn_STAR_;\nvar _STAR_private_var_access_nowarn_STAR__temp_val__38602 \x3d true;\n(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__temp_val__38602);\n\ntry{return cljs.analyzer.resolve_var.cljs$core$IFn$_invoke$arity$3(env,sym,cljs.analyzer.confirm_var_exists_throw());\n}finally {(cljs.analyzer._STAR_private_var_access_nowarn_STAR_ \x3d _STAR_private_var_access_nowarn_STAR__orig_val__38601);\n}}catch (e38600){var e \x3d e38600;\nreturn cljs.analyzer.resolve_macro_var(env,sym);\n}});\n/**\n * Return all namespaces. Analagous to clojure.core/all-ns but\n * returns symbols identifying namespaces not Namespace instances.\n */\ncljs.analyzer.api.all_ns \x3d (function cljs$analyzer$api$all_ns(var_args){\nvar G__38604 \x3d arguments.length;\nswitch (G__38604) {\ncase 0:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1(cljs.env._STAR_compiler_STAR_);\n}));\n\n(cljs.analyzer.api.all_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (state){\nreturn cljs.core.keys(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)));\n}));\n\n(cljs.analyzer.api.all_ns.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Given a namespace return the corresponding namespace analysis map. Analagous\n * to clojure.core/find-ns.\n */\ncljs.analyzer.api.find_ns \x3d (function cljs$analyzer$api$find_ns(var_args){\nvar G__38606 \x3d arguments.length;\nswitch (G__38606) {\ncase 1:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,sym);\n}));\n\n(cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),sym], null));\n}));\n\n(cljs.analyzer.api.find_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return the corresponding namespace analysis map, throwing an\n * exception if not found. Analagous to clojure.core/the-ns.\n */\ncljs.analyzer.api.the_ns \x3d (function cljs$analyzer$api$the_ns(var_args){\nvar G__38608 \x3d arguments.length;\nswitch (G__38608) {\ncase 1:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,sym){\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nvar or__5025__auto__ \x3d cljs.analyzer.api.find_ns.cljs$core$IFn$_invoke$arity$2(state,sym);\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22No namespace found: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),sym], null));\n}\n}));\n\n(cljs.analyzer.api.the_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the var analysis maps. Analagous to\n * clojure.core/ns-interns but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_interns \x3d (function cljs$analyzer$api$ns_interns(var_args){\nvar G__38613 \x3d arguments.length;\nswitch (G__38613) {\ncase 1:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nvar ns__$1 \x3d cljs.analyzer.api.the_ns.cljs$core$IFn$_invoke$arity$2(state,ns);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22macros\x22,\x22macros\x22,811339431).cljs$core$IFn$_invoke$arity$1(ns__$1),new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717).cljs$core$IFn$_invoke$arity$1(ns__$1)], 0));\n}));\n\n(cljs.analyzer.api.ns_interns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace return all the public var analysis maps. Analagous to\n * clojure.core/ns-publics but returns var analysis maps not vars.\n */\ncljs.analyzer.api.ns_publics \x3d (function cljs$analyzer$api$ns_publics(var_args){\nvar G__38616 \x3d arguments.length;\nswitch (G__38616) {\ncase 1:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__38619){\nvar vec__38620 \x3d p__38619;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38620,(1),null);\nreturn new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994).cljs$core$IFn$_invoke$arity$1(v);\n}),cljs.analyzer.api.ns_interns.cljs$core$IFn$_invoke$arity$2(state,ns)));\n}));\n\n(cljs.analyzer.api.ns_publics.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Given a namespace and a symbol return the corresponding var analysis map.\n * Analagous to clojure.core/ns-resolve but returns var analysis map not Var.\n */\ncljs.analyzer.api.ns_resolve \x3d (function cljs$analyzer$api$ns_resolve(var_args){\nvar G__38624 \x3d arguments.length;\nswitch (G__38624) {\ncase 2:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,sym){\nreturn cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3(cljs.env._STAR_compiler_STAR_,ns,sym);\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$core$IFn$_invoke$arity$3 \x3d (function (state,ns,sym){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nif((sym instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? sym)\x22));\n}\n\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927),ns,new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),sym], null));\n}));\n\n(cljs.analyzer.api.ns_resolve.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes the namespace named by the symbol.\n */\ncljs.analyzer.api.remove_ns \x3d (function cljs$analyzer$api$remove_ns(var_args){\nvar G__38640 \x3d arguments.length;\nswitch (G__38640) {\ncase 1:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (ns){\nreturn cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2(cljs.env._STAR_compiler_STAR_,ns);\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (state,ns){\nif((ns instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? ns)\x22));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22namespaces\x22,\x22cljs.analyzer/namespaces\x22,-260788927)], null),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns], 0));\n}));\n\n(cljs.analyzer.api.remove_ns.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("intemporal.internal.macros.js", true, "goog.provide(\x27intemporal.internal.macros\x27);\nintemporal.internal.macros.cljs_available_QMARK_ \x3d false;\n"); -SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70174 \x3d arguments.length;\nvar i__5750__auto___70175 \x3d (0);\nwhile(true){\nif((i__5750__auto___70175 \x3c len__5749__auto___70174)){\nargs__5755__auto__.push((arguments[i__5750__auto___70175]));\n\nvar G__70176 \x3d (i__5750__auto___70175 + (1));\ni__5750__auto___70175 \x3d G__70176;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__70002){\nvar map__70004 \x3d p__70002;\nvar map__70004__$1 \x3d cljs.core.__destructure_map(map__70004);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70004__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70004__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__70177__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_xfn_STAR__orig_val__70010 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70011 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70011);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__70013 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70013 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70013);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70014 \x3d err;\nif((G__70014 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70014);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__70015 \x3d err;\nif((G__70015 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__70015);\n}\n})());\nif(cljs.core.truth_(existing)){\nvar args__69521__auto___70178 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], null);\nvar vec__70016_70179 \x3d (((cljs.core.first(args__69521__auto___70178) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70178),cljs.core.second(args__69521__auto___70178),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70178)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70178),cljs.core.rest(args__69521__auto___70178)], null));\nvar err__69522__auto___70180 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(0),null);\nvar fmt__69523__auto___70181 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(1),null);\nvar fmt_args__69524__auto___70182 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70016_70179,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70181,fmt_args__69524__auto___70182),err__69522__auto___70180,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar args__69521__auto___70183 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing error for activity\x22], null);\nvar vec__70032_70184 \x3d (((cljs.core.first(args__69521__auto___70183) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70183),cljs.core.second(args__69521__auto___70183),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70183)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70183),cljs.core.rest(args__69521__auto___70183)], null));\nvar err__69522__auto___70185 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(0),null);\nvar fmt__69523__auto___70186 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(1),null);\nvar fmt_args__69524__auto___70187 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70032_70184,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70186,fmt_args__69524__auto___70187),err__69522__auto___70185,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nvar args__69521__auto___70188 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity was interrupted: rescheduling\x22], null);\nvar vec__70036_70189 \x3d (((cljs.core.first(args__69521__auto___70188) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70188),cljs.core.second(args__69521__auto___70188),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70188)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70188),cljs.core.rest(args__69521__auto___70188)], null));\nvar err__69522__auto___70190 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(0),null);\nvar fmt__69523__auto___70191 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(1),null);\nvar fmt_args__69524__auto___70192 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70036_70189,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70191,fmt_args__69524__auto___70192),err__69522__auto___70190,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nif(rejected_QMARK_){\nvar args__69521__auto___70193 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity execution was rejected: rescheduling\x22], null);\nvar vec__70040_70194 \x3d (((cljs.core.first(args__69521__auto___70193) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70193),cljs.core.second(args__69521__auto___70193),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70193)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70193),cljs.core.rest(args__69521__auto___70193)], null));\nvar err__69522__auto___70195 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(0),null);\nvar fmt__69523__auto___70196 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(1),null);\nvar fmt_args__69524__auto___70197 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70040_70194,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70196,fmt_args__69524__auto___70197),err__69522__auto___70195,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nvar args__69521__auto___70198 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Scheduling activity suspension\x22], null);\nvar vec__70043_70199 \x3d (((cljs.core.first(args__69521__auto___70198) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70198),cljs.core.second(args__69521__auto___70198),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70198)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70198),cljs.core.rest(args__69521__auto___70198)], null));\nvar err__69522__auto___70200 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(0),null);\nvar fmt__69523__auto___70201 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(1),null);\nvar fmt_args__69524__auto___70202 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70043_70199,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70201,fmt_args__69524__auto___70202),err__69522__auto___70200,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70010);\n}};\nvar G__70177 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__70206__i \x3d 0, G__70206__a \x3d new Array(arguments.length - 0);\nwhile (G__70206__i \x3c G__70206__a.length) {G__70206__a[G__70206__i] \x3d arguments[G__70206__i + 0]; ++G__70206__i;}\n args \x3d new cljs.core.IndexedSeq(G__70206__a,0,null);\n} \nreturn G__70177__delegate.call(this,args);};\nG__70177.cljs$lang$maxFixedArity \x3d 0;\nG__70177.cljs$lang$applyTo \x3d (function (arglist__70207){\nvar args \x3d cljs.core.seq(arglist__70207);\nreturn G__70177__delegate(args);\n});\nG__70177.cljs$core$IFn$_invoke$arity$variadic \x3d G__70177__delegate;\nreturn G__70177;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq69996){\nvar G__69997 \x3d cljs.core.first(seq69996);\nvar seq69996__$1 \x3d cljs.core.next(seq69996);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__69997,seq69996__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k70052,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__70061 \x3d k70052;\nvar G__70061__$1 \x3d (((G__70061 instanceof cljs.core.Keyword))?G__70061.fqn:null);\nswitch (G__70061__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k70052,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__70067){\nvar vec__70068 \x3d p__70067;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70068,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70068,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__70051){\nvar self__ \x3d this;\nvar G__70051__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__70051__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this70053,other70054){\nvar self__ \x3d this;\nvar this70053__$1 \x3d this;\nreturn (((!((other70054 \x3d\x3d null)))) \x26\x26 ((((this70053__$1.constructor \x3d\x3d\x3d other70054.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70053__$1.seq_num,other70054.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this70053__$1.__extmap,other70054.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k70052){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__70077 \x3d k70052;\nvar G__70077__$1 \x3d (((G__70077 instanceof cljs.core.Keyword))?G__70077.fqn:null);\nswitch (G__70077__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k70052);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__70051){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__70078 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__70079 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__70078.cljs$core$IFn$_invoke$arity$2 ? pred__70078.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__70079) : pred__70078.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__70079)))){\nreturn (new intemporal.core.AsyncHandle(G__70051,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__70051),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__70051){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__70051,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__70055){\nvar extmap__5365__auto__ \x3d (function (){var G__70091 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__70055,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__70055)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__70091);\n} else {\nreturn G__70091;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__70055),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__70097 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70097 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70097);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70098 \x3d err;\nif((G__70098 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70098);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nvar args__69521__auto___70225 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already succeeded advancing sequence number\x22], null);\nvar vec__70099_70226 \x3d (((cljs.core.first(args__69521__auto___70225) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70225),cljs.core.second(args__69521__auto___70225),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70225)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70225),cljs.core.rest(args__69521__auto___70225)], null));\nvar err__69522__auto___70227 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(0),null);\nvar fmt__69523__auto___70228 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(1),null);\nvar fmt_args__69524__auto___70229 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70099_70226,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70228,fmt_args__69524__auto___70229),err__69522__auto___70227,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nvar args__69521__auto___70234 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already failed advancing sequence number\x22], null);\nvar vec__70102_70235 \x3d (((cljs.core.first(args__69521__auto___70234) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70234),cljs.core.second(args__69521__auto___70234),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70234)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70234),cljs.core.rest(args__69521__auto___70234)], null));\nvar err__69522__auto___70236 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(0),null);\nvar fmt__69523__auto___70237 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(1),null);\nvar fmt_args__69524__auto___70238 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70102_70235,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70237,fmt_args__69524__auto___70238),err__69522__auto___70236,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nvar args__69521__auto___70243 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already started\x22], null);\nvar vec__70105_70244 \x3d (((cljs.core.first(args__69521__auto___70243) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70243),cljs.core.second(args__69521__auto___70243),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70243)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70243),cljs.core.rest(args__69521__auto___70243)], null));\nvar err__69522__auto___70245 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(0),null);\nvar fmt__69523__auto___70246 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(1),null);\nvar fmt_args__69524__auto___70247 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70105_70244,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70246,fmt_args__69524__auto___70247),err__69522__auto___70245,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{var args__69521__auto___70252 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking Async thunk\x22], null);\nvar vec__70115_70253 \x3d (((cljs.core.first(args__69521__auto___70252) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70252),cljs.core.second(args__69521__auto___70252),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70252)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70252),cljs.core.rest(args__69521__auto___70252)], null));\nvar err__69522__auto___70254 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(0),null);\nvar fmt__69523__auto___70255 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(1),null);\nvar fmt_args__69524__auto___70256 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70115_70253,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70255,fmt_args__69524__auto___70256),err__69522__auto___70254,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nvar args__69521__auto___70260 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async completed successfully with result %s\x22,result], null);\nvar vec__70118_70261 \x3d (((cljs.core.first(args__69521__auto___70260) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70260),cljs.core.second(args__69521__auto___70260),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70260)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70260),cljs.core.rest(args__69521__auto___70260)], null));\nvar err__69522__auto___70262 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(0),null);\nvar fmt__69523__auto___70263 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(1),null);\nvar fmt_args__69524__auto___70264 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70118_70261,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70263,fmt_args__69524__auto___70264),err__69522__auto___70262,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e70108){if((e70108 instanceof Error)){\nvar e \x3d e70108;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nvar args__69521__auto___70269 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async suspended activity %s\x22,activity_name], null);\nvar vec__70109_70270 \x3d (((cljs.core.first(args__69521__auto___70269) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70269),cljs.core.second(args__69521__auto___70269),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70269)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70269),cljs.core.rest(args__69521__auto___70269)], null));\nvar err__69522__auto___70271 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(0),null);\nvar fmt__69523__auto___70272 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(1),null);\nvar fmt_args__69524__auto___70273 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70109_70270,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70272,fmt_args__69524__auto___70273),err__69522__auto___70271,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nvar args__69521__auto___70274 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Async failed\x22], null);\nvar vec__70112_70275 \x3d (((cljs.core.first(args__69521__auto___70274) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70274),cljs.core.second(args__69521__auto___70274),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70274)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70274),cljs.core.rest(args__69521__auto___70274)], null));\nvar err__69522__auto___70276 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(0),null);\nvar fmt__69523__auto___70277 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(1),null);\nvar fmt_args__69524__auto___70278 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70112_70275,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70277,fmt_args__69524__auto___70278),err__69522__auto___70276,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow e;\n}\n} else {\nthrow e70108;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70296 \x3d arguments.length;\nvar i__5750__auto___70297 \x3d (0);\nwhile(true){\nif((i__5750__auto___70297 \x3c len__5749__auto___70296)){\nargs__5755__auto__.push((arguments[i__5750__auto___70297]));\n\nvar G__70298 \x3d (i__5750__auto___70297 + (1));\ni__5750__auto___70297 \x3d G__70298;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__70124){\nvar map__70125 \x3d p__70124;\nvar map__70125__$1 \x3d cljs.core.__destructure_map(map__70125);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70125__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__70126 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__70126 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__70126);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__70127 \x3d err;\nif((G__70127 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__70127);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq70121){\nvar G__70122 \x3d cljs.core.first(seq70121);\nvar seq70121__$1 \x3d cljs.core.next(seq70121);\nvar G__70123 \x3d cljs.core.first(seq70121__$1);\nvar seq70121__$2 \x3d cljs.core.next(seq70121__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70122,G__70123,seq70121__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70306 \x3d arguments.length;\nvar i__5750__auto___70307 \x3d (0);\nwhile(true){\nif((i__5750__auto___70307 \x3c len__5749__auto___70306)){\nargs__5755__auto__.push((arguments[i__5750__auto___70307]));\n\nvar G__70308 \x3d (i__5750__auto___70307 + (1));\ni__5750__auto___70307 \x3d G__70308;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq70128){\nvar G__70129 \x3d cljs.core.first(seq70128);\nvar seq70128__$1 \x3d cljs.core.next(seq70128);\nvar G__70130 \x3d cljs.core.first(seq70128__$1);\nvar seq70128__$2 \x3d cljs.core.next(seq70128__$1);\nvar G__70131 \x3d cljs.core.first(seq70128__$2);\nvar seq70128__$3 \x3d cljs.core.next(seq70128__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70129,G__70130,G__70131,seq70128__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70309 \x3d arguments.length;\nvar i__5750__auto___70310 \x3d (0);\nwhile(true){\nif((i__5750__auto___70310 \x3c len__5749__auto___70309)){\nargs__5755__auto__.push((arguments[i__5750__auto___70310]));\n\nvar G__70311 \x3d (i__5750__auto___70310 + (1));\ni__5750__auto___70310 \x3d G__70311;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__70137,workflow_id,workflow_fn,args,p__70138){\nvar map__70139 \x3d p__70137;\nvar map__70139__$1 \x3d cljs.core.__destructure_map(map__70139);\nvar engine \x3d map__70139__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70139__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__70140 \x3d p__70138;\nvar map__70140__$1 \x3d cljs.core.__destructure_map(map__70140);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70140__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70140__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nvar args__69512__auto___70313 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow resumed\x22], null);\nvar vec__70141_70314 \x3d (((cljs.core.first(args__69512__auto___70313) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___70313),cljs.core.rest(args__69512__auto___70313)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___70313], null));\nvar err__69513__auto___70315 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70141_70314,(0),null);\nvar msgs__69514__auto___70316 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70141_70314,(1),null);\nvar msg__69515__auto___70317 \x3d ((cljs.core.seq(msgs__69514__auto___70316))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___70316):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___70315));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___70317,err__69513__auto___70315,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq70132){\nvar G__70133 \x3d cljs.core.first(seq70132);\nvar seq70132__$1 \x3d cljs.core.next(seq70132);\nvar G__70134 \x3d cljs.core.first(seq70132__$1);\nvar seq70132__$2 \x3d cljs.core.next(seq70132__$1);\nvar G__70135 \x3d cljs.core.first(seq70132__$2);\nvar seq70132__$3 \x3d cljs.core.next(seq70132__$2);\nvar G__70136 \x3d cljs.core.first(seq70132__$3);\nvar seq70132__$4 \x3d cljs.core.next(seq70132__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70133,G__70134,G__70135,G__70136,seq70132__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70324 \x3d arguments.length;\nvar i__5750__auto___70325 \x3d (0);\nwhile(true){\nif((i__5750__auto___70325 \x3c len__5749__auto___70324)){\nargs__5755__auto__.push((arguments[i__5750__auto___70325]));\n\nvar G__70326 \x3d (i__5750__auto___70325 + (1));\ni__5750__auto___70325 \x3d G__70326;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__70149){\nvar map__70150 \x3d p__70149;\nvar map__70150__$1 \x3d cljs.core.__destructure_map(map__70150);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70150__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_xfn_STAR__orig_val__70151_70332 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70152_70333 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70152_70333);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nvar args__69521__auto___70334 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Adding signal %s\x22,signal_name], null);\nvar vec__70153_70335 \x3d (((cljs.core.first(args__69521__auto___70334) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70334),cljs.core.second(args__69521__auto___70334),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70334)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70334),cljs.core.rest(args__69521__auto___70334)], null));\nvar err__69522__auto___70336 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(0),null);\nvar fmt__69523__auto___70337 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(1),null);\nvar fmt_args__69524__auto___70338 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70153_70335,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70337,fmt_args__69524__auto___70338),err__69522__auto___70336,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70151_70332);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq70144){\nvar G__70145 \x3d cljs.core.first(seq70144);\nvar seq70144__$1 \x3d cljs.core.next(seq70144);\nvar G__70146 \x3d cljs.core.first(seq70144__$1);\nvar seq70144__$2 \x3d cljs.core.next(seq70144__$1);\nvar G__70147 \x3d cljs.core.first(seq70144__$2);\nvar seq70144__$3 \x3d cljs.core.next(seq70144__$2);\nvar G__70148 \x3d cljs.core.first(seq70144__$3);\nvar seq70144__$4 \x3d cljs.core.next(seq70144__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__70145,G__70146,G__70147,G__70148,seq70144__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_xfn_STAR__orig_val__70156_70343 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__70157_70344 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__70157_70344);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nvar args__69521__auto___70345 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Cancelling workflow\x22], null);\nvar vec__70158_70346 \x3d (((cljs.core.first(args__69521__auto___70345) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70345),cljs.core.second(args__69521__auto___70345),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70345)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70345),cljs.core.rest(args__69521__auto___70345)], null));\nvar err__69522__auto___70347 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(0),null);\nvar fmt__69523__auto___70348 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(1),null);\nvar fmt_args__69524__auto___70349 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70158_70346,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70348,fmt_args__69524__auto___70349),err__69522__auto___70347,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__70156_70343);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__70161_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__70161_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___70354 \x3d arguments.length;\nvar i__5750__auto___70355 \x3d (0);\nwhile(true){\nif((i__5750__auto___70355 \x3c len__5749__auto___70354)){\nargs__5755__auto__.push((arguments[i__5750__auto___70355]));\n\nvar G__70356 \x3d (i__5750__auto___70355 + (1));\ni__5750__auto___70355 \x3d G__70356;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__70163){\nvar map__70164 \x3d p__70163;\nvar map__70164__$1 \x3d cljs.core.__destructure_map(map__70164);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__70164__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70164__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq70162){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq70162));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__70166 \x3d arguments.length;\nswitch (G__70166) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__70167){\nvar map__70168 \x3d p__70167;\nvar map__70168__$1 \x3d cljs.core.__destructure_map(map__70168);\nvar engine \x3d map__70168__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70168__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70168__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__70169,grace_period_secs){\nvar map__70170 \x3d p__70169;\nvar map__70170__$1 \x3d cljs.core.__destructure_map(map__70170);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70170__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__70170__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar args__69521__auto___70358 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Shutting down engine\x22], null);\nvar vec__70171_70359 \x3d (((cljs.core.first(args__69521__auto___70358) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___70358),cljs.core.second(args__69521__auto___70358),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___70358)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___70358),cljs.core.rest(args__69521__auto___70358)], null));\nvar err__69522__auto___70360 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(0),null);\nvar fmt__69523__auto___70361 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(1),null);\nvar fmt_args__69524__auto___70362 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__70171_70359,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___70361,fmt_args__69524__auto___70362),err__69522__auto___70360,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); +SHADOW_ENV.evalLoad("intemporal.core.js", true, "goog.provide(\x27intemporal.core\x27);\n/**\n * Create a stubbed version of an activity function for use in workflows.\n * Options:\n * - :timeout-ms - timeout for this activity (overrides default)\n * - :retry-policy - retry policy for this activity\n */\nintemporal.core.stub \x3d (function intemporal$core$stub(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76300 \x3d arguments.length;\nvar i__5750__auto___76301 \x3d (0);\nwhile(true){\nif((i__5750__auto___76301 \x3c len__5749__auto___76300)){\nargs__5755__auto__.push((arguments[i__5750__auto___76301]));\n\nvar G__76302 \x3d (i__5750__auto___76301 + (1));\ni__5750__auto___76301 \x3d G__76302;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((1) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);\nreturn intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);\n});\n\n(intemporal.core.stub.cljs$core$IFn$_invoke$arity$variadic \x3d (function (activity_fn,p__76186){\nvar map__76187 \x3d p__76186;\nvar map__76187__$1 \x3d cljs.core.__destructure_map(map__76187);\nvar timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76187__$1,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406));\nvar retry_policy \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76187__$1,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986));\nvar ctx \x3d intemporal.internal.context.current_context();\nvar registry \x3d new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018).cljs$core$IFn$_invoke$arity$1(ctx);\nvar activity_name \x3d intemporal.internal.activity.ensure_registered_BANG_(registry,activity_fn);\nvar activity_info \x3d intemporal.internal.activity.get_activity_info(registry,activity_name);\nvar effective_timeout \x3d (function (){var or__5025__auto__ \x3d timeout_ms;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nvar effective_retry \x3d (function (){var or__5025__auto__ \x3d retry_policy;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(activity_info);\n}\n})();\nreturn (function() { \nvar G__76303__delegate \x3d function (args){\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar _STAR_xfn_STAR__orig_val__76188 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__76189 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),activity_name,new cljs.core.Keyword(null,\x22seqnum\x22,\x22seqnum\x22,-1051921174),seq_num], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__76189);\n\ntry{intemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx__$1 \x3d intemporal.internal.context.current_context();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-completed\x22,\x22activity-completed\x22,-2058848845),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22activity-failed\x22,\x22activity-failed\x22,1503456731),seq_num);\nvar err \x3d (function (){var G__76190 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76190 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76190);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76191 \x3d err;\nif((G__76191 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76191);\n}\n})());\nvar rejected_QMARK_ \x3d cljs.core.boolean$((function (){var G__76192 \x3d err;\nif((G__76192 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.rejection_QMARK_(G__76192);\n}\n})());\nif(cljs.core.truth_(existing)){\nvar args__69521__auto___76304 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing result for activity: %s\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], 0))], null);\nvar vec__76193_76305 \x3d (((cljs.core.first(args__69521__auto___76304) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76304),cljs.core.second(args__69521__auto___76304),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76304)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76304),cljs.core.rest(args__69521__auto___76304)], null));\nvar err__69522__auto___76306 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76193_76305,(0),null);\nvar fmt__69523__auto___76307 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76193_76305,(1),null);\nvar fmt_args__69524__auto___76308 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76193_76305,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76307,fmt_args__69524__auto___76308),err__69522__auto___76306,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_((function (){var and__5023__auto__ \x3d existing_failed;\nif(cljs.core.truth_(and__5023__auto__)){\nreturn (((!(interrupted_QMARK_))) \x26\x26 ((!(rejected_QMARK_))));\n} else {\nreturn and__5023__auto__;\n}\n})())){\nvar args__69521__auto___76309 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Found existing error for activity\x22], null);\nvar vec__76196_76310 \x3d (((cljs.core.first(args__69521__auto___76309) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76309),cljs.core.second(args__69521__auto___76309),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76309)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76309),cljs.core.rest(args__69521__auto___76309)], null));\nvar err__69522__auto___76311 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76196_76310,(0),null);\nvar fmt__69523__auto___76312 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76196_76310,(1),null);\nvar fmt_args__69524__auto___76313 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76196_76310,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76312,fmt_args__69524__auto___76313),err__69522__auto___76311,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow err;\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22activity-scheduled\x22,\x22activity-scheduled\x22,-1404768918),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),(cljs.core.truth_(effective_retry)?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297),new cljs.core.Keyword(null,\x22max-attempts\x22,\x22max-attempts\x22,1686564297).cljs$core$IFn$_invoke$arity$1(effective_retry),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507),new cljs.core.Keyword(null,\x22backoff-ms\x22,\x22backoff-ms\x22,1679281507).cljs$core$IFn$_invoke$arity$1(effective_retry)], null):null),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nif(interrupted_QMARK_){\nvar args__69521__auto___76314 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity was interrupted: rescheduling\x22], null);\nvar vec__76199_76315 \x3d (((cljs.core.first(args__69521__auto___76314) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76314),cljs.core.second(args__69521__auto___76314),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76314)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76314),cljs.core.rest(args__69521__auto___76314)], null));\nvar err__69522__auto___76316 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76199_76315,(0),null);\nvar fmt__69523__auto___76317 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76199_76315,(1),null);\nvar fmt_args__69524__auto___76318 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76199_76315,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76317,fmt_args__69524__auto___76318),err__69522__auto___76316,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nif(rejected_QMARK_){\nvar args__69521__auto___76319 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Activity execution was rejected: rescheduling\x22], null);\nvar vec__76202_76320 \x3d (((cljs.core.first(args__69521__auto___76319) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76319),cljs.core.second(args__69521__auto___76319),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76319)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76319),cljs.core.rest(args__69521__auto___76319)], null));\nvar err__69522__auto___76321 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76202_76320,(0),null);\nvar fmt__69523__auto___76322 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76202_76320,(1),null);\nvar fmt_args__69524__auto___76323 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76202_76320,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76322,fmt_args__69524__auto___76323),err__69522__auto___76321,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n} else {\n}\n\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_activity_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx__$1),seq_num,activity_name,cljs.core.vec(args)], 0));\n\nvar args__69521__auto___76324 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Scheduling activity suspension\x22], null);\nvar vec__76205_76325 \x3d (((cljs.core.first(args__69521__auto___76324) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76324),cljs.core.second(args__69521__auto___76324),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76324)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76324),cljs.core.rest(args__69521__auto___76324)], null));\nvar err__69522__auto___76326 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76205_76325,(0),null);\nvar fmt__69523__auto___76327 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76205_76325,(1),null);\nvar fmt_args__69524__auto___76328 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76205_76325,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76327,fmt_args__69524__auto___76328),err__69522__auto___76326,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22activity\x22,\x22activity\x22,-1179221455),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),activity_name,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),effective_timeout,new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),effective_retry], null));\n\n}\n}\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__76188);\n}};\nvar G__76303 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__76329__i \x3d 0, G__76329__a \x3d new Array(arguments.length - 0);\nwhile (G__76329__i \x3c G__76329__a.length) {G__76329__a[G__76329__i] \x3d arguments[G__76329__i + 0]; ++G__76329__i;}\n args \x3d new cljs.core.IndexedSeq(G__76329__a,0,null);\n} \nreturn G__76303__delegate.call(this,args);};\nG__76303.cljs$lang$maxFixedArity \x3d 0;\nG__76303.cljs$lang$applyTo \x3d (function (arglist__76330){\nvar args \x3d cljs.core.seq(arglist__76330);\nreturn G__76303__delegate(args);\n});\nG__76303.cljs$core$IFn$_invoke$arity$variadic \x3d G__76303__delegate;\nreturn G__76303;\n})()\n;\n}));\n\n(intemporal.core.stub.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(intemporal.core.stub.cljs$lang$applyTo \x3d (function (seq76184){\nvar G__76185 \x3d cljs.core.first(seq76184);\nvar seq76184__$1 \x3d cljs.core.next(seq76184);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76185,seq76184__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nintemporal.core.AsyncHandle \x3d (function (seq_num,__meta,__extmap,__hash){\nthis.seq_num \x3d seq_num;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5323__auto__,k__5324__auto__){\nvar self__ \x3d this;\nvar this__5323__auto____$1 \x3d this;\nreturn this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5325__auto__,k76209,else__5326__auto__){\nvar self__ \x3d this;\nvar this__5325__auto____$1 \x3d this;\nvar G__76213 \x3d k76209;\nvar G__76213__$1 \x3d (((G__76213 instanceof cljs.core.Keyword))?G__76213.fqn:null);\nswitch (G__76213__$1) {\ncase \x22seq-num\x22:\nreturn self__.seq_num;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k76209,else__5326__auto__);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){\nvar self__ \x3d this;\nvar this__5343__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__76214){\nvar vec__76215 \x3d p__76214;\nvar k__5347__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76215,(0),null);\nvar v__5348__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76215,(1),null);\nreturn (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__));\n}),init__5345__auto__,this__5343__auto____$1);\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){\nvar self__ \x3d this;\nvar this__5338__auto____$1 \x3d this;\nvar pr_pair__5341__auto__ \x3d (function (keyval__5342__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5340__auto__,keyval__5342__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,\x22#intemporal.core.AsyncHandle{\x22,\x22, \x22,\x22}\x22,opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num],null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__76208){\nvar self__ \x3d this;\nvar G__76208__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__76208__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5321__auto__){\nvar self__ \x3d this;\nvar this__5321__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5318__auto__){\nvar self__ \x3d this;\nvar this__5318__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5327__auto__){\nvar self__ \x3d this;\nvar this__5327__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5319__auto__){\nvar self__ \x3d this;\nvar this__5319__auto____$1 \x3d this;\nvar h__5134__auto__ \x3d self__.__hash;\nif((!((h__5134__auto__ \x3d\x3d null)))){\nreturn h__5134__auto__;\n} else {\nvar h__5134__auto____$1 \x3d (function (coll__5320__auto__){\nreturn (744341051 ^ cljs.core.hash_unordered_coll(coll__5320__auto__));\n})(this__5319__auto____$1);\n(self__.__hash \x3d h__5134__auto____$1);\n\nreturn h__5134__auto____$1;\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this76210,other76211){\nvar self__ \x3d this;\nvar this76210__$1 \x3d this;\nreturn (((!((other76211 \x3d\x3d null)))) \x26\x26 ((((this76210__$1.constructor \x3d\x3d\x3d other76211.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76210__$1.seq_num,other76211.seq_num)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this76210__$1.__extmap,other76211.__extmap)))))));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5333__auto__,k__5334__auto__){\nvar self__ \x3d this;\nvar this__5333__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),null], null), null),k__5334__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__);\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5330__auto__,k76209){\nvar self__ \x3d this;\nvar this__5330__auto____$1 \x3d this;\nvar G__76218 \x3d k76209;\nvar G__76218__$1 \x3d (((G__76218 instanceof cljs.core.Keyword))?G__76218.fqn:null);\nswitch (G__76218__$1) {\ncase \x22seq-num\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k76209);\n\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5331__auto__,k__5332__auto__,G__76208){\nvar self__ \x3d this;\nvar this__5331__auto____$1 \x3d this;\nvar pred__76219 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__76220 \x3d k__5332__auto__;\nif(cljs.core.truth_((pred__76219.cljs$core$IFn$_invoke$arity$2 ? pred__76219.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76220) : pred__76219.call(null,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),expr__76220)))){\nreturn (new intemporal.core.AsyncHandle(G__76208,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__76208),null));\n}\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5336__auto__){\nvar self__ \x3d this;\nvar this__5336__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),self__.seq_num,null))], null),self__.__extmap));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5322__auto__,G__76208){\nvar self__ \x3d this;\nvar this__5322__auto____$1 \x3d this;\nreturn (new intemporal.core.AsyncHandle(self__.seq_num,G__76208,self__.__extmap,self__.__hash));\n}));\n\n(intemporal.core.AsyncHandle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5328__auto__,entry__5329__auto__){\nvar self__ \x3d this;\nvar this__5328__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5329__auto__)){\nreturn this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__);\n}\n}));\n\n(intemporal.core.AsyncHandle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq-num\x22,\x22seq-num\x22,1917170947,null)], null);\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$type \x3d true);\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrSeq \x3d (function (this__5369__auto__){\nreturn (new cljs.core.List(null,\x22intemporal.core/AsyncHandle\x22,null,(1),null));\n}));\n\n(intemporal.core.AsyncHandle.cljs$lang$ctorPrWriter \x3d (function (this__5369__auto__,writer__5370__auto__){\nreturn cljs.core._write(writer__5370__auto__,\x22intemporal.core/AsyncHandle\x22);\n}));\n\n/**\n * Positional factory function for intemporal.core/AsyncHandle.\n */\nintemporal.core.__GT_AsyncHandle \x3d (function intemporal$core$__GT_AsyncHandle(seq_num){\nreturn (new intemporal.core.AsyncHandle(seq_num,null,null,null));\n});\n\n/**\n * Factory function for intemporal.core/AsyncHandle, taking a map of keywords to field values.\n */\nintemporal.core.map__GT_AsyncHandle \x3d (function intemporal$core$map__GT_AsyncHandle(G__76212){\nvar extmap__5365__auto__ \x3d (function (){var G__76222 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__76212,new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420));\nif(cljs.core.record_QMARK_(G__76212)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__76222);\n} else {\nreturn G__76222;\n}\n})();\nreturn (new intemporal.core.AsyncHandle(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(G__76212),null,cljs.core.not_empty(extmap__5365__auto__),null));\n});\n\n/**\n * Schedule an async operation (thunk) for later execution.\n * The thunk should contain a single activity call.\n */\nintemporal.core.async \x3d (function intemporal$core$async(thunk){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing_completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),seq_num);\nvar existing_started \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),seq_num);\nvar err \x3d (function (){var G__76223 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76223 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76223);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76224 \x3d err;\nif((G__76224 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76224);\n}\n})());\nif(cljs.core.truth_(existing_completed)){\nintemporal.internal.context.update_seq_BANG_(existing_completed);\n\nvar args__69521__auto___76333 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already succeeded advancing sequence number\x22], null);\nvar vec__76225_76334 \x3d (((cljs.core.first(args__69521__auto___76333) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76333),cljs.core.second(args__69521__auto___76333),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76333)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76333),cljs.core.rest(args__69521__auto___76333)], null));\nvar err__69522__auto___76335 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76225_76334,(0),null);\nvar fmt__69523__auto___76336 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76225_76334,(1),null);\nvar fmt_args__69524__auto___76337 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76225_76334,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76336,fmt_args__69524__auto___76337),err__69522__auto___76335,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_failed)){\nintemporal.internal.context.update_seq_BANG_(existing_failed);\n\nvar args__69521__auto___76338 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already failed advancing sequence number\x22], null);\nvar vec__76228_76339 \x3d (((cljs.core.first(args__69521__auto___76338) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76338),cljs.core.second(args__69521__auto___76338),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76338)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76338),cljs.core.rest(args__69521__auto___76338)], null));\nvar err__69522__auto___76340 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76228_76339,(0),null);\nvar fmt__69523__auto___76341 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76228_76339,(1),null);\nvar fmt_args__69524__auto___76342 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76228_76339,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76341,fmt_args__69524__auto___76342),err__69522__auto___76340,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nif(cljs.core.truth_(existing_started)){\nvar args__69521__auto___76343 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async already started\x22], null);\nvar vec__76231_76344 \x3d (((cljs.core.first(args__69521__auto___76343) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76343),cljs.core.second(args__69521__auto___76343),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76343)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76343),cljs.core.rest(args__69521__auto___76343)], null));\nvar err__69522__auto___76345 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76231_76344,(0),null);\nvar fmt__69523__auto___76346 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76231_76344,(1),null);\nvar fmt_args__69524__auto___76347 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76231_76344,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76346,fmt_args__69524__auto___76347),err__69522__auto___76345,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(seq_num);\n} else {\nvar start_event \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-started\x22,\x22async-started\x22,-157999836),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nvar start_seq \x3d seq_num;\nintemporal.internal.context.add_pending_event_BANG_(start_event);\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_started,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num], 0));\n\ntry{var args__69521__auto___76348 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Invoking Async thunk\x22], null);\nvar vec__76241_76349 \x3d (((cljs.core.first(args__69521__auto___76348) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76348),cljs.core.second(args__69521__auto___76348),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76348)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76348),cljs.core.rest(args__69521__auto___76348)], null));\nvar err__69522__auto___76350 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76241_76349,(0),null);\nvar fmt__69523__auto___76351 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76241_76349,(1),null);\nvar fmt_args__69524__auto___76352 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76241_76349,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76351,fmt_args__69524__auto___76352),err__69522__auto___76350,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nvar result \x3d (thunk.cljs$core$IFn$_invoke$arity$0 ? thunk.cljs$core$IFn$_invoke$arity$0() : thunk.call(null));\nvar end_seq \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22seq-counter\x22,\x22seq-counter\x22,1692708568).cljs$core$IFn$_invoke$arity$1(intemporal.internal.context.current_context())) - (1));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),start_seq,new cljs.core.Keyword(null,\x22last-seq\x22,\x22last-seq\x22,-1560362187),end_seq,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_async_completed,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),start_seq,result], 0));\n\nvar args__69521__auto___76353 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async completed successfully with result %s\x22,result], null);\nvar vec__76244_76354 \x3d (((cljs.core.first(args__69521__auto___76353) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76353),cljs.core.second(args__69521__auto___76353),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76353)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76353),cljs.core.rest(args__69521__auto___76353)], null));\nvar err__69522__auto___76355 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76244_76354,(0),null);\nvar fmt__69523__auto___76356 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76244_76354,(1),null);\nvar fmt_args__69524__auto___76357 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76244_76354,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76356,fmt_args__69524__auto___76357),err__69522__auto___76355,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n}catch (e76234){if((e76234 instanceof Error)){\nvar e \x3d e76234;\nif(cljs.core.truth_(intemporal.internal.error.suspension_QMARK_(e))){\nvar suspension_info \x3d intemporal.internal.error.suspension_data(e);\nvar activity_name \x3d new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info);\nvar args__69521__auto___76358 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Async suspended activity %s\x22,activity_name], null);\nvar vec__76235_76359 \x3d (((cljs.core.first(args__69521__auto___76358) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76358),cljs.core.second(args__69521__auto___76358),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76358)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76358),cljs.core.rest(args__69521__auto___76358)], null));\nvar err__69522__auto___76360 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76235_76359,(0),null);\nvar fmt__69523__auto___76361 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76235_76359,(1),null);\nvar fmt_args__69524__auto___76362 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76235_76359,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76361,fmt_args__69524__auto___76362),err__69522__auto___76360,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.internal.context.add_pending_async_BANG_(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),start_seq,new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638),new cljs.core.Keyword(null,\x22activity-name\x22,\x22activity-name\x22,-294600638).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22activity-seq\x22,\x22activity-seq\x22,1715648031),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406).cljs$core$IFn$_invoke$arity$1(suspension_info),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986),new cljs.core.Keyword(null,\x22retry-policy\x22,\x22retry-policy\x22,1352135986).cljs$core$IFn$_invoke$arity$1(suspension_info)], null));\n\nreturn intemporal.core.__GT_AsyncHandle(start_seq);\n} else {\nvar args__69521__auto___76363 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,\x22Async failed\x22], null);\nvar vec__76238_76364 \x3d (((cljs.core.first(args__69521__auto___76363) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76363),cljs.core.second(args__69521__auto___76363),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76363)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76363),cljs.core.rest(args__69521__auto___76363)], null));\nvar err__69522__auto___76365 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76238_76364,(0),null);\nvar fmt__69523__auto___76366 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76238_76364,(1),null);\nvar fmt_args__69524__auto___76367 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76238_76364,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76366,fmt_args__69524__auto___76367),err__69522__auto___76365,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nthrow e;\n}\n} else {\nthrow e76234;\n\n}\n}\n}\n}\n}\n});\n/**\n * Wait for an async handle to complete.\n * Throws if the async operation failed.\n */\nintemporal.core.join \x3d (function intemporal$core$join(handle){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar handle_seq \x3d new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle);\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar completed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),handle_seq);\nvar failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-failed\x22,\x22async-failed\x22,561954102),handle_seq);\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nif(cljs.core.truth_(failed)){\nthrow intemporal.internal.error.async_failed_exception(handle_seq,new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(failed));\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-pending\x22,\x22join-pending\x22,1949550175),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handle-seq\x22,\x22handle-seq\x22,2114954605),handle_seq], null));\n\n}\n}\n});\n/**\n * Wait for multiple async handles to complete.\n * Returns a vector of results in the same order as handles.\n * Throws if any async operation failed.\n */\nintemporal.core.join_all \x3d (function intemporal$core$join_all(handles){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(intemporal.core.join,handles);\n});\n/**\n * Wait for any of the async handles to complete.\n * Returns {:index idx :result result} for the first completed.\n * Note: In deterministic replay, this will always return the same result.\n */\nintemporal.core.join_any \x3d (function intemporal$core$join_any(handles){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915).cljs$core$IFn$_invoke$arity$1(existing),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nvar completed_idx \x3d cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (idx,handle){\nif(cljs.core.truth_(intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22async-completed\x22,\x22async-completed\x22,2124367273),new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420).cljs$core$IFn$_invoke$arity$1(handle)))){\nreturn idx;\n} else {\nreturn null;\n}\n}),handles));\nif(cljs.core.truth_(completed_idx)){\nvar result \x3d intemporal.core.join(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(handles,completed_idx));\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22join-any-completed\x22,\x22join-any-completed\x22,1346987143),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22index\x22,\x22index\x22,-1531685915),completed_idx,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22join-any-pending\x22,\x22join-any-pending\x22,-569720562),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22handle-seqs\x22,\x22handle-seqs\x22,160798629),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq-num\x22,\x22seq-num\x22,276639420),handles)], null));\n}\n}\n});\n/**\n * Wait for a signal with the given name.\n * Returns the signal payload when received.\n */\nintemporal.core.wait_for_signal \x3d (function intemporal$core$wait_for_signal(signal_name){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-received\x22,\x22signal-received\x22,-2018402715),seq_num);\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal\x22,\x22wait-signal\x22,-1944180622),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name], null));\n}\n});\n/**\n * Wait for a signal with timeout.\n * Returns {:received true :payload ...} or {:received false} on timeout.\n */\nintemporal.core.wait_for_signal_with_timeout \x3d (function intemporal$core$wait_for_signal_with_timeout(signal_name,timeout_ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22signal-wait-completed\x22,\x22signal-wait-completed\x22,-670759211),seq_num);\nif(cljs.core.truth_(existing)){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634).cljs$core$IFn$_invoke$arity$1(existing))){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),true,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092).cljs$core$IFn$_invoke$arity$1(existing)], null);\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22received\x22,\x22received\x22,583193634),false], null);\n}\n} else {\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22wait-signal-timeout\x22,\x22wait-signal-timeout\x22,1180736114),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22signal-name\x22,\x22signal-name\x22,-1602168404),signal_name,new cljs.core.Keyword(null,\x22timeout-ms\x22,\x22timeout-ms\x22,754221406),timeout_ms,new cljs.core.Keyword(null,\x22deadline\x22,\x22deadline\x22,628964572),(intemporal.utils.current_time_ms() + timeout_ms)], null));\n}\n});\n/**\n * Sleep for specified milliseconds\n */\nintemporal.core.sleep \x3d (function intemporal$core$sleep(ms){\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22timer-fired\x22,\x22timer-fired\x22,-1807666259),seq_num);\nif(cljs.core.truth_(existing)){\nreturn null;\n} else {\nvar fire_at \x3d (intemporal.utils.current_time_ms() + ms);\nintemporal.internal.context.add_pending_event_BANG_(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22timer-scheduled\x22,\x22timer-scheduled\x22,-2096831001),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at,new cljs.core.Keyword(null,\x22duration-ms\x22,\x22duration-ms\x22,1993555055),ms,new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null));\n\nintemporal.internal.context.notify_observer.cljs$core$IFn$_invoke$arity$variadic(intemporal.protocol.on_timer_scheduled,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx),seq_num,fire_at], 0));\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22timer\x22,\x22timer\x22,-1266967739),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22fire-at\x22,\x22fire-at\x22,1004755946),fire_at], null));\n}\n});\n/**\n * Run another workflow as a child workflow.\n * The child workflow has its own history but is tracked by the parent.\n */\nintemporal.core.run_child_workflow \x3d (function intemporal$core$run_child_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76368 \x3d arguments.length;\nvar i__5750__auto___76369 \x3d (0);\nwhile(true){\nif((i__5750__auto___76369 \x3c len__5749__auto___76368)){\nargs__5755__auto__.push((arguments[i__5750__auto___76369]));\n\nvar G__76370 \x3d (i__5750__auto___76369 + (1));\ni__5750__auto___76369 \x3d G__76370;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((2) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);\nreturn intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);\n});\n\n(intemporal.core.run_child_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (child_workflow_fn,args,p__76250){\nvar map__76251 \x3d p__76250;\nvar map__76251__$1 \x3d cljs.core.__destructure_map(map__76251);\nvar child_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76251__$1,new cljs.core.Keyword(null,\x22child-id\x22,\x22child-id\x22,1325542429));\nintemporal.internal.context.check_cancelled_BANG_();\n\nvar ctx \x3d intemporal.internal.context.current_context();\nvar seq_num \x3d intemporal.internal.context.next_seq_BANG_();\nvar child_wf_id \x3d (function (){var or__5025__auto__ \x3d child_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646).cljs$core$IFn$_invoke$arity$1(ctx)),\x22/child-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(seq_num)].join(\x27\x27);\n}\n})();\nvar store \x3d intemporal.internal.context.current_store();\nvar workflow_id \x3d intemporal.internal.context.current_workflow_id();\nvar existing \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-completed\x22,\x22child-workflow-completed\x22,2104305517),seq_num);\nvar existing_failed \x3d intemporal.protocol.find_event(store,workflow_id,new cljs.core.Keyword(null,\x22child-workflow-failed\x22,\x22child-workflow-failed\x22,1099904925),seq_num);\nvar err \x3d (function (){var G__76252 \x3d new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed);\nif((G__76252 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.map__GT_exception(G__76252);\n}\n})();\nvar interrupted_QMARK_ \x3d cljs.core.boolean$((function (){var G__76253 \x3d err;\nif((G__76253 \x3d\x3d null)){\nreturn null;\n} else {\nreturn intemporal.internal.error.interruption_QMARK_(G__76253);\n}\n})());\nif(cljs.core.truth_(existing)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(existing);\n} else {\nif(cljs.core.truth_(existing_failed)){\nthrow intemporal.internal.error.map__GT_exception(new cljs.core.Keyword(null,\x22error\x22,\x22error\x22,-978969032).cljs$core$IFn$_invoke$arity$1(existing_failed));\n} else {\nvar scheduled_event \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813),new cljs.core.Keyword(null,\x22child-workflow-scheduled\x22,\x22child-workflow-scheduled\x22,-1056741653),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cljs.core.vec(args),new cljs.core.Keyword(null,\x22timestamp\x22,\x22timestamp\x22,579478971),intemporal.utils.current_time_ms()], null);\nintemporal.internal.context.add_pending_event_BANG_(scheduled_event);\n\nthrow intemporal.internal.error.make_suspension(new cljs.core.Keyword(null,\x22child-workflow\x22,\x22child-workflow\x22,2123068549),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),seq_num,new cljs.core.Keyword(null,\x22child-workflow-id\x22,\x22child-workflow-id\x22,-335069950),child_wf_id,new cljs.core.Keyword(null,\x22workflow-fn\x22,\x22workflow-fn\x22,-1450627836),child_workflow_fn,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n\n}\n}\n}));\n\n(intemporal.core.run_child_workflow.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(intemporal.core.run_child_workflow.cljs$lang$applyTo \x3d (function (seq76247){\nvar G__76248 \x3d cljs.core.first(seq76247);\nvar seq76247__$1 \x3d cljs.core.next(seq76247);\nvar G__76249 \x3d cljs.core.first(seq76247__$1);\nvar seq76247__$2 \x3d cljs.core.next(seq76247__$1);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76248,G__76249,seq76247__$2);\n}));\n\n/**\n * Start a workflow execution.\n * \n * Arguments:\n * - engine: should have:\n * - store: IStore implementation for persistence\n * - executor: IActivityExecutor for running activities\n * - scheduler: IScheduler for timers\n * - registry: Activity registry atom\n * - workflow-fn: The workflow function to execute\n * - args: Arguments to pass to workflow-fn\n * \n * Options:\n * - :workflow-id - Custom workflow ID (default: random UUID)\n * - :observer - IWorkflowObserver for monitoring\n * - :max-iterations - Maximum replay iterations (default: 1000)\n * \n * Returns the result map on JVM (blocking). Returns a js/Promise on ClojureScript.\n */\nintemporal.core.start_workflow \x3d (function intemporal$core$start_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76371 \x3d arguments.length;\nvar i__5750__auto___76372 \x3d (0);\nwhile(true){\nif((i__5750__auto___76372 \x3c len__5749__auto___76371)){\nargs__5755__auto__.push((arguments[i__5750__auto___76372]));\n\nvar G__76373 \x3d (i__5750__auto___76372 + (1));\ni__5750__auto___76372 \x3d G__76373;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((3) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);\nreturn intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);\n});\n\n(intemporal.core.start_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (engine,workflow_fn,args,opts){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(intemporal.internal.fns.start_workflow.start_workflow,engine,workflow_fn,args,opts);\n}));\n\n(intemporal.core.start_workflow.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(intemporal.core.start_workflow.cljs$lang$applyTo \x3d (function (seq76254){\nvar G__76255 \x3d cljs.core.first(seq76254);\nvar seq76254__$1 \x3d cljs.core.next(seq76254);\nvar G__76256 \x3d cljs.core.first(seq76254__$1);\nvar seq76254__$2 \x3d cljs.core.next(seq76254__$1);\nvar G__76257 \x3d cljs.core.first(seq76254__$2);\nvar seq76254__$3 \x3d cljs.core.next(seq76254__$2);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76255,G__76256,G__76257,seq76254__$3);\n}));\n\n/**\n * Resume a waiting workflow (e.g., after signal delivery or timer).\n * \n * Arguments:\n * - engine: must have:\n * - store: IStore implementation\n * - executor: IActivityExecutor\n * - scheduler: IScheduler\n * - registry: Activity registry atom\n * - workflow-id: ID of workflow to resume\n * - workflow-fn: The workflow function\n * - args: Original arguments\n * \n * Options:\n * - :observer - IWorkflowObserver\n * - :max-iterations - Maximum replay iterations\n */\nintemporal.core.resume_workflow \x3d (function intemporal$core$resume_workflow(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76374 \x3d arguments.length;\nvar i__5750__auto___76375 \x3d (0);\nwhile(true){\nif((i__5750__auto___76375 \x3c len__5749__auto___76374)){\nargs__5755__auto__.push((arguments[i__5750__auto___76375]));\n\nvar G__76376 \x3d (i__5750__auto___76375 + (1));\ni__5750__auto___76375 \x3d G__76376;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.resume_workflow.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76263,workflow_id,workflow_fn,args,p__76264){\nvar map__76265 \x3d p__76263;\nvar map__76265__$1 \x3d cljs.core.__destructure_map(map__76265);\nvar engine \x3d map__76265__$1;\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76265__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022));\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76265__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76265__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar registry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76265__$1,new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018));\nvar map__76266 \x3d p__76264;\nvar map__76266__$1 \x3d cljs.core.__destructure_map(map__76266);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76266__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar max_iterations \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76266__$1,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),(1000));\nif(cljs.core.truth_(observer)){\nintemporal.protocol.on_workflow_resumed(observer,workflow_id);\n} else {\n}\n\nvar args__69512__auto___76377 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Workflow resumed\x22], null);\nvar vec__76267_76378 \x3d (((cljs.core.first(args__69512__auto___76377) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69512__auto___76377),cljs.core.rest(args__69512__auto___76377)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,args__69512__auto___76377], null));\nvar err__69513__auto___76379 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76267_76378,(0),null);\nvar msgs__69514__auto___76380 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76267_76378,(1),null);\nvar msg__69515__auto___76381 \x3d ((cljs.core.seq(msgs__69514__auto___76380))?clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22 \x22,msgs__69514__auto___76380):cljs.core.str.cljs$core$IFn$_invoke$arity$1(err__69513__auto___76379));\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,msg__69515__auto___76381,err__69513__auto___76379,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nreturn intemporal.internal.execution.run_workflow_internal(engine,workflow_id,workflow_fn,args,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),observer,new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),max_iterations], null));\n}));\n\n(intemporal.core.resume_workflow.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.resume_workflow.cljs$lang$applyTo \x3d (function (seq76258){\nvar G__76259 \x3d cljs.core.first(seq76258);\nvar seq76258__$1 \x3d cljs.core.next(seq76258);\nvar G__76260 \x3d cljs.core.first(seq76258__$1);\nvar seq76258__$2 \x3d cljs.core.next(seq76258__$1);\nvar G__76261 \x3d cljs.core.first(seq76258__$2);\nvar seq76258__$3 \x3d cljs.core.next(seq76258__$2);\nvar G__76262 \x3d cljs.core.first(seq76258__$3);\nvar seq76258__$4 \x3d cljs.core.next(seq76258__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76259,G__76260,G__76261,G__76262,seq76258__$4);\n}));\n\n/**\n * Send a signal to a workflow.\n * \n * Arguments:\n * - store: IStore implementation\n * - workflow-id: Target workflow ID\n * - signal-name: Name of the signal\n * - payload: Signal payload data\n * \n * Options:\n * - :signal-id - Custom signal ID for idempotency\n */\nintemporal.core.send_signal \x3d (function intemporal$core$send_signal(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76382 \x3d arguments.length;\nvar i__5750__auto___76383 \x3d (0);\nwhile(true){\nif((i__5750__auto___76383 \x3c len__5749__auto___76382)){\nargs__5755__auto__.push((arguments[i__5750__auto___76383]));\n\nvar G__76384 \x3d (i__5750__auto___76383 + (1));\ni__5750__auto___76383 \x3d G__76384;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((4) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);\nreturn intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);\n});\n\n(intemporal.core.send_signal.cljs$core$IFn$_invoke$arity$variadic \x3d (function (store,workflow_id,signal_name,payload,p__76275){\nvar map__76276 \x3d p__76275;\nvar map__76276__$1 \x3d cljs.core.__destructure_map(map__76276);\nvar signal_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76276__$1,new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781));\nvar id \x3d (function (){var or__5025__auto__ \x3d signal_id;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n})();\nvar _STAR_xfn_STAR__orig_val__76277_76385 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__76278_76386 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__76278_76386);\n\ntry{intemporal.protocol.add_signal(store,workflow_id,signal_name,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22payload\x22,\x22payload\x22,-383036092),payload], null));\n\nvar args__69521__auto___76387 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Adding signal %s\x22,signal_name], null);\nvar vec__76279_76388 \x3d (((cljs.core.first(args__69521__auto___76387) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76387),cljs.core.second(args__69521__auto___76387),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76387)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76387),cljs.core.rest(args__69521__auto___76387)], null));\nvar err__69522__auto___76389 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76279_76388,(0),null);\nvar fmt__69523__auto___76390 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76279_76388,(1),null);\nvar fmt_args__69524__auto___76391 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76279_76388,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76390,fmt_args__69524__auto___76391),err__69522__auto___76389,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__76277_76385);\n}\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22signal-id\x22,\x22signal-id\x22,-752993781),id], null);\n}));\n\n(intemporal.core.send_signal.cljs$lang$maxFixedArity \x3d (4));\n\n/** @this {Function} */\n(intemporal.core.send_signal.cljs$lang$applyTo \x3d (function (seq76270){\nvar G__76271 \x3d cljs.core.first(seq76270);\nvar seq76270__$1 \x3d cljs.core.next(seq76270);\nvar G__76272 \x3d cljs.core.first(seq76270__$1);\nvar seq76270__$2 \x3d cljs.core.next(seq76270__$1);\nvar G__76273 \x3d cljs.core.first(seq76270__$2);\nvar seq76270__$3 \x3d cljs.core.next(seq76270__$2);\nvar G__76274 \x3d cljs.core.first(seq76270__$3);\nvar seq76270__$4 \x3d cljs.core.next(seq76270__$3);\nvar self__5734__auto__ \x3d this;\nreturn self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__76271,G__76272,G__76273,G__76274,seq76270__$4);\n}));\n\n/**\n * Cancel a running workflow.\n * The workflow will be cancelled at the next suspension point.\n */\nintemporal.core.cancel_workflow \x3d (function intemporal$core$cancel_workflow(store,workflow_id){\nvar _STAR_xfn_STAR__orig_val__76282_76392 \x3d taoensso.telemere._STAR_xfn_STAR_;\nvar _STAR_xfn_STAR__temp_val__76283_76393 \x3d (function (s__69505__auto__){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(s__69505__auto__,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null));\n});\n(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__temp_val__76283_76393);\n\ntry{intemporal.protocol.mark_cancelled(store,workflow_id);\n\nvar args__69521__auto___76394 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Cancelling workflow\x22], null);\nvar vec__76284_76395 \x3d (((cljs.core.first(args__69521__auto___76394) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76394),cljs.core.second(args__69521__auto___76394),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76394)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76394),cljs.core.rest(args__69521__auto___76394)], null));\nvar err__69522__auto___76396 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76284_76395,(0),null);\nvar fmt__69523__auto___76397 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76284_76395,(1),null);\nvar fmt_args__69524__auto___76398 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76284_76395,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22debug\x22,\x22debug\x22,-1608172596);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76397,fmt_args__69524__auto___76398),err__69522__auto___76396,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n}finally {(taoensso.telemere._STAR_xfn_STAR_ \x3d _STAR_xfn_STAR__orig_val__76282_76392);\n}\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22cancelled\x22,\x22cancelled\x22,488726224),true,new cljs.core.Keyword(null,\x22workflow-id\x22,\x22workflow-id\x22,-199003646),workflow_id], null);\n});\n/**\n * Get the history of a workflow\n */\nintemporal.core.get_workflow_history \x3d (function intemporal$core$get_workflow_history(store,workflow_id){\nreturn intemporal.protocol.load_history(store,workflow_id);\n});\n/**\n * Get the final result of a completed workflow, or nil if not completed\n */\nintemporal.core.get_workflow_result \x3d (function intemporal$core$get_workflow_result(store,workflow_id){\nvar history__$1 \x3d intemporal.protocol.load_history(store,workflow_id);\nvar completed \x3d cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__76287_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22event-type\x22,\x22event-type\x22,319722813).cljs$core$IFn$_invoke$arity$1(p1__76287_SHARP_),new cljs.core.Keyword(null,\x22workflow-completed\x22,\x22workflow-completed\x22,-1058513721));\n}),history__$1));\nif(cljs.core.truth_(completed)){\nreturn new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211).cljs$core$IFn$_invoke$arity$1(completed);\n} else {\nreturn null;\n}\n});\n/**\n * Create a complete workflow engine with all components.\n * Returns a map with :store, :executor, :scheduler, :registry, and :observer.\n * \n * Options:\n * - :store - instance of protocols/IStore\n * - :threads - Number of executor threads (default: 4)\n * - :scheduler-threads - Number of scheduler threads (default: 2)\n * - :default-timeout-ms - Default activity timeout (default: 30000)\n * - :enable-logging - Enable logging observer (default: false)\n * - :observer - Custom observer instance (overrides :enable-logging)\n */\nintemporal.core.make_workflow_engine \x3d (function intemporal$core$make_workflow_engine(var_args){\nvar args__5755__auto__ \x3d [];\nvar len__5749__auto___76399 \x3d arguments.length;\nvar i__5750__auto___76400 \x3d (0);\nwhile(true){\nif((i__5750__auto___76400 \x3c len__5749__auto___76399)){\nargs__5755__auto__.push((arguments[i__5750__auto___76400]));\n\nvar G__76401 \x3d (i__5750__auto___76400 + (1));\ni__5750__auto___76400 \x3d G__76401;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5756__auto__ \x3d ((((0) \x3c args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);\nreturn intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);\n});\n\n(intemporal.core.make_workflow_engine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__76289){\nvar map__76290 \x3d p__76289;\nvar map__76290__$1 \x3d cljs.core.__destructure_map(map__76290);\nvar store \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76290__$1,new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),intemporal.store.__GT_InMemoryStore(cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY)));\nvar threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76290__$1,new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),(4));\nvar scheduler_threads \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76290__$1,new cljs.core.Keyword(null,\x22scheduler-threads\x22,\x22scheduler-threads\x22,-1610707786),(2));\nvar default_timeout_ms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76290__$1,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),(30000));\nvar enable_logging \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__76290__$1,new cljs.core.Keyword(null,\x22enable-logging\x22,\x22enable-logging\x22,-1075137859),false);\nvar observer \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76290__$1,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540));\nvar registry \x3d intemporal.internal.activity.make_registry();\nvar log_atom \x3d (cljs.core.truth_(enable_logging)?cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentVector.EMPTY):null);\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22store\x22,\x22store\x22,1512230022),store,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162),intemporal.internal.runtime.make_vthreads_executor.cljs$core$IFn$_invoke$arity$variadic(registry,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),threads,new cljs.core.Keyword(null,\x22default-timeout-ms\x22,\x22default-timeout-ms\x22,611456053),default_timeout_ms], 0)),new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208),intemporal.internal.runtime.make_scheduler.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22threads\x22,\x22threads\x22,-1717798734),scheduler_threads], 0)),new cljs.core.Keyword(null,\x22registry\x22,\x22registry\x22,1021159018),registry,new cljs.core.Keyword(null,\x22observer\x22,\x22observer\x22,-1103665540),(function (){var or__5025__auto__ \x3d observer;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nif(cljs.core.truth_(enable_logging)){\nreturn intemporal.observer.make_logging_observer.cljs$core$IFn$_invoke$arity$1(log_atom);\n} else {\nreturn intemporal.observer.noop_observer();\n}\n}\n})(),new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),(cljs.core.truth_(enable_logging)?log_atom:null)], null);\n}));\n\n(intemporal.core.make_workflow_engine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(intemporal.core.make_workflow_engine.cljs$lang$applyTo \x3d (function (seq76288){\nvar self__5735__auto__ \x3d this;\nreturn self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq76288));\n}));\n\n/**\n * Shutdown all components of a workflow engine\n */\nintemporal.core.shutdown_engine \x3d (function intemporal$core$shutdown_engine(var_args){\nvar G__76292 \x3d arguments.length;\nswitch (G__76292) {\ncase 1:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$1 \x3d (function (p__76293){\nvar map__76294 \x3d p__76293;\nvar map__76294__$1 \x3d cljs.core.__destructure_map(map__76294);\nvar engine \x3d map__76294__$1;\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76294__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76294__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nreturn intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2(engine,(0));\n}));\n\n(intemporal.core.shutdown_engine.cljs$core$IFn$_invoke$arity$2 \x3d (function (p__76295,grace_period_secs){\nvar map__76296 \x3d p__76295;\nvar map__76296__$1 \x3d cljs.core.__destructure_map(map__76296);\nvar executor \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76296__$1,new cljs.core.Keyword(null,\x22executor\x22,\x22executor\x22,1197215162));\nvar scheduler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__76296__$1,new cljs.core.Keyword(null,\x22scheduler\x22,\x22scheduler\x22,-1882870208));\nvar args__69521__auto___76403 \x3d new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22Shutting down engine\x22], null);\nvar vec__76297_76404 \x3d (((cljs.core.first(args__69521__auto___76403) instanceof java.lang.Throwable))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(args__69521__auto___76403),cljs.core.second(args__69521__auto___76403),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__69521__auto___76403)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.first(args__69521__auto___76403),cljs.core.rest(args__69521__auto___76403)], null));\nvar err__69522__auto___76405 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76297_76404,(0),null);\nvar fmt__69523__auto___76406 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76297_76404,(1),null);\nvar fmt_args__69524__auto___76407 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__76297_76404,(2),null);\n(function (){\nvar __run_fn_form \x3d null;\nvar __kind \x3d new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004);\nvar __ns \x3d \x22intemporal.core\x22;\nvar __id \x3d null;\nvar __level \x3d new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002);\nif(cljs.core.truth_((function (){var sf \x3d taoensso.telemere.impl._STAR_rt_call_filter_STAR_;\nif(cljs.core.truth_(sf)){\nreturn (sf.cljs$core$IFn$_invoke$arity$4 ? sf.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level) : sf.call(null,new cljs.core.Keyword(null,\x22log\x22,\x22log\x22,-1595516004),__ns,__id,__level));\n} else {\nreturn true;\n}\n})())){\nvar __inst \x3d (new Date());\nvar __thread \x3d null;\nvar __root0 \x3d taoensso.telemere.impl._STAR_trace_root_STAR_;\nvar __otel_context \x3d null;\nvar __uid \x3d null;\nvar __root1 \x3d __root0;\nvar __run_result \x3d null;\nvar signal__34626__auto__ \x3d (new cljs.core.Delay((function (){\n\nvar signal__34617__auto__ \x3d (new taoensso.telemere.impl.Signal((1),__inst,__uid,__ns,null,null,__kind,__id,__level,taoensso.telemere._STAR_ctx_STAR_,taoensso.telemere.impl._STAR_trace_parent_STAR_,__root1,null,null,intemporal.internal.logging.fmat(fmt__69523__auto___76406,fmt_args__69524__auto___76407),err__69522__auto___76405,null,null,null,null,null,null,null));\nvar temp__5823__auto__ \x3d taoensso.telemere._STAR_xfn_STAR_;\nif(cljs.core.truth_(temp__5823__auto__)){\nvar xfn__34618__auto__ \x3d temp__5823__auto__;\nreturn (xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1 ? xfn__34618__auto__.cljs$core$IFn$_invoke$arity$1(signal__34617__auto__) : xfn__34618__auto__.call(null,signal__34617__auto__));\n} else {\nreturn signal__34617__auto__;\n}\n}),null));\ntaoensso.telemere.impl.dispatch_signal_BANG_((new taoensso.telemere.impl.WrappedSignal(__kind,__ns,__id,__level,signal__34626__auto__)));\n\nif(cljs.core.truth_(__run_result)){\nreturn (__run_result.cljs$core$IFn$_invoke$arity$1 ? __run_result.cljs$core$IFn$_invoke$arity$1(signal__34626__auto__) : __run_result.call(null,signal__34626__auto__));\n} else {\nreturn true;\n}\n} else {\nreturn null;\n}\n})();\n\n\nintemporal.protocol.shutdown_executor(executor,grace_period_secs);\n\nreturn intemporal.protocol.shutdown_scheduler(scheduler,grace_period_secs);\n}));\n\n(intemporal.core.shutdown_engine.cljs$lang$maxFixedArity \x3d 2);\n\n"); SHADOW_ENV.evalLoad("hiccups.runtime.js", true, "goog.provide(\x27hiccups.runtime\x27);\n/**\n * Regular expression that parses a CSS-style id and class from a tag name.\n */\nhiccups.runtime.re_tag \x3d /([^\\s\\.#]+)(?:#([^\\s\\.#]+))?(?:\\.([^\\s#]+))?/;\n/**\n * Characters to replace when escaping HTML\n */\nhiccups.runtime.character_escapes \x3d new cljs.core.PersistentArrayMap(null, 4, [\x22\x26\x22,\x22\x26amp;\x22,\x22\x3c\x22,\x22\x26lt;\x22,\x22\x3e\x22,\x22\x26gt;\x22,\x22\\\x22\x22,\x22\x26quot;\x22], null);\n/**\n * A list of tags that need an explicit ending tag when rendered.\n */\nhiccups.runtime.container_tags \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 33, [\x22table\x22,null,\x22canvas\x22,null,\x22body\x22,null,\x22h3\x22,null,\x22dt\x22,null,\x22label\x22,null,\x22fieldset\x22,null,\x22form\x22,null,\x22em\x22,null,\x22option\x22,null,\x22h2\x22,null,\x22h4\x22,null,\x22style\x22,null,\x22span\x22,null,\x22script\x22,null,\x22ol\x22,null,\x22dd\x22,null,\x22a\x22,null,\x22head\x22,null,\x22textarea\x22,null,\x22i\x22,null,\x22div\x22,null,\x22b\x22,null,\x22h5\x22,null,\x22pre\x22,null,\x22ul\x22,null,\x22iframe\x22,null,\x22strong\x22,null,\x22html\x22,null,\x22h1\x22,null,\x22li\x22,null,\x22dl\x22,null,\x22h6\x22,null], null), null);\nhiccups.runtime.as_str \x3d (function hiccups$runtime$as_str(x){\nif((((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)))){\nreturn cljs.core.name(x);\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);\n}\n});\nhiccups.runtime._STAR_html_mode_STAR_ \x3d new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052);\nhiccups.runtime.xml_mode_QMARK_ \x3d (function hiccups$runtime$xml_mode_QMARK_(){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(hiccups.runtime._STAR_html_mode_STAR_,new cljs.core.Keyword(null,\x22xml\x22,\x22xml\x22,-1170142052));\n});\nhiccups.runtime.in_mode \x3d (function hiccups$runtime$in_mode(mode,f){\nvar _STAR_html_mode_STAR__orig_val__48197 \x3d hiccups.runtime._STAR_html_mode_STAR_;\nvar _STAR_html_mode_STAR__temp_val__48198 \x3d mode;\n(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__temp_val__48198);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(hiccups.runtime._STAR_html_mode_STAR_ \x3d _STAR_html_mode_STAR__orig_val__48197);\n}});\n/**\n * Change special characters into HTML character entities.\n */\nhiccups.runtime.escape_html \x3d (function hiccups$runtime$escape_html(text){\nreturn clojure.string.escape(hiccups.runtime.as_str(text),hiccups.runtime.character_escapes);\n});\nhiccups.runtime.h \x3d hiccups.runtime.escape_html;\nhiccups.runtime.end_tag \x3d (function hiccups$runtime$end_tag(){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn \x22 /\x3e\x22;\n} else {\nreturn \x22\x3e\x22;\n}\n});\nhiccups.runtime.xml_attribute \x3d (function hiccups$runtime$xml_attribute(name,value){\nreturn [\x22 \x22,hiccups.runtime.as_str(name),\x22\x3d\\\x22\x22,hiccups.runtime.escape_html(value),\x22\\\x22\x22].join(\x27\x27);\n});\nhiccups.runtime.render_attribute \x3d (function hiccups$runtime$render_attribute(p__48206){\nvar vec__48207 \x3d p__48206;\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(0),null);\nvar value \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48207,(1),null);\nif(value \x3d\x3d\x3d true){\nif(hiccups.runtime.xml_mode_QMARK_()){\nreturn hiccups.runtime.xml_attribute(name,name);\n} else {\nreturn [\x22 \x22,hiccups.runtime.as_str(name)].join(\x27\x27);\n}\n} else {\nif(cljs.core.not(value)){\nreturn \x22\x22;\n} else {\nreturn hiccups.runtime.xml_attribute(name,value);\n\n}\n}\n});\nhiccups.runtime.render_attr_map \x3d (function hiccups$runtime$render_attr_map(attrs){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_attribute,attrs)));\n});\n/**\n * Ensure a tag vector is of the form [tag-name attrs content].\n */\nhiccups.runtime.normalize_element \x3d (function hiccups$runtime$normalize_element(p__48214){\nvar vec__48216 \x3d p__48214;\nvar seq__48217 \x3d cljs.core.seq(vec__48216);\nvar first__48218 \x3d cljs.core.first(seq__48217);\nvar seq__48217__$1 \x3d cljs.core.next(seq__48217);\nvar tag \x3d first__48218;\nvar content \x3d seq__48217__$1;\nif((!((((tag instanceof cljs.core.Keyword)) || ((((tag instanceof cljs.core.Symbol)) || (typeof tag \x3d\x3d\x3d \x27string\x27))))))){\nthrow [cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22 is not a valid tag name\x22].join(\x27\x27);\n} else {\n}\n\nvar vec__48234 \x3d cljs.core.re_matches(hiccups.runtime.re_tag,hiccups.runtime.as_str(tag));\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(0),null);\nvar tag__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(1),null);\nvar id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(2),null);\nvar class$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48234,(3),null);\nvar tag_attrs \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996),(cljs.core.truth_(class$)?clojure.string.replace(class$,\x22.\x22,\x22 \x22):null)], null);\nvar map_attrs \x3d cljs.core.first(content);\nif(cljs.core.map_QMARK_(map_attrs)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag_attrs,map_attrs], 0)),cljs.core.next(content)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag__$1,tag_attrs,content], null);\n}\n});\n/**\n * Render a tag vector as a HTML element.\n */\nhiccups.runtime.render_element \x3d (function hiccups$runtime$render_element(element){\nvar vec__48243 \x3d hiccups.runtime.normalize_element(element);\nvar tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(0),null);\nvar attrs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(1),null);\nvar content \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__48243,(2),null);\nif(cljs.core.truth_((function (){var or__5025__auto__ \x3d content;\nif(cljs.core.truth_(or__5025__auto__)){\nreturn or__5025__auto__;\n} else {\nreturn (hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.container_tags.cljs$core$IFn$_invoke$arity$1(tag) : hiccups.runtime.container_tags.call(null,tag));\n}\n})())){\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),\x22\x3e\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1 ? hiccups.runtime.render_html.cljs$core$IFn$_invoke$arity$1(content) : hiccups.runtime.render_html.call(null,content))),\x22\x3c/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22\x3e\x22].join(\x27\x27);\n} else {\nreturn [\x22\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccups.runtime.render_attr_map(attrs)),hiccups.runtime.end_tag()].join(\x27\x27);\n}\n});\n/**\n * Turn a Clojure data type into a string of HTML.\n */\nhiccups.runtime.render_html \x3d (function hiccups$runtime$render_html(x){\nif(cljs.core.vector_QMARK_(x)){\nreturn hiccups.runtime.render_element(x);\n} else {\nif(cljs.core.seq_QMARK_(x)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hiccups.runtime.render_html,x));\n} else {\nreturn hiccups.runtime.as_str(x);\n\n}\n}\n});\n"); SHADOW_ENV.evalLoad("shadow.module.shared.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27shared\x27);\n;\nSHADOW_ENV.setLoaded(\x22goog.base.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.error.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.nodetype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.reflect.reflect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.long.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.integer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.htmlelement.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tagname.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.element.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.asserts.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.asserts.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.functions.functions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.typedstring.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.const.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedtypes.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safescript.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.url.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.fs.blob.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.trustedresourceurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.internal.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safeurl.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestyle.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.object.object.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safestylesheet.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.flags.flags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.util.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropyvalue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.chromium_rebrands.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.highentropy.highentropydata.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.array.array.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.tags.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.safehtml.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.html.uncheckedconversions.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.safe.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.string.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.maps.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.structs.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.uri.uri.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringbuffer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.string.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.console.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.engine.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.labs.useragent.platform.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.useragent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.math.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.coordinate.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.size.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.useragent.product.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.json.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.set.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.env.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.inputtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.collections.iters.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.errorcontext.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.debug.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.iter.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.iter.es6.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.map.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.window.window.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.forms.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.classlist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.dom.vendor.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.box.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.irect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.math.rect.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.style.style.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.dom.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.buffers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.entrypointregistry.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.nexttick.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.dispatch.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.channels.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.timers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.impl.ioc_helpers.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.core.async.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.data.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.util.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.object.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.animate.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.util.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.delimiters.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.caching.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.eq.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.types.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.decoder.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.handlers.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.impl.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22com.cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22cognitect.transit.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.api.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.core.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.cljs.js_builtins.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.datafy.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.pprint.js\x22);\nSHADOW_ENV.setLoaded(\x22clojure.walk.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.gen.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.spec.alpha.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.writer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.string.stringformat.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.repl.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.obj_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.tap_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.remote.runtime.eval_support.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.shared.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.hud.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.websocket.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.cljs.devtools.client.browser.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.error.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.protocol.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.protocols.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.util.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.exec.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22promesa.core.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.context.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.activity.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.truss.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.reader_types.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.inspect.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.errors.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.impl.commons.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tools.reader.edn.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.reader.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.idisposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.dispose.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposeall.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.disposable.disposable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.event.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserfeature.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtypehelpers.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.browserevent.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenablekey.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listener.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.listenermap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.events.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.thenable.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.freelist.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.workqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.debug.asyncstacktag.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.throwexception.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.async.run.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.resolver.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.promise.promise.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.events.eventtarget.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.timer.timer.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.json.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.json.hybrid.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.log.log.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.errorcode.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.eventtype.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.httpstatus.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrlike.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.wrapperxmlhttpfactory.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xmlhttp.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhrio.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.queue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.collection.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.set.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.pool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.node.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.heap.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.priorityqueue.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.structs.prioritypool.js\x22);\nSHADOW_ENV.setLoaded(\x22goog.net.xhriopool.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.stats.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.encore.signals.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.consoles.js\x22);\nSHADOW_ENV.setLoaded(\x22taoensso.telemere.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.logging.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.utils.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.execution.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.fns.start_workflow.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.store.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.observer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.impl.namespaces.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.passes.and_or.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.env.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.tagged_literals.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.js\x22);\nSHADOW_ENV.setLoaded(\x22cljs.analyzer.api.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.internal.macros.js\x22);\nSHADOW_ENV.setLoaded(\x22intemporal.core.js\x22);\nSHADOW_ENV.setLoaded(\x22hiccups.runtime.js\x22);\nSHADOW_ENV.setLoaded(\x22shadow.module.shared.append.js\x22);"); \ No newline at end of file diff --git a/src/intemporal/internal/context.cljc b/src/intemporal/internal/context.cljc index a083daa..c24e93d 100644 --- a/src/intemporal/internal/context.cljc +++ b/src/intemporal/internal/context.cljc @@ -79,11 +79,10 @@ ;; Context-Aware Macros, cljs only ;; ============================================================================ -;; TODO: ensure these are cljs only - (defmacro blet "Like p/let, but automatically propagates *workflow-context*." [bindings & body] + #_{:clj-kondo/ignore [:unresolved-symbol]} (macros/case :clj (throw (IllegalArgumentException. "CLJS only")) :cljs diff --git a/src/intemporal/internal/execution.cljs b/src/intemporal/internal/execution.cljs index 5897687..5add223 100644 --- a/src/intemporal/internal/execution.cljs +++ b/src/intemporal/internal/execution.cljs @@ -8,7 +8,7 @@ [promesa.core :as prom]) (:require-macros [intemporal.internal.logging :as log] [intemporal.internal.execution :refer [-notify]] - [intemporal.internal.context :refer [blet bthen bfinally]])) + [intemporal.internal.context :refer [blet bthen]])) ;; ============================================================================ ;; Workflow Execution Engine @@ -529,6 +529,7 @@ [{:keys [store executor scheduler registry] :as engine} workflow-id workflow-fn args {:keys [observer max-iterations wake-fn] :or {max-iterations 1000}}] + #_{:clj-kondo/ignore [:loop-without-recur]} (prom/loop [iteration 0] (when (>= iteration max-iterations) (throw (ex-info "Max iterations exceeded" {:workflow-id workflow-id diff --git a/src/intemporal/internal/logging.cljc b/src/intemporal/internal/logging.cljc index 181f8d4..6dccae3 100644 --- a/src/intemporal/internal/logging.cljc +++ b/src/intemporal/internal/logging.cljc @@ -2,7 +2,9 @@ (:require [clojure.string :as str] [taoensso.telemere :as t] #?(:cljs [goog.string :as gstring]) - #?(:cljs [goog.string.format]))) + #?(:cljs [goog.string.format])) + #?(:clj (:require [net.cgrand.macrovich :as macros]) + :cljs (:require-macros [net.cgrand.macrovich :as macros]))) (defmacro with-mdc "Evaluates body with given map merged into telemere's signal context." @@ -15,23 +17,25 @@ :cljs (apply gstring/format s args))) (defmacro expand-log [level & args] - `(let [args# [~@args] - [err# msgs#] (if (instance? #?(:clj Throwable :cljs js/Error) (first args#)) - [(first args#) (rest args#)] - [nil args#]) - msg# (if (seq msgs#) - (str/join " " msgs#) - (str err#))] - (t/log! {:level ~level :msg msg# :error err#}))) + (let [err-type (macros/case :clj 'Throwable :cljs 'js/Error)] + `(let [args# [~@args] + [err# msgs#] (if (instance? ~err-type (first args#)) + [(first args#) (rest args#)] + [nil args#]) + msg# (if (seq msgs#) + (str/join " " msgs#) + (str err#))] + (t/log! {:level ~level :msg msg# :error err#})))) (defmacro expand-logf [level & args] - `(let [args# [~@args] - [err# fmt# fmt-args#] (if (instance? #?(:clj Throwable :cljs js/Error) (first args#)) - [(first args#) (second args#) (drop 2 args#)] - [nil (first args#) (rest args#)])] - (t/log! {:level ~level - :msg (fmat fmt# fmt-args#) - :error err#}))) + (let [err-type (macros/case :clj 'Throwable :cljs 'js/Error)] + `(let [args# [~@args] + [err# fmt# fmt-args#] (if (instance? ~err-type (first args#)) + [(first args#) (second args#) (drop 2 args#)] + [nil (first args#) (rest args#)])] + (t/log! {:level ~level + :msg (fmat fmt# fmt-args#) + :error err#})))) ;; --- Print-style (Variadic) --- (defmacro trace [& args] `(expand-log :trace ~@args)) diff --git a/src/intemporal/internal/macros.cljc b/src/intemporal/internal/macros.cljc index 448fa42..46076e5 100644 --- a/src/intemporal/internal/macros.cljc +++ b/src/intemporal/internal/macros.cljc @@ -18,32 +18,6 @@ ;;;; ;; userland -(defmacro defn-workflow - "Defines a workflow. Workflows are functions that are resillient to crashes, as - long as side-effects are run via activities." - [sym argv & body] - (let [wname (symbol (str sym "-"))] - ;sig (md5/string->md5-hex (str body))] - ;; TODO save signature - `(do - (defn- ~wname ~argv (do ~@body)) - (defn ~sym ~argv - ;; TODO: fixme: task id generator must be deterministic for a given workflow - (let [id# (or (random-uuid)) - fvar# #'~wname - ;; #'my-workflown-fn- => my-workflow-fn - orig# (subs (str fvar#) 2 (dec (count (str fvar#))))]))))) - -(defmacro stub-function - "Stubs `f`, wrapping it in an activity-aware function." - [f] - `(fn [& argv#] - (let [fvar# (var ~f)] - ;; TODO we can use &form to determine eg checksum of activity - - ;; prepare call - (let [])))) - (defmacro stub-protocol "Stub a protocol definition. Opts are currently unused. Example: `(stub-protocol EventHandler {:some-opts true})`" diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 4180b00..421f143 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -25,7 +25,7 @@ (.startsWith jdbc-url "jdbc:postgresql") :postgres (.startsWith jdbc-url "jdbc:mariadb") :mariadb (.startsWith jdbc-url "jdbc:mysql") :mysql - :else (throw (ex-info (format "Unknown jdbc url %s; only postgres and mysql/mariadb supported") {:jdbc-url jdbc-url}))) + :else (throw (ex-info "Unknown jdbc url %s; only postgres and mysql/mariadb supported" {:jdbc-url jdbc-url}))) cfg {:store :database :migration-dir (str "migrations/" kind) :db {:jdbcUrl jdbc-url}}] From e6af5b69f26dd0e537348ea901e9e50924850712 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Sun, 15 Feb 2026 23:44:37 +0000 Subject: [PATCH 76/81] fix bad macro --- src/intemporal/internal/logging.cljc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/intemporal/internal/logging.cljc b/src/intemporal/internal/logging.cljc index 6dccae3..06d7556 100644 --- a/src/intemporal/internal/logging.cljc +++ b/src/intemporal/internal/logging.cljc @@ -2,9 +2,7 @@ (:require [clojure.string :as str] [taoensso.telemere :as t] #?(:cljs [goog.string :as gstring]) - #?(:cljs [goog.string.format])) - #?(:clj (:require [net.cgrand.macrovich :as macros]) - :cljs (:require-macros [net.cgrand.macrovich :as macros]))) + #?(:cljs [goog.string.format]))) (defmacro with-mdc "Evaluates body with given map merged into telemere's signal context." @@ -17,7 +15,7 @@ :cljs (apply gstring/format s args))) (defmacro expand-log [level & args] - (let [err-type (macros/case :clj 'Throwable :cljs 'js/Error)] + (let [err-type (if (:ns &env) 'js/Error 'Throwable)] `(let [args# [~@args] [err# msgs#] (if (instance? ~err-type (first args#)) [(first args#) (rest args#)] @@ -28,7 +26,7 @@ (t/log! {:level ~level :msg msg# :error err#})))) (defmacro expand-logf [level & args] - (let [err-type (macros/case :clj 'Throwable :cljs 'js/Error)] + (let [err-type (if (:ns &env) 'js/Error 'Throwable)] `(let [args# [~@args] [err# fmt# fmt-args#] (if (instance? ~err-type (first args#)) [(first args#) (second args#) (drop 2 args#)] From ef2e64a7a49d8c865cb1e1211bfb70d34c44b418 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 23 Feb 2026 21:38:07 +0000 Subject: [PATCH 77/81] update docs --- CLAUDE.md | 116 +++++++++++++++++++++++++++++++------------------ DEVELOPMENT.md | 8 ++-- README.md | 72 +++++++++++------------------- 3 files changed, 103 insertions(+), 93 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index bf0f844..a906ce1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -17,29 +17,37 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co The codebase is organized into several layers: -1. **Core API** ([src/intemporal/core.clj](src/intemporal/core.clj)) +1. **Core API** ([src/intemporal/core.cljc](src/intemporal/core.cljc)) - `stub` - Creates activity stubs for use in workflows - - Main workflow execution entry points - - Handles activity caching, replay, and async operations + - `stub-protocol` - Creates protocol stubs for use in workflows + - `start-workflow`, `resume-workflow` - Workflow execution entry points + - `make-workflow-engine`, `with-workflow-engine` - Engine lifecycle + - `wait-for-signal`, `send-signal`, `sleep`, `async`, `join` - Workflow operations + - `run-child-workflow`, `cancel-workflow` - Child workflows and cancellation -2. **Protocol Definitions** ([src/intemporal/protocol.clj](src/intemporal/protocol.clj)) +2. **Protocol Definitions** ([src/intemporal/protocol.cljc](src/intemporal/protocol.cljc)) - `IStore` - Workflow persistence (history, signals, cancellation) - `IActivityExecutor` - Activity execution with timeout/retry - `IScheduler` - Timer scheduling - `IWorkflowObserver` - Event observation for monitoring/tracing 3. **Internal Components** (src/intemporal/internal/) - - `context.clj` - Dynamic workflow context with sequence counters, pending events - - `execution.clj` - Workflow execution engine, handles suspensions and retries - - `runtime.clj` - Default implementations of `IActivityExecutor` and `IScheduler` - - `activity.clj` - Activity registration and metadata - - `error.clj` - Error types (suspensions, interruptions, rejections, cancellations) - - `logging.clj` - Structured logging with MDC support - - `macros.cljc` - `defn-workflow`, `stub-function`, `stub-protocol` macros - -4. **Store Implementations** ([src/intemporal/store.clj](src/intemporal/store.clj)) + - `context.cljc` - Dynamic workflow context with sequence counters, pending events + - `execution.clj` / `execution.cljs` - Workflow execution engine (platform-specific) + - `runtime.clj` / `runtime.cljs` - Default implementations of `IActivityExecutor` and `IScheduler` (platform-specific) + - `activity.cljc` - Activity registration and metadata + - `error.cljc` - Error types (suspensions, interruptions, rejections, cancellations) + - `logging.cljc` - Structured logging via taoensso/telemere + - `macros.cljc` - `stub-protocol` macro + - `fns/start_workflow.clj` / `fns/start_workflow.cljs` - Workflow start logic (platform-specific) + +4. **Store Implementations** ([src/intemporal/store.cljc](src/intemporal/store.cljc)) - `InMemoryStore` - In-memory implementation of `IStore` - - Additional stores: FoundationDB (`:fdb` alias), JDBC (`:jdbc` alias) + - Additional stores: FoundationDB (`store/fdb.clj`, `:fdb` alias), JDBC (`store/jdbc.clj`, `:jdbc` alias) + +5. **Observer** ([src/intemporal/observer.cljc](src/intemporal/observer.cljc)) + - `noop-observer`, `make-logging-observer` - Observer factories + - `observer/otel.clj` - OpenTelemetry observer implementation ### Key Mechanisms @@ -78,6 +86,10 @@ bin/kaocha :test --focus intemporal.tests.crash.future-cancel-test # Run tests via npx npx shadow-cljs compile node + +# Focus cljs tests +bin/kaocha :test-cljs --focus cljs:intemporal.tests.crash.future-cancel-test + ``` **Important**: Test namespaces use hyphens (e.g., `signal-wait-crash-test`), which map to underscored file names (`signal_wait_crash_test.clj`). @@ -117,49 +129,58 @@ clojure -T:build jar ### Debug Configuration -The test runner ([bin/kaocha](bin/kaocha)) automatically starts a debug agent on port 5005: +The test runner ([bin/kaocha](bin/kaocha)) has a commented-out debug agent on port 5005 that can be enabled: ``` -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 ``` ### OpenTelemetry Tracing -The project includes OpenTelemetry instrumentation (see [deps.edn](deps.edn) lines 14-24): +The project includes OpenTelemetry instrumentation (see [deps.edn](deps.edn) `:dev` alias, `_jvm-opts`): - Java agent: `./opentelemetry-javaagent.jar` - OTLP endpoint: `http://localhost:4317` (gRPC) - Service name: `intemporal` - Metrics and logs are disabled by default +- Note: The OTel JVM opts use the `_jvm-opts` key (underscore prefix), so they are **not active by default** - they must be manually enabled ## Code Patterns ### Defining a Workflow +Workflows are regular functions that use `stub` to wrap activity calls: + ```clojure -(require '[intemporal.core :as w]) -(require '[intemporal.internal.macros :refer [defn-workflow]]) +(require '[intemporal.core :as intemporal]) -(defn-workflow my-workflow [arg] - (let [activity-stub (w/stub some-activity-fn)] - (activity-stub arg))) +(defn my-activity [arg] + [:processed arg]) + +(defn my-workflow [arg] + (let [act (intemporal/stub #'my-activity)] + (act arg))) ``` ### Activities Activities can be: -- Regular functions: `(w/stub my-function)` -- Protocol methods: `(w/stub-protocol MyProtocol {})` +- Regular functions (via var): `(intemporal/stub #'my-function)` +- Protocol methods: `(intemporal/stub-protocol MyProtocol)` ### Running Workflows ```clojure -(require '[intemporal.store :as store]) - -(def my-store (store/make-memstore)) -(def executor (w/start-poller! my-store {`MyProtocol (->MyProtocolImpl)})) - -;; Execute workflow (returns result in JVM, Promise in ClojureScript) -(def result (w/with-env {:store my-store} - (my-workflow args))) +(require '[intemporal.core :as intemporal]) + +;; Using with-workflow-engine (ensures cleanup) +(intemporal/with-workflow-engine [engine {:threads 4}] + (intemporal/start-workflow engine my-workflow [arg])) + +;; Or manually managing the engine +(let [engine (intemporal/make-workflow-engine :threads 4)] + (try + (intemporal/start-workflow engine my-workflow [arg]) + (finally + (intemporal/shutdown-engine engine)))) ``` ## Testing Guidelines @@ -167,13 +188,19 @@ Activities can be: ### Test Organization - [test/intemporal/tests/](test/intemporal/tests/) - Main test directory - - `async_test.clj` - Async operation tests - - `cancellation_test.clj` - Workflow cancellation - - `child_workflow_test.clj` - Nested workflow tests - - `error_test.clj` - Error handling and retry policies - - `signal_test.clj` - Signal send/receive - - `timer_test.clj` - Timer scheduling - - `tracing_test.clj` - OpenTelemetry tracing + - `async_test.clj` / `.cljs` - Async operation tests + - `cancellation_test.clj` / `.cljs` - Workflow cancellation + - `child_workflow_test.clj` / `.cljs` - Nested workflow tests + - `error_test.clj` / `.cljs` - Error handling and retry policies + - `signal_test.clj` / `.cljs` - Signal send/receive + - `timer_test.clj` / `.cljs` - Timer scheduling + - `tracing_test.clj` - OpenTelemetry tracing (JVM only) + - `protocol_test.clj` - Protocol tests + - `replay_check_test.clj` - Replay verification + - `stub_protocol_test.cljc` - Protocol stubbing tests + - `context_macros_test.cljs` - Context macros (ClojureScript only) + - `utils.cljc` - Test utilities + - [store/](test/intemporal/tests/store/) - Store-specific tests - [crash/](test/intemporal/tests/crash/) - Crash recovery scenarios ### Crash Recovery Tests @@ -188,15 +215,18 @@ Tests in `test/intemporal/tests/crash/` verify workflow resilience: ### Required Dependencies (all environments) - Clojure 1.12.1+ -- tools.logging + logback (structured logging) -- OpenTelemetry API (tracing) +- taoensso/telemere (structured logging) +- clj-otel-api (OpenTelemetry tracing) - macrovich (cross-platform macros) +- promesa (promises, required for ClojureScript) +- cheshire (JSON) +- shadow-cljs ### Optional Dependencies (via aliases) - `:fdb` - FoundationDB client -- `:jdbc` - PostgreSQL/JDBC persistence -- `:cljs` - ClojureScript support (shadow-cljs) -- `:dev` - Testing libraries (Kaocha, test.check, matcher-combinators, spy) +- `:jdbc` - PostgreSQL/JDBC persistence (next.jdbc, PostgreSQL, HikariCP, migratus) +- `:cljs` - ClojureScript support +- `:dev` - Testing libraries (Kaocha, kaocha-cloverage, kaocha-junit-xml, kaocha-cljs, logback, spy, matcher-combinators, clj-async-profiler) ## Important Notes diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index e3d9fb6..ae6aa85 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -36,17 +36,17 @@ clj -A:dev:doc:cljs # Tests ```shell -bin/kaocha test -bin/kaocha test-cljs +bin/kaocha :test +bin/kaocha :test-cljs # or run everything bin/run-coverage # focusing -./bin/kaocha test --focus intemporal.shutdown-restart-test +./bin/kaocha :test --focus intemporal.tests.signal-test # cljs focus is a bit different -./bin/kaocha test-cljs --focus 'cljs:intemporal.shutdown-restart-test' +./bin/kaocha :test-cljs --focus 'cljs:intemporal.tests.signal-test' ``` diff --git a/README.md b/README.md index 845d6cd..ddb1580 100644 --- a/README.md +++ b/README.md @@ -17,62 +17,42 @@ Two concepts apply: ## Usage Examples: -- [demo_workflow.clj](./dev/intemporal/demo_workflow.clj) -- [demo_automata.cljc](./dev/intemporal/demo_automata.cljc) -- [demo_saga.cljc](./dev/intemporal/demo_saga.cljc) +- [doc.cljs](./doc/intemporal/doc.cljs) +- [automata.cljs](./doc/intemporal/automata.cljs) > Note that when the runtime is javascript, all activities will return a promise. -> Thus, the use of `promesa.core/let` and/or `intemporal.macros/env-let` is advised +> Thus, the use of `promesa.core/let` is advised ```clojure +(ns intemporal.demo + (:require [intemporal.core :as intemporal] + [intemporal.store :as store])) -(ns intemporal.demo-workflow - (:require [intemporal.store :as store] - [intemporal.workflow :as w] - [intemporal.macros :refer [stub-function stub-protocol defn-workflow]])) - -;;;; -;; demo - -(defn nested-fn [a] - [a :nested]) - +;; Activities are regular functions (defn activity-fn [a] - (let [f (stub-function nested-fn)] - (conj a :activity (f :sub)))) + [:processed a]) +;; Protocols can also be used as activities (defprotocol MyActivities (foo [this a])) (defrecord MyActivitiesImpl [] MyActivities - (foo [this a] (println "record was called:" ) [a :child])) - -(defn-workflow my-workflow [i] - (let [sf (stub-function activity-fn) - pr (stub-protocol MyActivities {})] - (conj [:root] - (sf [1]) - (foo pr :X)))) - -(def mstore (store/make-memstore)) -(def executor (w/start-poller! mstore {`MyActivities (->MyActivitiesImpl)})) - -;; note that in cljs, this returns a promise -(def res (w/with-env {:store mstore} - (my-workflow 1))) - -(defn pprint-table [table] - (clojure.pprint/print-table table)) - -(defn print-tables [] - (let [tasks (store/list-tasks mstore) - events (->> (store/list-events mstore) - (sort-by :id))] - (pprint-table tasks) - (pprint-table events))) - -(print-tables) + (foo [this a] [a :child])) + +;; Workflows orchestrate activities via stubs +(defn my-workflow [i] + (let [act (intemporal/stub #'activity-fn) + pr (intemporal/stub-protocol MyActivities)] + {:activity (act i) + :protocol (foo pr :X)})) + +;; Create an engine and run the workflow +(intemporal/with-workflow-engine [engine {:threads 2}] + (let [result (intemporal/start-workflow engine + my-workflow [1] + :protocols {MyActivities (->MyActivitiesImpl)})] + (println result))) ``` # TODO @@ -85,6 +65,6 @@ Examples: - [x] Convert to `.cljc` - [x] Workers + Queues - [x] Saga pattern -- [ ] Workflow cancellation +- [x] Workflow cancellation - [x] OT tracing -- [ ] Signals +- [x] Signals From 9b3d0bf796ffe082268571772bd87c5c2cee8e20 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 23 Feb 2026 21:45:18 +0000 Subject: [PATCH 78/81] Fix earthly --- .env | 2 +- Earthfile | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.env b/.env index 749daf2..378afe7 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -JAVA_OTS="$JAVA_OPTS -Dio.netty.tryUnsafe=false --enable-native-access=ALL-UNNAMED " \ No newline at end of file +JAVA_OPTS="$JAVA_OPTS -Dio.netty.tryUnsafe=false --enable-native-access=ALL-UNNAMED " \ No newline at end of file diff --git a/Earthfile b/Earthfile index 4ed7ef0..3c81305 100644 --- a/Earthfile +++ b/Earthfile @@ -32,8 +32,7 @@ deps: build-base: FROM +deps - # copy src here cause we want to maximize chance to cache deps - COPY --dir .clj-kondo build bin dev src doc test resources /build + COPY --dir .clj-kondo build bin doc src test resources /build lint: FROM +build-base @@ -42,11 +41,8 @@ lint: build-main: FROM +build-base RUN clj -T:build compile-main -build-dev: - FROM +build-main - RUN clj -T:build compile-dev build-jar: - FROM +build-dev + FROM +build-main RUN clj -T:build jar build-cljs: FROM +build-base @@ -55,7 +51,6 @@ build-cljs: build-all: BUILD +lint BUILD +build-main - BUILD +build-dev BUILD +build-jar BUILD +build-cljs From 4d54383da663d46248f28a27e8626aa7e9ef81f8 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Mon, 23 Feb 2026 22:24:24 +0000 Subject: [PATCH 79/81] add missing folder --- deps.edn | 2 +- src/intemporal/store/jdbc.clj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deps.edn b/deps.edn index 7d265aa..d69a80b 100644 --- a/deps.edn +++ b/deps.edn @@ -1,4 +1,4 @@ -{:paths ["src" "target"] +{:paths ["src" "target" "resources"] :test-paths ["test"] :deps {org.clojure/clojure {:mvn/version "1.12.1"} diff --git a/src/intemporal/store/jdbc.clj b/src/intemporal/store/jdbc.clj index 421f143..30be0e1 100644 --- a/src/intemporal/store/jdbc.clj +++ b/src/intemporal/store/jdbc.clj @@ -27,7 +27,7 @@ (.startsWith jdbc-url "jdbc:mysql") :mysql :else (throw (ex-info "Unknown jdbc url %s; only postgres and mysql/mariadb supported" {:jdbc-url jdbc-url}))) cfg {:store :database - :migration-dir (str "migrations/" kind) + :migration-dir (str "migrations/" (name kind)) :db {:jdbcUrl jdbc-url}}] (migratus/migrate cfg))) From 9380ca5860ebda8133b492812a13ed6c959bbac9 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 24 Feb 2026 08:51:56 +0000 Subject: [PATCH 80/81] run quiet --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 84ec9de..81e9f30 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,7 +28,7 @@ jobs: - name: Check earthly version run: earthly --version - name: Run tests with earthly - run: earthly -P +test --ci --remote-cache=ghcr.io/mping/intemporal:ci-cache + run: earthly -P +test --ci --quiet --remote-cache=ghcr.io/mping/intemporal:ci-cache - name: Setup LCOV uses: hrishikesh-kadam/setup-lcov@v1 - uses: kcjpop/coverage-comments@v2.2 From 51f6e8973680381eba8287f82e716013731eda83 Mon Sep 17 00:00:00 2001 From: Miguel Ping Date: Tue, 24 Feb 2026 09:18:23 +0000 Subject: [PATCH 81/81] fixup! run quiet --- bin/run-coverage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-coverage b/bin/run-coverage index fde5908..792f66b 100755 --- a/bin/run-coverage +++ b/bin/run-coverage @@ -17,7 +17,7 @@ CLOVERAGE_OUTPUT=target/coverage-cljs bin/kaocha test-cljs --reporter documentat printf "${BLUE}combining coverage reports...${NC}\n" lcov --add-tracefile target/coverage-clj/lcov.info --add-tracefile target/coverage-cljs/lcov.info -o coverage/lcov.info -genhtml --ignore-errors unmapped coverage/lcov.info -o coverage +genhtml --ignore-errors empty --ignore-errors unmapped coverage/lcov.info -o coverage printf "${BLUE}done! opening report${NC}\n" xdg-open coverage/index.html || open coverage/index.html || true